Merge "Enable AOD by default on C1" into pi-dev
diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk
index e81fd38..009628f 100644
--- a/BoardConfig-common.mk
+++ b/BoardConfig-common.mk
@@ -118,7 +118,9 @@
 # Install odex files into the other system image
 BOARD_USES_SYSTEM_OTHER_ODEX := true
 
-BOARD_ROOT_EXTRA_FOLDERS := persist firmware
+BOARD_ROOT_EXTRA_SYMLINKS := /vendor/lib/dsp:/dsp
+BOARD_ROOT_EXTRA_SYMLINKS += /mnt/vendor/persist:/persist
+BOARD_ROOT_EXTRA_SYMLINKS += /vendor/firmware_mnt:/firmware
 
 include device/google/crosshatch-sepolicy/crosshatch-sepolicy.mk
 
@@ -178,7 +180,6 @@
 AUDIO_FEATURE_ENABLED_MULTI_VOICE_SESSIONS := true
 AUDIO_FEATURE_ENABLED_SND_MONITOR := true
 AUDIO_FEATURE_ENABLED_USB_TUNNEL := true
-BOARD_ROOT_EXTRA_SYMLINKS := /vendor/lib/dsp:/dsp
 AUDIO_FEATURE_ENABLED_CIRRUS_SPKR_PROTECTION := true
 BOARD_SUPPORTS_SOUND_TRIGGER := true
 AUDIO_FEATURE_FLICKER_SENSOR_INPUT := true
diff --git a/acdbdata/OEM/sdm845-tavil-b1-snd-card/Bluetooth_cal.acdb b/acdbdata/OEM/sdm845-tavil-b1-snd-card/Bluetooth_cal.acdb
index 79ed096..99cb280 100644
--- a/acdbdata/OEM/sdm845-tavil-b1-snd-card/Bluetooth_cal.acdb
+++ b/acdbdata/OEM/sdm845-tavil-b1-snd-card/Bluetooth_cal.acdb
Binary files differ
diff --git a/acdbdata/OEM/sdm845-tavil-b1-snd-card/Handset_cal.acdb b/acdbdata/OEM/sdm845-tavil-b1-snd-card/Handset_cal.acdb
index badee6c..1c576a5 100644
--- a/acdbdata/OEM/sdm845-tavil-b1-snd-card/Handset_cal.acdb
+++ b/acdbdata/OEM/sdm845-tavil-b1-snd-card/Handset_cal.acdb
Binary files differ
diff --git a/acdbdata/OEM/sdm845-tavil-b1-snd-card/Headset_cal.acdb b/acdbdata/OEM/sdm845-tavil-b1-snd-card/Headset_cal.acdb
index 36d6782..bb3960a 100644
--- a/acdbdata/OEM/sdm845-tavil-b1-snd-card/Headset_cal.acdb
+++ b/acdbdata/OEM/sdm845-tavil-b1-snd-card/Headset_cal.acdb
Binary files differ
diff --git a/acdbdata/OEM/sdm845-tavil-b1-snd-card/Speaker_cal.acdb b/acdbdata/OEM/sdm845-tavil-b1-snd-card/Speaker_cal.acdb
index 425ccac..1c5283b 100644
--- a/acdbdata/OEM/sdm845-tavil-b1-snd-card/Speaker_cal.acdb
+++ b/acdbdata/OEM/sdm845-tavil-b1-snd-card/Speaker_cal.acdb
Binary files differ
diff --git a/acdbdata/OEM/sdm845-tavil-c1-snd-card/Bluetooth_cal.acdb b/acdbdata/OEM/sdm845-tavil-c1-snd-card/Bluetooth_cal.acdb
index 057ee7d..0d1c744 100644
--- a/acdbdata/OEM/sdm845-tavil-c1-snd-card/Bluetooth_cal.acdb
+++ b/acdbdata/OEM/sdm845-tavil-c1-snd-card/Bluetooth_cal.acdb
Binary files differ
diff --git a/acdbdata/OEM/sdm845-tavil-c1-snd-card/Handset_cal.acdb b/acdbdata/OEM/sdm845-tavil-c1-snd-card/Handset_cal.acdb
index d76a3d6..0da415a 100644
--- a/acdbdata/OEM/sdm845-tavil-c1-snd-card/Handset_cal.acdb
+++ b/acdbdata/OEM/sdm845-tavil-c1-snd-card/Handset_cal.acdb
Binary files differ
diff --git a/acdbdata/OEM/sdm845-tavil-c1-snd-card/Headset_cal.acdb b/acdbdata/OEM/sdm845-tavil-c1-snd-card/Headset_cal.acdb
index 51dbd2a..8fa01db 100644
--- a/acdbdata/OEM/sdm845-tavil-c1-snd-card/Headset_cal.acdb
+++ b/acdbdata/OEM/sdm845-tavil-c1-snd-card/Headset_cal.acdb
Binary files differ
diff --git a/acdbdata/OEM/sdm845-tavil-c1-snd-card/Speaker_cal.acdb b/acdbdata/OEM/sdm845-tavil-c1-snd-card/Speaker_cal.acdb
index 12c26b7..07b0c78 100644
--- a/acdbdata/OEM/sdm845-tavil-c1-snd-card/Speaker_cal.acdb
+++ b/acdbdata/OEM/sdm845-tavil-c1-snd-card/Speaker_cal.acdb
Binary files differ
diff --git a/audio_platform_info_tavil_b1.xml b/audio_platform_info_tavil_b1.xml
index 9f71e71..9c76c21 100644
--- a/audio_platform_info_tavil_b1.xml
+++ b/audio_platform_info_tavil_b1.xml
@@ -32,7 +32,7 @@
         <device name="SND_DEVICE_OUT_VOICE_HANDSET" acdb_id="7"/>
         <device name="SND_DEVICE_OUT_VOICE_SPEAKER" acdb_id="14"/>
         <device name="SND_DEVICE_OUT_VOICE_HAC_HANDSET" acdb_id="201"/>
-        <device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS" acdb_id="7"/>
+        <device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS" acdb_id="98"/>
         <device name="SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET" acdb_id="14"/>
         <device name="SND_DEVICE_OUT_VOICE_USB_HEADSET" acdb_id="10"/>
         <device name="SND_DEVICE_OUT_VOICE_USB_HEADPHONES" acdb_id="10"/>
@@ -50,7 +50,7 @@
         <device name="SND_DEVICE_IN_SPEAKER_DMIC_STEREO" acdb_id="19"/>
         <device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" acdb_id="122"/>
         <device name="SND_DEVICE_IN_BT_SCO_MIC_WB_NREC" acdb_id="123"/>
-        <device name="SND_DEVICE_IN_VOICE_DMIC_TMUS" acdb_id="41"/>
+        <device name="SND_DEVICE_IN_VOICE_DMIC_TMUS" acdb_id="99"/>
         <device name="SND_DEVICE_IN_VOICE_SPEAKER_DMIC" acdb_id="19"/>
         <device name="SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC" acdb_id="19"/>
         <device name="SND_DEVICE_IN_VOICE_REC_MIC" acdb_id="4"/>
diff --git a/audio_platform_info_tavil_c1.xml b/audio_platform_info_tavil_c1.xml
index 616f500..2a700cd 100644
--- a/audio_platform_info_tavil_c1.xml
+++ b/audio_platform_info_tavil_c1.xml
@@ -32,7 +32,7 @@
         <device name="SND_DEVICE_OUT_VOICE_HANDSET" acdb_id="7"/>
         <device name="SND_DEVICE_OUT_VOICE_SPEAKER" acdb_id="14"/>
         <device name="SND_DEVICE_OUT_VOICE_HAC_HANDSET" acdb_id="201"/>
-        <device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS" acdb_id="7"/>
+        <device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS" acdb_id="98"/>
         <device name="SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET" acdb_id="14"/>
         <device name="SND_DEVICE_OUT_VOICE_USB_HEADSET" acdb_id="10"/>
         <device name="SND_DEVICE_OUT_VOICE_USB_HEADPHONES" acdb_id="10"/>
@@ -50,7 +50,7 @@
         <device name="SND_DEVICE_IN_SPEAKER_DMIC_STEREO" acdb_id="19"/>
         <device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" acdb_id="122"/>
         <device name="SND_DEVICE_IN_BT_SCO_MIC_WB_NREC" acdb_id="123"/>
-        <device name="SND_DEVICE_IN_VOICE_DMIC_TMUS" acdb_id="41"/>
+        <device name="SND_DEVICE_IN_VOICE_DMIC_TMUS" acdb_id="99"/>
         <device name="SND_DEVICE_IN_VOICE_SPEAKER_DMIC" acdb_id="19"/>
         <device name="SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC" acdb_id="19"/>
         <device name="SND_DEVICE_IN_VOICE_REC_MIC" acdb_id="4"/>
diff --git a/audio_policy_volumes_b1.xml b/audio_policy_volumes_b1.xml
index 0ccec98..d99f45b 100644
--- a/audio_policy_volumes_b1.xml
+++ b/audio_policy_volumes_b1.xml
@@ -36,9 +36,9 @@
         <point>100,0</point>
     </volume>
     <volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_EARPIECE">
-        <point>0,-2400</point>
-        <point>33,-1600</point>
-        <point>66,-800</point>
+        <point>0,-2700</point>
+        <point>33,-1800</point>
+        <point>66,-900</point>
         <point>100,0</point>
     </volume>
     <volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
diff --git a/audio_policy_volumes_c1.xml b/audio_policy_volumes_c1.xml
index 5bca9ce..82932ea 100644
--- a/audio_policy_volumes_c1.xml
+++ b/audio_policy_volumes_c1.xml
@@ -36,9 +36,9 @@
         <point>100,0</point>
     </volume>
     <volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_EARPIECE">
-        <point>0,-2400</point>
-        <point>33,-1600</point>
-        <point>66,-800</point>
+        <point>0,-2700</point>
+        <point>33,-1800</point>
+        <point>66,-900</point>
         <point>100,0</point>
     </volume>
     <volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
diff --git a/blueline/overlay/frameworks/base/core/res/res/values/config.xml b/blueline/overlay/frameworks/base/core/res/res/values/config.xml
index f23a730..a24c8a6 100755
--- a/blueline/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/blueline/overlay/frameworks/base/core/res/res/values/config.xml
@@ -682,4 +682,8 @@
     <!-- Shutdown if the battery temperature exceeds (this value * 0.1) Celsius. -->
     <integer name="config_shutdownBatteryTemperature">600</integer>
 
+    <string-array name="config_disableApkUnlessMatchedSku_skus_list" translatable="false">
+        <item>G013B</item>
+    </string-array>
+
 </resources>
diff --git a/blueline/overlay/packages/apps/Settings/res/drawable/regulatory_info.png b/blueline/overlay/packages/apps/Settings/res/drawable/regulatory_info.png
deleted file mode 100644
index b82212f..0000000
--- a/blueline/overlay/packages/apps/Settings/res/drawable/regulatory_info.png
+++ /dev/null
Binary files differ
diff --git a/blueline/overlay/packages/apps/Settings/res/drawable/regulatory_info_g013a.png b/blueline/overlay/packages/apps/Settings/res/drawable/regulatory_info_g013a.png
new file mode 100644
index 0000000..b2a5a00
--- /dev/null
+++ b/blueline/overlay/packages/apps/Settings/res/drawable/regulatory_info_g013a.png
Binary files differ
diff --git a/blueline/overlay/packages/apps/Settings/res/drawable/regulatory_info_g013b.png b/blueline/overlay/packages/apps/Settings/res/drawable/regulatory_info_g013b.png
new file mode 100644
index 0000000..a2e08a2
--- /dev/null
+++ b/blueline/overlay/packages/apps/Settings/res/drawable/regulatory_info_g013b.png
Binary files differ
diff --git a/config.fs b/config.fs
index 3ea2f69..0e2e11e 100644
--- a/config.fs
+++ b/config.fs
@@ -58,3 +58,9 @@
 user: AID_SYSTEM
 group: AID_RADIO
 caps: NET_BIND_SERVICE
+
+[vendor/bin/hw/android.hardware.health@2.0-service.crosshatch]
+mode: 0755
+user: AID_SYSTEM
+group: AID_SYSTEM
+caps: WAKE_ALARM
diff --git a/crosshatch/AndroidBoard.mk b/crosshatch/AndroidBoard.mk
index 5bfaac3..c079faf 100644
--- a/crosshatch/AndroidBoard.mk
+++ b/crosshatch/AndroidBoard.mk
@@ -1,9 +1,18 @@
 LOCAL_PATH := $(call my-dir)
 
+#A/B builds require us to create the mount points at compile time.
+#Just creating it for all cases since it does not hurt.
+FIRMWARE_MOUNT_POINT := $(TARGET_OUT_VENDOR)/firmware_mnt
+ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_MOUNT_POINT)
+
+$(FIRMWARE_MOUNT_POINT):
+	@echo "Creating $(FIRMWARE_MOUNT_POINT)"
+	@mkdir -p $(TARGET_OUT_VENDOR)/firmware_mnt
+
 #----------------------------------------------------------------------
 # Generate persist image (persist.img)
 #----------------------------------------------------------------------
-TARGET_OUT_PERSIST := $(PRODUCT_OUT)/persist
+TARGET_OUT_PERSIST_IMG_PATH := $(PRODUCT_OUT)/persist
 
 INTERNAL_PERSISTIMAGE_FILES := \
     $(foreach pair,$(PRODUCT_COPY_FILES),\
@@ -15,8 +24,8 @@
 
 $(INSTALLED_PERSISTIMAGE_TARGET): $(MKEXTUSERIMG) $(MAKE_EXT4FS) $(INSTALLED_PERSISTIMAGE_FILES)
 	$(call pretty,"Target persist fs image: $(INSTALLED_PERSISTIMAGE_TARGET)")
-	@mkdir -p $(TARGET_OUT_PERSIST)
-	$(hide) PATH=$(HOST_OUT_EXECUTABLES):$${PATH} $(MKEXTUSERIMG) -s $(TARGET_OUT_PERSIST) $@ ext4 persist $(BOARD_PERSISTIMAGE_PARTITION_SIZE)
+	@mkdir -p $(TARGET_OUT_PERSIST_IMG_PATH)
+	$(hide) PATH=$(HOST_OUT_EXECUTABLES):$${PATH} $(MKEXTUSERIMG) -s $(TARGET_OUT_PERSIST_IMG_PATH) $@ ext4 persist $(BOARD_PERSISTIMAGE_PARTITION_SIZE)
 	$(hide) chmod a+r $@
 	$(hide) $(call assert-max-image-size,$@,$(BOARD_PERSISTIMAGE_PARTITION_SIZE))
 
diff --git a/crosshatch/overlay/frameworks/base/core/res/res/values/config.xml b/crosshatch/overlay/frameworks/base/core/res/res/values/config.xml
index 1d796e8..4bac07d 100755
--- a/crosshatch/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/crosshatch/overlay/frameworks/base/core/res/res/values/config.xml
@@ -690,13 +690,21 @@
          appended after the path string to interpret coordinates in dp instead of px units.
          Note that a physical cutout should be configured in pixels for the best results.
          -->
+    <string translatable="false" name="config_mainBuiltInDisplayCutoutRectApproximation">
+        M -258,0
+        v 171
+        h 516
+        v -171
+        q
+    </string>
+
     <string translatable="false" name="config_mainBuiltInDisplayCutout">
         M -338,0
-        q 86,-4 80,72 v 8 q 4,90 95,91.5
-        h 163 v -171.5 z
+        q 86,-4 80,71.5 v 8 q 4,90 95,91.5
+        h 163 v -171 z
         M 338,0
-        q -86,-4 -80,72 v 8 q -4,90 -95,91.5
-        h -163 v -171.5 z
+        q -86,-4 -80,71.5 v 8 q -4,90 -95,91.5
+        h -163 v -171 z
     </string>
 
     <!-- Whether the display cutout region of the main built-in display should be forced to
@@ -705,16 +713,17 @@
     <bool name="config_fillMainBuiltInDisplayCutout">true</bool>
 
     <!-- Height of the status bar -->
-    <dimen name="status_bar_height_portrait">49dp</dimen>
+    <dimen name="status_bar_height_portrait">171px</dimen>
     <dimen name="status_bar_height_landscape">28dp</dimen>
     <!-- Height of area above QQS where battery/time go (equal to status bar height if > 48dp) -->
-    <dimen name="quick_qs_offset_height">49dp</dimen>
+    <dimen name="quick_qs_offset_height">171px</dimen>
     <!-- Total height of QQS (quick_qs_offset_height + 128dp) -->
     <dimen name="quick_qs_total_height">177dp</dimen>
 
     <!-- Shutdown if the battery temperature exceeds (this value * 0.1) Celsius. -->
     <integer name="config_shutdownBatteryTemperature">600</integer>
 
-    <!-- Whether or not we should show the option to show battery percentage -->
-    <bool name="config_battery_percentage_setting_available">false</bool>
+    <string-array name="config_disableApkUnlessMatchedSku_skus_list" translatable="false">
+        <item>G013D</item>
+    </string-array>
 </resources>
diff --git a/crosshatch/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml b/crosshatch/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml
index 148bb0b..44dc5f5 100644
--- a/crosshatch/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml
+++ b/crosshatch/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml
@@ -20,11 +20,11 @@
     <dimen name="rounded_corner_radius_bottom">20dp</dimen>
     <dimen name="rounded_corner_content_padding">8dp</dimen>
 
-    <dimen name="display_cutout_margin_consumption">60px</dimen>
+    <dimen name="display_cutout_margin_consumption">0px</dimen>
 
     <!-- How much we expand the touchable region of the status bar below the notch to catch touches
          that just start below the notch. -->
-    <dimen name="display_cutout_touchable_region_size">50px</dimen>
+    <dimen name="display_cutout_touchable_region_size">60px</dimen>
 
     <!-- Height of the status bar header bar when on Keyguard (match status_bar_portrait) -->
     <dimen name="status_bar_header_height_keyguard">49dp</dimen>
diff --git a/crosshatch/overlay/packages/apps/Settings/res/drawable/regulatory_info.png b/crosshatch/overlay/packages/apps/Settings/res/drawable/regulatory_info.png
deleted file mode 100644
index 681af71..0000000
--- a/crosshatch/overlay/packages/apps/Settings/res/drawable/regulatory_info.png
+++ /dev/null
Binary files differ
diff --git a/crosshatch/overlay/packages/apps/Settings/res/drawable/regulatory_info_g013c.png b/crosshatch/overlay/packages/apps/Settings/res/drawable/regulatory_info_g013c.png
new file mode 100644
index 0000000..166bd50
--- /dev/null
+++ b/crosshatch/overlay/packages/apps/Settings/res/drawable/regulatory_info_g013c.png
Binary files differ
diff --git a/crosshatch/overlay/packages/apps/Settings/res/drawable/regulatory_info_g013d.png b/crosshatch/overlay/packages/apps/Settings/res/drawable/regulatory_info_g013d.png
new file mode 100644
index 0000000..84b20bd
--- /dev/null
+++ b/crosshatch/overlay/packages/apps/Settings/res/drawable/regulatory_info_g013d.png
Binary files differ
diff --git a/device-blueline.mk b/device-blueline.mk
index 7f7b03b..43e928a 100644
--- a/device-blueline.mk
+++ b/device-blueline.mk
@@ -15,7 +15,7 @@
 #
 
 PRODUCT_AAPT_CONFIG := normal
-PRODUCT_AAPT_PREF_CONFIG := 440dpi
+PRODUCT_AAPT_PREF_CONFIG := xxhdpi
 PRODUCT_AAPT_PREBUILT_DPI := xxhdpi xhdpi hdpi
 
 PRODUCT_HARDWARE := blueline
@@ -24,6 +24,9 @@
 
 DEVICE_PACKAGE_OVERLAYS += device/google/crosshatch/blueline/overlay
 
+PRODUCT_COPY_FILES += \
+    $(LOCAL_PATH)/init.insmod.blueline.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/init.insmod.cfg
+
 # Audio XMLs
 PRODUCT_COPY_FILES += \
     $(LOCAL_PATH)/mixer_paths_tavil_b1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tavil_b1.xml \
diff --git a/device-crosshatch.mk b/device-crosshatch.mk
index be9348f..7752380 100644
--- a/device-crosshatch.mk
+++ b/device-crosshatch.mk
@@ -24,6 +24,9 @@
 
 DEVICE_PACKAGE_OVERLAYS += device/google/crosshatch/crosshatch/overlay
 
+PRODUCT_COPY_FILES += \
+    $(LOCAL_PATH)/init.insmod.crosshatch.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/init.insmod.cfg
+
 # Audio XMLs
 PRODUCT_COPY_FILES += \
     $(LOCAL_PATH)/mixer_paths_tavil_c1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tavil_c1.xml \
diff --git a/device.mk b/device.mk
index 7a8173c..ae10619 100644
--- a/device.mk
+++ b/device.mk
@@ -89,7 +89,6 @@
     $(LOCAL_PATH)/init.qcom.ipastart.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.qcom.ipastart.sh \
     $(LOCAL_PATH)/init.qcom.wlan.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.qcom.wlan.sh \
     $(LOCAL_PATH)/init.insmod.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.insmod.sh \
-    $(LOCAL_PATH)/init.insmod.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/init.insmod.cfg \
     $(LOCAL_PATH)/thermal-engine-blueline-novr-evt.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-blueline-novr-evt.conf \
     $(LOCAL_PATH)/thermal-engine-blueline-vr-evt.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-blueline-vr-evt.conf \
     $(LOCAL_PATH)/thermal-engine-crosshatch-novr-evt.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-crosshatch-novr-evt.conf \
@@ -262,6 +261,9 @@
 PRODUCT_PROPERTY_OVERRIDES += \
     vendor.display.dataspace_saturation_matrix=1.16868,-0.03155,-0.01473,-0.16868,1.03155,-0.05899,0.00000,0.00000,1.07372
 
+PRODUCT_PROPERTY_OVERRIDES += \
+    vendor.display.disable_decimation=1
+
 # Enable camera EIS3.0
 PRODUCT_PROPERTY_OVERRIDES += \
     persist.camera.is_type=5 \
@@ -336,8 +338,7 @@
 # Light HAL
 PRODUCT_PACKAGES += \
     lights.$(PRODUCT_PLATFORM) \
-    android.hardware.light@2.0-impl \
-    android.hardware.light@2.0-service
+    hardware.google.light@1.0-service
 
 # Memtrack HAL
 PRODUCT_PACKAGES += \
@@ -378,9 +379,14 @@
     android.hardware.nfc@1.1-service \
     android.hardware.secure_element@1.0-service-disabled
 
+PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
+    vendor.ese.loader_script_path=/sys/firmware/devicetree/base/soc/i2c@88c000/nq@28/ese/loader_scripts_path
+
 PRODUCT_COPY_FILES += \
     device/google/crosshatch/nfc/libnfc-nci.conf:$(TARGET_COPY_OUT_SYSTEM)/etc/libnfc-nci.conf \
-    device/google/crosshatch/nfc/libese-nxp.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libese-nxp.conf
+    device/google/crosshatch/nfc/libese-nxp.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libese-nxp.conf \
+    device/google/crosshatch/felica/loaderservice_updater_1.lss:$(TARGET_COPY_OUT_VENDOR)/etc/loaderservice_updater_1.lss \
+    device/google/crosshatch/felica/loaderservice_updater_2.lss:$(TARGET_COPY_OUT_VENDOR)/etc/loaderservice_updater_2.lss
 
 # TODO(b/72443662)
 PRODUCT_COPY_FILES += \
@@ -775,3 +781,7 @@
     debug.sf.early_gl_phase_offset_ns=3000000
 PRODUCT_PROPERTY_OVERRIDES += \
     debug.sf.early_gl_app_phase_offset_ns=15000000
+
+# Do not skip init trigger by default
+PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
+    vendor.skip.init=0
diff --git a/device_framework_matrix.xml b/device_framework_matrix.xml
index 9fa31d0..fbce1cf 100644
--- a/device_framework_matrix.xml
+++ b/device_framework_matrix.xml
@@ -174,4 +174,12 @@
             <instance>default</instance>
         </interface>
     </hal>
+    <hal format="hidl" optional="true">
+        <name>hardware.google.light</name>
+        <version>1.0</version>
+        <interface>
+            <name>ILight</name>
+            <instance>default</instance>
+        </interface>
+    </hal>
 </compatibility-matrix>
diff --git a/felica/loaderservice_updater_1.lss b/felica/loaderservice_updater_1.lss
new file mode 100644
index 0000000..f97d992
--- /dev/null
+++ b/felica/loaderservice_updater_1.lss
@@ -0,0 +1,329 @@
+7f2181dc9310e9a36ea1288e7cd97bc60f17b47191bc42106c14e84307d35f0b31aab2d8d5bfd87c5f20105bf4f535c568468c98e38b0f87d0b57c9501824508d3ce8c196dd9cc05530d4808ffffffffffffffff4c01ff5f374022f25fa7ad625c16cb915a44980f67b99944986e1413e805ca8b840516be1c8153fb23ea5f781df9df710a24d565547b41f39e90cbef4fef22e114766531f4ad7f49438641046dac7107f40ba1feade904ec97201e6c91d4919a8c1eb1e95563ad0fc60c8d7f86393bec5663fe860455f95b2c64e4a34351af26f9c9b97a8c832a02f6ad1061
+6081ba4181b70433dd5aea3abc7f6f22e00c32675d54d6f142a74bb1bf1531b34149e8e232863180754d30400403b2bf819c4b3e867ba0add6e9d80f3e35f5121cfc7e7168e45d05760aff9c3c48e39d5180b4e74aa38c24c19f4ae21883125479c7d99c966685325913857e16f91aa99cb8dd3f5960a9304402201d51373ac789fe7896e8ee3c1fc00c2aff994c40b55f07cdfbb95c6d93dc486602203e684613eb82f039ba03c8f5e8db8cd9f69775eff6bcb72fcb2afa07d7243be2
+404580a00000409e8973e8b58943f9121535213fa3751e77d3c98ada797a3dc468c6b741f99b8bcf7af3e5e9f629030b68cf9a0ecf0cc108dcdf268aa8b6f314f77a1c954bdc52
+404580a00000408a4d387035b812947194ad64eb11ad660d6c281b17f5e8655de1fe0889c3d270b6c97e3d86c8acb33f24ce6ed5455440837550b4b51418698c775579e0aaa628
+405580a0000050d2b4c8dbb345486cefbf30a65179d5a936f327a1f2f804de005846bb1ce92e60cee4a30ba7108cc7aba27255376d8f949bdc074dd35c587377684f6b75fad0c2bf0f77852169943488a5c8fe3f1a7d71
+406580a00000607da1a83d1b1970ae7dd9af6de87f6fb13abbf9aadef11c6c6e73b2e07a4183acd7b116ff6e7a9d840a940c514c59dacb843a0f9cc5fca8cd0e622de9fb503e10d029427c8c22bd412f3c3f31de256894abda9919deb35fb9ffe1bdfff47df427
+406580a00000602d04c06a446e28192246a271e87512e2309756eb3d63d3781ba11931099c3e073cc72b11ba2983f383991a4337f9db9008d97cc79127b86d9deaf685c10fa462fd15e561eee203f69276b2e94a6153efbc0749ad293c22cee93741a8d868abbe
+4081f580a00000f04d453cdaaf252a713efad5d749c0bb315729c3909bb263368597ad55740bb8b7bbf9cbc87cad7f84af36add134aad0e8f2b7a01920e62fb1af3d42013eb2eb82bc46d94b5c7786c09b16ec34a5f24ab8f75eb16f2f1e34120cf4090f252c7e0b0bb3fda9906682f750b5d4de3e1af16768634cd1db0798562a648e12ef31e1a4f588c8bf641a88bf9376ef63f1fee1bb7bcbaf97b3cb50c29654ac1498c4656bf86c32e5ee851ec0a1ca9818e8c86e58586307cfbaf473774969ef37be0369f92c05a9e208848e1be2bbb2942a64b441bf551c46b1353b745a29057bcec81cbba3c1762458a38a360fcfa8211061edf6
+4081f580a00000f020425d1af4b6bc55d1db1de430ed5cee014d10d23f28364954142bc73966e752f1fac0bf15a04a54afa8d57b6460718a6c68c75ef1c651e171e51ae9c948e66ae801936f39510e99709492aa24be9b2c28188abaa6bd2fb7a21feb8d3c65e13a8176a1a005b02b1c256ca08315d74d49331f1e6348179604597af9f0c6176b8a5558019b6b10f823e91a2e0863270b73ea767ed632a125ae339eab952516529ea0df65e8bb2bdbeccdfcee4661d2750dc618217a69392d3eef5bb579b261158e9abbe091c3f29716cf62e817579040fe7c39e5cb1aec8241856a65e8e037d039d98865aa3f452e25ec658ad749a0658b
+4081f580a00000f022b9e754b9e5874f974292f56bef085f73719fca39b68ac8e707b2e4ca3410305a6cca0de78ba121a0dcb466ecdd21f1617e3f46eed861ba61afe4caf27bc87987917b15b5b8eed47d9690b7f7db0dd39be1a434839aac2695ac4d7532a104c092ab796272069d33b628027f174d1f7669901ca24e783488bf4c3830c6eadb8e69b3f9e21d30d7d7d6b7d6e742796e8e106c27d55d2c2314988031a27deda9dec2724af2ff8a6590dae049bd288c17d53f24ec0796729bb2e8552a13cc541bef0a54533078e3aa91209a037172e59ab60fcfcaa9c208b9c38d932373cddcbdffc92b7fc482b479dbabf836742414f467
+4081f580a00000f011c42c7fabfc7612bf8c140168114eb8cc3113e2e24f896d68bcef386102dc57e6a517910bf3eefe61535c628a7607db7046260af16eb690b25eb85a5b8a32f0b34683bac335de49728b6b5712b7c20d4b54a914265448016ec46f0c8ef90abc67769c5e1f13b74060dc9ab8ff4ba5e98fd55e6503b1814066d48d92ce39a80043c542173ee993c97783b5885dec646deedc6742f75df9761aa11520ff84f2961c271ac294d4ccad1c448d141636b1ace7551164f272437334bb77af4bd78ef33343f3160aab848199c5f96e15c05e387b3542dc90a750f7d624b1baa62eb19c5627f86edfe1616182a3cacda76a9129
+4081f580a00000f0b1466679ea53949df8f74a39902c7fea787d27480fa63b9c2d59093c0e27e5b57a9be3e9b8701880f9943c9f999152b4ca1afa917fb05f9003cb6b37e1d5a4489a363014ccb173d2f65b9886fd6b7e38e5dee8da78981d4e30b9adf08745eeecae0bf539eee71e253cfd7d136b078ae24105522ef2be54af71c176da55be1fd4f0725bbd363bd322fe80cc5a1b599867e1e18b954e352c4bcb9a36d98a36549eb27ca57da5e2b2f11c4ddfc67818307a6b963fa08f183adcace0e7c293df637aa17f90e49a9fc4cee1648bf0a3067dc5f8f4dc20d119acd4160e65ce0d49fcf197336a924c38bf7e838e3c82b83e80ae
+4081f580a00000f0a81fd5483c2e0d3bd2ea70f1f4f2396236001d9d032b9c5ec359677ad96891a15ba80faf7a14f52bbc7581cbe6a567c3ee9d58ad22dbf0c0a60467dceb8fd5b1aae9190dd6dff836a394d86e34ee9da2114b1bf08d21549f3419b79e97dfad0ccd66e61dde21e14c4f52273dacb9d5aaa52a059c30e6d3df70f6577dbab9181b4322340cec03adb05909881b5e08a7e3afe7cba28763be603a9f9feb971d4cda52250c7580d1f3cca774134982b353a3156608847d4f735b608fb23f50accb4d4552e07635b08851eee190a4e4aa1f2561d0a3d8b9ea0d01299caaa3d3d2e0172e545d982f65bdef2e3b27adeb38b946
+4081f580a00000f06ae7c8b622b8c941644f486a2f0a915d04caf3b448b64f8c7001f77490a8f896df20635c26cc91f63105289a9ef76911263334d67531c0423cdcf250ac7d285385ac6f48971db9925731e1d77ecf5f5f03b3afbbcb28e97f9e047ba826fce95ebc4c0ae0c90350e3c0d51f9f9f10a0b5f28408a5a9b70c7f04fca9174c1da41e4461ad2a87b6b5e219fa5fee1af006c8ffb546daccd42996f1200449ea3987deff00d5ae52788ea931fe4684497c33e31e30dc543fc27c916ac9216a90910553f4b6b08227dca4ac10db7bafa2224527f21e54ce243afcf14fc1980fcf1af40a0b08e05de37493dd107deeacfd5e1a06
+4081f580a00000f03e809a7343b090c0323f4d2f7ae309cc22decd57937ccff9350f4835f7e0fccef953fbd3b73b7c09f390ed4a0da5526dacce77935746545d0546f98baf951a51f3a2fa2c2de022b657dddc081c3cd864dd0934915ac94857e288422131616723fba23702ca1ef370659e76f28d6dea6840c49ce15bf984e0f88bf481cde4ef7c2f6c21a82a6ccce8171ec7b95a5a8bc4ff339590e1fd57bc46748b6ab14b8068708db3c86f5331150dbf405de04940edf583c6054f3b65dd9de01b2f12e2083cb2151e9a378fb966e51a7771947dc67fc10d6263f288bee2064d191bd1a0e2fe63cde9f178f148691fef06782e502cc1
+4081f580a00000f0057c8ae72228cb0f2f312c06fcb6359bef406e68af066e3acc81fdff58e75e6cb87971a7d063b0da8dab505d9b6a2c9fbcfd8e7486b4b9c152613c3ac317498987f405fc8628c5a67aef23aa33e0f4cc3e8e5fc0b38720b879811d3ab750d3d5ed159dc51bb695577f7f0bde78fbc326ff66d6eaf8ed54bd04a9bc3cc0d449d4bb4625c2c926bbb0786c34d24b807de8d800e4c426fc8a9d75a9074192fdaba6ac658364c39a883524d672bb9e59e62d3ed067f70cf0a34d4d4d8f6e87d60aacc59754b8904bce2a9cd31f2c7f56ae2343c7515d75fd5d18e6189a9b5096da5ddcde3534edbf3e45aec08c4bb6994da6
+4081f580a00000f02ac2925e7f9434823e4f6f609818d3fdb663d21a0c09c6439b5dc986cb243de5695b912e9894a503397b013e9c6f3c3427336dd014ddd38267ac8011e8eb167cd7896d28cf24d225a420486b096b1cc25b9571204cf4fb79354a94380e316ae4396a06ecce91740bb2cff5af5bf52da22dd4a87cd978b7bcb65100db51d1a9c2cdc1a93f9a511ddc949a0e387757aab4e3a4dd38471d915c9da09007577d5ccdfdf9c6fc182901acb694e170b24fc6f7d1ba07703a88a23280a7e332bd700878af08d8415d9abc8ff66dfcf2e123ea4eb816efdc37864d8f64fea232083117c8c60b2c64ac1ffed01f5afe0d485593af
+4081f580a00000f0adbae970ace241f96b7a4ff65b430cc894f17e400560b96d787e6808e96ed22fdd62d7d4c5a7805196f2d95235b7ef1c1d8dd469758c7d5826de52bc972c40f6b21d3c1e55fa4c7ec280c76e57176841616be821acf6c383982da4aef477a1b7f1e00db1a7673be69896fc6852fac9da0c54b23ded568a3b41c55bf4c984fb35daec8a298f1d23ed330be178d25c4a5ccf8a0733ead0949b3f5fb16230b36dad4bb6a69904e451a8304685b2743b75c125ef4025b6a9bd3d51f1a0262a707784c800031247294393b883f46ba10797e1ee6e7515cab5299befcf4e30fc551104115ed772012867478ccaf4e241ea333d
+4081f580a00000f0ff18cb43096d0a8dacad5bf1c319f798961159ae6e69a73871b7c33053e1df821e0a1b08c298bfd504a0fd990f0254acdfad0b7446c7975807c457a178dbff312365c9d49aecc95517e1a89fd9afbab0422b2ea960edc670ceeec9b0df12b6490fb560c8454782c5bd640c7f1a56d92e93ba6a5dc7d949b257506323e6d2e010d417198ec774aef488a06cd52c99091530800f639b4916fb2bbd0e2246eba520f04f16cd8e18a1172645c3d269f386e56259c0b0e4763fd28c2b7a5b80ec50fa8b8cadacb28e84f3ec1d4cdf803fb7b5c0ddebf37e5f973ecb21f34505b431b05d172b65b6abd59941f7170f5931acf4
+4081f580a00000f0414dbc550073efd08e8f13feb08ee62fcba3b8d316c9b17b66fa6a35c13f1a5b9c41401504532c100dfc38da0c31268fecdc2f3dff8fd9f0cd210edb8236079e09d9806448d0294eb17b8c264a3ec7057d7c9a98e0ea544d4829ec853b5f52e47dfb5b035ab5a4d0242789813705b2339fdf8eb140446061452bdd037213684d548bf6901230caac360fe110604e7d688f36902ac486b1e74d3544dc96808b3a29869489c87881ee802b388f0721261567f1f0471e367e58d56bc09962b9cf40ab8972f4e7361c893e1572cbe8d005b00721a4ac8759ee14af97d82228292c521090f436e7f41492beb98ccd494ea6a6
+4081f580a00000f07dc25706e3ce32a91df969a9d3a01fc69958e36cd7e64d568da27a3f94aa00f1c624ef41ac7a3f389191e25ca921baaa23d8786048385e629428b78c4950b60b8bcd06b508f622c9f658ec198b7b803f227d5a30a992bbc933f1538dd1a106192d15837085f245c994be95dceff8bc6a79fd47fb2c2adf6a3e02cb984df09c4e305ecfd7fd4dabc248e0156d1975af7132d6a895100622a9cbdae279522706dd36cb44020a68e34f267e32cba03e95361c50047f331e406acf0e6f8ecc8cc1c371c1e6e67e0f8435650748f8fdfc6b9713d7cf8dc1649b11d03e2788bce232047c08db0f82ad81da33a23dfc916c90b1
+4081f580a00000f08ae390aedbca6b17c64909ccf59bedebd135e3f4cc31cfd0fdc9f44287e479568db05ca40efe75c0da42d82f89a2bcd6d1a7d7a9282bfc05720ab801b329d67b481afab1cf0db808f7422371bea87afffe4948933ad7b04dff92bdcdb590464a627fafa0384de0da4af36a76297e5bc3d73dbb853ee82927d689c02292935230ff0787541d4ff04a349bd93881ee072d5245d2df48ef2ed89baad13eb001432d78237423f73c0c9f45253f4828be7b5e18946be5b8b3d3e631a5353d0a659ae8ae4e9d769afcc03ba41ca5cf6ad2c1e79d7398cd925fb0199fde0c4bb1f79e19ef7e8d3f2630bad86f957c35ee762ff4
+4081f580a00000f0137edf145b1eb5b984fdba44f05974c41be7f1aa1ccb56d4cb09677fe5d06f11b57ac5ea4402fdcb34c2a77a88745c7848f706bffb88ec45f7b670714c43b2a2993212fdbe1c59853f79f4f0a491141bebe7cad0f68e8d8851af8cf6bb194a58a9a0177cbc5e761b5f5e68fb90a526eceedaa4f4ceb8fe9aef21c4356cf489a067c01e49b087f052c96cb84902b944786797a257a8cd06298e80f76b73f33787d9cdf89b27d47a89a4c7188bebbdd2d60753f56616f51dd89cb26945019ce7a8711e318270fc31c546db0f7e84186a1614f67f4480f0f95fd45175dd3098e72f40df470438c2e9d48e2392b5c0461f18
+4081f580a00000f05544960052d42c5d992175d07f5698d7d7c066eaa1a88f8db6de2adfa27596cb213e7d325de2712e500bf956a9ea78e52ff26d67e1646afd492e9755e04d6a2b6b6518a26eb07414196d526943b3815f2eda550c14526b9596399096424f52f04d4b47ece4b7e9adea0f7cdf3e33d7139de06088abd69bcdeac9575b77da0646bce5ed5384fd62df11ca5c968155ecdc606e5369e71f04be403bc0dbda1a73633208069d688a36633f36d945b6e0ea5eaa3c6a34dab86861d8d5020c815b53c7cf96122daa5f03b7fba31e8b8c0b8c344b5b199c3bb2658014c844ae058937b2c787cc7dff3bdeef6d98b4e90ea5b2ee
+4081f580a00000f083b8108388e622165237b9ef3fa81978f0d558ec8c0a267ab5369c4f4b147c31f53a31aea4827854b51438c8d785f3934b54e234a447aea78760bf60bc44cb8c3fb6ea891d39547493bc00df416f3d288b1f468e7f418a1cf914c09f028e96c27af484e525191a4c5ca96aaabd852a39036d65eae88a629c56e642b33f25fc7a6d8fd04f9b6896a7e5de2fceaafd73c5a9bf6bfd696bc4a5742cde43303e36d623227cdb7e09a848ee6fec308a53858e5d99d4a79011f23f987f8c079dcaeff49bfbd4b0470a6c04ec6ce434332e4a971edf52bdad3ea13c26934981ccdd810f5ed45aa4623410353c6dceb499e85b3d
+4081f580a00000f00048e53917f21e67794865a001e4fa36730d8d1248669d7891e183be8cc5c2d5b64c5569b39b172457d23828ac51cd052d5a23579e3b3c521ee314220323ce5b48fd58664a41f3baa6e08caae7bf84b320f1bdbb4eed4bee487f18d9e77404d99f48fece3f19360703ba1fcf9bd75cf1418b129b588c6ddb1135011f544084fdf2173621f143cf2d85954ea66d6729b5dd33f0d2a1328644526bf401f70d997896c3d2e9340a7816986fd4ad160f637fb787d143995aae732b9b40d3e37f91157ee65b4617228bdc8bacd35a9c2b64c50038ce095e6b5dd81d789c7a294ea544e167c17912602853b9520472e29854c4
+4081f580a00000f02fe9bf312559158703002786204ab25237df21bb0e704b69653eed16f3fb43ce410fb8d6be17bf751aedc22eb74ba4961440fcea391f357aefc90168123ba1d5fefd7de43cbf738f583e887a2e2ee2a91299e5a98fead50c5751e0df3b7f3a4902614dad0f27e9993428a1f7923f393d98c4b0c910a7f22c9a11953d84f23961e1e2849199389b040d69981f9c0681bcce46f8cb1fc95eeef3e52c204781d2160993f2011e87aedc37c11acdbfa1c025b0c7870d5d5d8e67ac4401ab624ff681b8fd861bf2dbdcbe9ef39cbf0e313ad7100b0b5c655451c1793f877b61908b29cdc554b2fad7d53396ab82723b181ad6
+4081f580a00000f07c8fce3c06488e4e8ccf829725a40e2f5791f66f1143c5bd721f43da16125f4f2591cef4e228757d4d473be07525bac368055294f76e8c5aee1999958293d463e28d6bc75ee7a6ec002a31b0b360e2e47942c8650d962dcd1dbfabd37fb6f445d6d57a4f37844aeef9f6d4f9886d3a17c7b9032ef5338d63f92062b8f3da088fffd19bff310846097bc56d164b6a3934784460445ab124f95f2957dc36b1806f33c7536d17ec0a4306745308a7fa550f739269742914ecfc04a5f3d230de974cff4f02f95d7340f23aa7e3128d5e97dbadf01987f2f9a4b60b35eee8f8171a62087d51d57d8c4b18552ca7fb6a88b5c7
+4081f580a00000f0af9f484e561a42ee5032b475138d3898e790edd4f18cdf6397d707bb91021821a87b0210f7b59bbc67b0ea003e85497ce63415005c90706222ef8ee7d1454b39f7774264f26fd646d924a21e4d120f0b74b29a349d53f748fccf10cf70335da63ac95262a68809187ce4a58109cc46f9ddc63004ee768cc661d6753fee94ead94cb4cbe1d9e195dce64292e797134aa079f28fcf6971068be0db3ec481e523788e1bea187ee68784371642108bd3c7544880e45d32ee5d9ceb6a1eabb55e3d53e7ba7e4af063f8a4e80b01d1395de3635b4799500f9b6ac3a3f89f24f939965956e2641eafbf3e6e971f5754d59045a8
+4081f580a00000f0110217f1670c484825e7807ff987c2d41fdd1149644119bf0f21632b7d50c8bece0fb670ec658c8f1779e209b3d3cbaa2ee85a66b6cad942f96b62c0b00cee94406ae104f960b6cfbe49c485d1798710e1c978e6e11b5046482f84ac191ab48cd90843c5bd65873c100e0575d7ed0721d79b1679bb6b7a5ff4ebeea178970828db20b10bbfa4df526c159d5242964676ffd3eec78e770f92aeaadc99b11c1acbff07a9ab4f7ca9060346925d1eb408f147db1684667444c6e1611022ff9a3b35e342b5f46f772116b60bbd0b981f5fbb47484652483fb317202388159a57c20383875d3ee9fbbd5a1cceaef6dae230eb
+4081f580a00000f0a18929bbad4c2858304c4214fbbb9f964f4c733a69d7d62a77dba35f7a9a95fdedb26cb79743984baed726b860f14b83bda46fd2316f24e7dccbbce2392219cdbfc2dbd470e402a2dbb64c5f5e81c0af42c3d2dba5c4fcc185956c32c899641a8a982e735d252267633aee930004d7985e6b5e600e21e404331665cf5b05a40f9e3ffbdb3ebe6b421961f97c8a3bcda6d898596a01b0968d4edee32fb1ba016475bd03a72d51430d6cf21e43a930efd13f1e6413a7c93e6b798fcc251acaca84c7dae7bc353931d968944c08d56cffa2e85e0665b54753c976a7fc8bd83ac830ba2f47584e9d3ff99f14c99d11b7a149
+4081f580a00000f0df72aa02c928832834a626c12ff0b5e9a7940ca16f01b3491a010741564c495ff772ed1b1a21f1a28fd1f220e963e2be94ae0106125ed97d2722e8f170a75b82986a6160c56ec82f0b8039279d9cd8b26408cbe9bc9bbae32f7809faf551ad930caed6e753c940504cb09b84cd831a7ce0b81a8e669c40dfcaf93e41693b9ccb254cd53c5e4f60c212dbe1b2c452f0b3220a7005171c741716bf27f760380f6dcb65aeba1811c5dd0af850f68ceab241b7306385a9bf4114f6a9a29c07e831020cafa53851382c01ed9b649981063255c8be19249efaee76761ac5ca9f2220f0a1c8812a854cd726f275c13f95c96d28
+4081f580a00000f0655db329bd80e25eed62a3254800911ea86ffa1235c73d9d7bc8e55d55a7070506b376ca39f89d0dadc2973da9dfffb4c1b520b0aafa623b2dcd95c45beecde01e8e8e609b16d74409d82bd56959445e9451b4f6ef89d3ce010ae5642bbbe56e1eeaf9ec4441533b4e285edf8a16cb021ef22311d7ab216b24a68604db66e88081c7e5629fa2884670c64eddb7bc9e6174b68219c2f68d2414cca0153006847b0d691215d8157b3d2da0317a783b6d21f85b6f24084b2ab7aaea2e826f6b25e2a11df9f26ce5420b06f21c865bac37687124ce91b9275657b1ac74543aaa6c9b50ab445c5014ca519bd24f277f874947
+4081f580a00000f0f5bc58b60d07d791f04d26fbca6b689a5916382d780955c501b214a40a5a00e2ddc8d453d25b5ffccfc57cdd9ed3e53b8645673f109f6a416ee0789a864725868346828f38b7acab6e3cd22422a56d4020e00cf9049d6664ef09c437cb6343fdaf0d08d349655565e19e90de922a06fe4e93758840a05275dc54924153652352652703b2cf943c9653a63c2bc16f798b360bb46487dbc8b32daddc0c4f09fd2975d5e8afe02394032036099b28dcabc023d757b5548c550bde867a6efa01e4866978f8501e9de7a2014e621921ceaa1fb3a10a48328ab465801b5d3b37eba438fa8cdfb34e4da9c7cb079a60d22cc278
+4081f580a00000f0d4c78860ba63c09c37598ee70abb490bbf9fa3b1cf2172aae7c8ca65866c83886478cf7ea50566f2260a8546daf3b6839fa0b34307b2b43497dc5f24c864ec002c9bd71ec241c38eba7fb11e2e2c8745ac7f4bbc076ef415b115ce8f485b9bf29f08dd1cece2dfcfb4360ef429d596860d67926387dd4ef634d452c6665487aa3bb3addc239b11270001890637b8f828ec0ba3ac151b62d409f9e29d42550a94788ca3f5d0f6a7d7ea016efbd5f21677932bedde6b8f9e470e63611b1f28abe868069810c2ea1e45e0ac4e2466fd7f1d4fec10ad6551075082ba3c523de4e869fa353397ca76c0a5133846528c07f624
+4081f580a00000f06755afc6395ba578847c3a220ef37d90425417994a7426d8dd04caba14ac5afc0ee5c12330967d9715b1c67e3124166596cea35a82bdc6051053337492ef459393556e24da5281e7eba68afc8f596c388ae624259585e6d1f8b1a0b810280cd8036800fc19c5c02e84ae4e6cd412e3a07eee5b32ba1d1ed7bd6964b67c6dbb102a9d8f3e7e3b43b83269c5280124e3eaa05e849181ff0f45eb7f81640163bd595c586655f01db24450a0425c15e3aac937b520b8ee745ab8264d4e0a2878e75e12e2de19f0b785fdff5e24400a8162bfc5ce388e2b1f41f83f2434c4b5ca662b112e3f5c6d6b57101095b4321e6a6f75
+4081f580a00000f00d4b212b5c0eeb6289c647b0332e1d0f39d0ca3b4e5c4efb1991ad4fc10aa6fb1868a4921181ca134432b28054058d431e26ad21b4d9f13c55b06018fa5c7f94d9d009b938dd799211ff323dab01d2a302644295aa9e88b691ac5f3c2842fdd0d2f440ad8820742f6abc64dc5014ba77d0983c8c495f86f9db9658495ea712c7f0a4ca768ab802d9b2a1cb1cc38a901524c65f685e971e1082e1434f0b4435175445d5ef72519aae51f51a07d36777c6f5ce6995fe64b216dcdb0e4b14f00606ccae2ac16a804c7827c6af9113fae40d62e92120cd53861a82c01a33fdba5f9476dca944909c13d6a48991b8c2e885fc
+4081f580a00000f021eee4a01c3d371b196f59f85b54fb16b9bf675bb266bfef6653f4a4639d7ac2879988566e972c93ab5f1e8f611aa21a799822491a841915d25042fdc392ea3c99b1e64225f44c375b77ad8da4fcf1534eb534915002978db0fe092292aad66f3b1f7703572c3f34260d0a09ff834287cbe6dbb6f17f6344fbe2f032bc25b5d088b2d77173df041db7c1192ddf53e86cada69588cbb9c25547e2025fa548b4fba975c96f84e579d65c9bc8c47d0c05a69178dcd87b50f0aff071f8a3acc9839cdfbd909fa7a5555a7c919a73e9e9597ceb47ba6c9fcf2961c32e0bfc05b2da5f15f3e70a9e2a92417d59dbdd2983e1de
+4081f580a00000f06d08ba99b8a41ebda0e2017b3256c9c08a7b37a8a3a42ad755e6fb9c6151016f024c181a8af9c62a3cdec3db92a29e258de7d718875b57fd39054df4a97c405599de86126a821ced4662f76490f708e94d6fb5390f2a2997ef6d868041804592c8532cb90e1e1f618da358b836cf52dd348b198c13745e3e0e8fa262deb17645a4c18ae5ead1125d4f34f09b7dcec2e3f969acd0dedf85a648b0b4a7aaf211eb418dce57f5eeb9d35aab9498141c290b83fb281b9ed26758058fcdabc923fe3dfbaf0dfe867744f3d74e6e0795dc9dbbaebc622ba10ae5ebd3ca1fcb88efcc91834319fd00130b6587a04dce22bc19b2
+4081f580a00000f06fa0aae86237b5aa8e2576b267083f8d5e775cdafbebfc456b5351c232f2c2755af4fd7fad0db8b3ac41285077600c2cc4f7226ca64764376c2c85fcabe5b79c6fdf68a573b250beed92a0e9025e599f2cf247c726cb391d9b95851c7b205f59389ad7002785084294c5a22ad144a8fcfe1a46f0903269264f2fd227fd503568883e8f0f58f058b34acc686b62c91bbe6942b3a27d314c1afd5ff45f982ff4127875d0ee60d60eb5fc0d6d87c511860a8a119bafbd0286725c547b068ecc3f93756b349a7b7225e812d20a67cbccc876bb5103ce5891da6ff0e3e5e489e8bc9960297d90e2e7eb98f31cd318c1212f13
+4081f580a00000f002c115cfb1b0befe0ffe4dbd5390f8c2980457c7c8944e0931b05671d8e5c60a2eac85d9fc87c076192d35fc084891fbe76d7e169792d93f1e7787cbb5ea0b522a32709584ec0a8a122aabbfb31a2eb7adf0bd932995830da3829ddc9c39623aec09f27ff8eeeb551eda22cf61791d7db6bc34e940d38e26340ad6fb5eca4deb597da3b7b90546c75495d00e1411eaaa68dabf07ed4da34266a66fca5d607db1b9359e7a36cd077eb300f06ce8d3e8f1827a9b6351ac81efd9e4907131122aa90eb4b07605402217b901f521838715402fbc6c44cd13b9f8f0bff72881a500826a312631951792b933c2201be7c1988f
+4081f580a00000f0254ee2d70fa6fe4fe215637737f8489f20c199c7fc4b94d600c6f3aa5c91b9d274b6b328172abf1c3b8dc8d2f46cf79dec2b624ac61cc9c13b6b6074276899732e273c5057bceba7625ceba3715687d223d5ad76172e69c50df3667e523c7318eede8e017f6b67facc2a894c0387e6f5ca21e1bc11e985e3b3aa6897f5556d7cd279eb1ee4503a9cd56f7f1472a912a56cb47240ef62ced0d96d821b78a9f970d486033a9093bb81d4d3c7550bf68331dd5c8efe4da33a2d59def343ac9abed66b2fc28c5e1bea50454b1235c850cc67ffe7b8d1234305a16b8ec4c1ccffcedf18d60b60ca1d4e717fab91dafa102d9e
+4081f580a00000f0b9eda3fe211a11dc68e09f2ff46dd648cd95af080efa1b56e4cc6954fa27fd46aa05b38608d0e09133739a0001d39dbd15073baa3f9b4ec06a722d26e7b78b4d03222cf1f5ee899223614a7c334a1c076680d8d0b9fd209213fa0142ac0ac430be8daf89ae2a451c3d7e006bc45e5875946941714437f45a21fd894df4d3bcaf17311a0ac86694e1a9caad540521187e6053fad58a61cef405a6258d627586e74c4c70f5826198e45e7a59a576b210115236d673de48dc0d49b52f82d37e946d93c03c41df06c3bc09f4e806a034099d83bf50594df5c961c575d5035b1bc67a10712bb7cfb4265a9728b782de14cd50
+4081f580a00000f05b89fec402e42ec3ec7c478d0725c17f0b9c8d71c56b25e90a98ae9b84e2abc514d9ba9ca3f8c28ef491cadd57e3fee1d7fe0449a8b73c53b9603a7f0f3a1a8682709668f1961b72a7b9de0666718cd97eef09bdc6e414fa95f3b524a4d127e62058048ec42f34f39fc3e66f6094b9fccb3ad6af05545c4c695b14bcaa7350ef0ee18247d9ae5ab0deca8e123588cad9dfcd0b3715cffe74755e78fc0f99f51d3d0f05b1ddf609e76a0160b829efe736517c5b7b27463182eefd74581fe6d6e4bc7a7c9d15be5deb8c70f1ce6d10880724f8476b0409ac5c793145b0f6358a6fec4619302671cd76b822c9a5eec5910f
+4081f580a00000f0decd887953ab2cc74d460ae941af06c7d2d01ecf92923b01ced6cf7c3f415f30e2d3f857eeb442ab025117b39c7ef19bf18e72830cc671f1203c865e813f1d577e3170774910ac125de9398dfcaa0d92492e882dab187e2f7d419c2f2cb4adf509cd1aaf71c88d705b6d151d4fcae9902418bfebebd21cc215a4048b2f90a332ed25f629befc68430e9be20e7627dfc0780f4c4a8d4461d810d56a474228a5f0ce9b84626d719237dc768b5ea728c5ebb58e11d6da298b9a924b668153e88950c96d41f4408a4a2532a6fe06e96b455f22fba160d539edffaafc1547a86c40d9dd3d86b4b08cec35e23bea60ab9a79e3
+4081f580a00000f0574c0969651a3d883b5a93801a599be3f54f7c930be6e27a8634ac3c2ee5c1e4d4504b6a4ff56518434d90dcfbdeb8c1861b2d702f8cd03f3fff3efd101b0f9d7797d15f9b7902c9352f31db5719c764ca5c16844f138af2cc8433caac728c12b5d8777ff974d7e2a14c648d4df700e87d7669c80a783b76a3297d8e48c9ae607bbccdc2c9752a0ae1657d367be9b213d5f3fee534c07d0e92aad138cedbadae74741f2f7a0d74ed7ecbc3b6cc81418c3d1df33b250d758e155202a0645f92d3355e95a4de8386457d35adf97a2f563b491a7bed1919428ceb063854ee36687fb037d0ee791192b3554c7028eb94372b
+4081f580a00000f03212b2ff2807146a0ed35bf8259ce377680cb33613f854c7f064daa31fac48444d6fc3dc83303f533b2c290af073b828a994789031e35e0a5be82fde88ef17ebe151676967876753c4c40823cc7c4446de82f795871e0e7cc158e6a063c3b44f1c10f8aa483c7ba6ec940e36e2bd910c25d78dd9b22f718d6e9c3e355531a231d33ad65a556b1aae99431367197ce3bbe5d341ca57956e1abd4b4986b00d198c92dc3649102414ca44850ea09b4a1b7b98bfd942c1627badab3a869255b5bea91c361441975acfdf67456334716d15ae7bae5ecbe4aa1cd84e5c4263e1a6678e644dd3984479df308b9174228dd53948
+4081f580a00000f0826e68085f0cb3708a250b19b8d43f197fc4b35003e22d4bf0ab9570e740b853a080af823dd472c0aebe5fc62c7f1951daf583a93a2c35de48a1c518b26e50cdba0f7d2576d443a0cd46c360a9ba83ed9dfd801ce26765d6fd8a1d27b2d8b697e31b24e4c6bdd012fdbf25909af6b5990881ba7cc985ce912d2006df1a02ed39fcd716de2e3b3ec43a0cfa32f806988f96cfec9d32e171913b4438d3ecea683b85bdee15af5da1e9395f0e4557a519f7e06274d641034ed2b2724c24d593caa5070c16dcc130e302a4260037c26444019d3bbb8a458ce6ce2974d6ef8fde2ded500227f53dfd29c935e9ce791c943ea9
+4081f580a00000f043e98955dd2783a91f01c469c5f25d0fe5c752556e3f67b418157c210ee296c25b4f46621a6ea8f7568341a666090f6ba4b684008cc3dc960f13911315d260befa48e5b0d92fc20a760a899620ab63eeff585206398298d8e0f7681c96c944f793d8983ac960d5c3a7c863804f5463afe62065d7e9f766272aaa5f78829a0be0d0c9a2ebc509baed3780e8ac7767e989fd5bb213145ccbd332de999c66f603029cc7f6c2bff14d69acef4d607685e8ae3a75e1d670c1e9e5020e1c6452c7eb1d949745c2e12df2febd420d42d2fa52f28e352aa24a0cd3678a7e302a2a5870b01ea3999e4eb29a0cad5c867febfbfe74
+4081f580a00000f0078df105d5c8c7ca56577a19d82348cff2f6783884f546e74f09515f337978be6b4c17062a1d9f841812085041fc942158cf99b853463910c7334ca790d154c4e446a4595591b289d394fb8c442ca907935587eba3e304e24d84ed40862650ef0081ba47ebca03323b313cc3297146130a2549ea29b04bddc4d7b060b109e0ddc730a891767ab6265ced6753e64683bd8400d77b517160ac7f17b71a5faff794a3c00892418d4be892eef793bbab10599956f810bd79ca790914d72d40739d1044b595b9af00598da9e4e07effecab0762ebac7bfe3d9307cf776d4b1a2c41ad63cc967d946f6b41930acdc59ba16c97
+4081f580a00000f0e6ebf14c769ae28ec09893670b178a1f88c0675dfabec27837d03b1a3ec7c696fc2c7c80b507e4f9ecd6dc5cd1642acc17186243c1d404b3dbbbe5c5e41f93b23b5808ca3e7d1753c525d7b15b52985c6261bf7d9bb78a60339b9edfffd19e3e3468fceb9fc07280ddeff1c80bc64f897793951088f79178990c0365d601901faa4a8f0865152c6d341e6d816bd9c8e903b520e1b9834973bd4f29805bddfbda2c4b3973c847bc87b0b3a6e28b11e40b5737667d55f955e11a02fa703d72ac8cb3881e3ea6c254451740cdf33cab1366f300d237de3bf5b21db61783e6613e4e5e5874f7ac9357c521d4b416f9e8abf0
+4081f580a00000f0b7395cf28c27f84ef06da4454de7788494bbeb1b70d54deadc67224ba4bddc754bb8773a81c69dd0d68fbbcaec05b25a640402d94b0e70d3851fb71853fa33dd10adf636ad958e9bf0650ef4e92f0ba2a1bebf703d483a420f59b0f8b7e685359e068731caaff32ee48ade8b73c70fd854d87245ecee1027e1743c6dbb1d524d428172594a5c49e0e8f27c21621cfd3d327c32f704b921174c6dbc867030813b641dff07f3afa7e4921f2c7975a34939912fbd86fc005042e742af8e995d8974351768366ee1421a48b6ac830d735a39a25462e1752e1c4b3c268f20fef6da4537ba486e49d68f0b46977c983b94ed69
+4081f580a00000f0c76dbd84344513686fc6182d61f5c00a8a98ac81ccb009b91a0d983307a740d7fe0245dbffe7cfbfa146bcec2a8a509ddb502febe4c875a3303fa13695641a9ea82a1c65d7d2cc81c2b0ad142d5d8226ca6cac482f0e32dc67af97390cfdb8249e2f0d6ae4ad26c9d9cd681844f0ee630cc982202ee03d06cc5e0c55bdbc75f7a9211c8223735281abeba83dab17f2f804b24f6766cf91340d8f987617bda91f9f3053951103aa9292b6c7f405600fdda282a3aa0d6964939420b7ffa536ef45449c357b4804f0a7056157497d89a2e6bf47694c5288412e124815c00bc122706b9c493f3ad4180055862e84617c8921
+4081f580a00000f0316b6cdb219626d1e6bc5014a3da156905d486dd3b311e142e87e13ebd1749ddae2e627ba4395e7535bd69177370a76b962031f3321b520539bd2a5bc3db3676719fb781dbefd55686e6583df125d36ca52680c00f82e63d802ac9f2a8204a86cdba36467abe4122583887a8a05385beb56fb00bcdbbbd1b6821293b49ee0af3dd22f0a01db527ef075868f1fd18f4120b8ba2f2976def58f9f74b907bfc145838ebe38fb51ae57bbf5ce53dc11bcbf2bf743e60866a228388bac5f41b1feeb1d52560ae21333cddbe8938e193ecb3d289e5cbb11f122699771989a681e4f7d27e08050d0803a65efe6eaa2b1843db10
+4081f580a00000f03971cd423f75a27ad007ee696f888b6db573eda74e337a7b509ccbd9456b773a72060c60e475e0aa2c5621b6d5b04dec7513a73b4d81be70b61b1bae6e999231a78a7d3d670c76c16bd065702049bd7bb78f9faa1fe05dc588f7f721da419df5e1703b23143bcf6da1728a0eec9bacf36a2d137931f0b4b0f42f033906af5542b73b1c95ed7144bbd42131a357926165ee7f2ac613df1bf29a8ec00e0c8e4ba0aa7dc39bde1537d2e1669776deedbc81b14bb6de5cd2d94559a33a7a0d184c70bddf1ecab55ea14413c1541eede7cb211a42acc112f6160fccf8c28a71970279dcf301d704340c6d15077628b02dbe0d
+4081f580a00000f034fd34ac6de877229fa1db873a7d9cb5215e8a1921df198040017650b435c6d3c79dc88da6fb0a5f4df1c112aa485650b1925dc53c54e08bc8a36843ce84ec7d0dc03b09efaf8494828902b257422f64951d8f7827c51c60759148dfec1868bd7a8464eaefeeeb4d7f12c6049b596334a962d47cdf068a7d4949665c4b10f718dbcbd43ebdb7f28fb756b5b6dd5f9198f87176771f0891988885031a8c246de3c9a4a0f1f33b23f9509786fd4e080aae342365317d76eea8773c8273cf5b50c2ee95ed6b68165a7443af15efef88ddd2010517fff2a366ac3fd47012cb1eeda71677d5df3c96f615991a7f462e09a390
+4081f580a00000f0967a32e74b11ec4539618aac4f0520be60d4d1abaf1a85ff7d74618b7166cd92418c721e46e67723833a8ebb501ca5fa52a87de2bfa98519f837d7553b0f4d21d6845b64643a434c31e7b162a016229c5df4ee0ba8f06722c8c60eb35a592fd03cb753dea5da5abd8a93f89b802c0890f5d244085c86932a1912b690aca487054290ccd5f2645774ee7c0d86acdfc421b235416eb5bcf95877fe24a31866fe7c7583445368523f0755e7239f11bcd1467c9f81db403769c1d7adadd4d4928fa4dfa8d5282a9af4dd3b604369cb31d89b15cfe3ca9ed4ece38fa61ab6e503f1a60c1f10dc605c50a99cede6971b714d1d
+4081f580a00000f0d97347ff547ee714c4b9e9821cbcea0dfa6eb75179d23a0909f958475373b97a6bd4124e7bb68e5a8a2788fe3e29c7eb8b161deb1696a7c7e1567d989d4aea6f701f5b5e2a213b9a4de13bb5d951192f5e8cd477baf18bbb9ee6759ca8c9d1622c1fd69ffd54683f7255195fa5325712e9428fd5eb40b77babbba7fb55ba9098329bcb1345673b1636ffbdec797895b931c4dedc0ca4a779e367ae864ccb1248706d7de8ecc57d5f1a7e5c24e75b28ab9f4c05e8b73b3d965eba69aae2a220c345ef60c3301c4feb65ab223a0e44b55d012cc1edaf3177e4e80c9c16be8c514789ac30a981f2b4adf0aeb5f20d52ae45
+4081f580a00000f03c3c03f56bac968631c1223ee9387cbf3df495603d34b2aa5120498b3cb22b6b30509e6914d677e1781985b9ae2f20d3c43c7d7c429468b88c6fec39f36eefd49e2541763dc3fae8d0dd01981f7074104e1289cd25f26ad157b10c21e52b495ceb34754ae2b401fea0b7e58c8e9352d1993605f672e389dc5dde21b5c90c66eb07813b4a96c8bc7e26148ed6e6f83bdac05e42b546b1884e5d83174f311de95cda808aea44ed7ae17ea4e748bf9d9aeb8c620be8d1efe0b0a6d413d53c0aab9416deef565e4bc71318ce6c0b4d009b880f5545bfc5d1f1983ddc0d4f44db47f8e003efe11b4d6deefd0f3ae85a74bdc5
+4081f580a00000f0f1687992c35da4fd16c9bf3a87cdf3314c3c382c8015f31e089cdc7b47ab746d9529ce92d9e84ba9743cde6696330179d3a9a428022bb94c35423ff8c90db7025478c2ff0dc3ab4b56aa145bdb54eb35f16ba339113e932765bb7811332a77dc711d05a51acc74fea71d57ccd6e6b85cc36addc7037bbbca7fd074b931917d0784d771d7ce4775b8215850e7c096a4f771d3a0b9e13df61fe861a18dc9e9804e78fc0ed7200a2d58b1b5f91928b24c93833b9560506dcfe0ffea167f07b33bc567f100aa1fecfbb20fc3a82c771cf08a056fa606eb0722da788b84982f81d6b2988b2447b43cf78f211b98eed9493756
+4081f580a00000f0004f56e3f61245ab89204edaa0fa4922551030b983523933fdc6c484ab81187b9f9d6d83d60905c8fb8c6150209f2e9d3f0247208c06e16da853b99d1a34203b05dd54425eb35c62c2cf94fb1cb42ecbfedc3be5c970bbaf9edecf866d2fd1bce377f656457c5c8af7eb0a9c989369b0a07286a3907c30f87b7642fe522b00a0f0279819c4f513b7dacee3de76b110c3b8bf724ae9e42915059cae36a28deeca01452ffd7410d7c2d987e5e69c5cfeaa8049f37241dca906853779402b17aac1626229bad23e6d96f465fc182f6f8048bb7147666031764705aaaf73cf8a6be30367d713b59eec99face96fba2b4aa13
+4081f580a00000f07bb55bd4adca9694c349535e8bacc93136d76d6a0696c48ed11b8b5e51c4f1e7e6006344a876088576d45229fd695b14646ff351a41a281110f175a323d1b491fbb76136bc15fb1bf329caa4d7d68f95dc18512eecf5d8167e8e5892556062547145dd12e1ecd5b29b7639f958d8544cfc4a15b4abc6ff26f457b99642db72ef2510ae49edfff8796859106b78f3b5bcb232ab1b93b04dacfbe0286b747612e662bcf3ef5a6b92f5f7940654551152d716f732a407d8032adb73fa5c7cae46c8e92cd12bcf677addacddf50f797235bea5524eaf3b9b0a12ea0320cb07e0bf54bad08569e15dca62673f46cbd199f4e1
+4081f580a00000f060006c8cb455f512aa48414fbd7cc9cc4197a495565bdc52dfe7538e8454c4bab054a1cc9879fd1796b3725c26dceeb418f4663934b4ce72c92574a10be47846b6646a2dd0d97b4616a5c35691a0e496c18d8403d17eaec771c40279483e53f5c86813d20e53a89a8bd8602b622aa4c828b21a18dd00839d61007997a5f6ef3afe332b5f8c0c4e5a44a9e6634b031f7b7805f267d5523758342f3763c1ed46ef54354bacbb68349d57ad8e8ec29eadb526660d853aa22e7857a1b53cd4c963443311ea5ee440419be6a537d6ecbfaad519cc1194a3a7adfba6b915bef4587f0cb38db1c980399e67b8cf4a832107dbdf
+4081f580a00000f0d66e930416880d51467523b327c163b7873b7fead6bd326403fe230db5abda60040889686b9cfe76557d713ca215898b3255f0976f78862fcee5bbed9ba490eeb6e5d08fe45559f05057ee3abccee11fef500a2e12bf539216ed3ede01a8843549d42e1c43763b49e02bfe7fe1f4931c366dbb4931dcdc382c5da2a52bb30d9ecb1b4adcb88f080dbd2fda7b861f9b889bac9baa7a124a5d29449989bf5a671a48539092a89256436fe4757067e8bc0cee0c659c1c22a3dda7f8039ca7d9be8a73ee8c7922fb7ccaeb493e1e1c8381d25b880defa8439ddc7bbee7d5ee1e5b301bc74fb0c685d160d78e0a9d001e09ea
+4081f580a00000f0b3180c783bbcde0c579b99abddb320ee32791a8732535cc1da9300d9d043e7e5adae57ba3df59610741d8dbfb636f74a228f4270659dd7846b85a3daf2234d4a9031088bd72065522df531d535466d585b0d5fdf1cb443032e5d696339acb81f90e2f704bc0243dad366d9dff48b84be3b0bf0f9f3bf9a569f076e04c1ad61e3ef220f6d51d3a61cecc4ddda470053e6313b6d2c8fb8a92403d3c9122f716c101803d1295202b31219078002fccedd332593026973d68317d0780303707af04d45a83a71e0701a7b8f602db0a5674a32937c7b934ef84c6d87f4a9b5a90f9f64e1f2e0dc6dc59b22bc9c7afc58e0c8ad
+4081f580a00000f08578535a77f0c569ccd652bb4e28d25d00466d40fb3fb1c976a390638879faefb39536cc63046344df84c75a719c61afedd7f0043e67e33812d09367a40d4c596baf0a1684f510653a2aae050afbe9fb6064e2d0478f81cbd17343a9b593424936b2c9591f07dca17ba2a99cc24d7c986f2d48111983f7250e9bedb19105dc7d93a6ff1a269f69babe3fd785a997d39679acb40512a2a62a1489f47a32290ce56016a4cda818d5cf1af2e3875cfbc9f25a94262885672c66414dc9c6204eb0c88230e177ccbefb03e59b39efca19e13e7852a68b9ba327db4ffb9f8c7ac0ea889b2afe212476e38fc4b21386b86942ca
+4081f580a00000f0b9c769f8f77cf44bf0b7259d3c028948d3475011bc4ba42c141d616d87ea35f8f7670aa256e89a48204dc4dc4093569384cf9b9ae8ce48028cab08606d68f308814d17958a977bd6fdd31346cf5508ce0609e26df27ae250b4ab6f9da7016134b36c45a438230ef85b03622a26a51ddfdbd24534a8b3ed56adc974dd842d4e1ac7ffc685cf2b413c5e57517e81a45e29ce031820c3f6330db08a92f63d3ed481ae0d615bbd57275c19df7bd95055b644de36d2f3435b2ec10db461a265f166b8c7ec4e35186b492aae756f8aa3640022ba1166ea33bc23bc21b020cea66c915ebee95209b1e03bc706de8889359c6d47
+4081f580a00000f07c59934c5dde40c8bbb7734d294a52aeb23aada3588e2c6f431748f9ef0af31f2db03c0094757c3fac2e2cc18433aef13f6e02f39b5240663c5393199c6f7a601005330822fe29e750987f505ad03802adb30f42c1cbdaa930c9393fd832b37d8a543d453e7478fb369230e8705addc05927ab16f616882933385c34db36d25fc2bbdf3490a3b13d4be42a4b3a013d263e27a8fa8838b3270717d3f4f669f393da936fee2e4bce116d21510dbbe79380e970e87f28ca29274f6a3286f02ab29981eb97a5c0afe3a3b19c18a85fdc6981a818b9c4cd11561e72cfd9e98ee48e1c45ccf341bab705f89ebbe42b4c83dab8
+4081f580a00000f0056f82353a3a39ebb8ba66048938c23fd59d7a4b74b60d96c1f3548756d457c0831f5b5c84e821b975ec30647e8a434910bb566c382e5e900b5fb657ba21dc3000f383fc34bce10d26ae77da2e34c679b740032ccdc902036e7a25efa596a047ee80f853c11452fa6deeb88dee733444760114ce19bb1dce691f23bc32d08ec266c9e5d2bd47f3846a11cb6ca7893f1d9e61d5f0dc28a880d3ec39689a98188b8ffc976d94dc0759815c94a203d87877ebd75b1b210980b02140739494cb0009c038d38e1e0c886da8a012d567429f16586a3ab4ba3424df78f94503804f16163d57bab626f9a68e7a4cbf55afd9216e
+4081f580a00000f03dfc2aba5c1332d25725ecfbefbd97b5a6646229f98f87180d3a4346d5c601a5d606a2855349d10c81264360cbff3dd10e8386a6716ca3cf324bd1dcb94afd4fca8e68e46483bce935a9e3b4a2cc1e0c190a621f12a922db38c8bcb1d0e69b970605bddceeec7c736422cbd132c2031f37ff2a332fe15ae5f4540db010b13deaea8da44a761d87e09fb95c4789558e037d41bad50b7bc76fe12d303bc4f30cf79beadc9be76f0a6460c6761b8e2761007112cf8ea9f17ad3c0b4927cd6a5859dd30edb6b7982114662d0f4d40e610f94a9fad4954fddd3eff255cde9c66b53a41fd2b2a715cf3b7574d1d46bedad247f
+4081f580a00000f02b521878f6e70837c02abcedf479e7ab896c5d8aacf9e86bc63e72a09acc559f78e77d09e4e77a9b82e19ad41355f7b2a86ac44720bf0284dcd1052e739e0e1c2913e3e8374958d634048b9858ad5eef4c1f15132710cc07e4e19dabd27cc9d05be904843996863c888706695e265bb5fa79973c9e3c145a85622e2502fc0d2d827ffecbb5371eba0d45e4b1e539d7226db8280ebc206109d451c075bb0a3ebd2a795c0bd5e18abb51851363c1dd9145dc6466598a1be1bc0907ef2718d595a2dc293052fafdbd65a3005f3949662f027c344164b91725b3de4f50308504472ccb777fb08dbea5745cb54f16036a0e80
+4081f580a00000f0d284ae630811278748bd462db575d6edd398db5f85732f199d71528662ef5a4b9e362ff10619b1aea51518a723b897e89d7961a0232aa3929567af3d214c8e975f20048a7398086623c314686d199d1fa96e740a1720a545511b0cdbe0c0f51131af74f4395e8cc09c09c902d74c0f2abdb16661d5dca0439e8dd9e1040c732195ba2443dc7b3cde01b1064b10d15686a249652be82f6ab1384ead93e32cefc8ae28e51b53ca0df84f916b0b0a6a214e16b5f969d3011bdae89e05ef94e098af9f21d94d4b51c3296ef44162338b918c15ace9f0ddf33057694bff4ec02bf7d0f758831a5a6ce7e7a61c88e7b2107579
+4081f580a00000f03ead5d46af61581192b4e233022580cba594b9ba27de73e98bec50ead88fddbc762e394cd82451c404b7b29b0e75677ab7c45a046c09b0c7a2957610084f6cf1b48e4024e71f1fcdf872f4f11fa1461c347d086b2b61a57a385942cfdc24dbdbc939c9f2ff0af7c1a9cb9c6869303c5ee037019bd18f6bdf642a3a37368f5f553871ca5124c95dd1a7680ef3b0997e3e50fdd1bb675551a98bafaa7bc95322303f3494ccaa2afc91ebf37ee430b472496212d6cfaa71da9d6e0180d73a33b6571a5d3bd64a6ed70f4440ee602dbcb0dd84d3e9671bcea5142ddaa5e2a77afa734a528c4bf2926db512f9ee521cdeadf2
+4081f580a00000f056b97bab35c474669d037c17a21510309372cafffb4115820b91aea8e8e80aa47878e51d2653e5b2ea85b03632c527833731ab80aa6534ad609679d35b3d5a58a00c395468918f4b35a27cea65dc9f794a772199e8a8ea29521258f5f4b99489d08cb852fcc0d43a2ad13a2fb663e4afbf8f4417ce904dd28519f428af45eafada3fcc9bccd71f2944229a307a97763cea22c67e9f19f2d3dc38fb5d6b4a6d506cc658095c53812e194c77a874d1457a6ed184bb78d942647d3e246f401077c277a5ab7a920ff3b38411e3680870fce7145226564aef82f0b258ea1fc78ce303516d9834ba245c06d2a5b7528d1119c4
+4081f580a00000f00d891e8ecd37ee4e1a3270e4123123a4ec79855d383e82fe0f47a9c388f618ad9175de5a350033257f33e1d28d1f0cb8d0b3302cf38e773e0e190a417f0b6c2d343f37265911b8dc5f39e64f3776102105f4c7773da3d035d634e7c4f8ec73a256868f0df28b90a9c2f2e2d9bac16941e9dd97395fbccc38236c2dfa5cba04fed4cd359c32ab30d0e04b3fc15d91fd00685d98ff83f2abbb896546fc72e5996e4748a9a616163cb2438b13859f0e854b2b9c29393e4d52c799ef6b7815720f9a609047386d191d8ccb99facb45555b769b134bc35f6dc362a63bfe5177a601f924a85852d779ec3014be7bf16f411f2e
+4081f580a00000f06f6be1af837688460a867477074df71e6c0f09460d32cfc2bf333cf5393cdb65280f7d29bba79fe2b4c061c3296847af0210faa71abf9157f52f8f7c587e66573840322ed21bf06e1a83b3323d0b726554fba490cd8ae7ab4ac13f282671af873865c5326cd16f386d8bef8b137d869e66fd05e7b7cdb09861fe7f992ba17bcd34b501d8a6ea96558115ec822abe4b834941be3dd1cf6930f74ae7872806a558a5acf348896017b6cbc5ade0c6c198a5865fa6a8d7dc5e5f26f22c97c031edbd8e61812613e27b5f4245fc4925b7aa85559be088ce342d4e177815c06d8b36d694d77b3f36e16d39429a004c6fa8b943
+4081f580a00000f0307cf4f1a1eba2ea8ad394b7bc6131abfaabfc41add6fad5176114226ccbb39b456008c402739ee841dcd6b4401929b3712b40a73648907de2964fbcff82515e2e37f797e14df03013c5a20276f6c69bf3eb07ede420210c69027e04162c3bc3860c93418b85596ce8183d3879597e5fa7d746334cdbe4a9b48dbfbf06eb0fb107d5534144868895dee680545ef4584dea70cccb5edeae1d0f31e01a9601563af6942e12504261f793ff2fc90a87cbe7b917b514c2dec2ac816905efffa1a984a7d267780cd56e9a8ddde6ecfddadb23aa925bd11cd2de0e2e852de53b474bfa6508eec331123489e21d48fde8051840
+4081f580a00000f08cc3192c1cf5121baf221358ae5a60598f39f2e884b5fdffc0166208194dd4347a43e06085ff5273f0e7745ca3813211277f8ce11488fda76ae25714169f0f1931564d17fa4fdd27d8795d256a4bb7db4545a79e409361f59e98482e0a8e42ef5bed2f6552490edf08ae8c726db0d5c1207bcd1d303d0b27b3838c9662538c839667bc2570b4faa6a396f4449ba9daf28cae3e795ca10bcb6b2784529d86fc80b2ca7e9b4467e66e0fb429551083c8fc5a730308991aa67b34026f117ebb52f693029c05734bc5ea25c54b61f2c62300e252bec3f9fe6fe3393d8084dddae3991bda0f37a2fef8c0854fd839e15a60a1
+4081f580a00000f051b1fb04bd82be5849c6be06050df0013dea6497a431267f7f48335ff3a31f3c94997582ee87304c000372b8763fd5fb239c95f786af5091f5ebe932a971a3e3e275fb19755692f04b87fa972283179f10a4921047bc2703ead93e500b1cb4c94eab84479521742fc0d7fb0af8f331d84fcc1f2059adbeca5107f0610e3a7d6eafaceab04079186edd353a406834eda303ea1d3c8f90995124008dc700821deea4aed1412a4c36cecdaa25c89c6facb311048b079c1cceebcaf6fa2577dbbbbc7e6be05846da521e96f243217199dfb3037bcef05e5e7bf7edca8cf37757c087cea05806d97b6078dcb9be937fd08fd6
+4081f580a00000f01c5cf0313c8394e9bc5d12ee3424f8b014365f8a1b8115816fd4fe4be458e1252eeff16e3c4183e8382377f4cc5f37ad2dfc600d4923ec41673d7b10e42c57137dedd00ff05ec3b16f41d262e8bedf08ab67880ef37d101238894aff7e0a0142548062ce70575ee6c9def96a0502174f83f7e5cf8eb15e9b6719689b42e8a26145c1205bedc73f5bf2b8565660a2aad8aea9960baa19542f4ecb86e6ef9bc6c1fa3cdb8b140f2dbbe992e97ede24386c2c153a315e01eb58062cfbc32857c07fdf648db502b54f5d3a201a06af8335813fabf5cbc44e766c7cc7385bc3ad9659bdcbccf8ff689a13ba1df36205aa87ac
+4081f580a00000f0ee4da5aa0a28b83b273a409d365d4730e6dd6e06a37e84f9d76a5de0c41c4ecaaeb24bba517db2570935e045bce132cf7ee00eb9644f45f74a9c347e84668a53170aac9c72f396183f4235ec5fe1f669293491e44beaaf98b76a9b341fb5a012af1c5b2e73e3ef1e66d3fca408bf62dd9f770a03a464d836055f7c9787ff428df86e56b04627a32518c510891415b432214a37e9de5434395c0bc31d2e3bd7d8329b9ee5e26088bc9696deb7c4925f056a37c8b2c1685969b3f9aa87205da8372be765bfcf27f018b6da7f03846f4d5956b1adfcc28f13b42cfcf6134af51b99684ea1d603b111fdf0ec9ddf68ccd5b5
+4081f580a00000f0a3fc307ad82c9a95926f4f7164fbac6df713c6458cef6ef4e192eac11106c6c18480bd95fac70178f7abe6f8fcb09a9bce92c212376726f527d9e1b8ce144ad9c935f1aee83ce09cd2bff080358ed65ab1b558fc974cb45bb467075b204fa01adb0d4d030176617c0b8b34130d1482513b37d4d090cb0fce9d727566664e82d538fbb64f9aeed809077ced84eeac7f18af738999179e3e228f42c2c46ef9737eda5813fac82bbe731147d3e8b7a19bc667d65b8caff42e0decf3783ff994bec0403e30f5deba67ee16b0284295524b5efae35ae2691620280ab9babe69758c05558eac535911cdd46ab9c781f6d3b81f
+4081f580a00000f0570c277f7d700d44087a2318e63becd63196750981311254051d71f24e8615e4977cbfa611237e1eeb775ebb85dd13dd2d850f693483a87a0c3269d7030b27062aa1adfcd76c08338bbcf7afa7b2e44671c34d4fafabef6a48f867970973eba22244301c43d9e68017afa843f016cbbcf7ee40196dc48bd63277aa7c73e219e07740eaf7af4340043ad2a89581f8b431f1e3585af88981091ff2cc9a279d5254d3a82e968b72fd6efdb7c6f0e80da5145f5e51f00725e17c64994baa15bedd22cb285a42aeb6fa3f369704181596477e818c17dc33406cfc43ff4ac1bb8ef2a8f6ac5670569ab1a165ee7441e2aeeacf
+4081f580a00000f033ccc5958515469a5bf383f1c4c78502490b46276eed966e19142b17ab264cfbbb63f45a610e5b2776185928275e2681d4ea6caccaabdbcb42cc4dfec5b433228356e3627305eaff09ae32ce7e14bef6a2b209ca8c86322bad1fc3e04e87f43ebe8ca397b9328bf009bc69d2781a1dbbf661303b82df113e8c683527037beb4583afb0af628ed148ba4c357ffc445129c320514a292688dd7b4dd84779b438ebd74ca8d1e219315a39b48da918788be2bc03bb963df3f57fe4f837b6fd46f131eb15d5586a6e7fcb1dfd5919841d732fe0d48d5858c78c7cd1bfa48c8e29fbb5107d844c1bcc512e469177462acce91f
+4081f580a00000f0ea146ba4a6a3b86da4adde608f0859fb6df982e2ae4b44137fe582a12802da3491e90dd144d8c27fedea9b0be512e8bf3d0ba62cdc9bbf3ef51883bf49c8e9618222047d9c128a64a4d641af1e2be7bebe85f74985da80d1167bce58050cc42455b3a6a10864d9340ee514fd72ca91aa3134c31919d2c7d5793bec675b0517a3c6c3cb49260d26c02a8d014d05e1b67a1b534fdae73368615ff4843e03c960d33937d269e50d18a24b728fd0faccec0182a46bd01cadf71ae8369a48f48fa35b9d7b1ed02aac1b107c20b21f6854d1611e0d9f9d3a350ef656e9bca2476694a6be329caa387999152eebf4ba67205483
+4081f580a00000f040635ef910571c089afe805a7d9b5200c4405b7f269c6f4ee829c5d2787d264d63e6d0a89ab57fc9933e42de05aed8999dbed393852a019420a57d91ef434a8a70aa07d434d8f546422695abefc36a19c25b928668aee2209df74968b26fafa9b6dbe25bb8d463ea2b3b08a6998f4c0a7a37867c8baf1b7a4237f9f37d19ea607e8e1e90baf225406143407245cca838dc3b6830da520ebd96aee75709c6e59fe0483db943c346a4f4c8a982d68418e39dbe67ffc6292560debc18ec54bf83ba97234033b7b5a0edf6fa051372d0f49c347fe0e90f771247cb038d37fae6a795df3724c49f3c056f54ee4ec5cb7c1335
+4081f580a00000f09b8903c06e724dfe9bdcf95b3e8e4228c37543941faa1d755a01bd969618a2a7a57002a3a24d084bd6bcb0b855faedf32b5d1f53426796782731ccd6c7ae90bcf1fe0e150accec8021677a115ce51899c5e68f1a358d09b1576994e4d19268777f965ea247eaaceaaefd8d8828c8b51d4e8c9bf4c9563a2368f8beaa06f24b73aff54b31f6504a882301125c3ae93fb91976b416e6f640ddbc705ba23855bc063a5d0e7cd7347c909154455a24f472693a0eb20190fd430f79bc5a8a46ae4f1999746752c2bb301bd4c1b1d16b08ad744aad29e3e542ce908989b9cc9af91c60ae9cab9cd520274e89dc84dfb3b02e0c
+4081f580a00000f0c74b93bf6ecff8a755822886b203afc0c379ed34964744dcef1e31915d5c14ea54db2718a7e55b4f81ac9cfecef588bbb56581baf68434637648e2e2d832da7cba2d89214683cb6576bc53836bab20fad8bc7d69c15357db93ed680661eb998cbb7975963064e8c69ad6425fd85410b3220bd25435c4553e973fa179c79d0d5f2ce74d62d9191ddd44f29264a8386b45cdb7d6414b2c35602814fdef1024ca94f579ef22c47da1a76355c4018df156a0013cd2f9bd9661e641c41ad0d5957f76f53acc10605b45dd3cbe8aaa8d1f0f7fffea8ef5ba7765d8e3553de1f9d7df99a29f026ad40df35f8bbb47eab06cd333
+4081f580a00000f014ffd68ec9ffa1cac46db31d16157ddac368f0317395941f2ed1329f44a91723976834a2d192198c492e99dd40f53b2735bc6a6d6996159ca6af9e44ef3e7ee777a55f63e71346306e16d977844bdf146a62a9958f8b19aa29c86ffbe77b082bf42549b3fff4910db2ba924fa1a2f9beada45e49ebd4885f0384e3d57f99a504cc8428fa14a5c3a5d52d988100ed9830b1ee86126674a7548435e376c775af5643ce3c57570843873fccbf6de16eb54f49a258af9837cc975df71857810c87a6d565639dd80c5ca25a98c7e2bdf317b38e535e9623659a5cc04e346856e4db10c1b5db86a74d3b6715214d0395f3cf92
+4081f580a00000f0185dac7f503c02ba2b05dca3399dd04b76ecd2a54bfa6a88b651414109e5a18b9357d43d498af455c4cc560f2e4ab907650f50477e4df8832bff29ab792a011d410a70b6b6c6c74234cd07ba46c189b9e9c87d96a89dc3fd760578ceb8cf3982be9521e2b21504fe22f2e661bf2547ec458c993e5ad65596aa252df54c2e7910edc022c66a7a6d82b9c026de0928fd402dd4a9d5e156b0604532a235aa2e9e0401e1ff5c814aeada5a1845f908fe0c2c36f5aa351aadf282f17aac9b8cb4528bc93d7a1fc2eef89f33ce0160a2d58ccab666d6e4227a65d10a6db2e9d5a31d6f3f3f82ba3ff33667ac799253b8be1875
+4081f580a00000f0f8f9dbe1e426776c4f2d2161d04127676e654cf4b3ca06cfbee44ebeb0ecea6d867738153e71e346d7f6d7b702122d5c517b930e4b7045463debfa18dbc54facc6b49186b70dc574a8a013afa79df78781456ca3ac7ed39947b48ac739b46a7263739643ee180c460a3f2694b22da6d1b356cb0eb236f2451c2ad5ea4b663900acfd531509137efbf2f8079f94ec6dddc8cf2770d37407c826902970e9d51f87ff24a55e7930a77965e7a136b0acaae6d6be5f08b6b8a209349081688c119d6bde9dc7cff17f9f0e3a45ccbf1beb8a873b1a7c343e1f319469e183c14e0a2b989dfdf05b9dfb91b127eacfef7cc8c3e3
+4081f580a00000f08ce65fc20312070630e38b8c9e0b269ae978690a8df52bc2d8368f89b5ab55bcb1965c4f3fa10148468ba9472e7396e4055e6f2497f9e01354a5eeaa2fdaaa5fb9a062191dfc4982c4176a122dcbf1abf76c6fb9fe52cd0a0b23309d53e145089f3497187d1eecd5776c5a95d5139fda0ae052090c80e39795977c10d5c4948bc9f35cb5760f35f41067afedf460072be1d7a1e88bea5876cb04cd3a2bc746dcc7f5c49e770d1880308010f5c96739a62867dc5218167750e7c4644579188fa4038da8d29d8e5b981a7d6e0b2ab22d693826f6788e350b390cfc19a104480451dfcfe55f6d92193909be24ab5375a08e
+4081f580a00000f0b25d2312beba682ed384ff819e39c1ab5682583c2acab89d7bc42a4e080a669c965adfcc29cb7f8e0dcdc67b8da625d3afd6d2971f49c14a263d81229d6eb6cb9316575fb8854c905094868fbc94c79842c86be4b47e61d94a039554a9e0ffa64f48314723efa77b78d3cb445d0f2fa0c501f0b894be0c1cde81db484e4806cb4b1046f1a612c719c2f5d2f14e9ceb01f381ff400af1476d9dec66299912f88e96ec4e193952bad12e2c5b48db083cb39a736dec7e2e61d60898a92514a0519bc2864d47fd3408c6ce43a1dc6000f309acadab27a6e6358852c8439f04fd1c5f33274a5a50447b800a0ac8757ac888b7
+4081f580a00000f0e38d9733ccc4dd2cab2b0d52359b5686cbccf1cb796b6edc26de009756c0b1c7ca69b6aa75b86afac0960e1acfe0437bae4602a74ebd59dcf5fff8a559c3282932da1dc37bb966b780bffb4f1b82a01d109cd4b7ed5f6d3d1d235f3feb50dae10798d00d5c6278d6115fa6f35ca157e3f8aa875ac0002c89a1a642fb6246d8b2f83a12b692c2de0d9486bfb47983a68de5ea59b834b1488086865056262c9d122cc8fcd724797be0d713a12c077db09ef9371e9d66663a0ce9f489fa2228f04a4071ef4ecf10158a66e38e85b66400f3e61295208ace769516ee1b9f55a49a92b36206d5d4cca59d797026aabcc8651e
+4081f580a00000f04ed38884be525719cfbbe12bade7a2c14cd148b8469d488f13d009b8a45cdc7526a13d36ee753ed20eeb9ee3e3b42661e155acb4b56f90db679b353d210b70dcda8ef47b4aa404dc7d637c562fb2a12e394e2577e8747d2b3af30b02bdc13fc4e902b4118f5c7e2cd738dd752a7ee61f05ff2c0a3509e63fbae89ed7d843f9ef09600de6cb8c511b11bc6ef50a83376a0992c3231db1258a3ea9d1f6e2343da2c138b80dee41fb099e618909df2ec68e5fcb601e4b7dd833376f73173f14331cc7e23002be926d300deec26f0b4fc45987d98abf27c8f22bf71003bc25a79702af2e3b30219c3f2e8c4a8942eb0a5413
+4081f580a00000f08c19e92bb8f6bf1a665d7e0089d5b6cfcae2f128102ad7d38e8625ba9491b725a94ebce53d3514160cbab9440135d2a2418cb3971e7640cdce830737a693d9ed5335958cc2b62785c36b1ac90da96eacbda2cbebd8f615ad3c2bdfb10f267e682344e4c272c95b5c14439a089f34fe0811843dec254f28f13b6f1e53b2d30a63f91387a3b120d708fee8bea734a961275f25c4dab8505d0d49de33150c2b53f1c956fcdc8f7c3f02c999807d74bfcc2affe98a48a7aced8bdbff40c0dd1079c266067b6f481b47b35fd859b121af7133848fac48fa3d7fac2489fcf165037128ee7e39148d1a2f63afde408c14eff1d5
+4081f580a00000f0bcc269d4cfc0b01e2519b4e5755af0cf5c95d572068f8a26b486a12539da706dea3f553e779bd556f5b7ed0dcf0a755efe7e69a9555c03da771b31ae1198202ef1f47825db940f56e53221a3e9c510c77906abe638c3f5f85541d31c65e5aab7ca77f5d1f09e8bbafba8990ec0a866c9b9ae5ba38cf10131f1b5c7dadd29eec6d3ad55210280ad0ee5c9beca9ed86fde94206805b9369199a194cd095b110a8d91ff9e560895331dc60febbcb26878f2b88acef1c728c08b9b00836824b646eec8867408f15a84e1c37404b372ccb8f5bbeec307d873ccfe54365cc91e52d752ff3a4ab2e8f93c1bc7fda5e229300c8d
+4081f580a00000f0ccf676daaa8814efa98a794d8ee0fd8080cb6a8f09495e88f20810bf866415db8615b85c4841aef22d2de3d7c782bf6b05ea656549cb6798e731e3eab330ab47ced37014ccd062143910760bb92d8fbff620dccf9891806dd3eddd804d29200785b90600291796ccded750d464cc6c5b44e07d58ed35748f9345c49d7d5be3ee4772f1d6facbb02bdd7724da59e5ffdddce29d79ee1929568f56a3679371260dbc02f8dfb1bcafb2fc43a1b68cecacbd37afc4e1ce50ab5896dc46e5751501b9f527a2db6a69873f45c913983763a62a657b92afa9687400104432c791626420e86d27f3bf10016192feed78eb4b9de4
+4081f580a00000f0414756dfa6aa320f6b31b654e6d4812041b3a17e878fe235cab4ffd7dd590bd44918dd44459ded1e28575a8dd7b26449f6575a67a743aaa666c526fa0bb97fd84313e75568e35ffdda4f92f43058ec23f102c5d0d4190e0f6bbbda71c71d1d590cf307ecf3d9c19c79db572e2dc75a74e5e3df74543feb2e76958558b783f7ac43a066563fec47e40f3ed8a6aa483136c45c941f0ce7a5352870c15b966b4aa414cafecd36815e933391ff16c304f3440607b9b21f1861e3619a4ff21f39000742ffab842bfd166755744cd240204a4284c4d0da623288a98bbd6bc9ef06809010cf633e86e2d8fc544da5521e4cb78c
+4081f580a00000f0f3b8d55202089407f89e0c7008373e33e2df7497f006009486c531fa118e14248d0277e19f4bc355c51262792850b8194ff6d274e59cb7f281625935103203c03b3558367a4c27acfc84bf3d5848261782a2fe7b9b485325f3a5f961a64bbafbad97659e062d6b1bd22c59de9e63487a9c6649bb220ca3197fb36e37ed6e72de3b2fcaf3b54f24734ab43df32b191d74d555c86925a13736dc4cfee49a4d0a4d30249e9456680003040dd537b5574a07d1bd49b631213171360a26c7aaea1767e21be0778a2cc2e6dbd06f1cc0b714b10911eb3468ab8183dae548584dab6230ea8d7db139a2681211b087de4849c514
+4081f580a00000f0b5d8aaa315f3ba12077e77cf185dd44c9ddd304a87e3a4b0efa0ba7f47b49913c8f890a68c51d2b3f7f17d1229e82231e73da820c396448eace8e0a31c3664cbb0351d667a0d456af2b0279550f059961f8f186555cd1aa895a7c02626fcbdf843c9fd30e719cb36f803589d9a74e65b1aebb4a99d0e4bae4369b93bc75aa129e765fc6816ff9ae643a623ee997bdd813790204a3f8c7531f6cfc955b302ae7de74eeccba7c83e3c9b88ae11fd812b4419cdf7d85b20ff9f20a0d10c3f5065eb4b743174508a6276ba0f710c63a85f09c22a898c50e3c79d0764dfb998733062c3ff401d3ea191506a37d25b70d0a9e2
+4081f580a00000f08914ad6935c0b73e541b141f56093f807d11289df9284802339a908f419d5ce404efa096f5dec6175ebca0bb21f012128e1442b7fba8ae5e18d3e9bfb29b506e61e8b224e0d9e123750a31dc2cc07e5ccb0d146a7b1f48658ec19ba61c355ae6ccb1498f259dca14b356d397b988655a3c64e3fcce4de77bf949fc7769e650b97221f463e5cf7df3bff36ca161c026751b8bfaa6376e02d09ff2aa4054367d28a0857543aae379c2650537eb1576c8fe1ed7fa9398e78621aaea9f0711ae6bd4c5498f09bef616d638c81b029a20d6645a74dc4201a7b9778275007d3391f5cf570a2aff4c7bdfc81b3cee9e639e69cb
+4081f580a00000f0a511c266fab96fb08a4fe0c9a33e4597c8496e6652a7e77f7d88a43f5e315807e5d8b87e6964df41b8b6ce9971e4649072855b38094260b19b32f513d86a42fe408a7825e79512855c37c7711dba9a4871123d7b0efc70ed98ea406cb10e809c141450176ce8e798401d6afce35cc36e7a488f50ae94266cefe9518373035d43445d359c0f3c5efc1aa85e338fdfef7751d79e6e4558d8b38a42477bdc44f6b459cc80f02a21cbc0c4907eed4801def1d121760a854db18dd103e129c46f6e32e03cc807548e702356d0663a0ebea00335338aa0abe2b41b2ca114f04895b2da64fc6b10c09dcb1cae7288de4566e70e
+4081f580a00000f00107c9f27c8962b9ea8b04646886278e9f0a9ca42003290338d4499fdc7f431f958f53f40badbc0a0c130a0c9bb0c12e67b2a92f8852b6c30ecd450a7a2722b93da892affcf71bd5c44800a6483c35c96558cb4cb3fbdb533904e5abcc3bb27b4ec7450cae827a0fc6279175c44f71e2debc192d8d29955da286587d2b625a932a44c54b77a041a0059c4b15568f87b57d34333a010e14e980f892735909a6c2afd56e3f01276d1b72c33cad648f6aaffb31b524f3fb4774592a0cb6b6caf0fe42e4c99109a5d39186501495cc45cc51d77516bd946a52af0b01aa92d27580f7a965c8991fc995185ed3397ac7fc6fa7
+4081f580a00000f05f0d9d0b2cd4dcc8b2a8992db5e4d3d210850220e48f24cd5e01737f9dcba972ac55fbc1daef2c50bb7e77edc21f5ef3273ad27a7a43bdafe22d67ceb48545ae2a390f75b83ab8e6a4082f307262eddd135f37546c3393982812baa555a7af6b09727f7753ca280258cfd295de75f1517062acf55f478df840b273bd8ca26dcce33a72a3277e8043ba9a136cd8f5deab27cb682f8e1597bd1821f2d2bf92fdc6c01ac6dad6a75e0aac69bca0a173b4294253bb930c57b638faff637ace8ec94493125bcbecafb6913835171f6e049554652e32c9053a6c1cb061a7f6f96955906502523f1825739f3826caeb606f4e54
+4081f580a00000f0ca4a3738e8428c8c643861272bc75fe476337b50abf36be8cf3df9f47542ff275eea29d44d3470a19c09481a6c176c2140534cffca3937796fff4ec774e0b2bb093e5df0a075276759c15f44ac73c514850f59fb5f032a5af7aeac34e9491948a9c81ce6fccdc30b61ef2269ec014b39a52a36be13d1cc14f0b66ff82eb44b99005fea8cf33d57e187b8270c098e2807b1b9db5a660770eb8c0c0a76037bbfe774d13d2eb5418729ac22d1baa95daef1c898a1979460118c80236f76991cd001ca2f8d3825ca6c85a76e045c7ce500ee82ca26408d23bb716590426d0868c938bb9d77b66850ea1bf89a7859c1ed55c3
+4081f580a00000f0e5b5b44d09cac9de8909bd309ef2825987bffb357021a90e7b89d7dbc22dab35a1602f5f2aefb0eedb4b5327531169b43c5392da387444cd376d41a04e90493349560850d8350e20b1e9c23d86762c5a51e62deff0808c7a93de96b7333186dc03fbc1a5d4f0ea6abaece861d6f4673b2dae3e06f0f6f7ea3ab84cc6855716f80f040e081bdaf1a843c1f3aa6166ecdb5716e333ba4a996f92f889b903eb71454e134a95dceadd4380f57d86a0b5597daf2535f2a74ffa39e0625dceec1f30db6caedc6cc87196559ef1b82f2602fd1297268142dcc2c52859fac077bb1af9dc5a71332194496e4b0a3f0038c46c14a8
+4081f580a00000f08fa93234dc4ed58f0d673e328e7489b263da91e70ab83489d1d2e8d211a3aeb3129edad07f2bb2bbcd336f73dbfc82735fa733d047ed4bbca5700d9695da77c9cb975c7f9f52a2430e8687ae0d19250f0caaa6f832498775ab2c37d2383f85cc61c96e745f36d3148290b747bb9970cc1695ce2389cf507e07ac18fa246047ee83001ace4b26727891fb76264084922b258a8035d5331d9da2d72b0fd06b5004045e1d8e126e7dd8957dfc973d9b107afb2ec8dbee07d66c3fe0f1e56dcc0ae54fb73ff8afbf1c5a7fa1f34ee72a5acb77992bcbef9ea134f23add8cf2ee676d74cd143d2f5d7f1405647f59a7a6da47
+4081f580a00000f0011210a5fe70d47f6c276a0e729645b5dfdfc322564761dcb12b426862de69e9bf793b46a5431ae24e12c4e96db70bb91cd3a71a0013b5e38ab4d8856162284c8e419373e7d105a1c983ed1320cd12f66a6a95669fb822fe8c3470e17e08755f17f48a071cd159851e6ae117bc2fdae771b167b0654b5b9585d8bfc259f6b463757a9c204bea422a268fdcaa760f2256bac1f6482318429721511224119a1cf5b4d01e5e70fe2757f3f4a9aa6c0b2a9df543545f2664d5d6b7206940becdb13bc244373aafa05172fe9f4a273f63051ece5b508837166f556feb7d103928becbd4bbb69729ac8b9ba3ed924fdcd79eab
+4081f580a00000f02e20d68d4ef76c08ef464720304e633d22bff1268ee6bd86e9ba91769a5f4d3441726ecd6ad90744bebd380005a060481deeddfb657f6b3c387a03605d10aa4f8ef0730ba649453478769ecf60fbacc82b1dda174374b684dda7bfb3f516ceffcdf0e4b4809499eb0235ce2f9c65cbdcedeccbb95ec2505e122bdf6e6883088443090a9b03fac7a85dbe6cef94d8e3701fa1beec53d765a1c659c011e2e6087045ba005fb7c202cfc4690af31dc1e6c25889f7f652a253a81328c76478fed877f74cb45ad2b00e7b093e9bef1c3e47ec0f2005fcd14f26ef050f6073bc3da697c21814021b9486ca9ecb3bf2e0c523fa
+4081f580a00000f078140dea7430b813d28685ef28ef3cc9082f694df60210648863d8e516b28b253f6b51e53459244122ab3d4741d8f2158ae61938909aa608b360bc3ff2f0deb274f78f0de108804cf2090587001a85638e934d099dea08176ccdfbf8a7711904ca733d0247a8f2dc4858cf13b89ca870e32c2633a51f5d7a9eaa367d532e43544a4ad47dedc55274e9dcda0108943b48bb11e78f238cb983865e86b4b622e53c0e0d935b373926cab15123f6a0cf858e194c320142dbfb2d1c68d2c512b59bed0354c12164197464085ce4ffe97af94121146a970fab6fcc58a7ca11ed4f3f8cd6b7c9c94f4de976cfb7da7e3ce825cb
+4081f580a00000f0b480df78e16e2d557a022943c96d7c2087de08506694584ad12603842d6e3404b9e510054936b887cfb3eb22b220b6d6c5eb1d9d3d3e2a9ac93228ed48eac2c1308611535e623cdfe1dd99ce11b5dd5ff4f3d337d661aa7989a5719794a06e5d4de2bf7c5060dde6543edf9065fa177f49f65ff6e0c1aacaeba02f96fd3e1c7f538932f29a94576813e09729a9301815bdb9f37eb26bf68a18b080260167cd9aed0a68f3d2d8cf1ccef1d59196ad2e1af3c09e4c29c8d58e1d5011a4c4262bc545310b48eedad68313c9cad74b4d778ab1ab29e740bcd21acd8483fbdec1e741404a6f48d63230ee94730b46295f0b63
+4081f580a00000f0cd1c46453feef7387831c4e9b2894dcdf98fdc8e42827425ff9c73b3e253f9255a42934cb57bb21bd6b2acafc1913b934424449d3f0b845f641fd12d7e3c8baa011d605ad05c17a5b66fc2f4f291cbc487f9711a7bb3bb91f8107cdd94c413771c69138456d095794048423885d17b353440eb88a6b0eeac2390558d9a0ea7951bc5fe28b8340a31670b6c5bbdaf63dcac0b6b96539c58688ac586db6f23f170fea8fc460ffe553b0ad5ba4c84dafa64392f40554da6d15818dd14f7fea62534be4bca1a550b83ac91fcf267b04e18a2cd57878165afb9493c6915d575254875f20cce61e86bdfea076423b8b3e5c924
+4081f580a00000f0c8b0d60cdf9ba802349f543e2418c668901c390167c5591f7b4456a4e38547f79ba9cbae300c8911ad71462f33d51ff63287860b557f9dfc41944733e917e7c143c08d6d87c5de9b1acb2b912976171d7eb965ecd45dba188a9767f17b2cff64767a167413363252e1e594871a3d3b51741fdbda3233449fdf95f420c69bc62b37a7314fa67d9bd1b0ab2c8fa2c1fd490c969973ceb1653c603cb028877cd9a45cdde573eaa3a77753bb600db6052287dea83893b0bb7c6de734ee0f057463397704b79738080546b70965ac98a4c70587db47254bb8a893bbadfc5c6a5600b9929a34ad48c64b22e980fb4826c11efe
+4081f580a00000f01d96a5746733bab83da2824f2c1de8d11af53e21a2d927808afdf24e60f7c5060ff8280f0dabb19481f36964d6316ca5f1dcaf35e86fa45ec6a02bfc49c95d416e6daee400704d2966e3b97ee2c3369142faa96472fd824de9fddfc8c2531b10b0da9b65360b4c5ff01a2078e5001f35efabe49456c84f9262afad332bc8b8bdd5cb4951cf6adb3b8036e9b104588e7a8f29a92f5ea4e6bf0f40a7c0960491de6db72dbe0651bc00424a403b55154f9f959a42dbd0f39966d0d0038c377b57333471cdf4fad003a013e99fca0197edad20eb3da3492d7abbdaf4715aebfa599fa2fd46a5820eaca498423ea8bf3e7e85
+4081f580a00000f0f9a93d4b3997682eda81c47ebb7cfc4b391e9abbd7b12ce02b89af06fcfdd485f7dcd2bdaa8f7ea33ad3ea80ace1542710108476ec319b5676af723af9e4789383b6b4a5cd53bde53024172a0ff9b95baadd1860ba1928b08c535f80d8c3de5477f4a23af279a01de3d603a79239936d302a9c9f40e57b1ae0cf1cb7ea1c31920d724718c5bbbf8c23ead6f673e38b00ed6e803d73916270c35011ad4cc188a53a0fc38a76a7536fe26b9b020fbdf1d213b489c6714c3b533484a20ead503e6f9c1a1c294437ac21dbe7631581bcfc265cbd4d4d37b35e55bf93aa1fba731348e68069461c2139539bfdb1f617f847d2
+4081f580a00000f01d3178910f604285ab61eed89908c45638c62f480b77a9223499d236709081160fbc33b7258835c8b8005cc04f05758a797b3dd191482622db5620ae8bf6cdbae74831f7e829d568699d4820cedff9e124ffc6f152ec003fe088b68f30b43c77cd15af998fa09ffe2c336b978adf594cd942d538b9142559a40f690810644ebc6e8edc0eea59c07b90726b879b8d894cc5e0b66f195f101850ffba8b8746b259f43c601ccc53f4af62c321f849ce78d4aa985cfa01cf06346d7c11a74379a310e6bf1a7f957cef0ce4c9b89567c37d996a752cf07befbc9794e9c76139428ea13806efab350b595e85ba7fdb57fbd8ea
+4081f580a00000f0345857c551eebd059e5924c190bfc50a4d904d4d652bfd5424d626b603eed08485dfa72e1d3b56c0c520ae649df4fd01831dbe63a7d62a504f70aff94fe464c7545d225802a4a0327cbbffc81a3cc7d0c630c3865de01f9af21136ce75fe88ef19df0b5297d2c50dcd07bf3e7d7f6da4cf169924d07836b8982cd0e55dc549275a6d3dce0ba694221a733b40df999f4c50b5e54cdb0aa8e4776b9fa1269773429f28ddcad1ce6764572c8d0bed862d17f2d792e22c582b4393cabfa8dd5635ae35318c433beb191af22b6b47662e1f6f5deeb32532ac3cf0d8fa9d8ad5081d8cf19d0d5fb5f082e04afb482e755f86ea
+4081f580a00000f03a93513a0d348ad1663a4865d10e1f92a48093de4954ab99c5eb2f917291a99fd3922d062f75a89693576a5dfeaa55cc1927c8c73d2950cde151ce83df5c074bbd726fb8944d67dab037178b82530871340ec7100f4d088880714e509de7dbf548dc71d06c522937b4fca029ea8aa037dfdb79d5ec42c601ff4054cd2647973de3009c85a7e44af1b8f2bb194fbbb9cd4c440c0e3022ce60473c336e2c108c6cf796e57e1c5ac6f5f033be60e27294021e745427ea03f44c9e790f2f5bdf931f21cf2f7a0c2d4cce6e49478304684eb060cf93b7698bd4b54b8786765a29c86e80a1798d653e01e7c1de041d26ef05f2
+4081f580a00000f02d462b9b83f0a99f762a9becb34bd26db0fe056e8c1db388ee91636e4cc704017bed096a54c51e3a43dd5cc6739a3ebf245b9fee8ec112adbc4215eed908cfedf526ff06cbee73b31a4e299c2026508e826019a6b9fe9614317853b4f9d2beb092544d502a971f055b8d40208a57da24290f20f856839ec8aacadeeb944a22612d7d3b3cb865239813ad55776572bce98c2d55a911c245419efe5a2f7daa863af63f0ff5271946484080eea90d1e2fdb51a6a8eb0999b747ce14d8ab74d9e609b2c543bf62320ec87b793ea88e269e36d7ec7ea1ba0c7d88d6fe8b79908e93cba42584ea2002271cb96b9a49e583ec8b
+4081f580a00000f00a0f26a2794fbfb1beb4a742ae07f3a017081abd6831e519783edf55a3af2fdfdea98dc55884919276d9515cf5a3510bf09bb1640e1faedaee18864a9339f8a045cc44cef1565d4be5da7abedc8141e1ab5ce4037f34b404fd26c9d35be486b394756556baf9160ac15ee653f5166ec7f07bf8d4d5c8d275dd9106b17d3589cb16425f838deec7631e00f8c073cffffff2c04ae5d7cae24bf4759cecee4c7c8151bf4e6982a2e0bad92e92933cb6c8550871963a1c5959077915a30799ece7f6aa21498edf1e291926b7d142f245a61eb287967ed2282de38785c7c1c352dd0bef44684bf46f0d33bd7d5e2086345247
+4081f580a00000f0cb717260544d7c8a181a46cb3c32957b5ad99e1444296d0f15ca079df1171f1abfdbe0f8f6492b7ce8132a1519f69653c113b2ede9f4a0aec29bde9db939a6e3e4bf87033890a1bedd30a61bc0d214d3c1704da1a5957c74e6eef27747599bd0c2c858f2bd67c5c0c8f59faf84cf45efe69f4490feb61ccacccc60853b04e34fb74d8c8aefae4bdb4426c565472f2b67bfbf08608a4c707589d025fa17325de7d169e59491d49ce5ecc354f9e62f5fdd289263c16c66c7259e793fbd8e1761bcd0aadabb134b22244f71b6d7aa2e4b5f2c2b03045bba7c2b578c35086a24e8dddf5da568c0cef0274e8d736a441c15c4
+4081f580a00000f0175c9303293a120aefa4eb8f1fa519af731b16ad2aeb3d3d00b377f0c3eb8d1cda9f015a8ed08b1c5712ab920e2670c025479baee492c43ea5bdda5f038ff230de9048bd0cab85e31fb7f156b29a52499f99d2e9b8996ca7749cd5b5d3880bca79b7b2191a6196d441afdc85caae702e40690a44d72423fe9ed662656ca36cdea4f23762e779cd2f031cb9f27f4c615d17c3dfed4c5f3ea4002d4b5b75e62effa20b1973d1eb3becf0e436b8ce00c71ae226603f35ceac47a82c4b4f369366b905877808e85678c375384870725c293fd8aa62c9adc9a77ceae5ea06960538f5174eea37dec168f35bab949e8adddcb3
+4081f580a00000f044ba83ef388918cc3357ff1977be19704a390df8196ea92fa647bf981d3c64fbb6670f932c55d27eb20b0948f23479cdcd4c80fef2879c62b752cb6da4130304ff1f1bf83d44a239350414ec60dd53a53885dc1ad4c88e8b43c41d2fdeb2930a418d5985c5d9f3037ec52136ce7ce5df580bca5c70c8d0e2f70bbe74259b35dcb9b3201d0d0629147ee7af31cb08885e3908b7c9c58ac27b1f80053239c1f883a53dd63f1c24ca3b45a964355e0b29df27a7f69dc7908ff80c1de9d2ea3f66fdd986c57ce24b3aeb270777bb866135a7aefd5034ef7a8899239fb163ca999f5011f97d7d01d4fb1eeb841ba8b789722e
+4081f580a00000f0df32d617a2b319c56761666270b3288b3cc51708fa3dc6e2db87d86019689f14cfc9aeb792a8f505b830c7b094de5613ffa18d737f75a6ca601e91bbef82ea1b14762b5983144f909efca59aa7b7e10da12c33969e421e4b56bd8cd351f0464852fb57439b9b46268ee0f17673dbca34936249a43ee8301b60d66453c9ace23869118d8d21101802bf6088627d85ff4064744dee8f077be88b5b5015abe94f96de097b0dab031fffa139e24a862180721331a7d434f1254d920abc78b854d35b0d6bd08dcbff7b1d7fe1a783d258294a87d5239094dfa7e6ab925445c05813f81c8d3e271744614b3cda0a12c969737a
+4081f580a00000f0c618171390641ff865a3b108439ef1fa4a6141aa6fbab599c260e4a7cc7ed1eac89919f11d5305747ffcd8d887bfaa4e1ac9c80cc442af5c22f2ff93721f36e989c2d81f2364123a8c706e1bdc51a8923e92a879c7f3b15d4680b75e087e3d12fe9e29838337a02dd673e6a8120c8f608b8dd1aca75322aa5f3cace10af00fc234c5c1bc6a5f1236a7e37cfe2f2862332c8ca33aa8340ee1c43af47960b7562fcd8fde57641afdc5c2a79f49b6b4eb71d693ecfb82b003d468b9d51c8149675e6bd0a066f6ff4c74ffb4ed792b8f0f1c20efc5bc0ab4692e3ab66a5465164ca74ab7867e105a35be93ef0b4af35beea7
+4081f580a00000f01b6b25eab0c4b831a82e8de39f5a49c260274997edbb375d7e9386d3d3bccb2643ea3f9f78a9cfa06aa8cadb6e09a8b4852b81a661749bf0ab46f4b1de58310c4dd891cbb8a793042283913dec6183b26fac517a4dccecd487e10a7cc6e66560d0148468c53f389ed3a855a7a9bef5767d7c18b090c8363500a45d9e90200109a7a4eb15db463904557eccb82a5e815196fce8b02d6ba5ff677e593fc1a159c6315816ad81082d0daaa58748ed577ebefd9beb5b59df358f6b60ad67d3071e2cba9740a8d3ff424acf32373fe58dddba5fa9af9d8a808a7fe7bef4c740b4443919a73ae5b4d6c6db9b9cc1ad6d0cfec7
+4081f580a00000f004599715822bc70b78c485a7c31314079f1030cffb28b645b2e0f0e2f458c5dccc743ecc8fda0ce55ace7c589462c0f93dc05cc01958d3bddb935a58cdb18b2992448594ebd709e2a33cdfbe830cf612755577b29056b4f5048c5d952c4b584a6f183ed2c3e08c61d9a3b678c47600c61106f13ac8e11d38afc6f62e3beab6d43557844999030ae94bca333da2104ffec6e0edb7f192752c3d9f8a5de6338cfa6ffdd67ace6f5d67215fb941697580e1cd1c43c4f0dd0e5e6b281ba4249cd5afba115694f4d442095dd98038302c5176983f82b5dafe661be397d29a8a51c1f237a7c1d30dc7bff5b1af488726ea1dfa
+4081f580a00000f0aead70668bc0dbe12ed59d8e92336ca3eca3e6cac71af451bccee551d3abdea435452a8036cad42269e987e39992005c330f6ed208240e78d4a00f7f79830b64273ee19c686f7ea03809d7b2d96c8af66d785558213fd004ef8642a0356923ddb1e510e5757740f84126a3b0cc4764cafbb998d79749f2cae5a64f11a29a7fd228fcec45d814220e3ef9a739765537224f6cbe88928050b32d07b34f4f5d5c399b3513156fbdf44d50ef8786c5bb4c6de026c5f0fde383d56ae5f81084bde9556dbec822baf69ea1db5a81f5d47dcc79e53cb4e791ca736730c323663878932d64a857fb8aa1e219be2be1adb0dc4630
+4081f580a00000f09b8f33a8b51c70e8c5591d73b6867b5236398073e2d03ab199953e19fe1c6338ca2a239e016a774e0ea8b646595527a4671912e269986358e883d36873aada961d66c76259c9a65ee78df9e5c346fed9ad2eaa85c2820fa4de01780f776e06d3ce3e0dab27f49dc9fcc50d97e219a7dc72b8b96a43672f99c43b060d8b250bb15489097b5c72aba8a642da429853a0582e835f7c4f2fa9bc829a05442827482ce99052c4606ed1449ad75fe26338cbb00af9297b4afb11f4d99d9731cf9ab6cf00fdb15d5d07a14540ddf894d940ec134179d2cec13edbe041712904bf1511ca8ce88f2936ab5c7a7695a1fc1360a624
+4081f580a00000f0aa4e73a95fd2ec1a2f1ee8b4cc33eda03a60130be052bc6c7ef75e836e18059af7c147313cb9ee82baeb58fd022dc4950f4701b9bb9787e0f95bc6b52f4816f60c6b3e585df57b50883a07a0aca1ebb36c37f512e1a4afd6011ff8bd483e267c519a4c1879acfc496eac5c622de10b351ac5c49ce4bfb89b36e18f2b0a244f562a94bd2933e97dee0f3db8e01ffb9fa4b40f35da052837324ae04249692d0631ac9c99db2e5a527e715e122da49390948e77c373915e5a99929c52b47a136ea65c54f51d2f7e100225efa64329ba3d113baa4dc8eb1f0df967271e1cbc835bbbc9a125df35ff01c1f4a9f52e829fd036
+4081f580a00000f0f9e384a07d4a6ddc3a6c7397118f004b6e77f25b273a5049f5ec94d344ea134496ffde5d094a345ee54bcd2e623abb73f755bfb741940cc93b744edd0f4e506841aa30c350363cb38da51783e8b1dfbe64ef2c51f009107df5885d0ce6087c9ce074bd8201751dbe0f9a9ca58e33d41459a3fb730906a6f2262a83f40158acc2f36a2a9ab1bfc62010c87dd2670ee2031c7b4cd471a7ab075121bfb07b77e25735582f21e5986da95e293d2b564fd4f6e738d7a7b6eb8acbc05de031d5a53b574a85c672f7a20359a17715d12a9f6087646cd40073101fcbe83fd6cad4427da29b61b6fde9ba08f8ff670ee37b7901b0
+4081f580a00000f0ebaeef47a83e8cb3f47ec8f5d6c5fdc81d37fb01427ec4376675b2d297c1d91c994199c3d68032f49b97ff272e49afdfd1da8952dbe18455d440653c9abe0de44d81b77b447117b95be084d1196dc12f65ba64d876e0a11cb82838f6fad7b520951c05aeedf8e009fb65690757a12fb87b5a940a2eed04d938c766966eb4dd1107e13a79713c826c5cfab156cd926f9c60a06388edaaa780b68fe2ed6f71e8a7a4d223fe8a929522414380c2c76805cdd1cc2890ec037711e5c7c55fd4a35a2c061fed456bfe95a3209588b3bab678c97665347c1d930531f0713ca06214a9328ed37b5788bab4548bb3ec61c9f3cd16
+4081f580a00000f097f41364da373c226d3ff53a3b829501ba2e5da644428546869fbf91ec7ddb398a9dfd5425afc7c3c84731807ebd4e67cbb11819d5ea6b9af4af5835019fb88ca70d63149d318f4d77e94e0fd5d393bb8fd1d864eb5934fd6dad574ebc7980fb369e815ec6e040f4be10405fd9cdde93967e437bbd94e4bffdd27f740f67b1928bada05760210214ead53f0bedd9628a5916b42aae85749fb27abd632d37a2414894faf328c2c880bfa86040ac841230fb424ff6dde1c76a8604f63f18de40e92c0fffe721d6a7d23850f10d7bd7007439a60fb1214b0ef9a858b52ce5695c372e5d00d80c5916348c0cba12c1ea2c91
+4081f580a00000f08418f97cf5a38ee2c3c00a93fde7f6726e085f330ef59bb499d5fe8e3445457d404fd76a44a60a7a1bcf767b246e7db2c61a618e40e93cd917c45b275118407c64d1b28d96b2650516a0d10c86240b72d4cd38feb38461cbfaf23c3b6478be70b4515e8866d3452a991b6c94549f42ac6277dd93677c0348a0bc6d36ba974d4a2a150063052d885edf7a16e744500840535e2dd1169fb3f5c09e2939f976e17d4702bf898fc42b3015c42fe765ca351737160dc396fb9d4f244a107bb934a9c62d7de1c3f8ed3ff8265f6b17bc7c24c78374b478f5b50ce3b0812054a7b62fc05a8009051267519960488e85431513d4
+4081f580a00000f05a493ec5fd2f6831ff57b17713d45c1fb63583250ae78879d17854ef6e8f8d6b2e3977a3de1b2097c65f05cdf939606570fb0ba72ad409f8ae5e2e1e49b5cabdabb8d2804875f6a690fd630fdb94fc2a200001835dcb7b7cddedba9a93e0f09d187ce4d917524b66b82f24e44584833875d483bd78e794f63af561e24db02f7342ce8ee4990d5a94a8d6ca1647a48955e2549e32eb7a7e6c455b6f55b61c022dfca0a8c45aabbd44ed457c9f953d59e67ea92a48fec36aa6ef8148390404374f21a5582985728e78d00ced60b74910a328bb8dd8538e5ae4b473574459eca6587bc66ccc2639d131960934ebc17b8136
+4081f580a00000f0d0ac942c05b8b0d5bf404f59d539d36a53f47cb1f6ea36f215148d4b0397445a8b2289a5d8e3c74472423ecf25e35ede53f606dde875649671ea05883439def531e1895c0e32e794b8d558ac558a70f44167a4d3f8a0c1feff63421b48eeeed8c41a800d2206902cd979edfa40c5633d9ee4719f83731ccbdaebed32d47023ba929406a4f9c178decda6cb2cd6ebc536829348eb56431efa2201d70e2b2bb0e35497b7b1a7e527b81556976fff5890431f48cae77bdc7dac68aa5c70f7740070306158e26ffdded3ebd756132cd8dd87da773b5c99e18180021eafd55ca8e35d4f47990c661520357da7664fb1777111
+4081f580a00000f00e836e8b9cf394a938aa95ef06208202a5598cc1968acae212a08870a2163585518673a20eca3c3c968007cecf03981f55656c632d4a771857b466552ba8cb31ddf746b7a7b8e0540c836bb1f4d2e8baac26ee60e9e829880f73ced752de62e3ec61a70f87d7e59d5be6233223b671c943c71afff6516e05b9046f6dcd4406079f9ede5f40d9958557ecf7fc9728eaf3f9060c6c4dc231a99a49507971cb1b6cb92c37e75ef86138873d472dbe8669fcb9b95a5dbfa89a8661b2d1fc104271cfdad491cdb61e28564427cf07e697c666e6284ce7c23f40ecb9f329ea190a07e24bdf339f49c100e5327bf97a8c93ddca
+4081f580a00000f0cf6ae614664bc1e28b56d1995cfd8922ad27a64911df8fcc20f98ea9c9cc17addf6347571b9e4dca86bb976d339b95a53b537684c36980ee084c65a4152b82df43484679a47e9540168e23a77c9397703cf3cb70f4218604ef822abe08a2e5016c8aa3dfcf6e88e07ff4133877092d82957fac6c8d966a66d01f787baf131e6281f2210dc561930c046890cbeb58b9ed00602bdff82fa17ecbf6db597d3dfa83fe268bc9ab75bb0aa61f3e801b8368cef65abeb438f274abd15f86aede900d97c0c13868c5c92038c8a629ef8e0628f59951d75227e5fd27812c2df9f1dc7771362e13eadb876381d4e08e242ff76310
+4081f580a00000f0ee13522fbea92942379b8fd70d4f361f79d74810cdcd1164b3ee347abcffbe5da4a16178acbb039b8c0cf3e5d6c68356fd7f0b37b36c8d14028044bb0385db09de05af995446d572d96b05775998203c7c1339a90880b6381edc063f02f870ecf59fcfc45453cf0c05aee5def3d8e4e9b35b75f3d4439451c66ec4d07e248558111a8439e2ee7a742773dd51584e1ab203d342bc2480bead864a53ecff67603488862b27a328e42bfdb50410f277e0c45417cda465ce01b7ecdf08687870c2f3a32ac6ea455a12ee4f78a61b82e37eaa1f6e805e032e921757646978c884f297406aec1601fa19abfd7260f40618fb15
+4081f580a00000f05e27c6fdf6e514c0ebf6704b72ca63f5788a3ef476a1db380a9728c7270a3533e56e21be639631632db6da5f95f9ca69b627e254cdc6c6f07d0bbf01c24f8670cf16a9aa13f2f3dc2296e491d9d09ab1db280fa08b21c4f9f3c4b569bcd5f8313c0185821092ee2681a77083767f236c78c7891e58ebb312ddfa28db33dae46029724157e48f2c7a847c538477814a1b3a9ef6a0260052e5ee6823dd5dcd7f3a22ecd0fcf30d82c8084ebfe568fcc38c6a8c615143a9a2b95ddfabf26a9a1162591bace86a95ef1425a0cc827528d4fdb726dd61e56dc840f262948c853e1494981aa1b5e471fca588242b8c80301a02
+4081f580a00000f064003d20d72475bcee2beb94b386eaf1b1e59979ec90ca9033d210ad2c3eafe4ad5c9ae27ab582c539f534f9340e23a89fd19c8cd4e810c7b4f86413428aeb2354c697eea2bac669e75e4b32453dc006d1149e7142adb7442b06bca2ee03931c72038dc16a9979a9f9262a4ceaf5281954afd8714f76568b5cc0fff64cdf2eae90dd224a54dcd90d0f21aa59b384f9da150c3f2ef2d5c23c5909c9623c62065fb59da6fa5ac016027adc9ebeaf5b1ee42bd424131aba353a06c04818025a2c2b4d45cb2cc12ebd42e7579bf8fa1980aaefa0154a39b4a404b54f34130ca73321b9dff2ddf5627c2c64e5a65ed6c01ca9
+4081f580a00000f025e8a5eca4106a4f3f2115c830d8985570ccce5c3c219d50ec2adbe6bb1b3aee4c180f2231e29858455cc6ddd816dea30a429139472b2afa8c87f25e6b6f0e10f19963130845e1addcfb28074bc801798db5376e130fb19fe21b8a68ab009bc4f14eef7f3af5d6dd4ebe1ccc21b9418e54aef73c544e900147177e2fb4ba46b7c4cbfe72c0039b2badf8d37685fbe269c8e9fde0fa8962f49bc52eaf1fd7c6b5ef519e96ca77a54e35dd8fbdd2bdce8b283ec762eae39c1a28252d92b935d7e3a7295954dc664939b20f5d85bf7f8bfb86d25a3090c723fef39b48e1869d301fde6209e2eda8803ec570aeca36e5c5f7
+4081f580a00000f02c7be4cf75d5228efe06f2abbaee1e9a60e8efac4b4890a68545fc4b8415e7c8062e9e362f4e9d309d349743a9cfcf6fca619f0ff3aea3b13de7439e2fb873fb1542596ca9089b049a0389292d2ee3a3076e12424a4201eb8b961ee693a4a2876ff6f0153b95df1293818118941e4f67e4069c0504acd05924c079a88e80453e5d1c7ac1a81afbb491efe75ac7b473a1c345601f9348c7f3a1b83ab520a3893a8a98543e266bb5922e49092ce47c3297d5b9989303108eee811101fb9abdac9e8feb05c3cf4eed5e911b60a5480c0290bb19619bd772de78ceda95b274bf1e9e372d8713f1abbd7abf0392533b5273cf
+4081f580a00000f034b4baf8e1bbf54c950f051fc51f551de4eb8c5d234b7b6cc825ecb6b9cadb7920d48c545896a2494a2c122c44e4fbbf4387aecceea4ecfb7e3997665a2ffa52512c8ed5b69ab7e7003eaacabd3f38b9176503f1dcf25b34b6a911f9f15554028642bb08c4f282148b9571c4f76fe1aea349c24fa3dd70ee18373aadf430490361ec09f49b953c024aa7aae84b1eb9b919e6b7ea94982ea5e32395a19b50a485012eec2c3d322be515b0241290e21c93973c3031a85ef89fb429d3a2f2b13ffb7fae0425d120d95e2f2d3756ae07474d0183ea8b434089ea493ce387fdd9bf74819d4e8cfb12d1eacb292731e2624627
+4081f580a00000f0501964438a941510453d9161c053dc4d27d222b7edac1e37f8daa82c2cc142381c49900c6af40856318fd754536819fb1679416af16e169aa44e071aeed4111d0b7ec1b68793e66208beb7dc5917a32c0718bf0f2be9708bab32ce74e0395f68664c66cd987f2ac4659bd3ac4c87573afbd0ab654cb694d1fdcd9c87011c003b711d2cfeefa939ea05f7e6d5bc584b61246dfa6a06260dce8871269d74ee2b852a640873214059f6e235e620e2336119108cf140f4566ba6eba4f85a4037ce3b6a418832323ef5264a3bdd2330c77ce311ba3ca51d99c984e4b1a243087c1d04cca98db7e432b33acda78953ac836d58
+4081f580a00000f062b71ff5aad9929f1a1972ad33d5f84dbbf69485595bcc928d240630f6e223a9f84534410e1b516f5a763b946f490d4b0e237384c654747c4d80f9eb3ffc8fa7d32565a041b999fb53d6932c5e9566c0a1e09ca46cba40bb6f526972bde9bfad9fd98ead99bd9b09ced3e61f25c16ba43bcb4071f57f54fc94a426d4cb4c216a51a7b6a313fc529cf1bd8ef8292868185613bbbde9600bd7211cf844db3ea344537a1bc4dfa77c9b3341d5064686dcbcc1e8fe28979c776f282aab923173ab8ccce4bc4c618d01ab2db1e11cc531d499691934cea7d2c3ec216ce8a20781b5a939d7570e58fe70f7ab67ab80a86cd16d
+4081f580a00000f04a46bfff35d5b7da8db99de548358758c3245ff484139f11bec1f18b9df5267810f65bf3cbe3588e25ac48f201a355a64aa6aa05707a1e0ff2846767c832ec59cf5bba7eed9edaf98d73aedba8b8622c529a81064892e913a75cda7f2fd3e1dd82d6809e4387140fd5d5e5c381c1f8be01849527b99433fd901bed04dbd3019b9e5e3a7b3a3a97ee7eedac04776abed0aad55272cb77f2e82b0baaf4b8bd13f31d90955cba833a84d809ae9d70da632464db0b9c0823a6b4ac8d1cbb27df2085991f20ccc725dd91ae9edc5d0180f6077802b2a3187a31ec158b2ac312bfca1921a4aa2274432c6d805d379b3a182809
+4081f580a00000f08ebf1909095528e32aa3122a27efec1992454640ba0532f7787258099f828be1ea989579400f1deb0271bee0ed895874a9c0b0ec214686554e7088fd1f3b351f6dd4e933edc7cb8ddb629c8efec2c21e09b5b5a4c832512eb6ffb339cdb9005236d4db63ca455c6a1c849f96524f38348dd0f61712a44a3e2e2730a804065713909e055a56fd2d8d51e5577cdb102176fd78c409d35d8c26776844bb0ac9704ec749df5af484dda29f970aa2ba4fd88d9309b3252e659e3738a7dc99b85f6f7ffcc869f24f886b1f1c84330caec59a7358e8d31a51a56503ca68e3f351ccb61a39f3168afd55abadb5376bb59e763322
+4081f580a00000f00ce0b9b7b06d5c5c74a8c648aa581938b656bcf35679390996c6897afce7cd0d1fe3d692bf106dae5d6997b6abc1b78ca405e00e32c9e98f93d4c235b33d2720501305d7ba298cefcce4e3a0bc74ac4458c480a85b879a6fd33258a1b112212d010acb05db3494085d6e1e10f81ff6790851ddd6df3cec592604da90e3b189346b624707ee73b71da0a9ae2fc8eefd5b9e4379fd0d811fdf186cd5e56cad777ac5a80b5c2c76812762a6a02ff5265f7e84aa09d0e535424246ff5d698e35a4a86740c21fcf5a92c3c2bc890ddfc063b148a3e4ddb3c25952bf494bcbeabde5ceb94f96ba43e9c1d6922aca8de700694b
+4081f580a00000f0d3a9c7de13d933d668a8d7e933778fe06c37365a70c7031a9353d6fbaf61485b589c39a10485f41d535d858fbe1e90ff1a255b3aac315e525f7547648a7d4420a2a2810fce199913d2d097234d722c8da6ca6a5017e563fce7b18a19a032f2c79ee00c9dfb46dffcbe721a0b441db4dafa14c8f1ce6e383217e73f1cb8f9b5fb9c011f1060261e1f7c086ce2d86909439eebc20bb20bc6c1913475e02a5e5d78029f7773e5de75fb7bd31ea1efbad3666f4dbb129f66dc01bcbd344dbd3f7817f0dc87ed3e6845d657c0c4062112df16ae2202514c58ff53202628deda68f4b7feae5cf55e5fd850ccdac4733be0dee7
+4081f580a00000f0eedf16867b16497c7b6deead1738541a21d2444aa9623896c45d8c027b15e83e35f3bb2891ef08116cbc673a6032826b992ec2272102aca60211b39d792b192eae8d87a2a93c5d2b2e8283387f662d0ec38069b4ce241a6f67cfa09b1f3f8dab573a5278f8eaebd728a0b7b587ecfcf0b86f855905f609c72d767230f9dc644b89a30881efd4fe9494476d3a527b6954ad2202f5248f77f3c0c2d6700d4bf28cee13dc8567e926fc7a0c46be54f1f4e3c90c86d197988195d0e1caa1b108df718d7c86ef526390743e5c513a448a16b95337cbc9dbeabbf81d9bf587c013ec2d012244937445124927914a78b955e90a
+4081f580a00000f0ed590c7998ae14c1bbabf4bdc0b88cb028eb5fe730770593fa3bd698f060d72d3d8291f07932dca5399f623400ff9324811588861625e0c5ec23d60d074f67a155d07b2473cc2ef111ff7bc373a94dbce986bfdd2c1205aa05bf31bba25523d64a6cad768bd8ce42e771e4d4199e2671898e53fa2c021568a95731364550faebe6834b0d42ab3bf95f3f1c7191fb35b5ca1cff040c795865face158fff706e8509c359a7e5cfa40f6c63f0f9f3689e0f84cc92e5283567af05fced940b298f14777debbab6a1991584ece3976af45b23640ef2e8095989ac4bd1065dcf503050a3c907090038406310e7d302db865eae
+4081f580a00000f0c9e2bc83651f8b25e16525caf3ff7debdfba915d116402cbe29437fd5a501bb90a309de8a04cee6c452f60b2ee411688e61942839338c07ce9682a2527a99ae91396aaa6e363fcdd58fe8ae558f39c33c711353bfad3f91155e426c891b0ac5ed323fed3ec80d6733b34c8df50a07da07180406c1b4ceb3f196ca51175f3e9dedfe13e9879aa72670994b9f842c130c3346ff72184e803c6c38f169b66c7c5e513082da19277a7fc3deab1f19d834f5ec404a619248c1c0f8b087978eba086e03eda08dfc2b90fa2f9ee1cbd044362dd6e5b77a1233140e5cd1654384b3fc485047596e1ec47a4fa5f48583a8ecc9dfa
+4081f580a00000f087afce56d297f9172c4759d758f09dc75ad103dd221ebd7fa2668b52256b5d054c7942120ccf7208ee7ba0946a77949250fb13679822c149090c208d01a931480333f57d7b8e736427f244c4cced051e92d1bbcd76b834f8c6052eef3d596f69f3d7e400b03e0e0f460d36756e39c54f6a6b46ad8d2a0342b25df9cf90d4409c70045f3a8f50e2d84fb844a961183c89953adc685e39b3bb032aa762947f9656806f0038cd4a84d87e81616519923abba75dd53e987ce49c45d7f6f85dd84b578c22ca780ae960d8999ecc384a2c02d1ee8ead53194eea72dd905d2ea173cfec4a7fa00f3ac88671f3ed03c4fb2c5f0d
+4081f580a00000f072c01ae45ef4e8d93d337d245513253ed4ffba2bf39fc58e45ee57a3a1ef0107df5c8187dd42cd8a2108a20513661e030482e93193780865f2409a9a8b11af6e87af6426d4587ca225cc6c3cc5cee33813b3c09fb57f1761484d5cf280dd573940c57b411ba16f166ddfc773d261074b4920b6e1def9e67fea7092b5cbb2a8e1f60cfc02e92f177c9ba1c094c68d0c14aea1076397be90537a34095b97c6305ba2edfd598249471d9ae2b9a27a84a4845bd4aa533e31681ca550d640a65313172a8faade5165df28b05f79ab634d7729e60e84ad8a7a7eb1240e7cd9f76c2036012bb8cb56a054c2e0c19b886d2423d0
+4081f580a00000f0f90fdd8e03b32e55c507197bb93394ce1d5b71e4346feff5538add086b083405a9932f3db2faed7f90f8f25f1273d1430c3c7f748b6fd72201bf77b3b4090a4d047fd75249c7d275b4db784c1828b9b973a3727430cb0003fbb5af02cccd54f103777151d2a7d058ea38836853a621c236070894ecee369634a9b851537da838af4525ed836e5c5dad9dddd3769a8afb2443c2ffeab22a8682be12953aa4ed4a41293785da0661a77ed8ea4b561fe01fcc89dcf2c1a3ced7814976cb43c1fc909c65ae3dc34c7ff9bebcaf9a9f3d6ccc4f34317ef26fecdb7b5ef5170357e795b7dbdb9a4e0de4de9deb1f9f1467a8d5
+4081f580a00000f02be090a5f32e83b98223f5767fe1fcad544504a2a913d3411ee1022ea9d1411a25e67792e925b8c5cf6a773d7a2ca7c5f21f821f0332304fd6ce6d4dd6467ac4a34e2b44028adf4a200793d29d7bfae1dea95c1744ac1e7c3049af887fc2f94ff50be83022288338fc2202546ace4bd42139c8212092e96c4b7137bb3efd4c7382ece9da836519fd92e69b8c90adb05fb852ca198230cb81bce72a8f1c811a15b65a61478af6faef45a4582e1963c5b1431614fd83be4998accc6cafba33918bcb17cda0364876222d541870af66f7cc8f13071a0ec959f2d042f34b77712ee859957b51e5f6f3c293fefcb641981444
+4081f580a00000f0a780489ed79810d9531922528857d698513ff55eddd41d80733c0008ab770efc26448dc546ac3f9e3df9817510590ba06c03afb074139a00c1876b1b169a11dfe3583660228bfdc836ffa1e1299b4a94a204b854d804f76e5d53911ddb4ca57b7b89a71c38f3ff8f81962bb33e7734caa503bbd0e8a77635649b8c296e4aa0642c28037dc19f45711529bb17d09944b8c12d581f48ae9e57d841ba1b609bdf03835385ef09483809f5b54dc02af0a76dcf0f225cbc4c6dcb1b3fc599c58a3f94e2733dfe22d5bf22d73148b94d7dbae77e5764ac6880fe989c499985a6340382e56f38ed7229f9e438a2afe44579d634
+4081f580a00000f0ff0b80d39ab2bdb4be7a0b290f3b4292bbe6fd8dc6a44362705e3d1ee6ac29e8435decde884d5a6a9fbb3c23fa3911a023d99e8064cea4d19d52e87e9791549e92da5110f9658087a6875558015edb717134b6c8f543fc55af07123f589cdd799376ba97be6e7e580fae60cafba105228fcdce088f61da89e01df0020867b13fee7a8bf5d003f491dd5ae0dbeca8fdaabeafe07c747426be68d337fe8a997c9c12afa08179211977326d6f0f92528d2a2ba941de6498fa8f289944435d74d5559b452c8548eae524cdb0500d5176a452c94f34059541ff6b074a3bbc1b46428a2d620e58020250678a9c19edbe37ffcb
+4081f580a00000f018f44c3ef47561e568392e7528c84ed3e37966f08acaeee2db170abcdb0d1256fe0673a0325758c8f1a20acaee6c5a199dace03314321895a7f4dd89ebe09714cfffbb35589858d36479b8d3e6dab0c34549dc6ea14823a5fec2016dccca91d3682c14a9094169eaeb214cbec75c748f93475a1bbd2b441865621b53661309b404799dc9bf700e9e3b9862f16f6be59f4eb35c6941dc035ad3ce49fb67e279fef0e15627c18418e21823784cef668bf870566797afde666e39c82ef217e4f0e4e9514e81a1dc6d5a8dfa4b97cce32e0f97323d9b1dd11931f65bffe40831b09e61323e8da5aec5cceb62f6f465e0046f
+4081f580a00000f066923c0a1213eea0211c30189e7313006e66f4bdd25c2fccd3ca1082e2ea9185de18e127669993a1a347d6a2435f3ea2c5d6bc179f9666ecf992268861267e877c25bff862af528d1d51d324a8e96fc81dcc78f58df4003ddc57e2dd55f4c64b7988001eea1d9e52521843365d3a0651bb8f912f48add9cbd391707e227a98c1b2f04c6292d0b4d7af2668a5fa4be863e365f66e34966d25d45f38370b005051243aa4f6312941159c5676583c7ea2947d897b394924b2a43bcc237cbdb4aad25a2740197e2f87384bd5a96365a07d9f2541a6e038a5ffc729f57c6637d8741835f0e5f0893677c4c9eb311cfde0c2fe
+4081f580a00000f01af10b005a63edf9337e08e076de4bfc8a5cd2f1b289d17f39c22a3b5cd7a2a114ad99def27b0a14ce9b6f0ac0fa60841230587d8a6b7a63efb71d9ef0c6be44e856fc812732ec138fcd26380ef0567c5c7f239e6fa21726c0d70b9bf7d56711872b683e897e7420ab8318483747deb7482c35891931c062e7abe9e60bb22289e90d4087fa709c7c3afbfe039590cb9c80a51187ee691d589b7fce9cc94900abd7747809c5d676a53ceda251f101f1e85a2908a6c613843c3feb1f117ac0e5cb2682c689754e192ab2f3ec57d88274da6add408ae62a8086faf27b172343b75db649342237843c1d5c8bc2e9cf717fab
+4081f580a00000f099013505419937901576e28d3757116b625a07c692dfc3b04da601f9a4097a4eec799be1d3a50b5601cc3d48be9676c4aa273c789e51fc4fb46c81471dfbaab7cc0f38fe897a6ebad1d04b5273ebf6a9eac27ece4c3250205bac66104ad2d3c893c83de454b578e3b46727417ae1e8aae4ebacbf1cc2912cf8f45f21b498daa5ce75aafe2e853d6a1e69518d85899c3efa0a759a44617edec677b803bab43d5a227ab82bccb27fd58cb10e275b6d603eba1868ee2a5724b068f5359a0e1d69ea7871aa8a263d78f16c4d584a02da1dc36d6df3ecb70472c4b1fe89e399810e7d13b6e4dfee0b473a9d00afa460e2aef9
+4081f580a00000f047abdc73227b64e7ad08e0a54754f03fde1a04fb8e416d2a21a36349a12da915d381d0f10f9c9df8496cdca5419347dd31df83fb76e490aaff4d4a97fe194d01e365f9ff39ced4d9b0030d62c5f210c376f2ac7853dac9ede4359eb64f537f7b153522ade6df123483139e83be28d7418acdcf057695f007b74ae0b54e7a87cdddc9072776c9c348984303ef48df4df1413873ee44914f78cd88ead64433d139bb129d04867d6bdc022e7bb1d601e6d65123dab034467342ed3dd2428257fd1290228fb119f0c8afb916acbe83df13ded8222269220986328a910b91b3a6664e85e92f447e01502249950bcd77fc52e0
+4081f580a00000f02191c874a8b8d3ba575a5205e41792313a738f9f06640fe71f37fa511cc23dcb92fe05cb2b6e253215ee3e9fdd7d40ad49210f07f02b33b314fba6cc61733caf363bbb7d0852133b27b586b827c42929e6bcdee4ab345ee8bbdca350a87426bcfa69c27829b52816fddfd0ffaa3784a4874141a15d846d285a5969e4980afff124e950d758a901da22c142aba9c6957892ddc4124faa4b247402be1e4882db5ba97c1e22dc237ae1cce1f42ddb0b31cdcdaee6e09f3054abed911a29535b11bb1030c15ee871e6a425fb932c18b1542e52bf9d915fbec40f65a9fd3b6079cecbc1898aef78af180f7141e34a012c05e2
+4081f580a00000f055d746d3a2e04b1577274b9513aad32795e2c7aff69cbb63fde905c4421d19cb1fe135dd63c674d6807ae126d15f85763c92ff194d2c4792e6e2e3f4497e756f925e03add82eeb250e07ff815912ca3730f23a51303d293696393cbe97d93f3ef4f24f6ae555393446579aecc24d41de6afbecfa881a0c87af03e4805a7481d32c8240b0cbea41362a958f73526fe89c8ccbd30fad6636c05fc3e8b02de94845a7d23e66b89cff78aa7c8bd1146a3fa1b13cba9fdcac70d627524d3869615584c7c7d48e9ce1e377918b0304f01352f34606a57d5b808c051e923255c49c511ed261753fcc576c7c7c027c69dc70000d
+4081f580a00000f024b26be798361a598e32ab85bd5d7edc93c3a6c540a8db8aec8988dc862b7d31b90c2ea293c8fa35e13eabff8a47f3c6875ab54eeebbe8e2321dd3ac62f7eb8ddb0f1737d1cb15134dea1bbc9e00cfb816b99c706510a0904621710cce4a9802940716ea06f8c63bfc2de1ed80f96358f193923145176c0f9738bd9b3cd7d88c4db75f44fc0e00ef9959e0bc25c43aa311633a80ac3dd038d6095b18434984a14ba4ae855ca1cab1032e5e4f30c7f54337e9ed1bfc000cd2f76c68f41f37d1cd73dda0048c54f0bedff3f128d24332d99e0ae7a674444bc50e1aadeeffd352661a4681416f8c1b7ef4d74d2b057465ef
+4081f580a00000f06a1da341395f3a333164825a366bda9be5a408a61803876d421510048b479acc2bffe8447bc0a9670c230571f95f39ae12c2ec0d588a936cf32516816d4b09e3ae37642b73f8325d6e376b65c6dfc75ff5d8af5ef9916e4974552f05c351e19a9b7672816eb1387f84ecafb0f0df3c81f84278fc53e73751cdea34bc92f245a1fb933d219b1e689a1e81297b9b1be9fe87a83309885b3e2bb766cd6ed9ccfaf26c144c43f2ed690535db901c936157bddf51486481a386037be292a0e19e02618875ae24a5c4923f47c3b2e25da67b9e83e71d83c4abba015a889af43de3863181355169fd72a9d407a4644513608a7f
+4081f580a00000f0e82af229f4303491eb54d749bc6dbabb2fbffe86bc93437ed2e6b16242b4208cf6ebc0428e1cbcdfa0b5b39193cd6c8bd5fe0ad60dd2d73aa70e6f59eb0859f935f59d4ff07e366b5ea6f937f8603a824ab9564374bcf31d58598063edbbc553f1ef39c6eebdcd38f085e77f518ee798770a34aeeb9c6b6f9626cd4c66c05f7be8d4a5be3646342df108f9eb4a7ab4c6c61bfbc195c3f21a418959a7d190f0c29cd9d0026e1fb8b50120a0efe6f5b8ba19b92efc9085adaef6a689cf86eeb3d130dc88f4ce3b48ee742b2be9cdce21ebed8317820c812457d72fae82bab48e898d0938badb75574bae74835d41c70dab
+4081f580a00000f0ee9835fc2a2cae56650303607a449947ae643824b6531f51c2bf320fb2d0bf10e9470e0700ed1b17f69c8cb49baa96d7d8bf8429b26aa2cd2750cd8537408652aec68882917b994b2ca7d6880255189f9c0e0ce526590e4cbbc381ce83e381a001e4ec447970a6022aba0641f39a5ba7cb73a276b6fb7a2e39f467b6c134819136f504b42b1aea25d176726f000a99fbcc78d472ee95399bc612209dff2cb9edb98aa802356be19ceafb2c66e5a397aec4f7c427638e81c1e97f04335bc4276e5ba2eb81596e18e510d8566d00c7ca4aaac27586164fc2691320096b7867565ace0b1c148a2f9b2fa4a269d128c98daf
+4081f580a00000f0edde15eaee3ca521d463b5a1633b21c6f2e9b7192369597594a66f6c05a9459c62d2e3a4e6c56ea7f82213b0b356bedbdcd5bc9a5ad530c09b26e6c88cb20b2e5475bf13ff4637a8c578226742031b60d8e68232ae8009121218c91ec56d4d62e7832aa81ad62a3147fe45d10741840c46390804e734278d4e8ab8aab79f7fbaf5600ea3035e8869cedaa459f7259cc9870bc2d8d01d8a2d23ed6cdd4f714312ce93286e5966b42067adcff407209e599797e979f88fb6584a43abf6663f4ee01be63fbc32fca9daf33c77db21a97c99df3089e0935913b1daf43116c454462e3311df901f0b2dc0b3224b6d2e723d61
+4081f580a00000f0f429166dde9312d64d422fdce81f6f18ad3067a0c61b217fcddeedd4811de239a43ce99c4d13ff67c6f166abb9be5746c4d3ec9fc64d438b71ab133f39b754740db01ea9eb7955167897a1be9f8ca159c6e96bafc70c9f9425c39ffe208f5ee2d5a774b393f68fad80e8df92bfd4ce29fea1064abd7e834f12600c090673770f723ca79d17351a13aef622d61b3d25c3ebb7f306e1dfdd9bcc9575e4e75f18f286a0a7ae32413ff1b01b7b5d5a95dd1b63a7fd1b35df6ac4479b63e64bd0dde9a0fd42218cbf8ccb8df241e4de23fa02de9c13634f672e313ed1c8c1ac0fff5c57f851ba1f9d8e4ad29ac6b6d932b86d
+4081f580a00000f03e00c6ba925e2483893f860b43650b7204e6fa9e28409ac2ed8033cb0065ffeaf05788625a239a56815fd61eb9044d78d9cc183d5f27733999e6dec787f5bc3d0623c90755c89c1acb8cf49f43e08b72297a3405d6fcf30e220b9fd74af986fbf932286fc3e76b24de8f3117eaa59aca6409400f94b8d53418df5aeb1b3085bb2bc50ad9def30d3828b34f19ae75728a9a63dff8138d5a061b6fc0cd5410638ead4b5096e3610b5a7e455441965640fb9a482b8b5e5ba80915b379141d0605b3c67005dfc6f632ea435eaf484c02d29c4873f6f15cb98208aaf5911ee0c186b3c32c8e9da5cde5be74ae68deaee93fb5
+4081f580a00000f0d7c323b071332d6c1a48f1f563eb3ec25addc67fe667ede9a165daca0f64c563692128e00b4240e8d16976fc402f59d3f7cd7fb3d27f3b5193bebfc24cb4b9b7b10902534025e12f38a1babb565fe2f98b7e83838d536598d4c3bf5ed38f2c6dbdf178df000715e3450c7f5fc40cc6acf3d6bafe2101f50751c1a516bfc037328a62f3420ff59c118c36cba4d2d9fdafa0602f44a8cce6dc5ff0f4b80ca1ac4223f044c3ec7f2161e72df7ef2b0bc459cb9ff4932380c344c5c3950a0c85fd4793e8fed41f92129bb14cd641d47be96077f40131d3f0b14dcb567aa853b059c1619eddc751f099baa4c2f7f04b856a88
+4081f580a00000f02677b6bf46649a462c18c09191224a22d02ff4fb1bac484124291b0e124414fe9ed6a0d83a339aaae0a26b87916070c57d29b5916f4b323ab540ca6aa9f795d43089e4b0b1b2cbe6291541600f7bbb81a459a0c9dec1b82db8e6797957119120daa5fcb3ce58f5ab7cbb945b84a150d795ebdfcdb72bb64061367160269e6865b95a6dcc7274b5ce717c49417f8f611f14d3f42b72f8441938ff39b702e31ba19256ea0fa67d097d04a248adbcb84a48dea944d3604b7bac467633d4027217debd94815ad326fa9eb2ab558ce8b1144f45e29589c6f3229f6cdc07a60d35a84e089d3de968b23e33a3496cd091ce82be
+4081f580a00000f0ae07cb3495303e5e515b720e86e15932d62125ecf4a4023f418b9dfa901be4bed5782f6cbfa73ea1f2cfbf8bf03be189989657c960bb3100b809116260e03500b4dac89b62a04b7973a25b9b2d36cbbbbc4f749bec56b01c09b048b2956dafb50b84b4fe2891fc8b1b09abd39b704c6969ab53ce9e4ba9415251ec45f83dad36c1dfa6d96a82ee52d9dca11a0f27679cc02e1582a18423af03daa0514a0fcc870f3ec5ed58aca21c787730ccf0d6fff5067e4c0c642134b7d2f3fb0df16ade7e2043d496faf978fce71fb4734f57f2c69e1d3fad3b5ac95f39dfc00a7c493ac2e3bf888c8e9281be95e15cce4c7189a1
+4081f580a00000f0d5a7ca77067ecfdd80cc2d51e00b65f3746c12681fb16e5da9b79cfa06fe45023b47b7f42f83482ba37687caba23fec12a3803423e92d862a8046cfc71ab33e181c60371905f9694720d1758b2ec5dfa158c0992a9413329c54f92d789a43dbfc785c1203c6dda21f809e794b32d97053134c8805b67e7fa5054f7c136ddc39c89e293f209f3d5285e13b6549eff61e9c324f015f5f8f1e9d678bef25a339adf13e4ece6b1af99b4219c0973d94a55a4f94208961d2f08aa3dcd94dcc9a07e023ae6a7f43b5ee632f030ee9cc6d9bf32830fc755ea2ea203ab4b7cda0ff7f1905f21fe66ec5fc24cf912ec06e5b9fb55
+4081f580a00000f078323a9e83ccdacf09eff71cb0a05f9ba1a49ecf7d9232fcfea2663deb7e5f76e6f7b54b681ea0e84c6c41460f71d676c4cfc3c42084725409480217266e010d05a1614fa0ce18859220adba3cf58fba3ee2b629a343e59293b3b8a0f9986c3faba2d82eac12abca41829d09dd9a60fbba38cc4e37c8ae7713e736ff1720028bb7d4484a631c04db69cfedc628ce2920ce626fa3b98f007e23d2a6c50822aa629dbaa22aab224df0ccdd293572716886126cba85c052fbd5f4bad064964716567985a915ca3b693eb922d0b854c362507228b1bde9e25eb4654a05f4954d2b72264b28d427b71f17c48a0b9b6b35587c
+4081f580a00000f0361256262f35d1f0ea4b76c03d45aa7ca9976ba124bc48ff2e4cc4e686207a69c2f85405e49751d4ae80d3c959e5e40b4ec5f2dfe8372454324c10696d88eddb49d43ead4e9814a44cd0206273524aec4c90620c1cccaf513787a439d75f26a6ba62528f0e2d2f86f2bef41345c12203716f43312ed536167ccf9895a7e5050db2a68f3ae960bf3178e74b9b7a3e69e252c61d1edbaa5f7aed5eccb99039442e4f9564851153bca88104d93f581ba6aa25bfd5c01a53b9c330dff59113de6ebf111501555c57796950bcce76ed64824c4c497830ae0d4e84a64eb2d3dd828b55c40fa9c3ef072526d9527f7374f0e160
+4081f580a00000f0645686f77a9373422cff0d09d04f1a56f123e2c5f54e42a110ff5ecc5f768bb2f61b6cb4d019e8a226a79c7ebbb57a7d901e3b75146f948554a934ccff0c452c2dc27c229097074aff14669bd66cf1bdc6c73f15db5028a3dfa3bce2c82f7950b02fe63003fcdddb9888655bc4f8a2fe067d3a598eb7565c4aa6d2f2eaf56bea274757c0eddcc01dfe4abf9b2ec0539e44968e1c3f909f3d59b3e2e93d58bc341096caa28b119d5d4bc93f54efd880d0571de7527e83f4621412249f8d54c4b95371f3fc94a5b10ef2f06c093df129814b36b58a71dfc0a9d5bc158e9996d3a429a915d7085e5de8a25c6d9aacc585fd
+4081f580a00000f0d52d8e373f04825f5c97e584aa04538d3633c9fe692aea0d4ea3159fc599d47a95e923acd3978d3715853af7bb3f157dbaff67a26946ecf0ea6c98a194935bcd4df0c806361c5d7d1e4cc6ce97610b4b72a6d694ee282764e207a94e6168a0b702c735ca87adf302df16558d43863c52ac3be567f62e3fb62e4a95a9b5837e968c747cb985d12521d7bded6c8d3c7296e2d5218ddf6bee7ba56b63da3cb822fd1704be6a8b060612d08ed8779022639ed2bc96e602b690d7890a7fea1f98178ccca2cdda54dee512a22e3737040dfa62775710e453c5dc2d74be864fd3c3d97c7b48ff65828cb041a8c91603c7f61cd2
+4081f580a00000f063b00aa317a36dfbbb10d82251b428b15490f1cc096462d80562a5cb0b87631a5b0d11343189f8242759a6366f130db0a9a1a731f8a3d96c763ebec25a35dc653e3b7aee00deaaf044e4393303f5fb5eed97e481ca4a595d50860d56683edb71a00325adfffd620d756763b5b40a7329a29466648c5f48aa834de87391dcf55e2a2a4087dee7ef3660faccd8a5aa9a99e5efd7f8d43c7c0df255bc436173f9e6054be16f4378abbfe3668458e5739d08c90a64efeed28a9641a691307d08935a8d5b95ae7e36b1b4b75e5b90fd34d1b3d2f3ff31c3410b1e7a097c9d56448e9bb87433d0c8e26006fe8e278398c12b47
+4081f580a00000f0e75930b183229a1e59b8edf8eaf63668362db2975ab5397c07fac85eb5786964a3eaa3497f3916646cbd80955e9fa912ed313d473016de8120a5e4dd2cfe7ae5e10d7263adcdfa9524e7b83f17fdac9a80c23c948d9d885948a770b54ff4b9078f8b0bcfff1f22cfb18abb84f1a8d955a45f4ad6dbd2efa983a026f105736f9ef5378cd6158cde0d914f9660aaf122460f787dc5ce8c6ef6308347220f8adf836b2c73c4e457bfd80af68ded15f6cea088bdb9ce968acab06d1d849c688e4fc60e9d62db2a0c2de2b98c15639b740dbba6c761d2bdedc8051e7d89f638f46b44a3488db4b6b7d772ea5eb88808aa0fd8
+4081f580a00000f0cb34b605a509cf1ea0e87072307bf8f664103501ecdcf8ac11cf5e52dcd57926948a2936d049b2612f257a1045403405c7112052c8fdffbdaa817206d04f72329298a531b5673cef1eae286db00a322dee78d3baabb3ff345f7df7445e4b1c4d7509706f7c8a00777abdaaf8b6f4a1d83a83bf0f49302b19ef9523cce7728c493a2a95d860d696c1c4062cd347a2203dbe0e17f3a218bbaadb1394573a28c57d81abef3413a57c35fb6a08db3c2303970c716c537e41887b64660d043b927495fbd2b559494b1c9e3cd07c6c1359fdf7d17dbfba923a83fe5d03c6855f76d402175cab9eced461cd9c288e75207e40f2
+4081f580a00000f01708bf68159ae9232a497b8b07d981beb1851217f2b91065ed2da08aab589f8147db2ea8e1ac8a1528ba15385c3e71a029a9fde7bc22c46d51bd40d11812a0cd88902e857035d61e2199f08823b540c31b5847d6b3a704b139c81ce6bfff4e99e19d3a3e88df301cc4f81c171230569e1d291bf3fd3851bbdb61f350c7d0dc4c6c0ff74d480ca86b5bdf6653446bf02f29947ad22e4e75d009e2e52b09705f432bc95317e7fb982b85adb0b8681ae60857b2a7990b73d60809731be97f1c120107214046aade0f30e9a8624556ee5b08e4ad0d68c9958ca5949a29e32d137bc2dffe2d1fae011b16bd4fd6c884e22893
+4081f580a00000f01fe502c64803ed1bc348251f5b980ba1ee071f1f752869b1bcd6575e32be86074052e9b4d4a9557ee5ea0934de6c1767466d5542f5c1c3803016fb7eac8224ab1e3b2ea44e30aab8df5b9db026a38b8a785153a7dfd848980fcb3b58bda8c5fe832c769d2aedaa442352f86ff78eec9128367fd9d1165ed9fd67b40429ae28d6dfcaa5b3ad2a2a55a18116396a7f9d4077d0ec3aefa4c38641047f872c947de318acaf794748a7e8f714e5faadbef7e5ef74930368a55eb9b43771efa49e57aab3bcd3a246e1bb5363e124e3bf6fb2fd2bc129bf33997605039bad7bbd8d06616b6033a25b550d86439521fce53c7acf
+4081f580a00000f0ceb6b86fbad0e8a9721d61e7904c7c6b470690e78659bf180e3b44ff3aaa66ca272478686c32b061eb20f21773c5cae09d366630aa532aa4053b030a2b096af68f39ebb118707885e313a579b829b35124476b8d7149b234471e41ef6471bf1b897c377c996e227be456659c035c0f806a36173396890829fc83771d9b026f62f7a6f55fb2393d58c639f657633cbf139a8887ca43936b9973ddd071921375e9dc5d6b36c115cee87fe37a23e5072c2a75be013226ff9622801c27f68ddeea9e9c0324cc6a140a7b1c6241c5c9b92a9ecfb90ce8745eec1ffe93b182a9e3c386efab37dc8554c992431eae7d5f117a68
+4081f580a00000f0841e668670085b9f510357c351c29ac198843f4301e684d50d3b10298e961a2a78f7fecb7f71e1e84f56653e06a75459ff2f60875a11e897bc5cf61056fb7b659a2d57715d53ed0e1eba22a72ef05420a774d89e80bcd3818b3a620721f7440c3caf9a03dbd4d5cb59ec8dba080d20461163675840e78989ff9a8fb31074811cc8083d8984fbb2d1eec8f5071b0038a5951e35d3981eec54c70354ce021d59e8d1d609de3172ffc31970c51959bb3a1a3590794133f7807818f657ffb14dd8c6e28ab1e8793e428685c577eb072fa19c7202f71e6e3993781b91c36f626ecf12d78a242148d83770b00f55d480bf0138
+4081f580a00000f09283124911d67e68c5c5394bd4dbb65f1fd7e882fc73f989ea44738386eb94c74e7bcb1ca8686df37c771e83374d0ad201631ee38bb2089a7f1b8d39ec232211f9c4ac1586e77ce7f569ffbb1a13bafbc768d546e1f5b14d65d9826d0f71730816152013f5505f190e5f2f49f57754e8f4485335be4eb01109df2a6d587106812679e499049a0f133677469dab85880da58b1b88bab9a2bed9e9ed40da70487b75d3485669cfef3dabc13dd0f6a4570b509a99dbc93ff0fa10c55ab6da2d7a3da5de0e67c12f54223872da452b649f18507bd7f5a53cf6004efc2f5cdb2720e97909f386ca9dd3ada506b31998dfbac4
+4081f580a00000f0db1234ac788debf1a958f883b2e1b4fbbe6b54a44a33a3d3bc98050fb20b520facf6a9265ac4e60b6781c3df9fd7395e50a9a378c29c5826b13af7f06a4ca65847cf2b8727574b16b4e6e8887f980e140d8a9dfdd590ee812f0dd542f83ad20cd8d1fd9e285c2307c5c4a13ac988a97c0ac55b80f928e20acbbaabc33dee9d04d1fe7da82fd6cd857fc2b8dd8afd99153926c86dcab20e0964fe1a80cb3a0360c44850feed1be469ddc22bfbe90cb0aba270419d52088f4f995ad2a56cb4bde1d789359f9a5182fe768a8040878f38705b6ac9480e9997b2694fd72bcf86e64b05aa9d08b182358ef420175131626923
+4081f580a00000f07f0f92ea243eb11ad753bb60f99f760e06bbcda7d2d1d4bdb131a2b5c0959e60981770e1f283fd67dfc503ef1c0249ac1c9b19ba3cc87777494ca93df501dbd6f6104b838f896249de9b42c7f3c4565e3dbdac28f4c6286bbdc5fd1eadd3054e7f435799ce3303c763de9e4ae4e55093628bbd769a25f69b43ae54e3ec4b46b668c4617fdf3063728cec00f3d8dfc283131c818ce079f75b54495e0bb90505a1c2276a570ea0a0d9250c0a932df6b79c38c848205b9c128c35f7220c8498a257cf39c779d124c9f04b1ce51af670e7f1a386a8c3de2fd0be4cdcc935882666cd500c6e743df140b28d8a0703cf69e9ac
+4081f580a00000f0b3879da1d6eea8161020c93b86d635ab8069a93b3f9bd9321e0d6754aa7175e77c34f86992f9d39f2dd359255c9398f2408a1571e9718cc7e8d40813e3bd5e7b93eea3a559ac13a5ae342059b7426b4ac2b25d43aa0941efde3c3f734b18c8d67e93fb16739c645538235975bc35f95dfb449d07ed5f8ee6e7f7db90dfb4b2cf137050b0f7b57ce1db92e2fc5655e17eb02ea2d6f148e29bf17618c9b9a7751f155eafe7ed64532cfa434f87c31b4ca5340a5c59ade20f339e72bfc5564efa014a1c3120b9f3d3a8f0d34f86403d79cfa50e34da9f6e4e30d598a26e866b9738f520420bbe66ec3e85818b6418787495
+4081f580a00000f0a33c6f83d2e6c9294913839b3293ead830c44f780e57947b4485e49da0e6d57324fbe16d0d17d5a5e1b8cee9aec1d18c1a601d27e00540150f041c193c97757cd26ef667bfa17f83f5c2a21bd99b0298e45b4960f935a4de71a8209f080aeddba800b7234b48142a43eb9a1fce1610aa6fa53c5cb9d7cdbf38b7694e403c1afe9d055ccb02a45072c5cdb3d4823dded7c22841227d2d06447407de6115a3aba10dd75864216de6f7c9cb9a894faf9904ca2410f76871bed2d04acc93f7eab56b11ebefc70bc1674bc35fa40ca74e394e14759b3ca118bf63829845e77b12153995d64b57c75b77c5b00a908d0a56a0cd
+4081f580a00000f0821f672053709d62b67e6254e11f4918a5ef15321b2e6f15494b42b1735533574de071e2bb635f30560d0bbc0eaf0f949139be09ca936a592985f08c37165b3d5cf687166a69df3ac353e17c704f483f43d2afcaf104a54ca46c36a7e66aebeef7308d257b4c6cc4f1f926023ed7de3dd5bc8d4a80324f4f70f4d432df64fb220e6beccff95cfde7d811c129f453e311a72375eb6430c72df2cd72d1ade225a6a4048c13e66229aa5777e4f57f45cf53461f7f2d69ec8662245ccf553db6f14f1c7e92b5e0359f1c9f9a77d0495c7c1224740144825198e08d649671bdafbc201b497a20f122e1d2fe367bb9ef5127d9
+4081f580a00000f03869b9bb832c076cbd9dd03d18dd3960fe2308661eb4650e8dd0e341c2920be7e773e2e7e797e6ea23bb4ded38cebb88ac308a8d22d43c57472fe6871ff484e4024a9feb58a60f0559564732bb8e2ec6989bdf2dce8319317ad3b70519d2e21acbc7d28e51fde61f065e210f99cfa12e435b5aac6af332c3d23dd3f673576cb6f55fa8ab998730f4e3657ffdc5bd464e03576ac860e6dbf9ffddba5fa3c5efd82a4b648d40d2b643667725b698516dffe663bb3612d68ef643f86d38f1eb94fcb25684de26be96565914ff3ca50abc51a50f4ee1c0fc91a245ff3befa952fdbabbf48ed2765f8205c3f532ebe23deb2d
+4081f580a00000f07a61bb7e022b65d7ef16a906eb4a3b2ad93f8bd3280a070ca842b0c8c5c0f65c94ecc14835fc2534976f52def9ce3a8ae00a6db0cf28b8e21d280e37c3e29a8973e5fb74d42fb5a651c7e500db86d2109111edb7b5372ebada0a7fc7f6ffc082b2bec5702a23163e6fad5da127e22e9788a11d4a02ef524a9af80f23001302d1b62f6a630b0666c662c1ad9a021a40eeb7a5fdfde968a3dc2e0682b33c9ad1bb11d59924538fe72629a0e433bb2124da2f2f6cb03de401830f6339d3c130427dfaa32604bc4187553955b84877993504813d7887d0a2f1c5469171ade6d081053ef6f891691d49337085a8ea4069ca44
+4081f580a00000f0f989374e5bd9d78eb1817b508b879100b100e37a8950962a41ecae5605203fd00dae90547ea388895ba800a706452833943037a2c540c159076f69575f343f922aa646a6e17000e630f5020b5295426828e248f21988d61439e8c781a42eb5ddc50e3550bfe1fb3434cec67e56fb65f785b6e6027c513b59b09811c230425ea82a3dc7279c4e66b1cb02d81505a4937d7bd6f61dd8650b4285b8cb0a824e6b05b81804229ed7b6ca0ffb61f31611eb0acd0561dc93961345dd04233503e6aaa3eb41aa44379e9facb324b81daf2eda10a6f39cda6031c2b9e969d6db2e7b63ec1dccf99ac0d4c2d99229f6f36bb1b9fa
+4081f580a00000f0e25799607eeb6ebf82d21ebb9b7cca239e25f99fbb4e314271f356d92daf5d87b20b191bb237341e52b426c768f16278873d6965e74adf9835de2ffa8bc9a33c3ad3b35e7f9e3a99652eb0bf4e749f702d5aec2813010799dd46d6d6856a31b3d25957380a7b74d6510b63b523bace9aaeba9e8428a9e9ba1e3ef5d97e246b6894e4b3d3586d92b22a9fb7ee53c1c96af447396a5d8c7c9f8e3234bce6267dacb7067d620b448a1b46990de14bb80bf7d5257c59b587650237e867c8a10887a3437ea88828f7ac31d6f88172ace8a7af5ac517033d91df60ad1eabc3c84466e5d6d1f55c3fb237e352aadf05b6853311
+4081f580a00000f0872ac4e462dc3ded9793e616ce43ceae71ac166fbea93a899bf850eee5db4d5894a4a0b1878f1c4a1e54b8f97e4b5f86325dc6d1306d53730082af0be08f3a61b0fcdd6b967813c35ed033e66241b439aa17c7b1d53b00886d559bd957bdd5b40b2487716fd00a9c295b7d9083586e543909dfdc9ccaf33424bf37906c1003a75d11ae70d372c54134cd7309e2885dd5e7c2a5db3167e6a10135024b50165afba6d585e1aa6f5c09214dd2a82d7e7c8daa83e95ff6f7c83d37e12738cd811847e71c4fce200c7e2f5b3febedc7e56ba18a575eb415c83b811aef8a155552040aaa90b5f0103d2ec4eb63efd5a1eaebc4
+4081f580a00000f05f8aa0118c4323d417c3609f2042882d1542f9b25067f415a2c34955de9ee0a9507b3d811aac63e47cb55b94cf248a51f7444fe5806ea97b1739625bb72a7aa24d9481093f9d122a37e17ceaa7ca8a5ddf42582d6e21ca63923b87b0630be64ef5de25a2839dba48006e8739a63a5f68320a32a8c4e94aeb7a0a83444b5d7d95cffd58e58b0257581d1483df7a763d4be15974f019ee33ecc9a036db985033e5422988106cd2711d9107760a8d6c9e1f3877df303ba28af684cde06d64ac3f7a40dd1fd9833ad3c10e76133806b14b766b47486d9fbf7dcf00b193ffe0dc62623488de7ebfd2c714f4dafc041d4812fc
+4081f580a00000f09f71376f5b759d15aa892353e1fbe1d36aba558da89c11c97f05860a413157d8bd52674a0e5acee21961de88705e9898cbb6f43f3f56a4302eef6d362009da6632e9d042321b9505e45f7873b262b426118fc9e479bf34bd8157280aafe883c6ba66bdc64789b865f95fe78373bb33a93ae2769d32891d396af815796da8b693cdf5dbc9cae815b5ae6f76eac69184c2b94116593f38f95918bdd45989741acafed8ee4066fd1e394c62fba5043b98d217c2e55e2295ac3b550b7328587dc8927579fa8a632547da0ec57b951b5f4e11b2c4d2c518482981b94ebc58b2129c9b801ce09c5486e5f788bb7883594da2b4
+4081f580a00000f06d5998799bbfa4c0a35df6346ea7a27e7c6ce44e9a76f6e0083c162f33e865b2fc72df812924a77cbbeae7477b0a7a233a2a719f20fb37064e29c1fe10f3db492cc934bc33cad711524285e7d3b7fa84d0bdc918cf51a329879d62f1471ca5dd0d9709366f03d0b9307d2ac78116e815a1536ef2490b6444c037c32fc25ff89c5fe01e862dd11e216ac8cbe52eadc759fce7b43a0f59854340bdc03963e8ac9985ee82052bb112e8ce1d0d52891a53d5351755c9c49bf637fe041c9f52fc323e45d5bc2d5a50145df7b480519d06b0adb1d57e60cb6b85978c76ce77e68c46a2dc0d12fe5a7ec38f16652677688c42a4
+4081f580a00000f00ae970247c90308957bf934cb94087d365467642a7b7b1483ece66f8c87f91cb4b3f1c2af88422118682f2bb9251dfa44a77fbd0358781613a5bc70cffefcc1e5c356305d8914f924501eab3015e6cc748d8b4ab9d04670c8124fef69eb764f2bd3f82985f18c51d55dc33ae25581c86f141ab5232d9c21f4fab78138e7b0e1e3d9c771ac53fe9a0d8f93aada8d9f0bcfee3631c5499bbdb9d5f9014cf06c10df8262dc4950d9adf59c5eff129feeab5e2e65fb2a79fae1501b48a7f45e6c4fdfac1ddb60301baee32f791d4028e0483872ba69026ec3c8ff93fa1e22bfb5ea795159655383a5d802cfec1f0e00364fe
+4081f580a00000f0fe11e432f144ab01a6d3ac511081ec284384f2a115ad4ab917d3010cf35ced63e6417c55356fc7114893ce78ef0ed041f0e10628f79f96ecde422ac1836f4951669349a3bd429d751a69f2e037f5b18e9e039fbc05facc96f624f3fdf5f48aed1158d38cb9912e4d2a000bcd1d15bca7243af72286d56f27ee1040f6c0cf7dbbb6a44b7c35bd81c87e3d7b887f39909e25dfd8b9e5609d90a7d383705bf7c408f5b7190eddf47520c1c642f0a8af62d06e35c17619bb36552eb05d54faa0e7693ed0819f5acf06c4f5a5a7867afbbb204ab38f5b30c0f18306120ecd310420b30afd8f6f0dda208a41d63a4a87a2cf1b
+4081f580a00000f07a1228eb8b1e3c763088f72b12780ae4e69ed7d7b58d342a894685bea1a9d433ce8d629ec229cda55995676f9373988a716d73dbd38cdb2532cb1c8b96d4cecbb831e75ee1e41fe6739bd41c90b9bc91af658fdc33f6178248f428eef5e0771da662069b9a84c6f01d301ce7fc0e9f27ae6142cb5025dbefa75b90d0f805338d21fae22d272a3b1b46391277c0f742be2546fbcd50d2a0ab07142d467d3b0565ce7fd1ef8ee4d3314652c8f44b12722f87835c336a7f3e56f78cfae32dbf01ff466db3ec12f328d9abd7f4635a4d6304e1590df19637d3626fb2887860efe4061ade0dd72dd401e3ba4c0cd512069cf2
+4081f580a00000f08d2e441ccd82597fbd4dd1117f486b2e2d629eb2e2aa08966193665e5acd1389867b46df3b4e3d1ba1b90cfc1f7a50a2c3ff9fcc3d3ffd607741fafc3340b56efa9aa76d6a7ee989288003c26411516b6d52578598fe90319771827b62d45b597e18a093a218c945d31f5922b519070c365c1ea48d6bf0014d985e4059b97707e9fa0826e6bde6bdfacd37d496874990cb7698a7406a0e777bfeef2218f6eaaafcf069ec6192dbb4441767fd2a65a2f04b76f92cb2ec0b5b17d5c81d50fda52ce23ef32b60f33febd2ec9e396a90d821df7a95a8d842ee6d0e38e75c437f73d6f2724b825ddb5870289d6d575fdbe713
+4081f580a00000f0b8c28070d2442c4df63106f318d6a3f2da18cad7182f167fcf4e217f6a13f70e5592b5f10fe0d22f1ee49293e2ddc9a3d09d30d194dd5040c7cb2badb3bab10bad4af5be0e7bd76fe3e4440dd184ea970eca5cabbc39c632f34b0f559bf9fce2f6a749c938da8e7a94b7b653d235c316ea5b5885b33fa31c10451889fa5a735637d3c15bc7840f2061bd8f2c3093a7922640a827ba51f17dcffda1ec13105c98d443f429e545e4cf6f7cdeb1014c43f0b23d03643a02f9dbb3661cc8d855858f84fa37b5de9b8bc219d5587672389b46b29ff6ec7230008d4d91d479d5df08650d33f203ac1761db081e2a08421b8946
+4081f580a00000f065874a53e543060cc45b943f459194fdfb23fcfa336486e994c3bd5cb2fe619846992298443fa4f46993ad148b1b39125667d13441e3513e030ee64bd8230807f43a221c97c1abd6295033f174900b4328a81de1505614fcb3a178173711077b33d99f34dab84b56ad9c945406731a15f7da4f417bbc7cbd10c5a7fa303ad015b666d5ebae589b276a41953f17ef27ed137879d479207f7a4adc468775573b596f0da9648bd0a6894d454356694699a92c5eb4414e8d88b09fd02d74edde0d259b4dd5e83584a1ffb59d5af46208c40e9ef0ac64270e29bc2f211d7652a93ba39f5bb4b95e6f7ff42b90ed575d12ecf8
+4081f580a00000f0a18c531c268a6c0ad371a35c7fc1760a57ff7afb042638104cf6dc128312a81ee3380a800f844560579212d65b6451ecbdeca63eb1ac8cd5695751b79dc690c7aad8f2b247c5e56491bf0f3cb942101092db6e1eff571c1d74777766ed92c4c35f87742c26de06274ab33022b7ae88a756b4def6fdbe254ae68f33fe48b1352b465423ee0ba3b8116adf04c76d520b1562a475f71bcb2c38528690b36dfdca224e4696c7199706b66fd9bb7d9b6e7ee36a27f34b790e6a18e177ff6a4ec0b16ef50786d750d95c332c635499a6c51a40f0280da956f7d2135ce6ac291b16a077126619ec5cc1fdaa42f8604bfc9e7bea
+4081f580a00000f03e17f54360c5c76d3cab4edca25682135aecf6525d2decd39de9e335310d113f1d80effd2821c032c3b26402898ec9ab3814a7adf31e2640ab66e507c64dc3af798ea999ee2698b8535c8790e450bdd25cd6e5e67fbb31dbd9f48745daab976f46ab0661dde1e42fa1eb320c338b703a19d728c3b37f58620932fefd9b6561570bee3e9e05f27e2093288b44a8af65d289148de1ce99307512beffa3b32e5bbadbb41c1efd5f56c10fc3978e158e8905531a366dbcf611c7ab33b1fdd2f37e970282945b04af8bb5d0b4b739714868afbbafce2750e64c6caaa0a9dbed459612573e27a69f87b66ffa3162eb11e7cfa8
+4081f580a00000f074e09dfb24d261f1981c9f23f70cd18d2441c40c8c5de19e11b3ceb61f651a87d19df7d7ded31439e7053875d6fdfe123513cd39f720792161704f9c4a6f22329c5e1e2e0028a0eddc693444cc9528e101aa8313a171de77aad846876c901a857620ad81002b3dae7ccf5ab3fcd0bc7247edbd70d9e175a0910f4e4045b1fa0361479d096f12e13ef865f8984eaad1b7621c5a12756892aa2a2b6ed22a274ffa0d71528250bca203156084a19cd98f7c74f75bfb451895f3e6ff8ca402f16333cc176c6fea816ed00b45ab67ee0658b0f8d1716ff5a0fe4bd4845c174067db61c11e7dfa66b69683fbdf99cb7f59d890
+4081f580a00000f0e226837e3faa626d72251b376592829aa213614b16f297d9dbe4d14f0e3e62741630451f8a87d18aa44254e3956d46eba71eaa4c6e00017259b3a048e14ab5d04ddea272d800f79b8d1509f7da25631c20fd5ad0cbcf57ad800e9e62c09a902799e07330d2708b88eaf1691a7c9436da37d2b0d1d28634231a27c24854f71196ff5e6697547ccee40365d9d1a701232fb6890398e43f9ab1d38b5b80caccb493d9cbd0f32c03ffeba37366806b2a9172dc44d5b7965ef9c4319d3a0cffa5946529042bb7cede1b7248d511c1fa00baa702735d91aa18a19c52d092e2a8cfc51043f6e38737d40fb3f2c81d350f5eb256
+4081f580a00000f0c3cd62f67cfe2a0306b779793b18e73248936278c129e1c2cbf1c5c5f0598e04032c7a29a2edbabf68c90e77e872be173b90f80dde5fcd11823ca76d682a0a71c7b6dd3da93be4588915985ab89c67a58399a310070ab73e1c18b21fdc8b7f5e610aee3f5f425799a69c2cc95c9562e6fe9707d0c927d1cc6faa98bfb35dee1b3320f00bc0d1f5fede2c184d36aaffaf97baaa5b6976f206e24ab302631dbf65bbf7f92541562b01e488e1ab6f1a61633d086a56c6e1e75cf627b18e3826b6fb0c6e97dbc441015176bcc0fdee43714dfd20f8f7a8bde1dc163e566c471ff676df26479de1e03660dc67a3f846af691a
+4081f580a00000f05e91be476cc8c542c3ddccdb9a59ab75a52c84ee9a561a76f17745ef620350b4e52f88b448f4e6868319197141ffc87819ab88f4759669270c13447bad729f0d111ac039b63f23a1b675729264114a37fe9491b5f4ab6c6a8b6218dc1a4ce74e1f00a0311005a324650bfbc7d743216b0dcd0700ea6cb90638c5e5263f0017a990998346d41483f5e16c8b3339d2ce8997a8eb51fbd87548c18aaa728f3170c1ac420ff7312dad34b04359448586a04aacd8ead32365c057edec1829f379ff3967418653a77f0ec4db9e72e42ffd1f37030b27bb8672874eac68063fde67944d29839008f2fd9494e7b74a238b3558b3
+4081f580a00000f0056875fd3c386784c89c0c3b975c908f50a3a2fc49ffe576e57e68525417e0b73cf7c11391fde7c05a434e6b8e85fdd631dbcecf1916ecca596c7885ba1dfcbdb3cebdd48c4e5051379e817b13c41f2c4fe09a917ebc70482e005f91c89ab264365e171cfe2091b79001776323fba015e3da311be5d7e3a125145043dfc41299ee11be5347a9a2de673b90899fa5941926bcc56c7fafda32c53e4e003c8b45b9dcea273d200b77a9cfba6fb936a74d8a62c1c0b9e545c9e56cb01166857854f8c59ded964e9802732c2ab7bfc89959c9e5289a8e9c3584e71cd08b7a8a0ee256c5afe396935ae3d0c1001d62184bc036
+4081f580a00000f0ecbe585e645600ecb8ef3b07b65e35e5d56b53617e604e1aaff5d950d3711acfa704be537737d0277f90d26ae73121666164241da75463fa9b6a3ae37c459913c216bcb834a3bbd9e26747b4024a126ea7ab18664438192892b4cd2f2991dfdee0e016968ac4dfa50da182925170f657b69f01fd2716ad47ae96d8e9dacd8c7218d60bf77dcedb46cd2f68c084f98460e72ee6f8297ff9f12f435dea8b5cc8aae4e7b00b9251d36d7fc17b80cf131076ede4bfa3442867776ce8ad160ade82026b88653ae0535502079fa16da2ffaf15a9ba5d612b7ddf24b3852a1e9ef5eedb1b07a155c7dff4011e50cc301ea12f54
+4081f580a00000f0b4167b8c234d9461f15fc2119585b70903e93c1bf8f11c5d1ca33be005ec31ae72c7265b32a30436fe411cf67777f1fd1bdb62ff8cc1122ce163637e8d2853946dbac605bcb7658a7cf1804349fa0cb49bf54741637a201a2dbbf6507ce92e37c61a3c86d8dc52ca3871e1eea62e0e4c1e333bace35b6bcfbb151985c7ad6c8d0b3bb7b583e298f184bd4f25a2bfb0da09c7279368f56a38b83535b66ca77d4a4ffb7b40e57a8649c8bfb3d8fca386e5ee465f75e357ff7e9dedc1ab63bb6707ea0a33f215b79800ab24a39e56fc4d3e0147d90617057cdd69e9c28947cfa71164f4d5d08d730f00760246bcf920fab1
+4081f580a00000f01b3b4e324a887e50de220e7e0ca951b8e2281edba73bdcf071d3f5be0b1732d9058c8f1a375c68859fbf19af79cb7c438d06b2b73060f0b2c8783f1dfe921f4c828f4acb2fb3a2ff91e4e93a59f5aa8312c8c3a6b6af87d0aef441d9ed2d39bc5f48f6d35ec8b30a0eab3fe2cc293921df7cf46fb497a70227cd40b040f6bae70ff6460b16978b41a08bd81f6c99b22c584f8f95c7168104a1dcb710301852263bc267a66800de51f5a559d936725bedd97e19bae52797ad2a99909722fe12a5f4397eb15caba54c3f3b33748d0b327110987b080ce99b351b32b3f750f324dd226597bde85f750a699302e54275f0c2
+4081f580a00000f0fc4b3cdd1baf814337fea9f1752c6296399f553f910f99e9cc3791b9d82111f5ee5386b3031ad22e4d56f6a42920597d15a9bdb6649892e7a66fceb63f1b8c1ef800e5fd45b7008d7bfa9755281c872fac130d8b2f11ffd7d54a714f1d9f46209bd24d9115df780d106cd60b392ce6d92d303921987519a475c8cbc48f5bbfc70ecc209d99a4a7cc16608fe3afe5d49257b1ac53bb6912a026324eb500d87f7fe93cc1f7992da7202f2e170ab6ff5580562dd3e1f13a863462abb740192df140262e0e349ae598567f92d11849a5529630bdc805a2c53e33201b63fdebaebe7b41fcb3a50e9b176f61e3a5f8b5860373
+4081f580a00000f01a0267b1400a6d1cde667ded69b1f806b767b626c1eb8ce03ea181cfbcbda1d8723d1db4bf13786b3d5801c1e20eef26594254979ca15b251fd131dde190f36f2a7e217201837a4e75870ff15d92682d787a05e8b1f89afec0a19601d219d94574d6fae3cafd797d7737d674443921890f90ccb41c0b3e1d2725883e450d2f995c81f9770e6cb847c4ad55c7c56f48847d7cb5eb08aac6d0da671280fe9f2769b55d5b2952d3e960a7f27e601da38d5bafea2648067e8045646160613b1e5d1c3d9389ebdd215db7806388f3e2dc84951a2a9212d7d040290e1fb86d1970e1a672d9040b53b43cfbc78f01ad0d931636
+4081f580a00000f09665d7a22b779f7097f6a5a7dd379806c1264d371e03cc4b7989dcb46448aa6bbfffd169458441406afa1e239237463fb00ac7b2826510f3df1a8e71330cb26c1966c12e2bdb8ae164f02d939178ab948d838b2018a84db68fd0338df7dc2d57f57469ea9fb644fa261e8dcbd69ef855cf681fcf41ce532725020a404b6ac17f64dd44be5f125f01b1c618390c953949f29d8da9c4795900e99d13b63975ac68c1071461b0cb81a6c5cf9530180f9ed921b1f7adc1faf01cca4043f50f33a420df23a9fb896c4d125685c376d45dd4b2257191e4e110f49deab74c80936bc1ee483d4958556303ead1096f21d1967e67
+4081f580a00000f002a80dfa5a6549e196fc777da1a0709a4a0b2a1a87eeef657e8d37182ea647ed12367370c51863ba7418262ae67039078ade7140f5f1761fb41812602305a9e5982fde05ecaaa6e9d5c475b13795774e912d5f62953c1bf76e59d8bce97d404a105f9f639458d163953e147f765599b77a1dc3367d91dfd7049b5160783b2f1212bc3c7eb1c9a32aafdaeddaf46460cccad536738b704d75ccfa9801b1ca79b9b277864b48c0d03f72dcc1350dec782940eef29020659f3d52ff5fea9621b999c4eca716be3e05ed3e31db8aae2659c22627b7199ce96316738652c2a495cb18f98286fb1da28be36d080e1d0df96bf6
+4081f580a00000f030bf6064ec118852f383a3176a93936bcbfcb118875c5df1c57bfe72e4ccb90028337b14dcacf58f55de96e277948ef6696dae6269c2b38f62a9e80b74a8bc65e21b5c92565f4d74bac19f987c31c6b3f22a2d8d09384635bc651426daab7277868ef1f90c966f10c23e0f65bde5f2cd50f38cdbae0cdb5a46c0bad021f34a47a4438a1f90499f286b19989ba475887b0eac74b453f9178e3e1505a57b7e05ffc3d0ac7e934f68674d8594f4e5da30d81df3c2dbfe847c3283457e2ed9558ccafb4f8aa0829d411417f847afadfc0baa3378722b30aa4d76985a46fc64a7c221df5864cda2b44807fb91a9035885016d
+4081f580a00000f04cf3eff9e81aa0a2e1566ac1165fdedee889fa860e17bb908f44f9d89b452910970524a51e3e8344492ea41d9d00842283b405165f1f2b10289c6c9e9871b54e6f50c647d07659319c5123cea75940b3265420cb97cc7ac709fbf0e78b0753ca40e7bc46331a240f3b78f5ae3df851c8f1c37351cdf810f5ce1a664794c756a809a8a34810f0a50c47b3a987a6df920f0aeca86bd8813fad81758c6ea81ef37e7044ba69cdac6da88807d417c1f23c652f669280e7d4bbadbab5710c8c8cc87e9f0eebc4c935ef2baf41ca288b56cc9858d304c2adbe076821e4988197e726099240e6a8a69b2c43bc0c1cb2cfc48168
+4081f580a00000f061f02b46a04129f38e42bd2c85dfd3ae3cc631ff064ba166e8932935973b3329681aa98ca41dfb4b2673b9fa93c8c359abd40d09b738a04eb85bbda819501ac80b6863acc8bb0a2a5c9b2142d984cf4be64bc9276b9b44d116a3e5a6a0e1919dbe9567ffc4e0cf5e669356db99e9a129c647b8b319c3d5da98633331e6b38ed9d61503e191859da7b7c33bd5a94e7f6cf0efb9d31d8afd943a7d38040602a3510077eecfeb982a0a6266fca0d1d2f202c60e8543952b3d89b4f867a3922632873440464eb1bbd455eae4dc66cb892fe18b32f43ceb05024df026c608826e32cb6e5314f07ca4b8c9d5824ba32b9cbd35
+4081f580a00000f0e9187fae7462e636bcb1d5f0ccc4924a3b5e6bb132e8aba139d2a3978af9ecd0d0f107e069ebaf586722aa0389b4ba2944e74bfd15b5e4258ca6d89a4bb0e29f85ddc8c315da0e837ae49762a3edf0be7defca5743333f5be25e5b2c560527d54cd36ea128f845457ffbfe4dbee4e78f87b1a374262416887f9e69b0fe74fcb1d751371f6cf07ae84f0d5ea730f76bee14e42ca6b93afc2f7b57426de3408f5695a012922665ff927c2632405f1b8cebc5ffb95a20e69f0c8b2d57b9784c2e2ccf2f1220a3fae65ee04071e400ccc8e09e842bcea44926bb209e1acdbdce622e9b648513790184aa7df34f64fe4bc50e
+4081f580a00000f09408080f4cb03429b8c9a45d1005ff84ad4ce0ba4b4961c963259b15563eb5703e0bb12c94c2941334efbac572a08549f4bb8faa1a7b8d1311e41144b8c9febb1e6cb94491be999e997fce2762df37b8a037ea46b93f178eac0dde54e2f4233f66ee2c1c2c608e864022d17302bfa9aabde3f4838b1d16cdbdbc46e2dfa5515bc0c4de5491e7f6fd5a9c673124fdb5fe808c9f38ab6b91a9e31390055343ab3761fdd7eb9a64cb05858c412de0bcf8ddc565f6388b328cf18c921f0ca08b4ad59a7316c230cc4266bb6addcacb7245931fe0e6dac5deda3d3f3e7f8e03f5129ae1bcdea916306d711b6d5fb8b97ca6fd
+4081f580a00000f044fa764d45f908d7d847cd97fca67dba00cfffc2f5652bf9daf4f67d4d4c5d6a7c5ff6231c07ab4ab9981cef0ca3e1558e7c3a35f92ecd9572683173ca43155021dff562834ab3afee3452cd822efb2b1540f21198cc08306209a9eca357665b62b4a95d168608c15578b340d804d8c45db480125bcbbb56a6893fda2fe359d8ab930b65fa77a512448b700ec7a815d692e4aa791169d240c62b131122a400f9543601d898322ef46976fe42fca437761f81ffb06442e1f2364831b46f253655555e3bc370392c7c6508259152dde773c615040ae14dab072add125f7c5b49cd5c092bb948fe9756722cf2b908c052c8
+4081f580a00000f0f20d7455a347eb9b237a8fa27c36711fe291d39141859bb863fdd9b1fe457d0a28337b9da6d6b9e4d97bcbd76b23e9b8bfb5c111522502d3d8361973c6d087f97c08762831228e7035a4c0e808363ec6c00d0864f5098498e928ba6637f4623d317cedeca05e894364b7ab61685b2aa4c91ff18944e38f30fd8759c20316546fd4d33b5a2095c9285da8250f2030455b8b22859e02c7e3cb10e97b36f83b299a3047c94789fb67552e6fff32d29d80dded1ae4f408a67b6796dda20a28f9acf7a6c8e30514747fd92f9c5bb96c19418149acf720f2f98bed5d3dfee81cc078f3fc3b8c74448dddb4f6d52aed6c385e85
+4081f580a00000f0a40849bfcc7be58333b3c05d4225d1d3117a4e9ecf9f5003c89818da922a83346f1f2cd56c521c27973c40d6609dc5a8fb6c6bab0235359db3db1f7da220a3cfdc7d879c069cb20969614c881922909d905c66e453b00c7e2a06c8d9bef7de216d193ef90ca20443bf0887b035c63ab454c8f64ca62b76f9c7236929d878c72bf135568217593a84931484e8935beb6119d15e0c4c50d1e4d6b3b9e9d54e029dc807e22a336cdcd5c41044b0677c35c8ea35f55ed32c055b6a4455c4b672275bb5ef093d5e29d20d62d0a5251bd780afa47f61eb7ecdc10e01b3d628882663c3d4378836b3dd3a6fe9cfa0a2c8e6378d
+4081f580a00000f05e1be9efaa36d829a930d9cb796c833b80649fbc5942af096423b3ed88c6874bcf7fae1ea514adfeb5736ce75e0d6ae75ec278295e9d004fc9b840b860c1d42b0a70d5c301048156eb7b009821fb146f3f347d7ed5bd63f5b1da0cf9cefd966dcbfcc522a335c7a367074ec4834d539805e7501f4778482d8c7f9aa200f4dcc5509b16ef8fcc78bcae853a90c4fd0d558373f51f262693d4b116ae86a3f8da40adfef55e319b150bce72113eefa09ee2de15b9e7fa92c1078d88dc15a463adfa03cb6b38728b19135d1fecbc326b60ef3ca71be9d6a4c7352691e48d54419128267224d5f1ea126a6614dcf1e2287290
+4081f580a00000f0a80e59158dff62180c611bf04e0b8cd1757c7b8c528f9ae530f0738aa8f2aac61921cb71bbd0f30fc8731832df4bc69bbaa6f88802603607e1ed802c26e83565691f5fa54956a14188816320606b08e656ba113f10fdef08c26266adc7c26dd9987d33c7cf4840e48bcf9ebdfef96b12184a2b0ae57046e8c85051b22602c3aabcd050d3dd282e01c8742fa797b1b82b3dc3c0d9dff55c31982cd552e21c6ad035492eb10f4e683f193d6a750e3ed22ee789454925c6ed40272ef1064095c5412dbf943845c6036f9ae3e6cab81b95e24310f8cc49cb1deb192303f12499e6d27e5d1fc0125a22c9e8cca48869814a65
+4081f580a00000f01160682a1ced9063f4973a3c6060ee1974ecaeeb9afab4c45dc9b5e340c105d67151dfc16e488e0c50320783da948f8f069aa4bb40983c0e42cdf23002008bda316c02f10e0e0d914ea012dfce58f23b81e72958f718148a845e5615653d23f663ba32d365c0a5517018e846b3e0c2735d75123f680aa585ffad3d27f9646831bc701f2e105133d65a9f3247b45a3a2e213538b7ae9541521dbf2d2555b19f0507b1d8a8ef55d4ec91fae8711c1778f6f68acb4106bff641c761dc8bf4203808dc056860511055cf97a901bd15c73bd65e8b7772ca8d54af19a6831866bfc62e669b86bc7d722e2e9b7d0db26296f406
+4081f580a00000f054a1168cfec1489bd5c4cf3eab5e73c26a9d091e10c843402cd19e755545506b27d35acc894768704dcf5c1e1304d33bbbcfce077f40f51bac110af43bc03cc06d4a46987918ff1ceadf5cedf2abb06c045c4204f939d5d24c3467c2832c5b2582f8d054d5b316ffdf59cd64ca093caed361ad4ce2cbe1727ee8d6b7a7e542a925bd7fb48472314e46752a02f625140d72abc94c36de368492c242b6c94161b1ee587b0ed7dbdf7891967f8df7157c9863b782054d6cbe77d3de5b35a3dcd2d84e151e671bec531d915aba0916f52a5676e08c709b0c290d35ee98ebb5eec51c443383772d2120a5770949f8309af453
+4081f580a00000f0b1481a39cc69aa3fa218994b55d78403285643941463719e45dfbc03bd21ea593fe6f049ab791e1dae83689572654693672bf6ba590e501cb1202f1ce655be99a35eeb7ed32d0610255d2f4e608b279eae0f111d123c956b0da044a54793338c145b6fe2472de292041a8ad5220250000a9841cc499090602d6da6a2b4dc341d23881fd01997b3653e0b7e1b10b399be6a718a82ee492af384dd01f3d84c83f0877aea4de81653428c1debe1cb84d4e9ba9b26d6637565cfc66f78ae5ffef60d426a11fac9f1f3f9c9a215a1c1bc2dce6af5bc71bf547c9461291d817c25dc90c2ce88fe611b5eb130e867ea7e806ea0
+4081f580a00000f0c21bdfcd1bebf7fe211742746df58843a9e7c43b1e6a4bae5ee0eb783e1efc17433a7d6331ca8e7097a33e845385aca5758347a08abf28215ac3120ec113a5e084d4f746da084295119ae5c48a90cbc47cfb3ca47eea38035738fb918ecff6b6da074523fd941a7fd7d7333dc69f1d10e3f2993b3459bef0a4032ae2bd724d738588703af856516b4f5ab34adec35a048e1e79e7eb551fe653b697ca5d8196d44979f29e3e14e9ec213949e441f742bad773e63145f8edb37dafeeb5e54ad853fa73bb3d892e8a62d33186f75d0e0bc2cf4d031e90d29d0021559061b3ef2fff07a6ee80d60a70c9a8cc530687a6f1d7
+4081f580a00000f0295c39dde9269b84872b309fc8f48f996da033664560f688a4d3c52bd47eb90e1084e21fa4c292d7781d805b3252cd1e6295bcbc1fcde8e176dc97591efdc0c5d28558a430b6be868c5cf258d5ee7268a3b9a1695a7e98ccd932a1b5c4c19e24e822b9b53b0e11b425a514be7f6d7c798976be588d9192a394a211dee3936e458ef67b5c89409a89a2600bb493453cf6d91fc0785d3101c0091f2d702a1983ceef4543fde45386e6968559cee3c4966943a3014f17023bbbcde0e0e5345a6f8864bab4f3cf2f78a0c56bccb958873ca15a62284cada1c31f66368b244320a7ea6ac277e9251acc7ad64d7130fa716a8f
+4081f580a00000f07e3df0ce287c1d252444e0e57c15f84f948935d64d7691133bc8ac94599704a349f2e67a880440b4e1cc55fc2095a2d6515494b4a64e6c854b4838fff2aa9289ebcf751c3363b913fd0eea870086e1e41f7ba98e457273c3a920973d70c3a65e3063a859081f405ddec3164eee12ec35cc4a86a05bdecb6542dd2bc039784ac951c150552d7ee8df68393822f315988291d46ee38a3feca40ad0390bbfd102dd5e44979f1d0cbd2d9b22036717c7ab0f7df03cda8a9a7b05970c143f51936fbca516a6aa4669bfe7b584b8d9bac0a79f10ad1d1118b238dc6fb87bfde487016d27ed98a3648a2f2bf05c6259bc97f443
+4081f580a00000f009302800bd1210a23a96a09d56051d51cdfb905a4874a3e4c83865f1e260924e97408726a409789784d6c5cda3a2dd8f5d52c9b23bb252a48fa0f4c0c1a0832ef4e4dd597c0f2c4cb67afbac51796b58be7303f7590d240af7580b74b170082c3e0c1b213b87e392b65100aef26165e2de114f9a881dd2bc1592fd5d46de12bac748ce50319e983a1d034b5f1459a3d992eac64d4774977d847c1d215f7c12574acb6c43b43d26d6fa6e4ab46e384981b72fa0fa280b1158f16e5af0f54430863b1c1e9b29d6f0825a9c220f315365540a7c9d31dd990cced1ef4662fbb9f0336a6d171cd22a5fc36c54ed645d32bfd8
+4081f580a00000f0b5c35ccbeaa9d60c6a0fee2877821e80c71b9c978dfe28b467bf9178585fedf46ce733b948d8ac55c38c0443aa3050293e54998bc83d9d13cd315354f11bd2f06889663760450a5bafac7526c5341c891be00c649148e41fde134910530c6f039709da6a746b42770cd56029ddb79b60f5ff31aed057ab2afe6b1405da41cd7a621ccf4f38a4bdf921b25e9a94d3897d9fc54f5f26c416e81cfc5cebd5d7e1f5dd1b4429a3771f3c89c957d52509b3a75466f821356d216314c476a72c69170aee449f664fb283c799e230d1133a3c3e55bdf0a65f1b0fd97baab35f55181dbd4bb182201a248614551317689b4ceab9
+4081f580a00000f0b4e955dc411726b831567f73a15542c756d9080632e84c685384d5e2a0d60d59412d0c17886a18640a23489a9845799a1c8bc4abd0fd287cfee772df36bfa314c7a218df7ea0948e8e868543442bf989781f8bff4f54551a5719dbbec151e6ad884507c68d5d8e2cfe55b77df47d4a9d976c0bf87ff394fca2ca4bf8f033e6c7f26677ae1028c2d9a2cae2f663a682e1d1057c3e427fbed0010864e2db49cae8db2d127706db43789ae3b001d07d08556822b84d2b577702ba9f83554e13a512c0a180dd88ba055eef5ae1c561bead11b443537ac7d81fe49a5f80ed801cba5e87c908763b54129e9e20593a880137ec
+4081f580a00000f070e5e29f967331cdf6868db2d2c645c0be66fe5997342e8d8f8bfe2e231b13c14baa7642b9c79de4fdc4ea5d9cc5c7ba600c7445dae922d0bfe21f8ec3959cd55c2248bbffe667ffa06127621e107584cf9de17a8fca1a6d1741a47256f34971193001e8e0f0c0fdd357380e208ce74b942ad3f486b63ba626f94317e424257df79f56c90756ca9e25b0a6f1f1854e8ca02c52d2181077ea0b3d87975d12c335d9bc52df85fabce7c238a3fdfaf8cbf2766e45e0bcc3938d403b07bbf5cc6d68ac267efdcfd3788bfad1f34a1557cab0d8a5b3cb4d24150fc08cd181024ee2cc9be96614bc77e6a1c3ee2d2af25d42be
+4081f580a00000f0a97a7443899bd5d744977c1495d6dc981f61efdb91691faa896ae2582217ae13e5ed6c79bd525b0036892e052420851feb94071abeda289da759736bd61e83b2fb5209f5ccb0afc34313a4ef9733ba771210d03b28d4f43538ef1c32f88d8b38f1dd1fa65a3550efdbe52a0928193fea41fdd3fa364e249405c7e9a46e83c6982cf203235d5a14085795fb6bd9f11f0b25ac1b8fb4c31e8fc732037e4c64f72d3c798439d09ac4a07c2f6743fa4fa6d012bc7b3a50941f771828b72bace48e7222f291fbba2e4cd4694e4338b26a76d2ed92e69c23ff9fb9026ced93135f2564056e918e2dc0f57bd492df6c7142eb17
+4081f580a00000f073d550a842434590c5d6e1099844cd39ba744c3fba08caa0b8426306f4e6dd704cd845d5eab839980ed61a085cf2d5ac096d1723c03f31336896fb6181914a76e5a9e7d4f9eee9a035086cdbf5aa58ed3396946d56c2e6abda2bb822d23189a0c687e25527fc03c4202b77b18cf07c22f4d200f7f3d305c399673a9aa894d3de1720ec6ca701e34936bd62cd0fea981480820bae2ea78598516d559b82c12f25c43fc4a9604b072210d583f3ea7610ca7783b0a7366dc833603fad204eaa5e3a095dfa5e46c4f6539d63efe5366eb0642158144c5c309acfc18b534e008d226f8658013ba9c287ab2debfced13b7c640
+4081f580a00000f0e608998b7155b8f4ac99f03ae249242a1fa36d0dea4c71bf4aeb97a0c6386be1f95a11beb0337472aeaedd586cb20a8d9cf8a901656a1ae9e626b41eec112fa515dfb775ee0c5186bfe5e9cee9a64c35d678ecd16a88bf86e57218d79f6aa768df702da011f69ba4ea24984d9ab4b87c687b6c04610c36ebe236faf42084948fee8007476704b0f956ca2bd2788a969d1df79bc8c80b9658dab3a60e5271c1b180d7820e59ed32fd88263ce0897bcbc2ef99dd6805d79f850072caa695133a1e42eb1e1db7b0ec0442acc5ef2fd6d7573e25646d1a7f110efe449f28c12e7f22bb7916f1717a283c2fbb808c1511402a
+4081f580a00000f00ad6bfee7dfd595eeec642d52f831334d0c14ad65cf3f66ad2f3d7fd27dd462715d5cc49ceb581d9ccf514cd01c498ccce1f7e21ca5bc4f732b5acc9f9226293c2572889af7748bb469109df38db589d1cf955f48041ace3107e70e5e52e8209726eb24d5a09d48b9b19e9b05bd6d9ef731f15a9cd5e2915b3dea7f5dbb5e7822aae558faaffe72f398e934eb0c20e6680684c26f69d83300810e3554d2a7f644e8b9311b4278d6cbafc3e7ef576fdefc9c96e6fe88457f8d2bdc05ab58572013d27951dea5cd823cec60333184df28eb1ea1341de3953f153e344ac627eb16c8325b87d91549f6cf82a678ee491dcbd
+4081f580a00000f085f7b8cb96056eae726ba08bf8f834a13b38e92fff99633a78e756d0a1c0ffdc00079ee1f62a91f86d031013e1f34afd6c4e4dacc6fa799ca17fa5ebbe3edf132cec02c3d4e9ffef3ae856bfd271902c89cc0e938f8385e6d103524b5aa494c3b006b865fe08e5c0e27456513460d17498905b026b5381dd2586cd9387e35c23b93c46c7e08db52bb74cdef148f80a2d496caca620304920b60c546464bc7b8dd22be67b3fb9d132b9453e273d4243c287739a946c23508b79a66339a728a95fdbe9342e8aedbc49da616749ef2913eb326361e5a2a08607cc8c656de5735ce66695c32917af5970a5368de08af7e962
+4081f580a00000f0abe50da64bc0a9bb7ac15335ede350e8417249cb2cc9d19340e1e40f0967859c84d7c615509b0e8c8877ea51eb24003cd2759632c2f1a643204990fac48fb4c2631da768428fe17cd055d50d75e0ad44c6d96b624116b98988e50b6f406c67c521ae9b9ce0192cfaa52a688a1f99e5e528909e34af05a0874263d80edeecfb619259b210da7aaf9d2ebdb3286fe822ef82274bf0de15c7f9716a2be20f4fed9c3423c8790f26f9f5266444b61431c3d9794316a18b0e02f47b53e2391869d73df0884b3e4e568b1d5a5780dfecde67bdc6489fc16ee485c25a010019e669d13c028a8da0d9d4a21fb5f8f1b2cbbad9c7
+4081f580a00000f0e5610db74e2dbd22331bcd1ae6eeafa101f0bb6d36a99f1c95681b6e206d15db3b8a8255133aa125562fcc59c0753926b438f762eeb126634066076ea031dda481258914dc5640c10360beb79a25cf02196dba9688fab5c3d761319cde0339754a8c257f56f7711b59cdc48aa702b8fa26d18a73d258e7a014ca81705206f994a5b268d778c3d46115dbbc7f96b7d2923001b26cb145c27e0ceba9fb897503e8fe59f4421f915e9f1878cc3a88fcf25237d1cb5b884fb08a79fa7b42ad5502232825749b5b35f61811f867d4313ccb6880ad6a165102d1f8075badf3b29c9c8e7aca7ee3e213467ce47cf6f140e0fb27
+4081f580a00000f01d7f4a8a65c74168d98d3dcfd543a8d233f9733a002b847449e4f25f2970de15c4530b4854b5eb4607c30684b6e1b5bf5342cede3d8cd54bed15877d4f928bd678725053f8852a45b493fa6dc9819660bb5d11d6720d37e453e05f7f5efbbbcc49c8e9b59f3e6a124f577e99b4664535702c6f072f8747a91af2aba25a9d772c52de56dcf2889f33f06ebb8397530d476e047825633ce1a49e0ae5e595c8ef44112e3006581e49fd4f0b32b40e0b0b6b24bcc13c1b543e45a03b972503e94250d19ce882011e5b60c16255ff6d9ed26225138bc47408f1c116c8396d5fea851db5048e98aeb9666792521e02fccf6791
+4081f580a00000f0c4167c344ab97b24ada86810433c7847ef29389f3fbb14ac0b1e1a53c192247fd17c118a2230023de3ace682612e1ccba05e6e1311968a823867a619d826ed78b959a10502c33856a350d967c8b90f684ed23a6d7baea094bfb579d70d94e6733b01aee903d76b2d29707b8c34307aa224ef0e0b4a49e2aa859fe473a9b04b9e455716e53a729a4dea7f770f95185c72cf6a6c5731c7a6cfadcb9f682c1bd9f6bc5fb6f4f0b1d5794ca1ef0e7f5297d8a3055e6211e0af03674770b94300993500b022983396861f334cb24413ef83ad1f73c168cf79d86dc6dc3fb94bdfaca8f7939254fb270c7f3a913e823dc8ea43
+4081f580a00000f0253c55f9de3d76e44b9ee949b81a7e6a82ca3e326cb7ef4cecc61408904cc6773035d20ff7280d380561098a309a97e84b79ae85bd8a9aafb27845818337fc52a1b8a089087b9c1130b3393bf89f8e14700373f7928710ba8d2436fd90febe33fdd60ef0ef2a6023a928faa8b10fe43574a34619b001b3ad10884c7be9496f79e8d7735cdb5ce803db175c575e6f8f1ec8815d14a36c9587668ed61a1471fb02ea872a3a3656404ae08eb9e5f2d0cc0ca926819f331d96fe2d6a4690bb35323b2d0f5afa3b14811daa63b14f92791451ec3def697e66b4ed23c06a0676095d350bef8d1b4680d7b1597c719d4d7ffb2c
+4081f580a00000f0e706b9b66fbce20347d8564c3f44e26c90eae0531c9797bc8a921afe5baed5958eaeb5d3335b178a7cf68a90187bd062e8d11c36ccece658671412ed790f110798b2efa74d4cf5bb6f1041a78c1d14acec7b7f542d607983715fe98559f08298ec2b10459841cf86986abaa590aafc0b940f49f8327c7b4882bb1c1a960355e90d1092b2564a6e093468ad4a05745e59b806148501ac2e22584506fa9db341a1f8f417709a68422321d2019b19e88df0d6c99eb34726346fb17492a57dea8273105d7460644cea210c4e1add9846c005e45a20a143ea50d4194f1121892c55fb6f5ebf5326987215300224077ccc6045
+4081f580a00000f0b0c7a7436cf5e55d72fbed23494a2ba1371bd8b0f7de10ae409c6b22aeb9ecbe0d7471a2513d6c089a52c87a843603945a9f4892c3bbeef16f03706a56113a5aa6b2446cfdb1e0edf30ef7f659b36c52dcdc0a1b7f992198cc2017af8793d3a87be60e08636661b15775050b7d3b0be893e7605d93184149db11fadfa42ea80fa101a11c97b3b71f15e0b956d613e4026886506db241e83049dc03d0b8b6c9d93644c20468a518fa0ad6aeecfef2d5388f3787657cd85f71796b25f4904d8adb7b1408dfb0a47889b099ad873a92571c7976c046de9e09738a428fc081778fe6a3ced38d31322c243f32f68c5071a984
+4081f580a00000f04e2a5b8943cc0612fba66c3d2268bd921fa94241b93f630ff39d266fe59bb19df5267c38a858fa71b7af5b3b20d0ee6477e5847562724792713375dd2fcecfc9fad7e2f3c7cf8b93f41deb876c1d9e8417d8d58641a9de53084f4808e4396502a54cc7229e31a8f16a1f87924d73fedb640c2a636612fd9655c4508cd1100d9c61311c27d7c25c1cc23e54c33e5e3cf0e46c89eccfe82cf201faa6ecc3d2bdd6faa3d99b349fb4ddda0a803be1207d883e2f77070cdb82f6a4bcaa44d052eaf2354dd419ae04ffbe768d7bbc74a63f6d6d95c2b1539d472ea587d9076deaeb976b0c7df80c5dc50f63934511566de690
+4081f580a00000f0a71cbf0c99fec492b955a4fad83ec1e1a4e70f2d8958865a03e6bb04937b911bd5e39173d1a7af286b06de572524109f88ee6ba3cdbfad5b71a4b149b7932c2b8a8a28ed6fad0ec876c4fc3fee0ec5ffb3f9bff4fb73e89cb28ed29b70e33f45d049ce444d8d11f38a3d4033528bee6fec1302725d0735eaec918105e81b864fe44bcac0a38a60a335b8b9ec4c56f00140c5e1a6e539efc51ac52ba643151efb9556e8c2ac2489a602463cffdb607ea3f5d2a64575b8d870389a4c15640ff26cfdff430dfea83dbc1962d78a7eb5e3dacc54c9d82bf928847b07659169bf4e04e458cb25f46456da173c59870bfab76c
+4081f580a00000f0d56fed548213e10d714e662645e0c179bf3969c09f7470df251b22db82672045b43c6e55faab7b2e4d4415efc4846d9f11e1e3ee4a80ae062a44ec985e4fc84b3d1afc280c45af22f41517fd827be723b239ef900ef2f4bed37bfa9521e9310201914ffc52674bcc93fae972611f0c72c6a7e97ee83fc27315db25a96a32b565e15c3a073769b4796033686981009d95fd32ec0712a1aea81ba23e835a74255e6e8d7e0a92a19e19789a24cedbef74bc8fd7b5f027fe23fa72f2af048d21f8b5adabc81d50ec412c455c4b3313634b2155b9b4126474e65f12ed3392d9b39359e8f6e2497610165fb5a973cefe842290
+4081f580a00000f0ce0331207843002dd9c8fb939251637587bc3e4bcabe8dffe19fb32ea6478a11dcc5831970ec39ba5cfbfd6adb03d5390bf668478b7da0bf91b2b78c220b8c0eb405f5521b72ae306d8fc50e5de7711782253d274a54f292f299ae72877f34964a845016593e2756f7687ee91af8d34f4d374fd69782b1de87455e57fe0bcc477e9351f43dee47039c3e883f3d65fc8cf02ac8233fc02cbf3f668eb2ebc39d0516a80957a084f07f75d068a542e6c41434eac13f7ec4c79be724d465cf891252b1d0b3fb3c58ae825fa758ea94c02a3984f6a2eba6c464f3a18ffe06fa15fac46285ecf15a9be1fdfaebaff203249370
+4081f580a00000f0618c6bbc9068fc2595bc1a4f131073432a9eb1fcb72aa4e304fdd086f10911bc6f8c497636030af67465ffbf6343a22fa2ad89a99430e57d0eedcd78340a0041f349a81e497cb38939602f6441e849c15fa896040fc87913607fc4b4d64a3ce1e5267e8482f2229a4fb04a10fbc1bc2c1ac907cb66f025a4bc67470ce5bd38c7e6397c762447375094bcb511343c7436c1902433c072cc02d569c159636da4f2f3674ac36bf67174df719282202a0a07beb778a9f676d8d92cc20a8499dfbeb82ab42e74d8c449b812a7de0ece8bdd8d889d58cfe732243415683eec8939ab7e741823e79052035054093533ddc8573d
+4081f580a00000f00234efbea71411d67bfc82072b291eb44d4b3ee8605bf9f17da8bc882c3f3431aaaf80ba929c5b765ce90ec95662b1024c91c6f6559423ca3786da36ef6426129fd3c58c74983b8aaa983007c15327387591f47387fbb97c470281962c8556a7550bd58a29c037662ef494f8d88c9823c856ce2c88d9577d058ce58a2ed04994ced540f2c7f9ed2965b5edfedcdff7071bf4bcf66b12a2858c797dc3c2d672e81c65e599b5249bb317195c9f3e32898fac76a9c6666050479bef2eba12df8f1e558fafbf607ea6cd65e333a1b305adffff7a1eb031a64463a4b81f63bcc804faa5747e7f0f3c5823a7c159581d909148
+4081f580a00000f0939f9632400db0ce3ddd0ab5639b8e7c5a61120c60b467fcc8df73a4a15a1a96190d9bb3c03f4fc9b78c40b2dbd212aebe0d9e118fff34ab8ba14534c49f89c46ef7d716c0d5d644afbf7f4a63d9202e63713e843a27c3b9e2a16bbbb9f4510ef55a308d202d88076093df225ec146e4fefb761f85a4c009cdca07e1323f3427bbc6ffebcd95e7fba88fb40e0a9bdb495af20eb1b218c67f32a3c888cc59c6f90af31433edcc996d289d7eb10a7b422b3dd2e8b9c284b052fe0d5eaaff4926a4fbc76cade3738636635e395a7fe930689879f53c368e0391aba13875ea4b8d811b0beee8520b9f4e166f6c9cc3f2d670
+4081f580a00000f0824c02289fed9f8aeeaf4451f68be0a1f817d4ead207dfca2836ace7463a4417c1be60425e9fdc62cd3db724294adc57b908a7bc2c148eabeafa0ae721cbe27478f14cec5ce9c103c0066bd7b8d085679a017472fc6440bc19beefbe7f0c0cf8df0d38dfbae798bf5ff73d54d27ceeb00687eeb3a8e251a08c75b617d6a82211c68e836c00a8ad6374da091009a0bf37c6650e7ba1bdfa313f99db675c7cb5feb0c7108cac58680736a59c52cdac4683f885ae8214638479f7b9d682aec7a2975720ad86fb3b318d3bdbfeb8f8f2eee8d444519f02ba7ae47bce605726ef3a3de6870206f76f5394e1c0a2d1c920ffd6
+4081f580a00000f01615772f205b4f70d569eb90991b2ac8ffce81b88f4de1628bdcf254c67102f2e47b74b88efb0193464cc4c776e6e1c135cd2292a13bdf910533d0ca77a026482e2c01064bb58ae3bca48a5fb0eb577cec95e45c689302c24f6895cdc27214857109eae5833cae5c1a3196215e83459e029c4671604ecb5d3b1041523ab94bea5c3aa6c2e4b1499c99807bdd8b433278e19cd1b684f889b8d63c17b66dcf7180d07ce9d9e572a8a4da948a8f9c92a18140d37c8c746eee43113b4a203280ecb09bbb20749d1bd00f273c40d9730bc9adaa449f6ffc1953434b5a4fa64f5ac1c48ac03abaee4e345ceb22b8821dccd86b
+4081f580a00000f07ba081070201ab4612b4e7aadfdd00308fc271b194e0365977a9d1bf7ec7a6760959baada290ba7fcb842be57ed0d9a8753202544595e109fe2054ef72cc1de6be399a593a1cb3ab9a101f76b076c09131d0f29058259dceb362c9bfeda3ab3ab9f1662c138fa2a06be755878f7c073ed78ab313df461ac4aeebcd26b0cc8ab1b9f5bb78c75726401448c126f3bbabd61e24c61eb901c575c52ae913ad0f003052372cc52b1cbdc03a766cd2daa1aae0ab95d277dc5c764e95bcbc8ba21275d27e7d834566a6542e3d488c86dea6c878e8428ad328029115c00a69f39696638a58f06fe1d73d225e9069a295e7900713
+4081f580a00000f0cf4be75d6ac0cab7704d9285f2fa2c1820bd8394d035a0144741d341df27fab6d00fc4d6e25e82687e109d1be16f574c241263f43801d638792cf64160f764585f16c542000cb74c1cf0b083518d4da7a0d7024680bd8c8ea63047d933fd35850f271d9e4d6b9390212b1e4c86d977e87cf5780faa6f875f0ac8d7db55802eede57b1d22c82a87fd885d434f408bd6be66b9555855f9d722b4a87f88450c7630b306facb3ecc69c04c83a6c7c8a066bd3e01b088e088c32365c10e6ac6b3a279d08f02edb249dd835e1ae9130c80728d2cb6cf87feee5cfdf653fc0cc6738d4c340ea6d1c20f5204149b40c88a77bcbd
+4081f580a00000f04c22e5330adaab46b93c2b27ac28d047c0b86ae149637b6209a8a6cddb5bb9739a9bb29314f5e17a75b49915e894f58051c326fa397be86aaa586cbdee815091b00723e4093b0a7b6d833ac217e7377d8be59d813c609dc255c8e1c825d3712d60739e87e5e7ca2233b72cc9cb1ad074d9636273fe2615f46dbf6161890d69306df8fdc98044d8cde85764290f91e159b3dd22b63f8b66b707822751923eb8e8afad3aa6b3401d42bae4b1ab392d4a76bfd4ca0d1f57cd30c3fc142ee0a3b5402371190f0be984f8c88c662242f7def57e2e6e238546250ef12921c8dc1bef2f39b3999f5cbe6813f04122b0a3651504
+4081f580a00000f00ef9a28d6d06f556bfadabb2eceef3596fcefde24cb54293fa567e73c3bebdb0f6f8b070621d74ebdba14c54143ee60d2e2b126ad4eea5046d11f96887840367e6debfc61a3a029df2b0c0fb34d2355e52ee35f6d48a09b996f6716ed06e00204eb794e42be5b3004e77407bbd50d61eeb4004735f1ce65f6c76e2741c521c6e8059d9e38544358526cc933a292fc4d77efdfd1d9af6c0364d89d03200237937f78567e817f9c6d23213897194cc106be46b22e0dba9055e04b574300edf6b05cecfeb9c5e06ff78b9d05a5fd1677f0a28f570250e56185078b55b9f225f9eaa32c6c640b621240d29d0e9d6b44ffc85
+4081f580a00000f036d10c2dcacc00f08fe13f0b20523e68c5bbfda4d2e649f4a63e3b47b020c91ef2e6238355eb6594af1ffc98a96f86995dd5ca082289e94b9fd97b3943d583e6eabe0883acf58c0395dadd03289eb042f86af6b328c80ee62f4b2dd922f0b258b7584be057356bdb6cd701e35adfe710f5768c691169d62fc26534ffb728ee9fd87818eaed6daefc18be5a7a260a97375bf9bcc6a3d44d79a3cd34c284d81418477c248777763923322d529dffbd9c2a29310223ef1e1fb113483f1bf5c314f360d24bc60f65a034429a4cad4fd96b449f39eb2c8d566e10369bb3f0c7272c027e16d4e180cc0ccd1a125989ab2ad526
+4081f580a00000f033efefd71cec177a88c36d31100b7c0e19e692b8584bc65d3c3af880752d56f3f2b6ce5cc64900da418af93bbd6184e1d93808a088c3cef71bb0a7df343d7ad12bfc5fdb8bc0611f38608317e0aa51910c1908298edff8d3e72b73fd0848ae9219bf11bc034ee040b7fb7a560c18b46fd073a419f87a446e060d1b1f245007819f7cfdc422b0923a61bb9c83be0e16d96eacc0676d7c335b76652696dbc5fba0fb18c8c22befe322e0e4fc7b28c41f118e742faadf824864f39e2e48d3f6770f500aade79f1c1810da4bb314c8720c5633745115293790bd9e4b119c348a5c78b978a0967e4ff6021048dd15cc3819fa
+4081f580a00000f0be90fa34b908d051e0ef25d427fea861d381ae5f025a37c6a4d52c4bcd99dec2192b77d55269bd21bc615fb445d3d27db52020bddd13aeeb367b35ff45624e36ab29262a52d361fa406f04a0b0a90b9578a609cdea0b11a4154f587eff8ef8d033a29c658c207aaf7913fefdc19529d8a33a349d85bb1502694a6329f4a318fb4f4ff1766ef739e1b2c67ab31598a2e9a33ca9272bdbcd78a4a869f0e9d4db8c40364cd909fac2d2ddda54a9936d76257f7b649540ad11282233d52af238c755a32707fd8aaa2c2b015154e6fe9de1470ea9941a7980b096145a448233be8a277ae5e8986924c9bc0c356d3dd73167ad
+4081f580a00000f06aa1da03a6a0b77c967ca167fad793d1ccd256db952a62ebf6d124821959d340cea6fcc25d40c326689ff3ff1182832d213e1e640c138817e9b7e17c3db2c2f1acdc9af8a702607f8d6590e9ba678c7b349fb2b5cd385809e3a1c8b2d7e01d8ec683de76249bafc301a7801f48c909098d73449f66439fbe0b0892cfa7d9c3e7e891b16f082eaa7213bb167132a2130d0051d89a2d306896f269b5847388a79badedc8a47433ab39a5f74e18df218b5f4866e3b94bc94d05dc4d6cf38bf05f50963b2507421be7fd4765060555baadbb3ad1cb9b37e87cc9baed1c0c373e20a44ae2a75bdb1493654ca0309295be65f2
+4081f580a00000f0f07ca045819e377584813715ff54e2eabfa8bca6eeb8f69556bd3e887d76895e6e2c9dff040a03015605c320c107b0e55a0006b3109b2e98cc9b91b03f0a547b6f5f27af3239aea517d0ee8b108538e6acc2c9bec37e22ba6e839816902dd23c87f3fd2d413ace9f48664176a263efa7aad1cf5f4e07573b9a6885b1a715965cb9fa68fbc3669c672dfac2206d571112026c8ce9aa40cd933ef33064287878f91786572af6d886ed7e5508811db01f88c068141d2b7af4ab0bac5cedc9019ced201f5bccdd9b9ad6b38c0756db4cdfcbf9bd95af7cf8286d2ea4e07fd01b6c243da23b0bae92d9db519108ac1fd16297
+4081f580a00000f0fdb6f2699be6a41624d0867e7141b34b960a3d8bb786c1b4795b5f96f2608e1afaca942abf9f0f89e66fc756325ccc0acdef1f87ae4e58bc453d25912a6b66ec00a672fce54304d33ebf8744f43ae604f27d8d8023fcd0b9ada1892958a65a91ab67d44b5e87f5bd80ae04730d0f7384ff4c69057b7df09476599d03c5e4ef3ee415200e652ae460e056bb15884cdd1eecb3d0e3d48667876ef7306c0c848b4b65d32d2f16910f50be6b84b10809d5cdae1659fa55b4bd9f08133c1af9d35ef15722016b09bf3235f135469abf54e5389aff4e64380d5ee47103ed038021e3e8909a8b6e00ee3f6020a84bd8b00962a6
+4081f580a00000f0c400962c344b1a0571bceb470be058068d2fe89c12a340c8a445b30361a56bc8004703baa9f5cf671173f6248efc2c4ffab0e9a13c01fb037b13afd0f9fdea9bb9d93a9c77374eaab27d89cdecfb130a9c35644a793390534cb03024c25b4908becbaf8b3269ec68ab54b4df4045e628bd515e2c86d6177cac57489620213d2c0a6057072cfe5f5a3b480b73bc2a67ae6a582ed49f861911862150070289b68f5dbfaf6a1609e569de8c77790f6230c7003c917f5b6df34d1f16ce5080fd0fb63ff1d411982f5ac9817d9a6da0efd453956ab1ae567114ef3731a157da0294b64f2674ea1313788ced596df8f9396c92
+4081f580a00000f04ca395bcdd71f3cdf2c3b8c92a72ef34fe518e697b811f50715ebb5d40abe5ca81c745d7a1b608ffdcb8a611711c2a409791a18ac0c2aaf22c80a7aa2b88169fa9d8437ae7833017e5b63ca4901e7158541ee15fa0465a17ca127b7306af269be60c8d7e90a7b91ddc970b30032268de86a7de9bc1a4867b2b8ac2cdbebba5eccd64a996c534e4a13973de7b8a6ce113ea34b6e96ec811f62bf7d4c09f3a964baa26ccd58d39bbfd893d231afc2cd63d10da12c1e1406874532ce6d51fd1442acdbadf6969cbcd0f303bcde773bbacd2db8b310bfb5933729240b0e76f427677aeeaafdbe51ba4c791c0cee7edabd691
+4081f580a00000f0f07ae39dee05e72f563971509b7c72ab83074e301fd6493a16989dd03a9c5e274f331665c7585f2f6648d1a93c173dde370d99541b450a9f8c428832408193bdd708a02822522c0a3058c46ecf897172ed80ddfdb8423b013998d96d33bb2adbb788be9c67c0bf549402e0a3331717e5381d4d6fa9457c8a168b94ee62dad4a39f3f69b0f7bcd815f5bf1a19ff28f8da8e475ec796b476d8183763d60e5464f1f1d2703abc02746bcf164404eea1e2bd094acd7f69ab58ced46f9f68ddbffb58da044929c6c8ca649794dd8ffc6fc4a89381935dd9f897549edeb7dd184bca8d8d302174f55fd7f960c4d9c2487e011f
+4081f580a00000f0db48578251879bcc50ce7973178bc4f69bf7894bc4d5d3d65174f1cb2536448679cfb452f9f27c9aa9318f78d56ade5b883b2acd1db3b16f390d8844fc03d2d66ff33083d57006b2f7862da7c8fda794c18b7a05a0fd021ffb9c7c7b630d2c943caa3a0b675b31ba18c5bacc074c0ff521379c5d4ee6fb821902a7a2960415864abcda7955b84566a8b3add82a59f1c145ba410576f81f9186e079bb72f45613ff04c3ee01a6896bf72ebdd7b49824445cc621ca3b1f7cc28fbfa686e1897fa441f0c5c1f3f3254b2aea8437c77916bd6397028c6ea806902d733360953cbd055cbb05fe179c3255cd515c595c99dc92
+4081f580a00000f069db1795c651c90e88fceabeabdfdd19b2dbcf252ab9c09169eda5bb4e4c2fe5f7ec21cae10a78e806fcb9c1bbf2ff024238db3a06b8e16f85446cf8235e451c5be26a312ab620ae4bc2953cafe0cf8bb0b2db1351d3fbe04d493012e0226011c49a4738607693ca294c8110e003c08cc7f6f3d622c4d1954094360bdd74c5ef8c372cb1b8f1c28266dc291102734e48699e362f749f40e94fbb0613bb178b9478a79464a48ec3ae4c6f498060ce8b920e5ca2d00f72a56cd383b8ead9f2cb4ec4f268b1e3c0be312f2ea2756f686a6f55073ee10a0b00aae0d82b08fc6975a9f39938a927a569f370a6453ccee4331a
+4081f580a00000f0cfd406fb1a70012427787b88ebaf8312e6e1097b1146f39b7c88b0fc349efbb02f0ccddda4c188e3d7cbe6c1568e74258f43619910c031f76aa3538badee3b564846bfbee0005f290f0da4ed1629178e2f3651c728f933d2f27a2e8e8cbe6c0b4a15ade58582d020ce5dfd7aeecb54904840c88cba9d0ffae04d7107b9b5ca3ed087245dfbe2249013acbb9985466803925586c5dad69413bd183ae2f8b1d290072d6aaf18f6a4fcb74b6eb68b261a81527a0275a92403f78a383e4ed186ea76ac74fa623c0eb57d362fd146a64f1a0cde2d0979259d602336dbda7daef90c47fce9eef9a24cf32497d9fe534f4ee985
+4081f580a00000f0b9d4c3ee5ff41a28725a646d93a8f99531c1b575c64190d63cbfa1f52a1c69cd5cba8d2b019ecf209cf3f0ade46006bf3ed66fe9074a355179401b7cf1b55fa8f7e7525e494a0d1e125fffe6a52eb8a5b87cbc67052a764d9d90c5cc6f0badb78753a382821ec03f0e2a791d846267b086ea71b952c8a6bca3d20dd18c9c69e3c2bb7b4b488a1a07d335f1a4776e31770767d93c80f1c099d922b4638109a1c2ba0810553781b90285c2011c3fb91465fdb03fcbea26dc9ab0ca8ab07e870a96d132ef7c081ca29914960fdd39eaacea4f8852956c5692690a3dc3a03a781947e550a0252664db0b1e86c2f54bd8f7b4
+4081f580a00000f035c6d93d7b1a370197d022a235dacc2a3f017ccc3e97abca3383d2a89b902f63b46e40a84b981c30a68a09351f033f0b3b97cf6cf88de38fef769597a2c12b240249e412348d6b06abe014bf93b85a177fc99b514ec55b8176eceb649b6a8ed681d771ffb5ca69bf065d400aa259bffa96d0a76574495ca845bcb8bbe055fc77aa436aad3779f9066e5966da1a6b80afb09186fa92dab6baafc13378912d3aa65fbc2e5e5334646977c40f574f7f0fe079076cb2e73aa8d16e43ca304f083db1a6fead0d2cfcf05f66796ef371d5e6b7804f68fbdcfdf1900efa42ebb6f2bf80dcd53563c87eeee1f6f26b41239ec082
+4081f580a00000f0ed2027ffb0c3e02f8b550508f0b00adfc365908214fb6c98abc80a0b8b7801f7f7eaa4ee89f57fc8add4e455ce28c0da72eba6478fb99767545e0a702be1bc11560e93008d32f417828b8161d2351d5cff17a8e373568f926616484afe38bb274e892e958e9f896387b23b1b380b293d73a597961447a71f1e83b370c920af7459b3514e64f2c845b402551633b79fdb23d76ce6e96b4e1d5b85d249656f79c0f5b5eb6f0181a4a83744eac2ec81b77eefb6d7d4617f9b533d2980440b4412ec50d89f42bb8ebd71c5dde68654750d07b02a98677b9306a66a8c6ba487405812277ade8a90949605bc28fd9d5bb493d7
+4081f580a00000f098223e5b5b67444f49a8b1bcab89aba97be6b977c572ce97ade1ed37f4b784f78afa6dcaa5272f4c4e50b53fa63fd4060ae89ea82fc909def1444d846d953772ff28e07bb1a6ca4ce76f2eb8fcf37aee7b8ea24dfc94bfdc1206f4617e39993ce0d7d4bf7766098cf7498eaa4277aaf7667bcf3dbe09de8f7eb7cba0d6db4a1ee039c3f799ecefff97ab215d2c30d8cc1d9486d627de5ffd59ae4cfe02e32dbd39c89068ada601d4967895baafc70c4f6921481b2c47cbe13e57338be958dbf28464e84de7f491dc9b938250aff8ff1543572e90c7b20bf4b91d9033d353585942fd9bbe67fd4b4be5f09b56cb79f07b
+4081f580a00000f033f9ee99362bb41570ee76909cc3b62d5a30f26ab646d1935f4d535abe786639996996c22b730423e4a45d4721aa93ddd6290278e51d1195329f990176611a584ffd49a83ece55777475980d922caa9f03c39f5f5fea757de6bf9d65797ad3c799373bfb5fe6167376e34e980713fac504b99e7257dd590c5fc11d35f1a73bbc8ee711f5f5fc89ce21be4962ce8dedd756eb8c67141210ebd89f0a5dd4f6fbe367004806909a5bab450c4e8972bd07d8a23de61006a5a68c4274ccf95fbee2ae816325578e6b60cf5bb32c0df85833b018d579798d2f439f25e044306dd0ae6d98b3b1bda1ca095b7fe83f58bf2ca75d
+4081f580a00000f00ce1533917a4602e448fe62f2da9e97c95464b0e8b4bbf4947f8644faca8e143870745636717ab5bcc752428a9059033923e0b348ea25b1f22ce1e85346cee6d5155b858b52d7c9f8f6b647f8ccc54d4bba016ceff35ecf64252771b2e2b6a221d5daa40003f2ca7a6d743a5f926219b6c2e5bf609d0842a9a4c0de7d4a53a573e3f74ff769929d2de3cf433bc7b07b68a1255e74309782219cc968aff5ac7438b107da4c1c967d84d01398cab2046d1bfc544180d9a09d39c4e077409315b5e41ed7178c55db1983a578317c6f2b32e5d07166ff5274fbdd648ce085c60f3aac84b88d59e3feb27f1219efcb1f57263
+4081f580a00000f026d2f011b32e339ea9d38528d7714359f31f8a3af27a1b41a0873724f134fb445006beebbc117120ca036e3948a4280ff80175723e0b933ea59cc5388b732d3a50c78a9f05ed89c5858c3c925018d0eac4456e05f9dc7a843766e40bc24c769b971f97d62236ba0e23ac9213b9e86f7a83cf02be7846cb0929d345d840ac2721a39ee3fe2354d307e9348df6e535f4d3f3baeb680151f23452ca918c466b2aa63caa7e68d7f9d97b866f2b5d3912462aff9de2b3784ec3f92848db79a5f342805117510d9f33315872f4b20d450f4fe3bb4a9dfcb6bdec5398ebe42f54b8420106972104f56bdb4ab05cd17d3e0e5ba4
+4081f580a00000f047ffe0f0eb2401008d22a0f9164d90eec68816ba4a2885737e967a091a52a6293d940376ded2493c571606babbb06b4f02833017895b8a97755c1dc253bdf8a087b817a2a67900d756eeef5b47f8bfe01807141e70959a6eea53946370f877ce09468c4f19a877de4b54f9028a6b6f3b62afe040ded8f3147ddc4c0e9a7287eebeaf158cbc14ba88ee155a39df2b849d29d9bbdddc62087463df95fa552e8a016c056a1eecc90bde6c41ae403b80ffc11892e2e3e67c80993373149ed04b8636ec4fb2778d5cf31c9c897363d9f72020dfb767b8e8b9a55c6484f593fbb15c1719c8c54fe2b2fb60e2f3373cada9891a
+4081f580a00000f0c7b071baf2b4a2b114d85fa549a500e259f0e6c4f1679d920830a81ae6887e45a0a5e791c70f6c588f8ad219b63b6bf52e15f1e187f8b2b09366d74bd2a5cb28a08902bd15c4db3e007f9ca3cd6f99683aadc38f295ba30c4603325f2159993a022d848226a6bcfacb4f9244e8209962a69b9266acd3060328b5a4a1454c39d600bf4c5af05f8381f54884cbd8190b7b8703e2b0c7237a4f99fba2a0534cfc59096b3340e037c70b5d4adfa6f3298640730ba7b10be15ec5e1bea62d313269907e70e67d2f8941aab634f554bea47661afb005556ec3e5d16ebb57b9b92eb4047e8df5143f14c425b27d504013302826
+4081f580a00000f057964f9d438c3fa7ca4498f50b9c6cdaaced7ba368f29b3c1f7ac42bdbce17748ab199d4e8b8cc5b4202ed3540598bb8aa00587fa5c8cd318ce666e3a98da05ead6ccbf5d4a7c15b6e1e31c2b2d8c0feb1c938ef964e2251b9dbf42c857cc75451368c102c312c9166ff329f7eff546df4e157933a911d3b6eb48be07843a4e9c910155605bba074a1fe13e13a0669317455b3da9713c1338a4c398fb4da95c32c8151d74edecc5736d7a119e0af7b1087294490f8ceb6f22f230acf9fbd79667f2c69ed0e066dac33376255bc50d1caa1b6007708fb8527edb90f0227bd7f767185148d8b593e6cec229054d7df6e25
+4081f580a00000f0af7a463638f9c1ea6ec3beb1d447ca2007f4fbb37f61fe545ebc9c3b9e4e8778015a5e80a47f2781dfd7e204b0edd8fc047660e6261e951bc201b14c38b7efeb6c25315fadd8ef83865b43ff3e611d8963b57147a69188388fc6a8f7f92ebf2436673902810a0ecf66ddeeb0b136e17970ba6cbc69de03e5e546cf890838a4985d3cefae9179e5df5911c95ee6fb9bde860551db849bb29b8e5fd5ac1f46b28aa873d0c8a135d4bd0b653f13372d4bf37366907f4c51e96320a30846f70c86eecfc200a9709395bec44e3e7bbe896dd1aa72e76cbd1bf0597022243eeccedf509e57d978d04d3f6f962ebbfd51e2d291
+4081f580a00000f07896fb8c297e09a8fcccd15c03eb4f130f4cdce0ba087283c4b660a2e899ddd25d2ad33f245bf66a609b71ca143d0402540236c5253e2efa7462c11be2f93f2e14e9cbca44830e81a4b74257d0226c8d65243b9fdf30066d4d9b5a54a60956e26d7afb3559b83d46bc4a14e35839ea5a7f79bcde1d758072b1a0f40ab3391ebd2d102a8c0948850da05e52784d3f57dd8e715161da3a674db2b4da2f863093f8ba37e677c873451a60018d2065c145616b654a98935614a950e5806c38d940be2a4b0e5db6bcb7a8d98e921666b51af1e87fe8443abb279c476313b82785e6a3de0483e11f8306b6cacfd5836f484d4e
+4081f580a00000f089842f3c518da5a37f50f1d398de5695ddbabe6431f967b8884119374d85c413ef4b061964447dc61ee86096a7e4ea73d221efd019ed953b8ce4287a82e7a31f1052c0e9696bcdb53c0998bb4fb35450606113c11ccf0914f9c1b687c1ec2397c0b99d588cc68a7d2e79dfd62399e5be355087c1277f2ba02162407ee2ffe1ec4d460e8f1d99478fb20245abb515a5259c0337d8291c134196b7e91646f419a122dd2b4ca4a8a45f48361535b6d2b307824094e0ba5e955b13b852b93b4ffc45fb1e64e835a4f944e3dac59d1352449cc124c3a47166a5beba6a3131edf397c1badc90c83bbbeec72cb0205b87b09b41
+4081f580a00000f07c73292e37fedb590c52a2aef798b15e86af5f09d92a4bca02dc877284b4fd497fc75fa85cd602590cb83afa8c745928d07b5e24e06cbaf2e8ac87a72ae443f01afbc805b557dcb28385c5f7460b04808370afad26026190a7e4b81a07b86f21728df5c3bc13acda46871287514189d18e6d0b2ac93b94252a53f28cbdd795ab2499b6f091253299763b08efcf743734c41930fed8773c3317881be2f92056f4e6e8604850fb2d3bf0dc0709f7e7d94b92807b9c430337be8ac2dfed03b8464c9f8a9f9576cff213cc215bd6a95c4a524cbda76e7df9e5d5dc9f72459b4ab7d19fb0a96f5afd7e300f29fdd5539f51fa
+4081f580a00000f061a189341d515daf233285009a07617e794b1ec290a6dfd45440f7d261a13858e76ed86768d67ef28d9e57f832ab045b25852f5cc39bacad10e31f28e873c900e2298aedb6d084119dee1723b229ab0852900cd97d2046bbcb2191fff5700875084a21912bb9a23426e6c0d1d82df22d6f33230e5cda2f475fc057a9436d9a726e9ecaad314f4ece5855a11ac4a019a5cc7631a8a3a0da1c72df0bf8f9a8b0793151608c90a500164ce70c7cebf85a7a9f95b2d083c1d17d1e6f48b43f5dc1ebb368ed200cd39cb2b439817654d7a46cd625fd356924476d4a1c5bea9e4803c5feba748795a623d46a8a557ff4faf224
+4081f580a00000f050a2c00907c7ada86a292a0cda15cb733ecffa494811bb18528d542c685748119ee9cbc5da5755991efca02869ff7d0eced2b7630c69370e786373b3a47f8079afd19ea2d318cca5674750a7ddd22000226775f1e1bcb1a68bf12c759a65260153ba1681dff941963692b52db76c3187c2e8cc80ea01b3f1cd34ae99f94f2d8ecea3cff04e06e9d99dc9645d581db4d24846f1e5af472149eec6d8a47b366be172de19905eca62515a8330943556b69553745ae5ce26d9bdfde521b89c92371fa2b61edf40d5e2b6a3f8e7d8ed7807e83e035235f2be7154a173f9d4728f52862c176091cfb020bc8e95ba5b547cdc71
+4081f580a00000f01d589d54d586ed2af2535f97b93ea7622808c9cbc65a82488075b5b8987bef4419e9c833956ce92cafcb1ce36a2ef00499635a9fe0ea8613cc39e5409b5a60c370a997ad99044ef230b6728583e1e64a921be51681c259876adb6616de2236255a0d3bc408d82d658bde362386011be513b58fa0047ca657e5c8f1d9293e431fa673d9dc80e08a27caf3677a6bad14519cecd1f96dc97fb1e98e9bfe8f2528d4851384d62cf0b0885f2adfe24cad01cf64347dbe9b79bda928ef58eb2643f2fe766fb70a4901fb2bbced83c59227125b4581784c3bed77f65e08a9eacdbb7f176d99ad2e2889b18251c4c2a987272c31
+4081f580a00000f0dc81efff2455e76ec4ac50e976e37b9fc5ab7a08fadc53b58b59f80317e39f90e21d6a386f3d4e799aed7510299a5c2d0bfafc60188d45d45fc520ca57459cb8491a6a25dc29eae854695d167a310663214a624175e3fca46965a3bb20cc7adb6e2199bf24c5678ae2b2ec47b0bad7685fb657580d7b9b3f20ce3c50bb8a37f90d024e95241ff2c886038e0d130f8a99b3e4d9c284d74e4279a3af0223d050b488da0d3d741600827351acebf6f91a1192efdcd823ab3a490dc7de0fdfebfd23981da3b4be9e3780083c2d374457431ec491ac70b7578dea65ad0c0265cf18a909c98c2572e59181c8e7e4fd27c8026b
+4081f580a00000f030b677605bdeb637ea0b1e9c51fc1ea0cfd39c61f45f5e954c584b848c035b5c50c44708d0af64e8878f8422e1fa89f7221a2d3e89fb043a4add0b8767ca172d8c263ee09f395af168c3a0a0135dc57adfd98b344c27e12c64fc83d189044b2c938f61b3447f311862e3617d959e862693395f46a85853abd277fb5781c77ba9b6478e3beb84d3a0142c6315096bb7f88ee34048d4d8d3a057bb904f8bc2b1cf85c55f1e02859af2a96d577b051ac1b45032b4f5043b75420a585ec79a2aafc19c15b278722239a46399863ce868161efbf721f5889e47549f9c55d244699b973908b4548fc11ac0d2f3ce909fad6289
+4081f580a00000f02c78b9138c2a873700ffdb8e2156875c8acd533f477415331b0fd6ea15655f0f25305c5f0285272ff7f18da819c6162ae9eea993f8d228560574a6134cdaceeb44ab39715fcc96e2e1a0f481891402bcee4dfd7e65156ec037cfa00b0b49773fc24e6d0c6e20d23ab254453acacc14da2c4e7e9eafabcb2fdf11e8a93ad34cfd44e4d4464bbb58368fedcda90bcc9d505f136e669074ceb652d6ea605f9b8a641ae2b5f7a33bb4aa86054b06aa227b56445cc8eee1987758bea9489d7216fb4685771d7d3e5afe73c66e3606fb7296264345971eea0b5af7770ca08ee0f085f9ce287dba9aecf1e861b54fb23e22f6a5
+4081f580a00000f0ed51434dc6977c9d782ebcfe265ab9146ccba31a8bfbd17ceb98a8c9e0983d753ec7535ebb8134ac25e5b788cedd94dc01fec2a53e3af5ccf2c55047adbb097fcac8459844f40b8b80575ed1d8fbc5301ec3649e53ad7bc1bdc6b662b600cc47d95e4e2bdd36e7337e4b049fa2075a34a06db2823dede5229869c744d2ba712616c075481b966b5d3e6d6b24faeea6e5902add2e956e72ab743495518222112dc3a64c151ff783fe25efb03cf051188f94c56fdb496c9fa0dfaf912e247083f3d55245409771ba51ec2cec7b84084784edc61472dc6002994153a69ad4d260845306b305943d17e13686fa0c8fb58ae1
+4081f580a00000f0b28f1d15db6bff01dff4cf5bfc95267e3c9a679235e244e87bdd368ad5933a31b40dca9ac19f2ccf0db81278e4266c92aa7bccef5a96781db05403acbfa48599db27163197c0bbff3afb069a79241081403b1ca66177f2ffe117ce938c3175653d6889826ad979304fdd73db351b082cc5c4e510a676853036805e96b7c4107f7c6cae85658d5a12dd8c87d94da0b0e25b065ef618ee67f3a8135b72e21ce60c8c2feb6b143afff8930881115c14675209b1f1f02c5ccbc566145beff6c4573d65e87f3e9c63d9db027e15068ba45f03dd32390a8daf28c94f0d949325a415f51c66f29200db8d8e0b30718d86f40883
+4081f580a00000f085deecf43d723cecc70646ca0cfd38b565023ec04c8dae30b6f889a960a742cf0aa76e5d1201becdf94de1e5c2218d0b3f36edd5a36cdf21237bf12420172f25aa18f449a71699953fe80c2f52536021228f11bc65924f0c777a9e2b02df47f9096deab557fefd07d352b00117c8ef327f26d946356b58994240fb143127c91fbd6af72f7b997ecbc9a58fc018ab9c9c5be33eff0e6352aad575ec59ed48f67428f012ef224a174827e9be836064752eba7c6a3a8bdb33cb7c7584eb668c770c9bfae987acd36b6792c83f53c52faab20c34f6c75b35e8d0712f99de8a08e4da8945ecb6313c5f7c89548eed03bc9eaf
+4081f580a00000f0b04f5c3282768241b6105134b8a71323981822f0ec869ad821fa3985f74a3dc123f499f3fb07a0e9d64b4c94e40a8b1eb0e0bc80ba5cbcb9d33ccd88bc9a2672291b193711b9e385575dd1bc562e5425f13a47f1138a43742e7751fa8516e2595c98a53c049f00a9086becbbfabed7b6b3d29fd54acbe8b385f1f742844400f12e4e3920b70d2404cf48ff521e8323d80d662524c1e053be07c5a4679e692d640ab4f23875027efa862a182cc2b693bec64db6b8623c815f2bcbc305b50fb299943cb4b47eab49356b825cb8c6a664fd505859508efa5617b089964e51017c9ef6ade713ec103c820906c20a3cb4c129
+4081f580a00000f071fc2b9febb539f728296f0a89ebeee89275a2fbd03d123e100220f169bd57d1f3047ae421d41f275ad93b77e5aa835f16071beb30e1af3af2dd01b7157e10f928d689afd7dcd370e00aec76eed5e428e06137f188c9d0535732c052c9b73ff285c518ab27feb755ea929b9837c26905791af7294e4086692b4389c0e146541f34eaf7fa30ad8a2e99a2890b88f6c655de6e3c6db0ec7e5f61f16a65eb11446d45fbd8ed3208e01d083f860b7f8a83074ce12da22dd60f27d176c2de04e19af62310ebddd93ccd0ef83f45721b3c9f02723ecf851109a32c888e48f8624b039704407a241524794434cd05c6048d118f
+4081f580a00000f00d316eca8ee3dfda4d64394a4ff51bfefc377df67a856c1c7988db773203181eb5e14c7d510df24eb8cb5033a5707e6ae5347b03e3f438881c2a206c09d3689e5665126aafbed6a881fe78edc1b0f89a6d5185a8e5b38569f3497dab6ca922f924786ff12f4e6680aad50d1203a3fc2c6425436f243c8d6c250f87d5890f88856afb389d340cee273b93d1b5f5ad2f30b3cf3aa27dc59faf4d528ed2c39226316ba4d7cc2c65c5b7b97f3682c81166d2e845ad7622d3002d382f04aa8e6ab8ca0ed6cd8ac2c35271db484d476c9bad65755a1d424387ffa57bd60ff037b5b4ed674d072a1104e9a683240bf54149797c
+4081f580a00000f0edb0b4d7a61bc88869b44714a72f4395306a84aa2ebcc194edad2782c5bb0931aa3505b97e9978afeebfecd3e735ef04cdb6875a73c1650ee9943f5167f99739075a4b49e2f4d25e2f0bdaf96d4219b47a80b7e2f712cdc3f892957221e4d263917e675541f6241970f588f7ff6ebdc5ce8e4c71cc24ebd09f3a947266a1b816b8df4f8eda563af7771a13cbcbc6bc0a2447829147f3f4fc89de79e86c84de7f94048c58485de1787d787f0815b1eaa368033c99a9d0f3f18459741bfe9dbfd809d0b68b24f6464c0038fbb25aede292d6efcde5b366990df5f5eaed4012168521e4f5e0a8d1f1147a33c2f86ab48d15
+4081f580a00000f00602aad0312ffa5009e5c9f23a1036e6c959917d44a576797e0405c45d2efa363584b26fa872cae50ce5a5fa6e17e5e68103ab38a8b6d0234b2cb08444f51ce9868e0e544d26d80061405a2c25356c380e8a7a58cb8da1fadd856f38d405ac48d902bf28036234924336e080d13bfb056eefdc9ec562a0a6986e0d2d0a287eac94e08cf729018ac6bf5580612e7e59cfe03d222f110d25bd889394fd516a679f366f4798204863db4f1a20086b48968c7ecbb246c5f394659149eef19729474be334299cf5e7210cf4e9fa04d67af62483e0459d1fdd809eb6e4f3e309c182c49e795fa8ee77b41d8bea7f3c4a4c8b93
+4081f580a00000f0628b04abf911b021e23b106793a48fc09ce71a1738fee6f0ddd5ed23b8acbf07c64da41468f13d8fd4680d05c84e701ba162b5b71caa0078c26784c11799da4308873774a743a0b3f12d61ea5276119851c5fb41782e984ef2eba5f0c96316aef4831f46003f34f7c096a3472391e2e5944f45b8e1a62afa2a33db6a4f3bce3d7e0a10a0655733adc3fbac9b0cc5002a6049db09506063ef3beaa20dc26c62793a8d15b8174823b2b0313fe3130ce60ff206acf78eddbda994761d34f5096442e9bebd82abfa62afc971d702ff9889b87470eeff38d998ca06ce54916f7063b2d6b09fcbe34834da0e3aa736095df04c
+4081f580a00000f0da481b202eae5d8bcae63b69f1d35c85cdceeec1f59f5edc9dfd75327d9ee617648785a5aa4d49ad881f05adff4f000a6cbdba7a09bccbff5fa31e1a32a32a700e6efc5823b258c5af11aa3168cbbf0ff0f0593ea29bb3ac9ea55adc3bf96e68eb5728225e39fe512b0b9cf11e17d5ff6a2449a4ad221faa72ced03e152c390406686b19bed630612bc356e38049134bd08a37bb20e91553026783a8f4d2bb10b1af369da3cf050e2ca8422eb58d3d409ea49a86ead5e56340a1ad3802152731110c6e8499fed124605885f53912c7bac7bfd97903cc698fd70124d3fb1176cba1f989fb1a2a7a777900b6b40be5ac02
+4081f580a00000f0708bd0c4974fd34f264fe523b51f2edf391718b24aed238df3f99bcf8992bbe44a32efdbb0637bb36180bcb9278845ae77ce193c788c6446f41b6df5c96aa4f18c654ee69f963e540099245b9613f48600385a664d38a9f5ea1a7c90a4a15bdf7ca94dfc962b134508e15a145b4c5592c5373d493902982fbbc2f0526bb9cee3bbd18fead3a59fc4cfbc7873aeddd656551a1fe02ebfb7549fc29a8f586f4df472515b72ea344fd0f351af51cce2be5eb61adbccb1afb397fc19e4462f8f748d0248aee0ceb49cdb665434c39dd39ba3c234161cba43b9585d9a33b2530bd85ebb55de6b3228d68ec8ec9eb866ed0fde
+4081f580a00000f060eff3f2938a8e136320750b914793bba7380fdf6a0a0b3b0708ce283e9537c45804fdbbcec6f4f3d1a6744e5547d125526b98825763a863a34b441c9f154ddf61c662011c2b583af8967573f7cfb72ff5a06662159193c64d68d6a45cc9bbbbed16f7c27ec9efed89afa07e485a901b3c286d36181e88ebb5600ed02f528e4d2171ddb83340c0b07a16e05e9256f799a938a127ff408fc50dc2711c52271a0c4eb9983d518b9d2ca9437bf49fd8198661c4b0f44891f7a486bce26d9890d633e9ffd838f75fe6120f3c9ef9a71e0924ea486ca56638a406fd87c4dddac0c2437d006c62d9fc87384d64cb19755512f3
+4081f580a00000f08d32862a83516effc5a97c76ed07726e2adfe3d6a8ebcaffd9840c6c9d56666c7a96f0e8b1d5397ef90da16e37917f4cadbc3a85e5d8006d9315743d9c7bac6204aeacf33a60aae271786355a318e9faa90f1637bf0fbac7b9fe41a5d9fc52a79fc932e7149bae470b21dd881df4ae6ad05c8565bb2e842f410e6f60cf88a1bbd5e32df8ae4ab7560039da3c16c456213bd9a6467687b75291c73a6734d308f5071184fa315255d8a1ecec3550c23518ddf91e1924c6d31510f8721060053f75a1db8f9752ff4926a71d74fa278a83bfc45ade974ac3d19a3dbdaa832ceac594bda55e9ebda9d7f5197db428fb577fa2
+4081f580a00000f0f656f1d876391b90274406b4d12b62f024985033314f4d6e9aea69e24fcbc055b959b10314f6f6ae3cefb5852911ee56ea79241c02b62d3e1b7965325001f260dec08fd5d54e3f78bb4754120d931d3d473b0fcd21ebefc711681ac30c9a559ceaf13a5cd5333a3e657a806cd7797248e12b44404703e7f2972c582326f0203b6210825746791468d26393266a87e55fec866d12bae1ae11ae2a8d68c9e9ab78db345ec3bfd1f345149d63bc829f9aa639cdeb414fb74be179a83c1bb42a2d9f7c00af8366350c3d5c814aaab568949c928ea0ff13330334a5dc137127abdc85459f37eeddd1aefaa9dd02020e80c030
+4081f580a00000f0485fa384e088d6f46e45a051eef404bf2aa5473a30f507633451a1e59fbaa09a3b9c4df37e0269196d760f58d059db099b1d504dfacb9e33b1637d12602eb89adae7c21595a12ce04ff0dd933d57419a16f61e160c0c5f5b1dc85a15926313887323759a47aeaffbb4043c5aa8751fd2be75ae5fdd950ae8bbfee012dd2c98d3a1f6d6f7ca4f945ae73d80dd9440b7a88493ec597cdfadad2c659eac7dde5b13ff88478b036a83f96c618ba2a3187095eb473c39c5655100fa3d3e3cae67bdfd9c489abf236f2c0c596b7d8cdecfc1e9c8110babe6014e7ef771bde24ef11b1360a98fd1b31e7c041c7ac14c7a537d40
+4081f580a00000f02797bae50ab13061006296b8093c5b88fcf830eaf5fe9eeb0249a2b49b4b2d63ee28cb06232cb8c93bd91eb7df363492d728aa66b10433b1ec4e4fd71af917e6ca406bde1c26e709abbfd8a7a6b6d7a5e48f38bafbdd3fe5aecf01f1c5a6a927f108f104ca5b7ce5c4f41f766ba85c251243bfb71d14e5d253cfa57f3ae875098b622755327e8a41159967e4bb145cc4822393723734229b572b45ff190fc96404cb9b41028f853e3d995d09e07079cc2dada6c98149a22de97002780428294004fbe5c30a2cc2f2d34ac43515daa22f238e36155528814dce13035b4c5ea55843c1299249d29b974f365b4b8b08b9f5
+4081f580a00000f045a0a1daf7b1cd0d4322bc0e58895a58f5817844a26eb8bfdc68b45d1ab5ff8c156db31931904fac114fc37a3b4502b5b8047467bc349a6dbbe8ec0fdabb79b2ccf842b7b08543fc9fedbe0e438f465ffb3a228d78e374057e73cea39d28cdf8e5898bddb985ef3a00220e6dad295c06d8996d2182b169372c6e8c73db80c9aabf05aea60c1b3578583dad99ea84217a0ec43de555f02ff7b674ba952e1651d0596c57a22d2dee25d8b438cec04d9d3277d7f37c6ec4f1b12f6a030f778347cdfab9edb2a867e690400fd5a8afa4da636e73af87f6471c8b534d123bd159ba41152bd4cfd54b073db6829f309b317c09
+4081f580a00000f0d3bf6fd2406cbd42060e7ce7091a686c146dc1ad15aa9ad5a73136a020f79c097c84d2bd7ebb3055e510cbd28bc6aef5395608cfbdbbc3071221f55892503c2b4f0ce507d72fe33f5047b49f87d77da387c63f43e69577977135020fe94e41921db6864927a9cb6e5d94c2511e134ec7a31e627dbbb4883bc92e80a18cc9c801c0d8e66d1d711c2de25d249f6c8376fcb38207bda8ac02d32b5bc5961e0740af46787f16d75dd48a3e2a717f555d7661a2c448c1daa54c40e8bbc62588b774e2feedf33975d9d1efbeeeaa88ff4d14e51c8485e0e92bb3a64d73e41ff37e4f448dda0c7d8d32f6f5ee8882c243fb1496
+4081f580a00000f065c3bef8af0184e3084143d54c7eca72cf3393fe81773d0ce7f0aba9ed1c594aa12edfb00375ba40a728a06611ca65490beb429cdcf3bb9f157a3c3e88f276b86893d0f0b027db7c35ab2de576c5a18084be86a286e0fccfe8be2fe130e410edc27f1583f1de65771b343eb05085723d9a881fd6c1fa532bf1a728149cbabd084051bd49cfc11647b01442ce9686d96449c4a4bc93825c8d4d0f8d54fbe2e513fb6a81e03d3e7459104bc29664fa0d2a5163ee56d48a681397af3cc88c1431da74ad27038d58079c05ea86e5b7a1b94e85ce9f032bed7c9279c78ddf09c891730c85b6467baaa50b74d163b81ff19362
+4081f580a00000f00e2183768d18c3a8920e164b6c72b1b87bad90e60b9bba89d5fd7fced924a1246b734881db5feaf96192ced33c1554eb7b8cf5d244d2cb327e24cb268044e6c06ce99f1e537d3c336e49993b1b89d180b39f454a88b383ed981b7b8b75f72fc222d1ea167cbad21cb0c3526c3070553d70b6092588e049480f75c897d7506a9dba91ae92e21727fc719ab8c8c732297e2ec5746d2b86ac14125e1b9a50a58505422a1004cd21ec3f1a56f3688fe9e19d033ef36328fa3b21e51466bc13fdb29b0b7702511b6fad0fc8eef3b8ab5cdbfa69f972269a3194b3a151a12e997a1c5e84ee8861a3e9cafec12d5e52dc234843
+4081f580a00000f0071463f79a46a1745860a597dc97574a9b7225b7f6c2895d98b9628025333fcce4e764a3523c88b555f0d37deadb8e33fed23b527bb9e76e18e8543cc46fa3f78c35d4c3e65e8fb29bcfbc6c7d4fff2a8fc3668fbe926706338da76c868669537d4e91359b2b5a1110b7464f39158f961ce3bb0099e61d4483630c301d747c97189058738b8da96960f5c5e20096f7b826094b07099274f75ee7e596878976e74c0f1baa182ee48f840e8a2f71e83e37169eb2ea1689110152dc5c221dabeeb88ec8278ac43b77f6f183beccaf477755ac074d9c6e9080590da4985535059864636ff3b6434dff26b2c347e70e1f841a
+4081f580a00000f05e6a6f60258a2c9898e03218a31ca63e0268d2dbe906263dcdbaf2b585bb40e48028e581d44653028b0e0eb57cf849daeefa540c0acd53e443f45f3f42daa22924ece0142d56820aa70631b2072a7e35f5f4cc619af0da14248f1f54fc36a5d33ae1a6cbf82581ede4eb5b11de056ac3b0c960f46898cb73779a8a956db4d5ec59b7f4ff304854f175c407a397259f957641ec8c6f588206c4b4bfc71f43149b67e034cab769c575ae68526f4b0e88151d605a7136e3f67a2e25677f7e55e61c188c9ea21e993eab4422dbe6d465bc59fe519283462e2ae4581b66b91e8dec272330be9b40646434632022cec99816d4
+4081f580a00000f03ec0e351e0aac9c7a504eb0e19f28cfd1aac6d7254e964524a57d4336b8322285541640ca2381debd8160eae507f4cc10aa3fc8be9b75e6236ba04864df7e0ca0fc9e3539c5d160cc7652dd87abdc3c8af9bae2f62e9e49f77cb5b7404c67f2f131b39043cfcdee8d9c1f8d0b2a876ef7e3349fe9c6514ee6e1e1f8520460ef2a8a4d2150e86bca10ee3dca5baece84ab54ae7e11855b161702e94512a1b2cb341590e148577646d4a8721e58776b4d8dc195c4f4c5985904579589d9d67c30fb952fc43fa25c9b0000aea4dfb57a5b767f596467e1e52e17cb7451ecd6d9f656c69c20251a13fb8c143590693eaa5b1
+4081f580a00000f03619decaeb9c4011790e499c7adf4c08ebc6aa078203b821c8f17b688d685e8fc53080d20fa6d6a49a73130883d5810cdeb08b358f5f0b7eeb07f01f014aaba29bf1dda50fb61c7a26f9add7336ea922ae75103241d64c00a22ce53f2acea2251d976e4f6e085aa3018f3301c5d7315f91acec171a9ff21cbbf9757a87676a8b325ff4396081dcf55b5c14a2adaea2c4602b7d1f16f7e09f18862f55127df5ed78d40ff469bf6c0870385d768ed0ec08953ad2bf74d3f62dd8319e9d879c769e1e2e9462653ea9c11942da5897ec22aff2058de3451ec3c42ebd65e707af6a5087decff249a212efe03540d98f2f7a0f
+4081f580a00000f06dd15f239f3116f2bda11ffac40f1b62565d548c25b364547b53ef55968eb71851908f38b9b5716bd5d6ee5f697674ca781c1375c8434a78b34062a2fb1a260900f0d7ee8b2298699b12200f9719c89dfd3d4abdd6f0e0adf35a5e1164712b51e38341078379898095898e5096ce89583c09f1eff8b449cf6294a5ebc00a31a22e885227ee6984196b0651d4e9231e956efe868b1ed4cf33d11015e14f113074d91fe67c4ea1d55e3d2364066fdf45094eb73daf35f16c109ead50a4eabe23104267a835dd363a34174f8aa7534a23657b3eb366e98add87070e1e87cb8ff72f8a52f832d276196e584fdaf4baee5ed5
+4081f580a00000f06d84e716da2490e0be9dbe37ddbbacf25615cdbf9deb07c088689be15fc8f76a15b93c479ec541a31064cc152600b501015130e4f3b8aed2789dc2bd141d58ea744be470fb326fd3a8382fe80cfe7fe9b7cc66a5062db2f4306fab9e4c52951b9652fed798601570c0a88bea4e96c2036fd023528a19b42833715816d43b3bad9faa3caa46a046956193c69154ab73cb270e4baa08a4b802403207eacd2d22fe5e33ca4efc916542c38113e65f61e8a42f61970baffbc8910e61974482a330a0ecf56f15fc0a3a79ba910e859c423989386845614911dab00c9e93c0cf0b6ecc9161e2a510e0e62d43b261ee84895d03
+40818580a000008091f5c9a46c23070b6191d5b242f0af8e6ac6902ecb730164fd39af10de03b886ebfa58e9b1998ea9e6989451da4012516d1e610e55aeae2e563ede21a4680f85047f7a45b5032f6db6d1a77e458411b6032d188d43dec2001759effcb728f2f8fa75c52656a82d1ef60552d84eac95c54d0ac1b47f95be6a18034944f1e9ce9a
+404580a000004025068d9f13ae05ded3e6aee39fffeebcad39f05cdc772fc4df7bd30431fd6eb2f7254ba27cef463a3441156e391a1472462fb921776d63f30c9501072989a083
+404580a08000406cb9b0098cdb61c82baa1ac53b03c9882c89d7e450309bf778edd4e9f0548938df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119
diff --git a/felica/loaderservice_updater_2.lss b/felica/loaderservice_updater_2.lss
new file mode 100644
index 0000000..e93c0c0
--- /dev/null
+++ b/felica/loaderservice_updater_2.lss
@@ -0,0 +1,329 @@
+7f2181dc9310e9a36ea1288e7cd97bc60f17b47191bc42106c14e84307d35f0b31aab2d8d5bfd87c5f20105bf4f535c568468c98e38b0f87d0b57c9501824508d3ce8c196dd9cc05530d4808ffffffffffffffff4c01ff5f374022f25fa7ad625c16cb915a44980f67b99944986e1413e805ca8b840516be1c8153fb23ea5f781df9df710a24d565547b41f39e90cbef4fef22e114766531f4ad7f49438641046dac7107f40ba1feade904ec97201e6c91d4919a8c1eb1e95563ad0fc60c8d7f86393bec5663fe860455f95b2c64e4a34351af26f9c9b97a8c832a02f6ad1061
+6081ba4181b7049493aabc169fbeabc2539c727ecebd4ba53e3291856df99c87f6137139d146c877afd6b0f591b1faf397c33bcde7eaf7130d5cf3d1b9a4b2e3aec05f8e452c6547d278b20ee5c691341011a9ab9e078976173536c3a39a5f6364ccf2d9861863d89f5379ef564d0624b2ce0f3aeb30d1304402204f0712d30e4bf21643ff781860c65514efabe2484b8be8c321f7274fe382ee620220881ae0981836409e43fde18c26d5b79220c795024dfbf6757c58144e13d501e3
+404580a0000040fc844273f8a56f2f8ab4a314739c93f3ae579554f1d95b954f86cb2c933ad2b5e1f297e2ebacea506da643db9825c5b300e40e2725826e85cdcb4bb923af111d
+404580a0000040f282c5ee7e6da094f5cafb3b83b190da8ad0dc3fc04d3568959afd42c6d2d5e18dcbf11def153abe3576b0428266953d124d4d582d930d619667eb3480b83a15
+405580a0000050b54a3e5cb9d9f0132358b816e017e9cc6807eb8ecdc816e7345f383ebf6c01421776f78967ee4f9129e40fc2e3f47c3ea63a40368a8a9dddcf22bc81e9abc05cc7128cc3fcdc48c5b7a00b4e2f6dfa60
+406580a000006032e667c6ab4290be58c98ff9c4e690ad9662f14a86d9e246192748876d4981816be1578353c95a80097a6371453d5684a5f48b06495530f5ff93970c8dcfbeaaf44c9d66bae4661f5544f29dc24e674de136df08ae6981bff10dfdd7db7fc094
+406580a0000060df229a58aa67bd8767215053c52fc3aad2ce58a93f4a62319ee5587a6c89e493b906c5e9bd3b43667b05e5f20827cf7c9d0e9c6eb0250ed5fcc0ab5e5b44db4ac41f05836ce6b725c89661c1b2672f02413ec20c71c566eb8b461108b83a499e
+4081f580a00000f062f89c79f3036eb20ac4584bdf67381da0a13eb19412093fe330323a16ca2b13a4204f6c28e6a4ebc28fc2f243681f01d75722f9d56cf8ac4b33822bedf154424c38accf84ee6a3faa1bacadd96d61e1946b9c1228f528541cb634fbe8d862e5013a0e010b60b0b43879fdb59a62a8a737e98c7feb564ccad396c183c2d653b2307ddc2dbdb3bbdf45c5f6d5b386b1fdae77ecdd602cb2914f6c8a06a5c5e9351dca22945916514922b6661574f2395b55c89b1d3962c73ceb93b84c78d3d0e6df38875d99337b81e38d46026cdb5405406a00cfd4d711f6829587dc4c6757cb32afe1676d0d160daeef38b8ab25224a
+4081f580a00000f06555e99643580f32f75a807aa46220599b1a59226262bf3175d0e5e0bacd94704861d43089636f83dddd41cc26153b9acc957ede435004d13e78bb4964bcfab1c3b6094c978f4c1afefaf9889abb3ec1c6b85b46ca85d4ea58f671b407aa92071c349f9be478ff8f2eb349615dafcb10450bce0c6c33ea725c6aaf745fdaab73b4d2b9caa7dc2a0acf0273f2e5090cb6a0ef2ab880d5870de43a20d57161c6ed3211d77c4bd718c72d120d5b314520a716ef21cf7817049975394d8091ea1d3094d17dc59b8aa89325b38809b57df23c6fff083f8d442969f9015bd7acef8e956a580f7ed78cd83d1253d0a91a1bfb4a
+4081f580a00000f028769447fc14b4e2f02d1daedbd1b5d0b3afb19e61723b91e6ec9695cca581a98cafd29c21d353720e6b029f52371dd12c1e759315feacd9748ea378c26f394fbb03d57e7c869d8ecf71ac0a8682891b92d6439b1a63a7f3515f26ef816d1adfa0a115d18a9c3302af9ec8846c7a4c45bd778cee555cb6e824622843791c4eb0f11f97661ce3aab356f2ae6bb03a696a1060826b4155b5c5debd39a8031b885c79c0c1ba38d6f6a2ecb60ee4c5e8166b0dbb38ccef89d6ba0567d0501e1d9f5c9e014119c34be50589135991b9d2df7a1b07f9551096954fde46846a735d617268923adf4c2316eb045d1cd3e33c4ab4
+4081f580a00000f05afc14ef81356b6ac12457e3591046f9b4a59873069cbf1a58849e6d5fdae897beb1212ed629c0af951a8c46fb971436958f596b3d9a4f4ad5b1e5713fd746ce0f99d55f21ad82e0e73ede3dcbf09c019fb8aa172ba407dbb22d593a92614dd961ab7bc4663c680934b741c77acd3bd0f50bc5936ce584c72ca54ab897c31c6106724a5fc4aa03f4e86a2eb45a3832c780f7f2e96978b7817826c3a0bc4e621ac85ef7d72d1f4149edb5a5bdb80576aa77732a058fd01f3be8994474bad864eb16d165180d0fd1f34150a4d2dce6e2498b7143f6bb38e648b9e8668cf821c13d8ebe2b3df5dd43bdad474540b16ae1ed
+4081f580a00000f04b23def468df825734ec36c3b4bb423eef8472d6354ae9c87eb9aad8a7a4ae20741f61fcce66922ef5e16943ad31f41ab6941df2f5ac9805450c20f1865883b82490287274daf69f671ad095992e58391fa607455e92fde630d62a8c750b25a7b62a0746800eae124f58609eb09c7dbd50c2d498d1633a27037115d83aeb10af5e38fa46fc344dfe9d0d07583be55b40510444dad61891f37979096cb2128a3ffb836f7dc9662fbdbd58407ab4d06b0578f8d0caa259294681e6ad668111b1943c2ca822891e11d142c2cd3dc96e052d85956d17ebb1f2bf32691f80eeb6173892d8106ea4b546d8f5b51950f44550ba
+4081f580a00000f074d7ae9edf9225da434f2c5abde9b7b637d161bb8330457f34f36c9eada469c75407554fcecc669a6deafd1a2bacc34d01b6929952fbc03953567ba9733bcc921d928dd7e9048f081e9d5ad462c9b2b1b27d0068caf53b96b8a45cc2e52313695955de0c9d6878afced30d069fc01f32e471bb05f2c9a8e53d09a2562468e5c9fa7ddd8b768deb86e92ff66002f268427a3576435c27ba10e23d199337cfd943f730b35f947507856f3d47d97d3cb07cc4f71b069b7f38f4148b16363fbe5ff2cd56e27ec96f511b218399dad04021663f7b8d612732dcb1e03cdcd122800a06402cdadd874907643cff82317a749dfa
+4081f580a00000f0a3fb3ca74d85bc7d7c7331886d25d0d223f5e8e58309697ee68933e4deda00083db10f3c5f4d13e18923706d8b53d9a160f34669c46d3d5fed66407baefa9ab07ee02736eee9b927dd7bd55ec4f567d1d48d34ff1899c386213142de00758283b91c0b60ae1041693b1264aad79018b97c8b1557870abd7ed77fd81f9a44ad55c3813c4121744b751e779215b7c62445e5e3f9e2d875522984cacb282b85b7da6725961cd1eed0e710dff418a90bf1415b9581f076670ba095e43ad23895639a1099a9f1df6d7f6823a1fe44f36733ddd023eca8c1996a32772bdaced9b65b4642c6ff26e92aafb6546ad541533cbefe
+4081f580a00000f0acf34ed9fc228ba673251306d1383a1d1d0497f57d4c43b5133eb8c3b8dfa5912f58a4c4039009cdf417f845ecdc16ca597c212217251d8ee53943c40cbb7c105ab4be1e3d1985e107be779c9dda582208498a7ad764e6e351407077218a49b9daf3aedcd4b34d3436d9d8c1038bfb4b1f8234524571995374f1b8bec9c3477463b64454c050c516dabf0b0202aa929ad72d9a9341b9eb151b0f22c6fd42818e30e3656de4b371324ee6a80b9a6eaeaad1add9df7f989405c637ec8ea0e180d62158ed5d55fd73ce3f214b80549831e41c49ad1af95660a13f26f38f4d41537ceb7d962c01926c7775eb9671c00d29db
+4081f580a00000f0792672f33af71d360d064b61a507ef5d750cb3714e8d0517de51ee2ab243011d1d59291b2071eedc06dce03edee35c787005f2fb064fef257a5f0cedf733ace2549a249aa0cd8871339d7cdab9d0c701962b6fed8b0b9db8280bc25575a0875709bd89ba76046681160d76d834131af90636e130551e954e13624c731a4cafbc195fea91ff380bdd1f07ffd38862e0bdccb829ea22374de52347423708b155f45ee2a25635f0c40b8a9e9b39fa188ec710ac8aa38bfbad66f240558291aa05c1e2540574acacc902cfa78a821e868e6edf7aea92c5420798934033bbd01b4c48e8f8aa7a94c19523bc734861ee0baae7
+4081f580a00000f0c45d42c3f9463993384e085446f9752d3a1cd423f4cea11ede9988234a8fa3d0b4a3426b36fe867bf2d6bdf7da1a9dc257e7783fec0600665941fc87786731bd494bfcb1d5540e4e4bb8b7771672fbb60f4fb19d8d85e0694776662d1a0d569a392cf87e295a59ceeb41241b273a1c62af6291d786c6a30110611e2c0b4b17a157726f67e3e68b5e710a120ba7abeadbc837d53baf89d3e21fde55be385d08c95db5a357a84d42b0d151d000aa3beae6f545e056970bf2e714a7fb423d340385af877e525cc666ff2e6ffa528668e0cfc693ba0e3a22cfc7fc8d4a6b22e23bdcbe96bacf4e52b3c6de8c4e9bea5ed6b6
+4081f580a00000f029e7dadf4a908518260833a78c29ee091de056b91e670482cc5d37411e4339158e65a2188dde6fc9a898b1fe5038f56ebb8ac7e606fc6e7c47b6df497718e6b838006760bc8fc75a9224d8df26923ab8870abdb5f7d98ae951a8c708e377cff4184629027486a5143ffdf58208e65894a967e90cf34ad2d12c9b813c65750401b093f4c02b01379dc06f602377688bb0a999fcdcd1da762d6d96360a7151ff468019472086207d5bc56a0f4a8db035047d9c8c25d2f4a12aa0b16c97649dd64812cd242a94def05883ada9d645e8ac656df32703168ba878d1e59ab20d75610d821653809d0f6a796207c1539e2ff4d4
+4081f580a00000f0092e857bd040dbf8fbf6fde858ffa297a8c1c308d9625d5e7c0283ac3b7b9675cb21bb38a62c1f73abf2b85ffdc16bf2cfe0e026759c42efea6862ff8a9b6c275430b88c4d33721dfbf5d10eebb715e3d22c32d073632c082b7a95596bb747c99068c6775f182f0b132570c744d9938dba31c52ffc40ec0a4f30e5db967ab161079a72a57aaabaec34b78de2469c823dcdd647d28972f5fa3e8062b6b5e049a245a581ea015902beb36e93a912b415085dcac27bce68d8e4a00665532aaf343ca5bb8cdd7fac6f035a0c1b56d9541d759e65d098af7371dcdf9a59498fe34abb9a982d13857183e0ac0118ef11353289
+4081f580a00000f000e91b8c1edc752b1cfa2bf53cfdc26be70737955cfe5f089f2b3da9150d18d1052b3a8807ec13e8ffc97ddebb8da42587bfd3628f374c46595ac754c39b42606cccc7bae2af1495af6c129d55b928572630ca4c01155050022429b238baf0160a9c9f2fbd10688fd39b8777420b177d7bc59729d2b7d3cf864a5ed1135fca5e5b8fc33cd67aad15e11ae9b45e4b5612aac8c481becf610fa01b2308a008194c156577c59a119529c56e8701c67c709e915a666b9909d76f99951e4c056028f9780680b453ed6a41a36f364efff35edc58f9d3f7c167cc138b4998bb46687e3d5cc6da73c07e794376999969a6875439
+4081f580a00000f00f34d1f07735ea4872f42de3440ff6fbcf1010fdde153483a91745e9003ac48b914cfdf187f746a47aa0661b56240d8ce2bab7856645e922cd235897671b4a56ab13c3478504bae5afbf2c2982cdde23054358d7055b97ccc956241cc1dcac1510f4f63a42a52ecb0eb8de7bf2baab4f1bc68f86e0bf186dead00fb0584798858cfd56202b7dfabbcf84c458a89e782a28fbfbe95d925419f67190dcbc3400de83f02733fc76375ae3bf25049cd5dcca605a89ce10f1631fb287f7dc671d258745453b9cd5e5b325889d974b61782f34514024c9aceb5a6b0ce9173fd7f3533ed9e8201ddb06ecbb2925ee423b52b92f
+4081f580a00000f00a2b5b2bbb5ecc2a40442ec964f6900480aba3047f7feb6552da4665488e1b8fab4be20bfbdabab111e0ac8bfa487847b1a1acab7920a7b9c2e503263eba3f74075e0599bd16802dad5c574d6c9087395c8f16e7a1d3bdc7fd6151d1185fc01e61357f7b4d56164a7916c68f85f0ab8c66ec3f994808ba734f2e48101788e1cc85c461c0ec81b769306c7985e7e3cecb0d0f73d74ba3c4fb4caa4b2310cfb5321d50935c6e69c69fe77c2cb18ea8af8e4f8b57954332410bea5fd626763f7fe9dfef46c581e9fef3f4da767e805b78ea8e9a78d015b50674a7e70c328652906259766e3953bca95dd02d48f050e5f9d4
+4081f580a00000f0b826b25e41944b822c3755be9fcd7a50362967720b5c72186e6512888ef5368f1e62412cf1fef0960da05491592dd49220c580d83303f2d97aa946c94986a860a57684e0213993ff177e946c66937a023f170c0d37663b88b36f7311f6ff311c57bb1eb99411086853cda2c65269cdecfee0ea7bd43f9386e552df3c070169cbe8d34c1417c155cfb69b14b8bd41209a00ad0c8504212869fa6e763047f66871ebc83d5dbf5743af116875e8e06f80be99c821b0de3f87af7f208d69d00b4654dd30fd2974351be2186eb8babb73e9feb467a90d07c2624d17266ffb7ceb0b6f32e7cc30642a5cdbf8887353464f87a5
+4081f580a00000f0689089c9e15482bca1efe066f771c6c0d0dc0ce0ca984dce87bbf0c2f51ca9949c28447ec10c53320acac1ddfd138f877249f4898adbcd89785fbcc5472204567857de153c4a40060f12063cb0d868e93b15afcf5949d146c9db685b8a249054b423af593568d394bd318951c2e5326ae4bbe87398c77ae11b991375a87e8b642fe83dd358f62264939c0472971023ad0bde09006928215140974e6263a344ae0f5cb6e5fccfa785ec0c38f52879b8e9faedb765639dc47ce85f6d0874b1b1439db98869ff5064161bcef4b0c585b7fa383dad2a2019d958a5e315a217df8881a479882eb16cceaab01b7ab1c8be05b7
+4081f580a00000f055cfa54c3620563c47e815084a6d532414bf51d413608c9edaae93f092f73f1a7253d62bd699cce02724ed20a2f0abd0c2fe17560cb9d54f673dda1949918bb87b48bc05f530c286da3257315557655c71aa8c95a4d900729df1645801953925d4fa872dce209c64f149860f6f423c2625a55f3eab733bd5541394f42ac2c660044b2b843ffa73e901255ce307001820088972ec5b6b701eac25025c38f6a392691c7c79010489fc3a5e9b15e0f2eb32337478b94d23301510f31062e9d9ed10a94737dc47aa30539aaedf26a06f895a1c61ec0a0492d119a7a2a0adeb6825861de77d38c7a9802b3586319a8e9f6d91
+4081f580a00000f0b101a7a749ffd87014694d335f341db59eb36d0d7d78198f15ed3ed89d4c5d7158daec6cc19e30320fdafc7b6287197944013e29e060b6dbf3483da7c86bc7d746a32c49c5f66249cf580ecfe14ba62e9c511cdacc871fcf3028b9fb2fe0c3e0af38e1c09189d80ecf6caf21baf8f41ea31aa3b4f380c829c7ea7877dd1bda32870083561b9cb84e0f5b82ffaab53c3307a970a03e0ea464db7db78eade69cec8b9568467e5a557c0d7710c947900e8ea3c2138f40134104f1ac6c127eb5f487e726a7d8a43a6d9bdb7b86d9f8dd63d6bdc689b699b55ed77fb0004d4cfd94d6da3f3b398c1bed864d0b8525b1bffaa0
+4081f580a00000f0e174f171fa8530c1c3b8450154768770617532617a3619c623aed20e04ed455fd883e4625bb5764cf5576c90be41cce7dfb4fab94f6b1a07be2a9447c9b33f5c58c712c265da2b0ad5bde677d8887688fb0c01fdcad1cc273bec44d66cd7912c866adbfe189423a6cc9266ed8d492fac27521edcb3ed4ccd6f83a7456f4e91063b042b45770a03f1faa7e1c722f4dc3268e5eb530220c8bcd6a91c8e362170e135b526885e3b6b38a600fe2041b59755afd753f73d3dd4e3325124becedb6b811c5964a1cb29131f798c1ee9a9923048032b8f9601c1a073baf9864076464d26e8e98cb07e09a97c1c11fa6aa0d598d7
+4081f580a00000f0e3a3becc6894d6c915b23952df8a04be9825469bed4f1bc431d4cc367eeb310e6177e683e1c63f1e04c7f9c6dbcbac34098641972486fa99286421f6e39ac6f0c57399587eea8c8a987f0e37abdcbe821c448460fa9ad00fa2efcb7298ca3bd8d9ea532976cc9458abbef25c8f024238643d87419dadb19fc63031ea89fe95e0f0498b11420f18b6bb6e491dd71b5983813d647f21958913e0f18cf4cfe14b4edbf4e1dee9398537ad7a00c255f22b25f148e74a921428f7afb695ab552607ebb672ca0e7f61fd76b583c725d68e1877b10ff38dd94d0479f1d88fadfabf5fb8dd6994885f00d0e164204c7b62e76777
+4081f580a00000f0d09abedbe48d15ef89d594fa7ffabc5d64ba87e7e3a29bb5aa0ab1fb539c6b333ef725bb7efa57d9f1c367b9e6804fbeffa367645575b0a9cd540678e0ce4609ec2c39555bc2263509dfb0f8a8aa470e81f6d780532304d4756d79e53ee21f5e87e75d88b344959cca87ff4b5c40dbd7fa02b4a4ffbf04011d1b3d98c63fc91b0d845180ecb9f97e0f50b09620d6c863b76bbf905a65650d53fe7c7176f1afa20ecfa1566cfd5203c8052ed3483d5b33d96a91cd9469f0d108841a71655d3cf3d8a90ebeba6c55e2e9cba5a2f4150ca5e73040ae11215d3042d01d6733c7c9d3862e0e21df7fc37f6bcf9f534cd263cc
+4081f580a00000f09efa52cb48b70e0d854f4ed9e2ee7211b13bfa2fc0cde270b011d77b03d14dd22ddb90c9256c173b3a467aa274223ad611f5d05e62324a592ad09807e5867e3695d778786a18f04a0612859602998eadf6c37fe5034ce2a2d5e48ecf58a0ec1a278e40c1205a36fc4c6d7fbe4914f5ac491c07c6b488878efd9f6639480ca12f2d810c68232d40dc7fd3171319be4c0c6d36a48902a37126cc6490ae71279b05594a3c753da941a97e1cca80e5aa1f837acb0fa819d7ae9e1bd669efcf2814b45d0147c5fe98a0f4099ec78706b16600ed88da4a901f861b2789a08eb162677d6c18af2874505040dc29b32e3c3e3c22
+4081f580a00000f0ebf7a321e58a54001369357a2c9a6b4e238b69854149c82a119ec764977cb746d239901c03eaf52911d61839cafbeb3edc2974b5a08003a6745239a201f3b4240a747482a145ffeaf1f65468a913036ccdd42d0210dfab18d234b7ff9eb1196c20a7a1dd17b67b5da99417d8d6f2cc12ef48ccef69ffc49fcbe722316c96e8fee5283e2c9ed7dc9da030d24e07f9504a94741eb63f207250a8bb1ee16658be71a2dac2075481fa36f1533436ea4b3e3a5b2d013a839798e1002b8a73375c0ada4dbab6dd1e90c3e9b071358b095f9b089117d3589fe7077402cf97c276c84f07ce94fc98b23c4278134a27dcb962c00e
+4081f580a00000f0310112e614b5177c1a74ce02ba9842cd3e8cafd155c5155b34fba4b75b1659fabf9b1769f2ce47f567ee93d4c0505fb7cf177478bf19d30656c5be9b987be5f7d720f042434827cddc6b64a84eb7a7fb969d55dd5b7ab37d920df48f814fd94e8bb435622cf93a31bda911b0df4d42785cd8bc4664a16eecadfbd0a82dcc75831713699c7d0d4cce921bce986cdd9e73fc706192800811988295d26db34d07f4164405679ecf7085a9bd6ac9082eedc61a67d535da10e36b7c7e600343bcb440254234e50a9e57a769c956a86cda79ffa31304a6f6cb79b01f4ed616b7459712e316ffa7afe881e12e2c8ce903a1dd47
+4081f580a00000f0bdba18f899516f0016b0a63197fe6920ea6d9e57f6baf8433ffef0c8018a15529c37467a8384c9f7254c22dbb2d21f75abd7b8a18f859c9ef3197b47e0ff1b0f3df62393d7112e0bfd13960a0c1f43ad8f3f88b32307a68a782a26278f401d22b3c46ea2ccc25f2b8ebf92c8ff69fe23710ea8c26f8f1045bfed047f118f2a9e09d31648164e1eaafe94150bed75191bfe658f8a9c85536f6c3aadcc86abbd6996bb16278414be56d63fbc1ea5464fab5e1f9b615e4041b50162c825ad6a7f6172d6e684b561fa2c22d8fc7ede51d9c7f15bfaa04e3dcd4ab94e8facb7f5d4392c92d6c7321cd5c661d10b2a6506dfd3
+4081f580a00000f0d0dc19fee3cef24608731c2eef7288df653f903e018a7028dca7abc36d7386d98980a79a9bae6df3a8539400e0989dcdf840eff9137fc906409ac2d2f307d71c586825325a72f2710e4c2c77064ec1203aa68040fa534632bcfe129cfb38f55f6bcf5dfca07d7c439abdd61678b157e3568c869f77a330d94086992d066cebda273d50e4926f6c268bb13508568da216b99e2b2281528642d5d47aea2546a73d3c218737601b2c87c77782f2697fec0afb326b52ac0562be02859e60803de264d1f8cba50a507af57c3787f8a45cbff99affd0fadfbcbdaa08a9e676226a83ca5c089d31d4da138b8d778e2004e22f2b
+4081f580a00000f064e20a05b60268b84fd90905dcdaaed45ff3e274d3e44f47f544e8c2395c155c8183b8607267cf78c3feea3c3faf95b0f30133287e7558f3277d33df54552e30e8dc8b4991ecaf266dc0018f41fbed63b8960c1290ee81910151db3b4dae23e5b50b1f59341f498ea3dc0bfadd9ef103fb41b437ae9ba5e27a71c1aa63595143a63ba745551f0d5166f874960d06c7ab38a6b95fb599c658e001764ceed4b405217db459fabd843440a56d50123aca057f3c650e5bbee840553244ee338f4097291a27ec56242346e31c2775279ebbaf3e3a74d7abfbea311fdccad7b0bd3e3c6165c3571a3bfe76d40c050f4c6fff54
+4081f580a00000f00c824dd9b8c256a68b814b9ce9d7567c76092c6d931578a4c5bf0e9bbd6350b17f933b707e427cc65a62732e9f028ab3af5acef4226b98c28c5b0e6afdc1ea4f035dbd83eaa2924f67812a1ff2c617826322b8e188aa5726817aac46333f2601309b486c404261bfa58d3dedab894e571f43fca9ad13a1dfe7b386edef68a3ab3adfc6d4edc4c1f6d7565822c4c747e3cb0b51f3cd7008d6a4d9ba97c78a43beba1cdc0cf0cbec0cfdfc6183cdf6b8c8908ab0769d6c2ea8e461abe662fe928e199bc686cd7ee86fcc694f8b56604f01e1e9259b65326d0db96426a9ee4ed14fe4011ce30e6f7bc20e9e65dceee7d157
+4081f580a00000f0daff3c40594b24bdeafdf5445e7567452efa26b99a19c4bb31680a0ea3a36b67bfaede9d34f7bbd9b9185ffb2b2efa724344b06a433e13a5a6a3be04e974921cca933201fab46a0730ffdc68ec29384506f06f86235afd442602b32fb77ddadd2b4dd92fbc0f42e0c01fceb9396a5b673d373061668c991170265672a3e8cc83444295401db9574cbc4181a15a041e511031c0cdaf979e0ea4cd8b39196d58f5f328e2ce5e578e6064f51c96474d70b23f3d76641b7bfd03d8013f36b9c9393d24a21abe5e1d1d31e6eb1c3868c5d2fc062d7b87c5def3fa380453626037c400b7a4870e609ab4144e693dfbc6a0d21e
+4081f580a00000f0b405385421a092a9f5d19e5b88a29197b11db2a3e10242f35ab23dd8a28e9b88216818282492f62ead40a772477c7beae0b462404eeae93bfb2ac242154b07bd91766bdf8640bd4beecb85295843fbd8a9a01181070ed4378c8c680cd31d84b42c096bd7627f74c1befbd90667835f4a435d6919a10670ba582f108fbf069782d52be7a683bdaf8b3916bc70a96e8a9a808d015276b99e802d4a52c2b034c7fb8a2e0aee7f636348aca23f6132e166525f9268f8d81541754919c1ab1db023840eec9151d7313f018f7976b7f0b5d660cf7cdc9ab60d94a69dfb48c2b6b142e7e7494bbed646ee19fb76e1dbc5377c92
+4081f580a00000f041825a53170da9849918a42f32ce99a1e5d311a6fed605038f03c8cbdbe0f5ec0a979c1dbe865a6a9b715626d74c317aba0ff3f39d00f1432f7b04867891239a70503c6061d34f299dcf825ad43060696bbaf5bcf028c2bf7e7157ff240221c0393644b6bc37fb840ee2b781c4bd4134e0fbf17e31f9e5e03f49c31f47117369cc1da0fcc71d52cc108c94af316a03d0e3ea72c0e67ec08dd45984e1590135c6e40a80e628d2d40f313249a9aaf14bbd27695e9c536274936a40e8d56674d0d27b10d78a575bbb142679e67153edeb89b527bc17d1df6d13d36ce033b801ef367adc24f269ad6924b4f00090b7c5ca4f
+4081f580a00000f052ad327d9de9ad2533ae1e6edc44df424a98320c6aae0ad171b8a8cc9e60ad562e0aec48eacebb362cb54867d8eafa9c76701d6c97c25ee38751e1e05a4ecb50026497fbaaf66de253b2e0606dd1825c24054648114ca643d44400114ce7d7e42e754da72410d958407eae284e0700ae1dceb7ede3aaae57e916304181939f9410fb3f636b7b54548b5d1001e2e3a7545eabf969c294fecf85237a0afdd6b94becd2e22ca0f4f2a5c55e20a944fb20e1e7b7d536ba65b351bc010dee5f32962fb9bcc7c6aa8a6194c9960057f87c8c9b5477af2f70a3b06515c8b3655e91e4c759e0d0fb132db1c53b3b1e94e6c24d60
+4081f580a00000f0f85e27c79cf1f16f2c8b11d5c615b714d4a2522a7c09d90ed8558e482226633430e61e5cd3ffb2bda1a6a4a5b3065a5be551fc75d9663600628a43b36e73a7491a3f5b777eefcd7b5710fe1a1c5c3a85a18000687badcf92d4c8fd08dcab819eb94e920353e477048ed1098492a6545887f8d64cddefc85c2a904408a934005eab87232eba6f7568123c7182e2950c9ca7d04f983e25decd4ebc218ae89825af278c8ea9f35e2173816c07cdf8cccab4b1fe9dacb894c1e2d0540fd33ed236b10d36a8089aee1dcf77ca51190f4e0e696113778bd44cabc4592811c10d0e5bc71c5b97d847e0c21a66993a01cdfa1fc6
+4081f580a00000f060b696cfeb078b1b7fe8a126b9b15fc43866574753a0ffcc48fd4da68109774177693ec9a5cb96adc3433f38009316ee74aff26cb197c88586bcdb2c0022a31e19c4118e4f9e6ac2465990e438c3c003dd6b4028a4dc9df74ae7049c456a20b59560aed82dad992142b20f4058810db4671b3616956577c0c4bd8743a1c3b7fd6887d934093e90fd92edfb6ee8a655185cc6b9e1f0f1975374d3e5d0aa1e532ad7234d6643d6865e9eeea77e132dcb84a6f092d37324e98f509b4a8bd331c301702dac06f1589a8aff64689f7385c77ea801584bee9b32654ef7e27b6d2e55fa6bec6d7556039a3e81a7964c7820e7d1
+4081f580a00000f00422cc400b87060db70202e7352006d93d88ebb12b195ed0cee01f7b6f24e6aeee816a30b767b6f64b493c5c51eb0113dd4980b95dd8814e76c24a8c1e6742e0eaeccb45b4ecd1a68877115ab9a3a9cc72b2b2fb0e28f18dc12ef230e08ee41bdf6b0a0159cdf35761199ddc03935d59dd4614f724e333e2ce4c74a28ae27a5ccf3bff9c7e1f2bfb8eaf39f9bddddc15eb8a9e5f953d4fbf5b8eee92f0c86bf13b3a75f68d87e90a0540a259fb4452acfc817d2382e493bf87067876ffdfcc042115c08a3895907f536de521e92d2006c9fd26bff57b623523dde672e2f6d95a2352c81c1fd2f6ea019cf684f361aafe
+4081f580a00000f0e415aa640ddeae949c9a0c38e3b83eb104ad127868958d5f9026eafb641b95547641aa879bb96fdabc9013baf8983a0ca62ffafac19932385ce42c86fde02432f0269f33406cb82a937f4522c5479d5b939f11fdaff8718bd5b0a5274092022c4dc6e2ccab3781efc9ccee6162cae94e98f98436ccb66419c122f59b7961dc6b2bfbeeb0a0736f305cf1e201bb42a29c533be793b036f80116147784f6b6507d71b4c13178bec0b308991102b6726a98d45eaceb51a8b5a2cdb46d8b93b285106be6d5df10589819fa098201d82f687dfe94acf6ce3d97da6e17f474dfd64db1f6b4d3f8e12c0b01418e5617d6330472
+4081f580a00000f0c3a6e2a92c49d61c06ed5e66e564d360e16a81dd9342bb0e9ad00e53b68809ec060e2aef6778fd4106b1ef0ac904c466ddba2b483bbb995609407344e4ceb54522ffd0afe2a0c23d49d9d4c8f6f41fa5224527e0fa6f3de11379655692664cfde699061daa428d4fa70038011a8453a5f218744639f943138fdf07a90f23c4a2d00f58036439407b31073598186688d088967c7bdbe877f48158983d7489c59108bedaa26db52c3f30765e40fb0ea24a553ff3963287bd0c84b9000d85b2cfacd54db61b0ea6e2fd54e8e63bbfaf610a1d4d4eb3757f288fb35143898a0a9db2cd4a6802bef4eddfd8b38baf479f841f
+4081f580a00000f0672a6e629c3a19cba99a8e37cf9b0d488a9212067d3db0339161aaec17d05f49503181a31af0dd3807f603c0eb79569febcad0ef4225248188fc98fbf234a1e785d69289227e805313a2221271b3a5f1a66e2acb754e3ea4d8dd50d3ab991d005ab1232d02dcefd53e9ae418ae89bdd6c1d4cffe126c48f8ee9b142bf3c421b2e8d123dda62a3fb428429abfe9002c3d297d556ed43403c67bbfa16b0689701e42f6ea3c47c82a5271ce029a2adfe9c058117341db7e1e21e05ae470188cea703bf041f726e12d325d9052abad86485e1dfda4b3917b1159875b1fbeefaf3e5d50d8972733e2b25491c6d03df5008efe
+4081f580a00000f023b996c4dd5bb9173d06ea82c8afbd71c9c92f27ffcfb863f460ad5ba8082cf90112b63fad97edd60dc5214b812893a8c0729068ddad0e56be59e92a9f2bb89bf0408a6ce63647d6cb7bc5babe8fde927524555df19189c0361a5f1665f6745291ee726d4e4b8db2d92f011c9cb43dd5ecf2b4ff80881f6b1ba6d90569e59f1efaac8353ef9b0b88d7f3c6612748e3980d8a8eb33c3a86dc014b448585a96d3ba9deeb88a894cc4dd34e3b4cb54d714bae44b46cb756898978621f6cfc04dbbb722a473c997fd0be1a1d20a939a59f9668e733f6e484f785a8a8d99acf1e66bdbce0c1ee9b17993ab3672a4fe4e48cf3
+4081f580a00000f0cce78bb387af4d67f956525fbb50348ea4e7054b2df3103cc58ee354a834be38c31543c3e85dbb7c24696091f1dbd76a7e16750469b56527b4c8f98128cc68515357c3c547d4ff30162137e1b0b1e90116327e571183a351bc01f31d0469f423429469dd8f1985e2f5be9d8d956cfd79425de3952df33e4586013f6a9c0d849a0d5e9715c671e40e24b7ea172b95b4d89f506e69fc60b388a02d77124609df46498a02ce8274777577be7d004533c57294dd4001fe8f6b85d644046d236308d3b97df384c204bb5bd1763dc64962a14c5866ebd511130222fd07dc8b6506daec6f3c2874b76291cfc68175ca9f3ade6b
+4081f580a00000f01a040b76d48a739e5f32f4286833477d9c3524e68817709feed112781ca13576fe70d05ec1c4a1e604cd3c442ea0b695a0108d066abb8cbcba7e14a00e9af68f5d357101504286483a91b7620192c4302f59f3f7dcdf7d13da2d93bcac1bbd690647096733022e8f904d1300d581184c9534239aaabe558be592bbe89cd3e08f28100ef6aacb6483f3f97d0b3cc71a0b0354bd3094c8766035dbdf54fd7aac1cf2ae15e6ddd28eba9ea950d419460b535e980d6765efd5b55086884c025be3443d6b8a03592d63de366cdbb5540c85e70aa01afdb095e8b11f1ca595ec83f808f8dbf85aa28bf4f98a00176ccab8bfce
+4081f580a00000f049489a5066ac357736c122f6ac06db34b1f40c696738bbcd60822ac84aeba24da326879c313ca007cb57399c80a0e4d0ed1519159ece17c2c6d7943836e637075bce16badff29a8b4cba357a1c445d8ebc12d73dcb1c4c0c9f6dc17d23c20ef8638285eb93c36ebf228e5920a7d42d00dd13b0e9698646393e2efaffb26d6e9b6a03b373aa44bf8fd90733200051d652c0232d354920738abffcf2d79902b9104d7d00bcd579c42eda7ddda644cc240abdc2fa9e75fc62f4536468ec6b7c4243c918c212fe277ab31f62412baf578834573d9dc04959641683e18de79926784a639249c8d13c8ae0f594354b845383ee
+4081f580a00000f035465b6aee5cbd7fb09b52b512bd026c0740a58e7bbd9b85c5ffc19c15a3e0e99949ddb1c0059a7dad4e24d29fa75bf8d1f96afdf6d7d154453087a2f99b8289262134347d21a8c9fac4a4cdaa4c00ff1463cbee89b2b006d206b4e7a24b98eaae5c82b29c260f7e8f0533e1a06681b274c46d1a359ea07534833977626511a17478de9b085a3102deaf2569753264b06d20072dd7500649c2406a4cea1e1e77b22e61335729e71bf37305d06e10731308e5cabab8db1be7a8ef5e105cc479d5c26221c3d007b37091648fb4b378ce35ac6ccc5ed066ea472e6555cc6f1820dc1b1c63632e0139c4378f41d167a8b178
+4081f580a00000f0de8ffaae77dfb35608f602d8ae9d51490e4e1ad66f0709f79263054a24f28b60a0dad7c8f3c5c145e2f5ac5741e6c0d7199c803ce1b35dc40d41f06a69f2503807d413edae03da4c370806b2735bff15369d46ad994f87ed03fce7a8b354e44c6fb91d5cd1b0b00dd0a18a6224c5165773491ebf678c6c7b229637d7252216c13f36f1f4a058d3b4ffe5222582d3ae175ad3edd78404135fc69fe0ac12ce2890719437af56b5b232ea714f1dcd61271dbb9384ff89a33701ae5cabe1d79e2c234784c15530174139e0863efb1923f175daa7cb0f9eb2680f5318b9f2d9a2a7abb733ed28fcc8b211c8da01fc62b7d9d4
+4081f580a00000f052fdb5285f7650e23f4c5956ad75eb4ee6a500cea9cc6e1feddf954705cd99e3b3cb52c995ef8caa27775bff848cc45738c254f6be638f6c425292e48f18121822b657583d9f4d96d4b1b2a760c84a3a58e38d2ee77c538ff3ae442c7a0256911cd225c36624c03d655697ba31119f752df929cf19cfdebda1c0d27a066ba374b2dcb88c0a2a0fe70c616c7b5ffe4c1d7ce2e63b55bf17aaaf624217319d2d497fb046fca56a73b6c011757357ad2c0316a6eaeb66f9470e7a2b74ae4151dd3b5db7e54a772bd13ec55a623000c4b94509943d8f609266faafeb40143599b593ecc5aefc4f9d4d467756c42300457156
+4081f580a00000f02436a3165eadcfd9ede4f3331a63918bc6f4703653a1453f54be0170485b45631b662919509bb59722664d6901193c464914485aad142e5a9ec8707df96270fdd308393708bff9bd2dcc7fdfa2017301748c681236144f7bca5008ce8e3b71071358bc84b1588c9a9133a1040409e6a89e3745c910446aa2eadb9b50f1b085ec31abb6e04a5fee18290370cefa73646a70fc76d1b5f4c901b9a835ed006e512a757c9c40c8c921bb6dbb1ec057d4513917e60da30ecfa939e87c6fee819302a053e03ae4b49c7b76c661c0dffcb64983214e1dd9f32c6fe98f0c194d4437e6ebf34d8a07e014561a89a7eb98302574b6
+4081f580a00000f0f74ab05885b6726ba4ebeb61590481a46da51c6ae5e050ad309397df530ce0054b8d9708e5d68f0c83626f6c505cbb80b99aec7f9baa120c32afe0bb89a2c7d0667ed4a67675b357a35edfdee5fa20d96ce70d61d437eec5deafe7ecf24a46f76800a5c403252af688f15d7011caf62fc012562acd5360ddb2e56301a57ebff0f7f215122264262b09afa23317f76149314228e1261404b30b7aba32e7a5aada9c35167db13bcca57834c0ec58643e24a61b8bc978384153a30a7ec57a04c4d5cb53ff6b1b59ae65546e5da4485322921d675e5eb5d0c9e4cdef9da586bc867ccec3596e94b64dae73f36fa971ed4b83
+4081f580a00000f079877d5f560aa5beec03c64b11956c96365c349829c2ea5528873df68a988b0241de63199d03616ab5054bf741fdfdec21d1c915748d7c1750c884ceb3dc638fbe1b8934166d48d1ff51f3cd7f8533c86781ccb0afadd155dcb7bf3fc7d0f9625f845be18cd51c7c0fefab0f337452c90a25428e92afd4e4a250d000046b84fc6280be2a612bbb87e0e11242c6ac6234c5003ea6337200bfac8e96ef8143675e170d334b4a63e80723badf7f5765e196f9849a3432fc8a495f0622de0780826e2e8df5e581f04076a26a2e0139e7eb3eb8c9b154a4c088977d7f27688573a4180317402ebb179fa89799155fb12d7073
+4081f580a00000f036268a3f2d70ee379dbcdec5a5b903779fb3dfdaddff267f6231083e484cc62c68d01e1d282287d32da10a65706eff8a3d7bdcd89b6c5a5faeb0b7461bd7cc21be7b7441b2689984a0268fd0b60961432c96627d5aed1fdf52ebe999eedd08475832de089c12e4b51acc56bcc430ae5de47e4cc978627ab0c6bb32e1b8c80f8989e0f9929c1d7d91fe906436f9d23a3653249967e6bbad14338ad012f2f4ca0f4ae53d14eb66d70b6697cd5e6a16cee2bf2d9afcd3295abe870d4986aacdbfafeee2e2db2ed436252942476a794b0f49029a149a51504b0cebe9216cb22d3e56b35e17dacc3a8d200609aa5fb4822ccf
+4081f580a00000f08cccab8c17bc199cbb02c68216938938a9f226dac7330b56472f398a8d5d6137280b02c01eab31642dec1aff0d14a2b6db2222e81b02a2c28e3149ade71b7b1fc9ee78a441cb4c12c108d3caad9ec36b2593daaf3ce0eccd999e191a528736edebaa223c9a61d3296af3ae6351e719d6951495010afe0b7d2a147b146f47a48965bba3978783518ab3c1f6bad6caf3476babbe0f98582b6fcde48a555c04179b695c7dfafc9047425645288776f200a3047cb35d20800ffac70071a81518d0d1823cb60eb6d365bc11c469b4f2e2d811a619d52f291df1b93f8ca6cc9824bacc36867e1521fabcbeed40c3d47a554846
+4081f580a00000f0c4c4605358cd72284621df8131233af4fdad5feba669b77a895a2e9c329d69f4397e0c9be650b1042cc6e4226af7e58d54bdc505b9f7bfc5c1891328e19ad71cbdbacf0b76ba5ffa7e2fe5cb2987499afadabc21b8a7f44dfca05013f2a5fd274d910437dd7881b12dc329e95840cb5e38e37558967d0cf9f57354ab92f16747600353e1c2a456a5723203ddcb2100ada71acc18303dcf565f88d819120a450b2e71be06cac9b6ae6021d9762b6b7a0703c2cee1f0780adf958290e104f7c582b47c849ca1a807568004e1e2ae68d3b9fc6e3d3bb1f2a8f3ca5d47ec86c0d57f2cc28b235fdfeb18fe56872d44568a97
+4081f580a00000f0420090043996d61a218f8ce776ebd88b5d692a4614c20fe16ac38a1a85b8a1fd7ce61b8362bd410781d59b05403d34c311df12c9fa2adfdf1f34c3a8af0d79d54a8440adddf9b04a281f83aa8e640a2cf4b5dc80a633cf3cf00f8fad924ecd4fa21550310a723456f20a0106271ab76eca5efa209009a552b0c1a61ab7f502aab83d519b64583c5b526c4a520e3fb0b7c5613b6e25f21287b135b39477431ded1a702718b88d502fa47637710534d348f5aa5f0726ce189e4efd5e56c547409076e28b9111445f8a19d998028cd707b7d21bcef7ade923c4d3bf77aa6a1937e00ff0b61c624df90bb8157603d0932f96
+4081f580a00000f01f7024acbcb056526fbb09d58c053d21a51f26f70f9316ec90b70a70113437d1498386173dac18e2da2dc395929be3d316e0bba0826bf80c255d5ec5fee11d3f6974b314ea6d528994849088defd2d60a0e573da2ec33e4297e6cdb37cd87980ac2dfd6e70487f401f9127fdc2d8a085648f602a6b0085f1eb0fe4d1a7273e693cbd2faf2a7534bbf18f83946fbbe001ff9610506b8d42f23513ab335e85fcfd8a7ff26fac22b0a963ef8ed5b1e82ba7a2e6179438081eaf43869ee2888216e56e58723d0efbd1864401366bbf74667fc18d75470a82cbfd8a6c6f0d49bc995f652e0daebeb0e488b8bc7df250401146
+4081f580a00000f0112414e066c1037943f0dabbb9fb469b253804b4b8f11a8826cc3a154caf4264819b20abc7e2917908940616fe3fb78cec3b07195680f7be89c5525bc1d387b5039bbcd3bfff668a75b2db5aeca0fd78ebe52d5a1c12f8c863e352716684a891ad9bc27795b279d96a9b72a395672a843b5c2734e17c7b398f8ccd33dd4658d8a04e3ac920ee5c1ff209f87c2b513ace2f94b42f41050ae289ae5707b7bbf95a957e780f99d6e4993336be6b4772d169351b1d2a85975602fd4613ec214c0843a8135e61003bb594f6b40920e3a9e623b72b0e8392faececf54c74c8f2871e5ff0beb8870236aaf684633b8f5a4138b8
+4081f580a00000f03691b3646ec230a33efff14c942006d61bbb774eae7a12a19cf1b28c453c88e7d4dc6a91ed70af582854d7a772d73cc0fbde1d0f69e31bf42559ecc5818b5cc3f60abfcf4669b11a0d21a438e49a8412a4967f5a3d9a2b2c96c5e6a4658c2b99f07e6a3a260f9212525c4f3b86ad52b5e10d7db1aab5a6b6deeaa2d527fd0a5625a624e1c01ced1acc9cce3a7a1bce33ba0b1569e752bcd6830cf6facdfb1e5e620a0057e6623dbf4ce352779412b41d8b5753129e0800cebbbba879cd997c5256f34105f106d5e1fde9e336cc8a873c732ecf94417791aace3b14eb2961082365fb150570c6523d48d57047b45e1b22
+4081f580a00000f083702ddf02cec8a5ce61055b48eb298fe93536138fbe6fdfb57155bf9d493624c3912015c19c72ada4ec82dcd03c50f60060fd690a247880d3b85fa6fbfca823fa333a0057fa0f9208e88a295ecc4d2baf28a08ad5fe4961ab88291eb222faee2e14f0d536a3c368a7e24ae9bcb8f3f00f62ba535475031a9e8e1a96201ad30c896e04bf4dbeb7cf5ff2bc3c58bea001b6030b597258b6e0b4557454cbfe72e14a7ceec43f84b89133b3d7458fe395070c388ea506c6f48b65aa72a8394067594f94557b93987a4b9e735efb0bf8713ed42204ab3bafbb5af15738520f6ba6b06755df9898ec34650607537931d1eca0
+4081f580a00000f0d276422e74bd7896be8dbf51faaa712f84b4a0de6ce1761fe55e94c96682234345cbad1876749ea5b456f1b7d1dd6ece765b004fe92c74c38c107fd6ea8b0a4654f86eab65f82de0812b40e20840a6376c65e968ace614ef12fc4159a2462e42d828ad0bb00d1a79026f7d911f1c5c89bce88ae0e6b12cdae4e21212f90e1f8d0a6bcb11544949d7e723d1e7bc3fd13b3a103a612ac5e47c769a3d9a3cb7fad2c3c6a3dd42746ad5c30b84fd43b1b36e43185110b4e4ccabb290540df2398f3566afa9115f70ccf5931364207c76354a34e09f54bea793a65208587cd3066c176a831505d07aeaf1425452beaf2d8edf
+4081f580a00000f0103d7e845918fca18aaf2c9e4995d31b56d192f808e681fdbd16557bf3981f28f69b9f280d6d78b4ec5bd0db79d44209684b913eeaefee2d538ff3191cd0154e4df8cc36db441b8848a2365aa8eec88f1477734660cf5aa85fdef72328bd62f2b22bcb510c5fe6d287e1c34de42d0b3d87a379aeb338860c39e22c012ca54ca09d9e74cfbea818ada68ac9a340507ce0e29f4ffd13ca752d136390942d61cc214e8868e0f6b81e06212b8f58b9eeff6b2a5e7b94e52c0b3ba3adad911cde80fffa20ad3a205ea8c8cfa8b93d214df6b88f9fb061ee5141e85814533734c1f30bc1612ce00aaa8fc96cabdd53a8d241d6
+4081f580a00000f0802a6d6ce1be57e5d881d5259d6392cfe0eb3c1665a8de37eca0f7b5b583217f33c8605a4a2ebfad3ed33b92db9c6a0cd3ee757929d7f04a27094915ea6f6405128293370292fc5bb8cd61be441dc05c4aed40d3f2b4420c42004bfa71001727de5327c4f4676764cbabb489162615a3526bd1423be29a1b5c3d255827a3b0773f7415a9c43452ab20aaa92e79451196637603826f5d750cf4ef298996e922e1f39ff94f35b434410e7178d837910599edae82a9614c551e7a08d9ab64a7527b51b762f486bbdf253748e23f155017ce244528cb1246c2cc73f3afcc3be5ae6072592c661e40c66f61090ea9c47d6dfd
+4081f580a00000f0a5ab54f9f76af355accf77c3d9a870d33150ea9986a5dd2f70ed1582045d1af59ecd03385a1571bb5bfe5f3447f46ed30cdf213a103ff6de6c563dcdc7ea8f4d1aabe8479e4c0eebde0c469551426d73bc0d388c0c29987fc29b1576fc32486e6e8825d0a7fd3f28eca77efefa7e281fdc4a3dd34bb89991e70ff207795c8095e5b653ac0d998cc9946517898f63a66556d89fe73633b52f49875a99c25cc0046c4d1e7e7e5821508b557e5ad5256e6ff5badb3e2e6a0fcbe0a0be7f9b192ea9d92f90e7ecf858feda11a2fb45d5b49fe9df3ccc731bbcd10875c370c3fd3b18473b0ebec225479023608812efef7068
+4081f580a00000f07602df297b9e13fa31428b8ffbb9fc1f49a7e64cf50a209148772a06aa08ee7489c3a15c48b4a424cd8e17c0a8ef32d26c285e17b5b407e695afa24161fa1380cfd9889998c39a658fafe0cee65e5eca8027ce9bf60cca0a31b36dc1cc6edf9248f808a7f94590af0d0e0f533f483c927bd6ea1975048b430dafda1b655fab564e6f3f7d021b101e30ad39778f475ba21908c09a77f441061a20c8f73c1af2d50f12d4fb88f20834b8af0d5743282cc09cbd57bde1a3ac702700c2497484e66e307fb8b101736439f7e54e9bab480348342d5c480b7909316fc4c6b77898c945c60381beaf8904450894abc4b9effdc8
+4081f580a00000f0a0759331a6cecd951c579cad3e415237c20d62765876851edab2d7973b8a21811d3276379f0c3ffa443e4715f54ccebea5e8ff53efd3830b6ca36526a16258e7561c5c92988f0de966636e6b869eed675755bcb4fb55b2b62d162a90ace5e1461b3d20c35ab78dc596b34a88784505b212883a7f74b8740c9a3f76d2cf5f199eed1abfa356795904858204691cf17c7210d3d98b465a1cd1ac1642492cc3c0a3384f645540ebb3cb9a908d57f35928b0c52bdf5b2166f80d6b1bef6901a54b2ad8958cd393a2321a6af28b869846ba606106cd5826b6edf0baab31a8c98fd93e67ca40aaa7e52eb45b4416664d1120a5
+4081f580a00000f024d282faa0f9613aa7ba0b700e68b367cccba0b0eb4c595e4d6ec6dc7a976ffce4cc9e61660a3f80c512d46ad9c1349696f1efd30e8660c4c1b79e937080257569cd9615491ef37ac42b600d23c91aa076e605f3fb267b3a59b7a8586930d31045bbe180b482436412b91529d02076d3f0b19b746e11c29997fa877d249acaf04e008b368f6f497c0283e30e3460285f8ac9c193c89303e9dc3238e8d902662f355caeff9265a35316034c5b140c51ae02d927457b522bb8d7c464e7734696bde102a504189ce8fe3e17a20fa9219873ccee24e8e70ad34a6290ca0793cd56e25376a876e8e7c030ffd3b73d280130f8
+4081f580a00000f070bfdf9c8367944d8f0005daff38dff583df7ba14274c99aeb1cad0b710b18147eaf7125271b2e0e6c0b845fb93faafa710c5c56c0ede8a02c46b3cd0c35ec01a50b0b1d564aacd8b8d9c066b096dc2a9e1dad02193f0bb5621463e1c6e8448a5d3afb219e5b65d3defa6b8e385f12f82a072e4000d2dbf7c15da76b48aaba758ae357125a531b4b2dfbbc034ce2c8920e967e5337801b8ebdb99b12f3434aabfec34b6e85a6bca8004c4a4ffd0a85531efdccfe131f38672a61e91d003385f022ba012f4af1a4d9a4c4aee5924787ddbabcd79fd30814569e5d569e4974f8db3ede5cd536b9890afb6dcb24d2d93f72
+4081f580a00000f0b522153c2731e10a0e3a90a3ef5e4a20389cb1004cf9c2dd2b9dc1b81ada1d8b211d6c1796899e07c5039a5b89708ff6978026cd67d68617a3fed1d0c6d11949b3b9e82fbd13f8d3219fd3a57f56ffb8440a0821da3974321d4e06050709829a5a56e4374bffa0af4132a3b28cc784e5585f70b911c3156e5c2a4dd60d61eb3e135eb779d09f992365c64d6637437e3292eb04b01c32bd545b2199d13161dbb3d14eb2131c1a720cc66f4282a6467e24569e2c3c9f40391a7d3cef31b2dcb75c2f6d737b8bb59323fa17b893391f5b445b44850eda5a627a8c6fd3051fdde76c6fa95af8b3bd1e551f2d0d7f03a904e9
+4081f580a00000f0088b29980d51ea277c99562546f41440478a797b4fc81a012d203e6497015d07bffacdd168b6fec4f7b4dcce6686b491c044752b931d155d195be5f98398d33ce6af400d01b2987bcc7a260238b6ec2e809a508daf18a5a6eb56dc7aebcea494c80c619b78b45fd78fabc2c9e2072a9ea2d096508aa2788c667dcf919a1b39a879eb5ba9db880654b7876810a8c29d11eb1a32b18ac09fb067b707eaa4b2e8c4d904fdd27ba121b1d3475757af2bd85d9b6ab660526e1ebcf06ab884b463a1c855a124debe990c776af197ebb47d6ab91aceefe687c3b8d85c78f696aa18f3ff6088eb48f8b2de31657a88e166134778
+4081f580a00000f074bc0cc29524f2d027b6045d81726dfee92eeefb96f07102eabc60d7fe0772d7cffdb1ee368c2c56c48199a8c5cd1c218c8a350bcaa3bf1273b9c2928e42a3675cdff7dad57916c9c2dd39836da4fe710cacc53ce8ff76c11f64f4f54cef46af22c629b488dafdcc00c52e2988315c0ad075845d8a8b0f24ce031afa3d89aa7a93de89a51689361d9083b96884ca21fd7166280044af5273e13a397af4e1c5753846720713648a2d2d48a853af8b6a6e3096cf4c0fe5f5e06442c0ce9d3a320f04f4c1fcddc1d0e9fa5219cd9e0fbc97b783735181e0b08ffe43eca7a3aca859b8d0281b75dd97b461a9801ba010fd73
+4081f580a00000f00d7dca4ce95185d8419083281533815d85b460b9c97631c15f5d59685bbe5b4eebbf5dd23d00ae3a65d752ae1e3b423af61d3c686593236654ff0b9f9f3c152863a7b9fe4cda3a4f04cb0237773d7ac9996a86dbbfb5ccea757c3c20f75b950ac67247af0f2046e8a0245d5412ae7d07dc049afb3e0a593357783a4dc9954a0ec668f2974b14383ee06340e001e6ac6dacba6579d90b72a48a14b2bd6857731f7919a1a36f7e5a82dc63686a6b4df6535892ff4dc11ff43de28ae6499ffb7ef360ef860966734f911000362be3ed9ebad6fa621268645562c1f319e69ac119f9c47f33f31a6673e9f148b764c15ae04d
+4081f580a00000f08f32386fdb705103438f0ee9f9cfeb2965a0105bfeaf148ff123b673a47331ef1b442ff55eaa54884276342a9b46560313c4661c214c4638aca8b1f953293352a1edc1722c1607e708e0ab625b7c037479940fda2146b3c54a0b7faf9acef1c25468cd1f7c8cc593cfd60e70047a9af679bf17d7a63d8bea8312aaf08abc99dbd65de2c0bdc4d31e6e1c8c130c7356e3f3fad8ec893fbedb00b53f0dd5da15d11dfdf9efbf26ea4c8cae22e91aa2fcde3fc1f97cade5a33dac26683d8548e7522396b46926d89ae5f118127c45c028c64f9edc2e27fe9593afcdd854e1bc4d6318f557b6502a27291d31e3b6dd56ebd7
+4081f580a00000f0d7cbfb1b41becc789fcac5b06dede3c7fd52bfaaa74b21666a900db76be08d4d7243d92b4226be72129d7b97a73c28bdf34ee19556f209941c327b87dc0c06af09b62102599d011db34f964c687762fdbf2ef857fb651569e8f41a026f8b8657ebfad687b5db5a417d6070add42c019a64b64858c19c462370026799b6cbb7a437ad005e7287af32525ed61b8bcdab5f94f7a970dc9cd65d97f3eec113436142007a5be7452335067c581e2abaf180c876943a5539c5333e177ed9f81620b09b68ae222e5a92a949b46894db9a17f272cd0de9db3e33fceb452d89517288f9b0647e6e5ea31e39c1a41b5d24afc09137
+4081f580a00000f0818c7f7d008935659cf1813b77bdf2a29986c6631eaad02aaeeef2a148c07be45b2d2fa0ca4137481db325040cfbfe2eb176554b8e9e9c3285b348b3b1aa58c3b9c91f7c24d18ec500acdc84c16501b55a1e4f15507ba178909c26bd169863b94617edd8965432f276bb38ad6ca2f32af19298e3ce3dc062ac59e57687ffdf53963ca17b28701cdc96c6f9d504ed3aa2dd431dcfe1e638da76bd79935789ce38f9450a74478308a3e5ed400bdefbef1a62cdc795e3d8a394165fd97bcfc806dc1bb46b09d0ed99dd81384ed5187541b2394842a252cc165b4073df72cf6a53f10dfdc287d223a57af893a9a272a18c70
+4081f580a00000f09bbcaa8ca9dd09781d9bd781e827661ef8e28581cc42e31ed4e3fb97e570feb241b3d67a9bc98db31aa289bd6280cfc3a644b50c963b5870679be268668ac1517adab4b1352551730861aa5664128c5e5851ac289743cbf2674919b635708e96e99a45a63bdcb0170b06b2d14d200cb13da136176b590f0ff7e88ff92859c1e6782be62114ae44ee659222f868bf7547485e71598cb4d6109d3209b6715c0e6e314c2863d9c97b19390068d837235314c233ba5cd13a8c82363c6f21375241212640a639c6e0f03e75c2125b76444bb62b0566144b38abc85f9aa09c526b4c5909c16bce24892287520744d6b399e45a
+4081f580a00000f028d64a6b73bd589fcce7ce230915551aa476deeb620a08ee757748effe5c7315260d0dd66155414d4b7137ceca1f20c8d00b15ca62a7dcfee233e22f5d4c971c98575125fa17b407048460d68b6b1d960545caf6725a6e9648cc8744ec04ee3a1dc71773aec667881e31facb339d15552378545f0b20ad9a2367098724af6a624b48d131281c58d2142aa71be267b1713cd74b20c114ee8fa0db61c671b2a69a468c8c90af383422049d344b8922f99a9b5c4dac80e5cd35333696e12754fae4d07fc85d0eb9e01a422e42742227e99763280ad2be34e77e351697db17d7f48d3070886b209ac7ba89bccc47adfa7ee3
+4081f580a00000f060870202f5d87f14402d6ad781cc3bd5b46e171cd6b8616a92a5edd1c60fdd7193000ff4663b40993b1abb2ed9d8975f4dd5381235cd05d863c2af9a5c5f87a248f6530c108796d3fb3f2ab75c5a0eb751f0189269bb75690fe2b0f53de736c81a49c235d7b29d31c6dcb2ff9947bf02a9de1bf454497c823e80f1cabf0e3cf814df47c0bebbf7822802e064acc94d5e193d702c8875821f9b77c73404be3e673662ed3a3dbb06aff188ef7de408a13a021392671a0224a8cbef46df2aa30de34419f0edaf3d700e99e77b66b3e0273298ebdcc6cf401fd6f32a5da964c1767eb5ed8c1b85775574ce2197c8cda1c4c5
+4081f580a00000f048d8c7dfaa98cfa14b5f9923e4f5eceee576fee8bc8604e356ad965953a623f1b1794a76a474257063f4504cb23e7e63d31e4100c7fe98f3e315ac57f74874157038f54f79d3219a30c40b2ea480e53aa4371921f884078a2118145438a72501d011fc08b2e564ec84b9430563c1a17eddc20102eb6061048fadc9b3c3bd2cda186b41f8b4142fc240bfe16fb5dbd18c4bfc14fc46400813727f8d92028befe1d9396c8ac47112af99fa3f9cd3eb832f5ef5b1739c9f5b5f4328f075b30fcea0f1a236b9a1a67bd79c46d9dce9a2a94ad2f1e8a9b2a2cad65a81b0e75ed9f4d77c6f987553fd207438f2c49dbb58fe15
+4081f580a00000f090cce5a2ab6954755aeadb6b94be438c3dcd078c012d1a4716230fc6d1f833b8b9bb3101003748d7e5df3c943af961f028457afc2e8e570eab33ce4e0ed08e88a8072d7370b1ed3512a96ebaa78625b0d0b03ecb9792f07866795b330df1646412c2b6a90b9d4b5b856a6969368fe99999f838a755c9aa04cf38602e69f5f13c546e904a0d247e5a0425fb13cd22b5a1a14187dee225ddb2548a19e3b521deb2230c2166b37f812a9d95a60243bdca10648c83be63fa78e05497693dc9a9d68dff2733e81a4e66c95205a81cc111af63c47d3d8ed6f7c5a3038b363297a1bfac883f208f4e249b9aa90e698cb129d1c2
+4081f580a00000f0207f5e7bd82453ad4e6d75e597739a024b57519031d3fe8a9193a1ae97a9214cc738182d79dac4d774ad873438bef4b8699851fa26c7417ced000bd45b208a9e413ccae4d4ecd77651f73006bca4384b4d649f5fcccbffa15dbd23c92ec2f70ffc2b0f98512895fdd5543c1572c919e3579b29696f9ad502b0988dc820d4afb77fe5a945528244b98c0b7dce330368c8c561ee74c038af9f00d78a27521c4b0635b0f568ec2520e392b42e43d97a398893093ac011f7c28d0c9138a38a4d3b1dc084f842b567c29e802719a36388c044509a817ad73e0f48831f6214c90e8258337ad37861e1cfbb8034126b414e4c0e
+4081f580a00000f0adc8985a0c335845d273dce5eb6f925cd28fb1472041fbb69162d12c54d8b8fcb660c14fec63d413a233080b234d1deda7ec01e6754b8f0eb5a6b9cbdb98879ab24775c11227e836ec407338f62174d9673809d61210bc70f24044ed858ac2aa289540f57fad247583d5418a6f450f0565f54ea0259271978a866d4cd7d80b2584527c2b931fde7f2556040859e116bc37555975e024cbdb3d4d5d71897031a94515c46437bd92e2fc84365273b2ef0449d515a35b4a2dbfe5899c28396e7c2d3ec3dbbfa6c3a1c95339278916028ed4c121fb4f90804619a43680dd0c9dc3dcec1aba6ff3de720d5431c3f0d3f2fe8c
+4081f580a00000f0784fd880a3641c21eeed7724162853ff9aa53a64f75ea843565d69259bbfe9b58a33c12c5bb42fe1f82e820679cb7cecb85d49843bf4bd4136048b14fc02cd7a64e34ed2ebc23e701fdadb2a641736a7e6187da5d9407d52df0de9d72852c5e7b25de723b6316210c934b844ba202510a91b70d10a2f47ad1ff954c0c38576103551f8e86ef4ed371eab649900454ede0adde94e0668de301789b4d8bc103e3674060595a073b5b68af075cd6b0f4cab8ca0cb96c289fa0375bafc824ee3959fcee34594654766d92607d544c0d3537345ec13a8057e34f5438d123ba5e3ec61fada62177733efa7e79dbc6cf1f466a7
+4081f580a00000f0362285457738076f5a161972cb602337c5a1fd7a3a394dde006531826711b952f1cfb77ff0a6b8a6f695f64cfb6bc97dd45d460b3dbacb5d8a602317c6342bb241efd7196ca24cf56635d81aa59078ad4f5afbc28928fe2a26b0d62ebdf016bb06bb86794f9023f3de977260cd854276cc4544ba5f944083f148bcad6b788e874c58c982dccd9090f5147eded175226675e96973b308ba0eb5991cef4a5dce3061cc1047ce8d5113f8fe0de1cbfc6db0294b8efdfe5de18235ae6e37c391fcb4b663ec0d34a8f783a3fc00b4896cfc425846b2b3d29abf54644567b7bc46bacbbb157c46f26acb9bf2c2c4ecd94c7c0b
+4081f580a00000f0d38a27b783d00e7b527d5d58e26b419d10ebe7e47935455b6437cd9b0e10e9ec958b97a92d68a971cb254d7e974d0d652a166b19cb5f9060d2d5dde531084741588e1d4b80adf670ebb3c216c9b01b08f28e3b03c69230571b511c072bafea1af99766f3ba6ea2001010cfa06f8aa8096cb6885c126275fd6e3af75bb77ee9510c908b19b2bdb802344ca6c9d5bb475250da0b6e77ac9daaf954a24fc234de85d70088a41a55c2c4a1662657288ed83f7067669958e40221905bb6c70a0fa1d7f5beb40b8072191394e43a9cceea5d3bc2665be199eb54e97ec56a085fc1b225aaaf6010535f822f83dc4eeee1dca2c6
+4081f580a00000f07d08f1f597c2363568ac2052db51f95f2ca68b7944381ded31b0b4927f97aae440609bdb4b69e3ca38aa10a4548f2173e3e5819e79e7ee0f1ff487f9e436ab498259781b6d2e119e381703c21ed71b77d9768c7f5b9455b18744804f9c70021730b0b50848458d39fd3633b3ba10572be1ad0e93e79bebda730b50f02e27761d957046387af1c0676132f4ca4db3c23f4b5e32a034c88187dd2da8ed6c38e91449670472c28ba37001d39169a3c7388b0948427a75a3e4501dc4844f7f5a52835f1a0db68b49d1296b7046880ac76c62f8c11e664b17aa1d31b3d401022ad6a5c31ddfb68ad89f974b05b842ac218e9b
+4081f580a00000f0cedd7a92083b30f37d39f4654a299a997daa9c796bc8cc3a4b0145de84f84e0c362d410774a0a8176668d85a61dd2804b33531e6dc9658054bf495ec3f8beeb60c48e3097248ac3d9d7d6717e4416beb0136c7486e233bb25c73386fe14211ff080e382bd755cdbf3c3c9a770a0006cff437f5713f41e78070fa11f6854e40bffef6052f6b7e94fc4ea824105b7fb987abd3e84ecc6763db44405e5b012809dd564161003597758c8151eb0c93ff6ee8e9299ce3f5e6588b17b95c1199ba5ba745d3fd7ab58fb7b49781b76a561af67fd32699c8c651ba60221834e8737d7da277cbeae440cfba0f22a6cb9b5794902d
+4081f580a00000f00f139820c5e3abb95a09f69ddba45025826504175760d74299dbf154dd521244ca50beb38b45b9f1a134fbc907d0ecadbf61ccf09d343a0bd7f3b23998bd2dc442622bfd47b6c10b0e9b338ab242fe243a8e524c79d8e5770e942b60e7ed8feb5d230065d1a7faed1475419f275467147321f8cae571dccd1d53342e285815936098bd84e690290d3c4acc1b27495e8c85753ef70ab557d3c0838249d2447e59e295cb4e0a8264f966ba6578e82c53494c573097570655c54ac1a94f4a0de074f0d99483c66481e6b037653274768b04bf0f6b49cadaef880f2f803efd4d7d10b7f90cb033ee790392d92bb34572ae9c
+4081f580a00000f02079058904f21c95b5a07dccbc009b5c00a4e4ecb6cab853e3a5878724a627f76637f6ac20b61295cfae64ebc14222016cd539cfa6cc69e8e79f8768a2dbf6510361948f90ba6669bc63acac135e7e38a570c9e3a63caf7c2d7009c102be77d1cc4bf06cb46cc9dd41abb29b2bd9f54128f867ec7dc349c8f4bc57c7355d8a55a3dd84ab3cc2c556fc7a4b810d7f5ebc644683fa26198daecde444c0bd59554b086910103177da278fae8d23ed35300329731c64536cdfeda5d2b3716b8836d882fde1840e5bb76cc19fdb77eb2677fde571794d90cc788e129d48931d46aced3da9580a2c040dc7d985972867f0010a
+4081f580a00000f020d7e69823fe553911a338ec3137ca958fe592ed50a796c822984ee551e6fd43c03005a6831ddcd80477624c83858e758dcc758674a4c938d6e562f58bedc9d404fbec981bd046371129d3ae26c52b26b5730bc412f7692439dd12c10b3fd865852353fd0dd40470cb3558010b89bdf0ef8f9b9ceba2c2a13bea72341e686c1d6d2d367e9d71b10bec97ecfe9a5f8af0d8eca2ae97b200cdb028c0acf9862dbda9914dee4682fe54d5bc70a20655c1f10bdfd02a20eece7df45a131c221aed919edd1b6352f046b981e5d25f35e4c6f1ce3ca142550fb07efee4fa49674e73cbdf4f06963ba1679cb5c6ac2c515d9bec
+4081f580a00000f0bafb8feea1e56cb7a03cef69a404e80369cb841aa6798f75ebd3790685ea56ea96d381cb154e6a2b1a06d11fea192bcc00fce464b670766dcafd34cc063e6e288617d8fd9ea1934350487f04fb03879621398dfd3175922a6a59eef84eacd4f3e1c39dd47697eee2c39dd92d2ad31149891d4d80b4aba8aa74eafe77b4f8c649c54a85c232759588b53d5c93a18637310ad761eed947ba85e0b4b9edab3f869b3e8e062c6e475f39052797f2fe5b4dd365b542a87489e5e9de2bcd413de657ae0bedbd55abd7b75e36607cf2527805743bdcb57ab70750389550c10cc6ecb9c7710aafa75823b84cf50a708d920af523
+4081f580a00000f0c11ae1dd5dc60379a1a89d373670563c4bd1f94ad5a4df25286c1352d904c1bbc1b3860975afe19b1fd7f1e8aec987d65dcbde55f21bbeb09fedb30419957b5d2912e5f0f10d7e63db805f766ed0e7b7ce8a443b52b3321bb4d2dd4e09dd3e16356d80b6b230200bf25a7300c09385ea8d1b6f2c6f4c8b42ec3a82797836828b94091dd2dd8e7cf076ae5f265476d7d987d595118bb8382ad2f3d54bbf6fa1099669c8b9f454b5cf1d5b38a2a90fafdb8014978cdba4a93eb21b066aa8b6644b9f6d7ec432ebd0c21f9796b3b9f4709c87834d4348ff1dbf0d747cb52ea71db67a19b00ab676ef71580ea8557d10b310
+4081f580a00000f0b02bb22047dea2b005522963fb400700ddec900b82f4c580c0832f8ee181d16c1deece37a17be78c0bc283e40623e0a0091c08dc664cdbd82e8f34c06fa949b800b0147728eefc751baded7968737c62c4e9807006e258578ada4a0efdd6fa25bfb110d8a227bb4b66813d09dcf82cc29e19207b10306b989b3f7a08e02eb19e3cb449a56af0626fae1f45a55d6dbaa4734d6210fc04c4b47682b51f1360b1b2e65ac30a49a82f629943c1b3b731373d0114c67ba2cb052602b6bf83c4d0c59c72c57084ea866089f908aded8622bd8496cdd350ac943f14069bbd3e9d52538885bf19555eca44850a5f0dab66e3e158
+4081f580a00000f0b24cf5a24496b9bc852bd6b8f695a94bb324bb22b61b81823e8745800af37b4f064b920e8e4124791758dd9bb65261eb6b7c4311a6def363bffeae4391efe0ef36ecd2d5d2bb2ae41a1ad09f0dc738aa6c5bdb1e5aeb360f72a0237511b1a298c0e6313faabcea196cc98c9a7a59a92469b7163e0800ccc9bc7ce0ed1dc7b6e87874c76f3bd9545a669e5fd53c3c2c3ae7645a38bb02ecbec7c9e492b15bbacf65117cc773fb5c7af1417e3fd7aae4b19d8b4af3a72b8cc2a679f41e073a36a397f18c3c6393aa1d4f94d37e0994799ea1336a2403d1c28aa48fae1de4bb4ac2400716c57663156e72fd331102744720
+4081f580a00000f0455c1fad6c1f4ab1d1df11bef55cd52a186f188d616c03c79fa2770ff2ab54bd49ffa92f8f3e4b63f9bc2944fef930ac02be391e7e2cc003849653d053bdc6bd4e77b832931a7918cefb75a9e6a1e3c46d9d557ca9822ab7d89363499d479b0b94cd3650a977269e9b6744c4cc1c963f12142249be195e4b2b910c3c50155b11eef09cba828aac955fb3fc4d7bf943862ac1ac72e3ecd37b42a74b4dc87b4d38bf47d6924362e8c24b41f3a4144813961af00fbaa54793440f77da18f1b3b613ed1d50a3e1c75d895f581b73945c4392a00ed224907365b8c87f323d47fcf98407408740bd8e6d275c071e8653df17f2
+4081f580a00000f0031e6f6ebd2780e9443d6230174d5340c8591824c3f67da23b6ade5de0d11dcc4f03c1f40a8f692393b86525da2ae97d6bff16c40a00421d5cf15ed27e50af252466dae4195484c906ae2b92fa0b03bb88365f69ec99104ce9b2366d5f12829c70bfc9dce45a9c081dee61c1a79ce9b29338c15a509cd8543b929cd1c5312285f6ef52f415f7b1e684f6039983f0ae45aab943146b9b2ce8eb12d7daba6e6488eb44850dfe3deac3e0949fede81855d4edbc705f5924b728594680b8a0ca1303dec1c5fb3594ede2355a4ff3418a4afbdff2c36573415dd66d9e7dad6efcec886df22f321e18ef1c75e52a03408b2263
+4081f580a00000f0ecc3d1263a5b34c8b70770a200be648473976c6fa0d8526d761026e6d876dbc3c6c49edc5022f9f8b39cef4c5999f24a1e5d80bdb4dc47c8ddf8997e4f907d6da7ba81ddc58b4463d509b9459c8ab3f1d6745fdae6bf861feaa73514d08fa5dba628dd645048cea05b15851bd507fc260cce3fefba651b8bbdf4a261d9a8b7d2f2f6cac6a17dfaebc3a30a7eb8d7896160ae90cf677734f189779d24043456cb38fb388f6d4a6ec8775eb33b3703d61fa9e40456ffc408267e93869b5d9fc0b423c6fb3126c81f46b455ed73469ecc64e73b379a02f86e1721b18a0e5992783b248be57736b7eadde65e314466a1554f
+4081f580a00000f06f6073b2337539d3876f6f1de5efdebf2600c06848a4ec6907fcbe87c8d77bf95b450261cb447792aaf088f24e254441a892ac8287beb9a51fd8b311b59bf040859409542da97b1e2d4195343dff954402541031033f84af14dc03fef7d1ef96899e196c25fd910483a1768ddaf27261303ea4299c357d42fdf4a422a0ea182bb4de60711fb8cb56bcad339328655bd0e05fb724ffb5feebe8c9f8dc3a3783d38853829e089e1985be0f6be2506747f2b48b4487d366dd399d26cfb00bc8a546ee022ab995abab40329522a015fcdcd98deb53572fd390b6b41023511aacdeca42e78f3e6322526a524e759592bb04a6
+4081f580a00000f0d3a9a213fa1ee4f907eb6e3e5e3de95cd45fc2e4be62099c945daf88dc929108e51965f188ecc10fafbda5186c9136e095e1d0d1f0cecd47a19427ec98baaf00b4b86740e0f3f567ac93c06db90ea7496d06954fd78e32ef8159674b5a98e22fbccbbfa5b74130bc36aebdd3af59eff0b62eddacdd1a4c748de1d9b0a5219b2c099cf7325aa5c1d71f14a9fe708fc8a2c187c63d9a09edc6973f4fef4a0025226434d10020b32dfe11d6b6a89a95f7dd603c99f22be3354115b24bcc7bcd53761f5ce93e3f2dac30f69e510aa5df1cad489b5c32f8562f69480283abfbbe8aa681de20ddf13e023181739c9b767bdfb0
+4081f580a00000f0a7a69f3c81e7d9b34a7057a25b2acc5d57f3c5c57a05b4d607f054c024720f70aac0bc0bce94392bfaf24e7a43c22f4e1b199a8486ed33c0f186635e1b40ddf27ef8fc30c146e86b1e2046c6ccab4c14394f0ed6faecda3fcf761134be05e973df8ea3eaaab215cf5cfdb29bca3dcbf93aace17cb02a3511123ea6be17589a5b00b241b097a499ea061473fb01571b8ea596a0906faeaad62dad63de53cb9aceac170cd64ab8b19d5cb1276fe20417db6d7fea5e2f9839dbbd6854716402160fbfc63eaf68153430e5fc91a70a4429d5ebaa0b5795911be14dbebb55cf5a39aab9043efce6b91b92b10adf6f00954607
+4081f580a00000f09d3a14a844e18dbe3893d2dae7deba309b883eb8b00f4ba620c59e92a721a05949b08f6d686e64809d76c552d9b1575ee134a11283c1acd093f72700a9bf7f4ee674f03ffcb67d6e77558d1872cb9670c4fe14072eeb1da995cb7bcbafe7a221ba96b35e4a57c2a36b9a2f56a05d377614dc44df1d34c6e36cabdfb61f90784972591c5611c281c7f340fbd93e975ff20c3af1cf34949b1b75f114645e9d7279412767916e5aad183b6036f2b9ec89f49f9f5ff564b1e6c9cb049fbf44badf166f7af32938da1dba964e91a27b2085ffeb64a9c7d2018f4e4f3ec11b3fba0c4dd860e518c228fc53ad294d0e8f6f10e7
+4081f580a00000f00dd45ae4882fa9922d49edf037557ba3a716244211353617ab2982b5467873275ab2b4644d9f5ebbb8f70fa19f6ed59600ee9a3bf6d0107da98fc2346949a2f1d2da481fb73c288ed094a8d1634da85082094d54e2c7a20482166fdf4f6990b79e8bd3caca3cbbd3a438ddc5bfcc4426e18d59d65a443bc5836e51c2be8ea48d4d1c88bb43fba3020af1306372d6ddf082d2fa0c5793ce7a753b728caa5353854cc5a9c3b155aac2b7b049e08c1cfb65483265bc48258f7335a1866b4e7bb112db648d1e5c69e8ad9b22f4001fdb2ce8df7cd0b55d1cc6794374540891007616d00e2c139f840416881a1eed4e9cbb2d
+4081f580a00000f0cd2b9329bd1199b9d44991a7871d2f86a0d71dc982a716d14fee1683806a0cae1e07053a4fc9c735b1f78c94010895de790caae61e9f88dd10db3b33ed6cd283457d8b13ee1dce4f2bc51c05228b771fd63492a688a1ef4d184f58aea6c34f3e34503248378dadb3246ef1e9fc530be0c2733107f7f6edaac87c4c4ecb63224e366bbb95b5a712b811c66d87c45801892203bbc0c179e10e15ca559e7a4587f376bda10155cf44853a08c23cc71300e2eeb1f7d492e3bd08ccee204f611f49ee461df760e7d9ec9a9be38dd4c6e9b4b829a34e1c815dc57d40c706872f591a642b90953b442a2293f907f9b758419242
+4081f580a00000f05121b7955ede3267a78fa9fe802d2ac2080359149a15afe58d43397631f132f81c05a5faf70c3ff02fdf7a363803ebe7d785e47bb1f9164dc1f35227f2b173ef9ea7ede06454f6db3731ac192c33b3341efb306eff262cde5b06847256f2b4ecc92f36b70c4659f0d27934daa5b9a3ff646914d3ff6268d03cbb6e924b2430408726139f41349b8bc5a25bf76b1a1b5a9c7d35c722606474f166625cd3051eacd7c1183ed282a7915e8f26d3ae606ab2a27a44bc8652f08b8f6400db79192f4862c615f2e552df26e8a1c48d271c3428d5b3205a24525b6c65929ba80af7aaeffc75fcb5bd26a9779b8d468dc5522eaf
+4081f580a00000f03349951cc2184c4d314e6d0037d253120eed7473d58bff0bdc46e3a40cd3479cd014a699ac36c21c848a15c1ac7cf75dedfa203a9b323a37ce0269abc3709b9460078c1448cf6104ec39ebfbaed7d680f632e283b2c2939b780be4ed8f2d01abfa2fbc56d01edb344d1da284927dbe23e239384cd5ba4df5eae511ef01dabc3da64fd13eef595807abd061cd1314e400d0363f65f563846268780242c95515d26d8eb7e1f0c8d12a7509ea1cd82405e880c9a32d021a1da64354c752219e51897da1428031945c32b4323959a57ace69bbcd6665065d48252a6e3aa82966ca56df56e8a74920486066f9ebb785a6952d
+4081f580a00000f0e0ac36305d5751716f25b9f9398d48bdbc79d55f07c9906342669c22872ea23c9646ab5e12a4afa0567f59bfd6c93b14e1cf4259e39db2980e1b9c8d118f1cec5294076cac5fc49cb2ae424f4b88cf38708352e2ecf134c1ca3caad34e4f61e80b49064fcd895585271fe2b6db8c7bc5b42e6789ff54c0f22feb5846fb4f7ee4bb50aef944d62a62a60926fd7b4d81f91c9529447fcc5127e9decee060cf377e1f975d3da1e7925731957a3c6159ad789ae782aec289f65f344e0076acf01d00a6c6831110e6082289d1c25665ef26a1abf73628dea88cefdc8269d06548c8de1e425985e208837a2358f036c316374d
+4081f580a00000f03ba84b236f5c96d59b0eb1cfa698607f149ff7941f5a767e0637b6da08eaa9d118000ed3f9143da154da8cdf9216422d465b59e7a33425390483df72c9d9a0fa81ad1558c39a1dff83d98951cb80e0473bd8d8739716572f13173b4003082cf55f8fe758f1625cef80cdebc23835f1e56cad4dc456228fa3472ce3b5fd5cff88dccabc5599838a908bb893c141874caff06ef3ec7da173b7ca149de04febd2dc5079c86663ee649bee5b455daf5661212aaa683a725ffca10fa8f4d3f5c9f08544cb8ed80e53ccd26edc729ec79dc2fb44aea1c8fec6e87576dd9f091077e2fab54bde6da1dbd900dc3ae1e58df1fbbf
+4081f580a00000f0a7590b94d63ea55bd20de3293f8c43082eacb24df16152769dcf20851b00df717db82baf4394463f5d81ef29367e9cfc32e33b05dd0aa390c1bc2283557e23e2a368efb6f19f3308d8171d5c0234932d94412c620367366a91882b74d5d78a6ddecdeb9f07d8ac5ab9fef54ce6ca8fee899184c41612dcc9a4358bbfe353b2e9931c8a91491c0879d26a81bc42c81d3bae1cbc39e016cf42c9b64349145741c5c5065b8c21d74968900b9e822a9e2fa80376680bdd81d9eb02f59cbf0a332bc2bc9c99e1ebb9a47d8e5e7b4e7b96a094c3fb120e87209e0b2a699af3f3d663dae9e2a191c1f233c7dcadbd5fadd29a2f
+4081f580a00000f0042c2f9dfd5ecfbcf4baa3e30f7c0d1de58163da02d23ea80c651f7957b3e5c3a6bfa7e6fa310efd9d8e5f7af6a13900f5a3c6026eab5f6d1a3bc43570053010b93e7ab6ec98bf9fa9a28c9edec191aec6abf4f70d713be0dbbc2742d3ecba38cb183beec2e1b8bd0f15c677e8ca8a20ed0e07e2aee585b00581585aedb4e4e9c2ad14542e03cc8bd1ae8b5614d0fcbeac825ba613812139d7b26ef049969b80229dfdc127bc2bd7908b891dc62047ec1d0e627290e858a5adf50cd482d569855d76707bf3a3df26d9a95d03b7d4ab4fea8229e4828338a20ed799908ecd33f2718edbae15c801811c3d6b810a456b0a
+4081f580a00000f01dd359555ce093bc8a78a352af6d0d584082f4d2b22c3e440664cd28f373d28542bf7f81f6da2e803f204377ad1a6a91c7a96de0d740755bbec32b4997b20e9631befcb9b6482e88f24dde1b962350b38144fbafd57cef26dff4a66dcc3a9bb31dfddae2bec965054700768a2a148bd73f47c8a39ce7d4733e55865eb381ee9aef4fbf8205ea7d4480d4dc23f1401ac1eda044988b91eb37bc071684e6d90d719859377ce13fa24fc48da6272a938aff1a1d88973b5918c81b633ac9375a21bf96ba0030efab7ab109cff02bf3df464f99a0a6d7795b0017c591a0b2d5ca51df15b58a853ef55b90f3ef453c3e7341e5
+4081f580a00000f0fe41d92d27f6b798b916cb02f09feaf2261b1cd93adad3017b8100c2ae11ced747b9f826abf03da7b049ae2569b1018544446f0fd5709c3fbf5282246915547ee8402efa7521f4fa46651909e812dbb7a1e25b5d3cbc7b2c2d830b5b156746e938f621d4e70b345a12b89316843fe7f38d250df8fcc9f7d5514c1c870de2d6431119127a0f9511b2251ff48d420756fcacb17e6a314851709e06d99ee28ce0fc7ff4015aea90c781c906729833afe889d1c3b2e4183784e381886ed267225bc3860f5e0838ba01646574dc64c6248947b91e9b898ceb9416b94deb39b15a5ff47a274ab34d3f068ce230d300493c4930
+4081f580a00000f0188e463670c1371b6861b840580c92e7308acbf7583215231eba387baa4d304eac07b90170da056d15708a2b4b2085332b7beac49e0839a04a176758c7170bd1ed4b9395a18e9fcc382bd6ee827da7e3925e441f13dca40f27d516db66602268de453d88063ee6763d815e3f21c7ee3eae1f090f7b2ba531bd4d71f27fdd54cfd1b49d828fd7983fded043eba294be09073ade74a115af1d22629158caad3a764a87db2596368a183a01d90ff22df35eaa4adb2b1985428309645f933cea7dd16502081c106ee7181ec9e9c6d126418d87588ba93ccfd1d7079a65abb872c3444564cfa6851e31630726896a01d23c6c
+4081f580a00000f047dd76c552b59b97657df96d81350138773778401507bd5a52219fa81e240931160c6aecd39a5fc813b73723d373ba32ebcfe778851fb513bea1e1a35331af0f10c5b88ef624629ba8973cb077bbe532e7892ffeac8e27a3bf8dbaaee6bafd9a4679ada57c5d008edb86b2ba8b35ea36da284553b90816b97ea5fb7c98b80cfba286d2888d44e052cef4e9ca3de6acc2a716435d77023103ddad7f773feb2606a0a2c03923c91b52b48599890b3add8d050cc1b073865c25d5c3987989aaa74421a72b999dbdee0aa32a5d49f24ec42d425b5070e0fe67af568c029440843462939e49e02fa3a72512cdd15fe0b727a2
+4081f580a00000f0984bb5934aab4022ea8cd814eb8cabb767ddf9f9217f3aa53425aff37b6d28ef22efe390295071f7c9e858007f4cfbb1dfb555547fb9baf1ac5b8e30eb18d8872dcc8c2a636bdf6efa8d70f5fdcf3b4d55b9b1588c26e410fd427f7665b1ad9e8597e567545226770149c11d1fb86a694a72c86177bde15d9a0fdca2404dddf69e8a39bf25521b89277217d7756deda2b115e8358c20f75bf31df8fe6224fe419617471d70b9ae504eaea10486bf67e97b7233f403b41425ac62ccf08abaa5f6eae604d380dd8d8e7f67a3892bc3fe9a1c2907afdd0053b447a33b7bbc61540f222b77bfdc852fb4e4abf43df5f8f927
+4081f580a00000f04a17a4f00d8eab072f1fdbbe531551c97cd02ceead2f9fc42047d922a00b5fdd08f99becfb3cbcdc18c7a529083b46c508a57de769551e72d0ea134f6a4b2abfb581a83b074905ca9e2b787ddd49344552dfcb5162d9305a72bf038716e6367dc2d44fb771d92613bf02cff639e5f2859e3f352916ea0bcaedbe5e350cd7677d94f55109786477e3f40a778ccaabfc033ab7796d8cb48cff6d8ae866bc41b3f65422983667a37103ebe618a7488b2c7f76ef48e7b8cbecb0f4fe0874dc39930776448039f1edf375b184e6ce629e9119e8c854ba5716ead6e6a800f96ecbe5464f106347741d7684f00bd5bcd5af63a6
+4081f580a00000f02a8f2ff4e77a6a8a0fd16413fafd719f6a770758f04d12fb5783a45d392fc837b4b81b9dc8b30b68119b80f7cdb02c77db16610d57094ab9cc3e8308982d949cedfb5f64406455d27c4f326b222c099e637145e93d3e7985674a5e0d9ebaaf2fdcbd80c33b7db669dd4bbbc66f1e0586b8a72600ddfee4ceef07ffecacd5bd6144d7bc4300161e9379c0fcaad895bb4e990d62fdf306a83b65ab73c9152b41e63bb35f61d802bb6798048c9d0b2d101ae8c39e9657f382aee9ee7b836225667e2e93555a5ba4012ddd667b0c39808befc9430c737e4698983a18ec4321c8fe13262374dffb2aab242653c81136798439
+4081f580a00000f038a08f09978b0332a8a21547ad611bebfcf0893431e6f8291343f8b9f37055465cf84c06c544b206b7ab30a5cb116d12ddbb5c58b6bae6ab13df80320cf433b5c6d2381f996f3d72a197d04246cedc4d0d0eec82eb05a05fd66d017a30a5cdafb8dbfd35a41c7d86bf2219fcb191795349f932c7a7c8b363a1907cbabaa88dd049a256e894d32fd3245c92cb434292a9bba8f32b31e7264ef4326897ef0be6a07be5b09e780721a1c9a6ca08c6763366f044e4b3130775f2456df108bbdecd31ca3c98b21d7452a4ef907dcec03ebc8e1f3122d363350db5321840eba2ddc2e9a74e12ca11e53d778fff19d8cc7b9de7
+4081f580a00000f01c64486f462dcf7930ba8e052802109a4c5351d22bf6bf879cb2ef0139d7ec2d963fc5ed837335f2213d754d3cfc6f95146927d7a09697b288408172246da690d34e1819038d470d2f819addada0a765db51b4b3d3b11f3729ac4e2605e9cdfdee46cf5ec5486579c12093e86de81b8068a406594985808f51ce0aef6988b7df5141efad3c20ff56a49c24330d81c783593e5af1ec5fb1a768f3cae3b5dc4badb50846cb1b273925ab83e7c315db1ef9fc0987a93b14b3ae5c9a21d59ce793cb507f0db308c366709d291e1ed63a8a604a6dc3e3aa58ec0db38d4c1afb07ee445b5b527407098b1add3f9933439c7ed1
+4081f580a00000f0f6acf4e8c821e379b209a5761b25154d89bef47b733c3775157f185d147bed04198143bc98c413f4c57e37e30d1f16c51008e96a15bd5586733cd7e630ef699a2b80e31741f585186caaa9d68f3561f809726dfb4ef188811e741da29b041e19d501c26522e98f3bf57e44eac61fba1dc827dddfe2766843937526d476a77cd65ba0d0671446bd2d37d035d7712c0aca7f0405b46bfafa6361e2957230aa8b36ed32c236ab06ab4be75763049237ba4601203ad9cc494bd23264be23d4d99be6e81ac60eda87c5cef3b74acc833a629313868b0fc33b0ff422f17db773c8a6b41c85d27f46db322d18157c7b5bb1a8d7
+4081f580a00000f002521231bd54cfea589e5886e011e2db32064b942ba8e2eeec8a9fbeb7bcca8ecb47b4713a91339e195a4cea1d9c7034cad68771ce20b072c26bfc0932d13355123e25ffcf0da9fa2fa216841914c248706ecd0378465f68c0b21596ebdf12db8ca071f476984c6a9c50537af5550818c8a4d86564bcc70a7a127473bbdbc9920d1b5929d4f778ede8008380dfde464c407e483a2ee7e22726a360274ceb86dfbbe0e25a82f80abeb061310e205c0a9fbabdb72d81628b3cc0b03b1ef7c88a973ef2b6ed48445c9545deed82d1512c89b6ef084b1d1813538a9e692e07b0ffbb531fb620af371a992b5cd3c7de09d01a
+4081f580a00000f05849b393678630a37df7905aedc64e8fbe02b283326d0a4448be7bac370eba2504e319fe32924624e2a02855e25c5869f71fc7e071699d20d521d669881467f3409cb3b32981f3747bfe3d698157cf24ef8d47ed4f53e49885059e9d6a08a1bbfa0ea6ce6b801360d8062bf768342840774da692ab97fe099d9cff6285a69f1889497f825c95b8d717c218e28c068b32279a2483513f63e694e52f11c6f2001b90908720c915aca30065c08cd879093c59da13e8a613576f5bc1f3b13e6e3f8febf79adc75ab85e593fd6c103cb8bcc0cf1c1cbb75dd69a252f25832316acf11e51f65d62264499a391852f79d66dfdd
+4081f580a00000f0cb8871d197d19613762a8cf6559af3759ba06f29dd79980c2da60636d82ce6bc2ce6977ecaa48f364ff4b60d537db407fea337cf409722278b27e27a6277025cbea3c5389167cfd47dc73988108b93c9a928223267a2cc507ebeac51a6760e868037a3c5a935595b197a03ac731a5b4f85e0b8afe9914e03355470291e5704e6e97233f188d4453a58d7e258973d74ed308a7426e1e9c52881637eccc8d4cb1c8e8fc73f45a80366c1e46d7239f1c7667fa42bd8d048766fec5a3ac4799a4d1b444f9f1ef3b64808f8b2ad72ba7e5632fbe87bdaf1641c3b92d23e2cd1c06db4a91384e4dd1516f538902821c10d47d5
+4081f580a00000f01ae36c9275870d42ba2b5dd285b875f76192214f3c4bdcd9c28be12c04834c80812c2d76ff25f672ebe50d133da405d10ff5cf122f884d1bb0ee120e469a1dff66db42e7142eb464b917de9585ae4b397c5386466cfb819bc263825806a4a0d20358a6153ec40e221cd272854ccdba3fd44ca84d5813c93c5cd3884c576dcbbf6db613d7fb32ea8f0f53e3accd3eaee8f51f9d114fbdc7ac2acc86188c7bbb3a1b2d6f54fdfcd01858d4ae72847a83a734c8528371bb94ca6a0207e354ac96c9204ab24e7706a13e1c0812e5d6039b7f52f1e0075d767c8e95d899ed703832d5c94cf785aa811cd5bf5add324375f3bc
+4081f580a00000f00b0d9722fead7d7c886c3d6470179529154f237cd63d01834bc2c56a9ba59c5d6847229e4959300629754d4e13f60711ede171c194d1b962d1f69bcc77c919974b0afa1c8956ca01e51b9ce39e31a45b168889a0d154ba8be58b0a92d46f8287e8b6ee7a29b947746d46b937a5c2c75db6955b22e5e0421aa1a1e8ecbd18cacfad545626f20a0af233f7c30a54179ad875b7bd9d48ba1cfd6d1fa586b7beab297992b3b493ab07c625108458a4472325918a4598604ea8288ab59c44b50eb80f0629a656ff09f83a4f489572a505db6eaebb5bb71ab4056d77e368f5c2ed60eece1e30850626436c0c37c3abc8ffa94f
+4081f580a00000f031874b8d42c2b19e53ad0444fe4326298c5d2c88406b08b836b1ae7ffcf2f15ee1a616be18e0b3001e67a708d54bd93fff669ea4ad7544885a0aebc13a32ed5e772fd73084fecdbc5977aa7ab83e59a36e056e9406127cd96a8640e9dadb833df013c68c43c01305e002fa169b67ee25de6fa1f6ef5a481369696c261fbb24f5bf386aeac45d57b0196f396798b987faaaaa7db59177c0f88654ced0100a3e61bfe3858244f916f7f33cd71352265e0f90b9940739d98c6be40692823b166db8b8c41a7e869cc51436d57246c50e2b1234f02275e7ca33fc9727f79c89f835e669e97ee5ace02fa54cdd8fba13a7eb06
+4081f580a00000f050713a600f973f96cb1b64dc4e8c385f7c4bc561db936431daae81eb94569070075ea320a7d45b2899430cc4d59a37e38d7f435398bc5826ab7e95781fd0d8d1acbf99badb478ba042554a972cd008acf34c49eccbe3bf0ef86e32d06967f71471c0fb2671f341d9afb48f5404b79b902108df4e7a6ede0516cb32362818b8443bb587abb26f398610986d8fb91589280c6f88d88db9f6dd87ef7a62e27e7322e48ba87a66aadffa4e9ad50381640c503f767388a1ee4a8546a14f1f8713bae91fd74bb5d9db2e66e6982e7bc9479c9ad0a66016e7bfbd4702b8a524cdcc1d50fb4d48605b86386204db04cadf89b5a2
+4081f580a00000f0d52e0157a3517928208e88d78fb3ae7465454b26d7eb5dc82b66949c4d1ee79ab3b34e2af5407f8cefea1800384960e05ee58a27824f154cf114d886123b33def1274e6712c99d205edd24e19da271f533e7804a2b5183a4f345efbc3ca8b1a3ec024e5d187ce2a635bd908b049eab27c372718a6c3cc43d8ba064bdc803ff3559b021aefdc295371159c7b0cc3e86a98c10acd5decbf29d150dea8a9aa6408fc8ce95c49849b60c363e69aed8d8dd0200daff299f6993fce6d312dc58a5b9653b4b809de6caae52a50cc46f8109601ea9a4710a034b3be7dbb9005666c901bc0406701124977988c96042f88d624efc
+4081f580a00000f01040079e7eb995c3dfa7c0ab9c144d27cff5a8b37a689cec8db995608add77fa2e552a4d232763567adcd56adc8c570c436130fa3670c3c2017eebc702d7d25b31607cebec721e9931d8f7e0bf8ff8e03e3d14d88af62e03da0eb368612f83a0b551c47eee4458915068b13dda63de5cc9fbc4255b7332048e37623032dc5b75b9beb4634be28386e5b469978d8cb3c8d7ab09f846d08548ff5f4de05060375b1a5557f7f63b12afeee47ebb472d3e79b0763ee745201496fb3d2537f1597620ecfb19d2e708f14c128771a3b722a6368bc72b83eb7d895fa999158bab1f5d74e2a47470c608fb2514a6990423f9ebb8
+4081f580a00000f0188b982cb4d878bd0d6950d08d647b1afb65d2817b4c68a2bb95eb839470b098cf78e53538a02d0c58bb14e8f68deeb3611b4e0076a2676b66c48967ca4b9505b22bb91563b5872fa6a68cb396155237eb1c2de55fb862a9502f9371a005e2aab29c56556116922db478a68e8b622e058c222fd6911156194031c9eb3eb3681a352668e94151b568dfc32d0c61bfa036ba6809669258a2e205bc4a8ad9a306e5c5bf5547cf3525530d3d4bd819504292ba2f5af04637841a5bddc0a5af125cb89aa8ac7fefbeac1047e213995deb5020c14b3dcf61f0cafce7e74d93175add1990b5fa4c30a0de5e3eff467e0c996ad8
+4081f580a00000f0ec92b73c19edbba77c044a1cc1f5f5864afe119d110b9713b0d5005f64471dfd406a0ed408eb8d280561e42c5bff4c0d16001d5340166483cf2a58e3d5b7d2c0a51cf4db4ee81cc76b484b3ebc7a33b382be6043b363f9e0a55e2191096c18e278aea28d05e4bf6dec1b8609b1aa8ca621c0b2853556e12218dd26b24f28451480f6ad379e92ed57b1a214a0a8ee2e48d6bcad87de2a5e72cec3d22ed9f87d8f82ac6b3416018936fcc168009a306160a74b68ce9ff529765c8afacf9853709ab55bd20de03a1eebad05892e123b66a7ab7bdb3a6de1746cd27058c6d06d7ebb48ca8d0639fb56a200b1a263a324e0bf
+4081f580a00000f01035a71a38447c0d1030bbf1559cc4946d7013062e726a204ade2912c8b312173bfb5f5536698f204256237cf74a1d6e87bf8a27397b7d7d3a8cb420ee5ed598db7703c2f082a817012edb136b73152f0a58c6dc0c5595fb97bd398822fa92bce636b6079b0ceb3c0724374307a145f58d0ce49dedeaaa316b9fa564d8ee3cabbcbc12de828c22e1742f59c0c75682dd0203832390cdd5f10ea3e15c4c8b13ffd208d76b34e348d964b58f8c95b811bbae263c6e440919df58e44f474ebd216a178e43c2592cbde43e0261f1c4ab6d3fde5cd6bedffcc9efc209130a5109c6e843dceace12e82d0030cd811ccdb03095
+4081f580a00000f0aa0d5aaa706aea07fe8e7778b2f035488bfe499e52c2d6b07d81a8258019779d2ff9eb53a619a6d5fb2a2cbad634bccc91269867f9eabfe7772678dafe56b720ccf2ea8d3d6f4f21718263d3bc723769c0ddb0e5504afc1e1ee5816f2f205f130e99f795e1aa1d6fbcaf6cca389a0ab0ac32792fd3afc792542883d39c646452b23c978cea7a2ba9805080f7019118f9fee4e9a3a1f668f491f3de83f954ea366d635d7bd937d2bd463b2f2e8aa824f67656225c9d8c710ae71b7f3858af39188a68c0ed85d6d780aa03622e72d1110ca2a1dca98091608df9cdf4ba8d170ac56a5d8233fc3dfafc2cd6f1aa929f720c
+4081f580a00000f0741d59d68b77ccc8bee8800e5dd2a267fdfbfd25586fde0ac2aab3ad7d723b911ec643ac00d5bd2d3a23a367701896908096e59be404e58b4a825b55bd23af03c013b25a39f469d81f4f7f59d67962890469cdbb15aec98e98883552ac333def852b2843d502ae9be645de6ebc520d4d9bdfac418c650a23c11d55912c4179d7f5aafdec3a46e2b0dc3e981536bc89ff54be71c3fac9c79575743b97a2b5f34e658b9a3d2afd5d4ce84a5d72120b59d8ee6da477e17765a45207038d15806f813493fc897361639436315c9b84758a414aaf9c92d24b71b24f0b7d2fc10afd77df8d3b4a3290606aa54b0cbf7cc5db50
+4081f580a00000f00d6f69778539eec3d4ee826168d3aae421121f86820c03fad187cad871970412919eb5c3aaa8d098ecbab89499407ea2d67ae6143ec97a650f586c5d5814dbbc481f814a6bf418c2e45c2d3ed9324bcb4fc8aba8fe35b0bdcbb761ef02583f6a8b56e8f1b22b7679ab33159e8c1136b7eb3fd71af76f52b2ab1f0f141e2c1300a40a39dd212a054e58f3c7289d5bacb43e9cc1fb4d99a9f6fae083918bb55657ee7ce7888d185dfb37cbba822e9cd9822a4b199c79597b3e8a1204fe5a11c494bda62e66dbdc355d6908cc1e3be2491956189d0b0a9df88397f6f5ec8cfe2657ba5eacd8ee93c66b4dd6c0f8da68b246
+4081f580a00000f0c04872dbd60fbc268e751ee996f20e41b09d7b1f29aaf18ec6acd14b54913fc609fd50e145027ca3719dae9ef5da7b8f65cf2c049893f5a7c24d5c0545b4ea34b84a1b5de187de796d34491ea1616fea64335185c345e63aa72cfcae5096a0117fb47c3177ec9264b0349776a50ad6ab73b7a3543436b65b5b6ce5700186796ede6f48041064094b83af14f2666cd66776071824f3aa999e9eac092b4aad3d89e8ae7a0aa1092af484cf64309537c1948c5ce43b9fb7fd29819594e55f86632f4ca55b41177cd13aab87ac3189440c1cb3bc376c8a0236f6b92fe7cc4b9ce315c881e0fc1853754bc8b17e86174e6864
+4081f580a00000f07e7f38dc77d94062d1fa922911d5de73492d1f51b3f6d0cfd84bc1b4f9905fcc85ce173d76d967a979cab7c524771296777cafc4b71182094bdefecbaebf885371e17ff8836b70aec6f0b0f5ccbc221b58457032bc26d7992019a13057a74ccaf9bd0b11d462cf8b65074ce8227ddb3efe40a7291f480f5563baf7ccadd7728722bb0676ffdce47f548980de918a107ac21a95e4ae543cb3797c4e15d8c761fe3dada6a11cd062a4bd1e7151edc5ff6c57c2f3ccdb59e9a0a7dfaa041a08948fd4bd5e16d5d761c06d36a355d6aa44f0d2b86894c4d4f881e4823a194e57e6762510757f860356014452d5d4af3497e9
+4081f580a00000f0746fb17e1a10763d69f79c5a9fdfe083df946964679ccc819b31d889a1691840af87d93cb12f5cd6f0cb10ab06ee7f4397aa38611b32422ca8663b396c040ce425ea2b1c5808fab98523208e2b2f8419f7ed0be3d9a1ec3476291de8dde69dd616b28606d8b05c72483303cd2061d425c08d230900318592ece51f98c6ef158ef205a598dd337e4b6099cab927c1e0cfc46a1ec7373bd183a845b557fab425a5b8baa1ced3e3eb0cb09edf0fcf1f3ee7a2f31a92dea6fdf2b361d239a57d85b879e50566333b25b8c5189f88ac4076d306e699c2ef1173a9c874faf630f811a5a88ee035194aa287ca0b4324bd506002
+4081f580a00000f0d1bf20fd22c8cc5e9e7d325400e9c2e0823360a79153492576f1cd472b9632e366a7a6508a6906738b56ac0ff95c0586cac9e9a471e9863289cd8c62517090cf369537641fddc9c3909001c54adae8a4d4db478baa49789e0262400991025ee99155d4de1b06a62fdd14d69129b72e0bcfd055f2031a7b3bfa4fba8933c47d94371e55519f8f6d10436abbc76f51116f6a36528d7c4d43581eb24cd7534919ed1deb7b2cdc47c2487f0ee170133ef9beff6b4f644792319d947a0c33261143ed72690536f47c82e78c86e5e98bd2c774a5e58949a78c46cb73b5c59fe88790d222fb47f83012a592878df6fd8ae62be0
+4081f580a00000f0b3a4e0d8604a018b031289130335ad4d229bee840c5702887b945140132f4ee0e800b287decd67f1794d6ca92cfa5b9dd23f88713ce22859bcb35942deeb145eada0b6c2d11d8f677f5fa57942de8e784ed8dfc4fbf918e986ed41287efce26dcaeed4a15858ce7f199b3dcf09a8d9043403d1e7662b440a8b4659586b5eabb8ca03cbc238595dcae67ecea6b0a6be8650f1f704f57cabe36c25cfd969dd6c468f3bcf372067386b13dfbf3407b3b14e63a2472908e375187958c0bcbde98ecd6c6198a4e5ca08ba3f2f79a4b80833c65065e98c8a64f9732949a265bc0e95d17fd8c5d9593e7f25869cc676acd9ce6b
+4081f580a00000f042f8a8010789b57d57654fdda02880f8b87046740cdef616a859bf66a8c7bc1a51ec2670ec8986bc9a09390524bd27c209e9027edce25841b5be33257d96fb59a1971f523a54015e5f71bda8efb4fd04134700b84660f51d25adb46f2678ca26e6093e6132ecd457e5f9f514ccc2d32d5eed6e94177087351279de94c3d90a5d4c018877b7a3de847824e26d87a3d3aa5ccfd7e4517368a71c162bfeecd8dc4340b95d41a26d2e6ca5978f7881ac75581720c68e63f47e06ba070779e44910b44fff8258275471a00c52c4b6d52b2b36b1136744c1557fe7f95ffeda6bdac0f35c8f91246bd31bc164a6900e0deb3591
+4081f580a00000f032684e615724651488eca773bb5cfcda06d52898074aba1b5f8999378dd7355cc1bde4350f2220ea851f2ad1d275661e35fe1b12aa4969379a829955ef3a23219edecfaf1dd1c25045abcca400678838d19531bb72e5a5611daaa3010b33f8955b6d9d165245d8b0d1ee54ab828a2c86ab3a6f2f8ee0c1b9332ed4f76bd7516e0a94e6ef720f09368bd7d1e41b4b0cafd792e1b51a4f5b466ff1b146b62579074feb291e5be2089813cc046ba8072b3f5a7320d38087b9936336c3fdfde4dfd2d63c7866f824996def5cf560d47118a5c533aebe57f4cf2b98880bec33a116c2a88fa29aa71f7c89ae7d7af954088883
+4081f580a00000f064f5d59b4e8450141881ff4e17e70274d4676a27466528b101ddb4e1094707d2ad63ba2bc0f1da5e083adf4eeea59478922c1d9d057de708316111806411a405e565437fa3da3bead15925eb6e1b4eab093feb8027db4d56ffd43597bb7a1007dae1e4ac31785b3d88dfb659018c309b21833b918c569d7a98b873c019aa34968e8e4a21e641a4de630e0046d24d08d7b37cf95d9a9ff0e538e357ca2867c2066f6a6f4694078cf78b0f0d0e1012ef5299664395790b81bd76d1a2e50c55ee334ba72716c3529ddd14943fb3989eafebbd8093fe812d53ea182943f3150b176d67cdcd434fab23d7f1103ad8aa41e023
+4081f580a00000f0b73287ffb5a042f677a1cf19f45da58d9256fdf1dfb6f3e61a1a491d7c5aa7ce3ae833953a5c6b14cf7226e6f4359fbcedbc5158e0e38e2460fe00151307c4b1019f04419dd1bd7725bf4868c826743bf0d29946b5278166ee401874826f3c889c5c7aaf7d446d853dc0648e2246152fe4b381882f6624b9ac28990c792c045d46e1dc544b36c7088479db98429b473af3c30b2b2d4f23cb46b8e3db15d648220393035e41695c27743271c592395e8829a59c928357da9fd2073de2c713460a25955bbad229101ab93f6a3de2a37ab57cd58a1c655ad2de806ff80c5044309390b11de57547eebc03bc81731f832cdd
+4081f580a00000f0ff5c075a7a8497043b3f169c82cbfd6df5c1f9555506fa4b743b22c5d77386474e5b72fe436f84da8a0d1400b99d04f2aeb3795ea7f521f9c3e73b9894c1758e22443222a3685e52190e7c3e9de9af0ed22fa5b3e0b193df08f26da79055ca24d010225d64a1809466b621a7dae5bbc0a0e412f30661c6b2e26382ba05f285553f5886bdb614c27e163fb5151ae00d619cb7c85c0e89d253c2be56fe178d93225c259eb74a36162b4e3da4498ad204bff6adc16460b1199ff04041024d45a81cc43fbbd765e0f0d6acbab720389dc839cc6d9b14ca2a1b08784fd314d6fb034a95a0a36c678c4b563e5b081d4cc5da7f
+4081f580a00000f0fb9419c152306286f1a5f5e848577b23b10ba37d574d93ce51755532284607b59d1f6cd68363c1e7200d5e822a549bee8d7b698584b4fb75cda833b0344922798cfc44365872e574ec96dd33b22c7cd8a5d8f2d46f2af7836887e4891ee99785d161d085615ef90a14767b279c60439163859c81ed3ed0be81eace50da0b17e75544570041391ec31238974012705d0f051697160e30f2ff62319436c689fce19b0a35c1e008d948c8f00f14272d93639926ae6d32db062f92eea96d4d3c5f398c07c9e7408d50e7fe82c102e29895a14b6fb2b33039f61ac57aadf4463aea3141872c129df5f7d0891cc9d456d8fa30
+4081f580a00000f01db84f9a6cd9ea5552442616c0e217882e3058f9af2c613cb58df4908306a23fe5b959044f20c005bbbe973b98ffbef338b7c69ccae0f78ea891de75430039d679a038973d4ffa42d10843292df1931a00befefb5efcefc749697deb96eece14551d2860ec0e323370493d5b2f3998a74dd7aa4b70451f7a4bf902dab7dc622146d8eb1387ee1981ea849156fff51e2013dfc49d761c192e26dfe78862f42f0820e802ef801daa357c0243d309ba53e5f4cf042772836f72059a143bd940bf3c8381d78a8845d531af690144669a425f34d6cd310b87666cc3cd30d2c435723a923f9e5a3126fd2062b3619e2ceeaecd
+4081f580a00000f034bc2cd727e3cc711c5ca4d9d5973605502f895ea0c6ad7966ecbf916388eee23e9310705c90ae80f36e445a762045514dbeeac991ddb31a9f4f61a31399f70f7780626ebb0a6018a82c777d75fb5326e0383d99f625bb2f41ffe1b583550e149ba50bce45daef9d7fd4386541d87cf267e3f48caa9b48a816d34e8a89ad5679c62cc23e5b68594ee4fc059670885484512e91be850fdfc159a1efd2249d6092eb21d64579940dce6f8fe34b323a4ddd418e6690e83679b8505cdcb094547c0231977e6c60dcf3f955df6d05fbeca7c42375e87091f6e65890fb16a429818195db4871022eb701912293e88e6221b2ac
+4081f580a00000f0328c35fc7986bda552bb8706dd42d19ef5db545fbe9240d86eefa005657287d26b8067e6e41a3efa161ea6341f7d3359815276b8c7a99b066c7583f2d7111f293b25967d4ccc2e16812b8d1c7e1db18d387b3f7191c38933006fab7cc7de52d02d546d3f1c9ed39fba2675abbd81228316cc4cdfab0f9801a237114662d9b251d39c60731e570d7c15eb14ad6f17762acc08afdb9305245806664fd1f7a2e0d767ddcbc8000489a36a785ae91192804fff6213f017c1df8f75e690760c21e70e6b05563e16aa9d46931549ae6cad37688c20c06549b6e681671f7f400bab78d59dc66f1dadd494b17bd6a71a4bba7291
+4081f580a00000f0f8969890f1e985202b808fc9a768aab2e923209d4d7338aeb4d2f93310da4ac75e1822cc6b8e88c60828066e4e8d999d3119d64c077e8d001a61e39c693ca9aaa382f4a93ac7d15c8f12a1e90c6a6a6d6c694bc5d267c142da729e1ffee3a8c78763d47314117224d52a7365182d02a268ee51f84d5e583c8fe23fc1f82064a48fa33e1f60ac8f1f60ff14eb3cf0475da4c1b885e33c959b2d9ddb7a73172d8d9abaed4811c3a79396e6a3744bfa867c866d7f23313cf6e653786a94968d809a94b837c4cc4b315ee358ff65c98ed3a2af316a7dc853d60fd19978fc11ea8cc2373bad1e45a7480d3b7b2cc299ec6803
+4081f580a00000f06b24fe360e8f075d23aa10f71ce7e3556287a432f0a7c23d5b19c8e5d192421fade19cefa0132710ab068bebee959c198534d337503ec292dcb0e67f2e9e705fe70395e0473faece7ecc0b4cafe197114ea73d28cbe35d65f2d54908bbe885c89a5bb4475b2990e0369bb32f441b37a379a949628424fdf2ed3a1a13b2f337da5732ab1644cd5bdfa7823e9abd646eff9e7d8e8070bc0a43e0f258b2c03539f7750d27499f46e0063b849a25d401987d6317b2e8203ae24b47e99d0debd52229834a864e09baceceb8e499ede3b804b39fb991aba362d26572eb72ee7c2cafe39f19a9b73d1ae5ab0ce1fba2388b1520
+4081f580a00000f01fd36677727cdce3a295125ad5ac67331eaae2ea56c9c81abda51ef21a71c074ff0278318ab2c417581352ea99b1d221a1b6f809c129b0139a23e45f58cae88b99444969b4f0d7b2118c794d56bf35567f67a26705fbf28f2170111bcd1fb5a543d43d12c9132f6d7ca77f7d7b7b5031c19ea9a602a664f6d12b13baa51b4bbee6ffb52f0baa83b14d6e824cf0b5ff9729417fea1e58922701c0e6a58981c1ed3ddb385571c29297a1e64ea48a06fe37bc81037202d56d508b09c6062fcf16e92a6d618d5ac21398c4faf49c560b899b85e5aad1d06c2279a8d38d3d3a90e75f3eff13442f915d125eb47d68243afcc6
+4081f580a00000f08bb769bb2d287c2a120bdc6dde21b6c94d489b3b4ef3e4ddbbec9e2dba1c192530d7d60a6d3e6e07ee29a48bb50bb8004caa06b9232829e788e1f792cd8ea7955d663643aef02a5fb00239e2a44a6eea4384635d968fc359e4ef30af17ecf729fd54aa6639856cb1fc93c60d025a08e2a80714a56869d88ce026c42ccbba3943e4c5cc6e115a2c70c41b1ca6a2607d3b9a0231153c50a6055ed2127583c1d098908f6b4713b3ae758918069343035d8f7ee4da50e67b32fe5eabac0bef9f7145f56583b089fe6c656560a117d264a8e55c98cae566168c283bce93ee808fd77be72dc70d14f9209adfa33c6161e34974
+4081f580a00000f0ca92044ae3be0d21dddcf7d95a4929ce88bb9077af71f8e71725d90ef148c71eab51456434484436806c9cbf11c4d540a994a0c3b3445bb1ff50bd0c1d177e79835e18545b77b3f61cd330ab30c316330f5d0f504d10f0ea389b6aac56ddab43b4ff8241a29d308dcbd6bd752a693ec780bf9791bd7303361635cc8790fbd2afe3347e6fb4910852b0954b47965856db61487f30a17d44d4ad7ef224cd47ee74f44c714e1ff1e339c86c4d0d67bd2dde1cce779d16ca32a60f1962a67a51b0f3b98d2bcb144944eb94d9c417ab7528c60f0a03eaa519b4d8cc2d2b46e723688f16b5c210bb9bd74aa200b8ef9eeedfa9
+4081f580a00000f0385624f7403254ad748c1a3e589345e996d123a99378b54785bfd1f920a6b888069644a1df0309e905f1b1a21abb32840189de36907e2d29e4a8415d8ad18836550a679c0b403f946d6552c9c4a5dec76a6fd810dc8b6a1ea550aa459a7bd32c359f747b2bf9b87a342502065d5461320b32f5f86ffc7261858b03a886abe232490a38f23cc46e29bda89ba6540caeec4d1c0d4c82b9f0bb5e7ba31cd079a4b9bb197ef859b95d82dc60fb5577242e562c886743adcae5a1a1e0d61d0eeabb9aa2ff9b02b41135f22019eb5664f0de56a8aa716db2cb7588713c6ded0c1af61ae3ca44c475428806299aa3afc1aec29c
+4081f580a00000f08fb0436dc0954a5948b834e90fe90ebaf09a397059399f626efca881bbf7dd028002685bd42b7d5d829996aae29363c2a49a740ca5222042bc9133d7698da9475a8e0c3497db00a46e28df3e243c176c6516fcb985fe9c56cb81a7066485cc0cad8b3d7e60c892cd140d568b33e5e4ebb695a1f002fcf63e61dbd8cd37a1f11e4785ecf76abf67d5a69f02c234203069be99d7c6cb8bef4a6036b1207c3376c7121a2dcaebae2989e9d4a8f5896fdf746211dd9ae2110c75320f955f94c12edc92678866e646fe7707f9e9c5a1e411fbf31a44ad145546096d885451e03b6801acfc783b03fbf056d6b46c2231d8ccd5
+4081f580a00000f0b9c1107cc8ebae60bb0cc345dc5898d0f4b3def4761ca0963066eaca1581d833f862e1d158f24391033f6f5668ebc871db62c7455d40a07d99e5a5d5d408836d860f25de92d613a97e6ce1ecaa554c8f55d68c77c59ae1d10a2b663cfea0aaf3d9efbee96173fcbff06fef28106e8b844ac28b4a3413bd12e368d6c5efd7bc44702fade337dcd667f4b1ec776ab0909922960d5237fe618aea1677075921ef28563ae0cb018d90e86d99b217309e3a98ad334281f41101f92990287d911d35e3548fc41b5e9ef3c5b4d80f2227159bb3fff309c8d03bf2b05311966111050cc3a1899534ae243311d76d5945edbde159
+4081f580a00000f0b620af29f73d089305dd5b21db24c24c8c26052ff631c105ea807465d366970473e98ad8ac2602e2b037212838cbd32c2f91a7693a573d151d9f019fa7d234bf22b42407d05fa6bcfcdc7c9b1e5c34e201304b6390393127686635fc0c702c6ea7707061ca40d646f8271dc2ebbf5dc73b7297a87ebf21669e95f57b94a8f6299a5826374474db1dbb4c18f926f24d0927957772a019f23eda68cfa044c53a23e2b6df510a03f010f2a06d992944488636112b0f2c4a87e91486a2601db18a749a7d8d8ebe298ec69a100cdb70cd626424c5cca858e2fa13854eff36bfe959ddc9e325bb23912c4aa5771c200bb40105
+4081f580a00000f0a121114c6b227560a2a1876cea2ba70f6a5d393da3fad3e86f6ef03edfebe58d20ee7d507fa3a08ec260a37ecf495d0c20457fd670c199b0f2bd561dde83b847b63825e147dbeb2c666227bf49bef13408018c05bb967f2d9d09179c333aa2f170b6ffc75a70a171ce0f2968cffb60cbbb809d71ffe5f1ff13d3e75bc35fdf630c45ed2f81dca7e1bce756832385a997bdb5d24a0d35d99ada41a856ded20f8cc23aa7494ec1aa932e3115dc4f1d72969f8d1a5a3648bb84171157e05e6dcbb4302ea1980af646c0f298aab42fd6339ea511fa970171c1de3138f2c1c111036cceebf3375982de896e26664220d98b80
+4081f580a00000f03c63c414a662d58a69a93b86a0fd8a257da081d6df6cdc7eb4fdf812aea4d08b3584a0a440f41ad7cd3988f42611f9d2143237ab6761b37f00b534a05436f9ffe44262cc6c191e54e6381eb2053b19c96ae2faccb2ca01df8ec5ff0311a32e52ecbe836591ffd1c2dd2dcb2a4bbf1d4315776e499f01af21727da2783771e54d3e954cdf9e2afb15d39227e282b707b9168c1a2304f8c40c2370ba15aa9ae387f48a60f4a524d9350882f2241faeca14b28833624d59b4de7cdbce281017158202a99aa879f7a9d05eae6bcb2ddce603f4e90aa64a6fd62869795927c6cc65fd112b0b35ce926b43e918813094e8c4b8
+4081f580a00000f01730e3f712b9b3cfc57865e50f10b01af46bd2956e84a5b8b35d34779fd05d82bd65bf9a3e3b65c778b237a1e004724951303fe38f1131ab7708ffe3cb163554f09787e39f7f76741968abca66ace49a0cef52e55af7b71da6749ced00bf62c4497b77be4e027609ceae69ddeb24199a54df045ebfdd8231756b3df58473503eaa7f17bd89b1c5bdbf08ea505f6e030075b6dcafd28f17f517015d8c4b50abd4d8c1d4ddff74811754284557978f1ce9f645a40fd1048fa823e208b828c3a0fbc73deb4b8f673ae85d4100da34a7f3c3800b0b74bd273dfb456272e75b967b051a95fd1ba8bd897a536508e29c6581b4
+4081f580a00000f0b60ac46475a877629bbe385f03d863ea1f36502820b06db412a2924ff795c38facdf3fdcacf912f515077f669ca6c0ab7795730d08b9f00c85ea246708a3e8963f93f2263c152384619a96f15410f2f42df418f05378e56ef19ea8469d9f9569154912d4ba27c3d35e4a452b31be32220772f3025a826e2e002ff03117d0840fe72bf8914d66e0dd9f7d0b330641a1769a3aabb819be546ed0ba15527eea251bcf323c42ac11988ddb904165ab789bea5b4335b0cefb11f7b591b19a2e620b8b7a6de386eaefd8dcee4d2b1bcc49716b7c68518658c7c0069fb0541824e2396602a8320697d3f415d0f33d3bef873014
+4081f580a00000f07dcaaf2824c3cf0364ea89de19d132c8540ea3895d67d151a986f31f3fdadd1590f3d8367e3d47ce0d0266fa1da4e5b717ed6f19652d8f8b5c7f692bdb8018c3710fd91ad2fb138358029e1d922bec5927cb760573fb887d15806903ddd7b3bb25b08dc6fb5243b0c00c90a66090f94b175511d2d21c8c41b1563712be5f8822db32a70c1ce324122bbb0ebd6d9df9ed1cb349b2ae6d37fafb8b90e0b67bf98898257a3d39884bf634f755e8960b58c9cf0f7125cbf2fe82552940e9e8a11317f0f4059e9ecb4d7c369156b14e8b1db5a746bdec52fd12b1c2f5a2328e062d95854e5a03249a278b2909c55d136867a6
+4081f580a00000f0c873240d21bc007f76e124530ddeb15992832bcf32fca655dddbd2af5bf271cd8aacd192f43a9028f6ce08d2e6b54763f6ab3b830ccc3de5e3858878f326f7f24ebfe548af0c05259e0d7a463650f905645cb6559fbea639eff5ecc45af384fa5dcf670b26e822a3d427a09c057179285a7f7ca5853d5f596110f308a3a9913903b4519732f817e2c22372c9bfdf7b7d4c7ae31adaf2e8a7bd27bea5bf5435b2184ffa4e8ab1bb1efcc4cb3fbd5c09125c4f086d17f9c5c3cc25470fc74a35be722677742e3d0ead2bceae4160c2ffac7aafa3568898db55a7680e01c7dee230397c70c1afbf829d71f40b1861c0ae0a
+4081f580a00000f06fee5deb287bd12c5ccb4464c83ef962424ef44d03efac0786d82940bcbfc54c9c130fb8c1ce4c08197dbd4f0ba3137cb8d9451c989c3ea8700955581639405e71447b4189724fe58d8aba1a6b20abb22beedb867e008c511696899d25953b190ab99504512fc3c47e704152812867faf78084b92241089711e4abf1dac1f8df8c62e53ab1073bbe4cd5cd02f3d04a1371776ff2a830d90a9af7f9158f4d19bf262b21c09a129931475a2db5256884acdb29e9c29ecdd7963e6e1067d6ba4188117c311e5bc0044f7cf2a47a0296d762fc70a37a07a070cd3f52e59f4a24293c5c0617951c1daf7aa726e5ef08de06ea
+4081f580a00000f0a8d668ff3825f512b617b9e17b10bc28cc79c69d2b589c8c5727288c0e2b2d7b17e5b8f7afc3532d182315faaf7712945366105d5357122e4aa68681d65ffa07d66fc7af0850c8c616ba9696daa097b631ebbb1c0b410662700488af4e34ec56d25d6d4de869dd0c5cc9fb47fe922e92719a819370da8509756d1cea63cb93da2c4a5015c923891d1fec4d98c791de92dd864e908dc7fbfd74ba9afc91cb2b5ea26203c78562cb3583ab494937cbeb01bb2e3ed579f6004b70eddbf4317749c2e2830f96dc23da15ab68589250178fe1a973da4ee78e63d186442369baba51ac927f1ceeb7ac9dee01fada1c436ae1bc
+4081f580a00000f0de779ba3c6784cbb598c6a99c28e5794c9c5532ce0a74231af02415004462bd69763b666daf7fd8c41b347f03c4ca35833852bf16993181ee2760693c3bb1080dc036edf981cf5bde7c5afe8e53f3c388bca0d373de7cb98d8de514294d797223f038d31351db7fff3eea3d3a7e4f3886d0588bf86c1f393c160665b19071ad6aa1b651ab7bd00040ec2bea0129ffbadf737a4ce83b563454db20e807b9d06a8213c987462140fc47bf43d134b2ba548677e64fd38455d51e8350b7e0f28ebf0aaef269debd7cee79b6dbd7130e3b82aa1bcf27fab874859c118f404a5a98e1951efdb40132249ea13b0bef47f48a6c9
+4081f580a00000f08c6fc544b1b81e125a813f2b57a5525c8a1e44f9263ebb917c4f0f3fa98de99ff8cb4b6b9df230882ef6721dec8d824517a3ba6f0c233602063ec6513e38b1c350fa9c1708a1ae9948d9dca1702a94f5cb974252a466777829b69b8ba45d4c40692d101db4530c070d84389433a8f33f9c7d09bdabbc455639c2da24441e4eb68016e0c0704d88cc278b2462b0ce2b3ab43fc5054e6e0f81df70b673216ab455ec6b203aa7644a1fb244853cc43518b2bbcb021b5aec4933eba2c6aea419efde990cd5c460a7eac1480234b81bca3601e1de9e4c9b685a571e0377a4f43d8701ce896693c41bcc52db11e5462e54e7d7
+4081f580a00000f02eb8e615647e19b41b3f2f37ab8751349ba7f834d5b6bd808bba4f1bf289fe9aee1476696ecb760e4bdd7be88ad468073fae6d09e4debb8fbb93ef7a634c7643ca8bdc8752f89e4b6ac27f31940e51b89b16d05f9b454e6f6a85e77b732a9eb97f6249c5541fa434b97424c6d0e2fd6cc684cf1516f073055122bbc280e98867361b7ad1d56d18a4c83d41318694170c88190d460cda224ae6e21f80f1c6f2c86219c5caf4a7cd4c2c8430fe7f78255184ea90f805aa382c7b32e9f0dbd47d6e01b6830e2a3d8f3bf839ca253a247adc0134f2f594eb4165d0a2193b5a2b1854f2a2d5e7a52099fbc8efdbb65617c570
+4081f580a00000f0ce22be2160bb948bd510a82097efd37d0aa48295fffb24b112e74c0eaf3b100b60a16a76385f7c15efafa26a0ad188f026e68ba7510b632a0c7c0561b10ddf33d32b7c58342684ebdbec28d5d8e72ba954e96ad35704c90273ce1322268753d9e1f7f9efee4592a5ec57007c7ebc57dd34295fbc25d237c238a82b904ff4832c9c6732492032487216e57fbb936b25fb16ef44fb0ca8190683d5ae9f88d56ba315e666c625650277df0c237ba524abcec10aa57ae872eab44fc5c07d6967d99232c3cc0e8a9add23e01fc74872b06d159b59565e7c39715eb04ede286d0b396eb22b26ebe8606fca484548338d223ba9
+4081f580a00000f065501a2d17f4b6a2ddff2e19c08564b81b5894b44b409193e0de12f143a451d77fe076ebd45e86b719f85d45179765d06b6dbfdfba76b5cdee36aa4b9bdc215c37df1bda5f1700f98ee81cee7f151425d221b2e4a64e615252daf0a107f704fa8d714cb902549740912f05cf1197629af9808f3241f2d0a96d1b8036edc3e45fa5c08fac68bf0f52c3676755df8f55bae1422823ab82d2a0261e5469e5ae20faed7ae2289938ee8060859862441c685dd16fb8b9b051d44cafcd8def72211a50ae5b4440722e76a1a66326f6f4428273b2e5a726fd4902170f79646450ee6acc1fb66aa5cfd5571f8361bcb239e5944a
+4081f580a00000f0478cdb1d8167b3aa999202d7b0c3b2364193de3cd465a084c92bded7e5a30e9aa7619576113127984452c34e8a8eb3eedc9dc8245d64ab31ea2dd81fa4429e641b0da39612585753c37a1378e70d2dc3279271124653653cfa99ec6a5f92ee1761510b5e38fb76abaa8abb646e9ee6b834109271bd8b6acc0851b895c47effab2fe3e91b9833cf10fc25b1bb689123e733722a6f2162cfb68b2d8e1b9272790511d5463cedbc45fa54cfb0a78b1f54c1f747c6acb3dd956913460ff3b56042131411709751db27c074a3de9cd0c1eea5ff18165d6b3efa52f49bf0bd7c6a0966cf3d31c43af787f81d45a5456991732c
+4081f580a00000f05a1031317f8cfda20f9b6ecfa73b602628f1aecbe5dbef2911c35b4f460d5451e906872037947ffc557a15361ba60337295ed5c24036b5bd9468539119306fda64cf646e938740d91946e35b49e9c393d89657169f44ee87ccb09c39e034eda7e45b4627d86645c02540780049f447ced643f9ad3a6fc4c3d92364aad06ab03145052739771ad8db2f0b444c3106ede692b16a661f29ca3e338f1ccbe6082ab7c36b71ccd998f1dc5c1096804e4fe65ac297b8db0dedf484c433956eae3f6dd20e82a0422beb3881f26409360a73766929a234e43e86a0fa297023ec8da0fd5d30b2ce067ddd7b2c4ed54ccee376506d
+4081f580a00000f0b0205aeb69ba2dffa68cd522105bffc4abaf73aea7b15aeac3eb076f71b3707aa8c1de24f875b86577e274b66484a20f3ed1b78fc6b459a8b213fb5197955ef154161ed26122575b36c9fbd41c95202d06a6b4f95ecf0e9cc8326fd2b2e652d79f43108782bb59f1dfd09caa43a263c2e4306e572bf0ec93a5c0a456ec06037876cfb5b2e48399113b1dadc11fca152222e43c9989a23ce5deb681e9d40599002f21c2260494930784711d5848b4956afc7d71d62fc3e4e04ca65772bbfe0043482c8e0dee176b4fe00abd0acd33ada20899e31b071ccdd8d6159421c8240d92f4edd0086888ea99d97c7cb804c2a406
+4081f580a00000f06326ea7340b064d77d634fc9c460c084262a02619f019086d5581fa4aa45fb4d4fb7deefea534f3157d83982e15d598e056b676e7472b877095a03398de09e290e7591564055c7a18ce024c46fccb08bb5de8dfaf2c8babb300cb27b5515f7e0ded51d5aeba187050399098496af5415ec48c5617869a9af01ced4b5c4b116fc55617c75cff0b77a8c7cfd5694fd9d5572dd64a665f7d313d9ebab17ca5cbbb5b0efc92c173b2842f05dfdd60370c20d3f05fa1b0221cc0d04b2644dbd8089b8d9a838c1b668d864612f996162d24d2d344b19d11cd5e065c668eb3e6977b089fd506eb93243fd744e0df7e1490204ba
+4081f580a00000f0fc420fc28b3bdf9e958c79789dacc362bf17b5e8ae47889016e00dd1aab1edb6c4112238a65f27ea105367cc8fecb73abbe93d8acfc640335c909fd01e1d465d22771762d4b6d9240605e253d723f584268ad9a2a62355b72e548398d97cd3130a081e2b3e455b98be259eb8fd3f7c15b6882bfe6b53cf91299de09244bc40983fb36a8f0cf7520acdd8dda57e492b6fec3bcfcbc59fa8444221fbbdec745c7559ae4c2121116d8cdf254fa95c2a742a5d2ce6d61b31cdc92d0fbd03ab54bb081eef782f6f10f8de61bc07302b0529bffd3966e765ed8b5c24d3bcdccfea57f4c684e9caa91806580fa64d00651800a0
+4081f580a00000f0962ce787789710b33dce3a28bc8dc8f1597c15ce99a677ebeb8b68aa6d627dc4538617d4a38522b0330057a6d403b38e5257502dca449ab84fd77984875c380a8b5e9779d5ce224c899682a1d788657df65146f51d6a517c6cfd1c91216278b819e3e703bf4e7fe23c4fb9fc19d53124a751e451f07be1f9d11f5fb60d9ce5243ca7c60b78bc63dce6446022ebc16cc165fabaadf6b1b9f3db99301b8dca092c661415b0beb3ef31e1c9b99464fd492d961442d8340a60a2a293222e3ead2907cc9ead8802770f0ea7f3e08f5418abdafc64a57b4f454dfac70c1c6075ac41eafe49f5a7cafc16c3d62b89b87fc2fcdb
+4081f580a00000f055f0fe03512b5a7386f9d0f400ad60174d173059af87908e360303c3997ef5c8850fa9a297c25f228a20aaf46e5178604a3004966732ed1e9229be24b0e6a75b920dae544b0aeed4cd85eef59fe0734ed88032b043556b83fb3467cfa4bd6490630fc96b35a49239576b05b2e1f25d0952b4b9bde0c6ce46276963be4184a3a63a886074b80c9ae1c4c7f7a121a43976fbbd81e96aa72a8a4dab07524d2620c3d60857169e8dda085438cf67761a89f329fccc06502c6e49eed04de2dc1cb9460fa71d5d5eefac1585f4cc77ebae0795ec8c0d20aec9add28f8c66e4a569012a19fdb5512a4f852add0b167da4cbf759
+4081f580a00000f09208e583a26999220ed0eb43541b10d1df535bb7dff1cee649acad452c7057e690dc55fc66b4b216fa3ff700356e80ca76387291cc04e4cbc0e5cbf3e0eb1b471422cea75963f331c20aa8110262a48033a56e4b4bea140ef5365bc2cb2ac567ddcbae458315f67b0426b3510d40839f99587f5b381221beddbd193831c63340e627be5eabdea4ecf73e888f611213136b422b848c921491ea9bf9334e7ba33e2434ae0896c3c71281b2ecdd105dbaafe3694dc4858eb21240b7f92b38d276265592b3bcbe63baad618c79c1dc06d84aa36411a74c56e0b204ec9c759aed214cd3861d2b4cefb63b5f2a22307b117e3c
+4081f580a00000f0d06bfad3147ffe8056672dc53cfebfccfb3c029cd3be19114e5e66ed51a48cb377bd35347f8b422c1e0332b3e817f44651234d8f87830bd0b7d7346411f8d6cf58d630b1331f289721c730670db9b183c98abd36c94ee2e14e4d9bd0d2265b397ff1110c17a4683844aa02d9bdefee39ad2f8ac1fb7827b343c91aade83f0da748a93222de5d115de91364051e7e2b9a13c809139264f8f8b51a11f957b98ed63f9e0cc318f48038a92c4061fc7b9d53fc9b77050f236f5029d1601a9c20f13a1fdc510faad7111be3f563996807a366ea379e5854382c182a3870e78d278b204c71eef798c5cd2bdf14b9bdeefe728d
+4081f580a00000f0372922b911eb883c7b1524bd6e264740b0c05b0218844abc77d49b61b336da66dcab9ef98f3c90637e1c3e450069eb50ff9a75f46f27630d8201a2439ad0c12f0d4d7838caabb05a021d8b1a32385860c0fa7d61a124d09212f23113e4ea360d2e72e856e5c93f906bb0ff35bc1fc28336d572ac202aa26750f1fde0cd4c3644f1438cf250c352cb70d1f1a6f6b6f8b85c4dae3485f71a7c14ea7483955d0d5aeaf4835f9de2111c10e05eb9991082e7e25e48456e5206b97a32dfc762a31e66fa44d0fcf09eaee422c3155598271db3bc605e259910c963c169e9f460aae368e6fb301e02bb6742c31c61c9c059302c
+4081f580a00000f01137b6f596efe1726fdb3ea4fbe9c8856a48c3e500bd29b8b8de25175b0fdd351ab1d6fb88409eb5ea70e19d96b4a8700dcc2a53115b5689d85c70abcbb28bc176ed1dd725faed9f2593fe2e5dd7f954f99d503836b5234c98e67e7b6b54f6fb5a70fb8bf8ffd6d7ad0fe2f23b12a36cce532bf76017d5e691c704897ac039692bd1e3aa1135d24876a7c621a41d50b6a9e7bd4478d0eff1c4b709c81113ab178ffda6ff3cbbe69740689700c81956202d6c0b7014eeaa07e46a985358799fd128fca45596fbcfc8f61e14338ca6b19a2aee6279700bb3b0bd9b94ec7a3e298e836c8ab7d19e9257a0928df8b4de104b
+4081f580a00000f045e9cad6ddf0aafef24b2ac75dda5d8c5c81019a561ebf8a94960fa9aa48a2e54e0413524160261d2aa02cb81902a68c8e34c42bcf3a6c48ff9b5143ed06bcec692c2777eaba9a1964c8cca5559521d7fc94dd3957e8c495dda175682dd32d27fd30d84dca574175ee910f0a29dc9cff01455e16eb1aaf1cae992ee977daf9d69de38e272e0a6b560e8e4bacd50e13b0b522fbf4b5f84f495f0ce31d359c8cb0e796d778de4729a2634d9d6c85a05e263b1e0261eaad84a7ba3538583358ecdeaf803e01cf50515c16d8469d2725a638ae5a2d26bf70ded10a853765bcedd507c52894a8f270b25ca6db072d5a611b41
+4081f580a00000f074f4ebd4dbf12863d5a9718b6d03126948a2426efdcd795048e9c86cc908213c5a32e07d3713104375d1072b6972cb2f02293aabe4dfbd1661e202d885ffdf91af8bab308bbac200fd8fc00b3a1a37d795d687988436b3f63e9a875c298463567383add1b1ed7b12a687ea311fe5347d0c3c2777116a4ed1815fd7e07932d04bdf4195966408d9b59df09bc451a2ef1d1a34d24e7fd51e6db97d4ec8c0ea3fd20f41c5a2c5a2033200c6b8054e08bb9d95cfe30f93ca3d97cb47d564f3d2a894d5685a5353941cc54f6727e4b99789d30f914c9122cd8ae17207a6102fc3866db3b314074e2d89223511931bdadd1846
+4081f580a00000f0f03ac1034edc22d5d547bb919fdc87d2d4a2f6d5a7e39e0cfa83fde24a1d13b93b2dea9490c582d5e33b312bb8d882315878d261c0ed1417b48a00c152069581e2aa43f3e77d5764050db93b2389e8e90d9994f8fd0c935223bd880611f9f026d2cb1bc3806a25f092c492eb6f529e5933b955997351675b16eac2962576d118b012fed177c201b82374c36daa21d058b06f37861e6ef55d370f7e22b2ec8c21561554c58d7f31042d080d8223cedb3844ca4f4900ec4515710fde9ea6d078963eef07ab7ca6e3d3aa1d7d28507848ab4873c88841193a6a1340d46cf5c871480ad6526401a2e03c5822f89109796a6b
+4081f580a00000f09c05be62b1ab52f4978c0e73404e8e64f8f72636c7d79176320505e457e1031e99515cdafb6db07ade00cd806d547d59e43a796130cca7bdce7844898e795b964db2409aa59b0d653c90db02a642b1bbc8d282dbe400288c08d1ef3ce4c1496fa653f86118e4ffb69f9b619d56139b0f3275399cc2c37a979275306a4a5c2ebc9c5f47485ac1064ae0eaffe1a6f6a60c27b0d5fa73b465503e3da82f84c97d15fda3d1143f37a51ada28de60a7fd069e6b32e5d2de56fd6343bb398bd938940727154f0fb9e0622e4203cf30cfae90ef37a430ed38a4395572020ad1aa42ac4c106565336db2c37699b76d41ba832426
+4081f580a00000f0fd7614c054a64fedc54a85d5d4bcb165f634e63e77d5d05c1030c6bb87dafc0f9266d74632a4538bc7520dc1b4f3241060e22293ab05501f6851a89b31172333ef910508684760977c107f6bd3a1228d4b835374ded4e181586782113987e4ff18fbaa223ec4a58106f09e5f9395e46afb3e4a00a896e4b5c32d3988d3abc5f55b675254858844d7bf30ed9ad6e382f0c825b6a7ae9e373e9eb8d080941568eb1b0c20cfcd10f470dc3daf9c6a28d24d0b138a45d3da0f384f80f9c8dc27ea154c743442e9b2ef87839ea6a641f5f35093b4e78b65c46dee9255f584675b385355cbcd0d1a5a8f4b6f7aa24a85439743
+4081f580a00000f0501042d27ecd2214ae9fcd23425a85eb901152db6cfc1c25e115b4dbd9114696c178285f88f2b1e7600f0ff51aeee653b4b6cc17a1dd258568adf833a6ea37eb91b4ff25627ad5aee9097ed89bc7b87457020d2814003027e3bf49835818fe142112e94fa9583b8e298b6899b0b92cd1cad664b140cc1c3c9211360c477351cefd61eb25709a7b0e0c303850882f09c51620a14de9756882711e184033547e4989d0fa1cba467210012f2eb11fe99152dd32ca751ce1db8e184259b4823ef2c5d0d53c76bef10fec8d280bf78b1c4527d173910cb0818af6770fd579bc09ad53b19be706cfe349570f9748043022ad4d
+4081f580a00000f0d20d411378541272b64104116f106ae5a03a21459b96449f01f080a6a10ee03a23f9d6073b71fc085b341aefa85a9650035feab19aeba313476cfc8968aaf57ca8995b81ddd6759b7e59533ddb73ae5a22c303aabeb22198ebe05613981d0c6daa99eea7abc9d707d311496bb9881cd46f6db46d1d66121d067b23eab00b865d3cb9c2c189be224086039f42ca0418a6974e548f57102389f99c0a275e218d8df96ccb20f0906dcb8e4fd17825cfcd39c7ad10b8030f726a9f963fa815acac53378aabc4fd118eee20469efd86144286102c5209186da9d195e56092f0f2ffc9fab75bae4e34bf31ff1b7c5b7a9586cc
+4081f580a00000f0b8d21a0d62cb6315b1b5bc7aef611317a4b4c4071c88662dd274f02bc34415c0943e89cd08d10276a423890402c71ec34f84a18debf7eb22081e207e3ccc33c48963de91f8f1f4d4fb3c7af07de3adff066f023ccc48a82f10610b5a95abe923abe6759b06254688a1d132434d5f747650b4eef8320da04159078cf774bfa630816c49587c05d124350ccbe7b075c05e72696e4c7d96dfc5d44eac71124f61403f644f45a1f2213d722ed6704977f0717f04e9bbc36934190f37bdad18b8eeee8de4cf12f34795d8e179a4864d88d27ee6d973b654bb990e8207469874a68dab61ab28691121d1b99adba13977203afd
+4081f580a00000f0c73ef7e5e0343cdc905f09300594d6e13cf26e463bf977cde473a685ccdd28aae601dc3d40fe38a2a39cfccb690c7da3ede4368e50ef1601f9f3d7029f96d7a4a3d413edc17d44ebd146fbccf3745495fab4e31a50510e8a9544e6b05f12724410300749f36f7779699632bfe1db66a8f4ee07ce8580b0ab26caf4cdeb9eaaee5728dbaaaa694c80c3bd453a6b00f9f15ab9f528aa5097c29027ecc8ba4b336cd66827049f8d2ba8cfb75e0c022a89c775be3f32179eacb4590622fc99864d0aa1775088118a118cfa49848d06284841b8a52d5410ca80932d8808f5305be39356a10508fe85ea406b9e2e05988a9a60
+4081f580a00000f0c8fa0b9e43ecc88fe7bfc4606205f7e4b0a9b3d11388a3602837333a80f890a3f82cda7edfceeefd20f75349d6f9588725fa6ea6f094d1205a3477e416b8adf4d65d876d4f2ee218512607735e8a2064df39af560d0083328442f344d73f564db5be4398e7630d4c96e110f71567f534f4d70f23942c4f99d658f162dc6720b0946051c4baf4900a3111801662e051bb0050f7a77876ae7f18ebefea4a2dfd1d3d99a632edf7a1db15b7369e2dc75a6b1063b83bb231fcaae59da21bbda3dc9799b8e999f775f4a4f02ef1ab4571b9873f7a485da227b5304fc5ffdf1ac974ef3aa52f1b4c826031b18969dc8cc1616a
+4081f580a00000f0db23aa38fb93e3ac5b4a675eb850ef38ed4d86b2387bcd17e15921d93650ba15fee1259c6cc8ecadcc60aebefce9f9eb8fb4d1444ef2fb91b3289b66db5ea1b79557c29aa81ac3310cfddf243859c9ce1d6dd05c3c3d2ce4c12168014b6ac1322453897d148ed21cc244af7f9a7ad04a27992b91274e3cc02500b0b7d4f7989988aa64c4471b2ea3475eed24899bec243f3d4ece359fa770f64b6f2a78a5f96f8aaba896dd2bec839a7f6ebc504a4dc4ab099aaafb9a8ba11c49e41036e602f2f2cfdbea49e9855a43db9541c2af7a11a3e8d749eb83520586ff82e497a03d5a4dddc97635673cd100dadbc13aa19c92
+4081f580a00000f08b068a1333f12dcacb5cc97118a99e7671d7ce1dd99781b0f7a698dbb18949f47331cdf7eabe903e5546c6ff54685e02275ec69e79adb55255003d3eb8f154c9b8f0473d11fd4af848d9566b48ef16b5a486400ef6484468aa3149b68ecc88f1aabd54229d206ed9940a1f19484e3dfd84f5a755fc991654532f773633b55101c574822ca4b8f615f597cd57a5bfa8c4385cd3f291e6c46513e2d9b66e14fddca5c927414f8f28f03d2846a5cd839e3958a4b68d6614a867eed7d48e3974a85e6d75853aa20e2b8f13b2f7192cc1f8be37b95b5af4b64ed509ce3cef25b8cdac9b33c817667d4e8cb8fab212f4650e9d
+4081f580a00000f0911a5334a07ac9e5bd8fce046b85f3b0f7a73732b30c589b3c00e9bd82526704bd7a5935a10ded53e3228681456f47484f2b62b71293ca60a9cde8118adab03b649d634408a0aefb85178cef3f06d532209f2d12956d45548977ddfdea0d1154e58d9ffa8a55a8a219c60de4d9e18f749e73d16db17a96c76cd174f87de6d60db67f8a4de84b6ad40a1b651194a0d42acd9004729026c24e9c9835d38becbd64e5238f598613e110afcb80e6d0961fae8cc830e2a3038c9af28f214b98222a2e000d9e582fa8af8135bb535343e59be6b4434748a531dc6bacf7105047b836e0e7c9f650723f1032cb99d0119f4ebed2
+4081f580a00000f056085d196c4c3952ebfcb5985787a82461dc34af2e5435c7a8a68cea870944b6729b77741b8b808e9a52f9d593afd307f7d242353dc9127a2d12a0d83d4601af792b0aba2f9af743cf1d484f78a21a4179017b262e6827d98f51bb02348bf59fa7cbd66fe8c2b8208b6eb4ae20bc18489a0be1859f625c2ac3192f924015a9a4dc127e7dcd451be8a92b174e50a41d092a511f071c14f0052d9f3062fb725624fb1dbff33ded9a5a539cacf01a62a48cd3e7b0539bd5e4aed017f0cbf5b5f151121ab8919fe4578e742560bc9fa8a1b50fe3be0f974fd936f13b92f7c238d216ea03202b66e4eff64bbfc9d462e65e72
+4081f580a00000f085d27deed208e8f2fbdcad95f52e332125a81cd63d8be83aa0eb2c37dd324773bfb2679a550e9f61bb8863243bff1091b194bac4295602733b2783da2851a57fd7561c81d98ed7c2555e3db1c2e4202a30cdfc907660e889d528ef5b4ce100126c0fa1fb890c461015a1119bc3d034f81f9c6beeeded509bcae0f2c500362df71cfe9439e1664ec8fc28d372e6de4e068c8cf7ce16d32572509e6d4f185ef85038797ac220a0642b67903d58625c530386c3fd1201dbe951ab8bea0fc047b4510a3e202e0aa39c01a46d23b62b31f68a967674c83cc804434bdfbbc25c889fc3fa505724f02b26e36f98873ea04bae3f
+4081f580a00000f0a0c9a8c34961cc96855efc0e28ccd367de4d80ceeac42f926eb4c4bff95f40531db8e2d3626bacc74f7314b6d3a52e3dcaaca36648dbf263d9d1c9e339dde89de9ed9cf543aeacfe528f0de4a41b8c3067b49be66c7656975e9e27ad715569da872c2d2f2bc53238cf0866c88f012e99ec1f56cd7851af7b42cbc6ee96dd144e82283a92847155ca026dea65a4bbf036b8e1deb4aa12773fe75171a2ff486c10e95e15b85c29a66684cbd8b17d90ffb2b2c6c36c21fc936c39a45e4f85f41752eac76485cc9b1fda8619e6ca8bd87541124f7d9a699bdec4b7944ba262cefda397493600818d6cc81d4f5a8afc47d4c6
+4081f580a00000f0b53b33384f56e607041b2cbbe45f1357f643dd4d0506a49419008f3d87edda49b8569869846ecd19e5ce3e267661953d17a9a7cb9dab7c51aa112824876c3c068a07f29d7325d838492d1f9510986a67becae0fae9e15a8120b8f9633a1a5fa816b76e8e78cd72b895c23a852425bb3c2f9feae3d81717327135b1311153a3ee1e881e117dd64d56d6d4d9074dbc64d56cce7e37fc1f45a305cb29328c9620f4f0aeb2cf717bc10ec28b6ab3a60a9e9f33f90afdb6b9c568b14eb632630571b7f1c705be7eb5099dc20a79ee4122e39c5ef537646410cd616a0386d28904bafb02a3e744d9b9507d3cbf91756bf84802
+4081f580a00000f0a6d00f3da54aa8c8593297a82ae306087e0a572b8b7657f168267f4e9b5ea3320848ad43880b7850453a34b4c0ff34f3c7ff3d79e86e485dd9ee91413bbd89ba22e2fc4acdd180552a781891d1879cd8c338ae2f84dd5d203cbe0385af8bde527e231d069019e8ce7ff5e3a0c763471377dfdf5641c14d9749556b5d2d0e7588e8af011d5ef65d41e433aa1505a4d71a53c579fd0ee6e0ddd48fa61404af54ae235c765dc63226c16c30a4ca53ad03172042b05d78b4c663694ae8f2fc6bf832ffcf521ddf81a1f434a6456fac8c7a1a33e9b6f2407a56ad6d8973cab458a4bd9733f406a616760a94c6d078f7952eb3
+4081f580a00000f015a1f150f3c15dc0d0707fe3b914ff50ebea306278ba0dc0fbfc07727d39592a100459614be2bacf3c42f70b1ee2a2526bdf3e761f79473ab608720b5044c3751a88b3250e7d07f907dac0b4e5efce5b9572a8271867eaedab813f05b504d9acbaaf1e9ab248df6cd8133015199bee609d5ec39f662cf2fc120aea46069da12a7331e183d85560b67f9d7935388fd947953ad927e712b3fe72f8c5d39e84ddb4d1e9ae404327b3cedd36337539dca0681ab29e61469ccbc5f03916bc0e4a4c3b2c508b7ba32ee20d4337b13f466f7816ddf5db1fbfeb10c527760c97164d198dd1faa7426506e60869f35d2528c42442
+4081f580a00000f08d731f0e1ce5b9013867a7b84d2a53a6b8dda35a947ee406be9c243db63f5bb6cbf9d1902e0717aab1f1d07603178f441205a3d07fdadf2e41593064540d968a85f0dd4bf04577df13d9cac788a714b0f47b0d1aba910683b96d6534015b73c7a799d318a4146f622765630ad3a994f4f2390b2680225962252eac92cad17321a49686cc84446d9f2f0e965b452fbd7c3194a292633870659a5ce0c43bb824db7a371c8b36c254976a1b64bdac982aa350495bb9198d5792c5c0d930e93a8d60461168bd550e758fa08fd0128ecc2fdf2b47641ceb45b55ae7e0fe0158a1b304f03697fbece63da64a3bbbf40123a2ee
+4081f580a00000f0b276060c4db95baff5645512e3de5cf2381bc999156092fd6b37e7d155bbab9021cc1fa561924bdfd7eb7c269b2ead2d1a6e87228439ff20d136eca187f1ab23a2d70fdd62488e68d970ad648f5010d79bf273daabe41829030fbfd34b0a39ca0bcb409cfa05b69830cc6aec7441a322ea1e479954ab35405a490c67ac0df25566f8294f74b6d98bbcb7cb49105e7d53081fd3ca35e082b209309f9f07e9bef0db4308da3018e3fab82985cbcd20417ca5fe1c83dd64bc4bb5de912ffd0483609244062b571a57f722cd0f61bedba3f4031cebf025e43e5a0b57414bb637d707a108c67f874c641c2ba5d2c6675cf43c
+4081f580a00000f00cbc0afaf6c005d2e898e94acf131754a143b3a3da4046bddbf4dd89ad553a14ae8633cf319fcdd7a23c788d4ea4e007121176fb0c3a87e2e5ea35b7e9b04c493d620c0f7c36fc3f28f8a1c8b55e7f1961140879c75dc6f912ac29139a9cfe493f066a6f6db3b076f8f99354dbee52c690c6c77d61b88c29e01b1e7cfda9dd94983c4da186d88f4c7f94992ab2d15d8b91a8985fd1ebdea4c7afbaf9258d8560e829e7c1a46ebdd7cbe501e5f3a5dc68d7b6eed7e28423d559869464f2f7646cf0941b04c6965a89789797f349a31c30630ea09a6c7f59787bc4ace149c18ea479e38662937e72495046e20a06c1fb92
+4081f580a00000f066840d1ea1cf54354bee97de8a6ba8f729f49c474f23a2d635117ab013a7cf162bbf914369b3a6ffc895243a81b1292b629da3ace0b1f033b7f42b3bd6b472b24e9b56f35d2fab34a42b2fae7215b76557518b0538de5c26a35e48e56887fa79eb7275619f1c4d3a8896eface648ab76a7c6c1c2c361aa889041fbf9be1a9465ede252f965c1058257fc841cea8d10a1b3a5a830a3dd52fb326030f414dbe697b9a376568cb6d86ee165c02b919cc17718ac178f524c1eb24a507f66e5d0025c9638cd992db803184ca9d87d70eb0cdcee0b38eb9f9d596956b268282748505526d7ac05eb7c449f249a9197518d2b8e
+4081f580a00000f05f4b54308416bded9e023336a91a286d5a20685755547bc8d60170e3182fadd54e4a5fda6af09287ff9c940f7adf0278f0a2841f4a5c8d8c26fdbe8889cd57f1e8bf1f321346ba2ab6acbab6484bd27ccc0f83666775be2bc4acd3b8ca04c7ea388c1dd6465b826489f1e672946463c61c1455348ec664c4e176c7b2b3a14cf1ae84640fe632e3a8d5c59f4d6c142f8473f9e3f19156a5e709f36e9a944bd2a84a0393472761fc5daa33944f096e262e4e3af49a83822af5b71d5c7041eff991bd733d9e26bf970044a71be70831162dce980d4aa057f4524ab1661fcc9f2ec1f80ec8ec19d7412d50dad722a0de1877
+4081f580a00000f097d89de4f8188c1c2c71eb5c8dbc7509b7b4dafe90ee4c7d4bff15d711c05df54d1537ff402f79127a27bba4d92fe7ee347bc047a85f01b9ca81aec35204a198644483f8284ec8d97e8534fb751c109375ae35883f19ff16edb54f3b98380d72fcfce5509dc43c7c4b803042e02e6a11e6786476d0d8d90e6fa6659ab0d21f5526326efb0fb20219a27b17125c2ac4c7e44e21e8b1e68e86e384ba4f5d10a9dd12f8b6ea038d9cb7a340386a6c5e1c9ea0396dbcc185199ed7006d548e6ee92730161726353f8be2d43072ca20c10698c2a0859ff03bb0c7bb27fafaabb1884c4deccdca650b2bd45cdd83b2c025c9a5
+4081f580a00000f01bb2af6ebeb511a21327fade5b62d3ab1af2274d0a4973a46d08d64c887e64252663c07449ffcf4ce14475f48c281dc7e62b07858c57508386278d71c71a9aa131b4af2224e27c750c918c206bcf694f1415f5824d0e27fc07d478f428e6dc2f843ec2e95d78942483d6e1c569bc46fe0aa041b2afb3c450eab4bdb477dec155240c148b123494da961477e0dc81f9527936c5fe56cc03ed9abd64dad8a528f7fdef6f57355853f76739fe9928249cd2fe53ad7dbf319fb24f156c1da3431affb81c02fd0b16543dd6d2e7d1a293a2f14b2e25766eac628c9c7e92ab5a8b769e603fd95ba2e7dd5789c0404c199e6185
+4081f580a00000f0e3f40eeb30816a86b2aed5f53c498aa63e8e55774e556bbc0d4d3d25f2eca4b0dedde52a26ba9b4653a0c4b6245f1cf56633793934259e19dcbf73de85f71ffca052148ccb14e84658ca004f70e6c572a8340c2d31f855feaa629a9a4533006ffd6d8f39119e9fbaa786e3de4f19d56ea6e840a7ae51909dbab4cadcb1a2b7990cad17b5ccbe012b2e2b589011404cea0959e2ee16e015bb2e918d587044c3793177eb2d5f0d23a94f053f73ff72d6edfb949662d8b1d874562c38d528a2e5f02a8e35d0258f2f544929419765bd1b81c3ffb92df90d2d48293b9e5c146d3445c37f0d41814b82f9423447aa138fd181
+4081f580a00000f0752b62a2d82c630690ccddf80e90c8679df0f580f0c83e9956c60e5746f924fb5e2a09cc63ff0f85b3ff7818a0a1ab5fe2ed3ae069b8b6117fabaca15f05fe9dcb1fe6371d573f0b51d9a33af186a8583227465507c65ab122065b5e161229e266187732e881222ee21d6eb5e260d8ee2e6f8c31d334e754f2ffa77911b626d8274928167e1bcf10bf05c853b7dc31364af3d87b275fda022031a4b4013bfd2d7e07e4063fe1f415dbd2ce13c5f374eaac908b552e0997fde825f97c6cd31a14d6780703c7dad92ae2c721ec85776fcbc33843b2750c5d841e293a0c11823ba5ced519f287ffda393dcf62d9bc6e212d
+4081f580a00000f0669da881662605f59010c022cbd21bf626883572371cd838b4a87ca5b133e071f56bf7cf3226d3a7ec4f5be8fdced86eeda53ed2c8d80c36f4496031e8d51240d631a178196d4098d9ca0c39ec764b0c6aaf65206a7bf736075d286bd10164fcba747b5f10b348ee0a6d8a33822447fb62cbe9968a1770aca1b83c8ea6c8e3dbeea2a5c4124ec09c7c658b8444c52dc2c98892b6c6ed3d5f2961976f194e81496e443c3e8768a2cac893d0a5f2aa2af4a48d1fff5a70a3f92397e52f6a2caeced84e41c5817941a8019ddb3b1dce7bd58a435d9c1e16ba3c4f590f76d6bf303c45023d57fda033134894235bc1243a76
+4081f580a00000f0fde16df39c0008aa9d90e312a5500fbebd80fdabe38d5e51ae82dce034ee4fdbcc35bfdef7ebf76330d87d5575fa6a96f93b7ef8ecde8bf1ed2110b66ebc1132a55cc58933328b6b1c4a57dcab5fe4557510b4ae5f2857b65af4dddae38879b9fee7447a24a8b0b2da739acc5c1db5cf4708f8e7e15ed418b8d2e81a3e2402c271a04a6dc0864a3e2b1ccefa36179265203a45c7a9fc2e94708ab276d6c24ea0e15ebd4a0da79e5d01593e1210fd953d99aeff940a5b566d73d5b396fdf669806ae8f9e3471cc270abd19b121f38a1593cf0315097a46b73b7498b78a75980e0c8d2f1b20d214f8e55c29df882af467d
+4081f580a00000f01f12352c59c7bd16d9fbfddddfa73b0be61b14ee0d5ff045450a35fc1d971f6df77eb0a2b964f4aee3cbe4c8c05d6de335eda262609b175f40a8a6b943abbe0feb07c50bd3361286476a1563c61163cd4bba68b0908b87454900028a1c60330229cb8cea037fe87a26eddbcb990037e8268c2ef58d3dafd85a0680826bed583e5e2223cc90e6380159b5cdd94e1a8fb4f39ab2e2e5c1114bc20029d26ba6b322ddcf1e4234f19e26d57b3ff2b6015d6e87614adccf8f12efbbf86ac65ba114f4e75edd95a568193b3b94cf0b60bd69885298286ce7d2bf261980451322a6470a2a9be35ab0f2c8ab6a7bf875a3a43805
+4081f580a00000f0df732ca7cd072e1a92702269b56018ee4559e64f75a97c427bb8c99b6d3c3b8cc694f2de11bdcb14c8acee1fcfedbade9c96462a867af4fc9eaccf1c1a598f2f866b0c0872de202481549ffaa6eb7376a78fa6aa8f94db089820b74860b80e0ccbe1373b5a83f15c694b79428d445ce6dbd3a818faf8b7c3e6197a4eaf68e3ce962bd7a1e7b3686bf0f0ba08df07d4694e30b663330fe5f01e1e6a89f650b36502384a7004b2b1bf020fbc1d17abe118c0deb78bbf5713e7d0b48f0f747aadbfe3d163d2494a9096ac25a334ed0db58ea2563fbf2af1cf1639628c956b8afe3d714d4d9cd20bee9f7d0689a2ed53b59a
+4081f580a00000f0650133d76cdc97aa710476ccd416f3d664723c6fc1e97b4cd482bae8a4bf347545c089dfb3e38473c023ae9f0361eee5e42b90ba2f7de03e0c937be3ce9268217747d6bc99e2fee2bdf6e69a1aebe7f0046586ba0835dcd11656e675b650f5bf0150a2520b573f0c217cd382e32b30b61dde06d5997c5b220243eac2efd4f516a0a7ad17edc0b1b7f4311eee33126fcab9187c4e7216dc68bc440ce15330e1f03f1b4b6fbe73e6fc2c0ab148a38873ee4e98723d4d128038a58896fba762e5729bdc58567392ccc45e9ea646aab983dff86f865683d913ba23563075f6f57078e232229da764df8c5248f6d4f331a695
+4081f580a00000f032746bf61695791cca9a4ffa6dcdffad3726f05faad11cdc2285b9aade74c84ead8b96da4a174057c577ac5fa95f9c191915217730ee7f88a388b7083b45e348d015a606b51f5f6db4b6b5450b791d453df2d99526427c474b2470513f411f1cfb504b666df388a0d14f4991863e6e1ee85531800dec0dbdd66609ba6e6664dcf741ca7a137322dcae5d2b330ec33c304abfcb469cd13b389c81ea8a39d5fa145d0e6542dfa968a0c41234bd4d5dd588c2373f9232129b3fbb79f4bbd80b4327abc4d4d8885b5bb3463a92567c5ba42ab13b7a66854caf91b256791e1eb452b178e8c9a57001e523a308034a0ffc04a5
+4081f580a00000f0d25b26c734c3bce36d45de7d98ac88895cb3c3cca9594a1696a9735318c327e0b78b6e857c27ec038b0e88db36191d99e66093fec92d233ca8d346c3bc43da9d6dcdfea989f8be979fd276da8454579e2e881c08640876a58e2831a2051c32f9357df878b34242a101d00dc324c08987e3edda8c3af8f2147b4047a3538d01cb31d755a614ccd5ef8df21d7bc0e79ca67c33422f2262857a2c2fef0d6fb88f749e145d411fbd06c01e49880e3610e61c33300020474293b5806aa770888710c6fbed2a3ac0d5730f2a919d161ff4299f521d5d36fbbd8cefc3ce187f7980306a22ca8f347da449006ffe553b46a4f8aa
+4081f580a00000f02a40bf35837c4381b54332e4a8b23e08e055d3c7fcad30214eed26fd401f87cce988a1b17758a92b09fb1385c99deac9697ad574ea90a48e4f8c219ab44c61e124341aef67212d99bd1f84ffd88ebe4146195a2390dd0540ace8fcb83a1767d1c8a9a99f48615fb78c756f9140cb6486149238a93913915e46cbf931322bf53e33efd8243a9bebcd9b0db25c38dc7761ed7e5dd114298619ed181080ead529767492c26114851b24d60b317ecf83fe976f07a32f5b00c72d88f3ddc94411455c1aa3e952f33616e426a0f3a0f08069a93a3c61e5bb2c402d6f7a05f598f5dc3bb76232b11a37d3c942298c6581896ba6
+4081f580a00000f06b48e7bb78b0f65bfe2f10fd44652aaa933b3536d75a32ac4b9a69a65518fc2f8b4931418f9786b5745b4a2b468bfef611d2a2384a3e73dcfc0a551e9d750416af2b974a11d4253747dbeb5b436db1d0262ca558576089fb350be89e13c36f27f9f46541f069f4c95dc87402558b660c4662cfe695ecfb5f35b5ad481bf226d7bfc2ad7a6be5ac5fee0456efe0483b74c0dd526b2e0b3db991576e6e92190c617570bf0e84a047616d66d13290baa86035a3b85090c4604fad4516f1bf20e8e44c740850789d46eaf5f6c2f900e0677f634090c6df670497758a7cd2af8ef48e65869b42c2b762173380a035124abaaf
+4081f580a00000f0b6122e29dc567a41d04b52694f6e62ec88c65e45aee58dc16ad0510051ea930202a2b147e5d6a2b6fcc8fe7249d31e2dc056a05a3ab8a6cfdbbbdfe62e86884a5276ee8eb76aa7765848d9435bb72cf50aaabc4e8da61745a1ec9e01c7edf62726afec8976deff0e703fd1203622fefcd41449bef51c912eeeef6b41ca3cd458509fed5f441323ad2009d6ff27849ee07f5057ab1ae1cbdbd190e4d6c076b485e4f16d432f1e73208b787cb71a56c41732bcee6c8f249f7a0039fe9770bf4c5d6578ef872d816b6d3c15cf848b9effce4e98ddd6dd29e70e104fb58d4968cbafa2151c4c7e6a279e52c509a027603273
+4081f580a00000f031beda45242063f0fd6108c3416d6c734386dfaff265ad7be4f9006c05257c62cf4ca80a6ea0cf668768606fc06124fdc31d7590436d68a8efdd7cd1506047f83918445442ab59d38481a18194234673af8ead60d1d73c5b22ad62be3f0509f6303fc145785d739af44659d6d3cdc0d018d0bcf11cfc1061e66fa82ead60ce1b9b27ac3646765c30134678cc794368047fb4e60484f5088b8a62d6b52e454b466d4ce4e48aa8a4699317e397fc5f2cc5662c9eb08f31c5dc33ca9edd2d1df3fafd91e6e90917fef2bb2925c42032538d570dcb1e924d233c2e74aaf1ea2b6ce58a72f1fc62c9b28f78305d80ac2e9f47
+4081f580a00000f0e137320fb60b4ea13805eccd54b58fab02b98f6050a14770c2e7dd97effb8a900300a9ea82f4e92b8368a10ff671425a8ae81d5e60f843d302e6dcb9b08a7bf24c0184591f24bf0ea0c78587dc76628885942c29366e5b062713d6b26ca17fd00c1cdd0ecaf3006058a26316020c65e9dc2ed27fcf909b31744360f1639d2de7711d2b3064f86a98dafc2f1d4a52b00361f40ba945bf4e35b62a95030a4b399aff9237ac4372517c7eaa9179e51927279353e6c62f1bee651624f9e8ff782e2b31e6370bbc17a48fed9f25351da29e0c205c1e7d3c60c84f416fc689f21f0ba250069c0f995db674fabf3b9912ab5713
+4081f580a00000f0a5c66f3ec90eff6150574ee01d751d0bdc688646a99c8ba3450e987e2edcf00e18a10642d1b764ff69facb210273d588b536560b602a3691afb3a94a0159768c30ed98d9e9567a62001e0dfce660cd268580f1f35ef5ac571d955a4add942f94e49cd8e4eaeac25bbf70157bec5994eedc38dddccdcceaa4596bfecdbeaf47e2088e9a89cac62770baac077277f74986aff6fd3bafea5483713a78e0934e743069bf71128338146ccb6aaa97effe11839bc6f1bf6351bfc3dcd0706efd568496bcbddd122d25c769411eabaa9b91a2541d8fed6bf033d3f0310c28916031786a971ad83aa942a819358a0cc2232c110a
+4081f580a00000f02e430bbb389e7845e62214cd6632013cd9b0cbe2fd2b6c43a4adbff94ad367883fc5530a55689ea58157193fe350a702e6ddcc43fd62dae8c498a0a215b38f2bfde95748e978ccda1d73baebcbb19b4a7027856c4d56e676c2e05ce0cb23c9b8f06b4727b1bfd816d08e566c3fb6a4923111eab7838e30c3eccd91ce3b34a7026992f1d553c3955a36fbcc22a7d18203e8c1d3f62f174390cbed0968c103f43fa60f7cc5782fef949b86713f3701215528d33e6171693cd9f6d0a2ddcc62e3d358999a773fe973ea2634f1117c0db2f6877df4a90f2e903dea50644a61b04f8f3df24bda226c66f2b0644b133e79a573
+4081f580a00000f0a05b7850dc3487b5d096f426236fa2e052d6533ef28cf88cf95ae5318f2b1d40585047e7b65577d9afba453b1cce50b7d6c5dbc3e8f9a37803d095e8a763c1170538e635283495a3c4b841afcd5ba96f06631d4eaf39f7542249c7abbe28e268079ec96e1020a30f327460aacdadb7945c281b628f3290e6d9508462a314e1e23c34d1b730c60084579f541214ec9ffec2fb34a2662de65c580a0928fe570144d690dec73df06c535c769474a831f57493392cabe9aa8445e6d418cd6c621d3c8705b0d5db0f89ca336770bf97c4f4e8fcdb072a004ed6b9db826c05f7a4edc91caf59f72b7c8706de23b9437a07bd46
+4081f580a00000f098d89304b4e1931ceb5d9dc9c7f19a5f6c7c53c49f2f4cc5c1bb08d07780fb67fab19da5110b75e7631c52741cc188f79342456fca063a61bb71cca335fb4544a3805bba7e04e83fbf579e0cbe50f02edd1c0a4783fb68c52691d311072846683e5d4fd00d2bd92c8b1fc494189ea6c0f71588f75fb3a6eedd1eb91928b891ebd7020b4351c356791b23f3e69c68841c284e41a15d8955e67f76db559cdc50a5a16ae2cbe0ba5978be1ed7c0ed57eb70ff483047daef1448088d793d8f1068293ed0ea15d9d3a95fce56c3d663c5d864e33167f14b5fc8333747f2272feba9b55cc519612b911d12e6df29435e7cc884
+4081f580a00000f0496700f17625875820f824c42b7c3fc9e6765a5deb57208e7a55dd51a997eb4650475d1c8aba0ebc2c78e35953f49179eb2e271679c46dec04a86d00bf1286dda55a36826c981f47545c5606d88381d4dd3205c747c55753741aa6bd8f140bab6471b154b18fce5239fabccac400b46bf898b6186f4bc4923657d7f816bb36eb5b1232b669750f4f54fd8ef1bb30fe7fb2ab1eb4fc2492587170f1fd3223ff1892ff2c8a5e60050f8a6159342a5ac58942bcabc6cd27178038cdb39443cd1031a58ac2976f9eaed9c599966ffd86ebb39788c6044f26ff27fd706861ae966b8dc5f01d642d942e610849ee776dd75301
+4081f580a00000f0fb20a50e47c4a94fa79553afb00fd176776a64210ffad4dc993a91f76fa7aa808b89bcc71dadda83ae779650bd04ee0dc079f75d24b16af11df75c42553047a397e2d1bf03a2ec0ba1dbf628a28015f71146f85939200f8dd716c5ff2bdc186e36d4bcaa884059e76b9959d9899089a52299d0a2b92baee7fb56526d31db1fada55c28bf088f3dcaa704b5d46540a12134233e670afb3145513a1d1289f09fdee363bbe81a05e05008dc270c83c1fc50a59c6769b5099c5a2f54adeea36892ab74ac7ea2f6185608184c4212d2979fb4d2df420725493145c522650918fc438f0efc1ce1ce58345e0dd37e0b9898bfae
+4081f580a00000f01ce5751d6ef86265c28f2701c47e4431c79afa29a724f54dfe245fd79ad18ecf3475ec543358c72214d2c267b19cd8b933131b8b51cf48b9ce0bcf970b29c20fe75d457312b700c5e78c27a87912c8a9ff558983214fc2d9ab20ad427ae41ea143dcc7402f426c8d83cd995daca54e808f95b7c768519a194ba90c17324f9ac5972a26ee77c9b2d589f213d9d0c2a9b4b6461091d2f2f6a824223d15c15aa75edc417533542d0638bc841ebe07c1d8861feb327887b7189f9d2c5a09a007d981517dbdea19965efc9537aa3ece3ad977080d5cbe095f1f9d1fa92c18c5082960811d28cfe80c84e95d6fb52ecffd885b
+4081f580a00000f02b4959126f5f3edf307f4595b96f06665cd7fddb03d206d6bf390c4ce44030e489f7b6e1b370b830cc7023dcd7a2eb2f56cab9d2d23d042f5b9af0bb61e299422bdaa3ff7ae3d7846f6deae1886bcd015915cd1ec8a2de2d8ccab05a5382f9c2f2ab85067405df352b8f636a7b2c61de51bd94abf75143cffa761d6bf026a54bc75166226a394846b74e99b09907f9e8672518939f9e4b8301c5f20fd2160b41b9b6fa23b45ddab89cbc3b91a6160ce6f9a272090937262eaa9c32122b98efc00688cd0e14979edb0238a80cd2f96d3afd42d9fc77a953266b1a65ef7c2f2f8dc1511e904877879b1446106cc11c3bbe
+4081f580a00000f09aa0f59eb8f1f6d23514519c31b093b34362a9d91a1beb896ac077156cc960e985d52be3becc5111ecf0321f4ea51537d69d4da013cafcdcdbbcf9f6b5850df848d019c2068cfa66e47a89da2fc17e334110c191f647b81028ba583ca49d0bea8644535741e4d7742f3f186ee1c37df9b351c5c7fa3710eef94218caf63c8133734b1db7c7a584cf1793ff392c7f18fd240c76fcd478254f6ee993eb10cf73f48109cca3d2d454d86ea7103f938e1ebd605634b3598948172c604883c14a5ff91a15580fb7a8d200f8547c48873bc79332ec28d719904da8de7c397eb72800e25ac1074f9edda411bb1d9f32e01691d1
+4081f580a00000f072e88fcd656700d053e97547280e53cc156f90d531f95fd10bbd44b25ab322aa6ff5afa70012d452ff8edb3c9ecb3075f7c50893e1d50c0ea467444250d92658d499f7123c1effc1cae7a1a91aa0c6c3bd60c1ff2b40c098a18f1f5a2bb21c97556d5ac6abc9ab5f22f263a342f5d65b8026749afb73254c594bd1bed4e6f27efe03279a50da5262bfc54302ce6fa0f39c19b987b7935754a731945e4861377cdcdd0296e058d3da5207adca54a6abd407e8538b48471bf4ad807a86e7c72bd775bcc69b2e340bb43f31e126d8ed08ff87db68345b626368d7488dd17df7f68df2edcf17e2d25f6e70d807ee40d5897a
+4081f580a00000f07d618f441ba17721f98b34edf2455af05a48b36015f2a268a14e07f789695ede0210e2d899e40624d74eccd6ec4796e6b408567c1c50eba4f715c67ce06d86e68da2c205ffc53bf6bfcefa738e5dc8b92c70fcc1a2adec2555f9081f0754da359b9be7475bf7d6882216ae526bed7df75df209b9f7b6d5fe8325197a41490952fcaebaf8b50d8e18e246dbfde8a827848b40f1df7aee212a9a07cbad2f4976fb5dfb4f18134a46ffeb4e2d0d9651bd08415d252ceeb4b4936ef1f832ea2aa49c6232ad00c149892e2b4f178776f995f54e4a8233e55294f90b9a0e8c8207efc084443612d66ff855af97234c97c84caa
+4081f580a00000f05db17bea147494e31fdf24ee7b242809f336a909f300f41f72f11175c4b496b416658bbde176f3c323fe5512fed8d76408c63fef8784d466da4195f11b75957c2357234bf28b5375b5b30680709a242fdd22199c9151e8c21c13fe8a506846414339497868522b50cfcc101939aa37786794db45dff5e84f22faba86b1150b63efaa200a932bad096e2e5f8bc8fee40307476f649ae98256e74225b986ee62f14d928d380d918df9a5609e035a407dfdfe4d9f819d23d1826c6cf6d9565a5a232473f1a8feba7a2b498b37256dc1ae83d0127d390b709a09413c365ab8177b54417fd3df7e2356f5b28c2232024c52a6
+4081f580a00000f0f4af6f7f6f559291dfd5a06b2d7e4251fbc8a37885a5b78b1f45f17771753719b56005813f24e1ff213cda58fd66a01df6435dac3e58e4d29bd98659a474df02fc2af972e09973e16df70992a51be607abc06c545c68c35757d3038d2c849d5f6ca7beb3695dda53961729647c3939a99325e6189196c432a2801e8fe0a84c1dd8c3ebfc3f437601602894f2d99a1de78d151ade8450097eb8e68343209a77caed7e208c4132db3ce0f9c5d2973383c1a189ad4d74efd00d69ade2e116281b53b3bc7e0e21b584f7c55353961ffab621e3e7d5ef6e6f5e82027005aa1bc00ad28a3fd0789e73d457938ead17e9fa8123
+4081f580a00000f0677b4d958f07c8eb61d67047d5fabf063ecc456234c8140d08457c10d7ecbe93205070e0477024296858cdb6cda3a10aa4a884af9e46bd1144aca52b6c0cff834f9d45067465861550764d3d7b828d02d51dee161494e45c1452fafd58a9fa94afd89c907781529204b2c1e736d054af9de31fcc6387986275d071ef2562d8019d3a635c1371a9b47acaf4f744dd914540f5fb98c5bf6c1d5afbe0141417fc18b9bcc66be4c1142abde48aed6378e3edf1d4baa64c5d341aa1e938a1cae6c0b0ff7b16016af744ad238336fd7fd0fe8bc1fa4a289e8445d7460630b49efad61040f688a7b363c05412c8ca1f7bd3d200
+4081f580a00000f05cbb42a339cc08e3f08a2a496457eb5ec6364fb9f9441930b2ab0d7c2bb37c76be10280d2f2b71e12a5b56b6c6eb0510a2f877015b20215ce5667ee2b2626fa0d8864871cb6407cc044146b652f647bf4353da2cab5c556f02530c63d7252f7182ebe8b962181d89078198c2d1ad6dd9142ffd59e09a144f0f8ce9764cb8eb12be22e5a31919df6b6863ecc3a3b298662c1258595584e6f936c50acc31518f5e28172c3ec448ea3af9f4fc8cccfdc5bcc870e9b849b2634fb475e8ef5827e6f5041d02ce3794d4fe39e8ec0f9ba6ce440261c2f47d5acc426c46b45b161fdb469a37e6f2d13040db971847f58827d0b4
+4081f580a00000f0f2f5db118fc2f58167910ce5241255ea3e7bc569444dd4c38cf27fff938390e1eff24e669caf6a98af205f82a33ca2b68754c42141f71743a0769c6c72eb52934ae1ce78285da45568bff5ff2db7fda02ae93b010ffc6791d78e13f4ac2061f1182e249f829218894e616dd8cbf00b6a6d3d53705c4404768891d7b949226f4f87caa1ef1bcf69fd1fa007b0f61993d68a295bcaeb29c7f8eae422c5e0aa7aa14d465ca1d19bdd1b83d3c0cd1974bac3998e2929c895aa9a2b4d2b09fcc8dd7be88fbe875b94c701c2a4bfe38bdd5ba5bec72645833b7a58a26867b473244ee1ac0afc7d8be30d878fa6713ea36dc376
+4081f580a00000f056132b7db57a75348f4fc4498343dab8307899e4a29b2a419dc403bc19610d7d61c06121d89742bd4d9b736051b029bff723136477c8afc3bf4faf65fe612fc9210557fc8c5b75b3a1e227b81bc7c15d282ceb61277a70e2b5262dd78b75bb84170063b5f3269627a87be7cdf21c941d1010ae3f55279dc2e00387f9b00c1d66dee8d79df2f31b6fa97bc830403afd8b55be3c20f9d6858e889529cc0d9b8c57c00b8f3cb70fa2b3302eac6df5877ac056206ca69b463d689601236f37ca1535d3620653bdce99ec1e1214db5d3925f3eeb49da4d6d49d00795d94fbf771cd53992e27ee0497eb750a3d1e7e15d21e19
+4081f580a00000f00acbeeb190ed7239d764c8a07bd01dc5cf634b52ae901946dbf7dc7f6dfff24609f4356823c8101bbcec7ac179088032caff33c143810221b367c4eb46d11ead0c4cf7c8469844c6bf8079848e59ab50ac581369b005e919e4b12b9abec16d6e4dd3f358148f29b669a8949251699597a5ceb6f6e9bd0e60f860106a24fce16e9db4a5fb725b21309cab26c463deec14c7ffd6caaabfa12484b31a32c49d0dba30e33a0ff859ddfff0764ce98781b89a922958cceb63668cd79391ef0ec8126f78f5fd8a6008ae1d11f6327d1a7b7da7d580b32c5665d85bdd8505c5cdb5c7c9ce124bdcecbf6dbbb80f2fe9190235cb
+4081f580a00000f072b5873e85f9e5cb4f61b1b05ca6f6b96528465d040ea30614cad10e6701c8de45a642acb6e13a460a6d0a63b42c58e783da472e2dd436ba48ef822eaa0e903ab426529076e9ec92d46496ba759fdadf2a657d23278b675ddc1fdb0f14ff226f84a951026f7cd107e276f27bf093eda16326fb78af887f2fcb994883f5e01ee9d78ada30da66b3a07a0f9c9480c91b6c90a77ea395b848017051e5cc612cfe6767b4cb9dd3d20027bb8b31eb9870012bfe75d048dbd41f3f1c033402c6d87af847b98c351fdee72c058d7e85e300c9249fb36064b47943f0ac81651419c8ef8b91181f8d7d0d5123e6efbaaa6760aac1
+4081f580a00000f00ae31f67100b6d88d814155c92f276a19a9bc08fc106857ab2e6804a733e7a7df7c4daa3b9b4128900c3a1523c3373fc0b6dd1523d88a7d113c3d691866c73d317f93b1f224c57873a2fa3f0af5f87ce4322c8709c07b8a4a2060d6b08cc48e09f99fc2eb0941f4d192bec98f293f713b00e8c6f7f033afda5115b5ec7ae1583194f532c5df0f8a7143db1caff8801a61f3dc3a3282babd293d7691f5744535007ade6e13e2cc8a6ce5f2ee99ea11034bb9c65eca420cf8aae4de2c181be66c36cd65f97832ed53ef523d577bd58c68b43a8356059b2dbdfbba10e9c512b513f7fda0436e87df2864d13450ca716ce4d
+4081f580a00000f0cebced0391331e5ca29d1bf3646f90b311cecb987eb1d12c55ea461b6ee8cf8814d41684cd0319ae55efea12081ea1ebef79f6e7381313b25d2161c5be088c5cd2f8962aaee88886ef8ff5b99b82f8a63788b0a89b665129af8f911a32da70efa39c1a774b24a622df22630e2526416a1804e517d0fd637357c338c2278c35de01f34f47875a0266f2559ec3f07d3c39f5f5bba7fb75b491db13be178e1c625d2fd0d1219704bcf8b330fa491c56f2cd67ee80cf1a0c0c1bcdc8869df5937bdd3c0361528f1caa69027dec15afff3d6b31aefae2defce99eeacd99e0dc682ba51945fb8e70e8ba266cd63b1355b9f26f
+4081f580a00000f04249fd12fc5c298436c28935dcfd83038fa0ac315977aebb5b76a3788ff69f03afe46d65b1a3ffe193d0fcf7cffa8dde58b09b1d9c43e605776a188837c095b15c30cce159f6ac2744db9cdfb3e73fb8316131087e60b528593b8f0680949b19e757f81f715a02ca702c4c3ecb88a6603a5664356e306d6ad9d07b4511b7c586d385af38d16dffedb2a7ac4fce17bc5168c12262d8d7007a874ab87ca848ff4d3a9476ac7090bddda4669e90b61bfb03593e85c95c28226ff1177c69ed099c6ce10900bad1c22eb25adbf1539a69950d3624efd9a2d95e9c6d3ab4061d9bddd62c3a99caad18dcf986c2a0d4ad037b8f
+4081f580a00000f0edeb792dc825c9a605d84eae8ab2755dee79a3f27305b8036cdb1be05bcc153ffdacf16ab41252bc1efa2642e946b8436453f676f08c0ad2697bd02f324c49d093b555fbf0d9dd282316abf780324584cfed146e6b249f692e0905170deee644d37b3d60e359b6e55252837ec0c92c52c3380a208ce75fcd21819050f8de988501c9a2173407b9dcad9cbcaf52134885595bf509bacdd7d1aeb44d01d5e1d913854db041d1559d2e693f2633744e9816bbf50d87be8e126359c3ca999fa0d4acf0cf29acb3b8fdfc32f550ebe172635f6bb52b7cfe3cfb231d7859b9018dfb9e723c285a5c9b06445e4a68e99b18c329
+4081f580a00000f091775b437f2643efef5f98a572767d376347b535ca6fd6a4b9db9981ae5f68bf433dd6d6c9bec497f7e1e291ed93c510b4ab47d225efd813f3ac3d87fcfe3d614f7618b3f8a37abbc1864f16d6d8238d6688f97dea3cc07a1b8200b58ad9a4a4c9dea596020007f5d2e66ee3a9c72a234c69cb69ce5a414eab60725caf72e1a493a46ce83c8d6648d38d5427a74a01b87e452f497bbac78169e6b5d8ca5021486803b2a7592c97bb695a90ffc3494f9cb4418b3ad20fdb051356ceb9385f81b208a1f70c4d25e0e43799245aaf1243c3208bd83693481e12f15aa6c00dc6dba45f849dc87e6b351513499e4b6ece2fd9
+4081f580a00000f08ae8eb0a2c971da2a4b83b51794e5129f7f3ce9906431282e01037f727d93e2857ef16439c19cfd21d5b6636260cad0e95c1bd6d36dd9e2c71e6c0bc1b2ad34e004a9bfd3031e3c540187dc69ae5f3d179e6b42ad3adf91e9df0b11b3990ba67efb55393fba7a2750d9e2e8422bc642ca457a96544f7c3d4bb4bc44586288e0cddab65c029c6f4526dd428dd8cf49c9de01035dd3275c6e420d2f599a845d8d8efdd615d05ab1925097be01532fc8a8a3696ab84ba8229f4408d97c012a577ae846c2d5e86ef258fb45483f88424e26d92bceb426c61ea1d8727aac8534005717f0c44afb1f7c8d3d5e8f67a922908af
+4081f580a00000f0ba22d4c924d2362e0fdef8663edd19af6fd2f0f3d3c4a1e2a79fad30915db3345a93b0d99afa8d03c1171c4adac0049c0ea59b6b0c841ebc6d369aebdc694fcdecb6e385eef5d0bfde5bb1aac1ecc48d317a1af5006127ecdcf8dd4d87928894e61db25fc3916c48588a33df8b19de38d72374b271cf20e3eb82025a2a6af9943bb87b963cdf5b0c7a5a3ac74ae6a3480cd896565883cc200712be6adaa69cbf0799081be0fffaf027d777e93c735085db76d3d7ad9aee326d31b4a26adb2b605d6d06bf5145db400952512c29119922c9c01af7c81f24a0a4feab9b2ddb155746b9ff0a6cf8cc3dadc0e6138933bc54
+4081f580a00000f0578bd0dcdb4c07d37d39f5dd98e79a659daed201d21d74d90d76c055ba5497b3b6fa6b5365b4b478527b38b48f9b506e56606fdb4771b85e36bdcaacf676d7dfedebe1142ecd42d23d50f40a50d0a6a0d689aa9247f62df6e4c457db5db12f2a7ceeac8a5b661953f26855a16d6fd05fe6c44705b676465b4f0b1c6e0fbb4aaa5e6a65ff6a44718186fa0d08b61aa9d42928052df72efab56484fef271afb1dffa946c20175b66c2e100fbddf79ebb3607219dd412e698333ef06741d9467c1d0184c13e39b0f6b4de41c3238e3d81636a1ce8c98e14625afc9c2cb1a1b897206a8eb370565a7602ba4c29e35db179f7
+4081f580a00000f0942154d9bba924403b6fe7be43857486d6f8ff6067de37586faf0ec6bbc188eeb41751533afc57397b3eb5c9fc9936df457c8d3930893503c8cd8549584d24f2e9e138b243d7f8668defb5faad59c15be4db82e49dd0a278cb76357197ceb0b12bad1e03769b937603c09063f0c4d11b66d9f7927a52955b78b220010f492fe973c4074f2cc7f1d999523b86fa4c73df2e224398802c8014c2dbfcedeee243525406fa316c89a6614e19d68d86b27b7d321949286b0689807e19452d895db41c59460980c6749c3fb130c2f49e36c1f46ca61f95ff1228ea97cca3a81c4f6a77decf2f620f58b24754b0a0b8e068f5b9
+4081f580a00000f06f40e25b36089643b81625b0f5d1859c9d91a87ea2115ea716c84527b342cf4ba2228d01c5bd11b3a30be5c025b3c1bac0f04721d9bae0280ef6a0db782bb30e299b81a8b8a66ba5631901e0686b02d40f25b1493df875e12e4931eb21792d34ea30cba73d88724ba7e203f1ff7239614b8fdc671165229c3d49991662067f733899a7e1ab92246df0fe030a2c03afeadc2ef6e461eab78b127c74ef724be584ea2c132b21bb354113b7e47450f000212a14c72b5b8d1a0e4a5b601055b7d99024303c247b0c0f1776e2e1765c8d01fddda60197443b6d947b73199990f98f2b9bc2deb49da36d32bcf70a203aaf1335
+4081f580a00000f075bb5bfeb17ed87b3326e6851253a4fcf20e539a9d2ec1934374259a7cfe36cd524f509067a4dc0be62e478971dc48d3e0e874d6d02b26089079f2b3993f9ae6e52dc4e38a61db64883cb2be1504cbd7a50aded8e6bc65cec2a4d1d18abaec39041f8f9d534d2d0e396f7b87ae516c405fe2fc95847df29072ae231d5b9d91c4d470c136a2264e342d733a4e8870e1fedd3368ba825ec62122aa03468a10fa4ffcf115f7f799d02d27dcf816fcf2d0e812e4e38ac3bbed5706656a93ea4a0321a455b0e909d08fa3ac28be0f1cf2aa56d319d2e0f9f596932a5c05a000f7a4c5bb514730d9fc20b26346585866be7945
+4081f580a00000f0b155aa451c17a42635b4dde37ccdc4eae5e216a3aa2c6956ad36acd975d58c2ba02af4ee4315dbc6a8967f1ac75528102bd819e5f4880bda31f0f6add885ec4f9d93047f576fdf9d9082e6d923ce5fd58f30634627a61ea51488f9bf4ae61cacbbd787f56971b26dc95d6cb52df57870e773dad9ed77f936135f9f5a41ddfd2819970c0cbfe4782eb63fb585456977a638a782ab1dea725fd7005adacc358c4f5d2d9542a676dd785712946ed9663e79cd83bac1bf48906fa0fd41eba11d43ecef9322d26f7f2ef65c3f4d5ae7dfa739c3fb41138fd41e2c40dc0cdbfd0f19ab6b20cab7b8e15a305715b886364ac967
+4081f580a00000f0ec8463283674b1a93080ae8f5f1f65c7546104a70bab1497f5a3d41b2fd634d1132970e2b071d03891c29a514611ab0d7d1b3f5cb2f2baeafa4a1a21074841fd439c1fc7c989193dedc3d36ea42fab6396a1a6e5ac7ab52f5e53e2f9868cfae9218dce691ea65aad6d298c9180aae4fffa1c88ca3de531d1da7a6ff7445ced22c79cb016eba7eb458462b0132dc30b0cbcf243d78ec34469c7f0e01434193025908749cd123466a5b731e1d9e553a5ae9c3e66c7bf23774f0e2502f26f1ebfbce319f3909282f6dbba67c1b9645b49842dad2a2afb1fa31da692eeddc3a5a535defbffc1d829da2630ef4bb0d5d1ce98
+4081f580a00000f009716056e78f95638f3cc4e2646e18bd5fc53c7a77b83b52bdbdbe17ad3ba58229397b9c9666a4c1fb727f29f9a13e1ddfd0a672fac6c949b0620d59b746a048bf3ef6af0c12bdc24417657df427a6a59b1cd611679700df188363d4a8bc0b29f001a5499255cfd69ea4a76b507f520f1c760b03fa57043c6a4634424913f6b9b9fa39011e93e2fd8aeac1f51fc96300af7e8f8f960e8648f57be4e8e8c179f87f2cdbc83bb0b3216dbbe685b55db41fb964506a5f9b2ec7099b01b0cfcc647742ac44a5acf464d980acb9ac9907bd10085805646c647f4e528671bd6722cfa75dde4caa06a358d8338b964dc3bf63e6
+4081f580a00000f020ab7f0c96ea062b16e5616ff17e7207bab28b533a4019b42cecd5f39f4ef1f7aeb0f86133fbaf7f74c8df7e58712bee4c9327c82a0a3d6abb3b6ebe721b6f985203167b97b1b703324782054a4deafe2882a6a1e90a9ff5499cb4db5cb3610602ba2c7f9591ec7aca37e9b7fe5b6cfdf7dc5122d38928e08e953b6792ae9fc3188b9830c591b6100d2a315df0fbd5457d07fbded0c54ec985dfd4249b2584353ae60ffecb786dddf4deb515cac1887f4c21245f4fa3bd0e4574fdf95de10c4d571c5b8df51422e4e2cf552818b0f886c302d32cf374cbb7dc6ec0f9df08a6f0da1aa53af88e4071b242371dcf927fab
+4081f580a00000f00554c8744349f4352aa0602b58a7edcd96be5157d5392d17e2f1412f8789b8b18e5d1ef5046dc2884c0d8748eb84dfaa44b4a78f375bede1548be0f857fd7913670e0ecac42732b8745f608850b9c41c07ad90eee2e5d4e4ab3265a889f8e5b953de9087a0cc270698760cec69aea353e9ec4733de19f9e7023f01346e557eef2df7eca770f74335b07fd8b6b0a1a54f98682ee08f9ff410ec9015bb81ed057837a6a9c63e81e74ca75912c3899079da08edfd7ac475166357b454cb387aa451145f14a38d20252fd06c716894c427cee70e48c6eed6cf983fb2fa919b6ee9af49a053f828c07a3b36ffb8d5c19fe111
+4081f580a00000f04b0e107c192fa93ccd6f3a13a998707ed3a42338c64a81fe7446fd0bafd19f261f13f57b3a40806b3f7b89cd6a5ef711d4238430b1399be8500b57b9eb4c7008c9384b50644dc3336a7ea0158232c053d60942057e421175656cf25e98803e730d69101909efcc6b0f1888079ca9160ca9a3564db9ef2b743a93daf99cbb0bce666513df2e981d3da897d22fdd5c42c0aa6e0d1ff3191f712fc13c8ef9b2adf50a009a4617d34fb244e93ae17d277033157dd9748c231af6f7fb8ccd6c1f3e37f3b48c51a8a3bf30409a8b39a92d315f1a11183cb98e2e3f63a5a03ee03dcedefe0133d3841b84db9f4f571f9be1e52c
+4081f580a00000f0791043b3284ee7883780443fc63cc6c76f2cce5196e16a1140792d90ec4ee6d5bc47b0f7cccec0e178f267d14d0960ba4e8f4dc4d44903e94438bf3e2e748f8ef6c2f3289515f382f73673906deb29c285cce8b11220e084a2ad7ecade14f6a4b51cb31a817dcffd827570bb9f38c83939c73077b4074130af4002dff148375617f28c77b37268f8e19cee615049312b96def50cf23eb9b59d967ca26f4c789c5d5b9f191a6a1d6dc6d9b8042da7ba72bfb7861a695d24eaac918ebb8b95e69fe3a856547744583e5a3f39974c29afaa1cbdcc418c5c6f389457325eb945685dfa9b75a27774a924090980541d7afa86
+4081f580a00000f05108fdc44da6e43ed7b8854224aa41423542c28d1de825894f09e5a791de610e956c96f0968320c78ab74a7ae8a54993e15abf7ccb02fd0d93710078ac44c11843b2572330f249465e90fdd6bf79a1dc1318354235fcc138687f5365e7a444f725f6bcd68295d9d9d1590c39660c5bc16c73008356e7527caa24f266b198857ffc376485f1b6228cecadec7c4c7e102282d90bdad4278f885349c2e0df156eee8093a790af13101337ab7e17edc0e78dd1f0453063833c8f60bf1a5f91dc60b78d70c844614c1c4e80ee2acb3f7f6884a97b10a30c8d48f032dcbf4d3992f327be5079d36e754523a846632997fa969d
+4081f580a00000f0f4971e37b40419d71118b51b885ea47449f059977e00828cd9da549355cf15dfaa7788d96e1166ba4394d4b7512600a397b5c8fce98adc50fa533a62215a383f61380a15c9dda9343073f3d3fc893443066a057a04739a5b8aa1f57b65d06f7853eb869cf8f3d1d4e0df23af8de184b4bd79b6992532ab375837043c0f9110e19d00dcdb38457ef9882c9f742c230f8300e5cfab1d2bf47166e75a6f1bc2a8292797fde552adc298583fbfcea9b01742f6ef4fde588fb1695ef1a5c74c95a53e5398c5f0897d27437fef5ea0bcb85b087e0f98a5abb01c84a8f8d7751c6cf783b4a74a80189a6240aa77f060e7de216b
+4081f580a00000f04353b9a498b3172f76855026ed5d6c2ba96afc4908dcd55371a1eba9f98866f212a732fab40aa817b1a2fb382fe311744442e08e04ffd5b4cf50601614713a3819e0149c60a9f02a8a94d34e1f5a2ae39670058a5f1f7b1b862636e250561a3b2085f39f1529eb37658d3f6bc28e5a0da88d05940222f63bc3ae78bb1e4eb99cbfbbbbdd7cfe33f57da831934446c79860b172958c755e77a4b47395f8f7454c651fb708a4eff27cc434e813330a987cf2eb33def0d62aa991d0095f600bd788a5c4e59ca0672711fe1663a7ad497626e9f4efadca5e768794788a51f3463daa9212479ee8ecead54f424b9d85d0ea13
+4081f580a00000f057a29ed2af69f2f8883929071574d91e1e124862308f5cf600ca22da491c14fb816bf600f60bbee4555004d2bebf8780f6780e9b62fd5a070e32980636f7b1ac18372e8abcf84171513ce6a7972506e9c0032c279d2fbfba47190e59d8c49cbeb3b7d3128c974a81b7a3879a4a4a1084c126cacf26099889940ee2609050bcccbdaecf7dd6ae3a06876b86624a5ce5f2bfcc40c63a83112d71e2401fc0faec4463cf478e6388c336d45bc58d6656d33562189a2fe22cac3b04050b661bc96c1fd2b0ffbe737f3be3435158be04949c0ff62eb43890c4ec20aa474de71708e892476ef7a321e2eca73c05c32946f772bd
+4081f580a00000f0dece0846ea251d52126aae9372dce3ff83e738a915f5ceff83d6d0518400ceab508fa7092f055d059af08e81c105449586972f681081ee6376217978b7a21119ed20ac95f2308cd4efb89f0085beaf1582e588abb2d21b91da57176e317a1b557174d8f7b76ba1faa738305ddbbb754c763b5cdb1b91379ef7cf420613c4233c92c0c72c8d13628225256cf43cc7b660403c03038e1dddf5e79b691a0cbdc8c6c7d00711572b9e9595f0aff5a763529f9b17ec9b8854aa755e3791675aced07f129137e064504c3f907120d073ad70aa9dc06e139b323b9dd11542b947bca9207a08e7e0669c32b665ddea651ea51c04
+4081f580a00000f08261e366fcc3d5f27b632ccf89f4e74239dc8007c7c882a6efb30af3abfbc27a39c0d086d25118379bd98e91f7c633b02af509cdab7ca9a53e2fefb6c91aab49be906f60133cfe5d8db530ce16ce51587a364bf064df29c5225b3fcb82b6e983fac1549761d90323fcd932c63cf4b2176edf721108e5188abd77764d71849f74773d50627912e6b75ef9ef8a6cd04c9035e4e69f76b15184bd1dea2e9f83700b9d039fc036ad7927ae7dd1a9e4bdf041393769c4de974cf9cd637fc7d8df54d26a8678c2288048baf0c9bde8ca0b1545d2f1da5d069405a7fe1bb807c219a1f3aed8271bcce6271c061874efa284bf66
+4081f580a00000f0865da1caea22ba6f89ab117d0c74d2a3e1b82532e4b3fe8d4e5b00648350ab9665ecbe2e0f185de52d7ccb28ed65c60c40a89ebc9a6b96558cc401a388cee010e6e458f489ed93e866dd6d21964acf18b97e3e84f35bec37bd9cb0747decc962a4c36b1a2d3b4595497c78edc34ce022a4e138e70b1d31e0b2486cdb4ac6e3030dc4fcf4eb3b6b22f05768ce883b09ac3c1e43fbbca022756b790db31ed94a425990fddc50f30c03e79cc77bf1e21b0d3e3c77dd5c7950b107139ed9c04d52833cb03a555c5b3e379fb2c51325451c702b383441e7ca1dd764f7964dec3d8e3bfc1f539b2e3380e83d74dd141582e610
+4081f580a00000f0d7a23daf12b590ea3cc27eaf0bafd1957316e04dc973be6d0a712d600f12c03a2c5bfa1ce16e25c1b59f7dd0329e74299bce04e082e709612fcdf6a5db0090c68186877ce59ab4c55333357867f9ab794d7aab1c23ebf41059ff054651632bad2edf717721ae84219bac5abb5c50c8fe124884855239a9f05ea4538fa61c0c91aea280a789e67e6b6322d976083773f4341752e46b8f7102825447964f7c8eaf00826417bcb00f55ceda68911543ce583d602c429d6502fbc1af6ab7af4d488a8740862c87131f166a9cc242e8b0a2e1a5a9a8b29099c92a4d75afa0f6d360b3d3ff1feec3476550b5af786f92e60966
+4081f580a00000f0736e6ed6940422b3784c16e4e6114d253c97e990b90f78b95e1d22abdc30e2921c5b39d3d17a1180177ca33a716ff7ae50fad4b3b7e7fa905722f13ee77d828e5bf9ba24f48ea338f48fad60d0e83e595774570cfd49159d15c531cefeb3c093ffe9f3c0879ac602821bcd3ca611bed0bdf03faeeec5ddc239b651f7737ef650a46baae98527f8f01afff96fe859f07b98783530b8898eed0b192577ca73de3aee7d69382fb18e296762aaca855ee95341ea21a7e66b1268ac176b36d32c9b3b5b247794e623efdf7490714f838fb40b492070f8a1e77f430e2d9ef741bdadebace46184acf2bffd136cc6db50d0394c
+4081f580a00000f070fc6f19f3f0521da6c77049d30bf125fb7977e283d92574b5a7dab9c714bb1a7a951de2896f90e8a2e068caaf315f4e23f66148b968d4eed7658d75ef833fa44de9b675e1c1ccf52bdbfb9ab8668f6fda78476788df2448996a4a3b6e867ea486bbaf58cee7daba94560e8d664dbc07e3dc01be31bd826b4c27317cfa38b40eac2a8b8e2d94129f4461c584cea76c65c0ad43142012e8538e9009ce86b52e0a6aeca0199eaacfd47a1b981d4ecb081be039b20e42ba673c98f425be632fa53957f99b9476b499db1a5729875265861687fcd9d0970350d37a6891ac3ddba23ef946d2dc09d723a6f4ce75027c80f578
+4081f580a00000f09f2cde0971c8598fa777a0afef52c0f0c4131aface9330d90c2b88e17bf8485b23986fd9bc3720f608a82bf944e68ddf1020da93d80e34b2281d11cf4acf5c4a296c4dd6f8ff1b135e9e3c430b521debc052a43378baecb6b6222c220d3d91231b76cef8c86779dee72e11b3db17f05fa475990ab5b924be976f90a4435817c5bb87e855624662ac47c74ebb4591901b88bfa1558307b1cefb6812bad8ac069b034bd8ef6e4229f2f3acad36c899fc38d3bfd0cc98f47c4142d0da1ed28f3a6dce5b5e2b054e1ff464853b2c3b6609716972d60966028d1a5a3737615b7834e3aa3701e83cddc51d565f10f60b9582a5
+4081f580a00000f0ee0791cb350fd17ec243f93a121b5e4666bec21f3ecc65876064fb3b6ec8173d37e7a70c56b601f0269147a7bb5daa617e5ad8f07e3c5395183d8c45131bb10453a722c9c618d2f0d3947da511e51b5a50f26dc67bf1ca21b63558a361caeaf0e84bab7d85fdefa04cbd8cedb433faddc7b2f210f46cdf5c601a75c1fb9329ee1118547ca80d0c50a56c94baf98c1131dff8c2d1052f809ba3936982e1fea845930d420b639c053435838c149f6d961e47a7d2d6e0c83b404fdc3e10d5a340750efe288cc500bb135d28a5332ee72960734d1779e98a2be4a0d335fad94ecbd54670eb97836710953e465297b3f83dd4
+4081f580a00000f0f23de944d529d7c91bd7f94d0198f4f457a565f8ffef4c8fbc5d1656c3ad7436cc294edf2d2f3667705b82eb12202cee8261278b018465667797b6969374e953e71dab68faf41975b19d5af7caf45a009915bd7909e7f5c02a925dba88d0d6777d2bf37ea2a71a33474bf9f13f19381185111cbfe2ffa64ce0469439fc0e190fc8ad4a8b323afa5cf2346a1f6161905f5f45263ab6d49406d760f59534b6f880b561e090f5194b29d8c34a7ec2b258f4487260eeda33c26816fbb3a84849221a69790af0826ff9ca205888646108d92bf58de755f192d914d217733e2011c02a4ee24a3d65c976bd0375fd97843e0d01
+4081f580a00000f0645f7213f3b8c66000b6787fb904b14a73c4746df3cfca3e01512c0655fa75bd8780f43971518b51940a04b3fcbb2f6a0092e2609ed67bbfdc7afc3be6ec5e671fab9bc5fa383c8e618bee2246ac55fbe894b518ef7a35497291a2b3d838256706e1d3136c3cb26e6bdfea6fc29d3f57e3fa50e3324f1a8c1901b36c0b26d3c9751fb5fccff1456442f95b80fec401883cf100c123f407dbd0114876804595f7aea4a1609fa18fe7f908cc2594e53293820912681b9b9d3f27c83118c789a7e9c3fcae1077003a75f0bb2c104fe0fa1de9690ca786b3d9dc4af006cc2582c050a3260f550ed4ee80abf3f4b703c10f25
+4081f580a00000f05ada165141c5068caa71fa330340b650336a10d94b6e240457ef26e9a194c36343908923acce7e40c5d18fbec6833d20060cd41298cda904a451b8c6fb14536a7bd31414e1dd5afd46ed2a1fa5434546d9b2a7850f9caaa083115bb30b7ce26b380d39c190a0d24f5f35918f3f29f925a31ee9a72bcca37e55ca425aaee81ce4890b451116ecec90dac9d49480c48e70b1c64615cd265d5228f0042e2cd9daaa4970ccfc0b9a76e6c0cfbb9d05fcad64b48a496d09bc302ae584a5885a9c8c46467dd991ad6d968a15f1b140c14ccd5cd3b2cd9c925cd011fce9240b86b73017128486cb0483402df99b09bb714e9eac
+4081f580a00000f0ea0109ba7d8b6b77ba9bba8de0c50a62338b954846c16ccfd97acbd183b86f932a90040f08b23563ca2c7d80659cbe5f41ca24a2149aa9df11ab63bebad0af977553b35390d1fbabd80e19cb690f15b3d54727145f9b594a6a6a632ccc767b6ab0078f5668b3743f9e81f7886c91b5d651bbc92cc9e54705ffddce821107fdc7927cc9d612d9abe3c02c7c7ee9ed5f04e0627577be1a3f03511a8f7b912150acec3ebedb1a76bac5c3b8709f27c7b0e0334a94783206d4226c04b673a36955399bc2f27a353789aa502d6f51f4a9bfedb5e817a8e6bcc1fa82ae3a62e07217c44f49c6de0f30f7f8ee5e41f9e693dc82
+4081f580a00000f00e2f9f3a169c20d35c4c0135802d9abff40a598ef50b3f0237051bec8cdfbcdaaada83bb7b8408280c6672cc750891a85cbc2d61edab62935b4df4a72c256ab340b6b54612ca8afd25f26ec5039fb3e0ce5329b8ca70014538cd49d97bf99fd628a5dc198c8ef23e6e6bffa1f6d13b99a9390d0848350612e9084d45dbf07c3022e3e3fd9ac5e9912703b0c4ec2bf0429368da8640b131eae1eb3ce459eefcd68e12aa00358d60d43fb85ea6d1931b2093834352270f484bb6cdf45f2961aa530d69de4afac7271cf0121c969375d8bb142de285868fc848d8045f81b7acfc178707a296fa22338f2f23666c4aa607f9
+4081f580a00000f0bca32de3cb95d24e89b54181ab6860eabc9417bba1c38acd8a1e25af749f8678bbc67b41750bcdc5e082d4af4b4a6c19a77813aac61585b438649e6074a80f5a7ce5789dc4eb8ea8c5a5a4cb4d485d26d2201d6041e623fb9fc6fdf78ec3d8737c34d634b768a16cdc3ab97029750bca7509d281bd737b654cff96130508be6b410b90fc06b2a5d17881c077361eea5adaca2caf170148aeefd9707d853e80870b4b1170a0d93093daaa0a5ba8e080efbb2d35f9925dba40942fac9327f5d05cb1cbc94232662a704484714326cfbc2031cd04780cfc97593efe8faee6d055f44e97598df57519638fe92549c6b34c11
+4081f580a00000f09b0b4edc83e461c3515f5471f7c0d61e001014a83b0b28839461a0c6f6bfa4a2d195d6c19f35e71776a500487548be62b36862a8ada162b3ac51e5de1e3732eaa1a5d728129e2ac98d51cb1bbe719f180790288b7de709ac1dfd0910038a8e450cb101f32c7a9b2a3564918c3afc7b31f594693d3167058530479c8c7a0b7638a87956582657fb15435d0cb1fff1b8d709d1a3c52282413eadb7b3e53ed70feb8a91aa3f28bac0cdff8d5b150ddaaa8c9e220f25cccf39350cdcbad3688f79a876ac28882ecf346f93f6d99c3998f12d70967658b6014dc3d281efab7a043d149d39a64a29569cb83a395c834af393a0
+4081f580a00000f0f2c41a7b93cc4c6eb5284501fd820b87b215e685dac78c51c9a2560b8a240809f75eb7fbc89cff66bb6995a25a788509987a3576c77590259913be13aa683814d79e21544a99b5dba5f26e376a6cc051572bbdc8870055ad706d61b46851cde9a3b2dff85ad7822cf0be37cfc5d020dd7e1d260cbc63d428c94c47e51bb2908e8e6a9300a30597e85402b7ca92822aea5c55f8d4ea350aa2b6681dbac2c7ce7ce0674f22322a8951b4b84901a8527907be1ae1d0e09c59aee9b4bcc7ef4240b9fe2941129eff0c662686d94eae50b80025a910597f7ce86a572292e4f9174d5eedb0cfcd567219fbf207dcdd0161ac95
+4081f580a00000f0e3df4b5c32fd10928cb98896c204e241ccc3c5ab37c34974336c1739c83c23c33ffdc89e4781ea2ad5f252dfc8d89400f8fe34332bb0e385c2472b96bb7cf6b36d8b94567e3eba1fa5fe6e3893ed565d3a03c835aa56fa2f2c02309071e383998a610b42a7fb2e906654219d0ab06034a836a7b685bbfcd9218de20ef9ea8d55d621a0ce3761c99dc35491e048df653b835d4cc7b793b29500524f1f7474bdac905cce05cceeab83310965ef6279db3b44dccf5f3b4dbf22b14a1d92ec10353256b9e0680ed46a2e0a50ae9633f9c06858acdfdb474efc0347ca8fef86c70c5cf92ee171d88e952b63500ced674fada4
+4081f580a00000f0aa38b2f6232f022160c112c0fa8f99ffcb50ea781d1376a23d08b831f2d1652ce7259065d552749e7000375c3a75339f95cc42edce1a19e4aa312d4b09641b4e4acd7947e47c142c87205c8016751a75807140495747cb1536c453841dcff7312c62cd4296912f1778d3a5365ea6d98e23f4b185691ce8fcd720c7bfb8e8da2775a3c3c08e5668b3e5dccac9e3f9f5a0c4930088e86f67af423f07819c55f38787d5e9ecff1f0c72d92c49c127625add374f0f2f3798b1df38254b1a5c7875b3fa697448fc9b5c471d6e531b2e405060aec245d0e4f00578718a40728fc70a7b5396c8b944e8539678b1050fc80d0881
+4081f580a00000f0026023c305c2cec80e5b9071c46226fcad9ea9d602ee53f84822242725315b4a3487a38a53cb66284875590624edcea738aef47c89fadddc0708f826b3f1738dfdbdd79231f7ddf041e65e42da78e0ab9c192d0214821ab340cdb24a16969bd18105acec06348ef4d50540afb4df0276033a2c8359fabecd832ffd7ffcd07dc0a9f03d92b571a1e545866eb2de2479b00e99fea8f1bd2e00000960defec18316530da3998bf08cd3d5c743fe811471c31aab25548a555d970d7dedf7aeb429345854198d2d080edce03195b5e7c5d126a463041b944e3ff1ba4a58f25efaac8ae112aaea36c457ab682e0a40a1b64212
+4081f580a00000f0f1107bf4222052b3fe6f0d869339d8a97a9a2ea4d60d83f4be4e1f6c5367fb9a298d039b16e59d115232b428c16f811d5a60924f6bb5dad9a7e30f2f61c77d39ce209f765dc47242b3be7dfe6d97f2405852f0bcd6a58eafc30c790025f391c67c91f72040873d37124e26627906e5cb2384175f390bf9c5490251a9f5f572c2b3481108703f3534194fe5f89158ca8189dd93f45d0d7aa2fdabd896d071c04282d811583902dd4a7fbcff8e21c358868abf726d929c3a9ca48d01a6e5e5b696b190bb491712a6bde4b420680810183d385e545481d3526dbe77121f45c647dad5626df790e3a4f7b2cb44da0d710082
+4081f580a00000f0104351cce8b29e8854d310543ef8d615fce4705be76dba6ea5df79b62662574256ba8ff0bc69a40b4776445bce668f1a2990e0e082e8311c6296146d66dcc764711dc5ad63ddd823cf865a9a7dabb14794dacf4f0a91820cb4ca6a8abadbaf8b41c193807df49bf70793e5e9b2e8d07674495403f5ef926d6c97af6e1f38a02c3f53d0e3cef36f4e078c0851d673d78063b30f3fed98a79850042b21e9904df5a23680ceee254c69f4027198c76c9161eff9052a4e11af1ec1b2f35c43b7a2f684ed153353a16cae0c212c543af17ed79535eeba747d0dce52903027a3ea7f881bbd87ca65effad944bfa354ec2f7d35
+4081f580a00000f00c492cb8c0d9b4e6c403c63f71913b187d12093dde0e5df50068cfa2c3842e437c324bda546680991cb2f9370d13ebf99555de93bb4b630ef3ca203ae8ba52699484d4a86f82efb668b7c0083c39e0e246f9514306e7af654437115cb3bde156e654b80d19e424cd66feef3ec11b8b0c29e0c74b82c9fdd285e062ec412afa40b6cccb533693d8cc2af3f836a43a3e00215eb058fcdd5923b2325eadddd43747bc6828ecc0f0fcab4434bf49538c9c576d83ec6eccc2c930d0c8a7379b5954f4757887ce15087beaab390d74560edf1e7f6c96e2a7a65d9f73585e2bb4ed5869d10c541e37f4edc798570d61b516694e
+4081f580a00000f0ecba705afa21b76c02bafbe6bf6dd52a0e0ed8de175b7dbd9adf5f014b6c1ffd716815cab0fccf7a060aedf7b9251cd9501e42e3153070488e50df48ca260bb1e57c0a9fb1929647fdfec731d75e128a43ccbed443432c6d979aac9e87ea76b18d56cac8944ccf64e815f599bff02d34b98032cd82f0d6f251ca0908b9b0bd4faa03900387a0b4620ac7d7ea482d081a6adc1e476975011a3cd8ea6746613c24a709e6d9c97903b2bb16f2e01c3f92363ce6bd40c4e131e35a6ed700e74d6f3f45c4808dbd7c4fd5d33a5fed59b2114cc97a6bb97f3124a68f6b622c5d325ef02c6f0e82914b3e6bd29ec2ee61dd181b
+4081f580a00000f0fd80eb6128a7cb26fe2b76d4e84f8130941574513344272c2469f5d6d4e58ad4af61dee5ab044f853193f28bff1d0a966a9e7ff3de20431c9e84b1abe78fc06dcd3dd49b66d55616a9284e10f1887c40f783e5f919c40a36ffc294e2a9d1235695591da9dee43ccf9b0fb3a1d886399f1ccff94f17a2583250bd5bf6fac088b96d9591de98b3d6c2f17a40a09f94502ee2c6eb544c1be3bb1d47357c5ed1387d1f6b596071c35084efd2af60fde3aadaf0a0c58d744610e70db32aad999efaf6cf6be7615e063d3eedae20b4a3a554aba70d07bc2f06e672711fa07f1b962ad9ed03e9a61c10426def68a5627c048f6a
+4081f580a00000f039177ae8d473259b3ec08f6945dc29ca634564c15de4e49080b75a49899fda5d369cd8a0c01b8a1d2e0322241e7666f1385d681922ea34ef04b5b7d418dcd491a0dc337e0e2ec124e974848596f44cf693abd3a39586c47706cf9aff74a6a3b2e025a39027020740bfa3b8dce2616d9aa6ba1e2d56370bafce6bfaaaf1c6fde186399102a8d9f22170f2f2a6b00adfbf3900be17d600862508a6fee538beb4561305605b6feae4095773a72fff822a7427b128d6c7157ca17fa652dd65ec46380fe9096b9d3b316aecced00758916ead698a9975739423d694c5798d880fedb9996f9c153f6e9ba611987c620e7ce877
+4081f580a00000f08c17a8da32e89dbf0603496abe606e79f01728e3cf3596cb4309f764bf5846e1204f5530ab2af6c43583f6bded5d887b20bbf7fdac5b1ec5e32acc923885321a1ac828f493daf0721852364be15105c6f8579fd7c1aae6a496aa92d7f8f990316d3c27d9ccdbba754f873f7e1e239bb3ee1113e2d7f3ba03f2311cc80174a73263168f7d14a99c4aa35ddb8bb21edc0eb7cdd7102a27e6af20c50a1c5ab90fec9f8503f5dfeb10990aaa8053fe4745d259d703b09222bd53fe9067e5e9bcf703ac1b5539c713d6e36f64b2425c33570fe6d09bb9628ee68b62c9226068870f93ca418a0cd3a440fe35e811f1a00d884b
+4081f580a00000f03a5fbeb35eaedb8486a6e096fc11a6b41c719e472fd0db8c7842f3b2779328fa861e66a8e7bcaba4fb5abedf36afd2778f79b721702b46b5bd43e6919bccd01c1a30477bf6bab35b36758c95d7201b6f8c58e3a44cf6665299b6f373b38141d7ccb5152c40bec3c6730b24b0d535a8850a1ba8ed4993ee6f8d4c04093e54f819f2ec014e0aec080d6b2ec7e8c14e2c6c18a4297bb584a9b43f7eb66301f2f1010e9a560b872759abed7a451e942542c49864dd87374343e542415bc0b1e4b76340faaaa2c4f250cfb04f90ed920fba974e7bc2060c3439401268bd6565eaaedabeab6298487673fd46f1a756ceabdd77
+4081f580a00000f043611b62bc99d14a896182ef17baf819155fc644fafbe8532f07a2f464bfb731e973f735a06fad2bff31fef3919f511b6070348286f89f700dd86de9f28a63810aec34bb3acaf62776277bb5382b9aed07cd847de87b7b6e728596b020b10b54e53d09be860abddb21684e2c15e19eb3aea990b3cb45c6449009f45d3d52a68ab5f1198b6fc5faf673814904b63c3accf7eef24c40566b852d5af3f294f0da1a6c2c7987692178ccd457231eeeb5aececc73106efa5bcc1cac9001c92584497ec507363360b35c6023b9df83794ecbd59adb6105dd4da19d76a5ae32f4f4aa312e357b5bfcb38b3870441312141f5d6e
+4081f580a00000f07aaa5ac3acecdb34b6cab6adfbda1423488fb7f0201fa4ae3916bab61ddbb18ace02819d73a7e6bbf38fcdd8aecbe9bc09689c0489687f3b25bc7f19686ac7bf48382280bbcf91670118fe4145290e2478b9ae6e4f0089d60311f145cbb787bd5349119b28b5f9103620af25f01c01d0be4784930fb5cd131100eea28ccd92ef09f3da1d9467e98eb5ee95db2d0f310b6f4fbe422aacfaa323cf86a5771095ce86014cdf3da05b112a6672f419a095861a412c8618495e391361ce685ee28ed3c376eb214f6b3d2d34da50c3dee460c51c9a0097db706a83836624d5a55486a01f96a846d4af2152439810c5bbc82e88
+4081f580a00000f0aa8edca4e6f3fdffa6f889a7156ed77c8db4d06efd6088488ce4644da631e7e3837beed0e9701de84e1d9e19d44943aa924e376e5f510cb727c1082ddaf07d2f70f1f60159e4fd446863bc17a4a1b1c4f2507b5f7e0e4a34e2c98ace9b12a070e2d638be0f0bc89f871ea16cb13ca2a5a1bf2958ce3e691794785d0189af72fe436d2fcaf21586ad84b664edb6d18ac8121dc1315acf8253d3c0e58c590702ac86a50b19c738101f714698dfcd57ace3ccdb14fb161b41cfa134da9d4d03b8f126a8909be71ec59b509a9d15b3cd74cf31f2b5d4d2696164385a5e03517f1079bf4a18ff2a51440d71950b718d1e9072
+4081f580a00000f0978ff37b194a73b45f4d422df82da20340f7ec77decb170dd992796ed0a08912293adfd5e3c95073c7499f99a5d31c1935ec7aee06f2d7cca0ce93e9689a14cbd9567a2f0593ee949324dafff19091fdb3b7473800d09ecf539900898a1058acd8cfbaaf5c08b673bad47bcc40a0fbe6715ddb84796b4e2709b2979958b80faef6257a1dea0cc4eccb16352a14eafc3dedb39850b0e677e86ccfb9cd63c596d72cc9f82a0df415c0b2430b63a3d12095a1688c7b1b0775472c29ca2752914b94ab189c1ac821faa90c6a741e76d604b8d45a154e4d139b400dea3d67266fda781797bca1f96331625d532e9fdb73eff8
+4081f580a00000f026d3d0cb0491951a6d881c066958127760bb27d4ac1d56266894dd6bb0b91864e3b6a7deefda0c5ab8cf31052bc4e6354ed2ee0d98cc5f7e9d4140a592c6fe9b9324053f7a5ff6ce1a8ac49dc6e4bd9c2706cb427a7888deeb0fcf1a99d1e19a6b0dac01c121743c2ff017350ec9800c4ab0438e3e8195f391e470ed3a7c17d43f7f6b0fe89f51b670207b66f9f92cd6be33581e8a75fe4b4af83938527f4b03ecf12e718178759b61c8c5fd687e232e2b4189be65679c11146913e02cc80492ee36d905bde094ce2d39c8a8fa6cde7f9c1c0a1833817dbe6bb36d0e941e197bb825275c36f25ae8e293928eb4206492
+4081f580a00000f089b3534a76dfd0581533c54ba92e366c4a41811e495fccd2979f81cc1becdc3bc24b8b74bb2079483bcc7b9542f059bc61324c496a076f60ad570d82286dc26d4f1bae9fff188389f800b5004050281598360f5878e818d4965dfb791a58c8ee60dae9846033c0621c92f89870da4214a3942fee99ad9ab2f7ac3ceabc680b66f11cbb1ce43de96e49343651bb040140f0a4b7f9e1a5a4e5c46120014c1fcdf699ef3af49676f429656ab6cd2aa780938e2030be2c1e5909fe052ce7343f3d56f05fae5b3b7583ab7a67ea10df233b5c5401d5c9fbe2ec43044e505827a9793de0a6140fc2aed970a60a2390b0dc6646
+4081f580a00000f07478cc41119b511e4a4181c7e76c2e8749477e19bb3dbd2a65e48125a14e6cf78c0a7c18e6de393f46b3dc20febe2ccfe7fc3f925df3ee706b98be822a882caf81e8b9385dcf07e64d6eca6cad604fdc45ffb8a7d07aec834aa840c4777ecfd6e150f66722c1806bd39d79f80abdb37aa6269dcbc3347155ce7736ff410cf6ad84247ec7d7babf9b39b114ef6bc41e901404524e3b44dd038e8303906b6c9876614be6674ecacbf012769302071b632b6956d719e3db42f01adee44020e31a49f78e9f42875a54d7ca9a80e06c5d76ac1dcf875730dc44ee16f228019f0f8850a94002c52cc4647edca8f819366466a0
+4081f580a00000f0a715aceb0b640e8369f1d76334ad4dc2a5d365859339275f36ece1d68b609bcfed4a1c2510f86729734d977722a3ab59f9b6a67a2764b39df89fff34b94b46b5f34056c2d99b1d5582267e7cbbf0f90884793ec5e23f5fb4e081d6c69689f1fea0298fe78a36dc442b978d682b887cac5212b3a149efbe172680feb9500900e23074bf66b0fb3ef5134fdb47cc0b9c265da42acc7dd227c497255efdf0b61293b952f08fcaa26ac501448c51f06b785a4831d1c7205568028cfc66d4f8bdd4ea126bd977d970b78edb2cd0927b43d5319260dd52dfab57fe436575724d7eda22bb56d31bab323c8b191c28733a4af41a
+4081f580a00000f05190513502401a38beeda209ebd06c2d1e35a0bd0b57dc02ef9a51c36148b61bb590ec539f013ac39f9a47e24b6a2d66fdf20297340efadc23a5eb71b161ea4a6762b50dc20e482be94c3b152fb0dc12162595e921399d66ee63ae511a8b4b47c034e26f01746369502cad61572fbf430cb4c6b31e292b917a3aa04918121b59cf5e05128c8673398d074144a098d03d6789fd825f139dd0ccae64c368df10c2765e3f6364df82f5f4df72ebc2e0a03b884feda78be4fd3f7dadc3dffc892d7754c735d7ea41afaa8e5612ccfceecc534302d0401916515c513db02b6a1134eae0f787d056063f441c8a2e5cb88998e6
+4081f580a00000f096c612cefed4dfa0ede6a61885ea4cfd26a9a8157ab0e6e09dce388003fadfd83a94026f2a4240d69802d66c53f7696d12f35ce6a67deff3fdd9b0ca68a171e70b5014393c318eeef05b441cc007a436ec133b1a6847c22bbcd3b5247407321defc7ec7b1e318c00721df59dd3da1210d63623ba05319428128923fd5469269e2556aa7ac27381fab4c0acfb550dbe9702bb9401546bf022de65b28f244aace5ec0b15fc0e1eb86303693de333e1d7df59226583a0480b8d33d34b83d294116bd3d79098b3a4079cda94c1c9bc2cd63eb16ab63c351fb1b9ad03978f7115e8ea9d6ca7b0636155379f10ef476ebe854f
+4081f580a00000f0bb48aedd3bcddb2c56c0b5fe03966770615dd42b030b178590b8badab20df0a44038f6875e419bddb5e92cd5df585503bfa9bf1ad943b0491b23ba59901528443edf05d23380184f1a15f8294d824ca768536413e6a6fc168b03faf8bd9d72fe1d3f7868a1bb56012d139d9b665d69974a9773fe495186bf660253467559a8c834b80b8e76fce4770720396f0732f7d4672a37290ec92b880e8208fda5082db916902ceb5fbc82354b3e2d23380c138ba799a691da93d189a8f36408230813de42ba56e6005dbfdfe78039fc3524abee407c2059e7e13d436d531a492fa3f0cc84cdc5efc62e73c9f95d594318a38c35
+4081f580a00000f09617b1935030bf3209a12fa5363f14abe4a484368e9711ab1986f1ff851bbcea2f7578596a2756303268e98935b7a465842f7f363d87377a0fcbeb0541c9cac8985da8fcc8d27dbb5d1ccee1ced03ee3d42e89ea08a497c57684916946dc555a311caae019b2fa0965e03ad551a2044edabdb6101ff82830df8843d7f0ed313aa1e7da7dc3ba7c5564f4289488b883e1292b9ccd7bb5354ca2ece50a33127425123847cf5e278812e11a94dfa2773b6bcd49a3043c3bb28fde0ad073c5cccd23b922a4e78e81cb3575b0c0f2466a6a76254c144db496c4b619c0109770a79509c5e70680765f453e928fb52639f69fd7
+4081f580a00000f095db0f0ee40ac2b3849bb4b618c79e2e847def1d3aff9338af83bfd16b9d08dbcd5d8c6e483e627d4c6908f58509435aa992fb0118d6f053871e2ffd065d5b04aebdd20b88e293836967e2ccd0bc3e03ad1c1a70aa5f823f06e4945f235d809d656f78200ba21427718c03e0d200bafbd488e90bc55c7b44dd4719d7eeb25ac831fb7daa0c42bf87981e6b6c6f4be82900dddc09adb8e683ce59f7901c2ad29ea8f48e3e51b8119a2d3f5e40851abb390f003ead3b02ea8471505568cbc5c138be7e5ff450f5eae37e0f5e6d5c57d480c6f0779d1ea50fe63a89b544b96247dd8416a334f0c320e41615b1d683dfa1ac
+4081f580a00000f06a6b2742203a2f07d0be7defe3fa7c6cb38a4bdb10db10f55385a535343bc143f267d1b112fa89e697b46f1413918b310bfcab67cd658520eb287c85fe3ecb4ab6725f8433348cfeb55b54e23fb4180531a7c0c3347986ae69c945cdafb025d169397452be8df3a3280b18469e1f601353323c952f14daa664ec300ceab098759845276b5587799450293d20afa8c19d4d9b8fb699b4cc013996265778fd6822190c8b5e6a4b6e7f97b2737d5ba2cb5a7618c6d123508edbf4c3438edc3f711f7a534bdff1b1e6afe74ceddeb5ab3c2b1f80f4316dd7c68ad46eb736cfcd490e367b0b51e14e5a13ae9699ffbcdfeb9a
+4081f580a00000f09b9c29c8b79fdee9abd06941cd2f43b12d1c8ca514f332deb39b9f1b9a88b3b9057dea10724bc03e3073230c01b4043821ca5c4bcd3e7327e19d541aae44b1d8d3fa33d56b8b8d53f83e67c434c9d8198e16533c93c9a75ab73727bce3d80683551d69f0b34b7cf57bfd3d410f26f281fce34ea76640555f46f09f86b7195666befee8293f7cba6954904cc76f0eb121448a9a24ebc9d897a3bc5d4dc126ab3915b4b55872a62a4114e210a5e4cebe0e4829f2e18198eaab905c17a412973447ec32f621f8ddf6a318c0937e1e8a674fde3be51afe3496e166bbdde2855917640f815fb319ac7e5f287081f2a56f0619
+4081f580a00000f05b055f387968e1916372fe96e17383d56396939081adb17903269561333a375e9954cb1812d7db1ab3064edf239304ac84753e1d942344d6d484a2fdbc25815087e5d8ebb350f5bca1e8bcda6ceeffe98a4d7158ee4fdc0472d6d5de4aeca2fd36845f62938607e272660a3dc96aafdc1778f782263215c1ae05614f01c4639dff0d7d6d37be769c8cbce9e0b3ac95239b12591e2d1b293dbdfe9297d3481349dcb37f87660fe9412bbb2b9f546bd9e27648bfbe4015e878c20afcc4fe7cf0c837e71d369747f6373ce3104757c089619c292a7dc3a8bfdd45aa1d7c3e253c5e5c51a2b7d8688c394c8bf43de757e380
+4081f580a00000f0d7cd092b4a579d440696583dd35612ec758f18663a9e378c873c2d7734fa950204af3f8ec2ba7a1bd86dd1c257337e29a0e0d1d8db1d163e1876a1d341650c328c610efc9f93490c7a6d912bf6384de8e09f0134ac53cf98359bf2bf1f92c64b73f67e53ca06eb7a4a670a43a1e3be34a3b369ede3cc5d0a9bf41cd847da34acc458139196dfc218413788ba996b7c82e2af0c1df4076822fc92bea77b4f8d0fd380e4c43eebad7429daea87d9b69046326d7589d89008b879c9d21776ef8949a1a2d43110800142f46ff8fec4b497d93c929666b835089d4bb7626f0ea19272a3ab852fc34feeeaa363a236c74e09c4
+4081f580a00000f011ef8a3b8184d9152beaf2fc73aea784b6a029658edaf55f040fad1e926ad47d708387058c71778f069fe090d51feb41d2c693622497d9d878c262f961d70bddf026ece5183e42b81e2d8ec9c9de5a7acbfac8bbcc9be8cf81d66c1e0f48c4900ad093bd9bdfdc32b557d30a9322168e462c5f12113d466c1f55931d1e86995b5a2da7647dd2950288270549bf7644e8ae769b3ae03403a3ec8d973422ccbb159f1d9906377838cfa1279b3f81d1529ea15abcb70998cfe2639884c5dcebc2e154259a46492e5bf2e35a40c9649b29645994e5f0130b14edb296be96b29a85bee77d10e0c00928cb4364fbf68c79b66b
+4081f580a00000f0dab7bd66f45842fdaf16e7ee99db71845e85867b5578db2abbe0f92e59185b017070dec7c0b905d86194429985faa33d4e262b6b9eea558fa0c92d46743e9cd4c0a5a10bba3a4a430854e35d3389d283d13d3f371276167a01f605a0ed0747bee0676dcac9bf573608597ce058770aea2f7205e7ad9e65c4f3e9c2888fbb63ab53cf6dac62d14b82082ab2c273df6043cf0dc9dc3f975509a65348a9584296ade6e3b80b2363d993b0789a3734c611c5aa081074d2e4af1aa1ba55f748561fe70303cd2abea4f53ca626861ee45960e223e55dd90f0e56474a00f9fd8b27413c8b8331351496d8ca1ee9c98441a7ecf0
+4081f580a00000f03d5f57635be02809e3cd5bb9df43631a18e2fda2e75fe89025c0a069065e920d099fdec3acc3be3178308107126076aa563c27ae4286e033084f8b450a791d24f42b281396dfe34bc0ec4de6aebd4a0dc363d306e60beb6d4f29faa9d873d8b324a225f6f50aa9d69abfc41c2b981dae756f057432284de9999a68efe30285f8d4c3b11b516e04b376a9186a756b2f3476ed8e1d01ad12cbfa3a015d5b6a52331905e22a6380f88ed4a3f0c8f0536b1cd578b34d36ab1dc99616d2e43ede28681f0e51f6d3ebcb8669b0fc9e8d5096da2e31805b106d471fce6cd9e097ff537bebd2c32de2c34c127b7e4ff6329af74b
+4081f580a00000f018017d675fce2d39173000a28b04b5867801373eadf1dd5d6f27c309233be6ad0df77252e349cca40e009fd0c4ab5ad358f362687ef1ffd56d799d8bf9b90819ae85758821f90c0d0d034a0d109ed76b1299da11a1c13a60365b307cfced5b67f58f5f3186792e0ab0f8669edaa1e83bda30b15076cb0eb4237a336268d7b57de04a920174b90df335761bdc2bd8f4035def7e9bb7573eb94850513a262894386804192cc487bd2730750cb53c0c811bb4400d44064e21536062431e30a6254ee0f235028deca50204f7e4cdc75b69918407d96f968f717ddbf9730bf20ea9c28a09b80e67974fd5c47a12561581a31d
+4081f580a00000f051de0f8b62f7e05ecd545a93b04b0ebd7a4bbd65917518441db92228a8992e63f7f5aa60bcde52b53f5aab64f8019e32e2d78dc6637a9b37d4c15218013d0501574e59f1f283c2da54087ab2756dceb3d7f507b1f42fe9704682259e40f768202ee7effd74d7c37b5b1acefb9ae25317c618a227677be7b24bbefcdd0ccb43cb1be969be235c5c9c665e5dfcf7220861da39480ac7a0010ae18cc027a2beac8c4228b8e144f010be36c60146b2b600125a4f65bd4ca685d63fa5f1da7e7001f0133d963a7ed3e8a53aa08688b0e1f5195affee6258b7deebd4e4ad5ca6f56f30bc9e26a5f7a2b87ed47f9320129ceb4d
+4081f580a00000f036bf238b353ff13c13a7881ce019df4cc9d3dc38f599b31565239640ee00ee57ac22f4bb1d1108550fac21c9e2c5dcd5d56c43585b09a04751e8a19552c08459d068a84cd5b2ffb3b32a94d98f30723ef40484119a7cc1f78185312b311af57cf4b94ef3e5f6695ddb6b7692878de168199baa188242636ea989f115c8febe5f6f9ed6289300877e25cb7ea6403cd8cbaace09a84fd06992ce3f87afa25b1be4e47539902c01b42d5718c9d62575ecac4af515fd24bef5eb32bb5f05c6b03353c8dce07fa455e9b4b9dac012a4308bff65c69a710ed6d7e2c12ac9dd2fd674dcdaa40d96f42da89ae989868c96957aae
+4081f580a00000f0b39728558ee573496037a92a641c3f95a0f920abb441c648bf1352baad6461e447ee14c5fde4becf5ed242637d5dbd375515812b51e8c1c0eafec2a3fc1596b55ad7679a69a6f4d2e2850282ac1398b7cd0ba8ceb0cbd19f62a476c605f43657fe2166bbd44a806eb74e6c0f6877f504bef6229f14e1565e43aa521996584340daa1c51b3f93e4e57d8f80e02905bdfbd259fa3454cf2577103cbd593fd0a2fceae24fb07e244df071446db395d0c174215016020ff0579747f2d1830369016ddd6d11af38514b4049d5241fffd7ab7304b47a3a94e296fd54aaa4c751bcbf35b2be588310df6d454edf6d3b523cc423
+4081f580a00000f025fa1c619cbd314e64813a038bb7f5d0ae75b6df4584394b8197b904ee18e8c62a6e690deb1e0cb5af502dd6a260be6c3a1629c2e9b25fee1548d53554f709990fb8ab414f9cf613eff54380baa87d01fce3df88e7e2638ef55aa93ea8093e20881cad7ae78894966a252021e92647c35417e34e2750958f9b79a432c3303ed15346696366fad7d4aed7e624969e1e48d5726ea8d69d79c44a07a70b9ba7dfe8c4ce135fc6c7172b05137329a01875380f240af1174c7324317724514e2c52212afceb01e7785e81a2e6cc8c891e2baaf5defcf3a50bc1af0eeac94d23a2766c7b51a54671cd2febc37a87bd270ca1e2
+4081f580a00000f0f3dd8155cf2ae4274fa06613037c00d53beef8d258b032b915767f756ee2134fa15f788afa5cb7d8233de628c5cc9db7564fa3e7ddadb489d6dcb630e9fe5b96e8991ff6f42b2381fa51c4a478b58e89baaa5b47f51ecc5d20bc8bfe6c6771ea8b1ccf1310442674d651f3709570506860256fc1ced840af2dd188577bd4f10b77295c496441f75f69d82ff85a31ce3f7f18d7721208ab39c532534f08346d8d8624d5470939c28a376a551b19ec723e7a367a97e5e476cbb7568a79d56a936026af56ca987528b85d1dbbc61d6668a582e5a9443b5387d58373b75c1714cd6143935d10db916e22f1466ae7ed222f6c
+4081f580a00000f0ccac9f64b7c2c6a174c35df31c0b2667de07fbe558340d5a1d91ad96414f76ad8da279a8e1505e1f34409ba41787e7da0a2cce493bed5b573255c156cceb9d46db8168c04a1c741dac163c3730596612bfce0b79a4b74accaa8b54e854c33c278ac52d9c90ff40ebfcb9a00c9621d68f1f20400ff4095c33c9494ea3ef65b4ebb69507a8ead085063bde531c7bd97561ceb7e26a52aa31db9a7e36da73adfbfe9b7d5883509d0b173715ee00c68abb8b4d2100d7634c89dc89f41b03c0e0f62fd8d9291409f9865694f9434c1f36c31930172fe4becda9dfc1af461960aa9d49c489ba06383708eb895cb17ecb7bdad0
+4081f580a00000f0eda847a3ea40392df2dda9ebea1c27c33a59c2b46a7bbfaf042d4f4899b68f7d3f09ea62cf82c32b1aebdf5c76d37dbe5083670bcaec4a740848d903c009dd8ed77135cbf6aab83fc8784ecf7462e48b7abae332061c84512b4ca8812b7fe011400c8d030084400c0d4bba90e32367e7902eb89a3e407e599209fea09e7685587cfdb090216293f04579b74dc417fe10a4203f0a2238dcaecf3d365f1a3ae9a65a99132ce4d588203da39e9d2d8216f4637e9ef859386e876428fb63e223f44c0f818714a04c9d9c9760a0604ac71630e2a6491aa436369b5e78d75a45894be33fb4a01777b0f6c74dbd2e2988dfed99
+4081f580a00000f09869ebd45c97cf0c7c67438fef37998a1eab8c5851cda73135905bb44d9aeba8e039e98b4af147336c06e1f0211fc803e2a3a5ec1b70d0b0e801e2133e3d6f9367bb9bc65fd44a1f2688140c9b7a726d5e70bdae664cc0a458fe9a79e8dd2c886ebcdb443cde0dba4bda3ed83262e8659c96efa00cd94e74b718d8a777c01afc77375d2fff1ee22bbe5321fb5a63865b942fa772d1f29b43313908ed3e5578bfdcbce92d6698e4c98c52b8df8b89203fafd14ee29121a77bc8d98da26b52a0dc6b6b9a47c4d03dd82bc16de5c78138229c276408c2258c472046457f2ed2c90ac1a656813efbea0809818a00109099f2
+4081f580a00000f0e7b91720225de04023498de9e5a74487c1e67cc5d2c0a550f4d55fc5c4fd9e7153fbd26a7f5a6b9adedb4904cf7b4893eeda77ff0355d4eef10aeee37ecc2ce2fb0e6f1b11ccbe20776c5aab3b6eb9c5e75c630db83ad00daeabcc91e89542347c0272f1feafef2f747721fb3d01d5ce279aa6cf0e1f576d4f140e87b724641201c60b57a4251e582e67e76f122ac411e90346dcc2ecf8f1089a32271ddc8b9446c13a7101b24a35a6256c2bc5704fb2fe1cf8134cb5a698fa587f5a2ed4e8e367116c867cab891e51d02c18cab9ca71af8adedb93ac8800d19ebf5c5736d9ca27f7d95693fb8984364debccb791b6f1
+4081f580a00000f03f5bfcb68ebad9a8424d8c0917a1c416cdc4610f0b3fd73e605bc2f2f5a7f3f2083d29b09302e7fe9b4e7a0c4798b4aa5996d61ec94f11ca0c04a786f0f71bb5436a305079d82587916f571666cea6487ec9b17fd626944f026cc8ed106181f960ccb88a2bf0865c483c6eb8fcdede6cd9ae2027e61f6a924aace0c01f59468516169d743cb88435b681b0e89a9ca9aeb7f2a215601812dc42e2eb2d0a866950abf426f2888b09f178511b0748f1dadcc37dde2c0803bf25f2149dffd47ed890df8919a43334e9c2f200d5039245c96a7d313b2fda1b908c02bcad780638ddb33a948e3d67aff8dc4a948c6b769bf983
+4081f580a00000f076f676365affc9eab9b4a8bd59d328cbee897e2060c14a627ef1dd1bb4387c9ca65ad3a20499f96dfec82ddb7a1a287219a6c0811049100b17347f05b24c9c58bb2812252c8629b6fe478ebd328f336d73548e97bb70d6271a4c93805c1666df951c442183489de38e80b3f0a6cbc6eaf241d50cda333bf1821300b3dfe68b3de1662bcd0eaee1e8bd82c2906c31fa4105fd9dbfff6c6dad6d8af44e493e355df22e716c16b815b471fb7e4e162c9d2bad6000cd07a89ce7939c5a725a7654b474eff3d70630e55e0de502018d88a599be3f3b696dafbbce5a7e8dfbfca7451409bb0a3e3407bb1222a5ca547097ae5a
+4081a580a00000a044dd1ae320a633bb7886abbf54714a4b066d102735437f3ce1f893f520ce0de3d97ecc1e782ef32025dc9de021bff953fcc2fddee25736585f1f3ae307636c0b77214db97f1995dc9d5af343cb2a0f20ac357363defe00e04d9700ed77705373227df2d9054225de0e436d1fc35ae6999324bb5ea1b17a2405ca6ba8bdabc205f4c8afc19f5d8bf50cef2ce20a6c7f86038ab136fe01b48d0f04e959f4243a1a
+40818580a000008002159f045811d1f0ebf5c6683f20a161a30b41930ab6c7dadf1c1870112e58e0b71b94aa2550fc9ccca02068ebcc368c307b51b9aada0ee05533f56d85cac01ced79bfc42b7f904d3f6973b9e24d18aeca654a7cb326b274aa916a6d9486f07ae05cd9d73afc3e23b17b3de480772fcba6de543f5685d8992e96b476b5036f2c
+404580a00000408cda056ef0cdc45aeb98844a044cd9b3e276e434f77441f6c77027f81a1a414194c0973ee122f9d6aaf33e0eb86d41e6ba560bff9b87275d346381c6ad2d25bd
+404580a080004014d19e0d5510113f3043ff677c820d04c4fb48f9642c303c72ea220de5fed0dbdf3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119
diff --git a/fstab.hardware b/fstab.hardware
index 6138f7a..af8fbba 100644
--- a/fstab.hardware
+++ b/fstab.hardware
@@ -5,6 +5,6 @@
 /dev/block/bootdevice/by-name/metadata              /metadata          ext4        noatime,nosuid,nodev,discard                          wait,check,formattable
 /dev/block/bootdevice/by-name/userdata              /data              f2fs        noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065,fsync_mode=nobarrier       latemount,wait,check,fileencryption=ice,keydirectory=/metadata/vold/metadata_encryption,quota,formattable,sysfs_path=/sys/devices/platform/soc/1d84000.ufshc,reservedsize=128M
 /dev/block/bootdevice/by-name/misc                  /misc              emmc        defaults                                              defaults
-/dev/block/bootdevice/by-name/modem                 /firmware          vfat        ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0   wait,slotselect
+/dev/block/bootdevice/by-name/modem                 /vendor/firmware_mnt          vfat        ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0   wait,slotselect
 /devices/platform/soc/a600000.ssusb/a600000.dwc3*   auto               vfat        defaults                                              voldmanaged=usb:auto
 /dev/block/zram0                                    none               swap        defaults                                              zramsize=536870912,max_comp_streams=8
diff --git a/health/Android.bp b/health/Android.bp
index cbce185..665015c 100644
--- a/health/Android.bp
+++ b/health/Android.bp
@@ -26,6 +26,9 @@
         "HealthService.cpp",
         "BatteryRechargingControl.cpp",
         "BatteryMetricsLogger.cpp",
+        "LowBatteryShutdownMetrics.cpp",
+        "CycleCountBackupRestore.cpp",
+        "DeviceHealth.cpp",
     ],
 
     cflags: [
diff --git a/health/BatteryMetricsLogger.cpp b/health/BatteryMetricsLogger.cpp
index 9743c1d..c56226b 100644
--- a/health/BatteryMetricsLogger.cpp
+++ b/health/BatteryMetricsLogger.cpp
@@ -29,12 +29,12 @@
 using android::sp;
 
 BatteryMetricsLogger::BatteryMetricsLogger() {
-    last_sample = 0;
-    last_upload = 0;
-    num_samples = 0;
-    memset(min, 0, sizeof(min));
-    memset(max, 0, sizeof(max));
-    accum_resistance = 0;
+    last_sample_ = 0;
+    last_upload_ = 0;
+    num_res_samples_ = 0;
+    memset(min_, 0, sizeof(min_));
+    memset(max_, 0, sizeof(max_));
+    accum_resistance_ = 0;
 }
 
 int64_t BatteryMetricsLogger::getTime(void) {
@@ -43,19 +43,19 @@
 
 bool BatteryMetricsLogger::uploadOutlierMetric(sp<IPixelStats> client, sampleType type) {
     BatteryHealthSnapshotArgs min_ss = {static_cast<BatterySnapshotType>(0),
-                                        min[type][TEMP],
-                                        min[type][VOLT],
-                                        min[type][CURR],
-                                        min[type][OCV],
-                                        min[type][RES],
-                                        min[type][SOC]};
+                                        min_[type][TEMP],
+                                        min_[type][VOLT],
+                                        min_[type][CURR],
+                                        min_[type][OCV],
+                                        min_[type][RES],
+                                        min_[type][SOC]};
     BatteryHealthSnapshotArgs max_ss = {static_cast<BatterySnapshotType>(0),
-                                        max[type][TEMP],
-                                        max[type][VOLT],
-                                        max[type][CURR],
-                                        max[type][OCV],
-                                        max[type][RES],
-                                        max[type][SOC]};
+                                        max_[type][TEMP],
+                                        max_[type][VOLT],
+                                        max_[type][CURR],
+                                        max_[type][OCV],
+                                        max_[type][RES],
+                                        max_[type][SOC]};
     switch (type) {
         case TEMP:
             min_ss.type = BatterySnapshotType::MIN_TEMP;
@@ -92,15 +92,16 @@
 
 bool BatteryMetricsLogger::uploadMetrics(void) {
     int64_t time = getTime();
-    int32_t avg_resistance;
+    int32_t avg_resistance = 0;
 
-    if (num_samples == 0)
+    if (last_sample_ == 0)
         return false;
 
     LOG(INFO) << "Uploading metrics at time " << std::to_string(time) << " w/ "
-              << std::to_string(num_samples) << " samples";
+              << std::to_string(num_res_samples_) << " samples";
 
-    avg_resistance = accum_resistance / num_samples;
+    if (num_res_samples_)
+        avg_resistance = accum_resistance_ / num_res_samples_;
 
     LOG(INFO) << "Logging metrics to tron";
 
@@ -112,11 +113,13 @@
 
     // Only log and upload the min and max for metric types we want to upload
     for (int metric = kMetricMin; metric <= kMetricMax; metric++) {
+        if (metric == RES && num_res_samples_ == 0)
+            continue;
         std::string log_min = "min-" + std::to_string(metric) + " ";
         std::string log_max = "max-" + std::to_string(metric) + " ";
         for (int j = 0; j < NUM_FIELDS; j++) {
-            log_min += std::to_string(min[metric][j]) + " ";
-            log_max += std::to_string(max[metric][j]) + " ";
+            log_min += std::to_string(min_[metric][j]) + " ";
+            log_max += std::to_string(max_[metric][j]) + " ";
         }
         LOG(INFO) << log_min;
         LOG(INFO) << log_max;
@@ -127,14 +130,15 @@
     // Upload average metric
     BatteryHealthSnapshotArgs avg_res_ss = {
         BatterySnapshotType::AVG_RESISTANCE, 0, 0, 0, 0, avg_resistance, 0};
-    client->reportBatteryHealthSnapshot(avg_res_ss);
+    if (num_res_samples_)
+        client->reportBatteryHealthSnapshot(avg_res_ss);
 
     // Clear existing data
-    memset(min, 0, sizeof(min));
-    memset(max, 0, sizeof(max));
-    num_samples = 0;
-    last_upload = time;
-    accum_resistance = 0;
+    memset(min_, 0, sizeof(min_));
+    memset(max_, 0, sizeof(max_));
+    num_res_samples_ = 0;
+    last_upload_ = time;
+    accum_resistance_ = 0;
     LOG(INFO) << "Finished uploading to tron";
     return true;
 }
@@ -167,32 +171,39 @@
                                   props->batteryTemperature,
                                   props->batteryLevel,
                                   ocv};
-    accum_resistance += resistance;
+    if (props->batteryStatus != android::BATTERY_STATUS_CHARGING) {
+        accum_resistance_ += resistance;
+        num_res_samples_++;
+    }
 
     // Only calculate the min and max for metric types we want to upload
     for (int metric = kMetricMin; metric <= kMetricMax; metric++) {
-        if (num_samples == 0 || sample[metric] < min[metric][metric]) {
+        // Discard resistance min/max when charging
+        if (metric == RES && props->batteryStatus == android::BATTERY_STATUS_CHARGING)
+            continue;
+        if (last_sample_ == 0 || (metric == RES && num_res_samples_ == 0) ||
+            sample[metric] < min_[metric][metric]) {
             for (int i = 0; i < NUM_FIELDS; i++) {  // update new min with current sample
-                min[metric][i] = sample[i];
+                min_[metric][i] = sample[i];
             }
         }
-        if (num_samples == 0 || sample[metric] > max[metric][metric]) {
+        if (last_sample_ == 0 || (metric == RES && num_res_samples_ == 0) ||
+            sample[metric] > max_[metric][metric]) {
             for (int i = 0; i < NUM_FIELDS; i++) {  // update new max with current sample
-                max[metric][i] = sample[i];
+                max_[metric][i] = sample[i];
             }
         }
     }
 
-    last_sample = time;
-    num_samples++;
+    last_sample_ = time;
     return true;
 }
 
 void BatteryMetricsLogger::logBatteryProperties(struct android::BatteryProperties *props) {
     int32_t time = getTime();
-    if (num_samples == 0 || time - last_sample >= kSampleRate)
+    if (last_sample_ == 0 || time - last_sample_ >= kSamplePeriod)
         recordSample(props);
-    if (last_sample - last_upload > kUploadRate || num_samples >= kMaxSamples)
+    if (last_sample_ - last_upload_ > kUploadPeriod || num_res_samples_ >= kMaxSamples)
         uploadMetrics();
 
     return;
diff --git a/health/BatteryMetricsLogger.h b/health/BatteryMetricsLogger.h
index 9f0a72a..0098d03 100644
--- a/health/BatteryMetricsLogger.h
+++ b/health/BatteryMetricsLogger.h
@@ -52,20 +52,20 @@
 
     const char *kBatteryResistance = "/sys/class/power_supply/maxfg/resistance";
     const char *kBatteryOCV = "/sys/class/power_supply/maxfg/voltage_ocv";
-    const int kSampleRate = 10 * 60;       // 10 minutes
-    const int kUploadRate = 24 * 60 * 60;  // 1 day
+    const int kSamplePeriod = 10 * 60;       // 10 minutes
+    const int kUploadPeriod = 24 * 60 * 60;  // 1 day
     const int kMaxSamples = 144;           // 24h * 60min / 10 min sample rate
     const sampleType kMetricMin = RES, kMetricMax = SOC;
 
     // min and max are referenced by type in both the X and Y axes
     // i.e. min[TYPE] is the event where the minimum of that type occurred, and
     // min[TYPE][TYPE] is the reading of that type at that minimum event
-    int32_t min[NUM_FIELDS][NUM_FIELDS];
-    int32_t max[NUM_FIELDS][NUM_FIELDS];
-    int32_t num_samples;       // number of samples since last upload
-    int64_t accum_resistance;  // accumulative resistance
-    int64_t last_sample;       // time in seconds since boot of last sample
-    int64_t last_upload;       // time in seconds since boot of last upload
+    int32_t min_[NUM_FIELDS][NUM_FIELDS];
+    int32_t max_[NUM_FIELDS][NUM_FIELDS];
+    int32_t num_res_samples_;   // number of res samples since last upload
+    int64_t accum_resistance_;  // accumulative resistance
+    int64_t last_sample_;       // time in seconds since boot of last sample
+    int64_t last_upload_;       // time in seconds since boot of last upload
 
     int64_t getTime();
     bool recordSample(struct android::BatteryProperties *props);
diff --git a/health/BatteryRechargingControl.cpp b/health/BatteryRechargingControl.cpp
index eafa5be..ae0cc53 100644
--- a/health/BatteryRechargingControl.cpp
+++ b/health/BatteryRechargingControl.cpp
@@ -143,7 +143,7 @@
             } else {
                 LOG(INFO) << "Diff time: " << elapsed_time;
                 int battery_level = RemapSOC(props->batteryLevel);
-                if (battery_level == props->batteryLevel) {
+                if ((battery_level == props->batteryLevel) && (battery_level != kFullSoc)) {
                     state_ = INACTIVE;
                     break;
                 }
diff --git a/health/CycleCountBackupRestore.cpp b/health/CycleCountBackupRestore.cpp
new file mode 100644
index 0000000..138d0c1
--- /dev/null
+++ b/health/CycleCountBackupRestore.cpp
@@ -0,0 +1,150 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "CycleCountBackupRestore.h"
+
+namespace device {
+namespace google {
+namespace crosshatch {
+namespace health {
+
+static constexpr int kBackupTrigger = 20;
+
+CycleCountBackupRestore::CycleCountBackupRestore(int nb_buckets, const char *sysfs_path,
+                                                 const char *persist_path, const char *serial_path)
+    : nb_buckets_(nb_buckets),
+      saved_soc_(-1),
+      soc_inc_(0),
+      sysfs_path_(sysfs_path),
+      persist_path_(persist_path),
+      serial_path_(serial_path) {
+    sw_bins_ = new int[nb_buckets];
+    memset(sw_bins_, 0, sizeof(sw_bins_));
+    hw_bins_ = new int[nb_buckets];
+    memset(hw_bins_, 0, sizeof(hw_bins_));
+}
+
+void CycleCountBackupRestore::Restore() {
+    if (CheckSerial()) {
+        Read(persist_path_, sw_bins_);
+    }
+    Read(sysfs_path_, hw_bins_);
+    UpdateAndSave();
+}
+
+bool CycleCountBackupRestore::CheckSerial() {
+    std::string device_battery_serial;
+    std::string persist_battery_serial;
+
+    if (serial_path_.empty())
+        return true;
+
+    if (!android::base::ReadFileToString(serial_path_, &device_battery_serial)) {
+        LOG(ERROR) << "Failed to read " << serial_path_;
+        return true;
+    }
+
+    if (!android::base::ReadFileToString(kPersistSerial, &persist_battery_serial)) {
+        LOG(ERROR) << "Failed to read " << kPersistSerial;
+    }
+
+    if (device_battery_serial != persist_battery_serial) {
+        // Battery pack has been changed or first time,
+        // cycle counts on the pack are the ones to save
+        if (!android::base::WriteStringToFile(device_battery_serial, kPersistSerial)) {
+            LOG(ERROR) << "Write to " << kPersistSerial << " error: " << strerror(errno);
+        }
+        return false;
+    }
+
+    return true;
+}
+
+void CycleCountBackupRestore::Backup(int battery_level) {
+    if (saved_soc_ == -1) {
+        saved_soc_ = battery_level;
+        return;
+    }
+    // Cycle counts only increases on increasing level
+    if (battery_level > saved_soc_) {
+        soc_inc_ += battery_level - saved_soc_;
+    }
+    saved_soc_ = battery_level;
+    // To avoid writting file too often just rate limit it
+    if (soc_inc_ >= kBackupTrigger) {
+        Read(sysfs_path_, hw_bins_);
+        UpdateAndSave();
+        soc_inc_ = 0;
+    }
+}
+
+void CycleCountBackupRestore::Read(const std::string &path, int *bins) {
+    std::string buffer;
+
+    if (!android::base::ReadFileToString(path, &buffer)) {
+        LOG(ERROR) << "Failed to read " << path;
+        return;
+    }
+
+    buffer = ::android::base::Trim(buffer);
+    std::vector<std::string> counts = android::base::Split(buffer, " ");
+    if (counts.size() != (size_t)nb_buckets_) {
+        LOG(ERROR) << "data format \"" << buffer << "\" is wrong in " << path;
+    } else {
+        LOG(INFO) << "Read: \"" << buffer << "\" from " << path;
+        for (int i = 0; i < nb_buckets_; ++i) {
+            bins[i] = std::stoi(counts[i]);
+        }
+    }
+}
+
+void CycleCountBackupRestore::Write(int *bins, const std::string &path) {
+    std::string str_data = "";
+
+    for (int i = 0; i < nb_buckets_; ++i) {
+        if (i) {
+            str_data += " ";
+        }
+        str_data += std::to_string(bins[i]);
+    }
+
+    LOG(INFO) << "Write: \"" << str_data << "\" to " << path;
+    if (!android::base::WriteStringToFile(str_data, path))
+        LOG(ERROR) << "Write to " << path << " error: " << strerror(errno);
+}
+
+void CycleCountBackupRestore::UpdateAndSave() {
+    bool backup = false;
+    bool restore = false;
+    for (int i = 0; i < nb_buckets_; i++) {
+        if (hw_bins_[i] < sw_bins_[i]) {
+            hw_bins_[i] = sw_bins_[i];
+            restore = true;
+        } else if (hw_bins_[i] > sw_bins_[i]) {
+            sw_bins_[i] = hw_bins_[i];
+            backup = true;
+        }
+    }
+    if (restore)
+        Write(hw_bins_, sysfs_path_);
+    if (backup)
+        Write(sw_bins_, persist_path_);
+}
+
+}  // namespace health
+}  // namespace crosshatch
+}  // namespace google
+}  // namespace device
diff --git a/health/CycleCountBackupRestore.h b/health/CycleCountBackupRestore.h
new file mode 100644
index 0000000..3cbf756
--- /dev/null
+++ b/health/CycleCountBackupRestore.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef DEVICE_GOOGLE_CROSSHATCH_HEALTH_CYCLECOUNTBACKUPRESTORE_H
+#define DEVICE_GOOGLE_CROSSHATCH_HEALTH_CYCLECOUNTBACKUPRESTORE_H
+
+#include <android-base/file.h>
+#include <android-base/logging.h>
+#include <android-base/strings.h>
+#include <string>
+
+namespace device {
+namespace google {
+namespace crosshatch {
+namespace health {
+
+class CycleCountBackupRestore {
+  public:
+    CycleCountBackupRestore(int nb_buckets, const char *sysfs_path, const char *persist_path,
+                            const char *serial_path = "");
+    void Restore();
+    void Backup(int battery_level);
+
+  private:
+    const char *kPersistSerial = "/persist/battery/serial_number";
+
+    int nb_buckets_;
+    int *sw_bins_;
+    int *hw_bins_;
+    int saved_soc_;
+    int soc_inc_;
+    std::string sysfs_path_;
+    std::string persist_path_;
+    std::string serial_path_;
+
+    void Read(const std::string &path, int *bins);
+    void Write(int *bins, const std::string &path);
+    void UpdateAndSave();
+    bool CheckSerial();
+};
+
+}  // namespace health
+}  // namespace crosshatch
+}  // namespace google
+}  // namespace device
+
+#endif  // #ifndef DEVICE_GOOGLE_CROSSHATCH_HEALTH_CYCLECOUNTBACKUPRESTORE_H
diff --git a/health/DeviceHealth.cpp b/health/DeviceHealth.cpp
new file mode 100644
index 0000000..014522d
--- /dev/null
+++ b/health/DeviceHealth.cpp
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "dhealth"
+
+#include "DeviceHealth.h"
+
+#include <android-base/properties.h>
+#include <cutils/klog.h>
+
+namespace device {
+namespace google {
+namespace crosshatch {
+namespace health {
+
+DeviceHealth::DeviceHealth() {
+    is_user_build_ = android::base::GetProperty("ro.build.type", "") == "user";
+}
+
+void DeviceHealth::update(struct android::BatteryProperties *props) {
+    if (!is_user_build_ &&
+        android::base::GetProperty("persist.vendor.disable.thermal.control", "") == "1") {
+        props->batteryTemperature = 200;
+    }
+}
+
+}  // namespace health
+}  // namespace crosshatch
+}  // namespace google
+}  // namespace device
diff --git a/health/DeviceHealth.h b/health/DeviceHealth.h
new file mode 100644
index 0000000..007cb52
--- /dev/null
+++ b/health/DeviceHealth.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef DEVICE_GOOGLE_CROSSHATCH_HEALTH_DEVICEHEALTH_H
+
+#include <batteryservice/BatteryService.h>
+
+namespace device {
+namespace google {
+namespace crosshatch {
+namespace health {
+
+class DeviceHealth {
+  public:
+    DeviceHealth();
+    void update(struct android::BatteryProperties *props);
+
+  private:
+    bool is_user_build_;
+};
+
+}  // namespace health
+}  // namespace crosshatch
+}  // namespace google
+}  // namespace device
+
+#endif
diff --git a/health/HealthService.cpp b/health/HealthService.cpp
index cd1f53a..2ff491b 100644
--- a/health/HealthService.cpp
+++ b/health/HealthService.cpp
@@ -29,19 +29,33 @@
 #include <string>
 #include <vector>
 
-#include "BatteryRechargingControl.h"
 #include "BatteryMetricsLogger.h"
+#include "BatteryRechargingControl.h"
+#include "CycleCountBackupRestore.h"
+#include "DeviceHealth.h"
+#include "LowBatteryShutdownMetrics.h"
 
 namespace {
 
 using android::hardware::health::V2_0::DiskStats;
 using android::hardware::health::V2_0::StorageAttribute;
 using android::hardware::health::V2_0::StorageInfo;
-using ::device::google::crosshatch::health::BatteryRechargingControl;
 using ::device::google::crosshatch::health::BatteryMetricsLogger;
+using ::device::google::crosshatch::health::BatteryRechargingControl;
+using ::device::google::crosshatch::health::CycleCountBackupRestore;
+using ::device::google::crosshatch::health::DeviceHealth;
+using ::device::google::crosshatch::health::LowBatteryShutdownMetrics;
 
 static BatteryRechargingControl battRechargingControl;
 static BatteryMetricsLogger battMetricsLogger;
+static LowBatteryShutdownMetrics shutdownMetrics;
+static CycleCountBackupRestore ccBackupRestoreBMS(
+    8, "/sys/class/power_supply/bms/device/cycle_counts_bins",
+    "/persist/battery/qcom_cycle_counts_bins");
+static CycleCountBackupRestore ccBackupRestoreMAX(
+    10, "/sys/class/power_supply/maxfg/cycle_counts_bins",
+    "/persist/battery/max_cycle_counts_bins", "/sys/class/power_supply/maxfg/serial_number");
+static DeviceHealth deviceHealth;
 
 #define UFS_DIR "/sys/devices/platform/soc/1d84000.ufshc"
 const std::string kUfsHealthEol{UFS_DIR "/health/eol"};
@@ -51,7 +65,7 @@
 const std::string kDiskStatsFile{"/sys/block/sda/stat"};
 const std::string kUFSName{"UFS0"};
 
-std::ifstream assert_open(const std::string& path) {
+std::ifstream assert_open(const std::string &path) {
     std::ifstream stream(path);
     if (!stream.is_open()) {
         LOG(FATAL) << "Cannot read " << path;
@@ -60,13 +74,13 @@
 }
 
 template <typename T>
-void read_value_from_file(const std::string& path, T* field) {
+void read_value_from_file(const std::string &path, T *field) {
     auto stream = assert_open(path);
     stream.unsetf(std::ios_base::basefield);
     stream >> *field;
 }
 
-void read_ufs_version(StorageInfo* info) {
+void read_ufs_version(StorageInfo *info) {
     uint64_t value;
     read_value_from_file(kUfsVersion, &value);
     std::stringstream ss;
@@ -74,7 +88,7 @@
     info->version = ss.str();
 }
 
-void fill_ufs_storage_attribute(StorageAttribute* attr) {
+void fill_ufs_storage_attribute(StorageAttribute *attr) {
     attr->isInternal = true;
     attr->isBootDevice = true;
     attr->name = kUFSName;
@@ -82,18 +96,27 @@
 
 }  // anonymous namespace
 
-void healthd_board_init(struct healthd_config*) {
+void healthd_board_init(struct healthd_config *) {
+    ccBackupRestoreBMS.Restore();
+    ccBackupRestoreMAX.Restore();
 }
 
 int healthd_board_battery_update(struct android::BatteryProperties *props) {
     battRechargingControl.updateBatteryProperties(props);
+    deviceHealth.update(props);
     battMetricsLogger.logBatteryProperties(props);
+    shutdownMetrics.logShutdownVoltage(props);
+    ccBackupRestoreBMS.Backup(props->batteryLevel);
+    ccBackupRestoreMAX.Backup(props->batteryLevel);
+    if (!android::base::WriteStringToFile(std::to_string(props->batteryLevel),
+                                          "/sys/class/power_supply/wireless/capacity"))
+        LOG(INFO) << "Unable to write battery level to wireless capacity";
     return 0;
 }
 
-void get_storage_info(std::vector<StorageInfo>& vec_storage_info) {
+void get_storage_info(std::vector<StorageInfo> &vec_storage_info) {
     vec_storage_info.resize(1);
-    StorageInfo* storage_info = &vec_storage_info[0];
+    StorageInfo *storage_info = &vec_storage_info[0];
     fill_ufs_storage_attribute(&storage_info->attr);
 
     read_ufs_version(storage_info);
@@ -103,24 +126,16 @@
     return;
 }
 
-void get_disk_stats(std::vector<DiskStats>& vec_stats) {
+void get_disk_stats(std::vector<DiskStats> &vec_stats) {
     vec_stats.resize(1);
-    DiskStats* stats = &vec_stats[0];
+    DiskStats *stats = &vec_stats[0];
     fill_ufs_storage_attribute(&stats->attr);
 
     auto stream = assert_open(kDiskStatsFile);
     // Regular diskstats entries
-    stream >> stats->reads
-           >> stats->readMerges
-           >> stats->readSectors
-           >> stats->readTicks
-           >> stats->writes
-           >> stats->writeMerges
-           >> stats->writeSectors
-           >> stats->writeTicks
-           >> stats->ioInFlight
-           >> stats->ioTicks
-           >> stats->ioInQueue;
+    stream >> stats->reads >> stats->readMerges >> stats->readSectors >> stats->readTicks >>
+        stats->writes >> stats->writeMerges >> stats->writeSectors >> stats->writeTicks >>
+        stats->ioInFlight >> stats->ioTicks >> stats->ioInQueue;
     return;
 }
 
diff --git a/health/LowBatteryShutdownMetrics.cpp b/health/LowBatteryShutdownMetrics.cpp
new file mode 100644
index 0000000..445f069
--- /dev/null
+++ b/health/LowBatteryShutdownMetrics.cpp
@@ -0,0 +1,103 @@
+
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "LowBatteryShutdownMetrics.h"
+
+namespace device {
+namespace google {
+namespace crosshatch {
+namespace health {
+
+using android::BATTERY_STATUS_DISCHARGING;
+using android::sp;
+using android::base::GetProperty;
+using android::base::ReadFileToString;
+using android::base::SetProperty;
+using ::hardware::google::pixelstats::V1_0::IPixelStats;
+
+LowBatteryShutdownMetrics::LowBatteryShutdownMetrics() {
+    prop_written_ = false;
+    prop_empty_ = false;
+}
+
+bool LowBatteryShutdownMetrics::uploadVoltageAvg(void) {
+    std::string prop_contents = GetProperty(kPersistProp, "");
+    LOG(INFO) << kPersistProp << " property contents: " << prop_contents;
+    if (prop_contents.size() == 0) {  // we don't have anything to upload
+        prop_empty_ = true;
+        return false;
+    }
+
+    sp<IPixelStats> client = IPixelStats::tryGetService();
+    if (!client) {
+        LOG(ERROR) << "Unable to connect to PixelStats service";
+        return false;
+    }
+
+    // Process and upload comma-delimited last voltage values
+    int32_t voltage_avg;
+    for (const auto& item : android::base::Split(prop_contents, ",")) {
+        if (!(voltage_avg = stoi(item))) {
+            LOG(ERROR) << "Couldn't process voltage value " << item;
+            continue;
+        }
+        LOG(INFO) << "Uploading voltage_avg: " << std::to_string(voltage_avg);
+        client->reportBatteryCausedShutdown(voltage_avg);
+    }
+
+    // Clear property now that we've uploaded its contents
+    SetProperty(kPersistProp, "");
+    return true;
+}
+
+bool LowBatteryShutdownMetrics::saveVoltageAvg(void) {
+    std::string voltage_avg;
+    std::string prop_contents;
+
+    if (!ReadFileToString(kVoltageAvg, &voltage_avg)) {
+        LOG(ERROR) << "Can't read the Maxim fuel gauge average voltage value";
+        return false;
+    }
+    voltage_avg = ::android::base::Trim(voltage_avg);
+    prop_contents = GetProperty(kPersistProp, "");
+
+    // Comma delimit additional values
+    if (prop_contents.size() > 0)
+        prop_contents += ",";
+    prop_contents += voltage_avg;
+
+    LOG(INFO) << "Saving \"" << prop_contents << "\" to " << kPersistProp;
+
+    return SetProperty(kPersistProp, prop_contents);
+}
+
+void LowBatteryShutdownMetrics::logShutdownVoltage(struct android::BatteryProperties *props) {
+    // If we're about to shut down due to low battery, save voltage_avg
+    if (!prop_written_ && props->batteryLevel == 0 &&
+        props->batteryStatus == android::BATTERY_STATUS_DISCHARGING) {
+        prop_written_ = saveVoltageAvg();
+    } else if (!prop_empty_) {  // We have data to upload
+        uploadVoltageAvg();
+    }
+
+    return;
+}
+
+}  // namespace health
+}  // namespace crosshatch
+}  // namespace google
+}  // namespace device
diff --git a/health/LowBatteryShutdownMetrics.h b/health/LowBatteryShutdownMetrics.h
new file mode 100644
index 0000000..ee17f9c
--- /dev/null
+++ b/health/LowBatteryShutdownMetrics.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef DEVICE_GOOGLE_CROSSHATCH_HEALTH_LOWBATTERYSHUTDOWNMETRICS_H
+#define DEVICE_GOOGLE_CROSSHATCH_HEALTH_LOWBATTERYSHUTDOWNMETRICS_H
+
+#include <android-base/file.h>
+#include <android-base/logging.h>
+#include <android-base/properties.h>
+#include <android-base/strings.h>
+#include <batteryservice/BatteryService.h>
+#include <math.h>
+#include <time.h>
+#include <utils/Timers.h>
+#include <string>
+
+#include <hardware/google/pixelstats/1.0/IPixelStats.h>
+
+namespace device {
+namespace google {
+namespace crosshatch {
+namespace health {
+
+class LowBatteryShutdownMetrics {
+  public:
+    LowBatteryShutdownMetrics();
+    void logShutdownVoltage(struct android::BatteryProperties *props);
+
+  private:
+    const char *kVoltageAvg = "/sys/class/power_supply/maxfg/voltage_avg";
+    const char *kPersistProp = "persist.vendor.shutdown.voltage_avg";
+
+    // Helps enforce that we only record kVoltageAvg once per boot cycle
+    bool prop_written_;
+    // Help us avoid polling kPersistProp if it's empty
+    bool prop_empty_;
+
+    bool saveVoltageAvg();
+    void readStatus();
+    bool uploadVoltageAvg();
+};
+
+}  // namespace health
+}  // namespace crosshatch
+}  // namespace google
+}  // namespace device
+
+#endif
diff --git a/init.hardware.chamber.rc.userdebug b/init.hardware.chamber.rc.userdebug
index b8369d2..c492be6 100644
--- a/init.hardware.chamber.rc.userdebug
+++ b/init.hardware.chamber.rc.userdebug
@@ -14,10 +14,13 @@
 # limitations under the License.
 #
 
-
 on property:persist.vendor.disable.thermal.control=1
-    stop vendor.thermal-engine
-    write /sys/class/power_supply/maxfg/temp 200
     write /sys/devices/virtual/thermal/tz-by-name/quiet-therm-adc/mode disabled
     write /sys/devices/virtual/thermal/tz-by-name/fps-therm-adc/mode disabled
     write /sys/module/overheat_mitigation/parameters/fake_port_temp 250
+
+on property:init.svc.vendor.thermal-engine=running && property:persist.vendor.disable.thermal.control=1
+    stop vendor.thermal-engine
+
+on property:persist.vendor.disable.usb.overheat.mitigation=1
+    write /sys/module/overheat_mitigation/parameters/fake_port_temp 250
diff --git a/init.hardware.rc b/init.hardware.rc
index a8930db..3fe740f 100644
--- a/init.hardware.rc
+++ b/init.hardware.rc
@@ -22,11 +22,6 @@
 
 
 on property:init.svc.vendor.charger=running
-    stop vendor.qseecomd
-    stop keymaster-4-0
-    stop vndservicemanager
-    stop citadeld
-    stop vendor.keymaster-4-0-citadel
     # keep one LITTLE and one big
     write /sys/devices/system/cpu/cpu1/online 0
     write /sys/devices/system/cpu/cpu2/online 0
@@ -57,11 +52,15 @@
     # Enable sched_boost
     write /proc/sys/kernel/sched_boost 1
 
+# Skip init trigger for charger mode
+on early-init && property:ro.boot.mode=charger
+    setprop vendor.skip.init 1
+
 # We need vold early for metadata encryption
 on early-fs
     start vold
 
-on init
+on init && property:vendor.skip.init=0
     start logd
 
     # QSEE rpmb listener need symlink for bootdevice
@@ -240,6 +239,8 @@
     chmod 0770 /persist/rfs/apq
     chmod 0770 /persist/rfs/apq/gnss
     chmod 0770 /persist/hlos_rfs
+    # for cycle count backup
+    mkdir /persist/battery 0700 system system
     restorecon_recursive /persist
 
 on late-fs
@@ -452,6 +453,7 @@
     chown system system /sys/class/leds/blue/rgb_start
     chown system system /sys/class/backlight/panel0-backlight/brightness
     chown system system /sys/class/backlight/panel0-backlight/vr_mode
+    chown system system /sys/class/backlight/panel0-backlight/hbm_mode
 
     # Permission for Wireless charger
     chown system system /sys/devices/platform/soc/a88000.i2c/i2c-0/0-0061/rxdata
@@ -460,9 +462,17 @@
     chown system system /sys/devices/platform/soc/a88000.i2c/i2c-0/0-0061/ccreset
     chown system system /sys/devices/platform/soc/a88000.i2c/i2c-0/0-0061/status
     chown system system /sys/devices/platform/soc/a88000.i2c/i2c-0/0-0061/version
+    chown system system /sys/class/power_supply/wireless/capacity
+
+    # FG cycle counts read from dumpstate + backup restore from health HAL
+    chown system system /sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pmi8998@2:qpnp,fg/cycle_counts_bins
+    chown system system /sys/devices/platform/soc/a90000.i2c/i2c-4/4-0036/power_supply/maxfg/cycle_counts_bins
+
+    # HardwareInfo needs to be able to read CC bins
+    chmod 644 /sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pmi8998@2:qpnp,fg/cycle_counts_bins
+    chmod 644 /sys/devices/platform/soc/a90000.i2c/i2c-4/4-0036/power_supply/maxfg/cycle_counts_bins
 
     # Permission for Pixelstats
-    chown system system /sys/class/power_supply/maxfg/cycle_counts_bins
     chown system system /sys/class/misc/msm_cirrus_playback/resistance_left_right
     chown system system /sys/devices/platform/soc/1d84000.ufshc/slowio_read_cnt
     chown system system /sys/devices/platform/soc/1d84000.ufshc/slowio_write_cnt
@@ -586,16 +596,16 @@
     # Runtime fs tuning: as we have init boottime setting and kernel patch setting
     # default readahead to 2048KB. We should adjust the setting upon boot_complete
     # for runtime performance
-    write /sys/block/sda/queue/read_ahead_kb 1024
+    write /sys/block/sda/queue/read_ahead_kb 128
     write /sys/block/sda/queue/nr_requests 128
     write /sys/block/sda/queue/iostats 1
-    write /sys/block/sdf/queue/read_ahead_kb 1024
+    write /sys/block/sdf/queue/read_ahead_kb 128
     write /sys/block/sdf/queue/nr_requests 128
     write /sys/block/sdf/queue/iostats 1
-    write /sys/block/dm-0/queue/read_ahead_kb 512
-    write /sys/block/dm-1/queue/read_ahead_kb 512
-    write /sys/block/dm-2/queue/read_ahead_kb 512
-    write /sys/block/dm-3/queue/read_ahead_kb 512
+    write /sys/block/dm-0/queue/read_ahead_kb 128
+    write /sys/block/dm-1/queue/read_ahead_kb 128
+    write /sys/block/dm-2/queue/read_ahead_kb 128
+    write /sys/block/dm-3/queue/read_ahead_kb 128
 
     # QCOM FG SRAM dump for dumpstate
     chown system system /d/fg/sram/data
@@ -606,14 +616,6 @@
     chown system system /d/regmap/4-0036/registers
     chown system system /d/regmap/4-000b/registers
 
-    # Dump QCOM FG cycle counts for dumpstate
-    chown system system /sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pmi8998@2:qpnp,fg/cycle_counts_bins
-    chown system system /sys/devices/platform/soc/a90000.i2c/i2c-4/4-0036/power_supply/maxfg/cycle_counts_bins
-
-    # HardwareInfo needs to be able to read CC bins
-    chmod 644 /sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pmi8998@2:qpnp,fg/cycle_counts_bins
-    chmod 644 /sys/devices/platform/soc/a90000.i2c/i2c-4/4-0036/power_supply/maxfg/cycle_counts_bins
-
     # UFS health
     chmod 755 /sys/kernel/debug/ufshcd0
     chmod 644 /sys/kernel/debug/ufshcd0/show_hba
diff --git a/init.insmod.cfg b/init.insmod.blueline.cfg
similarity index 93%
rename from init.insmod.cfg
rename to init.insmod.blueline.cfg
index 578abed..1fa1bb7 100644
--- a/init.insmod.cfg
+++ b/init.insmod.blueline.cfg
@@ -16,3 +16,6 @@
 insmod /vendor/lib/modules/snd-soc-wcd-spi.ko
 insmod /vendor/lib/modules/snd-soc-cs35l36.ko
 insmod /vendor/lib/modules/snd-soc-sdm845.ko
+
+# Touch
+insmod /vendor/lib/modules/ftm5.ko
diff --git a/init.insmod.cfg b/init.insmod.crosshatch.cfg
similarity index 92%
copy from init.insmod.cfg
copy to init.insmod.crosshatch.cfg
index 578abed..f94aa66 100644
--- a/init.insmod.cfg
+++ b/init.insmod.crosshatch.cfg
@@ -16,3 +16,6 @@
 insmod /vendor/lib/modules/snd-soc-wcd-spi.ko
 insmod /vendor/lib/modules/snd-soc-cs35l36.ko
 insmod /vendor/lib/modules/snd-soc-sdm845.ko
+
+# Touch
+insmod /vendor/lib/modules/sec_touch.ko
diff --git a/manifest.xml b/manifest.xml
index eb2e15e..f943b2b 100644
--- a/manifest.xml
+++ b/manifest.xml
@@ -207,6 +207,15 @@
         </interface>
     </hal>
     <hal format="hidl">
+        <name>hardware.google.light</name>
+        <transport>hwbinder</transport>
+        <version>1.0</version>
+        <interface>
+            <name>ILight</name>
+            <instance>default</instance>
+        </interface>
+    </hal>
+    <hal format="hidl">
         <name>android.hardware.media.omx</name>
         <transport>hwbinder</transport>
         <version>1.0</version>
@@ -291,7 +300,7 @@
     <hal format="hidl">
         <name>android.hardware.radio</name>
         <transport>hwbinder</transport>
-        <fqname>@1.1::ISap/slot1</fqname>
+        <fqname>@1.2::ISap/slot1</fqname>
         <fqname>@1.2::IRadio/slot1</fqname>
     </hal>
     <hal format="hidl">
diff --git a/media_codecs.xml b/media_codecs.xml
index 2ec2765..014814f 100644
--- a/media_codecs.xml
+++ b/media_codecs.xml
@@ -101,10 +101,8 @@
 -->
 
 <MediaCodecs>
-    <!-- Replaced by Codec2.0 components
-        <Include href="media_codecs_google_audio.xml" />
-        <Include href="media_codecs_google_telephony.xml" />
-    -->
+    <Include href="media_codecs_google_audio.xml" />
+    <Include href="media_codecs_google_telephony.xml" />
     <Settings>
         <Setting name="max-video-encoder-input-buffers" value="11" />
     </Settings>
@@ -241,7 +239,5 @@
         </MediaCodec>
         <!-- Audio Software  -->
     </Decoders>
-    <!-- Replaced by Codec2.0 components
-        <Include href="media_codecs_google_video.xml" />
-    -->
+    <Include href="media_codecs_google_video.xml" />
 </MediaCodecs>
diff --git a/media_codecs_c2.xml b/media_codecs_c2.xml
index 99c1edd..eebfd73 100644
--- a/media_codecs_c2.xml
+++ b/media_codecs_c2.xml
@@ -67,6 +67,94 @@
     <Include href="media_codecs_google_c2_audio.xml" />
     <Include href="media_codecs_google_c2_telephony.xml" />
     <Decoders>
+        <!-- OMX decoders -->
+        <MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="96x96" max="4096x2304" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="24" max="2073600" />
+            <Limit name="bitrate" range="1-120000000" />
+            <Feature name="adaptive-playback" />
+            <Limit name="concurrent-instances" max="16" />
+        </MediaCodec>
+        <MediaCodec name="OMX.qcom.video.decoder.avc.secure" type="video/avc" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="96x96" max="4096x2304" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="24" max="2073600" />
+            <Limit name="bitrate" range="1-40000000" />
+            <Limit name="frame-rate" range="1-60" />
+            <Feature name="adaptive-playback" />
+            <Feature name="secure-playback" required="true" />
+            <Limit name="concurrent-instances" max="6" />
+        </MediaCodec>
+        <MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="96x96" max="4096x2304" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="24" max="1036800" />
+            <Limit name="bitrate" range="1-120000000" />
+            <Limit name="frame-rate" range="1-240" />
+            <Feature name="adaptive-playback" />
+            <Limit name="concurrent-instances" max="16" />
+        </MediaCodec>
+        <MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="96x96" max="4096x2304" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="24" max="2073600" />
+            <Limit name="bitrate" range="1-120000000" />
+            <Limit name="frame-rate" range="1-480" />
+            <Feature name="adaptive-playback" />
+            <Limit name="concurrent-instances" max="6" />
+        </MediaCodec>
+        <MediaCodec name="OMX.qcom.video.decoder.vp9.secure" type="video/x-vnd.on2.vp9" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="96x96" max="4096x2304" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="24" max="2073600" />
+            <Limit name="bitrate" range="1-40000000" />
+            <Limit name="frame-rate" range="1-60" />
+            <Feature name="adaptive-playback" />
+            <Feature name="secure-playback" required="true" />
+            <Limit name="concurrent-instances" max="6" />
+        </MediaCodec>
+        <MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="96x96" max="4096x2304" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="24" max="2073600" />
+            <Limit name="bitrate" range="1-120000000" />
+            <Limit name="frame-rate" range="1-480" />
+            <Feature name="adaptive-playback" />
+            <Limit name="concurrent-instances" max="16" />
+        </MediaCodec>
+        <MediaCodec name="OMX.qcom.video.decoder.hevc.secure" type="video/hevc" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="96x96" max="4096x2304" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="24" max="2073600" />
+            <Limit name="bitrate" range="1-40000000" />
+            <Limit name="frame-rate" range="1-60" />
+            <Feature name="adaptive-playback" />
+            <Feature name="secure-playback" required="true" />
+            <Limit name="concurrent-instances" max="6" />
+        </MediaCodec>
+        <!-- C2 decoders -->
         <MediaCodec name="c2.qti.avc.decoder" type="video/avc">
             <Limit name="size" min="96x96" max="4096x2304" />
             <Limit name="alignment" value="2x2" />
@@ -121,6 +209,46 @@
     </Decoders>
 
     <Encoders>
+        <!-- OMX encoders -->
+        <MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Quirk name="requires-loaded-to-idle-after-allocation" />
+            <Limit name="size" min="96x96" max="4096x2304" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="24" max="2073600" />
+            <Limit name="bitrate" range="1-120000000" />
+            <Limit name="frame-rate" range="1-480" />
+            <Limit name="concurrent-instances" max="16" />
+        </MediaCodec>
+        <MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Quirk name="requires-loaded-to-idle-after-allocation" />
+            <Limit name="size" min="96x96" max="4096x2304" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="24" max="1036800" />
+            <Limit name="bitrate" range="1-120000000" />
+            <Limit name="frame-rate" range="1-240" />
+            <Limit name="concurrent-instances" max="16" />
+        </MediaCodec>
+        <MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Quirk name="requires-loaded-to-idle-after-allocation" />
+            <Limit name="size" min="96x96" max="4096x2304" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="24" max="2073600" />
+            <Limit name="bitrate" range="1-120000000" />
+            <Limit name="frame-rate" range="1-480" />
+            <Limit name="concurrent-instances" max="16" />
+            <Limit name="quality" range="0-100"  default="80" />
+            <Feature name="bitrate-modes" value="VBR,CQ" />
+        </MediaCodec>
+        <!-- C2 encoders -->
         <MediaCodec name="c2.qti.avc.encoder" type="video/avc">
             <Limit name="size" min="96x96" max="4096x2304" />
             <Limit name="alignment" value="2x2" />
diff --git a/media_codecs_performance.xml b/media_codecs_performance.xml
index 2362f63..3918dbc 100644
--- a/media_codecs_performance.xml
+++ b/media_codecs_performance.xml
@@ -14,74 +14,115 @@
      limitations under the License.
 -->
 
-<!-- Generated file for blueline using measurements between PPR1.180430.001 and PPR1.180608.001 -->
+<!-- Generated file for b1c1 using measurements between PPR1.180531.001 and PD1A.180717.001 -->
 <MediaCodecs>
-    <!-- Measurements between PPR1.180501.001 and PPR1.180608.001 -->
     <Encoders>
         <MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" update="true">
-            <!-- measured 98%:193-802 med:234/234 FLAKY(117 - 802 < mx=826.4) variance:2.0 -->
-            <Limit name="measured-frame-rate-320x240" range="234-414" /> <!-- TWEAKED N=158 -->
-            <Limit name="measured-frame-rate-720x480" range="183-183" /> <!-- N=118 v98%=1.7 (PPR1.180425.001-) -->
-            <Limit name="measured-frame-rate-1280x720" range="95-95" /> <!-- N=124 v98%=1.3 (PPR1.180430.001-) -->
-            <Limit name="measured-frame-rate-1920x1080" range="66-67" /> <!-- N=134 v98%=1.2 -->
+            <!-- measured 98%:199-815 med:464/464 FLAKY(mn=176.0 < 199 - 950) variance:2.0 -->
+            <Limit name="measured-frame-rate-320x240" range="351-475" /> <!-- TWEAKED N=236 -->
+            <!-- measured 98%:109-275 med:213/212 FLAKY(mn=76.9 < 106 - 424) -->
+            <Limit name="measured-frame-rate-720x480" range="153-212" /> <!-- TWEAKED N=194 v98%=1.6 -->
+            <Limit name="measured-frame-rate-1280x720" range="94-94" /> <!-- N=170 v98%=1.6 -->
+            <!-- measured 97%:49-85 med:65/65 FLAKY(mn=27.7 < 33 - 130) -->
+            <Limit name="measured-frame-rate-1920x1080" range="65-65" /> <!-- N=254 v97%=1.3 -->
         </MediaCodec>
         <MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" update="true">
-            <!-- measured 98%:199-685 med:237/254 FLAKY(119 - 688 < mx=731.0) -->
-            <Limit name="measured-frame-rate-320x240" range="237-366" /> <!-- TWEAKED N=156 v98%=1.9 -->
-            <Limit name="measured-frame-rate-720x480" range="168-168" /> <!-- N=132 v98%=1.3 -->
-            <Limit name="measured-frame-rate-1280x720" range="82-82" /> <!-- N=132 v98%=1.2 -->
-            <Limit name="measured-frame-rate-1920x1080" range="57-57" /> <!-- N=116 v98%=1.2 (PPR1.180425.001-) -->
-            <Limit name="measured-frame-rate-3840x2160" range="21-29" /> <!-- N=136 v98%=1.4 -->
+            <!-- measured 98%:117-689 med:417/417 FLAKY(mn=113.6 < 117 - 834) variance:2.4 -->
+            <Limit name="measured-frame-rate-320x240" range="234-417" /> <!-- N=226 -->
+            <!-- measured 98%:76-213 med:170/170 FLAKY(mn=75.1 < 76 - 340) -->
+            <Limit name="measured-frame-rate-720x480" range="152-170" /> <!-- N=244 v98%=1.7 (PPR1.180522.002-) -->
+            <Limit name="measured-frame-rate-1280x720" range="81-81" /> <!-- N=204 v98%=1.2 -->
+            <Limit name="measured-frame-rate-1920x1080" range="56-56" /> <!-- N=186 v98%=1.3 -->
+            <!-- measured 98%:15-38 med:32/29 FLAKY(mn=11.4 < 13 - 58) -->
+            <Limit name="measured-frame-rate-3840x2160" range="22-29" /> <!-- TWEAKED N=228 v98%=1.6 -->
         </MediaCodec>
         <MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" update="true">
-            <!-- measured 98%:144-586 med:285/304 FLAKY(mn=133.7 < 143 - 728) variance:2.0 -->
-            <Limit name="measured-frame-rate-320x180" range="285-364" /> <!-- N=128 -->
-            <Limit name="measured-frame-rate-640x360" range="205-205" /> <!-- N=156 v98%=1.4 -->
-            <Limit name="measured-frame-rate-1280x720" range="87-87" /> <!-- N=128 v98%=1.2 -->
-            <Limit name="measured-frame-rate-1920x1080" range="58-58" /> <!-- N=122 v98%=1.2 (PPR1.180430.001-) -->
+            <!-- measured 98%:180-582 med:426/422 FLAKY(mn=147.5 < 180 - 844) -->
+            <Limit name="measured-frame-rate-320x180" range="360-422" /> <!-- N=176 v98%=1.8 (PPR1.180522.001-) -->
+            <!-- measured 93%:164-289 med:257/254 FLAKY(mn=89.2 < 127 - 508) -->
+            <Limit name="measured-frame-rate-640x360" range="178-254" /> <!-- TWEAKED N=202 v93%=1.3 -->
+            <Limit name="measured-frame-rate-1280x720" range="85-85" /> <!-- N=176 v98%=1.2 (PPR1.180522.001-) -->
+            <!-- measured 98%:48-74 med:59/59 FLAKY(mn=0.1 < 30 - 118) -->
+            <Limit name="measured-frame-rate-1920x1080" range="59-59" /> <!-- N=172 v98%=1.2 -->
         </MediaCodec>
     </Encoders>
-    <!-- Measurements between PPR1.180426.003 and PPR1.180608.001 -->
     <Decoders>
         <MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" update="true">
-            <Limit name="measured-frame-rate-320x240" range="357-453" /> <!-- N=106 v98%=1.8 -->
-            <!-- measured 97%:241-476 med:378/378 FLAKY(mn=172.5 < 189 - 756) -->
-            <Limit name="measured-frame-rate-720x480" range="378-378" /> <!-- N=108 v97%=1.4 (PPR1.180423.002-) -->
-            <!-- measured 98%:97-224 med:220/220 FLAKY(mn=90.6 < 97 - 440) -->
-            <Limit name="measured-frame-rate-1280x720" range="194-220" /> <!-- N=106 v98%=1.5 (PPR1.180423.002-) -->
-            <Limit name="measured-frame-rate-1920x1080" range="265-265" /> <!-- N=106 v98%=1.1 -->
+            <!-- measured 98%:158-905 med:260/270 FLAKY(104 - 906 < mx=931.1) variance:2.4 -->
+            <Limit name="measured-frame-rate-320x240" range="208-453" /> <!-- N=251 (-PD1A.180717.001) -->
+            <Limit name="measured-frame-rate-720x480" range="230-314" /> <!-- N=206 v98%=1.8 (PPR1.180510.004-) -->
+            <Limit name="measured-frame-rate-1280x720" range="135-171" /> <!-- N=226 v98%=1.5 (PPR1.180507.002-PD1A.180710.001) -->
+            <Limit name="measured-frame-rate-1920x1080" range="201-219" /> <!-- N=248 v98%=1.5 (-PD1A.180717.001) -->
         </MediaCodec>
         <MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" update="true">
-            <!-- measured 98%:164-752 med:357/369 N=96 variance:2.1 -->
-            <Limit name="measured-frame-rate-352x288" range="310-397" /> <!-- (PPR1.180419.002-) -->
-            <Limit name="measured-frame-rate-640x360" range="409-409" /> <!-- N=106 v98%=1.6 -->
-            <Limit name="measured-frame-rate-720x480" range="373-386" /> <!-- N=106 v98%=1.4 -->
-            <!-- measured 98%:223-402 med:382/379 N=92 FLAKY(mn=142.6 < 190 - 758) -->
-            <Limit name="measured-frame-rate-1280x720" range="285-379" /> <!-- TWEAKED v98%=1.3 -->
-            <Limit name="measured-frame-rate-1920x1080" range="288-288" /> <!-- N=106 v98%=1.4 (PPR1.180423.002-) -->
-            <Limit name="measured-frame-rate-3840x2160" range="70-70" /> <!-- N=106 v98%=1.0 -->
+            <!-- measured 98%:157-660 med:175/178 FLAKY(88 - 674 < mx=735.8) variance:2.1 -->
+            <Limit name="measured-frame-rate-352x288" range="175-337" /> <!-- N=212 (PPR1.180515.001-) -->
+            <Limit name="measured-frame-rate-640x360" range="226-342" /> <!-- N=250 v98%=1.9 -->
+            <Limit name="measured-frame-rate-720x480" range="213-332" /> <!-- N=250 v98%=1.8 -->
+            <Limit name="measured-frame-rate-1280x720" range="202-293" /> <!-- N=228 v98%=1.7 (PPR1.180523.002-) -->
+            <Limit name="measured-frame-rate-1920x1080" range="222-269" /> <!-- N=204 v98%=1.4 (PPR1.180510.004-PD1A.180712.003) -->
+            <!-- measured 98%:64-74 med:68/68 FLAKY(mn=20.7 < 34 - 136) -->
+            <Limit name="measured-frame-rate-3840x2160" range="41-68" /> <!-- TWEAKED N=250 v98%=1.1 -->
         </MediaCodec>
-        <!-- Measurements between PPR1.180423.002 and PPR1.180608.001 -->
         <MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" update="true">
-            <!-- measured 90%:164-647 med:352/355 FLAKY(142 - 760 < mx=1008.1) -->
-            <Limit name="measured-frame-rate-320x180" range="283-415" /> <!-- TWEAKED N=96 v90%=2.0 (PPR1.180419.002-) -->
-            <!-- measured 97%:237-699 med:394/401 FLAKY(mn=168.8 < 197 - 802) -->
-            <Limit name="measured-frame-rate-640x360" range="394-401" /> <!-- N=106 v97%=1.7 -->
-            <!-- measured 90%:234-405 med:378/376 FLAKY(mn=97.7 < 180 - 752) -->
-            <Limit name="measured-frame-rate-1280x720" range="195-376" /> <!-- TWEAKED N=104 v90%=1.3 -->
-            <Limit name="measured-frame-rate-1920x1080" range="203-203" /> <!-- N=106 v98%=1.3 (PPR1.180426.003-) -->
+            <!-- measured 97%:159-830 med:209/216 FLAKY(104 - 830 < mx=1146.8) variance:2.3 -->
+            <Limit name="measured-frame-rate-320x180" range="208-415" /> <!-- N=212 (-PD1A.180717.001) -->
+            <!-- measured 98%:159-697 med:354/320 FLAKY(118 - 708 < mx=722.0) variance:2.1 -->
+            <Limit name="measured-frame-rate-640x360" range="236-354" /> <!-- N=204 (PPR1.180514.002-) -->
+            <!-- measured 97%:144-406 med:268/289 FLAKY(mn=97.7 < 106 - 628) -->
+            <Limit name="measured-frame-rate-1280x720" range="211-314" /> <!-- N=224 v97%=1.7 (PPR1.180507.002-PD1A.180710.001) -->
+            <Limit name="measured-frame-rate-1920x1080" range="101-159" /> <!-- N=248 v98%=1.8 (PPR1.180522.002-PD1A.180717.001) -->
         </MediaCodec>
-        <!-- Measurements between PPR1.180423.002 and PPR1.180608.001 -->
         <MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" update="true">
-            <!-- measured 98%:100-677 med:352/346 variance:2.6 -->
-            <Limit name="measured-frame-rate-320x180" range="200-374" /> <!-- N=104 -->
-            <!-- measured 98%:100-640 med:375/376 variance:2.5 -->
-            <Limit name="measured-frame-rate-640x360" range="199-376" /> <!-- N=104 -->
-            <!-- measured 98%:241-369 med:356/357 FLAKY(mn=145.1 < 178 - 714) -->
-            <Limit name="measured-frame-rate-1280x720" range="290-357" /> <!-- TWEAKED N=106 v98%=1.2 -->
-            <!-- measured 98%:85-208 med:206/206 N=88 FLAKY(mn=80.7 < 85 - 412) -->
-            <Limit name="measured-frame-rate-1920x1080" range="161-206" /> <!-- TWEAKED v98%=1.6 (PPR1.180426.003-) -->
-            <Limit name="measured-frame-rate-3840x2160" range="28-44" /> <!-- N=106 v98%=1.7 -->
+            <!-- measured 97%:156-898 med:353/346 FLAKY(mn=100.1 < 104 - 906 < mx=1011.1) variance:2.4 -->
+            <Limit name="measured-frame-rate-320x180" range="207-453" /> <!-- N=224 -->
+            <!-- measured 97%:155-629 med:349/334 FLAKY(mn=99.9 < 122 - 718) variance:2.0 -->
+            <Limit name="measured-frame-rate-640x360" range="244-359" /> <!-- N=224 -->
+            <Limit name="measured-frame-rate-1280x720" range="212-283" /> <!-- N=202 v98%=1.6 -->
+            <!-- measured 98%:73-279 med:167/167 FLAKY(mn=69.2 < 70 - 334) -->
+            <Limit name="measured-frame-rate-1920x1080" range="139-167" /> <!-- N=230 v98%=2.0 -->
+            <Limit name="measured-frame-rate-3840x2160" range="24-40" /> <!-- N=236 v98%=1.9 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" update="true">
+            <!-- measured 90%:106-508 med:238/234 FLAKY(mn=68.2 < 79 - 508 < mx=725.2) variance:2.2 -->
+            <Limit name="measured-frame-rate-176x144" range="136-254" /> <!-- TWEAKED N=206 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.google.h264.decoder" type="video/avc" update="true">
+            <!-- measured 98%:164-634 med:335/320 FLAKY(119 - 680 < mx=781.3) -->
+            <Limit name="measured-frame-rate-320x240" range="237-340" /> <!-- N=176 v98%=2.0 (PPR1.180424.003-) -->
+            <Limit name="measured-frame-rate-720x480" range="156-156" /> <!-- N=184 v98%=1.1 -->
+            <Limit name="measured-frame-rate-1280x720" range="43-43" /> <!-- N=190 v98%=1.3 (PPR1.180426.003-) -->
+            <Limit name="measured-frame-rate-1920x1080" range="26-26" /> <!-- N=184 v98%=1.5 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.google.hevc.decoder" type="video/hevc" update="true">
+            <!-- measured 98%:178-979 med:668/615 FLAKY(mn=175.8 < 178 - 1230) variance:2.3 -->
+            <Limit name="measured-frame-rate-352x288" range="351-615" /> <!-- TWEAKED N=206 -->
+            <!-- measured 98%:200-444 med:385/385 FLAKY(mn=184.5 < 193 - 770) -->
+            <Limit name="measured-frame-rate-640x360" range="385-385" /> <!-- N=206 v98%=1.5 -->
+            <Limit name="measured-frame-rate-720x480" range="353-353" /> <!-- N=176 v98%=1.4 (PPR1.180424.003-) -->
+            <Limit name="measured-frame-rate-1280x720" range="121-121" /> <!-- N=206 v98%=1.4 -->
+            <!-- measured 98%:38-70 med:65/65 FLAKY(mn=16.6 < 33 - 130) -->
+            <Limit name="measured-frame-rate-1920x1080" range="65-65" /> <!-- N=194 v98%=1.4 (PPR1.180426.003-) -->
+        </MediaCodec>
+        <MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es" update="true">
+            <!-- measured 90%:124-570 med:250/248 FLAKY(mn=81.9 < 104 - 570 < mx=717.9) variance:2.1 -->
+            <Limit name="measured-frame-rate-176x144" range="163-285" /> <!-- TWEAKED N=206 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
+            <!-- measured 90%:164-1640 med:606/610 FLAKY(mn=161.1 < 199 - 1746) RG.VARIANCE:2.2 -->
+            <Limit name="measured-frame-rate-320x180" range="377-830" /> <!-- TWEAKED N=188 v90%=3.2 -->
+            <!-- measured 98%:337-554 med:476/470 FLAKY(mn=179.4 < 235 - 940) -->
+            <Limit name="measured-frame-rate-640x360" range="470-470" /> <!-- N=194 v98%=1.3 (PPR1.180426.003-) -->
+            <Limit name="measured-frame-rate-1920x1080" range="36-43" /> <!-- N=176 v98%=1.3 (PPR1.180424.003-) -->
+        </MediaCodec>
+        <MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
+            <!-- measured 98%:167-1309 med:521/535 FLAKY(mn=165.1 < 167 - 1416) variance:2.8 -->
+            <Limit name="measured-frame-rate-320x180" range="330-708" /> <!-- TWEAKED N=192 -->
+            <!-- measured 98%:162-545 med:385/380 FLAKY(mn=159.9 < 162 - 760) -->
+            <Limit name="measured-frame-rate-640x360" range="319-380" /> <!-- TWEAKED N=184 v98%=1.8 (PPR1.180507.001-) -->
+            <Limit name="measured-frame-rate-1280x720" range="106-106" /> <!-- N=176 v98%=1.3 (PPR1.180424.003-) -->
+            <!-- measured 98%:48-79 med:64/65 FLAKY(mn=20.7 < 32 - 130) -->
+            <Limit name="measured-frame-rate-1920x1080" range="64-65" /> <!-- N=194 v98%=1.3 -->
         </MediaCodec>
     </Decoders>
 </MediaCodecs>
diff --git a/media_codecs_performance_c2.xml b/media_codecs_performance_c2.xml
index 6fd65ce..136f3bf 100644
--- a/media_codecs_performance_c2.xml
+++ b/media_codecs_performance_c2.xml
@@ -14,104 +14,160 @@
      limitations under the License.
 -->
 
+<!-- Generated file for b1c1 using measurements between PPR1.180531.001 and PD1A.180717.001 -->
 <MediaCodecs>
     <Encoders>
         <MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true">
-            <Limit name="measured-frame-rate-176x144" range="455-455" /> <!-- N=104 v98%=1.4 -->
+            <!-- measured 95%:144-637 med:343/343 FLAKY(mn=40.8 < 144 - 808 < mx=916.6) variance:2.1 -->
+            <Limit name="measured-frame-rate-176x144" range="287-459" /> <!-- TWEAKED N=224 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" update="true">
+            <!-- measured 98%:199-815 med:464/464 FLAKY(mn=176.0 < 199 - 950) variance:2.0 -->
+            <Limit name="measured-frame-rate-320x240" range="351-475" /> <!-- TWEAKED N=236 -->
+            <!-- measured 98%:109-275 med:213/212 FLAKY(mn=76.9 < 106 - 424) -->
+            <Limit name="measured-frame-rate-720x480" range="153-212" /> <!-- TWEAKED N=194 v98%=1.6 -->
+            <Limit name="measured-frame-rate-1280x720" range="94-94" /> <!-- N=170 v98%=1.6 -->
+            <!-- measured 97%:49-85 med:65/65 FLAKY(mn=27.7 < 33 - 130) -->
+            <Limit name="measured-frame-rate-1920x1080" range="65-65" /> <!-- N=254 v97%=1.3 -->
         </MediaCodec>
         <MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true">
-            <!-- measured 98%:110-325 med:205 FLAKY(95 - 380 < mx=569.5) WIDEN(95 - 570) -->
-            <Limit name="measured-frame-rate-320x240" range="190-285" /> <!-- N=104 v98%=1.7 -->
-            <!-- measured 98%:35-166 med:66 FLAKY(33 - 166 < mx=166.5) variance:2.2 WIDEN(33 - 168) -->
-            <Limit name="measured-frame-rate-720x480" range="65-84" /> <!-- N=104 -->
-            <Limit name="measured-frame-rate-1280x720" range="31-34" /> <!-- N=104 v98%=1.9 -->
-            <!-- measured 98%:17-39 med:22 SLOW -->
-            <Limit name="measured-frame-rate-1920x1080" range="22-26" /> <!-- N=104 v98%=1.5 -->
+            <!-- measured 90%:42-420 med:146/160 FLAKY(mn=39.0 < 42 - 368 < mx=569.5) RG.VARIANCE:2.2 -->
+            <Limit name="measured-frame-rate-320x240" range="82-212" /> <!-- SHOULDN'T HAVE TWEAKED N=266 v90%=3.2 -->
+            <!-- measured 98%:29-166 med:66/63 FLAKY(24 - 166 < mx=166.5) variance:2.4 -->
+            <Limit name="measured-frame-rate-720x480" range="47-83" /> <!-- N=262 -->
+            <!-- measured 98%:11-68 med:30/30 FLAKY(mn=10.5 < 11 - 68 < mx=82.1) variance:2.5 -->
+            <Limit name="measured-frame-rate-1280x720" range="22-42" /> <!-- TWEAKED N=236 -->
+            <!-- measured 98%:10-38 med:18/18 FLAKY(mn=5.2 < 9 - 38 < mx=38.8) -->
+            <Limit name="measured-frame-rate-1920x1080" range="18-19" /> <!-- N=288 v98%=2.0 -->
         </MediaCodec>
         <MediaCodec name="c2.qti.avc.encoder" type="video/avc" update="true">
-            <Limit name="measured-frame-rate-320x240" range="249-249" /> <!-- N=36 v93%=2.0 -->
-            <Limit name="measured-frame-rate-720x480" range="76-76" /> <!-- N=36 v93%=1.2 -->
-            <Limit name="measured-frame-rate-1280x720" range="34-37" /> <!-- N=36 v93%=1.1 -->
-            <Limit name="measured-frame-rate-1920x1080" range="15-15" /> <!-- N=36 v93%=1.1 -->
+            <!-- measured 90%:51-438 med:238/221 FLAKY(mn=43.4 < 51 - 448 < mx=489.2) RG.VARIANCE:2.1 -->
+            <Limit name="measured-frame-rate-320x240" range="86-189" /> <!-- SHOULDN'T HAVE TWEAKED N=174 v90%=2.9 -->
+            <!-- measured 98%:24-133 med:49/51 FLAKY(20 - 134 < mx=134.5) variance:2.4 -->
+            <Limit name="measured-frame-rate-720x480" range="40-67" /> <!-- N=172 -->
+            <!-- measured 98%:8-43 med:31/31 variance:2.3 -->
+            <Limit name="measured-frame-rate-1280x720" range="15-31" /> <!-- N=186 -->
+            <!-- measured 98%:5-27 med:11/12 FLAKY(5 - 28 < mx=29.5) variance:2.3 -->
+            <Limit name="measured-frame-rate-1920x1080" range="9-14" /> <!-- N=178 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" update="true">
+            <!-- measured 98%:117-689 med:417/417 FLAKY(mn=113.6 < 117 - 834) variance:2.4 -->
+            <Limit name="measured-frame-rate-320x240" range="234-417" /> <!-- N=226 -->
+            <!-- measured 98%:76-213 med:170/170 FLAKY(mn=75.1 < 76 - 340) -->
+            <Limit name="measured-frame-rate-720x480" range="152-170" /> <!-- N=244 v98%=1.7 (PPR1.180522.002-) -->
+            <Limit name="measured-frame-rate-1280x720" range="81-81" /> <!-- N=204 v98%=1.2 -->
+            <Limit name="measured-frame-rate-1920x1080" range="56-56" /> <!-- N=186 v98%=1.3 -->
+            <!-- measured 98%:15-38 med:32/29 FLAKY(mn=11.4 < 13 - 58) -->
+            <Limit name="measured-frame-rate-3840x2160" range="22-29" /> <!-- TWEAKED N=228 v98%=1.6 -->
         </MediaCodec>
         <MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true">
-            <Limit name="measured-frame-rate-176x144" range="123-123" /> <!-- N=104 v98%=1.7 -->
+            <!-- measured 90%:29-451 med:208/206 FLAKY(mn=19.2 < 47 - 412 < mx=888.9) RG.VARIANCE:2.5 -->
+            <Limit name="measured-frame-rate-176x144" range="203-445" /> <!-- SHOULDN'T HAVE TWEAKED N=220 v90%=4.0 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" update="true">
+            <!-- measured 98%:180-582 med:426/422 FLAKY(mn=147.5 < 180 - 844) -->
+            <Limit name="measured-frame-rate-320x180" range="360-422" /> <!-- N=176 v98%=1.8 (PPR1.180522.001-) -->
+            <!-- measured 93%:164-289 med:257/254 FLAKY(mn=89.2 < 127 - 508) -->
+            <Limit name="measured-frame-rate-640x360" range="178-254" /> <!-- TWEAKED N=202 v93%=1.3 -->
+            <Limit name="measured-frame-rate-1280x720" range="85-85" /> <!-- N=176 v98%=1.2 (PPR1.180522.001-) -->
+            <!-- measured 98%:48-74 med:59/59 FLAKY(mn=0.1 < 30 - 118) -->
+            <Limit name="measured-frame-rate-1920x1080" range="59-59" /> <!-- N=172 v98%=1.2 -->
         </MediaCodec>
         <MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
-            <!-- measured 93%:19-35 med:31 FLAKY(mn=9.4 < 13 - 52) WIDEN(9 - 52) -->
-            <Limit name="measured-frame-rate-320x180" range="18-26" /> <!-- N=106 v93%=1.3 -->
-            <Limit name="measured-frame-rate-640x360" range="12-12" /> <!-- N=106 v98%=1.2 -->
-            <Limit name="measured-frame-rate-1280x720" range="6-7" /> <!-- N=106 v98%=1.2 -->
-            <Limit name="measured-frame-rate-1920x1080" range="5-5" /> <!-- N=106 v98%=1.2 -->
-        </MediaCodec>
-        <MediaCodec name="c2.qti.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
-            <Limit name="measured-frame-rate-320x180" range="437-465" /> <!-- N=36 v93%=1.2 -->
-            <Limit name="measured-frame-rate-640x360" range="78-78" /> <!-- N=36 v93%=1.5 -->
-            <Limit name="measured-frame-rate-1280x720" range="34-38" /> <!-- N=36 v93%=1.1 -->
-            <Limit name="measured-frame-rate-1920x1080" range="15-16" /> <!-- N=36 v93%=1.1 -->
+            <!-- measured 90%:6-36 med:30/29 FLAKY(mn=0.0 < 7 - 58) variance:2.5 -->
+            <Limit name="measured-frame-rate-320x180" range="7-16" /> <!-- SHOULDN'T HAVE TWEAKED N=214 -->
+            <!-- measured 98%:3-24 med:12/12 FLAKY(mn=2.8 < 3 - 24 < mx=26.6) variance:2.8 -->
+            <Limit name="measured-frame-rate-640x360" range="6-12" /> <!-- N=220 -->
+            <!-- measured 98%:3-11 med:6/6 FLAKY(mn=0.0 < 3 - 12) -->
+            <Limit name="measured-frame-rate-1280x720" range="5-6" /> <!-- N=202 v98%=2.0 -->
+            <!-- measured 98%:3-7 med:5/5 FLAKY(mn=0.0 < 2 - 10 < mx=11.2) -->
+            <Limit name="measured-frame-rate-1920x1080" range="4-5" /> <!-- N=212 v98%=1.5 -->
         </MediaCodec>
     </Encoders>
     <Decoders>
         <MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
-            <!-- measured 98%:173-1145 med:1079 FLAKY(mn=171.1 < 174 - 1146 < mx=1146.8) variance:2.6 WIDEN(171 - 1148) -->
-            <Limit name="measured-frame-rate-176x144" range="342-574" /> <!-- N=112 -->
+            <!-- measured 98%:151-1143 med:437/432 FLAKY(111 - 972 < mx=1146.8) variance:2.8 -->
+            <Limit name="measured-frame-rate-176x144" range="221-486" /> <!-- N=270 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" update="true">
+            <!-- measured 98%:158-905 med:260/270 FLAKY(104 - 906 < mx=931.1) variance:2.4 -->
+            <Limit name="measured-frame-rate-320x240" range="208-453" /> <!-- N=251 (-PD1A.180717.001) -->
+            <Limit name="measured-frame-rate-720x480" range="230-314" /> <!-- N=206 v98%=1.8 (PPR1.180510.004-) -->
+            <Limit name="measured-frame-rate-1280x720" range="135-171" /> <!-- N=226 v98%=1.5 (PPR1.180507.002-PD1A.180710.001) -->
+            <Limit name="measured-frame-rate-1920x1080" range="201-219" /> <!-- N=248 v98%=1.5 (-PD1A.180717.001) -->
         </MediaCodec>
         <MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
-            <!-- measured 96%:178-414 med:199 SLOW FLAKY(mn=61.7 < 99 - 544) WIDEN(68 - 544) -->
-            <Limit name="measured-frame-rate-320x240" range="136-272" /> <!-- N=110 v96%=1.5 -->
-            <Limit name="measured-frame-rate-768x480" range="79-83" /> <!-- N=108 v90%=1.1 -->
-            <Limit name="measured-frame-rate-1280x720" range="27-29" /> <!-- N=112 v90%=1.1 -->
-            <Limit name="measured-frame-rate-1920x1080" range="19-19" /> <!-- N=112 v98%=1.0 -->
+            <!-- measured 98%:153-414 med:193/192 FLAKY(mn=61.7 < 96 - 414 < mx=423.7) -->
+            <Limit name="measured-frame-rate-320x240" range="192-207" /> <!-- N=266 v98%=1.6 -->
+            <Limit name="measured-frame-rate-720x480" range="72-73" /> <!-- N=266 v98%=1.5 -->
+            <Limit name="measured-frame-rate-1280x720" range="27-27" /> <!-- N=236 v98%=1.5 (-PD1A.180712.003) -->
+            <Limit name="measured-frame-rate-1920x1080" range="15-16" /> <!-- N=272 v98%=1.4 -->
         </MediaCodec>
         <MediaCodec name="c2.qti.avc.decoder" type="video/avc" update="true">
-            <Limit name="measured-frame-rate-320x240" range="861-861" /> <!-- N=69 v97%=1.0 -->
-            <Limit name="measured-frame-rate-720x480" range="759-759" /> <!-- N=82 v98%=1.0 -->
-            <Limit name="measured-frame-rate-1280x720" range="545-545" /> <!-- N=92 v98%=1.0 -->
-            <Limit name="measured-frame-rate-1920x1088" range="278-278" /> <!-- N=84 v98%=1.0 -->
+            <!-- measured 98%:162-895 med:766/763 FLAKY(mn=152.3 < 174 - 1526) variance:2.3 -->
+            <Limit name="measured-frame-rate-320x240" range="304-668" /> <!-- TWEAKED N=257 (PPR1.180523.002-) -->
+            <!-- measured 90%:454-793 med:740/740 FLAKY(mn=71.4 < 370 - 1480) -->
+            <Limit name="measured-frame-rate-720x480" range="740-740" /> <!-- N=231 v90%=1.3 (-PD1A.180710.001) -->
+            <!-- measured 98%:330-571 med:547/546 FLAKY(mn=216.0 < 273 - 1092) -->
+            <Limit name="measured-frame-rate-1280x720" range="546-546" /> <!-- N=283 v98%=1.3 -->
+            <Limit name="measured-frame-rate-1920x1080" range="212-282" /> <!-- N=284 v98%=1.6 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" update="true">
+            <!-- measured 98%:157-660 med:175/178 FLAKY(88 - 674 < mx=735.8) variance:2.1 -->
+            <Limit name="measured-frame-rate-352x288" range="175-337" /> <!-- N=212 (PPR1.180515.001-) -->
+            <Limit name="measured-frame-rate-640x360" range="226-342" /> <!-- N=250 v98%=1.9 -->
+            <Limit name="measured-frame-rate-720x480" range="213-332" /> <!-- N=250 v98%=1.8 -->
+            <Limit name="measured-frame-rate-1280x720" range="202-293" /> <!-- N=228 v98%=1.7 (PPR1.180523.002-) -->
+            <Limit name="measured-frame-rate-1920x1080" range="222-269" /> <!-- N=204 v98%=1.4 (PPR1.180510.004-PD1A.180712.003) -->
+            <!-- measured 98%:64-74 med:68/68 FLAKY(mn=20.7 < 34 - 136) -->
+            <Limit name="measured-frame-rate-3840x2160" range="41-68" /> <!-- TWEAKED N=250 v98%=1.1 -->
         </MediaCodec>
         <MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
-            <Limit name="measured-frame-rate-384x288" range="303-333" /> <!-- N=112 v98%=1.3 -->
-            <Limit name="measured-frame-rate-640x360" range="203-203" /> <!-- N=112 v98%=1.1 -->
-            <Limit name="measured-frame-rate-768x480" range="194-194" /> <!-- N=112 v98%=1.1 -->
-            <Limit name="measured-frame-rate-1280x720" range="81-81" /> <!-- N=112 v98%=1.0 -->
-            <Limit name="measured-frame-rate-1920x1080" range="45-46" /> <!-- N=112 v98%=1.0 -->
-        </MediaCodec>
-        <MediaCodec name="c2.qti.hevc.decoder" type="video/hevc" update="true">
-            <Limit name="measured-frame-rate-352x288" range="881-881" /> <!-- N=90 v98%=1.1 -->
-            <Limit name="measured-frame-rate-640x360" range="677-679" /> <!-- N=95 v98%=1.0 -->
-            <Limit name="measured-frame-rate-720x480" range="794-794" /> <!-- N=99 v98%=1.0 -->
-            <Limit name="measured-frame-rate-1280x720" range="533-533" /> <!-- N=96 v98%=1.0 -->
-            <Limit name="measured-frame-rate-1920x1080" range="321-321" /> <!-- N=97 v98%=1.0 -->
-            <Limit name="measured-frame-rate-3840x2160" range="80-81" /> <!-- N=96 v98%=1.0 -->
+            <Limit name="measured-frame-rate-352x288" range="259-262" /> <!-- N=270 v98%=1.6 -->
+            <!-- measured 98%:77-220 med:165/169 FLAKY(mn=74.9 < 75 - 338) -->
+            <Limit name="measured-frame-rate-640x360" range="149-169" /> <!-- TWEAKED N=269 v98%=1.7 -->
+            <!-- measured 98%:85-223 med:194/186 FLAKY(mn=80.8 < 85 - 372) -->
+            <Limit name="measured-frame-rate-720x480" range="161-186" /> <!-- TWEAKED N=270 v98%=1.6 -->
+            <Limit name="measured-frame-rate-1280x720" range="81-81" /> <!-- N=270 v98%=1.4 -->
+            <Limit name="measured-frame-rate-1920x1080" range="46-46" /> <!-- N=230 v98%=1.2 (-PD1A.180706.000) -->
         </MediaCodec>
         <MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
-            <!-- measured 93%:179-1399 med:565 FLAKY(mn=166.7 < 179 - 1400 < mx=1400.6) variance:2.8 WIDEN(176 - 1402) -->
-            <Limit name="measured-frame-rate-176x144" range="351-701" /> <!-- N=112 -->
+            <!-- measured 90%:149-1332 med:379/360 FLAKY(109 - 958 < mx=1400.6) RG.VARIANCE:2.1 -->
+            <Limit name="measured-frame-rate-176x144" range="218-479" /> <!-- N=272 v90%=3.0 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" update="true">
+            <!-- measured 97%:159-830 med:209/216 FLAKY(104 - 830 < mx=1146.8) variance:2.3 -->
+            <Limit name="measured-frame-rate-320x180" range="208-415" /> <!-- N=212 (-PD1A.180717.001) -->
+            <!-- measured 98%:159-697 med:354/320 FLAKY(118 - 708 < mx=722.0) variance:2.1 -->
+            <Limit name="measured-frame-rate-640x360" range="236-354" /> <!-- N=204 (PPR1.180514.002-) -->
+            <!-- measured 97%:144-406 med:268/289 FLAKY(mn=97.7 < 106 - 628) -->
+            <Limit name="measured-frame-rate-1280x720" range="211-314" /> <!-- N=224 v97%=1.7 (PPR1.180507.002-PD1A.180710.001) -->
+            <Limit name="measured-frame-rate-1920x1080" range="101-159" /> <!-- N=248 v98%=1.8 (PPR1.180522.002-PD1A.180717.001) -->
         </MediaCodec>
         <MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
-            <Limit name="measured-frame-rate-320x180" range="581-581" /> <!-- N=112 v98%=1.1 -->
-            <Limit name="measured-frame-rate-640x360" range="223-223" /> <!-- N=112 v98%=1.1 -->
-            <Limit name="measured-frame-rate-1920x1080" range="19-19" /> <!-- N=112 v98%=1.1 -->
+            <!-- measured 98%:191-657 med:617/613 FLAKY(mn=183.9 < 191 - 1226) -->
+            <Limit name="measured-frame-rate-320x180" range="367-613" /> <!-- TWEAKED N=270 v98%=1.9 (-PD1A.180717.001) -->
+            <Limit name="measured-frame-rate-640x360" range="235-235" /> <!-- N=230 v98%=1.3 -->
+            <!-- measured 98%:35-54 med:36/36 N=64 -->
+            <Limit name="measured-frame-rate-1280x720" range="36-36" /> <!-- v98%=1.2 (PD1A.180706.000-) -->
+            <Limit name="measured-frame-rate-1920x1080" range="21-21" /> <!-- N=270 v98%=1.3 (-PD1A.180717.001) -->
         </MediaCodec>
-        <MediaCodec name="c2.qti.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
-            <Limit name="measured-frame-rate-320x192" range="931-931" /> <!-- N=100 v98%=1.3 -->
-            <Limit name="measured-frame-rate-640x368" range="761-761" /> <!-- N=100 v98%=1.0 -->
-            <Limit name="measured-frame-rate-1280x720" range="415-415" /> <!-- N=100 v98%=1.0 -->
-            <Limit name="measured-frame-rate-1920x1088" range="245-245" /> <!-- N=100 v98%=1.0 -->
+        <MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" update="true">
+            <!-- measured 97%:156-898 med:353/346 FLAKY(mn=100.1 < 104 - 906 < mx=1011.1) variance:2.4 -->
+            <Limit name="measured-frame-rate-320x180" range="207-453" /> <!-- N=224 -->
+            <!-- measured 97%:155-629 med:349/334 FLAKY(mn=99.9 < 122 - 718) variance:2.0 -->
+            <Limit name="measured-frame-rate-640x360" range="244-359" /> <!-- N=224 -->
+            <Limit name="measured-frame-rate-1280x720" range="212-283" /> <!-- N=202 v98%=1.6 -->
+            <!-- measured 98%:73-279 med:167/167 FLAKY(mn=69.2 < 70 - 334) -->
+            <Limit name="measured-frame-rate-1920x1080" range="139-167" /> <!-- N=230 v98%=2.0 -->
+            <Limit name="measured-frame-rate-3840x2160" range="24-40" /> <!-- N=236 v98%=1.9 -->
         </MediaCodec>
         <MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
-            <Limit name="measured-frame-rate-320x180" range="623-623" /> <!-- N=112 v98%=1.1 -->
-            <Limit name="measured-frame-rate-640x360" range="221-221" /> <!-- N=112 v98%=1.6 -->
-            <Limit name="measured-frame-rate-1280x720" range="75-82" /> <!-- N=112 v93%=1.1 -->
-            <Limit name="measured-frame-rate-1920x1080" range="48-51" /> <!-- N=112 v98%=1.1 -->
-        </MediaCodec>
-        <MediaCodec name="c2.qti.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
-            <Limit name="measured-frame-rate-320x184" range="768-801" /> <!-- N=100 v98%=1.2 -->
-            <Limit name="measured-frame-rate-640x360" range="661-661" /> <!-- N=100 v98%=1.1 -->
-            <Limit name="measured-frame-rate-1280x720" range="357-357" /> <!-- N=100 v98%=1.0 -->
-            <Limit name="measured-frame-rate-1920x1080" range="228-229" /> <!-- N=99 v98%=1.0 -->
-            <Limit name="measured-frame-rate-3840x2160" range="47-48" /> <!-- N=99 v98%=1.0 -->
+            <!-- measured 98%:173-698 med:670/668 FLAKY(mn=161.4 < 162 - 1336) variance:2.0 -->
+            <Limit name="measured-frame-rate-320x180" range="322-668" /> <!-- TWEAKED N=228 -->
+            <Limit name="measured-frame-rate-640x360" range="162-259" /> <!-- N=272 v98%=1.9 (-PD1A.180717.001) -->
+            <Limit name="measured-frame-rate-1280x720" range="72-73" /> <!-- N=270 v98%=1.3 (-PD1A.180717.001) -->
+            <Limit name="measured-frame-rate-1920x1080" range="47-47" /> <!-- N=230 v98%=1.2 -->
         </MediaCodec>
     </Decoders>
 </MediaCodecs>
-
diff --git a/nfc/libnfc-nxp.blueline.conf b/nfc/libnfc-nxp.blueline.conf
index ed1e884..01f953b 100644
--- a/nfc/libnfc-nxp.blueline.conf
+++ b/nfc/libnfc-nxp.blueline.conf
@@ -78,11 +78,10 @@
 # NXP RF configuration ALM/PLM settings
 # This section needs to be updated with the correct values based on the platform
 NXP_RF_CONF_BLK_1={
-20, 02, 1F, 04,
+20, 02, 19, 03,
 A0, 0D, 03, 24, 03, 80,
-A0, 0D, 03, 08, 41, 10,
 A0, 0D, 06, 08, 37, 08, 76, 00, 00,
-A0, 0D, 06, 08, 42, 00, 02, F9, F9
+A0, 0D, 06, 08, 42, 00, 02, F2, F2
 }
 
 ###############################################################################
@@ -172,10 +171,10 @@
     A0, D8, 01, 02,
     A0, D5, 01, 0A,
     A0, 98, 01, 03,
-    A0, 9C, 02, 42, 00,
+    A0, 9C, 02, 00, 00,
     A0, AA, 04, F1, 03, 2D, 01,
     A0, 38, 04, 14, 0B, 0B, 00,
-    A0, 3A, 08, 19, 00, 19, 00, 19, 00, 19, 00,
+    A0, 3A, 08, 0A, 00, 0A, 00, 0A, 00, 0A, 00,
     A0, B2, 01, 19,
     A0, 91, 01, 00
 }
diff --git a/nfc/libnfc-nxp.crosshatch.conf b/nfc/libnfc-nxp.crosshatch.conf
index a621a9a..ee8dc04 100644
--- a/nfc/libnfc-nxp.crosshatch.conf
+++ b/nfc/libnfc-nxp.crosshatch.conf
@@ -88,7 +88,7 @@
 # NXP RF configuration ALM/PLM settings
 # This section needs to be updated with the correct values based on the platform
 NXP_RF_CONF_BLK_2={
-20, 02, 10, 01, A0, AF, 0C, 83, 41, 74, 80, 00, 83, 09, 74, 80, 00, 77, 08
+20, 02, 10, 01, A0, AF, 0C, 83, C3, 74, 80, 00, 83, 8B, 74, 80, 00, 77, 08
 }
 
 ###############################################################################
@@ -100,8 +100,8 @@
 01, 00, 2C, 01, 00, 2C, 01, 00, 52, 01, 00, 52, 01, 00, 77, 01, 00, 77, 01,
 00, C2, 01, 00, C2, 01, 00, 0D, 02, 00, 0D, 02, 00, 58, 02, 00, 58, 02, 00,
 EE, 02, 00, EE, 02, 00, 18, BC, 00, 00, BC, 00, 00, BC, 00, 00, BC, 00, 00,
-E1, 00, 00, E1, 00, 00, 19, 01, 00, 19, 01, 00, 19, 01, 00, DC, 05, 00, DC,
-05, 00, DC, 05, 00, DC, 05, 00, DC, 05, 00, DC, 05, 00, DC, 05, 00, DC, 05,
+E1, 00, 00, E1, 00, 00, 19, 01, 00, 19, 01, 00, 19, 01, 00, 19, 01, 00, 2C,
+01, 00, 2C, 01, 00, C2, 01, 00, C2, 01, 00, 58, 02, 00, 58, 02, 00, DC, 05,
 00, DC, 05, 00, DC, 05, 00, DC, 05, 00, DC, 05, 00, DC, 05, 00, DC, 05, 00,
 DC, 05, 00
 }
@@ -170,9 +170,9 @@
     A0, D8, 01, 02,
     A0, D5, 01, 0A,
     A0, 98, 01, 03,
-    A0, 9C, 02, 42, 00,
+    A0, 9C, 02, 00, 00,
     A0, AA, 04, FD, 03, F4, 01,
-    A0, 38, 04, 14, 0B, 0B, 00,
+    A0, 38, 04, 1A, 0B, 0B, 00,
     A0, 3A, 08, 96, 00, 96, 00, 96, 00, 96, 00,
     A0, B2, 01, 19,
     A0, 91, 01, 00
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
index 93309ff..e0e7c8b 100755
--- a/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -337,11 +337,17 @@
         <item>"/system/framework/boot.vdex"</item>
         <item>"/system/framework/arm64/boot-core-libart.oat"</item>
         <item>"/system/framework/boot-core-libart.vdex"</item>
+        <item>"/system/priv-app/SystemUIGoogle/oat/arm64/SystemUIGoogle.vdex"</item>
+        <item>"/system/priv-app/SystemUIGoogle/oat/arm64/SystemUIGoogle.odex"</item>
+        <item>"/system/lib64/libsurfaceflinger.so"</item>
     </string-array>
 
     <!-- Should the pinner service pin the Camera application? -->
     <bool name="config_pinnerCameraApp">true</bool>
 
+    <!-- Should the pinner service pin the Home application? -->
+    <bool name="config_pinnerHomeApp">true</bool>
+
     <!-- Enable system navigation keys. -->
     <bool name="config_supportSystemNavigationKeys">true</bool>
 
@@ -405,4 +411,14 @@
 
     <!-- String for the sensor type for body/head proximity for SAR -->
     <string translatable="false" name="config_wifi_sar_sensor_type">com.google.sensor.sar</string>
+
+    <!-- Applications which are disabled unless matching a particular sku -->
+    <string-array name="config_disableApksUnlessMatchedSku_apk_list" translatable="false">
+        <item>com.felicanetworks.mfs</item>
+        <item>com.felicanetworks.mfw.a.boot</item>
+        <item>com.felicanetworks.mfw.a.main</item>
+        <item>com.felicanetworks.mfm.main</item>
+        <item>com.felicanetworks.mfc</item>
+        <item>com.felicanetworks.mfm</item>
+    </string-array>
 </resources>
diff --git a/pixelstats/DropDetect.cpp b/pixelstats/DropDetect.cpp
index 5137533..2d468cf 100644
--- a/pixelstats/DropDetect.cpp
+++ b/pixelstats/DropDetect.cpp
@@ -133,14 +133,14 @@
                                        free_fall_duration_ms);
 }
 
-bool DropDetect::start() {
+sp<DropDetect> DropDetect::start() {
     sp<DropDetect> dropDetect = new DropDetect();
 
     if (!dropDetect->connectInBackground(kChreSocketName, dropDetect)) {
         ALOGE("Couldn't connect to CHRE socket");
-        return false;
+        return nullptr;
     }
-    return true;
+    return dropDetect;
 }
 
 }  // namespace crosshatch
diff --git a/pixelstats/DropDetect.h b/pixelstats/DropDetect.h
index f21ce2c..fd9c9ac 100644
--- a/pixelstats/DropDetect.h
+++ b/pixelstats/DropDetect.h
@@ -29,7 +29,7 @@
                    public android::chre::IChreMessageHandlers,
                    public android::chre::SocketClient {
   public:
-    static bool start();
+    static android::sp<DropDetect> start();
 
     void onConnected() override;
     void onMessageReceived(const void *data, size_t length) override;
diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp
index bc50aef..9d32869 100644
--- a/pixelstats/service.cpp
+++ b/pixelstats/service.cpp
@@ -29,7 +29,8 @@
 int main() {
     LOG(INFO) << "starting PixelStats";
 
-    if (!DropDetect::start()) {
+    sp<DropDetect> dropDetector = DropDetect::start();
+    if (!dropDetector) {
         LOG(ERROR) << "Unable to launch drop detection";
         return 1;
     }
diff --git a/power-libperfmgr/Power.cpp b/power-libperfmgr/Power.cpp
index 9724fba..5d5f9ad 100644
--- a/power-libperfmgr/Power.cpp
+++ b/power-libperfmgr/Power.cpp
@@ -497,6 +497,8 @@
             } else if (data == 0) {
                 ATRACE_INT("camera_streaming_lock", 0);
                 mHintManager->EndHint("CAMERA_STREAMING");
+                // Boost 1s for tear down
+                mHintManager->DoHint("CAMERA_LAUNCH", std::chrono::seconds(1));
                 ALOGD("CAMERA STREAMING OFF");
                 if (!android::base::SetProperty(kPowerHalStateProp, "")) {
                     ALOGE("%s: could not clear powerHAL state property", __func__);
diff --git a/powerhint.json b/powerhint.json
index 585d4d1..8d80451 100644
--- a/powerhint.json
+++ b/powerhint.json
@@ -5,8 +5,8 @@
       "Path": "/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq",
       "Values": [
         "9999999",
-        "1612800",
-        "1516800",
+        "1420800",
+        "1324800",
         "1228800"
       ],
       "DefaultIndex": 0,
@@ -17,11 +17,10 @@
       "Path": "/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq",
       "Values": [
         "9999999",
-        "1612800",
-        "1516800",
         "1420800",
+        "1324800",
         "1132800",
-        "0"
+        "576000"
       ],
       "ResetOnInit": true
     },
@@ -31,9 +30,9 @@
       "Values": [
         "9999999",
         "1996800",
-        "1612800",
         "1459200",
-        "1363200"
+        "1363200",
+        "1286400"
       ],
       "DefaultIndex": 0,
       "ResetOnInit": true
@@ -43,9 +42,8 @@
       "Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq",
       "Values": [
         "9999999",
-        "1612800",
         "1459200",
-        "1363200",
+        "1286400",
         "1209600",
         "0"
       ],
@@ -56,8 +54,6 @@
       "Path": "/sys/class/kgsl/kgsl-3d0/devfreq/max_freq",
       "Values": [
         "710000000",
-        "520000000",
-        "414000000",
         "342000000"
       ],
       "DefaultIndex": 0,
@@ -68,7 +64,7 @@
       "Path": "/sys/class/kgsl/kgsl-3d0/devfreq/min_freq",
       "Values": [
         "520000000",
-        "414000000",
+        "342000000",
         "257000000"
       ],
       "ResetOnInit": true
@@ -79,6 +75,7 @@
       "Values": [
         "6881",
         "5931",
+        "3879",
         "0"
       ],
       "ResetOnInit": true
@@ -263,43 +260,43 @@
       "PowerHint": "VR_MODE",
       "Node": "CPUBigClusterMaxFreq",
       "Duration": 0,
-      "Value": "1612800"
+      "Value": "1459200"
     },
     {
       "PowerHint": "VR_MODE",
       "Node": "CPUBigClusterMinFreq",
       "Duration": 0,
-      "Value": "1612800"
+      "Value": "1459200"
     },
     {
       "PowerHint": "VR_MODE",
       "Node": "CPULittleClusterMaxFreq",
       "Duration": 0,
-      "Value": "1612800"
+      "Value": "1420800"
     },
     {
       "PowerHint": "VR_MODE",
       "Node": "CPULittleClusterMinFreq",
       "Duration": 0,
-      "Value": "1612800"
+      "Value": "1420800"
     },
     {
       "PowerHint": "VR_MODE",
       "Node": "GPUMaxFreq",
       "Duration": 0,
-      "Value": "520000000"
+      "Value": "342000000"
     },
     {
       "PowerHint": "VR_MODE",
       "Node": "GPUMinFreq",
       "Duration": 0,
-      "Value": "520000000"
+      "Value": "342000000"
     },
     {
       "PowerHint": "VR_MODE",
       "Node": "GPUBusMinFreq",
       "Duration": 0,
-      "Value": "6881"
+      "Value": "5931"
     },
     {
       "PowerHint": "VR_MODE",
@@ -311,43 +308,43 @@
       "PowerHint": "VR_SUSTAINED_PERFORMANCE",
       "Node": "CPUBigClusterMaxFreq",
       "Duration": 0,
-      "Value": "1459200"
+      "Value": "1286400"
     },
     {
       "PowerHint": "VR_SUSTAINED_PERFORMANCE",
       "Node": "CPUBigClusterMinFreq",
       "Duration": 0,
-      "Value": "1363200"
+      "Value": "1286400"
     },
     {
       "PowerHint": "VR_SUSTAINED_PERFORMANCE",
       "Node": "CPULittleClusterMaxFreq",
       "Duration": 0,
-      "Value": "1516800"
+      "Value": "1324800"
     },
     {
       "PowerHint": "VR_SUSTAINED_PERFORMANCE",
       "Node": "CPULittleClusterMinFreq",
       "Duration": 0,
-      "Value": "1420800"
+      "Value": "1324800"
     },
     {
       "PowerHint": "VR_SUSTAINED_PERFORMANCE",
       "Node": "GPUMaxFreq",
       "Duration": 0,
-      "Value": "414000000"
+      "Value": "342000000"
     },
     {
       "PowerHint": "VR_SUSTAINED_PERFORMANCE",
       "Node": "GPUMinFreq",
       "Duration": 0,
-      "Value": "414000000"
+      "Value": "342000000"
     },
     {
       "PowerHint": "VR_SUSTAINED_PERFORMANCE",
       "Node": "GPUBusMinFreq",
       "Duration": 0,
-      "Value": "5931"
+      "Value": "3879"
     },
     {
       "PowerHint": "VR_SUSTAINED_PERFORMANCE",
diff --git a/sdm845/kernel-headers/linux/sockev.h b/sdm845/kernel-headers/linux/sockev.h
new file mode 100644
index 0000000..b730ef8
--- /dev/null
+++ b/sdm845/kernel-headers/linux/sockev.h
@@ -0,0 +1,40 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _SOCKEV_H_
+#define _SOCKEV_H_
+#include <linux/types.h>
+#include <linux/netlink.h>
+#include <linux/socket.h>
+enum sknetlink_groups {
+  SKNLGRP_UNICAST,
+  SKNLGRP_SOCKEV,
+  __SKNLGRP_MAX
+};
+#define SOCKEV_STR_MAX 32
+struct sknlsockevmsg {
+  __u8 event[SOCKEV_STR_MAX];
+  __u32 pid;
+  __u16 skfamily;
+  __u8 skstate;
+  __u8 skprotocol;
+  __u16 sktype;
+  __u64 skflags;
+};
+#endif
+
diff --git a/sdm845/original-kernel-headers/linux/sockev.h b/sdm845/original-kernel-headers/linux/sockev.h
new file mode 100644
index 0000000..b274fbc
--- /dev/null
+++ b/sdm845/original-kernel-headers/linux/sockev.h
@@ -0,0 +1,31 @@
+#ifndef _SOCKEV_H_
+#define _SOCKEV_H_
+
+#include <linux/types.h>
+#include <linux/netlink.h>
+#include <linux/socket.h>
+
+enum sknetlink_groups {
+	SKNLGRP_UNICAST,
+	SKNLGRP_SOCKEV,
+	__SKNLGRP_MAX
+};
+
+#define SOCKEV_STR_MAX 32
+
+/********************************************************************
+ *		Socket operation messages
+ ****/
+
+struct sknlsockevmsg {
+	__u8 event[SOCKEV_STR_MAX];
+	__u32 pid; /* (struct task_struct*)->pid */
+	__u16 skfamily; /* (struct socket*)->sk->sk_family */
+	__u8 skstate; /* (struct socket*)->sk->sk_state */
+	__u8 skprotocol; /* (struct socket*)->sk->sk_protocol */
+	__u16 sktype; /* (struct socket*)->sk->sk_type */
+	__u64 skflags; /* (struct socket*)->sk->sk_flags */
+};
+
+#endif /* _SOCKEV_H_ */
+
diff --git a/self-extractors/extract-lists.txt b/self-extractors/extract-lists.txt
index b8ba57d..80106bb 100644
--- a/self-extractors/extract-lists.txt
+++ b/self-extractors/extract-lists.txt
@@ -11,6 +11,7 @@
             system/etc/firmware/music_detector.sound_model \
             system/etc/init/init-persist.rc \
             system/etc/permissions/cneapiclient.xml \
+            system/etc/permissions/com.google.android.factoryota.xml \
             system/etc/permissions/com.qualcomm.qti.imscmservice.xml \
             system/etc/permissions/com.quicinc.cne.xml \
             system/etc/permissions/embms.xml \
@@ -23,6 +24,7 @@
             system/etc/permissions/telephonyservice.xml \
             system/etc/permissions/uimremoteclient.xml \
             system/etc/permissions/uimremoteserver.xml \
+            system/etc/permissions/UimService.xml \
             system/framework/com.qualcomm.qti.uceservice-V2.0-java.jar \
             system/framework/embmslibrary.jar \
             system/framework/LteDirectDiscoveryLibrary.jar \
@@ -36,34 +38,69 @@
             system/framework/uimremotesimlocklibrary.jar \
             system/framework/vendor.qti.hardware.alarm-V1.0-java.jar \
             system/framework/vendor.qti.hardware.data.latency-V1.0-java.jar \
+            system/framework/vendor.qti.hardware.soter-V1.0-java.jar \
+            system/lib64/libadsprpc_system.so \
+            system/lib64/libcdsprpc_system.so \
             system/lib64/libDiagService.so \
+            system/lib64/libdiag_system.so \
+            system/lib64/libGPQTEEC_system.so \
+            system/lib64/libGPTEE_system.so \
             system/lib64/libimscamera_jni.so \
             system/lib64/libimsmedia_jni.so \
             system/lib64/lib-imsvideocodec.so \
             system/lib64/lib-imsvtextutils.so \
             system/lib64/lib-imsvt.so \
             system/lib64/lib-imsvtutils.so \
+            system/lib64/libiperf.so \
             system/lib64/liblistenjni.so \
             system/lib64/liblistensoundmodel2.so \
+            system/lib64/libmdsprpc_system.so \
+            system/lib64/libminui.so \
+            system/lib64/libQTEEConnector_system.so \
             system/lib64/librcc.so \
             system/lib64/libsdm-disp-apis.so \
+            system/lib64/libsdsprpc_system.so \
             system/lib64/libsecureuisvc_jni.so \
+            system/lib64/libsecureui_svcsock_system.so \
             system/lib64/libsensorslog.so \
             system/lib64/libsns_low_lat_stream_stub.so \
+            system/lib64/libOpenCL_system.so \
+            system/lib64/libprotobuf-cpp-full-rtti.so \
+            system/lib64/libqcbor.so \
+            system/lib64/libsmcinvokecred.so \
+            system/lib64/libtzcom.so \
+            system/lib/libadsprpc_system.so \
+            system/lib/libcdsprpc_system.so \
+            system/lib/libdiag_system.so \
+            system/lib/libGPQTEEC_system.so \
+            system/lib/libGPTEE_system.so \
             system/lib/libimscamera_jni.so \
             system/lib/libimsmedia_jni.so \
             system/lib/lib-imsvideocodec.so \
             system/lib/lib-imsvtextutils.so \
             system/lib/lib-imsvt.so \
             system/lib/lib-imsvtutils.so \
+            system/lib/libiperf.so \
             system/lib/liblistenjni.so \
             system/lib/liblistensoundmodel2.so \
+            system/lib/liblogwrap.so \
+            system/lib/libmdsprpc_system.so \
+            system/lib/libminui.so \
+            system/lib/libprotobuf-cpp-full.so \
             system/lib/libqct_resampler.so \
+            system/lib/libQTEEConnector_system.so \
             system/lib/librcc.so \
             system/lib/libsdm-disp-apis.so \
+            system/lib/libsdsprpc_system.so \
             system/lib/libsecureuisvc_jni.so \
+            system/lib/libsecureui_svcsock_system.so \
             system/lib/libsensorslog.so \
             system/lib/libsns_low_lat_stream_stub.so \
+            system/lib/libOpenCL_system.so \
+            system/lib/libprotobuf-cpp-full-rtti.so \
+            system/lib/libqcbor.so \
+            system/lib/libsmcinvokecred.so \
+            system/lib/libtzcom.so \
             system/lib/rfsa/adsp/libsns_low_lat_stream_skel.so \
             "
     ;;
diff --git a/self-extractors/qcom/staging/device-partial.mk b/self-extractors/qcom/staging/device-partial.mk
index 7d64a53..70d2c4f 100644
--- a/self-extractors/qcom/staging/device-partial.mk
+++ b/self-extractors/qcom/staging/device-partial.mk
@@ -19,63 +19,101 @@
 
 #  blob(s) necessary for crosshatch hardware
 PRODUCT_COPY_FILES := \
+    vendor/qcom/crosshatch/proprietary/cneapiclient.xml:system/etc/permissions/cneapiclient.xml:qcom \
+    vendor/qcom/crosshatch/proprietary/com.google.android.factoryota.xml:system/etc/permissions/com.google.android.factoryota.xml:qcom \
+    vendor/qcom/crosshatch/proprietary/com.qualcomm.qti.imscmservice.xml:system/etc/permissions/com.qualcomm.qti.imscmservice.xml:qcom \
+    vendor/qcom/crosshatch/proprietary/com.qualcomm.qti.uceservice-V2.0-java.jar:system/framework/com.qualcomm.qti.uceservice-V2.0-java.jar:qcom \
+    vendor/qcom/crosshatch/proprietary/com.quicinc.cne.xml:system/etc/permissions/com.quicinc.cne.xml:qcom \
     vendor/qcom/crosshatch/proprietary/dnd.descriptor:system/etc/firmware/dnd.descriptor:qcom \
     vendor/qcom/crosshatch/proprietary/dnd.sound_model:system/etc/firmware/dnd.sound_model:qcom \
-    vendor/qcom/crosshatch/proprietary/music_detector.descriptor:system/etc/firmware/music_detector.descriptor:qcom \
-    vendor/qcom/crosshatch/proprietary/music_detector.sound_model:system/etc/firmware/music_detector.sound_model:qcom \
-    vendor/qcom/crosshatch/proprietary/init-persist.rc:system/etc/init/init-persist.rc:qcom \
-    vendor/qcom/crosshatch/proprietary/cneapiclient.xml:system/etc/permissions/cneapiclient.xml:qcom \
-    vendor/qcom/crosshatch/proprietary/com.qualcomm.qti.imscmservice.xml:system/etc/permissions/com.qualcomm.qti.imscmservice.xml:qcom \
-    vendor/qcom/crosshatch/proprietary/com.quicinc.cne.xml:system/etc/permissions/com.quicinc.cne.xml:qcom \
-    vendor/qcom/crosshatch/proprietary/embms.xml:system/etc/permissions/embms.xml:qcom \
-    vendor/qcom/crosshatch/proprietary/lpa.xml:system/etc/permissions/lpa.xml:qcom \
-    vendor/qcom/crosshatch/proprietary/LteDirectDiscovery.xml:system/etc/permissions/LteDirectDiscovery.xml:qcom \
-    vendor/qcom/crosshatch/proprietary/qcrilhook.xml:system/etc/permissions/qcrilhook.xml:qcom \
-    vendor/qcom/crosshatch/proprietary/radioconfiginterface.xml:system/etc/permissions/radioconfiginterface.xml:qcom \
-    vendor/qcom/crosshatch/proprietary/radioconfig.xml:system/etc/permissions/radioconfig.xml:qcom \
-    vendor/qcom/crosshatch/proprietary/RemoteSimlock.xml:system/etc/permissions/RemoteSimlock.xml:qcom \
-    vendor/qcom/crosshatch/proprietary/telephonyservice.xml:system/etc/permissions/telephonyservice.xml:qcom \
-    vendor/qcom/crosshatch/proprietary/uimremoteclient.xml:system/etc/permissions/uimremoteclient.xml:qcom \
-    vendor/qcom/crosshatch/proprietary/uimremoteserver.xml:system/etc/permissions/uimremoteserver.xml:qcom \
-    vendor/qcom/crosshatch/proprietary/com.qualcomm.qti.uceservice-V2.0-java.jar:system/framework/com.qualcomm.qti.uceservice-V2.0-java.jar:qcom \
     vendor/qcom/crosshatch/proprietary/embmslibrary.jar:system/framework/embmslibrary.jar:qcom \
-    vendor/qcom/crosshatch/proprietary/LteDirectDiscoveryLibrary.jar:system/framework/LteDirectDiscoveryLibrary.jar:qcom \
-    vendor/qcom/crosshatch/proprietary/qcrilhook.jar:system/framework/qcrilhook.jar:qcom \
-    vendor/qcom/crosshatch/proprietary/QtiTelephonyServicelibrary.jar:system/framework/QtiTelephonyServicelibrary.jar:qcom \
-    vendor/qcom/crosshatch/proprietary/radioconfiginterfacelibrary.jar:system/framework/radioconfiginterfacelibrary.jar:qcom \
-    vendor/qcom/crosshatch/proprietary/radioconfiglibrary.jar:system/framework/radioconfiglibrary.jar:qcom \
-    vendor/qcom/crosshatch/proprietary/uimlpalibrary.jar:system/framework/uimlpalibrary.jar:qcom \
-    vendor/qcom/crosshatch/proprietary/uimremoteclientlibrary.jar:system/framework/uimremoteclientlibrary.jar:qcom \
-    vendor/qcom/crosshatch/proprietary/uimremoteserverlibrary.jar:system/framework/uimremoteserverlibrary.jar:qcom \
-    vendor/qcom/crosshatch/proprietary/uimremotesimlocklibrary.jar:system/framework/uimremotesimlocklibrary.jar:qcom \
-    vendor/qcom/crosshatch/proprietary/vendor.qti.hardware.alarm-V1.0-java.jar:system/framework/vendor.qti.hardware.alarm-V1.0-java.jar:qcom \
-    vendor/qcom/crosshatch/proprietary/vendor.qti.hardware.data.latency-V1.0-java.jar:system/framework/vendor.qti.hardware.data.latency-V1.0-java.jar:qcom \
+    vendor/qcom/crosshatch/proprietary/embms.xml:system/etc/permissions/embms.xml:qcom \
+    vendor/qcom/crosshatch/proprietary/init-persist.rc:system/etc/init/init-persist.rc:qcom \
+    vendor/qcom/crosshatch/proprietary/lib64/libadsprpc_system.so:system/lib64/libadsprpc_system.so:qcom \
+    vendor/qcom/crosshatch/proprietary/lib64/libcdsprpc_system.so:system/lib64/libcdsprpc_system.so:qcom \
     vendor/qcom/crosshatch/proprietary/lib64/libDiagService.so:system/lib64/libDiagService.so:qcom \
+    vendor/qcom/crosshatch/proprietary/lib64/libdiag_system.so:system/lib64/libdiag_system.so:qcom \
+    vendor/qcom/crosshatch/proprietary/lib64/libGPQTEEC_system.so:system/lib64/libGPQTEEC_system.so:qcom \
+    vendor/qcom/crosshatch/proprietary/lib64/libGPTEE_system.so:system/lib64/libGPTEE_system.so:qcom \
     vendor/qcom/crosshatch/proprietary/lib64/libimscamera_jni.so:system/lib64/libimscamera_jni.so:qcom \
     vendor/qcom/crosshatch/proprietary/lib64/libimsmedia_jni.so:system/lib64/libimsmedia_jni.so:qcom \
     vendor/qcom/crosshatch/proprietary/lib64/lib-imsvideocodec.so:system/lib64/lib-imsvideocodec.so:qcom \
     vendor/qcom/crosshatch/proprietary/lib64/lib-imsvtextutils.so:system/lib64/lib-imsvtextutils.so:qcom \
     vendor/qcom/crosshatch/proprietary/lib64/lib-imsvt.so:system/lib64/lib-imsvt.so:qcom \
     vendor/qcom/crosshatch/proprietary/lib64/lib-imsvtutils.so:system/lib64/lib-imsvtutils.so:qcom \
+    vendor/qcom/crosshatch/proprietary/lib64/libiperf.so:system/lib64/libiperf.so:qcom \
     vendor/qcom/crosshatch/proprietary/lib64/liblistenjni.so:system/lib64/liblistenjni.so:qcom \
     vendor/qcom/crosshatch/proprietary/lib64/liblistensoundmodel2.so:system/lib64/liblistensoundmodel2.so:qcom \
+    vendor/qcom/crosshatch/proprietary/lib64/libmdsprpc_system.so:system/lib64/libmdsprpc_system.so:qcom \
+    vendor/qcom/crosshatch/proprietary/lib64/libminui.so:system/lib64/libminui.so:qcom \
+    vendor/qcom/crosshatch/proprietary/lib64/libQTEEConnector_system.so:system/lib64/libQTEEConnector_system.so:qcom \
     vendor/qcom/crosshatch/proprietary/lib64/librcc.so:system/lib64/librcc.so:qcom \
     vendor/qcom/crosshatch/proprietary/lib64/libsdm-disp-apis.so:system/lib64/libsdm-disp-apis.so:qcom \
+    vendor/qcom/crosshatch/proprietary/lib64/libsdsprpc_system.so:system/lib64/libsdsprpc_system.so:qcom \
     vendor/qcom/crosshatch/proprietary/lib64/libsecureuisvc_jni.so:system/lib64/libsecureuisvc_jni.so:qcom \
+    vendor/qcom/crosshatch/proprietary/lib64/libsecureui_svcsock_system.so:system/lib64/libsecureui_svcsock_system.so:qcom \
     vendor/qcom/crosshatch/proprietary/lib64/libsensorslog.so:system/lib64/libsensorslog.so:qcom \
     vendor/qcom/crosshatch/proprietary/lib64/libsns_low_lat_stream_stub.so:system/lib64/libsns_low_lat_stream_stub.so:qcom \
+    vendor/qcom/crosshatch/proprietary/lib64/libOpenCL_system.so:system/lib64/libOpenCL_system.so:qcom \
+    vendor/qcom/crosshatch/proprietary/lib64/libprotobuf-cpp-full-rtti.so:system/lib64/libprotobuf-cpp-full-rtti.so:qcom \
+    vendor/qcom/crosshatch/proprietary/lib64/libqcbor.so:system/lib64/libqcbor.so:qcom \
+    vendor/qcom/crosshatch/proprietary/lib64/libsmcinvokecred.so:system/lib64/libsmcinvokecred.so:qcom \
+    vendor/qcom/crosshatch/proprietary/lib64/libtzcom.so:system/lib64/libtzcom.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libadsprpc_system.so:system/lib/libadsprpc_system.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libcdsprpc_system.so:system/lib/libcdsprpc_system.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libdiag_system.so:system/lib/libdiag_system.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libGPQTEEC_system.so:system/lib/libGPQTEEC_system.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libGPTEE_system.so:system/lib/libGPTEE_system.so:qcom \
     vendor/qcom/crosshatch/proprietary/libimscamera_jni.so:system/lib/libimscamera_jni.so:qcom \
     vendor/qcom/crosshatch/proprietary/libimsmedia_jni.so:system/lib/libimsmedia_jni.so:qcom \
     vendor/qcom/crosshatch/proprietary/lib-imsvideocodec.so:system/lib/lib-imsvideocodec.so:qcom \
     vendor/qcom/crosshatch/proprietary/lib-imsvtextutils.so:system/lib/lib-imsvtextutils.so:qcom \
     vendor/qcom/crosshatch/proprietary/lib-imsvt.so:system/lib/lib-imsvt.so:qcom \
     vendor/qcom/crosshatch/proprietary/lib-imsvtutils.so:system/lib/lib-imsvtutils.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libiperf.so:system/lib/libiperf.so:qcom \
     vendor/qcom/crosshatch/proprietary/liblistenjni.so:system/lib/liblistenjni.so:qcom \
     vendor/qcom/crosshatch/proprietary/liblistensoundmodel2.so:system/lib/liblistensoundmodel2.so:qcom \
+    vendor/qcom/crosshatch/proprietary/liblogwrap.so:system/lib/liblogwrap.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libmdsprpc_system.so:system/lib/libmdsprpc_system.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libminui.so:system/lib/libminui.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libprotobuf-cpp-full.so:system/lib/libprotobuf-cpp-full.so:qcom \
     vendor/qcom/crosshatch/proprietary/libqct_resampler.so:system/lib/libqct_resampler.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libQTEEConnector_system.so:system/lib/libQTEEConnector_system.so:qcom \
     vendor/qcom/crosshatch/proprietary/librcc.so:system/lib/librcc.so:qcom \
     vendor/qcom/crosshatch/proprietary/libsdm-disp-apis.so:system/lib/libsdm-disp-apis.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libsdsprpc_system.so:system/lib/libsdsprpc_system.so:qcom \
     vendor/qcom/crosshatch/proprietary/libsecureuisvc_jni.so:system/lib/libsecureuisvc_jni.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libsecureui_svcsock_system.so:system/lib/libsecureui_svcsock_system.so:qcom \
     vendor/qcom/crosshatch/proprietary/libsensorslog.so:system/lib/libsensorslog.so:qcom \
-    vendor/qcom/crosshatch/proprietary/libsns_low_lat_stream_stub.so:system/lib/libsns_low_lat_stream_stub.so:qcom \
     vendor/qcom/crosshatch/proprietary/libsns_low_lat_stream_skel.so:system/lib/rfsa/adsp/libsns_low_lat_stream_skel.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libsns_low_lat_stream_stub.so:system/lib/libsns_low_lat_stream_stub.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libOpenCL_system.so:system/lib/libOpenCL_system.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libprotobuf-cpp-full-rtti.so:system/lib/libprotobuf-cpp-full-rtti.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libqcbor.so:system/lib/libqcbor.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libsmcinvokecred.so:system/lib/libsmcinvokecred.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libtzcom.so:system/lib/libtzcom.so:qcom \
+    vendor/qcom/crosshatch/proprietary/lpa.xml:system/etc/permissions/lpa.xml:qcom \
+    vendor/qcom/crosshatch/proprietary/LteDirectDiscoveryLibrary.jar:system/framework/LteDirectDiscoveryLibrary.jar:qcom \
+    vendor/qcom/crosshatch/proprietary/LteDirectDiscovery.xml:system/etc/permissions/LteDirectDiscovery.xml:qcom \
+    vendor/qcom/crosshatch/proprietary/music_detector.descriptor:system/etc/firmware/music_detector.descriptor:qcom \
+    vendor/qcom/crosshatch/proprietary/music_detector.sound_model:system/etc/firmware/music_detector.sound_model:qcom \
+    vendor/qcom/crosshatch/proprietary/qcrilhook.jar:system/framework/qcrilhook.jar:qcom \
+    vendor/qcom/crosshatch/proprietary/qcrilhook.xml:system/etc/permissions/qcrilhook.xml:qcom \
+    vendor/qcom/crosshatch/proprietary/QtiTelephonyServicelibrary.jar:system/framework/QtiTelephonyServicelibrary.jar:qcom \
+    vendor/qcom/crosshatch/proprietary/radioconfiginterfacelibrary.jar:system/framework/radioconfiginterfacelibrary.jar:qcom \
+    vendor/qcom/crosshatch/proprietary/radioconfiginterface.xml:system/etc/permissions/radioconfiginterface.xml:qcom \
+    vendor/qcom/crosshatch/proprietary/radioconfiglibrary.jar:system/framework/radioconfiglibrary.jar:qcom \
+    vendor/qcom/crosshatch/proprietary/radioconfig.xml:system/etc/permissions/radioconfig.xml:qcom \
+    vendor/qcom/crosshatch/proprietary/RemoteSimlock.xml:system/etc/permissions/RemoteSimlock.xml:qcom \
+    vendor/qcom/crosshatch/proprietary/telephonyservice.xml:system/etc/permissions/telephonyservice.xml:qcom \
+    vendor/qcom/crosshatch/proprietary/uimlpalibrary.jar:system/framework/uimlpalibrary.jar:qcom \
+    vendor/qcom/crosshatch/proprietary/uimremoteclientlibrary.jar:system/framework/uimremoteclientlibrary.jar:qcom \
+    vendor/qcom/crosshatch/proprietary/uimremoteclient.xml:system/etc/permissions/uimremoteclient.xml:qcom \
+    vendor/qcom/crosshatch/proprietary/uimremoteserverlibrary.jar:system/framework/uimremoteserverlibrary.jar:qcom \
+    vendor/qcom/crosshatch/proprietary/uimremoteserver.xml:system/etc/permissions/uimremoteserver.xml:qcom \
+    vendor/qcom/crosshatch/proprietary/uimremotesimlocklibrary.jar:system/framework/uimremotesimlocklibrary.jar:qcom \
+    vendor/qcom/crosshatch/proprietary/UimService.xml:system/etc/permissions/UimService.xml:qcom \
+    vendor/qcom/crosshatch/proprietary/vendor.qti.hardware.alarm-V1.0-java.jar:system/framework/vendor.qti.hardware.alarm-V1.0-java.jar:qcom \
+    vendor/qcom/crosshatch/proprietary/vendor.qti.hardware.data.latency-V1.0-java.jar:system/framework/vendor.qti.hardware.data.latency-V1.0-java.jar:qcom \
+    vendor/qcom/crosshatch/proprietary/vendor.qti.hardware.soter-V1.0-java.jar:system/framework/vendor.qti.hardware.soter-V1.0-java.jar:qcom \
+
diff --git a/self-extractors_blueline/extract-lists.txt b/self-extractors_blueline/extract-lists.txt
index b8ba57d..80106bb 100644
--- a/self-extractors_blueline/extract-lists.txt
+++ b/self-extractors_blueline/extract-lists.txt
@@ -11,6 +11,7 @@
             system/etc/firmware/music_detector.sound_model \
             system/etc/init/init-persist.rc \
             system/etc/permissions/cneapiclient.xml \
+            system/etc/permissions/com.google.android.factoryota.xml \
             system/etc/permissions/com.qualcomm.qti.imscmservice.xml \
             system/etc/permissions/com.quicinc.cne.xml \
             system/etc/permissions/embms.xml \
@@ -23,6 +24,7 @@
             system/etc/permissions/telephonyservice.xml \
             system/etc/permissions/uimremoteclient.xml \
             system/etc/permissions/uimremoteserver.xml \
+            system/etc/permissions/UimService.xml \
             system/framework/com.qualcomm.qti.uceservice-V2.0-java.jar \
             system/framework/embmslibrary.jar \
             system/framework/LteDirectDiscoveryLibrary.jar \
@@ -36,34 +38,69 @@
             system/framework/uimremotesimlocklibrary.jar \
             system/framework/vendor.qti.hardware.alarm-V1.0-java.jar \
             system/framework/vendor.qti.hardware.data.latency-V1.0-java.jar \
+            system/framework/vendor.qti.hardware.soter-V1.0-java.jar \
+            system/lib64/libadsprpc_system.so \
+            system/lib64/libcdsprpc_system.so \
             system/lib64/libDiagService.so \
+            system/lib64/libdiag_system.so \
+            system/lib64/libGPQTEEC_system.so \
+            system/lib64/libGPTEE_system.so \
             system/lib64/libimscamera_jni.so \
             system/lib64/libimsmedia_jni.so \
             system/lib64/lib-imsvideocodec.so \
             system/lib64/lib-imsvtextutils.so \
             system/lib64/lib-imsvt.so \
             system/lib64/lib-imsvtutils.so \
+            system/lib64/libiperf.so \
             system/lib64/liblistenjni.so \
             system/lib64/liblistensoundmodel2.so \
+            system/lib64/libmdsprpc_system.so \
+            system/lib64/libminui.so \
+            system/lib64/libQTEEConnector_system.so \
             system/lib64/librcc.so \
             system/lib64/libsdm-disp-apis.so \
+            system/lib64/libsdsprpc_system.so \
             system/lib64/libsecureuisvc_jni.so \
+            system/lib64/libsecureui_svcsock_system.so \
             system/lib64/libsensorslog.so \
             system/lib64/libsns_low_lat_stream_stub.so \
+            system/lib64/libOpenCL_system.so \
+            system/lib64/libprotobuf-cpp-full-rtti.so \
+            system/lib64/libqcbor.so \
+            system/lib64/libsmcinvokecred.so \
+            system/lib64/libtzcom.so \
+            system/lib/libadsprpc_system.so \
+            system/lib/libcdsprpc_system.so \
+            system/lib/libdiag_system.so \
+            system/lib/libGPQTEEC_system.so \
+            system/lib/libGPTEE_system.so \
             system/lib/libimscamera_jni.so \
             system/lib/libimsmedia_jni.so \
             system/lib/lib-imsvideocodec.so \
             system/lib/lib-imsvtextutils.so \
             system/lib/lib-imsvt.so \
             system/lib/lib-imsvtutils.so \
+            system/lib/libiperf.so \
             system/lib/liblistenjni.so \
             system/lib/liblistensoundmodel2.so \
+            system/lib/liblogwrap.so \
+            system/lib/libmdsprpc_system.so \
+            system/lib/libminui.so \
+            system/lib/libprotobuf-cpp-full.so \
             system/lib/libqct_resampler.so \
+            system/lib/libQTEEConnector_system.so \
             system/lib/librcc.so \
             system/lib/libsdm-disp-apis.so \
+            system/lib/libsdsprpc_system.so \
             system/lib/libsecureuisvc_jni.so \
+            system/lib/libsecureui_svcsock_system.so \
             system/lib/libsensorslog.so \
             system/lib/libsns_low_lat_stream_stub.so \
+            system/lib/libOpenCL_system.so \
+            system/lib/libprotobuf-cpp-full-rtti.so \
+            system/lib/libqcbor.so \
+            system/lib/libsmcinvokecred.so \
+            system/lib/libtzcom.so \
             system/lib/rfsa/adsp/libsns_low_lat_stream_skel.so \
             "
     ;;
diff --git a/self-extractors_blueline/qcom/staging/device-partial.mk b/self-extractors_blueline/qcom/staging/device-partial.mk
index e7c9b0d..406ca77 100644
--- a/self-extractors_blueline/qcom/staging/device-partial.mk
+++ b/self-extractors_blueline/qcom/staging/device-partial.mk
@@ -19,63 +19,101 @@
 
 #  blob(s) necessary for blueline hardware
 PRODUCT_COPY_FILES := \
+    vendor/qcom/blueline/proprietary/cneapiclient.xml:system/etc/permissions/cneapiclient.xml:qcom \
+    vendor/qcom/blueline/proprietary/com.google.android.factoryota.xml:system/etc/permissions/com.google.android.factoryota.xml:qcom \
+    vendor/qcom/blueline/proprietary/com.qualcomm.qti.imscmservice.xml:system/etc/permissions/com.qualcomm.qti.imscmservice.xml:qcom \
+    vendor/qcom/blueline/proprietary/com.qualcomm.qti.uceservice-V2.0-java.jar:system/framework/com.qualcomm.qti.uceservice-V2.0-java.jar:qcom \
+    vendor/qcom/blueline/proprietary/com.quicinc.cne.xml:system/etc/permissions/com.quicinc.cne.xml:qcom \
     vendor/qcom/blueline/proprietary/dnd.descriptor:system/etc/firmware/dnd.descriptor:qcom \
     vendor/qcom/blueline/proprietary/dnd.sound_model:system/etc/firmware/dnd.sound_model:qcom \
-    vendor/qcom/blueline/proprietary/music_detector.descriptor:system/etc/firmware/music_detector.descriptor:qcom \
-    vendor/qcom/blueline/proprietary/music_detector.sound_model:system/etc/firmware/music_detector.sound_model:qcom \
-    vendor/qcom/blueline/proprietary/init-persist.rc:system/etc/init/init-persist.rc:qcom \
-    vendor/qcom/blueline/proprietary/cneapiclient.xml:system/etc/permissions/cneapiclient.xml:qcom \
-    vendor/qcom/blueline/proprietary/com.qualcomm.qti.imscmservice.xml:system/etc/permissions/com.qualcomm.qti.imscmservice.xml:qcom \
-    vendor/qcom/blueline/proprietary/com.quicinc.cne.xml:system/etc/permissions/com.quicinc.cne.xml:qcom \
-    vendor/qcom/blueline/proprietary/embms.xml:system/etc/permissions/embms.xml:qcom \
-    vendor/qcom/blueline/proprietary/lpa.xml:system/etc/permissions/lpa.xml:qcom \
-    vendor/qcom/blueline/proprietary/LteDirectDiscovery.xml:system/etc/permissions/LteDirectDiscovery.xml:qcom \
-    vendor/qcom/blueline/proprietary/qcrilhook.xml:system/etc/permissions/qcrilhook.xml:qcom \
-    vendor/qcom/blueline/proprietary/radioconfiginterface.xml:system/etc/permissions/radioconfiginterface.xml:qcom \
-    vendor/qcom/blueline/proprietary/radioconfig.xml:system/etc/permissions/radioconfig.xml:qcom \
-    vendor/qcom/blueline/proprietary/RemoteSimlock.xml:system/etc/permissions/RemoteSimlock.xml:qcom \
-    vendor/qcom/blueline/proprietary/telephonyservice.xml:system/etc/permissions/telephonyservice.xml:qcom \
-    vendor/qcom/blueline/proprietary/uimremoteclient.xml:system/etc/permissions/uimremoteclient.xml:qcom \
-    vendor/qcom/blueline/proprietary/uimremoteserver.xml:system/etc/permissions/uimremoteserver.xml:qcom \
-    vendor/qcom/blueline/proprietary/com.qualcomm.qti.uceservice-V2.0-java.jar:system/framework/com.qualcomm.qti.uceservice-V2.0-java.jar:qcom \
     vendor/qcom/blueline/proprietary/embmslibrary.jar:system/framework/embmslibrary.jar:qcom \
-    vendor/qcom/blueline/proprietary/LteDirectDiscoveryLibrary.jar:system/framework/LteDirectDiscoveryLibrary.jar:qcom \
-    vendor/qcom/blueline/proprietary/qcrilhook.jar:system/framework/qcrilhook.jar:qcom \
-    vendor/qcom/blueline/proprietary/QtiTelephonyServicelibrary.jar:system/framework/QtiTelephonyServicelibrary.jar:qcom \
-    vendor/qcom/blueline/proprietary/radioconfiginterfacelibrary.jar:system/framework/radioconfiginterfacelibrary.jar:qcom \
-    vendor/qcom/blueline/proprietary/radioconfiglibrary.jar:system/framework/radioconfiglibrary.jar:qcom \
-    vendor/qcom/blueline/proprietary/uimlpalibrary.jar:system/framework/uimlpalibrary.jar:qcom \
-    vendor/qcom/blueline/proprietary/uimremoteclientlibrary.jar:system/framework/uimremoteclientlibrary.jar:qcom \
-    vendor/qcom/blueline/proprietary/uimremoteserverlibrary.jar:system/framework/uimremoteserverlibrary.jar:qcom \
-    vendor/qcom/blueline/proprietary/uimremotesimlocklibrary.jar:system/framework/uimremotesimlocklibrary.jar:qcom \
-    vendor/qcom/blueline/proprietary/vendor.qti.hardware.alarm-V1.0-java.jar:system/framework/vendor.qti.hardware.alarm-V1.0-java.jar:qcom \
-    vendor/qcom/blueline/proprietary/vendor.qti.hardware.data.latency-V1.0-java.jar:system/framework/vendor.qti.hardware.data.latency-V1.0-java.jar:qcom \
+    vendor/qcom/blueline/proprietary/embms.xml:system/etc/permissions/embms.xml:qcom \
+    vendor/qcom/blueline/proprietary/init-persist.rc:system/etc/init/init-persist.rc:qcom \
+    vendor/qcom/blueline/proprietary/lib64/libadsprpc_system.so:system/lib64/libadsprpc_system.so:qcom \
+    vendor/qcom/blueline/proprietary/lib64/libcdsprpc_system.so:system/lib64/libcdsprpc_system.so:qcom \
     vendor/qcom/blueline/proprietary/lib64/libDiagService.so:system/lib64/libDiagService.so:qcom \
+    vendor/qcom/blueline/proprietary/lib64/libdiag_system.so:system/lib64/libdiag_system.so:qcom \
+    vendor/qcom/blueline/proprietary/lib64/libGPQTEEC_system.so:system/lib64/libGPQTEEC_system.so:qcom \
+    vendor/qcom/blueline/proprietary/lib64/libGPTEE_system.so:system/lib64/libGPTEE_system.so:qcom \
     vendor/qcom/blueline/proprietary/lib64/libimscamera_jni.so:system/lib64/libimscamera_jni.so:qcom \
     vendor/qcom/blueline/proprietary/lib64/libimsmedia_jni.so:system/lib64/libimsmedia_jni.so:qcom \
     vendor/qcom/blueline/proprietary/lib64/lib-imsvideocodec.so:system/lib64/lib-imsvideocodec.so:qcom \
     vendor/qcom/blueline/proprietary/lib64/lib-imsvtextutils.so:system/lib64/lib-imsvtextutils.so:qcom \
     vendor/qcom/blueline/proprietary/lib64/lib-imsvt.so:system/lib64/lib-imsvt.so:qcom \
     vendor/qcom/blueline/proprietary/lib64/lib-imsvtutils.so:system/lib64/lib-imsvtutils.so:qcom \
+    vendor/qcom/blueline/proprietary/lib64/libiperf.so:system/lib64/libiperf.so:qcom \
     vendor/qcom/blueline/proprietary/lib64/liblistenjni.so:system/lib64/liblistenjni.so:qcom \
     vendor/qcom/blueline/proprietary/lib64/liblistensoundmodel2.so:system/lib64/liblistensoundmodel2.so:qcom \
+    vendor/qcom/blueline/proprietary/lib64/libmdsprpc_system.so:system/lib64/libmdsprpc_system.so:qcom \
+    vendor/qcom/blueline/proprietary/lib64/libminui.so:system/lib64/libminui.so:qcom \
+    vendor/qcom/blueline/proprietary/lib64/libQTEEConnector_system.so:system/lib64/libQTEEConnector_system.so:qcom \
     vendor/qcom/blueline/proprietary/lib64/librcc.so:system/lib64/librcc.so:qcom \
     vendor/qcom/blueline/proprietary/lib64/libsdm-disp-apis.so:system/lib64/libsdm-disp-apis.so:qcom \
+    vendor/qcom/blueline/proprietary/lib64/libsdsprpc_system.so:system/lib64/libsdsprpc_system.so:qcom \
     vendor/qcom/blueline/proprietary/lib64/libsecureuisvc_jni.so:system/lib64/libsecureuisvc_jni.so:qcom \
+    vendor/qcom/blueline/proprietary/lib64/libsecureui_svcsock_system.so:system/lib64/libsecureui_svcsock_system.so:qcom \
     vendor/qcom/blueline/proprietary/lib64/libsensorslog.so:system/lib64/libsensorslog.so:qcom \
     vendor/qcom/blueline/proprietary/lib64/libsns_low_lat_stream_stub.so:system/lib64/libsns_low_lat_stream_stub.so:qcom \
+    vendor/qcom/crosshatch/proprietary/lib64/libOpenCL_system.so:system/lib64/libOpenCL_system.so:qcom \
+    vendor/qcom/crosshatch/proprietary/lib64/libprotobuf-cpp-full-rtti.so:system/lib64/libprotobuf-cpp-full-rtti.so:qcom \
+    vendor/qcom/crosshatch/proprietary/lib64/libqcbor.so:system/lib64/libqcbor.so:qcom \
+    vendor/qcom/crosshatch/proprietary/lib64/libsmcinvokecred.so:system/lib64/libsmcinvokecred.so:qcom \
+    vendor/qcom/crosshatch/proprietary/lib64/libtzcom.so:system/lib64/libtzcom.so:qcom \
+    vendor/qcom/blueline/proprietary/libadsprpc_system.so:system/lib/libadsprpc_system.so:qcom \
+    vendor/qcom/blueline/proprietary/libcdsprpc_system.so:system/lib/libcdsprpc_system.so:qcom \
+    vendor/qcom/blueline/proprietary/libdiag_system.so:system/lib/libdiag_system.so:qcom \
+    vendor/qcom/blueline/proprietary/libGPQTEEC_system.so:system/lib/libGPQTEEC_system.so:qcom \
+    vendor/qcom/blueline/proprietary/libGPTEE_system.so:system/lib/libGPTEE_system.so:qcom \
     vendor/qcom/blueline/proprietary/libimscamera_jni.so:system/lib/libimscamera_jni.so:qcom \
     vendor/qcom/blueline/proprietary/libimsmedia_jni.so:system/lib/libimsmedia_jni.so:qcom \
     vendor/qcom/blueline/proprietary/lib-imsvideocodec.so:system/lib/lib-imsvideocodec.so:qcom \
     vendor/qcom/blueline/proprietary/lib-imsvtextutils.so:system/lib/lib-imsvtextutils.so:qcom \
     vendor/qcom/blueline/proprietary/lib-imsvt.so:system/lib/lib-imsvt.so:qcom \
     vendor/qcom/blueline/proprietary/lib-imsvtutils.so:system/lib/lib-imsvtutils.so:qcom \
+    vendor/qcom/blueline/proprietary/libiperf.so:system/lib/libiperf.so:qcom \
     vendor/qcom/blueline/proprietary/liblistenjni.so:system/lib/liblistenjni.so:qcom \
     vendor/qcom/blueline/proprietary/liblistensoundmodel2.so:system/lib/liblistensoundmodel2.so:qcom \
+    vendor/qcom/blueline/proprietary/liblogwrap.so:system/lib/liblogwrap.so:qcom \
+    vendor/qcom/blueline/proprietary/libmdsprpc_system.so:system/lib/libmdsprpc_system.so:qcom \
+    vendor/qcom/blueline/proprietary/libminui.so:system/lib/libminui.so:qcom \
+    vendor/qcom/blueline/proprietary/libprotobuf-cpp-full.so:system/lib/libprotobuf-cpp-full.so:qcom \
     vendor/qcom/blueline/proprietary/libqct_resampler.so:system/lib/libqct_resampler.so:qcom \
+    vendor/qcom/blueline/proprietary/libQTEEConnector_system.so:system/lib/libQTEEConnector_system.so:qcom \
     vendor/qcom/blueline/proprietary/librcc.so:system/lib/librcc.so:qcom \
     vendor/qcom/blueline/proprietary/libsdm-disp-apis.so:system/lib/libsdm-disp-apis.so:qcom \
+    vendor/qcom/blueline/proprietary/libsdsprpc_system.so:system/lib/libsdsprpc_system.so:qcom \
     vendor/qcom/blueline/proprietary/libsecureuisvc_jni.so:system/lib/libsecureuisvc_jni.so:qcom \
+    vendor/qcom/blueline/proprietary/libsecureui_svcsock_system.so:system/lib/libsecureui_svcsock_system.so:qcom \
     vendor/qcom/blueline/proprietary/libsensorslog.so:system/lib/libsensorslog.so:qcom \
-    vendor/qcom/blueline/proprietary/libsns_low_lat_stream_stub.so:system/lib/libsns_low_lat_stream_stub.so:qcom \
     vendor/qcom/blueline/proprietary/libsns_low_lat_stream_skel.so:system/lib/rfsa/adsp/libsns_low_lat_stream_skel.so:qcom \
+    vendor/qcom/blueline/proprietary/libsns_low_lat_stream_stub.so:system/lib/libsns_low_lat_stream_stub.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libOpenCL_system.so:system/lib/libOpenCL_system.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libprotobuf-cpp-full-rtti.so:system/lib/libprotobuf-cpp-full-rtti.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libqcbor.so:system/lib/libqcbor.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libsmcinvokecred.so:system/lib/libsmcinvokecred.so:qcom \
+    vendor/qcom/crosshatch/proprietary/libtzcom.so:system/lib/libtzcom.so:qcom \
+    vendor/qcom/blueline/proprietary/lpa.xml:system/etc/permissions/lpa.xml:qcom \
+    vendor/qcom/blueline/proprietary/LteDirectDiscoveryLibrary.jar:system/framework/LteDirectDiscoveryLibrary.jar:qcom \
+    vendor/qcom/blueline/proprietary/LteDirectDiscovery.xml:system/etc/permissions/LteDirectDiscovery.xml:qcom \
+    vendor/qcom/blueline/proprietary/music_detector.descriptor:system/etc/firmware/music_detector.descriptor:qcom \
+    vendor/qcom/blueline/proprietary/music_detector.sound_model:system/etc/firmware/music_detector.sound_model:qcom \
+    vendor/qcom/blueline/proprietary/qcrilhook.jar:system/framework/qcrilhook.jar:qcom \
+    vendor/qcom/blueline/proprietary/qcrilhook.xml:system/etc/permissions/qcrilhook.xml:qcom \
+    vendor/qcom/blueline/proprietary/QtiTelephonyServicelibrary.jar:system/framework/QtiTelephonyServicelibrary.jar:qcom \
+    vendor/qcom/blueline/proprietary/radioconfiginterfacelibrary.jar:system/framework/radioconfiginterfacelibrary.jar:qcom \
+    vendor/qcom/blueline/proprietary/radioconfiginterface.xml:system/etc/permissions/radioconfiginterface.xml:qcom \
+    vendor/qcom/blueline/proprietary/radioconfiglibrary.jar:system/framework/radioconfiglibrary.jar:qcom \
+    vendor/qcom/blueline/proprietary/radioconfig.xml:system/etc/permissions/radioconfig.xml:qcom \
+    vendor/qcom/blueline/proprietary/RemoteSimlock.xml:system/etc/permissions/RemoteSimlock.xml:qcom \
+    vendor/qcom/blueline/proprietary/telephonyservice.xml:system/etc/permissions/telephonyservice.xml:qcom \
+    vendor/qcom/blueline/proprietary/uimlpalibrary.jar:system/framework/uimlpalibrary.jar:qcom \
+    vendor/qcom/blueline/proprietary/uimremoteclientlibrary.jar:system/framework/uimremoteclientlibrary.jar:qcom \
+    vendor/qcom/blueline/proprietary/uimremoteclient.xml:system/etc/permissions/uimremoteclient.xml:qcom \
+    vendor/qcom/blueline/proprietary/uimremoteserverlibrary.jar:system/framework/uimremoteserverlibrary.jar:qcom \
+    vendor/qcom/blueline/proprietary/uimremoteserver.xml:system/etc/permissions/uimremoteserver.xml:qcom \
+    vendor/qcom/blueline/proprietary/uimremotesimlocklibrary.jar:system/framework/uimremotesimlocklibrary.jar:qcom \
+    vendor/qcom/blueline/proprietary/UimService.xml:system/etc/permissions/UimService.xml:qcom \
+    vendor/qcom/blueline/proprietary/vendor.qti.hardware.alarm-V1.0-java.jar:system/framework/vendor.qti.hardware.alarm-V1.0-java.jar:qcom \
+    vendor/qcom/blueline/proprietary/vendor.qti.hardware.data.latency-V1.0-java.jar:system/framework/vendor.qti.hardware.data.latency-V1.0-java.jar:qcom \
+    vendor/qcom/blueline/proprietary/vendor.qti.hardware.soter-V1.0-java.jar:system/framework/vendor.qti.hardware.soter-V1.0-java.jar:qcom \
+
diff --git a/thermal-engine-blueline-vr-evt.conf b/thermal-engine-blueline-vr-evt.conf
index 501917e..82dc2ab 100644
--- a/thermal-engine-blueline-vr-evt.conf
+++ b/thermal-engine-blueline-vr-evt.conf
@@ -1,8 +1,17 @@
-[VR-SKIN-MONITOR]
+[SKIN-MONITOR]
 algo_type monitor
 sampling 2000
 sensor quiet-therm-adc
 thresholds 52000 60000
 thresholds_clr 48000 59000
 actions			cpu0+cpu4+gpu			shutdown
-action_info		979200+1056000+342000000	1
\ No newline at end of file
+action_info		825600+902400+257000000	1
+
+[BATTERY-MONITOR]
+algo_type       	monitor
+sampling        	2000
+sensor			quiet-therm-adc
+thresholds      	42000		44000		46000
+thresholds_clr  	41000		43000		45000
+actions 		battery		battery		battery
+action_info		1		2		3
\ No newline at end of file
diff --git a/thermal-engine-blueline-vr-prod.conf b/thermal-engine-blueline-vr-prod.conf
index 7104d23..75f7c11 100644
--- a/thermal-engine-blueline-vr-prod.conf
+++ b/thermal-engine-blueline-vr-prod.conf
@@ -1,8 +1,17 @@
-[VR-SKIN-MONITOR]
+[SKIN-MONITOR]
 algo_type		monitor
 sampling		2000
 sensor			fps-therm-adc
 thresholds		49000				55000
 thresholds_clr		45000				54000
 actions			cpu0+cpu4+gpu			shutdown
-action_info		979200+1056000+342000000	1
+action_info		825600+902400+257000000	1
+
+[BATTERY-MONITOR]
+algo_type       	monitor
+sampling        	2000
+sensor			fps-therm-adc
+thresholds      	39000		41000		43000
+thresholds_clr  	38000		40000		42000
+actions 		battery		battery		battery
+action_info		1		2		3
\ No newline at end of file
diff --git a/thermal-engine-crosshatch-vr-evt.conf b/thermal-engine-crosshatch-vr-evt.conf
index 501917e..82dc2ab 100644
--- a/thermal-engine-crosshatch-vr-evt.conf
+++ b/thermal-engine-crosshatch-vr-evt.conf
@@ -1,8 +1,17 @@
-[VR-SKIN-MONITOR]
+[SKIN-MONITOR]
 algo_type monitor
 sampling 2000
 sensor quiet-therm-adc
 thresholds 52000 60000
 thresholds_clr 48000 59000
 actions			cpu0+cpu4+gpu			shutdown
-action_info		979200+1056000+342000000	1
\ No newline at end of file
+action_info		825600+902400+257000000	1
+
+[BATTERY-MONITOR]
+algo_type       	monitor
+sampling        	2000
+sensor			quiet-therm-adc
+thresholds      	42000		44000		46000
+thresholds_clr  	41000		43000		45000
+actions 		battery		battery		battery
+action_info		1		2		3
\ No newline at end of file
diff --git a/thermal-engine-crosshatch-vr-prod.conf b/thermal-engine-crosshatch-vr-prod.conf
index 7104d23..75f7c11 100644
--- a/thermal-engine-crosshatch-vr-prod.conf
+++ b/thermal-engine-crosshatch-vr-prod.conf
@@ -1,8 +1,17 @@
-[VR-SKIN-MONITOR]
+[SKIN-MONITOR]
 algo_type		monitor
 sampling		2000
 sensor			fps-therm-adc
 thresholds		49000				55000
 thresholds_clr		45000				54000
 actions			cpu0+cpu4+gpu			shutdown
-action_info		979200+1056000+342000000	1
+action_info		825600+902400+257000000	1
+
+[BATTERY-MONITOR]
+algo_type       	monitor
+sampling        	2000
+sensor			fps-therm-adc
+thresholds      	39000		41000		43000
+thresholds_clr  	38000		40000		42000
+actions 		battery		battery		battery
+action_info		1		2		3
\ No newline at end of file
diff --git a/usb/UsbGadget.cpp b/usb/UsbGadget.cpp
index f319f39..74afc99 100644
--- a/usb/UsbGadget.cpp
+++ b/usb/UsbGadget.cpp
@@ -95,6 +95,7 @@
   char buf[BUFFER_SIZE];
   bool writeUdc = true, stopMonitor = false;
   struct epoll_event events[EPOLL_EVENTS];
+  steady_clock::time_point disconnect;
 
   bool descriptorWritten = true;
   for (int i = 0; i < static_cast<int>(usbGadget->mEndpointList.size()); i++) {
@@ -105,11 +106,16 @@
   }
 
   // notify here if the endpoints are already present.
-  if (descriptorWritten && !!WriteStringToFile(GADGET_NAME, PULLUP_PATH)) {
-    lock_guard<mutex> lock(usbGadget->mLock);
-    usbGadget->mCurrentUsbFunctionsApplied = true;
-    gadgetPullup = true;
-    usbGadget->mCv.notify_all();
+  if (descriptorWritten) {
+    usleep(PULL_UP_DELAY);
+    if (!!WriteStringToFile(GADGET_NAME, PULLUP_PATH)) {
+      lock_guard<mutex> lock(usbGadget->mLock);
+      usbGadget->mCurrentUsbFunctionsApplied = true;
+      gadgetPullup = true;
+      writeUdc = false;
+      ALOGI("GADGET pulled up");
+      usbGadget->mCv.notify_all();
+    }
   }
 
   while (!stopMonitor) {
@@ -146,8 +152,14 @@
           if (!descriptorPresent && !writeUdc) {
             if (DEBUG) ALOGI("endpoints not up");
             writeUdc = true;
+            disconnect = std::chrono::steady_clock::now();
           } else if (descriptorPresent && writeUdc) {
-            usleep(PULL_UP_DELAY);
+            steady_clock::time_point temp = steady_clock::now();
+
+            if (std::chrono::duration_cast<microseconds>(temp - disconnect).count()
+                < PULL_UP_DELAY)
+              usleep(PULL_UP_DELAY);
+
             if(!!WriteStringToFile(GADGET_NAME, PULLUP_PATH)) {
               lock_guard<mutex> lock(usbGadget->mLock);
               usbGadget->mCurrentUsbFunctionsApplied = true;
@@ -246,8 +258,17 @@
 
   if (mMonitorCreated) {
     uint64_t flag = 100;
+    unsigned long ret;
+
     // Stop the monitor thread by writing into signal fd.
-    write(mEventFd, &flag, sizeof(flag));
+    ret = TEMP_FAILURE_RETRY(write(mEventFd, &flag, sizeof(flag)));
+    if (ret < 0) {
+        ALOGE("Error writing errno=%d", errno);
+    } else if (ret < sizeof(flag)) {
+        ALOGE("Short write length=%zd", ret);
+    }
+
+    ALOGI("mMonitor signalled to exit");
     mMonitor->join();
     mMonitorCreated = false;
     ALOGI("mMonitor destroyed");
@@ -583,6 +604,8 @@
     goto error;
   }
 
+  ALOGI("Returned from tearDown gadget");
+
   // Leave the gadget pulled down to give time for the host to sense disconnect.
   usleep(DISCONNECT_WAIT_US);
 
diff --git a/usb/UsbGadget.h b/usb/UsbGadget.h
index 9a2c4dd..a0aa42b 100644
--- a/usb/UsbGadget.h
+++ b/usb/UsbGadget.h
@@ -50,6 +50,7 @@
 using ::android::hardware::hidl_vec;
 using ::android::hardware::Return;
 using ::android::hardware::Void;
+using ::std::chrono::steady_clock;
 using ::std::lock_guard;
 using ::std::move;
 using ::std::mutex;
@@ -57,6 +58,7 @@
 using ::std::thread;
 using ::std::unique_ptr;
 using ::std::vector;
+using namespace std::chrono;
 using namespace std::chrono_literals;
 
 struct UsbGadget : public IUsbGadget {
diff --git a/vibrator/Vibrator.cpp b/vibrator/Vibrator.cpp
index f442eb1..b265b78 100644
--- a/vibrator/Vibrator.cpp
+++ b/vibrator/Vibrator.cpp
@@ -93,7 +93,7 @@
 
 static constexpr int8_t MAX_SCALE_INPUT = 112;
 
-static constexpr int8_t MAX_TRIGGER_LATENCY_MS = 5;
+static constexpr int8_t MAX_TRIGGER_LATENCY_MS = 6;
 
 Vibrator::Vibrator(std::ofstream&& activate, std::ofstream&& duration, std::ofstream&& effect,
         std::ofstream&& queue, std::ofstream&& scale) :
@@ -106,7 +106,7 @@
 
 Return<Status> Vibrator::on(uint32_t timeoutMs, uint32_t effectIndex) {
     mEffectIndex << effectIndex << std::endl;
-    mDuration << timeoutMs << std::endl;
+    mDuration << (timeoutMs + MAX_TRIGGER_LATENCY_MS) << std::endl;
     mActivate << 1 << std::endl;
 
     return Status::OK;
diff --git a/vibrator/cs40l20/cs40l20.wmfw b/vibrator/cs40l20/cs40l20.wmfw
index cc135f8..ffa6f78 100644
--- a/vibrator/cs40l20/cs40l20.wmfw
+++ b/vibrator/cs40l20/cs40l20.wmfw
Binary files differ