diff --git a/PerspectivePuzzleMechanic_2018/Animations.meta b/PerspectivePuzzleMechanic_2018/Animations.meta new file mode 100644 index 0000000..734ecb2 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Animations.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8dad970d10c648643aed3d655597ba20 +folderAsset: yes +timeCreated: 1461615955 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Animations/Point light.controller b/PerspectivePuzzleMechanic_2018/Animations/Point light.controller new file mode 100644 index 0000000..d850cf3 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Animations/Point light.controller differ diff --git a/PerspectivePuzzleMechanic_2018/Animations/Point light.controller.meta b/PerspectivePuzzleMechanic_2018/Animations/Point light.controller.meta new file mode 100644 index 0000000..02b954f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Animations/Point light.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5a180f32236e2ea418e5f5a4941ef955 +timeCreated: 1461616281 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Animations/SparksBouncyLight.anim b/PerspectivePuzzleMechanic_2018/Animations/SparksBouncyLight.anim new file mode 100644 index 0000000..3d91961 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Animations/SparksBouncyLight.anim differ diff --git a/PerspectivePuzzleMechanic_2018/Animations/SparksBouncyLight.anim.meta b/PerspectivePuzzleMechanic_2018/Animations/SparksBouncyLight.anim.meta new file mode 100644 index 0000000..c68185a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Animations/SparksBouncyLight.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b60f3387c44fd7a4da5ca8d46b04ed2c +timeCreated: 1461616280 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic/Materials.meta b/PerspectivePuzzleMechanic_2018/Materials.meta similarity index 100% rename from PerspectivePuzzleMechanic/Materials.meta rename to PerspectivePuzzleMechanic_2018/Materials.meta diff --git a/PerspectivePuzzleMechanic/Materials/BlueToon.mat b/PerspectivePuzzleMechanic_2018/Materials/BlueToon.mat similarity index 100% rename from PerspectivePuzzleMechanic/Materials/BlueToon.mat rename to PerspectivePuzzleMechanic_2018/Materials/BlueToon.mat diff --git a/PerspectivePuzzleMechanic/Materials/BlueToon.mat.meta b/PerspectivePuzzleMechanic_2018/Materials/BlueToon.mat.meta similarity index 100% rename from PerspectivePuzzleMechanic/Materials/BlueToon.mat.meta rename to PerspectivePuzzleMechanic_2018/Materials/BlueToon.mat.meta diff --git a/PerspectivePuzzleMechanic/Materials/Bronze.mat b/PerspectivePuzzleMechanic_2018/Materials/Bronze.mat similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Bronze.mat rename to PerspectivePuzzleMechanic_2018/Materials/Bronze.mat diff --git a/PerspectivePuzzleMechanic/Materials/Bronze.mat.meta b/PerspectivePuzzleMechanic_2018/Materials/Bronze.mat.meta similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Bronze.mat.meta rename to PerspectivePuzzleMechanic_2018/Materials/Bronze.mat.meta diff --git a/PerspectivePuzzleMechanic/Materials/Brown.mat b/PerspectivePuzzleMechanic_2018/Materials/Brown.mat similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Brown.mat rename to PerspectivePuzzleMechanic_2018/Materials/Brown.mat diff --git a/PerspectivePuzzleMechanic/Materials/Brown.mat.meta b/PerspectivePuzzleMechanic_2018/Materials/Brown.mat.meta similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Brown.mat.meta rename to PerspectivePuzzleMechanic_2018/Materials/Brown.mat.meta diff --git a/PerspectivePuzzleMechanic_2018/Materials/Floor.mat b/PerspectivePuzzleMechanic_2018/Materials/Floor.mat new file mode 100644 index 0000000..3294fd3 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Materials/Floor.mat differ diff --git a/PerspectivePuzzleMechanic/Materials/Floor.mat.meta b/PerspectivePuzzleMechanic_2018/Materials/Floor.mat.meta similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Floor.mat.meta rename to PerspectivePuzzleMechanic_2018/Materials/Floor.mat.meta diff --git a/PerspectivePuzzleMechanic_2018/Materials/Green.mat b/PerspectivePuzzleMechanic_2018/Materials/Green.mat new file mode 100644 index 0000000..8acfbec Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Materials/Green.mat differ diff --git a/PerspectivePuzzleMechanic/Materials/Green.mat.meta b/PerspectivePuzzleMechanic_2018/Materials/Green.mat.meta similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Green.mat.meta rename to PerspectivePuzzleMechanic_2018/Materials/Green.mat.meta diff --git a/PerspectivePuzzleMechanic/Materials/Red.mat b/PerspectivePuzzleMechanic_2018/Materials/Red.mat similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Red.mat rename to PerspectivePuzzleMechanic_2018/Materials/Red.mat diff --git a/PerspectivePuzzleMechanic/Materials/Red.mat.meta b/PerspectivePuzzleMechanic_2018/Materials/Red.mat.meta similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Red.mat.meta rename to PerspectivePuzzleMechanic_2018/Materials/Red.mat.meta diff --git a/PerspectivePuzzleMechanic/Materials/RedToon.mat b/PerspectivePuzzleMechanic_2018/Materials/RedToon.mat similarity index 100% rename from PerspectivePuzzleMechanic/Materials/RedToon.mat rename to PerspectivePuzzleMechanic_2018/Materials/RedToon.mat diff --git a/PerspectivePuzzleMechanic/Materials/RedToon.mat.meta b/PerspectivePuzzleMechanic_2018/Materials/RedToon.mat.meta similarity index 100% rename from PerspectivePuzzleMechanic/Materials/RedToon.mat.meta rename to PerspectivePuzzleMechanic_2018/Materials/RedToon.mat.meta diff --git a/PerspectivePuzzleMechanic/Materials/Shield_Color.mat b/PerspectivePuzzleMechanic_2018/Materials/Shield_Color.mat similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Shield_Color.mat rename to PerspectivePuzzleMechanic_2018/Materials/Shield_Color.mat diff --git a/PerspectivePuzzleMechanic/Materials/Shield_Color.mat.meta b/PerspectivePuzzleMechanic_2018/Materials/Shield_Color.mat.meta similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Shield_Color.mat.meta rename to PerspectivePuzzleMechanic_2018/Materials/Shield_Color.mat.meta diff --git a/PerspectivePuzzleMechanic/Materials/Silver.mat b/PerspectivePuzzleMechanic_2018/Materials/Silver.mat similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Silver.mat rename to PerspectivePuzzleMechanic_2018/Materials/Silver.mat diff --git a/PerspectivePuzzleMechanic/Materials/Silver.mat.meta b/PerspectivePuzzleMechanic_2018/Materials/Silver.mat.meta similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Silver.mat.meta rename to PerspectivePuzzleMechanic_2018/Materials/Silver.mat.meta diff --git a/PerspectivePuzzleMechanic/Materials/String.mat b/PerspectivePuzzleMechanic_2018/Materials/String.mat similarity index 100% rename from PerspectivePuzzleMechanic/Materials/String.mat rename to PerspectivePuzzleMechanic_2018/Materials/String.mat diff --git a/PerspectivePuzzleMechanic/Materials/String.mat.meta b/PerspectivePuzzleMechanic_2018/Materials/String.mat.meta similarity index 100% rename from PerspectivePuzzleMechanic/Materials/String.mat.meta rename to PerspectivePuzzleMechanic_2018/Materials/String.mat.meta diff --git a/PerspectivePuzzleMechanic/Materials/White.mat b/PerspectivePuzzleMechanic_2018/Materials/White.mat similarity index 100% rename from PerspectivePuzzleMechanic/Materials/White.mat rename to PerspectivePuzzleMechanic_2018/Materials/White.mat diff --git a/PerspectivePuzzleMechanic/Materials/White.mat.meta b/PerspectivePuzzleMechanic_2018/Materials/White.mat.meta similarity index 100% rename from PerspectivePuzzleMechanic/Materials/White.mat.meta rename to PerspectivePuzzleMechanic_2018/Materials/White.mat.meta diff --git a/PerspectivePuzzleMechanic/Materials/Wood.mat b/PerspectivePuzzleMechanic_2018/Materials/Wood.mat similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Wood.mat rename to PerspectivePuzzleMechanic_2018/Materials/Wood.mat diff --git a/PerspectivePuzzleMechanic/Materials/Wood.mat.meta b/PerspectivePuzzleMechanic_2018/Materials/Wood.mat.meta similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Wood.mat.meta rename to PerspectivePuzzleMechanic_2018/Materials/Wood.mat.meta diff --git a/PerspectivePuzzleMechanic/Materials/Wood2.mat b/PerspectivePuzzleMechanic_2018/Materials/Wood2.mat similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Wood2.mat rename to PerspectivePuzzleMechanic_2018/Materials/Wood2.mat diff --git a/PerspectivePuzzleMechanic/Materials/Wood2.mat.meta b/PerspectivePuzzleMechanic_2018/Materials/Wood2.mat.meta similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Wood2.mat.meta rename to PerspectivePuzzleMechanic_2018/Materials/Wood2.mat.meta diff --git a/PerspectivePuzzleMechanic/Materials/Wood3.mat b/PerspectivePuzzleMechanic_2018/Materials/Wood3.mat similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Wood3.mat rename to PerspectivePuzzleMechanic_2018/Materials/Wood3.mat diff --git a/PerspectivePuzzleMechanic/Materials/Wood3.mat.meta b/PerspectivePuzzleMechanic_2018/Materials/Wood3.mat.meta similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Wood3.mat.meta rename to PerspectivePuzzleMechanic_2018/Materials/Wood3.mat.meta diff --git a/PerspectivePuzzleMechanic/Materials/Yellow.mat b/PerspectivePuzzleMechanic_2018/Materials/Yellow.mat similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Yellow.mat rename to PerspectivePuzzleMechanic_2018/Materials/Yellow.mat diff --git a/PerspectivePuzzleMechanic/Materials/Yellow.mat.meta b/PerspectivePuzzleMechanic_2018/Materials/Yellow.mat.meta similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Yellow.mat.meta rename to PerspectivePuzzleMechanic_2018/Materials/Yellow.mat.meta diff --git a/PerspectivePuzzleMechanic/Materials/YellowToon.mat b/PerspectivePuzzleMechanic_2018/Materials/YellowToon.mat similarity index 100% rename from PerspectivePuzzleMechanic/Materials/YellowToon.mat rename to PerspectivePuzzleMechanic_2018/Materials/YellowToon.mat diff --git a/PerspectivePuzzleMechanic/Materials/YellowToon.mat.meta b/PerspectivePuzzleMechanic_2018/Materials/YellowToon.mat.meta similarity index 100% rename from PerspectivePuzzleMechanic/Materials/YellowToon.mat.meta rename to PerspectivePuzzleMechanic_2018/Materials/YellowToon.mat.meta diff --git a/PerspectivePuzzleMechanic_2018/Materials/wood.png b/PerspectivePuzzleMechanic_2018/Materials/wood.png new file mode 100644 index 0000000..2fc8968 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Materials/wood.png differ diff --git a/PerspectivePuzzleMechanic_2018/Materials/wood.png.meta b/PerspectivePuzzleMechanic_2018/Materials/wood.png.meta new file mode 100644 index 0000000..bdf6cf5 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Materials/wood.png.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 892b11b7140154f4285bdbf75c36521a +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Materials/wood_.mat b/PerspectivePuzzleMechanic_2018/Materials/wood_.mat new file mode 100644 index 0000000..f4019b5 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Materials/wood_.mat differ diff --git a/PerspectivePuzzleMechanic/Materials/wood_.mat.meta b/PerspectivePuzzleMechanic_2018/Materials/wood_.mat.meta similarity index 100% rename from PerspectivePuzzleMechanic/Materials/wood_.mat.meta rename to PerspectivePuzzleMechanic_2018/Materials/wood_.mat.meta diff --git a/PerspectivePuzzleMechanic_2018/Models.meta b/PerspectivePuzzleMechanic_2018/Models.meta new file mode 100644 index 0000000..4beda7d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Models.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: de73d5ed7c0fdc2efb781f63d98a4105 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Models/battle_axe.fbx b/PerspectivePuzzleMechanic_2018/Models/battle_axe.fbx new file mode 100644 index 0000000..abfb9c1 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Models/battle_axe.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/Models/battle_axe.fbx.meta b/PerspectivePuzzleMechanic_2018/Models/battle_axe.fbx.meta new file mode 100644 index 0000000..ac43e56 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Models/battle_axe.fbx.meta @@ -0,0 +1,112 @@ +fileFormatVersion: 2 +guid: 56f480636f5ce4ad482c741a25b8c424 +ModelImporter: + serializedVersion: 23 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: Cylinder.006 + 2186277476908879412: ImportLogs + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: Bronze + second: {fileID: 2100000, guid: 9605218e11da7416f80a4b5f55a34442, type: 2} + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: Silver + second: {fileID: 2100000, guid: f3b1b99db987842e0a837902b587d559, type: 2} + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: Wood + second: {fileID: 2100000, guid: 7592c63eb57ba437e807f0b4cf8560d8, type: 2} + materials: + importMaterials: 1 + materialName: 0 + materialSearch: 1 + materialLocation: 0 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + swapUVChannels: 0 + generateSecondaryUV: 1 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + preserveHierarchy: 0 + indexFormat: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + previousCalculatedGlobalScale: 1 + hasPreviousCalculatedGlobalScale: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + importAnimation: 1 + copyAvatar: 0 + humanDescription: + serializedVersion: 2 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Models/cabinet.FBX b/PerspectivePuzzleMechanic_2018/Models/cabinet.FBX new file mode 100644 index 0000000..76ae38d Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Models/cabinet.FBX differ diff --git a/PerspectivePuzzleMechanic_2018/Models/cabinet.FBX.meta b/PerspectivePuzzleMechanic_2018/Models/cabinet.FBX.meta new file mode 100644 index 0000000..937336b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Models/cabinet.FBX.meta @@ -0,0 +1,85 @@ +fileFormatVersion: 2 +guid: 7fc4f1ae771c82248a8194f137ffd698 +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 100002: door1 + 100004: door2 + 400000: //RootNode + 400002: door1 + 400004: door2 + 2300000: //RootNode + 2300002: door1 + 2300004: door2 + 3300000: //RootNode + 3300002: door1 + 3300004: door2 + 4300000: cabinet + 4300002: door2 + 4300004: door1 + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 1 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 1 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Models/chair.FBX b/PerspectivePuzzleMechanic_2018/Models/chair.FBX new file mode 100644 index 0000000..82a0fa5 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Models/chair.FBX differ diff --git a/PerspectivePuzzleMechanic_2018/Models/chair.FBX.meta b/PerspectivePuzzleMechanic_2018/Models/chair.FBX.meta new file mode 100644 index 0000000..f5ade79 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Models/chair.FBX.meta @@ -0,0 +1,75 @@ +fileFormatVersion: 2 +guid: 83a8ea92913740449a4ad6c6c19c7d92 +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: chair + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 1 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 1 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Models/roman_barrel.fbx b/PerspectivePuzzleMechanic_2018/Models/roman_barrel.fbx new file mode 100644 index 0000000..8c6f260 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Models/roman_barrel.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/Models/roman_barrel.fbx.meta b/PerspectivePuzzleMechanic_2018/Models/roman_barrel.fbx.meta new file mode 100644 index 0000000..122d9df --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Models/roman_barrel.fbx.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 60753b84b8ab24cec8ce35fedab26b73 +timeCreated: 1496469289 +licenseType: Store +ModelImporter: + serializedVersion: 21 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: Cylinder.010 + 6400000: //RootNode + materials: + importMaterials: 1 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 1 + importVisibility: 0 + importBlendShapes: 1 + importCameras: 0 + importLights: 0 + swapUVChannels: 0 + generateSecondaryUV: 1 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 0 + importAnimation: 1 + copyAvatar: 0 + humanDescription: + serializedVersion: 2 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Models/roman_crate_closed.fbx b/PerspectivePuzzleMechanic_2018/Models/roman_crate_closed.fbx new file mode 100644 index 0000000..52d9368 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Models/roman_crate_closed.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/Models/roman_crate_closed.fbx.meta b/PerspectivePuzzleMechanic_2018/Models/roman_crate_closed.fbx.meta new file mode 100644 index 0000000..64faf26 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Models/roman_crate_closed.fbx.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 0992ca43c28e34977a36e67d8406f80c +timeCreated: 1496528513 +licenseType: Store +ModelImporter: + serializedVersion: 21 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: Cube.014 + 6400000: //RootNode + materials: + importMaterials: 1 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 1 + importVisibility: 0 + importBlendShapes: 1 + importCameras: 0 + importLights: 0 + swapUVChannels: 0 + generateSecondaryUV: 1 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 0 + importAnimation: 1 + copyAvatar: 0 + humanDescription: + serializedVersion: 2 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Models/shield_metal.fbx b/PerspectivePuzzleMechanic_2018/Models/shield_metal.fbx new file mode 100644 index 0000000..00c4db0 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Models/shield_metal.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/Models/shield_metal.fbx.meta b/PerspectivePuzzleMechanic_2018/Models/shield_metal.fbx.meta new file mode 100644 index 0000000..9448de0 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Models/shield_metal.fbx.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: fe8e7ba801faf4be8b9b4d03d9fe8a8d +timeCreated: 1520981292 +licenseType: Store +ModelImporter: + serializedVersion: 21 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2100000: String + 2100002: Bronze + 2100004: Silver + 2100006: Shield_Color + 2300000: //RootNode + 3300000: //RootNode + 4300000: Cube.001 + 6400000: //RootNode + materials: + importMaterials: 1 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + swapUVChannels: 0 + generateSecondaryUV: 1 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + importAnimation: 1 + copyAvatar: 0 + humanDescription: + serializedVersion: 2 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic/Prefabs.meta b/PerspectivePuzzleMechanic_2018/Prefabs.meta similarity index 100% rename from PerspectivePuzzleMechanic/Prefabs.meta rename to PerspectivePuzzleMechanic_2018/Prefabs.meta diff --git a/PerspectivePuzzleMechanic_2018/Prefabs/ParticleSystem_Sparks.prefab b/PerspectivePuzzleMechanic_2018/Prefabs/ParticleSystem_Sparks.prefab new file mode 100644 index 0000000..8569b9f Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Prefabs/ParticleSystem_Sparks.prefab differ diff --git a/PerspectivePuzzleMechanic_2018/Prefabs/ParticleSystem_Sparks.prefab.meta b/PerspectivePuzzleMechanic_2018/Prefabs/ParticleSystem_Sparks.prefab.meta new file mode 100644 index 0000000..7499a45 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Prefabs/ParticleSystem_Sparks.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 213511d3d960e1247aa521eb56b6710a +timeCreated: 1461607456 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic/Prefabs/PerpectiveManager.prefab b/PerspectivePuzzleMechanic_2018/Prefabs/PerpectiveManager.prefab similarity index 100% rename from PerspectivePuzzleMechanic/Prefabs/PerpectiveManager.prefab rename to PerspectivePuzzleMechanic_2018/Prefabs/PerpectiveManager.prefab diff --git a/PerspectivePuzzleMechanic/Prefabs/PerpectiveManager.prefab.meta b/PerspectivePuzzleMechanic_2018/Prefabs/PerpectiveManager.prefab.meta similarity index 100% rename from PerspectivePuzzleMechanic/Prefabs/PerpectiveManager.prefab.meta rename to PerspectivePuzzleMechanic_2018/Prefabs/PerpectiveManager.prefab.meta diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels.meta new file mode 100644 index 0000000..bd88235 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7cf0916e0e52090458b9a47ba7ce5766 +folderAsset: yes +timeCreated: 1461069579 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models.meta new file mode 100644 index 0000000..4c17198 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 58bda7c09d8d15b469dd101fd3d17bd8 +folderAsset: yes +timeCreated: 1461060292 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes.meta new file mode 100644 index 0000000..a30f5ad --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b289e0c2fbfe8485f85249e03e1bd310 +folderAsset: yes +timeCreated: 1461060293 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/env_robotLab_collision.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/env_robotLab_collision.fbx new file mode 100644 index 0000000..1bf77dd Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/env_robotLab_collision.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/env_robotLab_collision.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/env_robotLab_collision.fbx.meta new file mode 100644 index 0000000..1d11ba9 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/env_robotLab_collision.fbx.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: e2bbc538a9f3e2447ae72e9087d22e7a +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: env_robotLab_collision_001 + 4300002: env_robotLab_collision + 9500000: //RootNode + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_batteringRam_collision.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_batteringRam_collision.fbx new file mode 100644 index 0000000..74e6941 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_batteringRam_collision.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_batteringRam_collision.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_batteringRam_collision.fbx.meta new file mode 100644 index 0000000..65b2ef5 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_batteringRam_collision.fbx.meta @@ -0,0 +1,125 @@ +fileFormatVersion: 2 +guid: cba410fa184e16b4ab6b02e29c9fccf0 +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: pCube1 + 100002: pCube2 + 100004: polySurface1 + 100006: prop_batteringRam_base1 + 100008: //RootNode + 100010: prop_batteringRam_shield_top + 100012: prop_batteringRam_shield_top1 + 100014: transform1 + 100016: transform2 + 100018: prop_batteringRam_baseShape_collision + 100020: prop_batteringRam_fist_collision + 100022: prop_batteringRam_shield_bottom_collision + 100024: prop_batteringRam_shield_top_collision + 100026: prop_batteringRam_base_collision + 400000: pCube1 + 400002: pCube2 + 400004: polySurface1 + 400006: prop_batteringRam_base1 + 400008: //RootNode + 400010: prop_batteringRam_shield_top + 400012: prop_batteringRam_shield_top1 + 400014: transform1 + 400016: transform2 + 400018: prop_batteringRam_baseShape_collision + 400020: prop_batteringRam_fist_collision + 400022: prop_batteringRam_shield_bottom_collision + 400024: prop_batteringRam_shield_top_collision + 400026: prop_batteringRam_base_collision + 2300000: pCube2 + 2300002: polySurface1 + 2300004: prop_batteringRam_shield_top + 2300006: prop_batteringRam_shield_top1 + 2300008: prop_batteringRam_baseShape_collision + 2300010: prop_batteringRam_fist_collision + 2300012: prop_batteringRam_shield_bottom_collision + 2300014: prop_batteringRam_shield_top_collision + 2300016: prop_batteringRam_base_collision + 3300000: pCube2 + 3300002: polySurface1 + 3300004: prop_batteringRam_shield_top + 3300006: prop_batteringRam_shield_top1 + 3300008: prop_batteringRam_baseShape_collision + 3300010: prop_batteringRam_fist_collision + 3300012: prop_batteringRam_shield_bottom_collision + 3300014: prop_batteringRam_shield_top_collision + 3300016: prop_batteringRam_base_collision + 4300000: prop_batteringRam_shield_top + 4300002: pCube2 + 4300004: polySurface1 + 4300006: prop_batteringRam_shield_top1 + 4300008: prop_batteringRam_shield_top_collision + 4300010: prop_batteringRam_fist_collision + 4300012: prop_batteringRam_baseShape_collision + 4300014: prop_batteringRam_shield_bottom_collision + 4300016: prop_batteringRam_base_collision + 9500000: //RootNode + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_blastDoor_collision.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_blastDoor_collision.fbx new file mode 100644 index 0000000..89278f2 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_blastDoor_collision.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_blastDoor_collision.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_blastDoor_collision.fbx.meta new file mode 100644 index 0000000..252fa1a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_blastDoor_collision.fbx.meta @@ -0,0 +1,82 @@ +fileFormatVersion: 2 +guid: 9dbd61983d2eafc48bb30dd3a8a60174 +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 100002: prop_blastDoor_door_collision + 100004: prop_blastDoor_frame_collision + 400000: //RootNode + 400002: prop_blastDoor_door_collision + 400004: prop_blastDoor_frame_collision + 2300000: prop_blastDoor_door_collision + 2300002: prop_blastDoor_frame_collision + 3300000: prop_blastDoor_door_collision + 3300002: prop_blastDoor_frame_collision + 4300000: prop_blastDoor_frame_collision + 4300002: prop_blastDoor_door_collision + 9500000: //RootNode + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_hoverPad_collision.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_hoverPad_collision.fbx new file mode 100644 index 0000000..0deb843 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_hoverPad_collision.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_hoverPad_collision.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_hoverPad_collision.fbx.meta new file mode 100644 index 0000000..05dde01 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_hoverPad_collision.fbx.meta @@ -0,0 +1,77 @@ +fileFormatVersion: 2 +guid: 39dc512d6538d4642b19335bd97402e3 +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: prop_hoverPad_001 + 4300002: prop_hoverPad_collision_001 + 7400000: modo_Anim + 9500000: //RootNode + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_robotArm_collision.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_robotArm_collision.fbx new file mode 100644 index 0000000..a8858b6 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_robotArm_collision.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_robotArm_collision.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_robotArm_collision.fbx.meta new file mode 100644 index 0000000..9ce23d1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/prop_robotArm_collision.fbx.meta @@ -0,0 +1,197 @@ +fileFormatVersion: 2 +guid: f18925b65336e944292bf981e6c76333 +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: prop_robotArm_arm_collision_001 + 100002: prop_robotArm_arm_collision_002 + 100004: prop_robotArm_body_collision_001 + 100006: prop_robotArm_clawLow_base_collision_001 + 100008: prop_robotArm_clawLow_mid_collision_001 + 100010: prop_robotArm_clawLow_tip_collision_001 + 100012: prop_robotArm_clawTop_base_collision_001 + 100014: prop_robotArm_clawTop_tip_collision_001 + 100016: //RootNode + 100018: prop_robotArm_hand_collision_001 + 100020: prop_robotArm_plinth_collision_001 + 100022: prop_robotArm_clawTop_mid_collision_002 + 100024: prop_batteringRam_baseShape_collision + 100026: prop_batteringRam_fist_collision + 100028: prop_batteringRam_shield_bottom_collision + 100030: prop_batteringRam_shield_top_collision + 100032: prop_robotArm_arm_collision + 100034: prop_robotArm_body_collision + 100036: prop_robotArm_clawLow_base_collision + 100038: prop_robotArm_clawLow_mid_collision + 100040: prop_robotArm_clawLow_tip_collision + 100042: prop_robotArm_clawTop_base_collision + 100044: prop_robotArm_clawTop_mid_collision + 100046: prop_robotArm_clawTop_tip_collision + 100048: prop_robotArm_hand_collision + 100050: prop_robotArm_plinth_collision + 400000: prop_robotArm_arm_collision_001 + 400002: prop_robotArm_arm_collision_002 + 400004: prop_robotArm_body_collision_001 + 400006: prop_robotArm_clawLow_base_collision_001 + 400008: prop_robotArm_clawLow_mid_collision_001 + 400010: prop_robotArm_clawLow_tip_collision_001 + 400012: prop_robotArm_clawTop_base_collision_001 + 400014: prop_robotArm_clawTop_tip_collision_001 + 400016: //RootNode + 400018: prop_robotArm_hand_collision_001 + 400020: prop_robotArm_plinth_collision_001 + 400022: prop_robotArm_clawTop_mid_collision_002 + 400024: prop_batteringRam_baseShape_collision + 400026: prop_batteringRam_fist_collision + 400028: prop_batteringRam_shield_bottom_collision + 400030: prop_batteringRam_shield_top_collision + 400032: prop_robotArm_arm_collision + 400034: prop_robotArm_body_collision + 400036: prop_robotArm_clawLow_base_collision + 400038: prop_robotArm_clawLow_mid_collision + 400040: prop_robotArm_clawLow_tip_collision + 400042: prop_robotArm_clawTop_base_collision + 400044: prop_robotArm_clawTop_mid_collision + 400046: prop_robotArm_clawTop_tip_collision + 400048: prop_robotArm_hand_collision + 400050: prop_robotArm_plinth_collision + 2300000: prop_robotArm_arm_collision_001 + 2300002: prop_robotArm_arm_collision_002 + 2300004: prop_robotArm_body_collision_001 + 2300006: prop_robotArm_clawLow_base_collision_001 + 2300008: prop_robotArm_clawLow_mid_collision_001 + 2300010: prop_robotArm_clawLow_tip_collision_001 + 2300012: prop_robotArm_clawTop_base_collision_001 + 2300014: prop_robotArm_clawTop_tip_collision_001 + 2300016: prop_robotArm_hand_collision_001 + 2300018: prop_robotArm_plinth_collision_001 + 2300020: prop_robotArm_clawTop_mid_collision_002 + 2300022: prop_batteringRam_baseShape_collision + 2300024: prop_batteringRam_fist_collision + 2300026: prop_batteringRam_shield_bottom_collision + 2300028: prop_batteringRam_shield_top_collision + 2300030: prop_robotArm_arm_collision + 2300032: prop_robotArm_body_collision + 2300034: prop_robotArm_clawLow_base_collision + 2300036: prop_robotArm_clawLow_mid_collision + 2300038: prop_robotArm_clawLow_tip_collision + 2300040: prop_robotArm_clawTop_base_collision + 2300042: prop_robotArm_clawTop_mid_collision + 2300044: prop_robotArm_clawTop_tip_collision + 2300046: prop_robotArm_hand_collision + 2300048: prop_robotArm_plinth_collision + 3300000: prop_robotArm_arm_collision_001 + 3300002: prop_robotArm_arm_collision_002 + 3300004: prop_robotArm_body_collision_001 + 3300006: prop_robotArm_clawLow_base_collision_001 + 3300008: prop_robotArm_clawLow_mid_collision_001 + 3300010: prop_robotArm_clawLow_tip_collision_001 + 3300012: prop_robotArm_clawTop_base_collision_001 + 3300014: prop_robotArm_clawTop_tip_collision_001 + 3300016: prop_robotArm_hand_collision_001 + 3300018: prop_robotArm_plinth_collision_001 + 3300020: prop_robotArm_clawTop_mid_collision_002 + 3300022: prop_batteringRam_baseShape_collision + 3300024: prop_batteringRam_fist_collision + 3300026: prop_batteringRam_shield_bottom_collision + 3300028: prop_batteringRam_shield_top_collision + 3300030: prop_robotArm_arm_collision + 3300032: prop_robotArm_body_collision + 3300034: prop_robotArm_clawLow_base_collision + 3300036: prop_robotArm_clawLow_mid_collision + 3300038: prop_robotArm_clawLow_tip_collision + 3300040: prop_robotArm_clawTop_base_collision + 3300042: prop_robotArm_clawTop_mid_collision + 3300044: prop_robotArm_clawTop_tip_collision + 3300046: prop_robotArm_hand_collision + 3300048: prop_robotArm_plinth_collision + 4300000: prop_robotArm_plinth_collision_001 + 4300002: prop_robotArm_body_collision_001 + 4300004: prop_robotArm_arm_collision_001 + 4300006: prop_robotArm_hand_collision_001 + 4300008: prop_robotArm_clawTop_base_collision_001 + 4300010: prop_robotArm_arm_collision_002 + 4300012: prop_robotArm_clawTop_tip_collision_001 + 4300014: prop_robotArm_clawLow_base_collision_001 + 4300016: prop_robotArm_clawLow_mid_collision_001 + 4300018: prop_robotArm_clawLow_tip_collision_001 + 4300020: prop_robotArm_clawTop_mid_collision_002 + 4300022: prop_batteringRam_shield_top_collision + 4300024: prop_batteringRam_fist_collision + 4300026: prop_batteringRam_baseShape_collision + 4300028: prop_batteringRam_shield_bottom_collision + 4300030: prop_robotArm_plinth_collision + 4300032: prop_robotArm_body_collision + 4300034: prop_robotArm_arm_collision + 4300036: prop_robotArm_hand_collision + 4300038: prop_robotArm_clawTop_base_collision + 4300040: prop_robotArm_clawTop_mid_collision + 4300042: prop_robotArm_clawTop_tip_collision + 4300044: prop_robotArm_clawLow_base_collision + 4300046: prop_robotArm_clawLow_mid_collision + 4300048: prop_robotArm_clawLow_tip_collision + 9500000: //RootNode + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/vehicle_rcFlyer_collision.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/vehicle_rcFlyer_collision.fbx new file mode 100644 index 0000000..8e4c382 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/vehicle_rcFlyer_collision.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/vehicle_rcFlyer_collision.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/vehicle_rcFlyer_collision.fbx.meta new file mode 100644 index 0000000..4165dd3 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/vehicle_rcFlyer_collision.fbx.meta @@ -0,0 +1,97 @@ +fileFormatVersion: 2 +guid: 917e29929631e264c97a7d174b0301e5 +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: vehicle_rcFlyer_body_collision + 100002: //RootNode + 100004: vehicle_rcFlyer_leg_frontLeft_collision + 100006: vehicle_rcFlyer_leg_frontRight_collision + 100008: vehicle_rcFlyer_leg_rearLeft_collision + 100010: vehicle_rcFlyer_leg_rearRight_collision + 400000: vehicle_rcFlyer_body_collision + 400002: //RootNode + 400004: vehicle_rcFlyer_leg_frontLeft_collision + 400006: vehicle_rcFlyer_leg_frontRight_collision + 400008: vehicle_rcFlyer_leg_rearLeft_collision + 400010: vehicle_rcFlyer_leg_rearRight_collision + 2300000: vehicle_rcFlyer_body_collision + 2300002: vehicle_rcFlyer_leg_frontLeft_collision + 2300004: vehicle_rcFlyer_leg_frontRight_collision + 2300006: vehicle_rcFlyer_leg_rearLeft_collision + 2300008: vehicle_rcFlyer_leg_rearRight_collision + 3300000: vehicle_rcFlyer_body_collision + 3300002: vehicle_rcFlyer_leg_frontLeft_collision + 3300004: vehicle_rcFlyer_leg_frontRight_collision + 3300006: vehicle_rcFlyer_leg_rearLeft_collision + 3300008: vehicle_rcFlyer_leg_rearRight_collision + 4300000: vehicle_rcFlyer_leg_rearRight_collision + 4300002: vehicle_rcFlyer_leg_frontLeft_collision + 4300004: vehicle_rcFlyer_leg_rearLeft_collision + 4300006: vehicle_rcFlyer_leg_frontRight_collision + 4300008: vehicle_rcFlyer_body_collision + 9500000: //RootNode + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/vehicle_rcLand_collision.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/vehicle_rcLand_collision.fbx new file mode 100644 index 0000000..c578d7a Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/vehicle_rcLand_collision.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/vehicle_rcLand_collision.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/vehicle_rcLand_collision.fbx.meta new file mode 100644 index 0000000..0d29404 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Collision Meshes/vehicle_rcLand_collision.fbx.meta @@ -0,0 +1,89 @@ +fileFormatVersion: 2 +guid: 81b88fc2da80ea343977c4939610c928 +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: polySurface1 + 100002: vehicle_rcLand_body_collision + 100004: //RootNode + 100006: vehicle_rcLand_mudFlaps_rearLeft_collision + 100008: vehicle_rcLand_mudFlaps_rearRight_collision + 400000: polySurface1 + 400002: vehicle_rcLand_body_collision + 400004: //RootNode + 400006: vehicle_rcLand_mudFlaps_rearLeft_collision + 400008: vehicle_rcLand_mudFlaps_rearRight_collision + 2300000: vehicle_rcLand_body_collision + 2300002: vehicle_rcLand_mudFlaps_rearLeft_collision + 2300004: vehicle_rcLand_mudFlaps_rearRight_collision + 3300000: vehicle_rcLand_body_collision + 3300002: vehicle_rcLand_mudFlaps_rearLeft_collision + 3300004: vehicle_rcLand_mudFlaps_rearRight_collision + 4300000: vehicle_rcLand_mudFlaps_rearRight_collision + 4300002: vehicle_rcLand_mudFlaps_rearLeft_collision + 4300004: vehicle_rcLand_body_collision + 9500000: //RootNode + materials: + importMaterials: 0 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials.meta new file mode 100644 index 0000000..9c905ad --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d8ccdf9e3ac244697bf9b5e32203fa96 +folderAsset: yes +timeCreated: 1461060294 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/Default_Material.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/Default_Material.mat new file mode 100644 index 0000000..ec3d0ff --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/Default_Material.mat @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Default_Material + m_Shader: {fileID: 7, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: {} + m_Colors: + data: + first: + name: _Color + second: {r: .5, g: .5, b: .5, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/Default_Material.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/Default_Material.mat.meta new file mode 100644 index 0000000..8e31b0f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/Default_Material.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 25b8cd122f4c39645b32750f8df2c4e6 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_eyelashes_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_eyelashes_mat.mat new file mode 100644 index 0000000..fad15e9 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_eyelashes_mat.mat @@ -0,0 +1,57 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: char_astrella_eyelashes_mat + m_Shader: {fileID: 30, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 9a9adb4889d26a64d8cfa5fe285152b9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 7031a13a7cbfdcf488f570e9be6f5cc0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Cube + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Cutoff + second: .5 + data: + first: + name: _InvFade + second: 3 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _ReflectColor + second: {r: 1, g: 1, b: 1, a: .5} + data: + first: + name: _TintColor + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_eyelashes_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_eyelashes_mat.mat.meta new file mode 100644 index 0000000..b53372c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_eyelashes_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: a33b964d873200c4e8be6906fa543e70 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_eyes_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_eyes_mat.mat new file mode 100644 index 0000000..96a28a2 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_eyes_mat.mat @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: char_astrella_eyes_mat + m_Shader: {fileID: 22, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 9a9adb4889d26a64d8cfa5fe285152b9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 7031a13a7cbfdcf488f570e9be6f5cc0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Cube + second: + m_Texture: {fileID: 8900000, guid: 9c45003dc05b3f44eb34c04bec8173b0, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .296946675 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _ReflectColor + second: {r: .358208954, g: .318110943, b: .318110943, a: .501960814} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_eyes_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_eyes_mat.mat.meta new file mode 100644 index 0000000..edd9f4b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_eyes_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: c0a2d5641c81444419ce153d4d6cd595 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_glass_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_glass_mat.mat new file mode 100644 index 0000000..759e17c Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_glass_mat.mat differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_glass_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_glass_mat.mat.meta new file mode 100644 index 0000000..9f3cde6 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_glass_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: a356df34fc9f2d84fb582c50a5bf655e +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_metal_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_metal_mat.mat new file mode 100644 index 0000000..8955b35 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_metal_mat.mat @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: char_astrella_metal_mat + m_Shader: {fileID: 23, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 9a9adb4889d26a64d8cfa5fe285152b9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 99f57bced835c774587e73b42b4b2f05, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Cube + second: + m_Texture: {fileID: 8900000, guid: 0398a2ea793d8be4e99a112c951ee76b, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .249320999 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .888059676, g: .881432354, b: .881432354, a: 1} + data: + first: + name: _ReflectColor + second: {r: .291044772, g: .291044772, b: .291044772, a: .501960814} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_metal_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_metal_mat.mat.meta new file mode 100644 index 0000000..723d951 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_metal_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 9bca45586731a0d4993256c4c456b452 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_plastic_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_plastic_mat.mat new file mode 100644 index 0000000..73f370d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_plastic_mat.mat @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: char_astrella_plastic_mat + m_Shader: {fileID: 23, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 9a9adb4889d26a64d8cfa5fe285152b9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 99f57bced835c774587e73b42b4b2f05, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Cube + second: + m_Texture: {fileID: 8900000, guid: 9c45003dc05b3f44eb34c04bec8173b0, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .39227891 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _ReflectColor + second: {r: .582089543, g: .582089543, b: .582089543, a: .501960814} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_plastic_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_plastic_mat.mat.meta new file mode 100644 index 0000000..2abc6a5 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_plastic_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 9015e468d23447f4c8b334254173c9e9 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_skin_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_skin_mat.mat new file mode 100644 index 0000000..eb4c445 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_skin_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: char_astrella_skin_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 9a9adb4889d26a64d8cfa5fe285152b9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 99f57bced835c774587e73b42b4b2f05, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .0568888821 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .75373137, g: .75373137, b: .75373137, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_skin_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_skin_mat.mat.meta new file mode 100644 index 0000000..5a64891 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_skin_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 5c882c6c554128b45ae1d18ce3ab6ea3 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_suit_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_suit_mat.mat new file mode 100644 index 0000000..37b8cbf --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_suit_mat.mat @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: char_astrella_suit_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 9a9adb4889d26a64d8cfa5fe285152b9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 99f57bced835c774587e73b42b4b2f05, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Cube + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .361391187 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _ReflectColor + second: {r: 1, g: 1, b: 1, a: .5} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_suit_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_suit_mat.mat.meta new file mode 100644 index 0000000..427379d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/char_astrella_suit_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: bb51b8967594e3e4e90e2808e888e1ab +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/decal_pl1_ut8_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/decal_pl1_ut8_mat.mat new file mode 100644 index 0000000..69cd162 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/decal_pl1_ut8_mat.mat @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: decal_pl1_ut8_mat + m_Shader: {fileID: 51, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: a366b5d0ca67f124198fcad2c9a1995b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Cutoff + second: .5 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/decal_pl1_ut8_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/decal_pl1_ut8_mat.mat.meta new file mode 100644 index 0000000..79992d6 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/decal_pl1_ut8_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: ac5e3963bca60f7439758597b50f58b9 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_dado_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_dado_mat.mat new file mode 100644 index 0000000..43a8319 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_dado_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: door_pneumatic_dado_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: f234e683b9225384a9fe8e47450bbb2c, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: e8338abff5164bb46a263f8eb2916856, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .352821469 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .858208954, g: .858208954, b: .858208954, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_dado_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_dado_mat.mat.meta new file mode 100644 index 0000000..21a84db --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_dado_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 75d2d4efe1a429440b08622d81162b46 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_kicker_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_kicker_mat.mat new file mode 100644 index 0000000..ce654e1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_kicker_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: door_pneumatic_kicker_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 04bfff631dead7042ba58581f32d10ee, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: b4303fe23cd5ef84e84a9eca1e131e74, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .336775094 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_kicker_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_kicker_mat.mat.meta new file mode 100644 index 0000000..73436b9 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_kicker_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: ec81461f8607970489c3299bc2910dd7 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_main_fx.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_main_fx.mat new file mode 100644 index 0000000..c51cd08 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_main_fx.mat @@ -0,0 +1,60 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: door_pneumatic_main_fx + m_Shader: {fileID: 12, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: d076f744289222349ad97bf664b62634, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 74b134ecfff7eda47b7739e47ddfaa4f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Illum + second: + m_Texture: {fileID: 2800000, guid: a04c2c7fbdeabc84583bb12e72f1c07e, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .078125 + data: + first: + name: _Emission + second: 1 + data: + first: + name: _EmissionLM + second: 0 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .5, g: .5, b: .5, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_main_fx.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_main_fx.mat.meta new file mode 100644 index 0000000..1783ea5 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_main_fx.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: ddd2d03c3c5b67a40b790fdbe7883948 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_main_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_main_mat.mat new file mode 100644 index 0000000..4cd7d8b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_main_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: door_pneumatic_main_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: d076f744289222349ad97bf664b62634, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 5ebe7f9c44690864d9f7293ae41015cc, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .858320296 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: 1, g: .991359413, b: .972549021, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_main_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_main_mat.mat.meta new file mode 100644 index 0000000..cbba22f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_main_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 78eca8aacda3ced48bec62880cdf713d +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_plates_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_plates_mat.mat new file mode 100644 index 0000000..84b26b1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_plates_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: door_pneumatic_plates_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 3beff9775ca8279448776f8862b3c6f8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 79d775731fced114a886b4aebe8764dd, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .352821589 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .888059676, g: .888059676, b: .888059676, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_plates_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_plates_mat.mat.meta new file mode 100644 index 0000000..83a6322 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/door_pneumatic_plates_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 41ed52870b4ebbf4897bb220f61ea1a4 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/part_bokeh_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/part_bokeh_mat.mat new file mode 100644 index 0000000..217de18 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/part_bokeh_mat.mat differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/part_bokeh_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/part_bokeh_mat.mat.meta new file mode 100644 index 0000000..b08adb1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/part_bokeh_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 3add4a027bd77a24b8563b023beaa813 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/part_steam_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/part_steam_mat.mat new file mode 100644 index 0000000..c32e41d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/part_steam_mat.mat @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: part_steam_mat + m_Shader: {fileID: 200, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 4db432aa89364e34e9c3682e1e0b2d1e, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _InvFade + second: .814999998 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _TintColor + second: {r: .5, g: .5, b: .5, a: .5} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/part_steam_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/part_steam_mat.mat.meta new file mode 100644 index 0000000..d678967 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/part_steam_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 9314b5d157519804c902266b6db7f1cf +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_airConditioner_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_airConditioner_mat.mat new file mode 100644 index 0000000..69695f5 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_airConditioner_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_airConditioner_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 25c928de4808c2748b303a2e0acce7b5, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 2795b1e1a9509b24a9c82c6914b134f3, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .149740607 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .694029808, g: .694029808, b: .694029808, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_airConditioner_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_airConditioner_mat.mat.meta new file mode 100644 index 0000000..d3ef330 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_airConditioner_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 26f95a39eeee1f14cb8c9fbb24cc1a50 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_batteringRam_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_batteringRam_mat.mat new file mode 100644 index 0000000..45f053b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_batteringRam_mat.mat @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_batteringRam_mat + m_Shader: {fileID: 23, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 2370f45810aa85146a8bc841f889d9bf, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 15c88f0a20281d7498eb4253248899bc, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Cube + second: + m_Texture: {fileID: 8900000, guid: 0398a2ea793d8be4e99a112c951ee76b, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .332549274 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .964513063, g: .850746274, b: 1, a: 1} + data: + first: + name: _ReflectColor + second: {r: .213286713, g: .213286713, b: .213286713, a: .501960814} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_batteringRam_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_batteringRam_mat.mat.meta new file mode 100644 index 0000000..f7e4567 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_batteringRam_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 815eebc9c07223a41b0b80c621e22f42 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_bench_work_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_bench_work_mat.mat new file mode 100644 index 0000000..2727b6a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_bench_work_mat.mat @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_bench_work_mat + m_Shader: {fileID: 23, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: d36a4d696e145874f96d5ccf8aee787e, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: fea144cdb270fac4caf277c530ba3ccc, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Cube + second: + m_Texture: {fileID: 8900000, guid: 0398a2ea793d8be4e99a112c951ee76b, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .185708508 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .716417909, g: .716417909, b: .716417909, a: 1} + data: + first: + name: _ReflectColor + second: {r: .220279709, g: .220279709, b: .220279709, a: .501960814} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_bench_work_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_bench_work_mat.mat.meta new file mode 100644 index 0000000..c742b69 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_bench_work_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: c083291bdd49acd4b9a2f2426529439f +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_blastDoor_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_blastDoor_mat.mat new file mode 100644 index 0000000..f78ef08 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_blastDoor_mat.mat @@ -0,0 +1,34 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_blastDoor_mat + m_Shader: {fileID: 2, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 1c24a4034ffc8a642a3e9cd001f7684f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 44b30e1b99d38484e930a5ecd1eecf62, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: {} + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_blastDoor_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_blastDoor_mat.mat.meta new file mode 100644 index 0000000..8ffa6a6 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_blastDoor_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 2fbeef26a31cc284dab9699b5f502b55 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_capsule_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_capsule_mat.mat new file mode 100644 index 0000000..4a64a29 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_capsule_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_capsule_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 7354abf5425bc99428d5a12461cf1d41, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: d141ec36e4fb0f64bb4ac4047617544e, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .185708582 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .880596995, g: .880596995, b: .880596995, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_capsule_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_capsule_mat.mat.meta new file mode 100644 index 0000000..13348f0 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_capsule_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: a777e8f773f26a341b9ac6aeab4de03c +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_ceilingJoint_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_ceilingJoint_mat.mat new file mode 100644 index 0000000..93d146d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_ceilingJoint_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_ceilingJoint_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: a4c8bf75cf779a04d876d66e3c424b22, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 3a6c53c8c7b912d47a3c325b902452ae, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .078125 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .5, g: .5, b: .5, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_ceilingJoint_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_ceilingJoint_mat.mat.meta new file mode 100644 index 0000000..b9144f5 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_ceilingJoint_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 3322737b53c74f6429946436c78b9fc9 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_ceilingSupport_base_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_ceilingSupport_base_mat.mat new file mode 100644 index 0000000..52e7066 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_ceilingSupport_base_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_ceilingSupport_base_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 6ee0cdb03f6235849934d2f4eca64e50, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: c1c455bc2a481fc4da42ae358cc227c9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .166950911 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .925373137, g: .925373137, b: .925373137, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_ceilingSupport_base_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_ceilingSupport_base_mat.mat.meta new file mode 100644 index 0000000..526789b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_ceilingSupport_base_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 7b6d812574d5ab646a79050753a58596 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_A_fx.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_A_fx.mat new file mode 100644 index 0000000..a4c18aa Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_A_fx.mat differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_A_fx.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_A_fx.mat.meta new file mode 100644 index 0000000..46e64ba --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_A_fx.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 6886c814f67282641951704fca58a055 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_A_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_A_mat.mat new file mode 100644 index 0000000..4182fcf --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_A_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_computerStation_A_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: d1d665634e2d4314289ea10e4601ce46, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 082201cc74a2a494a8ffa671ab7b699d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .078125 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .5, g: .5, b: .5, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_A_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_A_mat.mat.meta new file mode 100644 index 0000000..c6bae2c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_A_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: bdf27e152bff2754687fc2e8d7fbd515 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_B_fx.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_B_fx.mat new file mode 100644 index 0000000..fd607bf Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_B_fx.mat differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_B_fx.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_B_fx.mat.meta new file mode 100644 index 0000000..d2eeefe --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_B_fx.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 200e5f8747bc32048806863a681ecbeb +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_B_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_B_mat.mat new file mode 100644 index 0000000..e6574b4 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_B_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_computerStation_B_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: ad8454213300ebe44b65c4f0b47b4aea, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: c95617b557171104ab39b1b72a0baff5, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .078125 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .5, g: .5, b: .5, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_B_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_B_mat.mat.meta new file mode 100644 index 0000000..1134432 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_B_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: e96f9c3e9c090ff47851f631d492cad5 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_C_fx.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_C_fx.mat new file mode 100644 index 0000000..00ddb35 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_C_fx.mat differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_C_fx.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_C_fx.mat.meta new file mode 100644 index 0000000..8facfc5 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_C_fx.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 49f38bc6ebb46c8478fc3f28ec0edf84 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_C_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_C_mat.mat new file mode 100644 index 0000000..d3eba05 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_C_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_computerStation_C_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 54a52fe4ebc21f346ad267d9ccc42970, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: c1187f562fa79a84bad0173b6e357232, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .126613528 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .880596995, g: .880596995, b: .880596995, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_C_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_C_mat.mat.meta new file mode 100644 index 0000000..eb8d348 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_computerStation_C_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 19310de5259a18c47bb64b1b45d3cb89 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_fan_large_aperture_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_fan_large_aperture_mat.mat new file mode 100644 index 0000000..97a7f4c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_fan_large_aperture_mat.mat @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_fan_large_aperture_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 96dc944c8048d6947b0d89f40031bc1a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: f2eab48fdd6247846a288f2deaa8d811, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Cube + second: + m_Texture: {fileID: 8900000, guid: 940f8e59bba51724aa3cd9282a0da668, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .185708582 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .865671635, g: .865671635, b: .865671635, a: 1} + data: + first: + name: _ReflectColor + second: {r: .149253726, g: .149253726, b: .149253726, a: .501960814} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_fan_large_aperture_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_fan_large_aperture_mat.mat.meta new file mode 100644 index 0000000..6912d9e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_fan_large_aperture_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 67870cc12f53e1849af74de10902ed1f +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_floorBot_fx.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_floorBot_fx.mat new file mode 100644 index 0000000..ee5fc7b Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_floorBot_fx.mat differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_floorBot_fx.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_floorBot_fx.mat.meta new file mode 100644 index 0000000..d9e3671 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_floorBot_fx.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: cad8836a0271fc64ba3cee390f1690e0 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_floorBot_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_floorBot_mat.mat new file mode 100644 index 0000000..e13c2f1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_floorBot_mat.mat @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_floorBot_mat + m_Shader: {fileID: 23, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: aadb87c7d77078543b7e1ac2e60a9e39, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 4724455be221c9b48899f07add0e4d70, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Cube + second: + m_Texture: {fileID: 8900000, guid: 0398a2ea793d8be4e99a112c951ee76b, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .219324306 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _ReflectColor + second: {r: .367132872, g: .361653268, b: .361653268, a: .501960814} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_floorBot_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_floorBot_mat.mat.meta new file mode 100644 index 0000000..a6775b1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_floorBot_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: b76d693bf145a414f9ea7ca858858911 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_hoverPad_fx.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_hoverPad_fx.mat new file mode 100644 index 0000000..49ed7a7 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_hoverPad_fx.mat differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_hoverPad_fx.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_hoverPad_fx.mat.meta new file mode 100644 index 0000000..b742fb0 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_hoverPad_fx.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 7b967b2196e490c47afdd813892454bf +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_hoverPad_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_hoverPad_mat.mat new file mode 100644 index 0000000..86f0bc1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_hoverPad_mat.mat @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_hoverPad_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: ae30ff48c889981458779824ff23213b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: f23e6a126f7b65f499ad2d9bcf247004, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Cube + second: + m_Texture: {fileID: 8900000, guid: 940f8e59bba51724aa3cd9282a0da668, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .0732483417 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _ReflectColor + second: {r: .097014904, g: .097014904, b: .097014904, a: .501960814} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_hoverPad_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_hoverPad_mat.mat.meta new file mode 100644 index 0000000..c7e1ced --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_hoverPad_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: ae4650ee2de42aa48b3aaab9406d1590 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_parachuteCrate_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_parachuteCrate_mat.mat new file mode 100644 index 0000000..01b33c6 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_parachuteCrate_mat.mat @@ -0,0 +1,34 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_parachuteCrate_mat + m_Shader: {fileID: 2, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 45e99fd8aa5ec124980e07ac4c103302, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 852a4e2a82385004a93f169c65e9903b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: {} + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_parachuteCrate_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_parachuteCrate_mat.mat.meta new file mode 100644 index 0000000..e60491c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_parachuteCrate_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 3e386f73caa7ff14ea5244b6d64c94f2 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_powerCube_fx.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_powerCube_fx.mat new file mode 100644 index 0000000..0e6b9e0 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_powerCube_fx.mat differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_powerCube_fx.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_powerCube_fx.mat.meta new file mode 100644 index 0000000..849efee --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_powerCube_fx.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 62731ab35455a5042b492e2a0f3ce0d4 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_powerCube_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_powerCube_mat.mat new file mode 100644 index 0000000..da45351 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_powerCube_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_powerCube_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: dd87913ae634012479e427241ea29c5f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: ceea5d50d650fb64fbf2235ec8db0097, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .18934226 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .805970132, g: .805970132, b: .805970132, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_powerCube_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_powerCube_mat.mat.meta new file mode 100644 index 0000000..13ed82e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_powerCube_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 5bbf6d6b22249714db6a0483ae425df3 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_retroTelevision_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_retroTelevision_mat.mat new file mode 100644 index 0000000..3d897b4 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_retroTelevision_mat.mat @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_retroTelevision_mat + m_Shader: {fileID: 23, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 882034664713772499e4d39ea6e7f6bf, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 65c92c3588734a948a867797af685ac0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Cube + second: + m_Texture: {fileID: 8900000, guid: 9c45003dc05b3f44eb34c04bec8173b0, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .078125 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .5, g: .5, b: .5, a: 1} + data: + first: + name: _ReflectColor + second: {r: .0820895433, g: .0820895433, b: .0820895433, a: .501960814} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_retroTelevision_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_retroTelevision_mat.mat.meta new file mode 100644 index 0000000..327497d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_retroTelevision_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: b727a44543cb7b14d849d02302af849b +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_robotArm_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_robotArm_mat.mat new file mode 100644 index 0000000..9c8718d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_robotArm_mat.mat @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_robotArm_mat + m_Shader: {fileID: 23, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 89a8157e5dfe7cf409a2124443e05ff5, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 244e7cacbaba3024ca26a4405fcd083b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Cube + second: + m_Texture: {fileID: 8900000, guid: 0398a2ea793d8be4e99a112c951ee76b, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .76299417 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _ReflectColor + second: {r: .111940324, g: .111940324, b: .111940324, a: .501960814} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_robotArm_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_robotArm_mat.mat.meta new file mode 100644 index 0000000..8f7e245 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_robotArm_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: a323229f8f751234d936510e08c05bef +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_samoflange_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_samoflange_mat.mat new file mode 100644 index 0000000..f5949e4 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_samoflange_mat.mat @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_samoflange_mat + m_Shader: {fileID: 23, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 6677f4d8c55320a43b8357cca0add58e, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: b169c077e6fe56c4d85caa3c30fa9cb4, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Cube + second: + m_Texture: {fileID: 8900000, guid: 0398a2ea793d8be4e99a112c951ee76b, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .216970563 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .962686539, g: .962686539, b: .962686539, a: 1} + data: + first: + name: _ReflectColor + second: {r: .234265745, g: .234265745, b: .234265745, a: .501960814} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_samoflange_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_samoflange_mat.mat.meta new file mode 100644 index 0000000..3c81d98 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_samoflange_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 90a6d0eda420a7245b40deb0ef7d2eb9 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_support_foot_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_support_foot_mat.mat new file mode 100644 index 0000000..cb421c2 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_support_foot_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_support_foot_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 6bca6c88db10efc4f919abea9c1055e8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 424c4da4a7e6ae04991227925a81fac6, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .078125 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .5, g: .5, b: .5, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_support_foot_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_support_foot_mat.mat.meta new file mode 100644 index 0000000..1508849 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_support_foot_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 849bccb971aeda048b32d7496eb289cc +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_turbine_fx.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_turbine_fx.mat new file mode 100644 index 0000000..7105b2b Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_turbine_fx.mat differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_turbine_fx.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_turbine_fx.mat.meta new file mode 100644 index 0000000..1852578 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_turbine_fx.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: bee9fd5dab7c0f14dac667013b2849d2 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_turbine_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_turbine_mat.mat new file mode 100644 index 0000000..326a438 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_turbine_mat.mat @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_turbine_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: c4c6d0cc3beda564390cae41120db02b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: e0dcd740f8802dc42974b17d6b9edd92, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Cube + second: + m_Texture: {fileID: 8900000, guid: 940f8e59bba51724aa3cd9282a0da668, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .18270582 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: 1, g: .97735101, b: .947761178, a: 1} + data: + first: + name: _ReflectColor + second: {r: .186567187, g: .186567187, b: .186567187, a: .501960814} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_turbine_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_turbine_mat.mat.meta new file mode 100644 index 0000000..ceb4e76 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_turbine_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 33cd51fb3ce55e74f824c4a2c1098f5e +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_vent_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_vent_mat.mat new file mode 100644 index 0000000..c60e8be --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_vent_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_vent_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 547d9195d7e0ce04a8e14169bd76ea90, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 5bc27fa8d8b4ad54f8f146ecf5d17069, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .078125 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .5, g: .5, b: .5, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_vent_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_vent_mat.mat.meta new file mode 100644 index 0000000..78f9282 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_vent_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 06e0f6fd48829cd418fdd2be3581f8b6 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_wallLight_fx.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_wallLight_fx.mat new file mode 100644 index 0000000..d0b30b7 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_wallLight_fx.mat differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_wallLight_fx.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_wallLight_fx.mat.meta new file mode 100644 index 0000000..65b0807 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_wallLight_fx.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: a30208591c93dd949aef9746d96e77c1 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_wallLight_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_wallLight_mat.mat new file mode 100644 index 0000000..8624484 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_wallLight_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_wallLight_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 38f308ce5a43e6a4480d67daf059e8fc, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 96924dfb872085e4a988982b0be62b19, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .285455465 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .910447776, g: .910447776, b: .910447776, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_wallLight_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_wallLight_mat.mat.meta new file mode 100644 index 0000000..6cf978a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_wallLight_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 9b7fab34a3f41da469c0f3228ed23b9c +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_weight_ton_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_weight_ton_mat.mat new file mode 100644 index 0000000..c6547bc --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_weight_ton_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: prop_weight_ton_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 4591e3c30bfcb9a4aa5f79b5f7d65fd6, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: f56d7cc7e2523934fac126e74f923490, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .118936889 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .813432813, g: .813432813, b: .813432813, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_weight_ton_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_weight_ton_mat.mat.meta new file mode 100644 index 0000000..258d729 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/prop_weight_ton_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 7a203c71876230e46aaf68cd36c17633 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_ceilingPanel_fx.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_ceilingPanel_fx.mat new file mode 100644 index 0000000..dce9d94 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_ceilingPanel_fx.mat differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_ceilingPanel_fx.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_ceilingPanel_fx.mat.meta new file mode 100644 index 0000000..fc6e27f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_ceilingPanel_fx.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 4022d5dbcbbd41643a56047e7e6e2b32 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_chevron_yellow_mat(1).mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_chevron_yellow_mat(1).mat new file mode 100644 index 0000000..883d04b Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_chevron_yellow_mat(1).mat differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_chevron_yellow_mat(1).mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_chevron_yellow_mat(1).mat.meta new file mode 100644 index 0000000..983c332 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_chevron_yellow_mat(1).mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fdf99cbf118461e43b9fdc6f11ef4239 +timeCreated: 1461325606 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_chevron_yellow_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_chevron_yellow_mat.mat new file mode 100644 index 0000000..d385c6f Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_chevron_yellow_mat.mat differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_chevron_yellow_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_chevron_yellow_mat.mat.meta new file mode 100644 index 0000000..4abcde0 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_chevron_yellow_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: d9ebd7148ad8de24c97722f102d66909 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_fabric_parachute_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_fabric_parachute_mat.mat new file mode 100644 index 0000000..77fe8ff --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_fabric_parachute_mat.mat @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_fabric_parachute_mat + m_Shader: {fileID: 3, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: f7310ea6ed218564eaf8cb30ac345562, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .036189463 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .074626863, g: .0634885281, b: .0634885281, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_fabric_parachute_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_fabric_parachute_mat.mat.meta new file mode 100644 index 0000000..00e8a03 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_fabric_parachute_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 25864caf28f7f1746935275342ca478d +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_concreteSlabs_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_concreteSlabs_mat.mat new file mode 100644 index 0000000..c2910ac --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_concreteSlabs_mat.mat @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_floor_concreteSlabs_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 7819172fcf274f44382302040a469c78, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 2b7730b04660ac542bf37bed8a6a1ee5, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Cube + second: + m_Texture: {fileID: 8900000, guid: 940f8e59bba51724aa3cd9282a0da668, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .0588251613 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .104477584, g: .104477584, b: .104477584, a: 1} + data: + first: + name: _ReflectColor + second: {r: .537313461, g: .537313461, b: .537313461, a: .501960814} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_concreteSlabs_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_concreteSlabs_mat.mat.meta new file mode 100644 index 0000000..d623f84 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_concreteSlabs_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 06f837710181db347aeb6c949e0af6e8 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_concreteSlabs_yellowPaint_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_concreteSlabs_yellowPaint_mat.mat new file mode 100644 index 0000000..1a073df --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_concreteSlabs_yellowPaint_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_floor_concreteSlabs_yellowPaint_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 7819172fcf274f44382302040a469c78, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 2b7730b04660ac542bf37bed8a6a1ee5, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .0568888523 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: .902097881, b: 0, a: 1} + data: + first: + name: _SpecColor + second: {r: .24626863, g: .226052552, b: .226052552, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_concreteSlabs_yellowPaint_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_concreteSlabs_yellowPaint_mat.mat.meta new file mode 100644 index 0000000..377ca7f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_concreteSlabs_yellowPaint_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 40862847bca16ef448fa8c922acbf3c3 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_concreteSmooth_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_concreteSmooth_mat.mat new file mode 100644 index 0000000..5297fb3 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_concreteSmooth_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_floor_concreteSmooth_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 2a85d3adba2f20942acf6bd8b3969584, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: bfa791c7e24bd4d48b674f8be27b88da, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .100315511 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .0671641827, g: .0631543845, b: .0631543845, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_concreteSmooth_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_concreteSmooth_mat.mat.meta new file mode 100644 index 0000000..c1393c9 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_concreteSmooth_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 7cef7ce08a130324faaae66ce574063f +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_rubber_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_rubber_mat.mat new file mode 100644 index 0000000..348b834 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_rubber_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_floor_rubber_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: beba57604bd0f7c4c86b1a2020b6f669, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 54b5c1b2ef782884e841595300922f46, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .100315556 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_rubber_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_rubber_mat.mat.meta new file mode 100644 index 0000000..a641cf0 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_floor_rubber_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 76d20bcbcb197d2409b1d4710ed3cd26 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_glass_transparent_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_glass_transparent_mat.mat new file mode 100644 index 0000000..fb7fa20 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_glass_transparent_mat.mat differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_glass_transparent_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_glass_transparent_mat.mat.meta new file mode 100644 index 0000000..d5767da --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_glass_transparent_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 50a3faaf9c862fc49832396f69a7c02b +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_grate_tech_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_grate_tech_mat.mat new file mode 100644 index 0000000..ee771bb --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_grate_tech_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_grate_tech_mat + m_Shader: {fileID: 33, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: f6ea480f5cd5a694084d4db503733830, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 9a8f12fee98936349858716a27ce464e, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .39227891 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .5, g: .5, b: .5, a: 0} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_grate_tech_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_grate_tech_mat.mat.meta new file mode 100644 index 0000000..e06b5db --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_grate_tech_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: faf615636ef882547ba1459e5eddb3ff +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_gutter_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_gutter_mat.mat new file mode 100644 index 0000000..4afd2ec --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_gutter_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_gutter_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 059330c175075e04dba17cb9a2ccecdb, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: aa356b2627cf3364d9114cab1853fe16, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .078125 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .5, g: .5, b: .5, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_gutter_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_gutter_mat.mat.meta new file mode 100644 index 0000000..226cff1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_gutter_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: ca0201651b082f34f9732197ecc6b480 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_handrail_yellow_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_handrail_yellow_mat.mat new file mode 100644 index 0000000..6a9845e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_handrail_yellow_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_handrail_yellow_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: f24fb563d538066489138e2d29c515a3, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 853ae482c7cfd70498d8331224c1fac1, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .0726248622 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_handrail_yellow_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_handrail_yellow_mat.mat.meta new file mode 100644 index 0000000..a68d8a6 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_handrail_yellow_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 764bddd3049ca6443852ea446b3e015b +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_metal_greyDark02_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_metal_greyDark02_mat.mat new file mode 100644 index 0000000..d99ffd2 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_metal_greyDark02_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_metal_greyDark02_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: c6f5a160ff47e4b46b727e3076529f99, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 213a8be835c267849a37dc8f51dbbab9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .504473388 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .430051237, g: .466319382, b: .49253732, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_metal_greyDark02_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_metal_greyDark02_mat.mat.meta new file mode 100644 index 0000000..9f3e673 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_metal_greyDark02_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 459d3d86a4fe8344eaf13fa8a85eb2e8 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_metal_lightDirty_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_metal_lightDirty_mat.mat new file mode 100644 index 0000000..86e0662 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_metal_lightDirty_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_metal_lightDirty_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 0eb71c160050e4c4383e281c11aa37ad, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 213a8be835c267849a37dc8f51dbbab9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .526611924 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .33916083, g: .33916083, b: .33916083, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_metal_lightDirty_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_metal_lightDirty_mat.mat.meta new file mode 100644 index 0000000..a5f6698 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_metal_lightDirty_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 2dc4286e6054b844c85a28527552a6fe +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_paint_orange_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_paint_orange_mat.mat new file mode 100644 index 0000000..b74c4e6 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_paint_orange_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_paint_orange_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: b524f9db1ef65e746a5cca27a4b74ec7, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 12bc7b9834ecf6742957be57c93019e9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .321317911 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .850746274, g: .850746274, b: .850746274, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_paint_orange_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_paint_orange_mat.mat.meta new file mode 100644 index 0000000..edaffbc --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_paint_orange_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 3a076212e33671e45b37cb8acb0cf967 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_blue_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_blue_mat.mat new file mode 100644 index 0000000..547ff28 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_blue_mat.mat @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_pipe_blue_mat + m_Shader: {fileID: 3, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 7895f2f4ae3c3a14eae5aa952c91b074, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .078125 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .5, g: .5, b: .5, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_blue_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_blue_mat.mat.meta new file mode 100644 index 0000000..4968110 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_blue_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 1d0dec0542968cf4ca08c9de1a21c9fb +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_grey_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_grey_mat.mat new file mode 100644 index 0000000..b7c7d68 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_grey_mat.mat @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_pipe_grey_mat + m_Shader: {fileID: 3, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: c6f5a160ff47e4b46b727e3076529f99, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .427337646 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .863636315, g: .863636315, b: .863636315, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_grey_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_grey_mat.mat.meta new file mode 100644 index 0000000..79cb2b8 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_grey_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 56af1fd3aa350bf4a892638ce3fa968a +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_pink_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_pink_mat.mat new file mode 100644 index 0000000..fd4b246 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_pink_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_pipe_pink_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 480e680a233cf084695c0c210ff6853c, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 213a8be835c267849a37dc8f51dbbab9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .386749119 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .5, g: .5, b: .5, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_pink_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_pink_mat.mat.meta new file mode 100644 index 0000000..805847c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_pink_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 16e2f7a1edb55664ea512199af3e0ca1 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_red_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_red_mat.mat new file mode 100644 index 0000000..c44b674 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_red_mat.mat @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_pipe_red_mat + m_Shader: {fileID: 3, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 4de0e403bca315e49a4c83f12548e6b4, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .078125 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .5, g: .5, b: .5, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_red_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_red_mat.mat.meta new file mode 100644 index 0000000..0160d04 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_pipe_red_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 7d31e38ed025b814bb0cecf3232c1345 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_rubber_black_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_rubber_black_mat.mat new file mode 100644 index 0000000..e2e29c1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_rubber_black_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_rubber_black_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 91dda1cd9a9dda44db5c00781e19e185, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 987560774a0ae9543bd328e2b799e1b2, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .649264872 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .402097881, g: .402097881, b: .402097881, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_rubber_black_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_rubber_black_mat.mat.meta new file mode 100644 index 0000000..352fd0e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_rubber_black_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 4577929779298134d976464d5043cec9 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_strip_metal_dark_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_strip_metal_dark_mat.mat new file mode 100644 index 0000000..829705c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_strip_metal_dark_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_strip_metal_dark_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: ff7f6beb534955949bccf51e989c8555, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 97bd86e357a026340a923de930ddf5e0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .078125 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .5, g: .5, b: .5, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_strip_metal_dark_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_strip_metal_dark_mat.mat.meta new file mode 100644 index 0000000..ddd13a6 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_strip_metal_dark_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 72b117ef5da9f264590bcad516c8f21a +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_supportUpright_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_supportUpright_mat.mat new file mode 100644 index 0000000..7728a49 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_supportUpright_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_supportUpright_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 5748c3ce3369e1f479200b0c677fb6d8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: b1e3677265ef71745b9e9f4a862eada4, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .206115499 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_supportUpright_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_supportUpright_mat.mat.meta new file mode 100644 index 0000000..9322af6 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_supportUpright_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: f76041cb4d53123489b4a8cde393fbe3 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_tube_ribbed_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_tube_ribbed_mat.mat new file mode 100644 index 0000000..ebeccf1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_tube_ribbed_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_tube_ribbed_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 91dda1cd9a9dda44db5c00781e19e185, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 987560774a0ae9543bd328e2b799e1b2, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .46243006 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .5, g: .5, b: .5, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_tube_ribbed_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_tube_ribbed_mat.mat.meta new file mode 100644 index 0000000..c078152 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_tube_ribbed_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: e98a751f43ee8894dac8dad6c7228580 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_wallPanel01_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_wallPanel01_mat.mat new file mode 100644 index 0000000..4f846f8 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_wallPanel01_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_wallPanel01_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 11b6b7f6c008fe54eb962f628800921a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 60f2a31230446e747bf69d8b6fd875b7, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .0737861693 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .619403005, g: .619403005, b: .619403005, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_wallPanel01_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_wallPanel01_mat.mat.meta new file mode 100644 index 0000000..a25c310 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_wallPanel01_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: f7d30ded716750e47a2d052f1bb2fde8 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_wallPanel02_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_wallPanel02_mat.mat new file mode 100644 index 0000000..b6e103c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_wallPanel02_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_wallPanel02_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: e756e0d44f412524e8f45166736b0b7b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 2f161a8975c704d43b0b7ca51e9dd337, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .240052491 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .895522356, g: .895522356, b: .895522356, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_wallPanel02_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_wallPanel02_mat.mat.meta new file mode 100644 index 0000000..ef1d4b6 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_wallPanel02_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: cae61fa08a7f0e14cb73cdc079256a26 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_wallPanel03_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_wallPanel03_mat.mat new file mode 100644 index 0000000..04f24a6 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_wallPanel03_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: tile_wallPanel03_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: f249f695884b6db4d83ea2de60ad3c06, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 2cd5da909ac5fa84f815421b3a4da673, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .386749119 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .902985096, g: .902985096, b: .902985096, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_wallPanel03_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_wallPanel03_mat.mat.meta new file mode 100644 index 0000000..e228ddd --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/tile_wallPanel03_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 85430936d4e8fa340817041ae6452925 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcFlyer_dome_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcFlyer_dome_mat.mat new file mode 100644 index 0000000..1580b48 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcFlyer_dome_mat.mat @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: vehicle_rcFlyer_dome_mat + m_Shader: {fileID: 22, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: d56722fd7cc841042bfafe48130cf5d8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Cube + second: + m_Texture: {fileID: 8900000, guid: 9c45003dc05b3f44eb34c04bec8173b0, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .0358266644 + m_Colors: + data: + first: + name: _Color + second: {r: .0776536837, g: .0822414383, b: .108391605, a: .694117665} + data: + first: + name: _SpecColor + second: {r: .712110698, g: .960784316, b: .771681547, a: 1} + data: + first: + name: _ReflectColor + second: {r: .581314862, g: .644789934, b: .988235295, a: .635294139} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcFlyer_dome_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcFlyer_dome_mat.mat.meta new file mode 100644 index 0000000..c994129 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcFlyer_dome_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 9fa857c45452c13479bff2de99dffbe8 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcFlyer_metal_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcFlyer_metal_mat.mat new file mode 100644 index 0000000..288bc9f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcFlyer_metal_mat.mat @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: vehicle_rcFlyer_metal_mat + m_Shader: {fileID: 23, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: d56722fd7cc841042bfafe48130cf5d8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 0ad7c77e77679ab46bf11303c59b229a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Cube + second: + m_Texture: {fileID: 8900000, guid: 0398a2ea793d8be4e99a112c951ee76b, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .413990766 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .961538434, g: .961538434, b: .961538434, a: 1} + data: + first: + name: _ReflectColor + second: {r: .213286713, g: .213286713, b: .213286713, a: .501960814} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcFlyer_metal_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcFlyer_metal_mat.mat.meta new file mode 100644 index 0000000..8ced5d7 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcFlyer_metal_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 879f5ab2d2a90614db855e052b3e2f20 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_body_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_body_mat.mat new file mode 100644 index 0000000..e8d68ed --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_body_mat.mat @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: vehicle_rcLand_clean_body_mat + m_Shader: {fileID: 23, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 824732871104541408217557a73d9490, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 01463b33e7d716843bbe104900713009, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Cube + second: + m_Texture: {fileID: 8900000, guid: 9c45003dc05b3f44eb34c04bec8173b0, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .100571997 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .5, g: .5, b: .5, a: 1} + data: + first: + name: _ReflectColor + second: {r: .0597015023, g: .0597015023, b: .0597015023, a: .501960814} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_body_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_body_mat.mat.meta new file mode 100644 index 0000000..27e3071 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_body_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: d1bdeb3a26098ab42b6033c68ee9fe79 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_dome_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_dome_mat.mat new file mode 100644 index 0000000..7a9a7dd --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_dome_mat.mat @@ -0,0 +1,46 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: vehicle_rcLand_clean_dome_mat + m_Shader: {fileID: 22, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: aa9f77966f8fa18408bffaacf086d1fd, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Cube + second: + m_Texture: {fileID: 8900000, guid: 9c45003dc05b3f44eb34c04bec8173b0, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .280327588 + m_Colors: + data: + first: + name: _Color + second: {r: .0865612105, g: .0803073943, b: .104477584, a: 1} + data: + first: + name: _SpecColor + second: {r: .772883832, g: 1, b: .76119405, a: 1} + data: + first: + name: _ReflectColor + second: {r: .179104507, g: .179104507, b: .179104507, a: .501960814} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_dome_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_dome_mat.mat.meta new file mode 100644 index 0000000..6239ee2 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_dome_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 27342824cec2ee64ab208b2396c0d82c +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_metal_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_metal_mat.mat new file mode 100644 index 0000000..c0fe305 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_metal_mat.mat @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: vehicle_rcLand_clean_metal_mat + m_Shader: {fileID: 23, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 824732871104541408217557a73d9490, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 01463b33e7d716843bbe104900713009, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Cube + second: + m_Texture: {fileID: 8900000, guid: 9c45003dc05b3f44eb34c04bec8173b0, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .100571997 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .5, g: .5, b: .5, a: 1} + data: + first: + name: _ReflectColor + second: {r: .0597015023, g: .0597015023, b: .0597015023, a: .501960814} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_metal_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_metal_mat.mat.meta new file mode 100644 index 0000000..3b1ca9b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_metal_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: c8feac4b94aa6d741a4cb6b18a14dcd4 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_tyres_mat.mat b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_tyres_mat.mat new file mode 100644 index 0000000..2e7e79d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_tyres_mat.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: vehicle_rcLand_clean_tyres_mat + m_Shader: {fileID: 4, guid: 0000000000000000e000000000000000, type: 0} + m_ShaderKeywords: [] + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 824732871104541408217557a73d9490, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 01463b33e7d716843bbe104900713009, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .462430209 + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .649253726, g: .63471818, b: .63471818, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_tyres_mat.mat.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_tyres_mat.mat.meta new file mode 100644 index 0000000..f0f169d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/Materials/vehicle_rcLand_clean_tyres_mat.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 8a2cdad74228711478ebd2af285b3d1b +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/char_astrella.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/char_astrella.fbx new file mode 100644 index 0000000..322fdd2 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/char_astrella.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/char_astrella.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/char_astrella.fbx.meta new file mode 100644 index 0000000..f772a14 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/char_astrella.fbx.meta @@ -0,0 +1,1145 @@ +fileFormatVersion: 2 +guid: 70f78be1e034af54790b7297093153f7 +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 100002: char_astrella_body_001 + 100004: char_astrella_buckles_001 + 100006: char_astrella_eyelashes_001 + 100008: char_astrella_eyes_001 + 100010: char_astrella_glass_001 + 100012: char_astrella_helmet_001 + 100014: char_astrella_shoulders_001 + 100016: Astrella1_Ctrl_ChestEndEffector + 100018: Astrella1_Ctrl_ChestOriginEffector + 100020: Astrella1_Ctrl_Head + 100022: Astrella1_Ctrl_HeadEffector + 100024: Astrella1_Ctrl_Hips + 100026: Astrella1_Ctrl_HipsEffector + 100028: Astrella1_Ctrl_LeftAnkleEffector + 100030: Astrella1_Ctrl_LeftArm + 100032: Astrella1_Ctrl_LeftElbowEffector + 100034: Astrella1_Ctrl_LeftFoot + 100036: Astrella1_Ctrl_LeftFootExtraFinger1 + 100038: Astrella1_Ctrl_LeftFootExtraFingerEffector + 100040: Astrella1_Ctrl_LeftForeArm + 100042: Astrella1_Ctrl_LeftHand + 100044: Astrella1_Ctrl_LeftHandIndex1 + 100046: Astrella1_Ctrl_LeftHandIndex2 + 100048: Astrella1_Ctrl_LeftHandIndex3 + 100050: Astrella1_Ctrl_LeftHandIndexEffector + 100052: Astrella1_Ctrl_LeftHandMiddle1 + 100054: Astrella1_Ctrl_LeftHandMiddle2 + 100056: Astrella1_Ctrl_LeftHandMiddle3 + 100058: Astrella1_Ctrl_LeftHandMiddleEffector + 100060: Astrella1_Ctrl_LeftHandPinky1 + 100062: Astrella1_Ctrl_LeftHandPinky2 + 100064: Astrella1_Ctrl_LeftHandPinky3 + 100066: Astrella1_Ctrl_LeftHandPinkyEffector + 100068: Astrella1_Ctrl_LeftHandRing1 + 100070: Astrella1_Ctrl_LeftHandRing2 + 100072: Astrella1_Ctrl_LeftHandRing3 + 100074: Astrella1_Ctrl_LeftHandRingEffector + 100076: Astrella1_Ctrl_LeftHandThumb1 + 100078: Astrella1_Ctrl_LeftHandThumb2 + 100080: Astrella1_Ctrl_LeftHandThumb3 + 100082: Astrella1_Ctrl_LeftHandThumbEffector + 100084: Astrella1_Ctrl_LeftHipEffector + 100086: Astrella1_Ctrl_LeftKneeEffector + 100088: Astrella1_Ctrl_LeftLeg + 100090: Astrella1_Ctrl_LeftShoulder + 100092: Astrella1_Ctrl_LeftShoulderEffector + 100094: Astrella1_Ctrl_LeftUpLeg + 100096: Astrella1_Ctrl_LeftWristEffector + 100098: Astrella1_Ctrl_Neck + 100100: Astrella1_Ctrl_RightAnkleEffector + 100102: Astrella1_Ctrl_RightArm + 100104: Astrella1_Ctrl_RightElbowEffector + 100106: Astrella1_Ctrl_RightFoot + 100108: Astrella1_Ctrl_RightFootExtraFinger1 + 100110: Astrella1_Ctrl_RightFootExtraFingerEffector + 100112: Astrella1_Ctrl_RightForeArm + 100114: Astrella1_Ctrl_RightHand + 100116: Astrella1_Ctrl_RightHandIndex1 + 100118: Astrella1_Ctrl_RightHandIndex2 + 100120: Astrella1_Ctrl_RightHandIndex3 + 100122: Astrella1_Ctrl_RightHandIndexEffector + 100124: Astrella1_Ctrl_RightHandMiddle1 + 100126: Astrella1_Ctrl_RightHandMiddle2 + 100128: Astrella1_Ctrl_RightHandMiddle3 + 100130: Astrella1_Ctrl_RightHandMiddleEffector + 100132: Astrella1_Ctrl_RightHandPinky1 + 100134: Astrella1_Ctrl_RightHandPinky2 + 100136: Astrella1_Ctrl_RightHandPinky3 + 100138: Astrella1_Ctrl_RightHandPinkyEffector + 100140: Astrella1_Ctrl_RightHandRing1 + 100142: Astrella1_Ctrl_RightHandRing2 + 100144: Astrella1_Ctrl_RightHandRing3 + 100146: Astrella1_Ctrl_RightHandRingEffector + 100148: Astrella1_Ctrl_RightHandThumb1 + 100150: Astrella1_Ctrl_RightHandThumb2 + 100152: Astrella1_Ctrl_RightHandThumb3 + 100154: Astrella1_Ctrl_RightHandThumbEffector + 100156: Astrella1_Ctrl_RightHipEffector + 100158: Astrella1_Ctrl_RightKneeEffector + 100160: Astrella1_Ctrl_RightLeg + 100162: Astrella1_Ctrl_RightShoulder + 100164: Astrella1_Ctrl_RightShoulderEffector + 100166: Astrella1_Ctrl_RightUpLeg + 100168: Astrella1_Ctrl_RightWristEffector + 100170: Astrella1_Ctrl_Spine + 100172: Astrella1_Ctrl_Spine1 + 100174: Astrella1_Ctrl_Spine2 + 100176: Astrella3 + 100178: AstrellaHelmet + 100180: char_astrella + 100182: char_astrella_control_Reference + 100184: char_astrella_Head + 100186: char_astrella_Hips1 + 100188: char_astrella_LeftArm + 100190: char_astrella_LeftFoot + 100192: char_astrella_LeftForeArm + 100194: char_astrella_LeftHand + 100196: char_astrella_LeftHandIndex1 + 100198: char_astrella_LeftHandIndex2 + 100200: char_astrella_LeftHandIndex3 + 100202: char_astrella_LeftHandIndex4 + 100204: char_astrella_LeftHandMiddle1 + 100206: char_astrella_LeftHandMiddle2 + 100208: char_astrella_LeftHandMiddle3 + 100210: char_astrella_LeftHandMiddle4 + 100212: char_astrella_LeftHandPinky1 + 100214: char_astrella_LeftHandPinky2 + 100216: char_astrella_LeftHandPinky3 + 100218: char_astrella_LeftHandPinky4 + 100220: char_astrella_LeftHandRing1 + 100222: char_astrella_LeftHandRing2 + 100224: char_astrella_LeftHandRing3 + 100226: char_astrella_LeftHandRing4 + 100228: char_astrella_LeftHandThumb1 + 100230: char_astrella_LeftHandThumb2 + 100232: char_astrella_LeftHandThumb3 + 100234: char_astrella_LeftHandThumb4 + 100236: char_astrella_LeftLeg + 100238: char_astrella_LeftShoulder + 100240: char_astrella_LeftToeBase + 100242: char_astrella_LeftUpLeg + 100244: char_astrella_Neck + 100246: char_astrella_Reference + 100248: char_astrella_RightArm + 100250: char_astrella_RightFoot + 100252: char_astrella_RightForeArm + 100254: char_astrella_RightHand + 100256: char_astrella_RightHandIndex1 + 100258: char_astrella_RightHandIndex2 + 100260: char_astrella_RightHandIndex3 + 100262: char_astrella_RightHandIndex4 + 100264: char_astrella_RightHandMiddle1 + 100266: char_astrella_RightHandMiddle2 + 100268: char_astrella_RightHandMiddle3 + 100270: char_astrella_RightHandMiddle4 + 100272: char_astrella_RightHandPinky1 + 100274: char_astrella_RightHandPinky2 + 100276: char_astrella_RightHandPinky3 + 100278: char_astrella_RightHandPinky4 + 100280: char_astrella_RightHandRing1 + 100282: char_astrella_RightHandRing2 + 100284: char_astrella_RightHandRing3 + 100286: char_astrella_RightHandRing4 + 100288: char_astrella_RightHandThumb1 + 100290: char_astrella_RightHandThumb2 + 100292: char_astrella_RightHandThumb3 + 100294: char_astrella_RightHandThumb4 + 100296: char_astrella_RightLeg + 100298: char_astrella_RightShoulder + 100300: char_astrella_RightToeBase + 100302: char_astrella_RightUpLeg + 100304: char_astrella_Spine + 100306: char_astrella_Spine1 + 100308: char_astrella_Spine2 + 100310: char_astrella_body + 100312: char_astrella_helmet + 100314: char_astrella_reference + 100316: char_astrella_skeleton + 400000: //RootNode + 400002: char_astrella_body_001 + 400004: char_astrella_buckles_001 + 400006: char_astrella_eyelashes_001 + 400008: char_astrella_eyes_001 + 400010: char_astrella_glass_001 + 400012: char_astrella_helmet_001 + 400014: char_astrella_shoulders_001 + 400016: Astrella1_Ctrl_ChestEndEffector + 400018: Astrella1_Ctrl_ChestOriginEffector + 400020: Astrella1_Ctrl_Head + 400022: Astrella1_Ctrl_HeadEffector + 400024: Astrella1_Ctrl_Hips + 400026: Astrella1_Ctrl_HipsEffector + 400028: Astrella1_Ctrl_LeftAnkleEffector + 400030: Astrella1_Ctrl_LeftArm + 400032: Astrella1_Ctrl_LeftElbowEffector + 400034: Astrella1_Ctrl_LeftFoot + 400036: Astrella1_Ctrl_LeftFootExtraFinger1 + 400038: Astrella1_Ctrl_LeftFootExtraFingerEffector + 400040: Astrella1_Ctrl_LeftForeArm + 400042: Astrella1_Ctrl_LeftHand + 400044: Astrella1_Ctrl_LeftHandIndex1 + 400046: Astrella1_Ctrl_LeftHandIndex2 + 400048: Astrella1_Ctrl_LeftHandIndex3 + 400050: Astrella1_Ctrl_LeftHandIndexEffector + 400052: Astrella1_Ctrl_LeftHandMiddle1 + 400054: Astrella1_Ctrl_LeftHandMiddle2 + 400056: Astrella1_Ctrl_LeftHandMiddle3 + 400058: Astrella1_Ctrl_LeftHandMiddleEffector + 400060: Astrella1_Ctrl_LeftHandPinky1 + 400062: Astrella1_Ctrl_LeftHandPinky2 + 400064: Astrella1_Ctrl_LeftHandPinky3 + 400066: Astrella1_Ctrl_LeftHandPinkyEffector + 400068: Astrella1_Ctrl_LeftHandRing1 + 400070: Astrella1_Ctrl_LeftHandRing2 + 400072: Astrella1_Ctrl_LeftHandRing3 + 400074: Astrella1_Ctrl_LeftHandRingEffector + 400076: Astrella1_Ctrl_LeftHandThumb1 + 400078: Astrella1_Ctrl_LeftHandThumb2 + 400080: Astrella1_Ctrl_LeftHandThumb3 + 400082: Astrella1_Ctrl_LeftHandThumbEffector + 400084: Astrella1_Ctrl_LeftHipEffector + 400086: Astrella1_Ctrl_LeftKneeEffector + 400088: Astrella1_Ctrl_LeftLeg + 400090: Astrella1_Ctrl_LeftShoulder + 400092: Astrella1_Ctrl_LeftShoulderEffector + 400094: Astrella1_Ctrl_LeftUpLeg + 400096: Astrella1_Ctrl_LeftWristEffector + 400098: Astrella1_Ctrl_Neck + 400100: Astrella1_Ctrl_RightAnkleEffector + 400102: Astrella1_Ctrl_RightArm + 400104: Astrella1_Ctrl_RightElbowEffector + 400106: Astrella1_Ctrl_RightFoot + 400108: Astrella1_Ctrl_RightFootExtraFinger1 + 400110: Astrella1_Ctrl_RightFootExtraFingerEffector + 400112: Astrella1_Ctrl_RightForeArm + 400114: Astrella1_Ctrl_RightHand + 400116: Astrella1_Ctrl_RightHandIndex1 + 400118: Astrella1_Ctrl_RightHandIndex2 + 400120: Astrella1_Ctrl_RightHandIndex3 + 400122: Astrella1_Ctrl_RightHandIndexEffector + 400124: Astrella1_Ctrl_RightHandMiddle1 + 400126: Astrella1_Ctrl_RightHandMiddle2 + 400128: Astrella1_Ctrl_RightHandMiddle3 + 400130: Astrella1_Ctrl_RightHandMiddleEffector + 400132: Astrella1_Ctrl_RightHandPinky1 + 400134: Astrella1_Ctrl_RightHandPinky2 + 400136: Astrella1_Ctrl_RightHandPinky3 + 400138: Astrella1_Ctrl_RightHandPinkyEffector + 400140: Astrella1_Ctrl_RightHandRing1 + 400142: Astrella1_Ctrl_RightHandRing2 + 400144: Astrella1_Ctrl_RightHandRing3 + 400146: Astrella1_Ctrl_RightHandRingEffector + 400148: Astrella1_Ctrl_RightHandThumb1 + 400150: Astrella1_Ctrl_RightHandThumb2 + 400152: Astrella1_Ctrl_RightHandThumb3 + 400154: Astrella1_Ctrl_RightHandThumbEffector + 400156: Astrella1_Ctrl_RightHipEffector + 400158: Astrella1_Ctrl_RightKneeEffector + 400160: Astrella1_Ctrl_RightLeg + 400162: Astrella1_Ctrl_RightShoulder + 400164: Astrella1_Ctrl_RightShoulderEffector + 400166: Astrella1_Ctrl_RightUpLeg + 400168: Astrella1_Ctrl_RightWristEffector + 400170: Astrella1_Ctrl_Spine + 400172: Astrella1_Ctrl_Spine1 + 400174: Astrella1_Ctrl_Spine2 + 400176: Astrella3 + 400178: AstrellaHelmet + 400180: char_astrella + 400182: char_astrella_control_Reference + 400184: char_astrella_Head + 400186: char_astrella_Hips1 + 400188: char_astrella_LeftArm + 400190: char_astrella_LeftFoot + 400192: char_astrella_LeftForeArm + 400194: char_astrella_LeftHand + 400196: char_astrella_LeftHandIndex1 + 400198: char_astrella_LeftHandIndex2 + 400200: char_astrella_LeftHandIndex3 + 400202: char_astrella_LeftHandIndex4 + 400204: char_astrella_LeftHandMiddle1 + 400206: char_astrella_LeftHandMiddle2 + 400208: char_astrella_LeftHandMiddle3 + 400210: char_astrella_LeftHandMiddle4 + 400212: char_astrella_LeftHandPinky1 + 400214: char_astrella_LeftHandPinky2 + 400216: char_astrella_LeftHandPinky3 + 400218: char_astrella_LeftHandPinky4 + 400220: char_astrella_LeftHandRing1 + 400222: char_astrella_LeftHandRing2 + 400224: char_astrella_LeftHandRing3 + 400226: char_astrella_LeftHandRing4 + 400228: char_astrella_LeftHandThumb1 + 400230: char_astrella_LeftHandThumb2 + 400232: char_astrella_LeftHandThumb3 + 400234: char_astrella_LeftHandThumb4 + 400236: char_astrella_LeftLeg + 400238: char_astrella_LeftShoulder + 400240: char_astrella_LeftToeBase + 400242: char_astrella_LeftUpLeg + 400244: char_astrella_Neck + 400246: char_astrella_Reference + 400248: char_astrella_RightArm + 400250: char_astrella_RightFoot + 400252: char_astrella_RightForeArm + 400254: char_astrella_RightHand + 400256: char_astrella_RightHandIndex1 + 400258: char_astrella_RightHandIndex2 + 400260: char_astrella_RightHandIndex3 + 400262: char_astrella_RightHandIndex4 + 400264: char_astrella_RightHandMiddle1 + 400266: char_astrella_RightHandMiddle2 + 400268: char_astrella_RightHandMiddle3 + 400270: char_astrella_RightHandMiddle4 + 400272: char_astrella_RightHandPinky1 + 400274: char_astrella_RightHandPinky2 + 400276: char_astrella_RightHandPinky3 + 400278: char_astrella_RightHandPinky4 + 400280: char_astrella_RightHandRing1 + 400282: char_astrella_RightHandRing2 + 400284: char_astrella_RightHandRing3 + 400286: char_astrella_RightHandRing4 + 400288: char_astrella_RightHandThumb1 + 400290: char_astrella_RightHandThumb2 + 400292: char_astrella_RightHandThumb3 + 400294: char_astrella_RightHandThumb4 + 400296: char_astrella_RightLeg + 400298: char_astrella_RightShoulder + 400300: char_astrella_RightToeBase + 400302: char_astrella_RightUpLeg + 400304: char_astrella_Spine + 400306: char_astrella_Spine1 + 400308: char_astrella_Spine2 + 400310: char_astrella_body + 400312: char_astrella_helmet + 400314: char_astrella_reference + 400316: char_astrella_skeleton + 2300000: char_astrella_body_001 + 2300002: char_astrella_buckles_001 + 2300004: char_astrella_eyelashes_001 + 2300006: char_astrella_eyes_001 + 2300008: char_astrella_glass_001 + 2300010: char_astrella_helmet_001 + 2300012: char_astrella_shoulders_001 + 3300000: char_astrella_body_001 + 3300002: char_astrella_buckles_001 + 3300004: char_astrella_eyelashes_001 + 3300006: char_astrella_eyes_001 + 3300008: char_astrella_glass_001 + 3300010: char_astrella_helmet_001 + 3300012: char_astrella_shoulders_001 + 4300000: char_astrella_buckles_001 + 4300002: char_astrella_shoulders_001 + 4300004: char_astrella_eyes_001 + 4300006: char_astrella_eyelashes_001 + 4300008: char_astrella_body_001 + 4300010: char_astrella_helmet_001 + 4300012: char_astrella_glass_001 + 4300014: AstrellaHelmet + 4300016: Astrella3 + 4300018: char_astrella_helmet + 4300020: char_astrella_body + 9500000: //RootNode + 13700000: Astrella3 + 13700002: AstrellaHelmet + 13700004: char_astrella_body + 13700006: char_astrella_helmet + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: + - boneName: char_astrella_Hips1 + humanName: Hips + limit: + min: {x: -40, y: -40, z: -40} + max: {x: 40, y: 40, z: 40} + value: {x: .0694054291, y: 0, z: .0347027145} + length: .0867568254 + modified: 1 + - boneName: char_astrella_LeftUpLeg + humanName: LeftUpperLeg + limit: + min: {x: -60.0000038, y: -60.0000038, z: -90} + max: {x: 60.0000038, y: 60.0000038, z: 50} + value: {x: .387757123, y: 0, z: .193878561} + length: .484696537 + modified: 1 + - boneName: char_astrella_RightUpLeg + humanName: RightUpperLeg + limit: + min: {x: -60.0000038, y: -60.0000038, z: -90} + max: {x: 60.0000038, y: 60.0000038, z: 50} + value: {x: .387757123, y: 0, z: .193878561} + length: .484696537 + modified: 1 + - boneName: char_astrella_LeftLeg + humanName: LeftLowerLeg + limit: + min: {x: -90, y: 0, z: -80} + max: {x: 90, y: 0, z: 80} + value: {x: .304373026, y: 0, z: .152186513} + length: .380466431 + modified: 1 + - boneName: char_astrella_RightLeg + humanName: RightLowerLeg + limit: + min: {x: -90, y: 0, z: -80} + max: {x: 90, y: 0, z: 80} + value: {x: .304373056, y: 0, z: .152186528} + length: .380466461 + modified: 1 + - boneName: char_astrella_LeftFoot + humanName: LeftFoot + limit: + min: {x: 0, y: -30.0000019, z: -50} + max: {x: 0, y: 30.0000019, z: 50} + value: {x: .131468669, y: 0, z: .0657343343} + length: .164335907 + modified: 1 + - boneName: char_astrella_RightFoot + humanName: RightFoot + limit: + min: {x: 0, y: -30.0000019, z: -50} + max: {x: 0, y: 30.0000019, z: 50} + value: {x: .131469592, y: 0, z: .0657347962} + length: .164337069 + modified: 1 + - boneName: char_astrella_Spine + humanName: Spine + limit: + min: {x: -40, y: -40, z: -40} + max: {x: 40, y: 40, z: 40} + value: {x: .142182991, y: 0, z: .0710914955} + length: .177728817 + modified: 1 + - boneName: char_astrella_Spine2 + humanName: Chest + limit: + min: {x: -40, y: -40, z: -40} + max: {x: 40, y: 40, z: 40} + value: {x: .235399619, y: 0, z: .117699809} + length: .294249594 + modified: 1 + - boneName: char_astrella_Neck + humanName: Neck + limit: + min: {x: -40, y: -40, z: -40} + max: {x: 40, y: 40, z: 40} + value: {x: .0650708675, y: 0, z: .0325354338} + length: .0813386217 + modified: 1 + - boneName: char_astrella_Head + humanName: Head + limit: + min: {x: -40, y: -40, z: -40} + max: {x: 40, y: 40, z: 40} + value: {x: .0650708675, y: 0, z: .0325354338} + length: .0813386217 + modified: 1 + - boneName: char_astrella_LeftShoulder + humanName: LeftShoulder + limit: + min: {x: 0, y: -15.000001, z: -15.000001} + max: {x: 0, y: 15.000001, z: 30.0000019} + value: {x: .0560550913, y: 0, z: .0280275457} + length: .0700688809 + modified: 1 + - boneName: char_astrella_RightShoulder + humanName: RightShoulder + limit: + min: {x: 0, y: -15.000001, z: -15.000001} + max: {x: 0, y: 15.000001, z: 30.0000019} + value: {x: .0560550913, y: 0, z: .0280275457} + length: .0700688809 + modified: 1 + - boneName: char_astrella_LeftArm + humanName: LeftUpperArm + limit: + min: {x: -90, y: -100, z: -60.0000038} + max: {x: 90, y: 100, z: 100} + value: {x: .21905154, y: 0, z: .10952577} + length: .273814499 + modified: 1 + - boneName: char_astrella_RightArm + humanName: RightUpperArm + limit: + min: {x: -90, y: -100, z: -60.0000038} + max: {x: 90, y: 100, z: 100} + value: {x: .219055623, y: 0, z: .109527811} + length: .273819596 + modified: 1 + - boneName: char_astrella_LeftForeArm + humanName: LeftLowerArm + limit: + min: {x: -90, y: 0, z: -80} + max: {x: 90, y: 0, z: 80} + value: {x: .217534468, y: 0, z: .108767234} + length: .271918148 + modified: 1 + - boneName: char_astrella_RightForeArm + humanName: RightLowerArm + limit: + min: {x: -90, y: 0, z: -80} + max: {x: 90, y: 0, z: 80} + value: {x: .217538923, y: 0, z: .108769462} + length: .271923721 + modified: 1 + - boneName: char_astrella_LeftHand + humanName: LeftHand + limit: + min: {x: 0, y: -40, z: -80} + max: {x: 0, y: 40, z: 80} + value: {x: .108767234, y: 0, z: .0543836169} + length: .135959074 + modified: 1 + - boneName: char_astrella_RightHand + humanName: RightHand + limit: + min: {x: 0, y: -40, z: -80} + max: {x: 0, y: 40, z: 80} + value: {x: .108769462, y: 0, z: .0543847308} + length: .13596186 + modified: 1 + - boneName: char_astrella_LeftToeBase + humanName: LeftToes + limit: + min: {x: 0, y: 0, z: -50} + max: {x: 0, y: 0, z: 50} + value: {x: .0699708164, y: 0, z: .0349854082} + length: .0874635577 + modified: 1 + - boneName: char_astrella_RightToeBase + humanName: RightToes + limit: + min: {x: 0, y: 0, z: -50} + max: {x: 0, y: 0, z: 50} + value: {x: .0699708089, y: 0, z: .0349854045} + length: .0874635428 + modified: 1 + - boneName: char_astrella_LeftHandThumb1 + humanName: Left Thumb Proximal + limit: + min: {x: 0, y: -25, z: -20} + max: {x: 0, y: 25, z: 20} + value: {x: .0279732421, y: 0, z: .0139866211} + length: .0349665619 + modified: 1 + - boneName: char_astrella_LeftHandThumb2 + humanName: Left Thumb Intermediate + limit: + min: {x: 0, y: 0, z: -40} + max: {x: 0, y: 0, z: 35} + value: {x: .0155964028, y: 0, z: .0077982014} + length: .0194955077 + modified: 1 + - boneName: char_astrella_LeftHandThumb3 + humanName: Left Thumb Distal + limit: + min: {x: 0, y: 0, z: -40} + max: {x: 0, y: 0, z: 35} + value: {x: .0116973007, y: 0, z: .00584865035} + length: .0146216303 + modified: 1 + - boneName: char_astrella_LeftHandIndex1 + humanName: Left Index Proximal + limit: + min: {x: 0, y: -20, z: -50} + max: {x: 0, y: 20, z: 50} + value: {x: .0248391684, y: 0, z: .0124195842} + length: .0310489684 + modified: 1 + - boneName: char_astrella_LeftHandIndex2 + humanName: Left Index Intermediate + limit: + min: {x: 0, y: 0, z: -45} + max: {x: 0, y: 0, z: 45} + value: {x: .0177345052, y: 0, z: .00886725262} + length: .0221681409 + modified: 1 + - boneName: char_astrella_LeftHandIndex3 + humanName: Left Index Distal + limit: + min: {x: 0, y: 0, z: -45} + max: {x: 0, y: 0, z: 45} + value: {x: .0133008799, y: 0, z: .00665043993} + length: .0166261047 + modified: 1 + - boneName: char_astrella_LeftHandMiddle1 + humanName: Left Middle Proximal + limit: + min: {x: 0, y: -7.50000048, z: -50} + max: {x: 0, y: 7.50000048, z: 50} + value: {x: .0315262489, y: 0, z: .0157631245} + length: .0394078307 + modified: 1 + - boneName: char_astrella_LeftHandMiddle2 + humanName: Left Middle Intermediate + limit: + min: {x: 0, y: 0, z: -45} + max: {x: 0, y: 0, z: 45} + value: {x: .019510312, y: 0, z: .009755156} + length: .0243878979 + modified: 1 + - boneName: char_astrella_LeftHandMiddle3 + humanName: Left Middle Distal + limit: + min: {x: 0, y: 0, z: -45} + max: {x: 0, y: 0, z: 45} + value: {x: .0146327354, y: 0, z: .0073163677} + length: .0182909239 + modified: 1 + - boneName: char_astrella_LeftHandRing1 + humanName: Left Ring Proximal + limit: + min: {x: 0, y: -7.50000048, z: -50} + max: {x: 0, y: 7.50000048, z: 50} + value: {x: .0270961747, y: 0, z: .0135480873} + length: .0338702276 + modified: 1 + - boneName: char_astrella_LeftHandRing2 + humanName: Left Ring Intermediate + limit: + min: {x: 0, y: 0, z: -45} + max: {x: 0, y: 0, z: 45} + value: {x: .0176565554, y: 0, z: .0088282777} + length: .022070704 + modified: 1 + - boneName: char_astrella_LeftHandRing3 + humanName: Left Ring Distal + limit: + min: {x: 0, y: 0, z: -45} + max: {x: 0, y: 0, z: 45} + value: {x: .0132424189, y: 0, z: .00662120944} + length: .0165530276 + modified: 1 + - boneName: char_astrella_LeftHandPinky1 + humanName: Left Little Proximal + limit: + min: {x: 0, y: -20, z: -50} + max: {x: 0, y: 20, z: 50} + value: {x: .0230125748, y: 0, z: .0115062874} + length: .0287657268 + modified: 1 + - boneName: char_astrella_LeftHandPinky2 + humanName: Left Little Intermediate + limit: + min: {x: 0, y: 0, z: -45} + max: {x: 0, y: 0, z: 45} + value: {x: .0133966561, y: 0, z: .00669832807} + length: .0167458244 + modified: 1 + - boneName: char_astrella_LeftHandPinky3 + humanName: Left Little Distal + limit: + min: {x: 0, y: 0, z: -45} + max: {x: 0, y: 0, z: 45} + value: {x: .0100474907, y: 0, z: .00502374535} + length: .0125593683 + modified: 1 + - boneName: char_astrella_RightHandThumb1 + humanName: Right Thumb Proximal + limit: + min: {x: 0, y: -25, z: -20} + max: {x: 0, y: 25, z: 20} + value: {x: .0279716607, y: 0, z: .0139858304} + length: .0349645838 + modified: 1 + - boneName: char_astrella_RightHandThumb2 + humanName: Right Thumb Intermediate + limit: + min: {x: 0, y: 0, z: -40} + max: {x: 0, y: 0, z: 35} + value: {x: .0155959185, y: 0, z: .00779795926} + length: .0194949023 + modified: 1 + - boneName: char_astrella_RightHandThumb3 + humanName: Right Thumb Distal + limit: + min: {x: 0, y: 0, z: -40} + max: {x: 0, y: 0, z: 35} + value: {x: .0116969375, y: 0, z: .00584846875} + length: .0146211768 + modified: 1 + - boneName: char_astrella_RightHandIndex1 + humanName: Right Index Proximal + limit: + min: {x: 0, y: -20, z: -50} + max: {x: 0, y: 20, z: 50} + value: {x: .0248392355, y: 0, z: .0124196177} + length: .0310490523 + modified: 1 + - boneName: char_astrella_RightHandIndex2 + humanName: Right Index Intermediate + limit: + min: {x: 0, y: 0, z: -45} + max: {x: 0, y: 0, z: 45} + value: {x: .0177341364, y: 0, z: .00886706822} + length: .0221676789 + modified: 1 + - boneName: char_astrella_RightHandIndex3 + humanName: Right Index Distal + limit: + min: {x: 0, y: 0, z: -45} + max: {x: 0, y: 0, z: 45} + value: {x: .0133006033, y: 0, z: .00665030163} + length: .0166257583 + modified: 1 + - boneName: char_astrella_RightHandMiddle1 + humanName: Right Middle Proximal + limit: + min: {x: 0, y: -7.50000048, z: -50} + max: {x: 0, y: 7.50000048, z: 50} + value: {x: .0315262824, y: 0, z: .0157631412} + length: .0394078717 + modified: 1 + - boneName: char_astrella_RightHandMiddle2 + humanName: Right Middle Intermediate + limit: + min: {x: 0, y: 0, z: -45} + max: {x: 0, y: 0, z: 45} + value: {x: .0195092633, y: 0, z: .00975463167} + length: .0243865885 + modified: 1 + - boneName: char_astrella_RightHandMiddle3 + humanName: Right Middle Distal + limit: + min: {x: 0, y: 0, z: -45} + max: {x: 0, y: 0, z: 45} + value: {x: .0146319503, y: 0, z: .00731597515} + length: .0182899423 + modified: 1 + - boneName: char_astrella_RightHandRing1 + humanName: Right Ring Proximal + limit: + min: {x: 0, y: -7.50000048, z: -50} + max: {x: 0, y: 7.50000048, z: 50} + value: {x: .0270968899, y: 0, z: .013548445} + length: .0338711217 + modified: 1 + - boneName: char_astrella_RightHandRing2 + humanName: Right Ring Intermediate + limit: + min: {x: 0, y: 0, z: -45} + max: {x: 0, y: 0, z: 45} + value: {x: .0176561587, y: 0, z: .00882807933} + length: .0220702067 + modified: 1 + - boneName: char_astrella_RightHandRing3 + humanName: Right Ring Distal + limit: + min: {x: 0, y: 0, z: -45} + max: {x: 0, y: 0, z: 45} + value: {x: .0132421209, y: 0, z: .00662106043} + length: .016552655 + modified: 1 + - boneName: char_astrella_RightHandPinky1 + humanName: Right Little Proximal + limit: + min: {x: 0, y: -20, z: -50} + max: {x: 0, y: 20, z: 50} + value: {x: .0230126586, y: 0, z: .0115063293} + length: .028765833 + modified: 1 + - boneName: char_astrella_RightHandPinky2 + humanName: Right Little Intermediate + limit: + min: {x: 0, y: 0, z: -45} + max: {x: 0, y: 0, z: 45} + value: {x: .013397173, y: 0, z: .00669858651} + length: .0167464707 + modified: 1 + - boneName: char_astrella_RightHandPinky3 + humanName: Right Little Distal + limit: + min: {x: 0, y: 0, z: -45} + max: {x: 0, y: 0, z: 45} + value: {x: .0100478791, y: 0, z: .00502393954} + length: .0125598535 + modified: 1 + skeleton: + - name: char_astrella + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: char_astrella_skeleton + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1.20001829, y: 1.20001829, z: 1.20001829} + transformModified: 1 + - name: char_astrella_Hips1 + position: {x: -1.21264042e-13, y: .952920735, z: .044094108} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_LeftUpLeg + position: {x: -.119477458, y: -.0977594256, z: 0} + rotation: {x: .0334934145, y: 7.87282374e-07, z: 4.04806251e-08, w: .999438882} + scale: {x: .999999762, y: .999999583, z: .999999583} + transformModified: 1 + - name: char_astrella_LeftLeg + position: {x: 3.38305512e-07, y: -.403907895, z: -7.35527237e-06} + rotation: {x: .0203120895, y: -8.05283605e-07, z: 1.63603691e-08, w: .999793649} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_LeftFoot + position: {x: -2.55733113e-07, y: -.317050844, z: -1.28225724e-06} + rotation: {x: -.0537885688, y: 0, z: -0, w: .998552322} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_LeftToeBase + position: {x: 1.42379886e-09, y: -.0974240974, z: .108432494} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_RightUpLeg + position: {x: .119479962, y: -.0977594256, z: 0} + rotation: {x: .033455994, y: -7.68488633e-07, z: -6.67713266e-07, w: .999440134} + scale: {x: .999999762, y: .999999583, z: .999999583} + transformModified: 1 + - name: char_astrella_RightLeg + position: {x: 7.32712664e-08, y: -.403907806, z: -3.29373893e-06} + rotation: {x: .0203970801, y: 2.48534917e-08, z: 1.21822916e-06, w: .99979192} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_RightFoot + position: {x: -2.03536956e-08, y: -.317050874, z: -1.47249614e-06} + rotation: {x: -.0538360737, y: 7.97866505e-07, z: -5.66478093e-07, w: .998549759} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_RightToeBase + position: {x: -1.80655492e-14, y: -.0974238738, z: .108432651} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_Spine + position: {x: -1.6155871e-29, y: .0722963288, z: 0} + rotation: {x: -.0436193831, y: 0, z: -0, w: .999048173} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_Spine1 + position: {x: -0, y: .0682457313, z: -5.38924327e-09} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_Spine2 + position: {x: -0, y: .0798594728, z: -1.37315412e-08} + rotation: {x: .0436193831, y: 0, z: -0, w: .999048173} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_LeftShoulder + position: {x: -.118009992, y: .144196063, z: -.0434472561} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_LeftArm + position: {x: -.0583899356, y: 0, z: -3.99345112e-07} + rotation: {x: .000112265494, y: -.000343300868, z: -.000212461047, w: .999999881} + scale: {x: .999999821, y: .999999881, z: .999999821} + transformModified: 1 + - name: char_astrella_LeftForeArm + position: {x: -.228175581, y: -5.03978208e-06, z: 8.17114778e-06} + rotation: {x: -.000112742149, y: .00036173829, z: .000212704981, w: .999999881} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_LeftHand + position: {x: -.226595417, y: -1.57525584e-08, z: -4.48266604e-07} + rotation: {x: 0, y: -1.84374476e-05, z: -0, w: .99999994} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_LeftHandIndex1 + position: {x: -.0793950483, y: .00467993738, z: .030820109} + rotation: {x: -.00200943626, y: .0653374046, z: .030682059, w: .997389376} + scale: {x: .999999881, y: .999999881, z: .99999994} + transformModified: 1 + - name: char_astrella_LeftHandIndex2 + position: {x: -.0258737989, y: 7.57178213e-08, z: 4.49460469e-09} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1.00000012, y: 1.00000012, z: 1.00000012} + transformModified: 1 + - name: char_astrella_LeftHandIndex3 + position: {x: -.0184732061, y: -3.83223622e-08, z: -8.40654568e-09} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1.00000012, y: 1.00000012, z: 1.00000012} + transformModified: 1 + - name: char_astrella_LeftHandIndex4 + position: {x: -.0176139604, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: char_astrella_LeftHandMiddle1 + position: {x: -.0788130611, y: .00621992676, z: .00955037586} + rotation: {x: .000292560027, y: .00190063135, z: .0181995817, w: .999832511} + scale: {x: .999999702, y: .999999762, z: .999999702} + transformModified: 1 + - name: char_astrella_LeftHandMiddle2 + position: {x: -.03283941, y: 1.06952015e-07, z: -4.2251096e-09} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: .999999702, y: .999999762, z: .999999702} + transformModified: 1 + - name: char_astrella_LeftHandMiddle3 + position: {x: -.0203229599, y: -4.21941593e-08, z: 3.59960811e-10} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: .999999702, y: .999999762, z: .999999702} + transformModified: 1 + - name: char_astrella_LeftHandMiddle4 + position: {x: -.0180392731, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: char_astrella_LeftHandPinky1 + position: {x: -.0706201121, y: -.00381000037, z: -.0287017077} + rotation: {x: .010442825, y: -.0071663605, z: -.00410181982, w: .999911368} + scale: {x: .999999762, y: .999999642, z: .999999702} + transformModified: 1 + - name: char_astrella_LeftHandPinky2 + position: {x: -.0239711367, y: -1.39146126e-08, z: -4.87315477e-09} + rotation: {x: 0, y: 0, z: 3.76386356e-06, w: .99999994} + scale: {x: .999999762, y: .999999821, z: .999999762} + transformModified: 1 + - name: char_astrella_LeftHandPinky3 + position: {x: -.0139546441, y: -1.19133619e-08, z: -2.12139604e-08} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: .999999762, y: .999999821, z: .999999762} + transformModified: 1 + - name: char_astrella_LeftHandPinky4 + position: {x: -.011425022, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: char_astrella_LeftHandRing1 + position: {x: -.077080071, y: .00307998969, z: -.0123659987} + rotation: {x: .00332513452, y: -.00204083673, z: .00998674054, w: .999942482} + scale: {x: .999999762, y: .999999702, z: .999999702} + transformModified: 1 + - name: char_astrella_LeftHandRing2 + position: {x: -.0282248016, y: -1.50906327e-08, z: 5.95913363e-09} + rotation: {x: 0, y: 0, z: 3.75147283e-06, w: .99999994} + scale: {x: .999999762, y: .999999821, z: .999999762} + transformModified: 1 + - name: char_astrella_LeftHandRing3 + position: {x: -.018392019, y: 6.88975845e-08, z: -1.37306175e-08} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: .999999762, y: .999999821, z: .999999762} + transformModified: 1 + - name: char_astrella_LeftHandRing4 + position: {x: -.0148565499, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: char_astrella_LeftHandThumb1 + position: {x: -.0203820039, y: -.00496006943, z: .0323438011} + rotation: {x: -.0817755312, y: .0674123615, z: -.0683690533, w: .992015064} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_LeftHandThumb2 + position: {x: -.0216320623, y: -.00833995361, z: .0176506843} + rotation: {x: 7.50652021e-07, y: .303059459, z: .143196523, w: .942151606} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_LeftHandThumb3 + position: {x: -.0162460413, y: 7.98764965e-09, z: -1.0080425e-12} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_LeftHandThumb4 + position: {x: -.0184129998, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: char_astrella_Neck + position: {x: -0, y: .244299829, z: -.0210433211} + rotation: {x: .0871551856, y: 0, z: -0, w: .99619472} + scale: {x: 1.00000012, y: 1.00000012, z: 1.00000012} + transformModified: 1 + - name: char_astrella_Head + position: {x: -0, y: .0677812025, z: 9.18284826e-09} + rotation: {x: -.0436188281, y: 0, z: -0, w: .999048233} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_RightShoulder + position: {x: .118009992, y: .144197077, z: -.0434472412} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_RightArm + position: {x: .0583899356, y: 3.81463974e-06, z: 3.39741376e-07} + rotation: {x: .000112913687, y: .000345841516, z: .000214964413, w: .999999881} + scale: {x: .999999821, y: .999999881, z: .999999821} + transformModified: 1 + - name: char_astrella_RightForeArm + position: {x: .228179812, y: -5.16697673e-06, z: 8.2902834e-06} + rotation: {x: -.000112600486, y: -.000363996893, z: -.000215182881, w: .999999881} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_RightHand + position: {x: .226600096, y: 9.99812499e-08, z: -4.80474455e-07} + rotation: {x: 0, y: 1.81552241e-05, z: -0, w: .99999994} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_RightHandIndex1 + position: {x: .0793950483, y: .00467273407, z: .0308201108} + rotation: {x: .00199638982, y: -.0654629096, z: -.0304168817, w: .997389257} + scale: {x: .999999702, y: .999999762, z: .999999642} + transformModified: 1 + - name: char_astrella_RightHandIndex2 + position: {x: .0258738846, y: -4.49787585e-08, z: -1.43902112e-09} + rotation: {x: 0, y: 0, z: -2.12918007e-06, w: .99999994} + scale: {x: .999999821, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_RightHandIndex3 + position: {x: .0184728447, y: -7.20565296e-08, z: 8.84545603e-10} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: .999999821, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_RightHandIndex4 + position: {x: .0176137518, y: -8.52651264e-16, z: -4.44089183e-17} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: char_astrella_RightHandMiddle1 + position: {x: .0788130611, y: .00621103728, z: .0095504066} + rotation: {x: .000292774785, y: -.00187840103, z: -.0182366855, w: .999831855} + scale: {x: .999999821, y: .99999994, z: .999999881} + transformModified: 1 + - name: char_astrella_RightHandMiddle2 + position: {x: .0328394771, y: 3.71327431e-08, z: 1.92759297e-09} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1.00000012, y: 1.00000012, z: 1.00000012} + transformModified: 1 + - name: char_astrella_RightHandMiddle3 + position: {x: .0203218721, y: -9.21779559e-08, z: 2.25952146e-09} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1.00000012, y: 1.00000012, z: 1.00000012} + transformModified: 1 + - name: char_astrella_RightHandMiddle4 + position: {x: .0180401877, y: -8.52651264e-16, z: -4.440892e-18} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: char_astrella_RightHandPinky1 + position: {x: .0706199855, y: -.00381322834, z: -.028701663} + rotation: {x: -.00805144105, y: .00709813368, z: .00419250783, w: .999933541} + scale: {x: .999999762, y: .999999702, z: .999999762} + transformModified: 1 + - name: char_astrella_RightHandPinky2 + position: {x: .0239712186, y: 1.6716216e-08, z: 1.50613899e-09} + rotation: {x: 0, y: 0, z: -3.15594957e-06, w: .99999994} + scale: {x: .999999881, y: .999999881, z: .999999881} + transformModified: 1 + - name: char_astrella_RightHandPinky3 + position: {x: .0139552066, y: -1.78961592e-08, z: -3.24993166e-09} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: .999999881, y: .999999881, z: .999999881} + transformModified: 1 + - name: char_astrella_RightHandPinky4 + position: {x: .0114244567, y: 2.84217088e-16, z: -5.3290704e-17} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: char_astrella_RightHandRing1 + position: {x: .077080071, y: .00307920319, z: -.0123659763} + rotation: {x: -.00644791452, y: .00215282664, z: -.0100083584, w: .999926746} + scale: {x: .999999762, y: .999999821, z: .999999762} + transformModified: 1 + - name: char_astrella_RightHandRing2 + position: {x: .0282255355, y: -3.04623216e-09, z: 2.43224774e-09} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: .999999821, y: .999999821, z: .999999762} + transformModified: 1 + - name: char_astrella_RightHandRing3 + position: {x: .0183915738, y: -3.64719721e-09, z: -4.09619139e-09} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: .999999821, y: .999999821, z: .999999762} + transformModified: 1 + - name: char_astrella_RightHandRing4 + position: {x: .0148571227, y: 5.68434176e-16, z: 4.44089183e-17} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: char_astrella_RightHandThumb1 + position: {x: .0203821324, y: -.00496841175, z: .0323438756} + rotation: {x: -.0816844031, y: -.0673886463, z: .0682904199, w: .992029607} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_RightHandThumb2 + position: {x: .0216320623, y: -.00833420455, z: .0176506583} + rotation: {x: -2.0570144e-06, y: -.303069621, z: -.143098578, w: .942163229} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_RightHandThumb3 + position: {x: .0162455346, y: 7.16755633e-09, z: -1.18013151e-12} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: .999999762, y: .999999762, z: .999999762} + transformModified: 1 + - name: char_astrella_RightHandThumb4 + position: {x: .0184134673, y: 2.84217088e-16, z: -1.42108544e-16} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 3 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/door_pneumatic.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/door_pneumatic.fbx new file mode 100644 index 0000000..d13b494 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/door_pneumatic.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/door_pneumatic.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/door_pneumatic.fbx.meta new file mode 100644 index 0000000..6075d14 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/door_pneumatic.fbx.meta @@ -0,0 +1,97 @@ +fileFormatVersion: 2 +guid: bf27237d80a45b04b9c66b14870cfc52 +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 100002: prop_doorPneumatic_dado + 100004: prop_doorPneumatic_handrails + 100006: prop_doorPneumatic_kicker + 100008: prop_doorPneumatic_mainLeft + 100010: prop_doorPneumatic_mainRight + 400000: //RootNode + 400002: prop_doorPneumatic_dado + 400004: prop_doorPneumatic_handrails + 400006: prop_doorPneumatic_kicker + 400008: prop_doorPneumatic_mainLeft + 400010: prop_doorPneumatic_mainRight + 2300000: prop_doorPneumatic_dado + 2300002: prop_doorPneumatic_handrails + 2300004: prop_doorPneumatic_kicker + 2300006: prop_doorPneumatic_mainLeft + 2300008: prop_doorPneumatic_mainRight + 3300000: prop_doorPneumatic_dado + 3300002: prop_doorPneumatic_handrails + 3300004: prop_doorPneumatic_kicker + 3300006: prop_doorPneumatic_mainLeft + 3300008: prop_doorPneumatic_mainRight + 4300000: prop_doorPneumatic_mainRight + 4300002: prop_doorPneumatic_mainLeft + 4300004: prop_doorPneumatic_dado + 4300006: prop_doorPneumatic_kicker + 4300008: prop_doorPneumatic_handrails + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/env_robotLab_static.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/env_robotLab_static.fbx new file mode 100644 index 0000000..2b94658 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/env_robotLab_static.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/env_robotLab_static.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/env_robotLab_static.fbx.meta new file mode 100644 index 0000000..ac42ecf --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/env_robotLab_static.fbx.meta @@ -0,0 +1,2698 @@ +fileFormatVersion: 2 +guid: 2406a7cda1fb8ec42bc7b4593a564dc7 +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: camera1 + 100002: //RootNode + 100004: pCube16 + 100006: pCube6 + 100008: polySurface10 + 100010: polySurface11 + 100012: polySurface12 + 100014: polySurface13 + 100016: polySurface14 + 100018: polySurface15 + 100020: polySurface16 + 100022: polySurface17 + 100024: polySurface18 + 100026: polySurface19 + 100028: polySurface2 + 100030: polySurface20 + 100032: polySurface21 + 100034: polySurface22 + 100036: polySurface23 + 100038: polySurface24 + 100040: polySurface25 + 100042: polySurface26 + 100044: polySurface27 + 100046: polySurface28 + 100048: polySurface29 + 100050: polySurface3 + 100052: polySurface4 + 100054: polySurface5 + 100056: polySurface6 + 100058: polySurface7 + 100060: polySurface8 + 100062: polySurface9 + 100064: prop_robotArm_001 + 100066: prop_robotArm_antennae + 100068: prop_robotArm_arm + 100070: prop_robotArm_base + 100072: prop_robotArm_clawLow_base + 100074: prop_robotArm_clawLow_mid + 100076: prop_robotArm_clawLow_tip + 100078: prop_robotArm_clawTop_base + 100080: prop_robotArm_clawTop_mid + 100082: prop_robotArm_clawTop_tip + 100084: prop_robotArm_hand + 100086: prop_robotArm_plinth + 100088: cameraMain + 100090: floor + 100092: floor_001 + 100094: floor_002 + 100096: floor_003 + 100098: floor_004 + 100100: floor_005 + 100102: floor_006 + 100104: floor_007 + 100106: floor_008 + 100108: gantry + 100110: gantry_001 + 100112: gantry_002 + 100114: gantry_003 + 100116: gantry_004 + 100118: gantry_005 + 100120: gantry_006 + 100122: gantry_007 + 100124: gantry_008 + 100126: gantry_009 + 100128: prop_computerStation_A_001 + 100130: prop_computerStation_A_002 + 100132: prop_computerStation_B_001 + 100134: prop_computerStation_B_002 + 100136: prop_computerStation_B_003 + 100138: prop_fanLarge_aperture_001 + 100140: prop_fanLarge_motor_001 + 100142: prop_fanLarge_propeller_001 + 100144: prop_turbine_001 + 100146: prop_turbine_002 + 100148: prop_turbinePlinth_001 + 100150: prop_turbinePlinth_002 + 100152: props + 100154: roof + 100156: roof_001 + 100158: roof_002 + 100160: roof_003 + 100162: roof_004 + 100164: roof_005 + 100166: roof_006 + 100168: roof_007 + 100170: roof_008 + 100172: roof_009 + 100174: roof_010 + 100176: roof_011 + 100178: roof_012 + 100180: roof_013 + 100182: roof_014 + 100184: roof_015 + 100186: roof_016 + 100188: roof_017 + 100190: roof_018 + 100192: roof_019 + 100194: roof_020 + 100196: roof_021 + 100198: roof_022 + 100200: roof_023 + 100202: roof_024 + 100204: roof_025 + 100206: roof_026 + 100208: roof_027 + 100210: roof_028 + 100212: roof_029 + 100214: roof_030 + 100216: roof_031 + 100218: roof_032 + 100220: roof_033 + 100222: roof_034 + 100224: roof_035 + 100226: roof_036 + 100228: roof_037 + 100230: roof_038 + 100232: roof_039 + 100234: roof_040 + 100236: roof_041 + 100238: roof_042 + 100240: roof_043 + 100242: roof_044 + 100244: roof_045 + 100246: roof_046 + 100248: roof_047 + 100250: roof_048 + 100252: roof_049 + 100254: roof_050 + 100256: roof_051 + 100258: roof_052 + 100260: roof_053 + 100262: roof_054 + 100264: roof_055 + 100266: roof_056 + 100268: roof_057 + 100270: roof_058 + 100272: roof_059 + 100274: roof_060 + 100276: roof_061 + 100278: roof_062 + 100280: roof_063 + 100282: roof_064 + 100284: roof_065 + 100286: roof_066 + 100288: roof_067 + 100290: roof_068 + 100292: roof_069 + 100294: support_001 + 100296: support_002 + 100298: support_003 + 100300: support_004 + 100302: support_005 + 100304: support_006 + 100306: support_007 + 100308: support_008 + 100310: support_009 + 100312: support_010 + 100314: support_011 + 100316: support_012 + 100318: support_013 + 100320: support_014 + 100322: support_015 + 100324: support_016 + 100326: support_017 + 100328: support_018 + 100330: support_019 + 100332: support_020 + 100334: support_021 + 100336: support_022 + 100338: support_023 + 100340: support_024 + 100342: support_025 + 100344: support_026 + 100346: support_027 + 100348: support_028 + 100350: support_029 + 100352: support_030 + 100354: support_031 + 100356: support_032 + 100358: support_033 + 100360: supports + 100362: walls + 100364: walls_001 + 100366: walls_002 + 100368: walls_003 + 100370: walls_004 + 100372: walls_005 + 100374: walls_006 + 100376: walls_007 + 100378: walls_008 + 100380: walls_009 + 100382: walls_010 + 100384: walls_011 + 100386: walls_012 + 100388: walls_013 + 100390: walls_014 + 100392: walls_015 + 100394: walls_016 + 100396: walls_017 + 100398: walls_018 + 100400: walls_019 + 100402: walls_020 + 100404: walls_021 + 100406: walls_022 + 100408: walls_023 + 100410: walls_024 + 100412: walls_025 + 100414: walls_026 + 100416: walls_027 + 100418: walls_028 + 100420: walls_029 + 100422: walls_030 + 100424: walls_031 + 100426: walls_032 + 100428: walls_033 + 100430: walls_034 + 100432: walls_035 + 100434: walls_036 + 100436: walls_037 + 100438: walls_038 + 100440: walls_039 + 100442: walls_040 + 100444: walls_041 + 100446: walls_042 + 100448: walls_043 + 100450: walls_044 + 100452: walls_045 + 100454: walls_046 + 100456: walls_047 + 100458: walls_048 + 100460: walls_049 + 100462: walls_050 + 100464: walls_051 + 100466: walls_052 + 100468: walls_053 + 100470: walls_054 + 100472: walls_055 + 100474: walls_056 + 100476: walls_057 + 100478: walls_058 + 100480: walls_059 + 100482: camera_maya + 100484: glass + 100486: glass_007 + 100488: glass_008 + 100490: glass_009 + 100492: glass_010 + 100494: glass_011 + 100496: glass_012 + 100498: glass_013 + 100500: glass_014 + 100502: glass_015 + 100504: glass_016 + 100506: glass_017 + 100508: glass_018 + 100510: glass_019 + 100512: glass_020 + 100514: roof_0010 + 100516: roof_0011 + 100518: roof_0012 + 100520: roof_0013 + 100522: roof_070 + 100524: roof_071 + 100526: roof_072 + 100528: roof_073 + 100530: roof_074 + 100532: roof_075 + 100534: roof_076 + 100536: roof_077 + 100538: roof_078 + 100540: roof_079 + 100542: roof_080 + 100544: roof_081 + 100546: glass_001 + 100548: glass_002 + 100550: glass_003 + 100552: glass_004 + 100554: glass_005 + 100556: glass_006 + 100558: collision + 100560: collision_001 + 100562: pCube1 + 100564: pCube2 + 100566: pCube3 + 100568: pCube4 + 100570: walls_060 + 100572: walls_061 + 100574: glass_0010 + 100576: glass_0011 + 100578: glass_0012 + 100580: prop_computerStation_B_004 + 100582: wires + 100584: wires_001 + 100586: wires_002 + 100588: wires_003 + 100590: wires_004 + 100592: wires_005 + 100594: wires_006 + 100596: wires_007 + 100598: wires_008 + 100600: wires_009 + 100602: wires_010 + 100604: wires_011 + 100606: wires_012 + 100608: wires_013 + 100610: wires_014 + 100612: wires_015 + 100614: wires_016 + 100616: wire_001 + 100618: wire_002 + 100620: wire_003 + 100622: wire_004 + 100624: wire_005 + 100626: wire_006 + 100628: wire_007 + 100630: wire_008 + 100632: wire_009 + 100634: wire_010 + 100636: wire_011 + 100638: wire_012 + 100640: wire_013 + 100642: wire_015 + 100644: wire_016 + 100646: wire_017 + 100648: wire_018 + 100650: walls_062 + 100652: walls_0010 + 100654: wire_014 + 100656: wire_019 + 100658: wire_020 + 100660: prop_computerUnit_C_001 + 100662: prop_computerUnit_C_0010 + 100664: prop_computerUnit_C_0011 + 100666: prop_computerUnit_C_002 + 100668: prop_computerUnit_C_003 + 100670: prop_computerUnit_C_004 + 100672: prop_computerUnit_C_005 + 100674: prop_computerUnit_C_006 + 100676: prop_computerUnit_C_007 + 100678: prop_computerUnit_C_009 + 100680: prop_computerUnit_C_0012 + 100682: prop_computerUnit_C_0013 + 100684: prop_powerCube_001 + 100686: prop_powerCube_002 + 100688: prop_powerCube_003 + 100690: prop_powerCube_004 + 100692: prop_powerCube_005 + 100694: prop_powerCube_006 + 100696: prop_powerCube_007 + 100698: prop_powerCube_008 + 100700: prop_powerCube_009 + 100702: prop_powerCube_010 + 100704: prop_powerCube_011 + 100706: prop_powerCube_012 + 100708: prop_powerCube_013 + 100710: prop_powerCube_014 + 100712: walls_063 + 100714: walls_064 + 100716: walls_065 + 100718: wire_021 + 100720: wire_022 + 100722: prop_computerStation_B_005 + 100724: wire_023 + 100726: _floor + 100728: walls_066 + 100730: walls_067 + 100732: walls_068 + 100734: walls_069 + 100736: walls_070 + 100738: walls_071 + 100740: walls_072 + 100742: walls_073 + 100744: walls_074 + 100746: walls_075 + 100748: walls_076 + 100750: walls_077 + 100752: walls_078 + 100754: gantry_010 + 100756: gantry_011 + 100758: gantry_012 + 100760: gantry_013 + 100762: gantry_014 + 100764: gantry_015 + 100766: gantry_016 + 100768: gantry_017 + 100770: gantry_018 + 100772: gantry_019 + 100774: gantry_020 + 100776: gantry_021 + 100778: gantry_022 + 100780: gantry_023 + 100782: gantry_024 + 100784: gantry_025 + 100786: gantry_026 + 100788: gantry_027 + 100790: gantry_028 + 100792: gantry_029 + 100794: gantry_030 + 100796: gantry_031 + 100798: gantry_032 + 100800: gantry_033 + 100802: gantry_034 + 100804: gantry_035 + 100806: gantry_036 + 100808: gantry_037 + 100810: gantry_038 + 100812: gantry_039 + 100814: gantry_040 + 100816: gantry_041 + 100818: gantry_042 + 100820: gantry_043 + 100822: gantry_044 + 100824: gantry_045 + 100826: gantry_046 + 100828: gantry_047 + 100830: gantry_048 + 100832: gantry_049 + 100834: gantry_050 + 100836: gantry_051 + 100838: gantry_052 + 100840: gantry_053 + 100842: gantry_054 + 100844: gantry_055 + 100846: gantry_056 + 100848: gantry_057 + 100850: gantry_058 + 100852: gantry_059 + 100854: gantry_060 + 100856: gantry_061 + 100858: gantry_062 + 100860: gantry_063 + 100862: gantry_064 + 100864: gantry_065 + 100866: gantry_066 + 100868: gantry_067 + 100870: gantry_068 + 100872: gantry_069 + 100874: gantry_070 + 100876: gantry_071 + 100878: gantry_072 + 100880: gantry_073 + 100882: gantry_074 + 100884: gantry_075 + 100886: gantry_076 + 100888: gantry_077 + 100890: gantry_078 + 100892: gantry_079 + 100894: gantry_080 + 100896: gantry_081 + 100898: gantry_082 + 100900: gantry_083 + 100902: gantry_084 + 100904: gantry_085 + 100906: gantry_086 + 100908: gantry_087 + 100910: gantry_088 + 100912: gantry_089 + 100914: gantry_090 + 100916: gantry_091 + 100918: gantry_092 + 100920: gantry_093 + 100922: gantry_094 + 100924: gantry_095 + 100926: gantry_096 + 100928: gantry_097 + 100930: gantry_098 + 100932: gantry_099 + 100934: gantry_100 + 100936: gantry_101 + 100938: gantry_102 + 100940: gantry_103 + 100942: gantry_104 + 100944: gantry_105 + 100946: gantry_106 + 100948: gantry_107 + 100950: gantry_108 + 100952: gantry_109 + 100954: gantry_110 + 100956: gantry_111 + 100958: gantry_112 + 100960: gantry_113 + 100962: gantry_114 + 100964: gantry_115 + 100966: gantry_116 + 100968: gantry_117 + 100970: prop_batteringRam_fist + 100972: prop_batteringRam_pivot + 100974: prop_batteringRam_shield_bottom + 100976: prop_batteringRam_shield_top + 100978: prop_batterinRam_innards + 400000: camera1 + 400002: //RootNode + 400004: pCube16 + 400006: pCube6 + 400008: polySurface10 + 400010: polySurface11 + 400012: polySurface12 + 400014: polySurface13 + 400016: polySurface14 + 400018: polySurface15 + 400020: polySurface16 + 400022: polySurface17 + 400024: polySurface18 + 400026: polySurface19 + 400028: polySurface2 + 400030: polySurface20 + 400032: polySurface21 + 400034: polySurface22 + 400036: polySurface23 + 400038: polySurface24 + 400040: polySurface25 + 400042: polySurface26 + 400044: polySurface27 + 400046: polySurface28 + 400048: polySurface29 + 400050: polySurface3 + 400052: polySurface4 + 400054: polySurface5 + 400056: polySurface6 + 400058: polySurface7 + 400060: polySurface8 + 400062: polySurface9 + 400064: prop_robotArm_001 + 400066: prop_robotArm_antennae + 400068: prop_robotArm_arm + 400070: prop_robotArm_base + 400072: prop_robotArm_clawLow_base + 400074: prop_robotArm_clawLow_mid + 400076: prop_robotArm_clawLow_tip + 400078: prop_robotArm_clawTop_base + 400080: prop_robotArm_clawTop_mid + 400082: prop_robotArm_clawTop_tip + 400084: prop_robotArm_hand + 400086: prop_robotArm_plinth + 400088: cameraMain + 400090: floor + 400092: floor_001 + 400094: floor_002 + 400096: floor_003 + 400098: floor_004 + 400100: floor_005 + 400102: floor_006 + 400104: floor_007 + 400106: floor_008 + 400108: gantry + 400110: gantry_001 + 400112: gantry_002 + 400114: gantry_003 + 400116: gantry_004 + 400118: gantry_005 + 400120: gantry_006 + 400122: gantry_007 + 400124: gantry_008 + 400126: gantry_009 + 400128: prop_computerStation_A_001 + 400130: prop_computerStation_A_002 + 400132: prop_computerStation_B_001 + 400134: prop_computerStation_B_002 + 400136: prop_computerStation_B_003 + 400138: prop_fanLarge_aperture_001 + 400140: prop_fanLarge_motor_001 + 400142: prop_fanLarge_propeller_001 + 400144: prop_turbine_001 + 400146: prop_turbine_002 + 400148: prop_turbinePlinth_001 + 400150: prop_turbinePlinth_002 + 400152: props + 400154: roof + 400156: roof_001 + 400158: roof_002 + 400160: roof_003 + 400162: roof_004 + 400164: roof_005 + 400166: roof_006 + 400168: roof_007 + 400170: roof_008 + 400172: roof_009 + 400174: roof_010 + 400176: roof_011 + 400178: roof_012 + 400180: roof_013 + 400182: roof_014 + 400184: roof_015 + 400186: roof_016 + 400188: roof_017 + 400190: roof_018 + 400192: roof_019 + 400194: roof_020 + 400196: roof_021 + 400198: roof_022 + 400200: roof_023 + 400202: roof_024 + 400204: roof_025 + 400206: roof_026 + 400208: roof_027 + 400210: roof_028 + 400212: roof_029 + 400214: roof_030 + 400216: roof_031 + 400218: roof_032 + 400220: roof_033 + 400222: roof_034 + 400224: roof_035 + 400226: roof_036 + 400228: roof_037 + 400230: roof_038 + 400232: roof_039 + 400234: roof_040 + 400236: roof_041 + 400238: roof_042 + 400240: roof_043 + 400242: roof_044 + 400244: roof_045 + 400246: roof_046 + 400248: roof_047 + 400250: roof_048 + 400252: roof_049 + 400254: roof_050 + 400256: roof_051 + 400258: roof_052 + 400260: roof_053 + 400262: roof_054 + 400264: roof_055 + 400266: roof_056 + 400268: roof_057 + 400270: roof_058 + 400272: roof_059 + 400274: roof_060 + 400276: roof_061 + 400278: roof_062 + 400280: roof_063 + 400282: roof_064 + 400284: roof_065 + 400286: roof_066 + 400288: roof_067 + 400290: roof_068 + 400292: roof_069 + 400294: support_001 + 400296: support_002 + 400298: support_003 + 400300: support_004 + 400302: support_005 + 400304: support_006 + 400306: support_007 + 400308: support_008 + 400310: support_009 + 400312: support_010 + 400314: support_011 + 400316: support_012 + 400318: support_013 + 400320: support_014 + 400322: support_015 + 400324: support_016 + 400326: support_017 + 400328: support_018 + 400330: support_019 + 400332: support_020 + 400334: support_021 + 400336: support_022 + 400338: support_023 + 400340: support_024 + 400342: support_025 + 400344: support_026 + 400346: support_027 + 400348: support_028 + 400350: support_029 + 400352: support_030 + 400354: support_031 + 400356: support_032 + 400358: support_033 + 400360: supports + 400362: walls + 400364: walls_001 + 400366: walls_002 + 400368: walls_003 + 400370: walls_004 + 400372: walls_005 + 400374: walls_006 + 400376: walls_007 + 400378: walls_008 + 400380: walls_009 + 400382: walls_010 + 400384: walls_011 + 400386: walls_012 + 400388: walls_013 + 400390: walls_014 + 400392: walls_015 + 400394: walls_016 + 400396: walls_017 + 400398: walls_018 + 400400: walls_019 + 400402: walls_020 + 400404: walls_021 + 400406: walls_022 + 400408: walls_023 + 400410: walls_024 + 400412: walls_025 + 400414: walls_026 + 400416: walls_027 + 400418: walls_028 + 400420: walls_029 + 400422: walls_030 + 400424: walls_031 + 400426: walls_032 + 400428: walls_033 + 400430: walls_034 + 400432: walls_035 + 400434: walls_036 + 400436: walls_037 + 400438: walls_038 + 400440: walls_039 + 400442: walls_040 + 400444: walls_041 + 400446: walls_042 + 400448: walls_043 + 400450: walls_044 + 400452: walls_045 + 400454: walls_046 + 400456: walls_047 + 400458: walls_048 + 400460: walls_049 + 400462: walls_050 + 400464: walls_051 + 400466: walls_052 + 400468: walls_053 + 400470: walls_054 + 400472: walls_055 + 400474: walls_056 + 400476: walls_057 + 400478: walls_058 + 400480: walls_059 + 400482: camera_maya + 400484: glass + 400486: glass_007 + 400488: glass_008 + 400490: glass_009 + 400492: glass_010 + 400494: glass_011 + 400496: glass_012 + 400498: glass_013 + 400500: glass_014 + 400502: glass_015 + 400504: glass_016 + 400506: glass_017 + 400508: glass_018 + 400510: glass_019 + 400512: glass_020 + 400514: roof_0010 + 400516: roof_0011 + 400518: roof_0012 + 400520: roof_0013 + 400522: roof_070 + 400524: roof_071 + 400526: roof_072 + 400528: roof_073 + 400530: roof_074 + 400532: roof_075 + 400534: roof_076 + 400536: roof_077 + 400538: roof_078 + 400540: roof_079 + 400542: roof_080 + 400544: roof_081 + 400546: glass_001 + 400548: glass_002 + 400550: glass_003 + 400552: glass_004 + 400554: glass_005 + 400556: glass_006 + 400558: collision + 400560: collision_001 + 400562: pCube1 + 400564: pCube2 + 400566: pCube3 + 400568: pCube4 + 400570: walls_060 + 400572: walls_061 + 400574: glass_0010 + 400576: glass_0011 + 400578: glass_0012 + 400580: prop_computerStation_B_004 + 400582: wires + 400584: wires_001 + 400586: wires_002 + 400588: wires_003 + 400590: wires_004 + 400592: wires_005 + 400594: wires_006 + 400596: wires_007 + 400598: wires_008 + 400600: wires_009 + 400602: wires_010 + 400604: wires_011 + 400606: wires_012 + 400608: wires_013 + 400610: wires_014 + 400612: wires_015 + 400614: wires_016 + 400616: wire_001 + 400618: wire_002 + 400620: wire_003 + 400622: wire_004 + 400624: wire_005 + 400626: wire_006 + 400628: wire_007 + 400630: wire_008 + 400632: wire_009 + 400634: wire_010 + 400636: wire_011 + 400638: wire_012 + 400640: wire_013 + 400642: wire_015 + 400644: wire_016 + 400646: wire_017 + 400648: wire_018 + 400650: walls_062 + 400652: walls_0010 + 400654: wire_014 + 400656: wire_019 + 400658: wire_020 + 400660: prop_computerUnit_C_001 + 400662: prop_computerUnit_C_0010 + 400664: prop_computerUnit_C_0011 + 400666: prop_computerUnit_C_002 + 400668: prop_computerUnit_C_003 + 400670: prop_computerUnit_C_004 + 400672: prop_computerUnit_C_005 + 400674: prop_computerUnit_C_006 + 400676: prop_computerUnit_C_007 + 400678: prop_computerUnit_C_009 + 400680: prop_computerUnit_C_0012 + 400682: prop_computerUnit_C_0013 + 400684: prop_powerCube_001 + 400686: prop_powerCube_002 + 400688: prop_powerCube_003 + 400690: prop_powerCube_004 + 400692: prop_powerCube_005 + 400694: prop_powerCube_006 + 400696: prop_powerCube_007 + 400698: prop_powerCube_008 + 400700: prop_powerCube_009 + 400702: prop_powerCube_010 + 400704: prop_powerCube_011 + 400706: prop_powerCube_012 + 400708: prop_powerCube_013 + 400710: prop_powerCube_014 + 400712: walls_063 + 400714: walls_064 + 400716: walls_065 + 400718: wire_021 + 400720: wire_022 + 400722: prop_computerStation_B_005 + 400724: wire_023 + 400726: _floor + 400728: walls_066 + 400730: walls_067 + 400732: walls_068 + 400734: walls_069 + 400736: walls_070 + 400738: walls_071 + 400740: walls_072 + 400742: walls_073 + 400744: walls_074 + 400746: walls_075 + 400748: walls_076 + 400750: walls_077 + 400752: walls_078 + 400754: gantry_010 + 400756: gantry_011 + 400758: gantry_012 + 400760: gantry_013 + 400762: gantry_014 + 400764: gantry_015 + 400766: gantry_016 + 400768: gantry_017 + 400770: gantry_018 + 400772: gantry_019 + 400774: gantry_020 + 400776: gantry_021 + 400778: gantry_022 + 400780: gantry_023 + 400782: gantry_024 + 400784: gantry_025 + 400786: gantry_026 + 400788: gantry_027 + 400790: gantry_028 + 400792: gantry_029 + 400794: gantry_030 + 400796: gantry_031 + 400798: gantry_032 + 400800: gantry_033 + 400802: gantry_034 + 400804: gantry_035 + 400806: gantry_036 + 400808: gantry_037 + 400810: gantry_038 + 400812: gantry_039 + 400814: gantry_040 + 400816: gantry_041 + 400818: gantry_042 + 400820: gantry_043 + 400822: gantry_044 + 400824: gantry_045 + 400826: gantry_046 + 400828: gantry_047 + 400830: gantry_048 + 400832: gantry_049 + 400834: gantry_050 + 400836: gantry_051 + 400838: gantry_052 + 400840: gantry_053 + 400842: gantry_054 + 400844: gantry_055 + 400846: gantry_056 + 400848: gantry_057 + 400850: gantry_058 + 400852: gantry_059 + 400854: gantry_060 + 400856: gantry_061 + 400858: gantry_062 + 400860: gantry_063 + 400862: gantry_064 + 400864: gantry_065 + 400866: gantry_066 + 400868: gantry_067 + 400870: gantry_068 + 400872: gantry_069 + 400874: gantry_070 + 400876: gantry_071 + 400878: gantry_072 + 400880: gantry_073 + 400882: gantry_074 + 400884: gantry_075 + 400886: gantry_076 + 400888: gantry_077 + 400890: gantry_078 + 400892: gantry_079 + 400894: gantry_080 + 400896: gantry_081 + 400898: gantry_082 + 400900: gantry_083 + 400902: gantry_084 + 400904: gantry_085 + 400906: gantry_086 + 400908: gantry_087 + 400910: gantry_088 + 400912: gantry_089 + 400914: gantry_090 + 400916: gantry_091 + 400918: gantry_092 + 400920: gantry_093 + 400922: gantry_094 + 400924: gantry_095 + 400926: gantry_096 + 400928: gantry_097 + 400930: gantry_098 + 400932: gantry_099 + 400934: gantry_100 + 400936: gantry_101 + 400938: gantry_102 + 400940: gantry_103 + 400942: gantry_104 + 400944: gantry_105 + 400946: gantry_106 + 400948: gantry_107 + 400950: gantry_108 + 400952: gantry_109 + 400954: gantry_110 + 400956: gantry_111 + 400958: gantry_112 + 400960: gantry_113 + 400962: gantry_114 + 400964: gantry_115 + 400966: gantry_116 + 400968: gantry_117 + 400970: prop_batteringRam_fist + 400972: prop_batteringRam_pivot + 400974: prop_batteringRam_shield_bottom + 400976: prop_batteringRam_shield_top + 400978: prop_batterinRam_innards + 2300000: pCube16 + 2300002: pCube6 + 2300004: polySurface10 + 2300006: polySurface11 + 2300008: polySurface12 + 2300010: polySurface13 + 2300012: polySurface14 + 2300014: polySurface15 + 2300016: polySurface16 + 2300018: polySurface17 + 2300020: polySurface18 + 2300022: polySurface19 + 2300024: polySurface2 + 2300026: polySurface20 + 2300028: polySurface21 + 2300030: polySurface22 + 2300032: polySurface23 + 2300034: polySurface24 + 2300036: polySurface25 + 2300038: polySurface26 + 2300040: polySurface27 + 2300042: polySurface28 + 2300044: polySurface29 + 2300046: polySurface3 + 2300048: polySurface4 + 2300050: polySurface5 + 2300052: polySurface6 + 2300054: polySurface7 + 2300056: polySurface8 + 2300058: polySurface9 + 2300060: prop_robotArm_antennae + 2300062: prop_robotArm_arm + 2300064: prop_robotArm_base + 2300066: prop_robotArm_clawLow_base + 2300068: prop_robotArm_clawLow_mid + 2300070: prop_robotArm_clawLow_tip + 2300072: prop_robotArm_clawTop_base + 2300074: prop_robotArm_clawTop_mid + 2300076: prop_robotArm_clawTop_tip + 2300078: prop_robotArm_hand + 2300080: prop_robotArm_plinth + 2300082: floor_001 + 2300084: floor_002 + 2300086: floor_003 + 2300088: floor_004 + 2300090: floor_005 + 2300092: floor_006 + 2300094: floor_007 + 2300096: floor_008 + 2300098: gantry_001 + 2300100: gantry_002 + 2300102: gantry_003 + 2300104: gantry_004 + 2300106: gantry_005 + 2300108: gantry_006 + 2300110: gantry_007 + 2300112: gantry_008 + 2300114: gantry_009 + 2300116: prop_computerStation_A_001 + 2300118: prop_computerStation_A_002 + 2300120: prop_computerStation_B_001 + 2300122: prop_computerStation_B_002 + 2300124: prop_computerStation_B_003 + 2300126: prop_fanLarge_aperture_001 + 2300128: prop_fanLarge_motor_001 + 2300130: prop_fanLarge_propeller_001 + 2300132: prop_turbine_001 + 2300134: prop_turbine_002 + 2300136: prop_turbinePlinth_001 + 2300138: prop_turbinePlinth_002 + 2300140: roof_001 + 2300142: roof_002 + 2300144: roof_003 + 2300146: roof_004 + 2300148: roof_005 + 2300150: roof_006 + 2300152: roof_007 + 2300154: roof_008 + 2300156: roof_009 + 2300158: roof_010 + 2300160: roof_011 + 2300162: roof_012 + 2300164: roof_013 + 2300166: roof_014 + 2300168: roof_015 + 2300170: roof_016 + 2300172: roof_017 + 2300174: roof_018 + 2300176: roof_019 + 2300178: roof_020 + 2300180: roof_021 + 2300182: roof_022 + 2300184: roof_023 + 2300186: roof_024 + 2300188: roof_025 + 2300190: roof_026 + 2300192: roof_027 + 2300194: roof_028 + 2300196: roof_029 + 2300198: roof_030 + 2300200: roof_031 + 2300202: roof_032 + 2300204: roof_033 + 2300206: roof_034 + 2300208: roof_035 + 2300210: roof_036 + 2300212: roof_037 + 2300214: roof_038 + 2300216: roof_039 + 2300218: roof_040 + 2300220: roof_041 + 2300222: roof_042 + 2300224: roof_043 + 2300226: roof_044 + 2300228: roof_045 + 2300230: roof_046 + 2300232: roof_047 + 2300234: roof_048 + 2300236: roof_049 + 2300238: roof_050 + 2300240: roof_051 + 2300242: roof_052 + 2300244: roof_053 + 2300246: roof_054 + 2300248: roof_055 + 2300250: roof_056 + 2300252: roof_057 + 2300254: roof_058 + 2300256: roof_059 + 2300258: roof_060 + 2300260: roof_061 + 2300262: roof_062 + 2300264: roof_063 + 2300266: roof_064 + 2300268: roof_065 + 2300270: roof_066 + 2300272: roof_067 + 2300274: roof_068 + 2300276: roof_069 + 2300278: support_001 + 2300280: support_002 + 2300282: support_003 + 2300284: support_004 + 2300286: support_005 + 2300288: support_006 + 2300290: support_007 + 2300292: support_008 + 2300294: support_009 + 2300296: support_010 + 2300298: support_011 + 2300300: support_012 + 2300302: support_013 + 2300304: support_014 + 2300306: support_015 + 2300308: support_016 + 2300310: support_017 + 2300312: support_018 + 2300314: support_019 + 2300316: support_020 + 2300318: support_021 + 2300320: support_022 + 2300322: support_023 + 2300324: support_024 + 2300326: support_025 + 2300328: support_026 + 2300330: support_027 + 2300332: support_028 + 2300334: support_029 + 2300336: support_030 + 2300338: support_031 + 2300340: support_032 + 2300342: support_033 + 2300344: walls_001 + 2300346: walls_002 + 2300348: walls_003 + 2300350: walls_004 + 2300352: walls_005 + 2300354: walls_006 + 2300356: walls_007 + 2300358: walls_008 + 2300360: walls_009 + 2300362: walls_010 + 2300364: walls_011 + 2300366: walls_012 + 2300368: walls_013 + 2300370: walls_014 + 2300372: walls_015 + 2300374: walls_016 + 2300376: walls_017 + 2300378: walls_018 + 2300380: walls_019 + 2300382: walls_020 + 2300384: walls_021 + 2300386: walls_022 + 2300388: walls_023 + 2300390: walls_024 + 2300392: walls_025 + 2300394: walls_026 + 2300396: walls_027 + 2300398: walls_028 + 2300400: walls_029 + 2300402: walls_030 + 2300404: walls_031 + 2300406: walls_032 + 2300408: walls_033 + 2300410: walls_034 + 2300412: walls_035 + 2300414: walls_036 + 2300416: walls_037 + 2300418: walls_038 + 2300420: walls_039 + 2300422: walls_040 + 2300424: walls_041 + 2300426: walls_042 + 2300428: walls_043 + 2300430: walls_044 + 2300432: walls_045 + 2300434: walls_046 + 2300436: walls_047 + 2300438: walls_048 + 2300440: walls_049 + 2300442: walls_050 + 2300444: walls_051 + 2300446: walls_052 + 2300448: walls_053 + 2300450: walls_054 + 2300452: walls_055 + 2300454: walls_056 + 2300456: walls_057 + 2300458: walls_058 + 2300460: walls_059 + 2300462: glass_007 + 2300464: glass_008 + 2300466: glass_009 + 2300468: glass_010 + 2300470: glass_011 + 2300472: glass_012 + 2300474: glass_013 + 2300476: glass_014 + 2300478: glass_015 + 2300480: glass_016 + 2300482: glass_017 + 2300484: glass_018 + 2300486: glass_019 + 2300488: glass_020 + 2300490: roof_0010 + 2300492: roof_0011 + 2300494: roof_0012 + 2300496: roof_0013 + 2300498: roof_070 + 2300500: roof_071 + 2300502: roof_072 + 2300504: roof_073 + 2300506: roof_074 + 2300508: roof_075 + 2300510: roof_076 + 2300512: roof_077 + 2300514: roof_078 + 2300516: roof_079 + 2300518: roof_080 + 2300520: roof_081 + 2300522: glass_001 + 2300524: glass_002 + 2300526: glass_003 + 2300528: glass_004 + 2300530: glass_005 + 2300532: glass_006 + 2300534: collision_001 + 2300536: pCube1 + 2300538: pCube2 + 2300540: pCube3 + 2300542: pCube4 + 2300544: walls_060 + 2300546: walls_061 + 2300548: glass_0010 + 2300550: glass_0011 + 2300552: glass_0012 + 2300554: wires_001 + 2300556: wires_002 + 2300558: wires_003 + 2300560: wires_004 + 2300562: wires_005 + 2300564: wires_006 + 2300566: wires_007 + 2300568: wires_008 + 2300570: wires_009 + 2300572: wires_010 + 2300574: wires_011 + 2300576: wires_012 + 2300578: wires_013 + 2300580: wires_014 + 2300582: wires_015 + 2300584: wires_016 + 2300586: wire_001 + 2300588: wire_002 + 2300590: wire_003 + 2300592: wire_004 + 2300594: wire_005 + 2300596: wire_006 + 2300598: wire_007 + 2300600: wire_008 + 2300602: wire_009 + 2300604: wire_010 + 2300606: wire_011 + 2300608: wire_012 + 2300610: wire_013 + 2300612: wire_015 + 2300614: wire_016 + 2300616: wire_017 + 2300618: wire_018 + 2300620: walls_062 + 2300622: walls_0010 + 2300624: wire_014 + 2300626: wire_019 + 2300628: wire_020 + 2300630: prop_computerUnit_C_001 + 2300632: prop_computerUnit_C_0010 + 2300634: prop_computerUnit_C_0011 + 2300636: prop_computerUnit_C_002 + 2300638: prop_computerUnit_C_003 + 2300640: prop_computerUnit_C_004 + 2300642: prop_computerUnit_C_005 + 2300644: prop_computerUnit_C_006 + 2300646: prop_computerUnit_C_007 + 2300648: prop_computerUnit_C_009 + 2300650: prop_computerStation_B_004 + 2300652: prop_computerUnit_C_0012 + 2300654: prop_computerUnit_C_0013 + 2300656: prop_powerCube_001 + 2300658: prop_powerCube_002 + 2300660: prop_powerCube_003 + 2300662: prop_powerCube_004 + 2300664: prop_powerCube_005 + 2300666: prop_powerCube_006 + 2300668: prop_powerCube_007 + 2300670: prop_powerCube_008 + 2300672: prop_powerCube_009 + 2300674: prop_powerCube_010 + 2300676: prop_powerCube_011 + 2300678: prop_powerCube_012 + 2300680: prop_powerCube_013 + 2300682: prop_powerCube_014 + 2300684: walls_063 + 2300686: walls_064 + 2300688: walls_065 + 2300690: wire_021 + 2300692: wire_022 + 2300694: prop_computerStation_B_005 + 2300696: wire_023 + 2300698: walls_066 + 2300700: walls_067 + 2300702: walls_068 + 2300704: walls_069 + 2300706: walls_070 + 2300708: walls_071 + 2300710: walls_072 + 2300712: walls_073 + 2300714: walls_074 + 2300716: walls_075 + 2300718: walls_076 + 2300720: walls_077 + 2300722: walls_078 + 2300724: gantry_010 + 2300726: gantry_011 + 2300728: gantry_012 + 2300730: gantry_013 + 2300732: gantry_014 + 2300734: gantry_015 + 2300736: gantry_016 + 2300738: gantry_017 + 2300740: gantry_018 + 2300742: gantry_019 + 2300744: gantry_020 + 2300746: gantry_021 + 2300748: gantry_022 + 2300750: gantry_023 + 2300752: gantry_024 + 2300754: gantry_025 + 2300756: gantry_026 + 2300758: gantry_027 + 2300760: gantry_028 + 2300762: gantry_029 + 2300764: gantry_030 + 2300766: gantry_031 + 2300768: gantry_032 + 2300770: gantry_033 + 2300772: gantry_034 + 2300774: gantry_035 + 2300776: gantry_036 + 2300778: gantry_037 + 2300780: gantry_038 + 2300782: gantry_039 + 2300784: gantry_040 + 2300786: gantry_041 + 2300788: gantry_042 + 2300790: gantry_043 + 2300792: gantry_044 + 2300794: gantry_045 + 2300796: gantry_046 + 2300798: gantry_047 + 2300800: gantry_048 + 2300802: gantry_049 + 2300804: gantry_050 + 2300806: gantry_051 + 2300808: gantry_052 + 2300810: gantry_053 + 2300812: gantry_054 + 2300814: gantry_055 + 2300816: gantry_056 + 2300818: gantry_057 + 2300820: gantry_058 + 2300822: gantry_059 + 2300824: gantry_060 + 2300826: gantry_061 + 2300828: gantry_062 + 2300830: gantry_063 + 2300832: gantry_064 + 2300834: gantry_065 + 2300836: gantry_066 + 2300838: gantry_067 + 2300840: gantry_068 + 2300842: gantry_069 + 2300844: gantry_070 + 2300846: gantry_071 + 2300848: gantry_072 + 2300850: gantry_073 + 2300852: gantry_074 + 2300854: gantry_075 + 2300856: gantry_076 + 2300858: gantry_077 + 2300860: gantry_078 + 2300862: gantry_079 + 2300864: gantry_080 + 2300866: gantry_081 + 2300868: gantry_082 + 2300870: gantry_083 + 2300872: gantry_084 + 2300874: gantry_085 + 2300876: gantry_086 + 2300878: gantry_087 + 2300880: gantry_088 + 2300882: gantry_089 + 2300884: gantry_090 + 2300886: gantry_091 + 2300888: gantry_092 + 2300890: gantry_093 + 2300892: gantry_094 + 2300894: gantry_095 + 2300896: gantry_096 + 2300898: gantry_097 + 2300900: gantry_098 + 2300902: gantry_099 + 2300904: gantry_100 + 2300906: gantry_101 + 2300908: gantry_102 + 2300910: gantry_103 + 2300912: gantry_104 + 2300914: gantry_105 + 2300916: gantry_106 + 2300918: gantry_107 + 2300920: gantry_108 + 2300922: gantry_109 + 2300924: gantry_110 + 2300926: gantry_111 + 2300928: gantry_112 + 2300930: gantry_113 + 2300932: gantry_114 + 2300934: gantry_115 + 2300936: gantry_116 + 2300938: gantry_117 + 2300940: //RootNode + 2300942: prop_batteringRam_fist + 2300944: prop_batteringRam_pivot + 2300946: prop_batteringRam_shield_bottom + 2300948: prop_batteringRam_shield_top + 2300950: prop_batterinRam_innards + 3300000: pCube16 + 3300002: pCube6 + 3300004: polySurface10 + 3300006: polySurface11 + 3300008: polySurface12 + 3300010: polySurface13 + 3300012: polySurface14 + 3300014: polySurface15 + 3300016: polySurface16 + 3300018: polySurface17 + 3300020: polySurface18 + 3300022: polySurface19 + 3300024: polySurface2 + 3300026: polySurface20 + 3300028: polySurface21 + 3300030: polySurface22 + 3300032: polySurface23 + 3300034: polySurface24 + 3300036: polySurface25 + 3300038: polySurface26 + 3300040: polySurface27 + 3300042: polySurface28 + 3300044: polySurface29 + 3300046: polySurface3 + 3300048: polySurface4 + 3300050: polySurface5 + 3300052: polySurface6 + 3300054: polySurface7 + 3300056: polySurface8 + 3300058: polySurface9 + 3300060: prop_robotArm_antennae + 3300062: prop_robotArm_arm + 3300064: prop_robotArm_base + 3300066: prop_robotArm_clawLow_base + 3300068: prop_robotArm_clawLow_mid + 3300070: prop_robotArm_clawLow_tip + 3300072: prop_robotArm_clawTop_base + 3300074: prop_robotArm_clawTop_mid + 3300076: prop_robotArm_clawTop_tip + 3300078: prop_robotArm_hand + 3300080: prop_robotArm_plinth + 3300082: floor_001 + 3300084: floor_002 + 3300086: floor_003 + 3300088: floor_004 + 3300090: floor_005 + 3300092: floor_006 + 3300094: floor_007 + 3300096: floor_008 + 3300098: gantry_001 + 3300100: gantry_002 + 3300102: gantry_003 + 3300104: gantry_004 + 3300106: gantry_005 + 3300108: gantry_006 + 3300110: gantry_007 + 3300112: gantry_008 + 3300114: gantry_009 + 3300116: prop_computerStation_A_001 + 3300118: prop_computerStation_A_002 + 3300120: prop_computerStation_B_001 + 3300122: prop_computerStation_B_002 + 3300124: prop_computerStation_B_003 + 3300126: prop_fanLarge_aperture_001 + 3300128: prop_fanLarge_motor_001 + 3300130: prop_fanLarge_propeller_001 + 3300132: prop_turbine_001 + 3300134: prop_turbine_002 + 3300136: prop_turbinePlinth_001 + 3300138: prop_turbinePlinth_002 + 3300140: roof_001 + 3300142: roof_002 + 3300144: roof_003 + 3300146: roof_004 + 3300148: roof_005 + 3300150: roof_006 + 3300152: roof_007 + 3300154: roof_008 + 3300156: roof_009 + 3300158: roof_010 + 3300160: roof_011 + 3300162: roof_012 + 3300164: roof_013 + 3300166: roof_014 + 3300168: roof_015 + 3300170: roof_016 + 3300172: roof_017 + 3300174: roof_018 + 3300176: roof_019 + 3300178: roof_020 + 3300180: roof_021 + 3300182: roof_022 + 3300184: roof_023 + 3300186: roof_024 + 3300188: roof_025 + 3300190: roof_026 + 3300192: roof_027 + 3300194: roof_028 + 3300196: roof_029 + 3300198: roof_030 + 3300200: roof_031 + 3300202: roof_032 + 3300204: roof_033 + 3300206: roof_034 + 3300208: roof_035 + 3300210: roof_036 + 3300212: roof_037 + 3300214: roof_038 + 3300216: roof_039 + 3300218: roof_040 + 3300220: roof_041 + 3300222: roof_042 + 3300224: roof_043 + 3300226: roof_044 + 3300228: roof_045 + 3300230: roof_046 + 3300232: roof_047 + 3300234: roof_048 + 3300236: roof_049 + 3300238: roof_050 + 3300240: roof_051 + 3300242: roof_052 + 3300244: roof_053 + 3300246: roof_054 + 3300248: roof_055 + 3300250: roof_056 + 3300252: roof_057 + 3300254: roof_058 + 3300256: roof_059 + 3300258: roof_060 + 3300260: roof_061 + 3300262: roof_062 + 3300264: roof_063 + 3300266: roof_064 + 3300268: roof_065 + 3300270: roof_066 + 3300272: roof_067 + 3300274: roof_068 + 3300276: roof_069 + 3300278: support_001 + 3300280: support_002 + 3300282: support_003 + 3300284: support_004 + 3300286: support_005 + 3300288: support_006 + 3300290: support_007 + 3300292: support_008 + 3300294: support_009 + 3300296: support_010 + 3300298: support_011 + 3300300: support_012 + 3300302: support_013 + 3300304: support_014 + 3300306: support_015 + 3300308: support_016 + 3300310: support_017 + 3300312: support_018 + 3300314: support_019 + 3300316: support_020 + 3300318: support_021 + 3300320: support_022 + 3300322: support_023 + 3300324: support_024 + 3300326: support_025 + 3300328: support_026 + 3300330: support_027 + 3300332: support_028 + 3300334: support_029 + 3300336: support_030 + 3300338: support_031 + 3300340: support_032 + 3300342: support_033 + 3300344: walls_001 + 3300346: walls_002 + 3300348: walls_003 + 3300350: walls_004 + 3300352: walls_005 + 3300354: walls_006 + 3300356: walls_007 + 3300358: walls_008 + 3300360: walls_009 + 3300362: walls_010 + 3300364: walls_011 + 3300366: walls_012 + 3300368: walls_013 + 3300370: walls_014 + 3300372: walls_015 + 3300374: walls_016 + 3300376: walls_017 + 3300378: walls_018 + 3300380: walls_019 + 3300382: walls_020 + 3300384: walls_021 + 3300386: walls_022 + 3300388: walls_023 + 3300390: walls_024 + 3300392: walls_025 + 3300394: walls_026 + 3300396: walls_027 + 3300398: walls_028 + 3300400: walls_029 + 3300402: walls_030 + 3300404: walls_031 + 3300406: walls_032 + 3300408: walls_033 + 3300410: walls_034 + 3300412: walls_035 + 3300414: walls_036 + 3300416: walls_037 + 3300418: walls_038 + 3300420: walls_039 + 3300422: walls_040 + 3300424: walls_041 + 3300426: walls_042 + 3300428: walls_043 + 3300430: walls_044 + 3300432: walls_045 + 3300434: walls_046 + 3300436: walls_047 + 3300438: walls_048 + 3300440: walls_049 + 3300442: walls_050 + 3300444: walls_051 + 3300446: walls_052 + 3300448: walls_053 + 3300450: walls_054 + 3300452: walls_055 + 3300454: walls_056 + 3300456: walls_057 + 3300458: walls_058 + 3300460: walls_059 + 3300462: glass_007 + 3300464: glass_008 + 3300466: glass_009 + 3300468: glass_010 + 3300470: glass_011 + 3300472: glass_012 + 3300474: glass_013 + 3300476: glass_014 + 3300478: glass_015 + 3300480: glass_016 + 3300482: glass_017 + 3300484: glass_018 + 3300486: glass_019 + 3300488: glass_020 + 3300490: roof_0010 + 3300492: roof_0011 + 3300494: roof_0012 + 3300496: roof_0013 + 3300498: roof_070 + 3300500: roof_071 + 3300502: roof_072 + 3300504: roof_073 + 3300506: roof_074 + 3300508: roof_075 + 3300510: roof_076 + 3300512: roof_077 + 3300514: roof_078 + 3300516: roof_079 + 3300518: roof_080 + 3300520: roof_081 + 3300522: glass_001 + 3300524: glass_002 + 3300526: glass_003 + 3300528: glass_004 + 3300530: glass_005 + 3300532: glass_006 + 3300534: collision_001 + 3300536: pCube1 + 3300538: pCube2 + 3300540: pCube3 + 3300542: pCube4 + 3300544: walls_060 + 3300546: walls_061 + 3300548: glass_0010 + 3300550: glass_0011 + 3300552: glass_0012 + 3300554: wires_001 + 3300556: wires_002 + 3300558: wires_003 + 3300560: wires_004 + 3300562: wires_005 + 3300564: wires_006 + 3300566: wires_007 + 3300568: wires_008 + 3300570: wires_009 + 3300572: wires_010 + 3300574: wires_011 + 3300576: wires_012 + 3300578: wires_013 + 3300580: wires_014 + 3300582: wires_015 + 3300584: wires_016 + 3300586: wire_001 + 3300588: wire_002 + 3300590: wire_003 + 3300592: wire_004 + 3300594: wire_005 + 3300596: wire_006 + 3300598: wire_007 + 3300600: wire_008 + 3300602: wire_009 + 3300604: wire_010 + 3300606: wire_011 + 3300608: wire_012 + 3300610: wire_013 + 3300612: wire_015 + 3300614: wire_016 + 3300616: wire_017 + 3300618: wire_018 + 3300620: walls_062 + 3300622: walls_0010 + 3300624: wire_014 + 3300626: wire_019 + 3300628: wire_020 + 3300630: prop_computerUnit_C_001 + 3300632: prop_computerUnit_C_0010 + 3300634: prop_computerUnit_C_0011 + 3300636: prop_computerUnit_C_002 + 3300638: prop_computerUnit_C_003 + 3300640: prop_computerUnit_C_004 + 3300642: prop_computerUnit_C_005 + 3300644: prop_computerUnit_C_006 + 3300646: prop_computerUnit_C_007 + 3300648: prop_computerUnit_C_009 + 3300650: prop_computerStation_B_004 + 3300652: prop_computerUnit_C_0012 + 3300654: prop_computerUnit_C_0013 + 3300656: prop_powerCube_001 + 3300658: prop_powerCube_002 + 3300660: prop_powerCube_003 + 3300662: prop_powerCube_004 + 3300664: prop_powerCube_005 + 3300666: prop_powerCube_006 + 3300668: prop_powerCube_007 + 3300670: prop_powerCube_008 + 3300672: prop_powerCube_009 + 3300674: prop_powerCube_010 + 3300676: prop_powerCube_011 + 3300678: prop_powerCube_012 + 3300680: prop_powerCube_013 + 3300682: prop_powerCube_014 + 3300684: walls_063 + 3300686: walls_064 + 3300688: walls_065 + 3300690: wire_021 + 3300692: wire_022 + 3300694: prop_computerStation_B_005 + 3300696: wire_023 + 3300698: walls_066 + 3300700: walls_067 + 3300702: walls_068 + 3300704: walls_069 + 3300706: walls_070 + 3300708: walls_071 + 3300710: walls_072 + 3300712: walls_073 + 3300714: walls_074 + 3300716: walls_075 + 3300718: walls_076 + 3300720: walls_077 + 3300722: walls_078 + 3300724: gantry_010 + 3300726: gantry_011 + 3300728: gantry_012 + 3300730: gantry_013 + 3300732: gantry_014 + 3300734: gantry_015 + 3300736: gantry_016 + 3300738: gantry_017 + 3300740: gantry_018 + 3300742: gantry_019 + 3300744: gantry_020 + 3300746: gantry_021 + 3300748: gantry_022 + 3300750: gantry_023 + 3300752: gantry_024 + 3300754: gantry_025 + 3300756: gantry_026 + 3300758: gantry_027 + 3300760: gantry_028 + 3300762: gantry_029 + 3300764: gantry_030 + 3300766: gantry_031 + 3300768: gantry_032 + 3300770: gantry_033 + 3300772: gantry_034 + 3300774: gantry_035 + 3300776: gantry_036 + 3300778: gantry_037 + 3300780: gantry_038 + 3300782: gantry_039 + 3300784: gantry_040 + 3300786: gantry_041 + 3300788: gantry_042 + 3300790: gantry_043 + 3300792: gantry_044 + 3300794: gantry_045 + 3300796: gantry_046 + 3300798: gantry_047 + 3300800: gantry_048 + 3300802: gantry_049 + 3300804: gantry_050 + 3300806: gantry_051 + 3300808: gantry_052 + 3300810: gantry_053 + 3300812: gantry_054 + 3300814: gantry_055 + 3300816: gantry_056 + 3300818: gantry_057 + 3300820: gantry_058 + 3300822: gantry_059 + 3300824: gantry_060 + 3300826: gantry_061 + 3300828: gantry_062 + 3300830: gantry_063 + 3300832: gantry_064 + 3300834: gantry_065 + 3300836: gantry_066 + 3300838: gantry_067 + 3300840: gantry_068 + 3300842: gantry_069 + 3300844: gantry_070 + 3300846: gantry_071 + 3300848: gantry_072 + 3300850: gantry_073 + 3300852: gantry_074 + 3300854: gantry_075 + 3300856: gantry_076 + 3300858: gantry_077 + 3300860: gantry_078 + 3300862: gantry_079 + 3300864: gantry_080 + 3300866: gantry_081 + 3300868: gantry_082 + 3300870: gantry_083 + 3300872: gantry_084 + 3300874: gantry_085 + 3300876: gantry_086 + 3300878: gantry_087 + 3300880: gantry_088 + 3300882: gantry_089 + 3300884: gantry_090 + 3300886: gantry_091 + 3300888: gantry_092 + 3300890: gantry_093 + 3300892: gantry_094 + 3300894: gantry_095 + 3300896: gantry_096 + 3300898: gantry_097 + 3300900: gantry_098 + 3300902: gantry_099 + 3300904: gantry_100 + 3300906: gantry_101 + 3300908: gantry_102 + 3300910: gantry_103 + 3300912: gantry_104 + 3300914: gantry_105 + 3300916: gantry_106 + 3300918: gantry_107 + 3300920: gantry_108 + 3300922: gantry_109 + 3300924: gantry_110 + 3300926: gantry_111 + 3300928: gantry_112 + 3300930: gantry_113 + 3300932: gantry_114 + 3300934: gantry_115 + 3300936: gantry_116 + 3300938: gantry_117 + 3300940: //RootNode + 3300942: prop_batteringRam_fist + 3300944: prop_batteringRam_pivot + 3300946: prop_batteringRam_shield_bottom + 3300948: prop_batteringRam_shield_top + 3300950: prop_batterinRam_innards + 4300000: prop_robotArm_plinth + 4300002: prop_robotArm_base + 4300004: prop_robotArm_arm + 4300006: prop_robotArm_hand + 4300008: prop_robotArm_clawLow_base + 4300010: prop_robotArm_clawLow_mid + 4300012: prop_robotArm_clawLow_tip + 4300014: prop_robotArm_clawTop_base + 4300016: prop_robotArm_clawTop_mid + 4300018: prop_robotArm_clawTop_tip + 4300020: prop_robotArm_antennae + 4300022: pCube6 + 4300024: pCube16 + 4300026: polySurface2 + 4300028: polySurface3 + 4300030: polySurface4 + 4300032: polySurface5 + 4300034: polySurface6 + 4300036: polySurface7 + 4300038: polySurface8 + 4300040: polySurface9 + 4300042: polySurface10 + 4300044: polySurface11 + 4300046: polySurface12 + 4300048: polySurface13 + 4300050: polySurface14 + 4300052: polySurface15 + 4300054: polySurface16 + 4300056: polySurface17 + 4300058: polySurface18 + 4300060: polySurface19 + 4300062: polySurface20 + 4300064: polySurface21 + 4300066: polySurface22 + 4300068: polySurface23 + 4300070: polySurface24 + 4300072: polySurface25 + 4300074: polySurface26 + 4300076: polySurface27 + 4300078: polySurface28 + 4300080: polySurface29 + 4300082: walls_001 + 4300084: walls_002 + 4300086: walls_003 + 4300088: walls_004 + 4300090: walls_005 + 4300092: walls_006 + 4300094: walls_007 + 4300096: walls_008 + 4300098: walls_009 + 4300100: walls_010 + 4300102: walls_011 + 4300104: walls_012 + 4300106: walls_013 + 4300108: walls_014 + 4300110: walls_015 + 4300112: walls_016 + 4300114: walls_017 + 4300116: walls_018 + 4300118: walls_019 + 4300120: walls_020 + 4300122: walls_021 + 4300124: walls_022 + 4300126: walls_023 + 4300128: walls_024 + 4300130: walls_025 + 4300132: walls_026 + 4300134: walls_027 + 4300136: walls_028 + 4300138: walls_029 + 4300140: walls_030 + 4300142: walls_031 + 4300144: walls_032 + 4300146: walls_033 + 4300148: walls_034 + 4300150: walls_035 + 4300152: walls_036 + 4300154: walls_037 + 4300156: walls_038 + 4300158: walls_039 + 4300160: walls_040 + 4300162: walls_041 + 4300164: walls_042 + 4300166: walls_043 + 4300168: walls_044 + 4300170: walls_045 + 4300172: walls_046 + 4300174: walls_047 + 4300176: walls_048 + 4300178: walls_049 + 4300180: walls_050 + 4300182: walls_051 + 4300184: walls_052 + 4300186: walls_053 + 4300188: walls_054 + 4300190: walls_055 + 4300192: walls_056 + 4300194: walls_057 + 4300196: walls_058 + 4300198: walls_059 + 4300200: floor_001 + 4300202: floor_002 + 4300204: floor_003 + 4300206: floor_004 + 4300208: floor_005 + 4300210: floor_006 + 4300212: floor_007 + 4300214: floor_008 + 4300216: prop_computerStation_B_001 + 4300218: prop_computerStation_A_001 + 4300220: prop_turbinePlinth_001 + 4300222: prop_turbinePlinth_002 + 4300224: prop_turbine_002 + 4300226: prop_turbine_001 + 4300228: prop_computerStation_A_002 + 4300230: prop_fanLarge_propeller_001 + 4300232: prop_fanLarge_motor_001 + 4300234: prop_fanLarge_aperture_001 + 4300236: prop_computerStation_B_002 + 4300238: prop_computerStation_B_003 + 4300240: gantry_001 + 4300242: gantry_002 + 4300244: gantry_003 + 4300246: gantry_004 + 4300248: gantry_005 + 4300250: gantry_006 + 4300252: gantry_007 + 4300254: gantry_008 + 4300256: gantry_009 + 4300258: support_001 + 4300260: support_002 + 4300262: support_003 + 4300264: support_004 + 4300266: support_005 + 4300268: support_006 + 4300270: support_007 + 4300272: support_008 + 4300274: support_009 + 4300276: support_010 + 4300278: support_011 + 4300280: support_012 + 4300282: support_013 + 4300284: support_014 + 4300286: support_015 + 4300288: support_016 + 4300290: support_017 + 4300292: support_018 + 4300294: support_019 + 4300296: support_020 + 4300298: support_021 + 4300300: support_022 + 4300302: support_023 + 4300304: support_024 + 4300306: support_025 + 4300308: support_026 + 4300310: support_027 + 4300312: support_028 + 4300314: support_029 + 4300316: support_030 + 4300318: support_031 + 4300320: support_032 + 4300322: support_033 + 4300324: roof_001 + 4300326: roof_002 + 4300328: roof_003 + 4300330: roof_004 + 4300332: roof_005 + 4300334: roof_006 + 4300336: roof_007 + 4300338: roof_008 + 4300340: roof_009 + 4300342: roof_010 + 4300344: roof_011 + 4300346: roof_012 + 4300348: roof_013 + 4300350: roof_014 + 4300352: roof_015 + 4300354: roof_016 + 4300356: roof_017 + 4300358: roof_018 + 4300360: roof_019 + 4300362: roof_020 + 4300364: roof_021 + 4300366: roof_022 + 4300368: roof_023 + 4300370: roof_024 + 4300372: roof_025 + 4300374: roof_026 + 4300376: roof_027 + 4300378: roof_028 + 4300380: roof_029 + 4300382: roof_030 + 4300384: roof_031 + 4300386: roof_032 + 4300388: roof_033 + 4300390: roof_034 + 4300392: roof_035 + 4300394: roof_036 + 4300396: roof_037 + 4300398: roof_038 + 4300400: roof_039 + 4300402: roof_040 + 4300404: roof_041 + 4300406: roof_042 + 4300408: roof_043 + 4300410: roof_044 + 4300412: roof_045 + 4300414: roof_046 + 4300416: roof_047 + 4300418: roof_048 + 4300420: roof_049 + 4300422: roof_050 + 4300424: roof_051 + 4300426: roof_052 + 4300428: roof_053 + 4300430: roof_054 + 4300432: roof_055 + 4300434: roof_056 + 4300436: roof_057 + 4300438: roof_058 + 4300440: roof_059 + 4300442: roof_060 + 4300444: roof_061 + 4300446: roof_062 + 4300448: roof_063 + 4300450: roof_064 + 4300452: roof_065 + 4300454: roof_066 + 4300456: roof_067 + 4300458: roof_068 + 4300460: roof_069 + 4300462: glass_007 + 4300464: glass_008 + 4300466: glass_009 + 4300468: glass_010 + 4300470: glass_011 + 4300472: glass_012 + 4300474: glass_013 + 4300476: glass_014 + 4300478: glass_015 + 4300480: glass_016 + 4300482: glass_017 + 4300484: glass_018 + 4300486: glass_019 + 4300488: glass_020 + 4300490: roof_0010 + 4300492: roof_0011 + 4300494: roof_0012 + 4300496: roof_0013 + 4300498: roof_070 + 4300500: roof_071 + 4300502: roof_072 + 4300504: roof_073 + 4300506: roof_074 + 4300508: roof_075 + 4300510: roof_076 + 4300512: roof_077 + 4300514: roof_078 + 4300516: roof_079 + 4300518: roof_080 + 4300520: roof_081 + 4300522: glass_001 + 4300524: glass_002 + 4300526: glass_003 + 4300528: glass_004 + 4300530: glass_005 + 4300532: glass_006 + 4300534: collision_001 + 4300536: pCube1 + 4300538: pCube2 + 4300540: pCube3 + 4300542: pCube4 + 4300544: walls_060 + 4300546: walls_061 + 4300548: glass_0010 + 4300550: glass_0011 + 4300552: glass_0012 + 4300554: wires_001 + 4300556: wires_002 + 4300558: wires_003 + 4300560: wires_004 + 4300562: wires_005 + 4300564: wires_006 + 4300566: wires_007 + 4300568: wires_008 + 4300570: wires_009 + 4300572: wires_010 + 4300574: wires_011 + 4300576: wires_012 + 4300578: wires_013 + 4300580: wires_014 + 4300582: wires_015 + 4300584: wires_016 + 4300586: wire_001 + 4300588: wire_002 + 4300590: wire_003 + 4300592: wire_004 + 4300594: wire_005 + 4300596: wire_006 + 4300598: wire_007 + 4300600: wire_008 + 4300602: wire_009 + 4300604: wire_010 + 4300606: wire_011 + 4300608: wire_012 + 4300610: wire_013 + 4300612: wire_015 + 4300614: wire_016 + 4300616: wire_017 + 4300618: wire_018 + 4300620: walls_062 + 4300622: walls_0010 + 4300624: wire_014 + 4300626: wire_019 + 4300628: wire_020 + 4300630: prop_computerUnit_C_001 + 4300632: prop_computerUnit_C_002 + 4300634: prop_computerUnit_C_003 + 4300636: prop_computerUnit_C_004 + 4300638: prop_computerUnit_C_005 + 4300640: prop_computerUnit_C_006 + 4300642: prop_computerUnit_C_007 + 4300644: prop_computerUnit_C_009 + 4300646: prop_computerUnit_C_0010 + 4300648: prop_computerUnit_C_0011 + 4300650: prop_computerStation_B_004 + 4300652: walls_064 + 4300654: walls_063 + 4300656: walls_065 + 4300658: prop_powerCube_001 + 4300660: prop_powerCube_002 + 4300662: prop_powerCube_003 + 4300664: prop_powerCube_004 + 4300666: prop_powerCube_005 + 4300668: prop_powerCube_006 + 4300670: prop_powerCube_007 + 4300672: prop_powerCube_008 + 4300674: prop_powerCube_009 + 4300676: prop_powerCube_010 + 4300678: prop_powerCube_011 + 4300680: prop_powerCube_012 + 4300682: prop_powerCube_013 + 4300684: prop_powerCube_014 + 4300686: prop_computerUnit_C_0012 + 4300688: prop_computerUnit_C_0013 + 4300690: wire_021 + 4300692: wire_022 + 4300694: prop_computerStation_B_005 + 4300696: wire_023 + 4300698: walls_078 + 4300700: walls_077 + 4300702: walls_076 + 4300704: walls_075 + 4300706: walls_074 + 4300708: walls_073 + 4300710: walls_072 + 4300712: walls_071 + 4300714: walls_070 + 4300716: walls_069 + 4300718: walls_068 + 4300720: walls_067 + 4300722: walls_066 + 4300724: gantry_010 + 4300726: gantry_011 + 4300728: gantry_012 + 4300730: gantry_013 + 4300732: gantry_014 + 4300734: gantry_015 + 4300736: gantry_016 + 4300738: gantry_017 + 4300740: gantry_018 + 4300742: gantry_019 + 4300744: gantry_020 + 4300746: gantry_021 + 4300748: gantry_022 + 4300750: gantry_023 + 4300752: gantry_024 + 4300754: gantry_025 + 4300756: gantry_026 + 4300758: gantry_027 + 4300760: gantry_028 + 4300762: gantry_029 + 4300764: gantry_030 + 4300766: gantry_031 + 4300768: gantry_032 + 4300770: gantry_033 + 4300772: gantry_034 + 4300774: gantry_035 + 4300776: gantry_036 + 4300778: gantry_037 + 4300780: gantry_038 + 4300782: gantry_039 + 4300784: gantry_040 + 4300786: gantry_041 + 4300788: gantry_042 + 4300790: gantry_043 + 4300792: gantry_044 + 4300794: gantry_045 + 4300796: gantry_046 + 4300798: gantry_047 + 4300800: gantry_048 + 4300802: gantry_049 + 4300804: gantry_050 + 4300806: gantry_051 + 4300808: gantry_052 + 4300810: gantry_053 + 4300812: gantry_054 + 4300814: gantry_055 + 4300816: gantry_056 + 4300818: gantry_057 + 4300820: gantry_058 + 4300822: gantry_059 + 4300824: gantry_060 + 4300826: gantry_061 + 4300828: gantry_062 + 4300830: gantry_063 + 4300832: gantry_064 + 4300834: gantry_065 + 4300836: gantry_066 + 4300838: gantry_067 + 4300840: gantry_068 + 4300842: gantry_069 + 4300844: gantry_070 + 4300846: gantry_071 + 4300848: gantry_072 + 4300850: gantry_073 + 4300852: gantry_074 + 4300854: gantry_075 + 4300856: gantry_076 + 4300858: gantry_077 + 4300860: gantry_078 + 4300862: gantry_079 + 4300864: gantry_080 + 4300866: gantry_081 + 4300868: gantry_082 + 4300870: gantry_083 + 4300872: gantry_084 + 4300874: gantry_085 + 4300876: gantry_086 + 4300878: gantry_087 + 4300880: gantry_088 + 4300882: gantry_089 + 4300884: gantry_090 + 4300886: gantry_091 + 4300888: gantry_092 + 4300890: gantry_093 + 4300892: gantry_094 + 4300894: gantry_095 + 4300896: gantry_096 + 4300898: gantry_097 + 4300900: gantry_098 + 4300902: gantry_099 + 4300904: gantry_100 + 4300906: gantry_101 + 4300908: gantry_102 + 4300910: gantry_103 + 4300912: gantry_104 + 4300914: gantry_105 + 4300916: gantry_106 + 4300918: gantry_107 + 4300920: gantry_108 + 4300922: gantry_109 + 4300924: gantry_110 + 4300926: gantry_111 + 4300928: gantry_112 + 4300930: gantry_113 + 4300932: gantry_114 + 4300934: gantry_115 + 4300936: gantry_116 + 4300938: gantry_117 + 4300940: prop_batteringRam_base + 4300942: prop_batteringRam_pivot + 4300944: prop_batterinRam_innards + 4300946: prop_batteringRam_fist + 4300948: prop_batteringRam_shield_top + 4300950: prop_batteringRam_shield_bottom + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: + - name: env_physicsLab + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: camera1 + position: {x: 5.24911261, y: 3.55603623, z: 10.722683} + rotation: {x: -.00343488529, y: -.615651846, z: .00439645257, w: .787998438} + scale: {x: 160.165161, y: 160.165176, z: 160.165161} + transformModified: 1 + - name: pCube6 + position: {x: .30491966, y: 1.19339919, z: -15.5959711} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: pCube16 + position: {x: -1.66149306, y: -2.11707631e-11, z: 1.26940274} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface2 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface3 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface4 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface5 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface6 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface7 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface8 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface9 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface10 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface11 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface12 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface13 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface14 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface15 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface16 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface17 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface18 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface19 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface20 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface21 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface22 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface23 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface24 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface25 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface26 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface27 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface28 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: polySurface29 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: 0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: prop_robotArm_001 + position: {x: 5.69114685, y: -.00153014995, z: -.0707175434} + rotation: {x: -0, y: -.707106709, z: 0, w: .707106709} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: prop_robotArm_plinth + position: {x: .0707175434, y: .00153014995, z: 5.69114685} + rotation: {x: 0, y: .559478581, z: -0, w: .828844726} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: prop_robotArm_base + position: {x: -0, y: .400310665, z: 0} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: prop_robotArm_antennae + position: {x: -.00358642568, y: 2.68908501, z: 0} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: prop_robotArm_arm + position: {x: .000777587877, y: 2.69161105, z: 0} + rotation: {x: 0, y: -0, z: -.252865195, w: .967501462} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: prop_robotArm_hand + position: {x: 1.44726539, y: 1.90382445, z: 0} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: prop_robotArm_clawLow_base + position: {x: 1.52319944, y: -.603779435, z: 0} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: prop_robotArm_clawLow_mid + position: {x: .43150723, y: -.63950181, z: 0} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: prop_robotArm_clawLow_tip + position: {x: .433664322, y: .315884858, z: 0} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: prop_robotArm_clawTop_base + position: {x: 1.61735678, y: .194579557, z: 0} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: prop_robotArm_clawTop_mid + position: {x: .669330418, y: .305577189, z: 0} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + - name: prop_robotArm_clawTop_tip + position: {x: .20885542, y: -.485561043, z: 0} + rotation: {x: 0, y: -0, z: -0, w: .99999994} + scale: {x: 1, y: 1, z: 1} + transformModified: 1 + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_batteringRam.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_batteringRam.fbx new file mode 100644 index 0000000..3325503 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_batteringRam.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_batteringRam.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_batteringRam.fbx.meta new file mode 100644 index 0000000..15efd63 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_batteringRam.fbx.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: a4094918c5d1a3e4d954287b016bd896 +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 100002: prop_batteringRam_fist + 100004: prop_batteringRam_pivot + 100006: prop_batteringRam_shield_bottom + 100008: prop_batteringRam_shield_top + 100010: prop_batterinRam_innards + 400000: //RootNode + 400002: prop_batteringRam_fist + 400004: prop_batteringRam_pivot + 400006: prop_batteringRam_shield_bottom + 400008: prop_batteringRam_shield_top + 400010: prop_batterinRam_innards + 2300000: //RootNode + 2300002: prop_batteringRam_fist + 2300004: prop_batteringRam_pivot + 2300006: prop_batteringRam_shield_bottom + 2300008: prop_batteringRam_shield_top + 2300010: prop_batterinRam_innards + 3300000: //RootNode + 3300002: prop_batteringRam_fist + 3300004: prop_batteringRam_pivot + 3300006: prop_batteringRam_shield_bottom + 3300008: prop_batteringRam_shield_top + 3300010: prop_batterinRam_innards + 4300000: prop_batteringRam_base + 4300002: prop_batteringRam_pivot + 4300004: prop_batterinRam_innards + 4300006: prop_batteringRam_fist + 4300008: prop_batteringRam_shield_top + 4300010: prop_batteringRam_shield_bottom + 7400000: Hit + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: + - serializedVersion: 16 + name: Hit + takeName: Take 001 + firstFrame: 1 + lastFrame: 40 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 0 + maskSource: {instanceID: 0} + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 1 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 2 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_bench_work.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_bench_work.fbx new file mode 100644 index 0000000..e2c9670 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_bench_work.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_bench_work.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_bench_work.fbx.meta new file mode 100644 index 0000000..37ab4a8 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_bench_work.fbx.meta @@ -0,0 +1,78 @@ +fileFormatVersion: 2 +guid: a914d028806c97545b10647e01ed305a +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: prop_benchWork_001 + 4300002: prop_bench02_001 + 4300004: prop_bench_work_001 + 4300006: prop_bench_work + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_blastDoor.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_blastDoor.fbx new file mode 100644 index 0000000..8796d8b Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_blastDoor.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_blastDoor.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_blastDoor.fbx.meta new file mode 100644 index 0000000..a1d9833 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_blastDoor.fbx.meta @@ -0,0 +1,82 @@ +fileFormatVersion: 2 +guid: 1785fa44e0d16684bafd4d2150922d1d +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 100002: prop_blastDoor_door + 100004: prop_blastDoor_frame + 400000: //RootNode + 400002: prop_blastDoor_door + 400004: prop_blastDoor_frame + 2300000: prop_blastDoor_door + 2300002: prop_blastDoor_frame + 3300000: prop_blastDoor_door + 3300002: prop_blastDoor_frame + 4300000: prop_blastDoor_door + 4300002: prop_blastDoor_frame + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_capsule.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_capsule.fbx new file mode 100644 index 0000000..bbedf8b Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_capsule.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_capsule.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_capsule.fbx.meta new file mode 100644 index 0000000..ccee639 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_capsule.fbx.meta @@ -0,0 +1,107 @@ +fileFormatVersion: 2 +guid: 17c4a7f9c5bb77a41bf7d457d4049dec +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 100002: prop_capsule_001 + 100004: prop_capsule_002 + 100006: prop_capsule_bake_003 + 100008: prop_capsule_bake_004 + 100010: transform1 + 100012: transform2 + 100014: prop_capsule_bake_001 + 100016: prop_capsule_bake_002 + 100018: prop_capsule + 400000: //RootNode + 400002: prop_capsule_001 + 400004: prop_capsule_002 + 400006: prop_capsule_bake_003 + 400008: prop_capsule_bake_004 + 400010: transform1 + 400012: transform2 + 400014: prop_capsule_bake_001 + 400016: prop_capsule_bake_002 + 400018: prop_capsule + 2300000: //RootNode + 2300002: prop_capsule_001 + 2300004: prop_capsule_002 + 2300006: prop_capsule_bake_001 + 2300008: prop_capsule_bake_002 + 2300010: prop_capsule + 3300000: //RootNode + 3300002: prop_capsule_001 + 3300004: prop_capsule_002 + 3300006: prop_capsule_bake_001 + 3300008: prop_capsule_bake_002 + 3300010: prop_capsule + 4300000: prop_capsule_001 + 4300002: prop_capsule_002 + 4300004: prop_capsule_bake_002 + 4300006: prop_capsule_bake_001 + 4300008: prop_capsule + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_computerStation_A.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_computerStation_A.fbx new file mode 100644 index 0000000..eab695d Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_computerStation_A.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_computerStation_A.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_computerStation_A.fbx.meta new file mode 100644 index 0000000..bf7d1e1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_computerStation_A.fbx.meta @@ -0,0 +1,75 @@ +fileFormatVersion: 2 +guid: 2028cb1f4b4384a4a94c587c3b1a8df3 +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: prop_computerStation_A + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_computerStation_B.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_computerStation_B.fbx new file mode 100644 index 0000000..d7a4b2f Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_computerStation_B.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_computerStation_B.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_computerStation_B.fbx.meta new file mode 100644 index 0000000..2b93a60 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_computerStation_B.fbx.meta @@ -0,0 +1,75 @@ +fileFormatVersion: 2 +guid: 63d1b85f6a90d4e4cbe4e69b2b2f374f +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: prop_computerStation_B + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_computerStation_C.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_computerStation_C.fbx new file mode 100644 index 0000000..f230604 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_computerStation_C.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_computerStation_C.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_computerStation_C.fbx.meta new file mode 100644 index 0000000..d62221f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_computerStation_C.fbx.meta @@ -0,0 +1,75 @@ +fileFormatVersion: 2 +guid: f6c51af23a703e94f9f7b73590d09342 +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: prop_computerUnit_C + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_fan_large.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_fan_large.fbx new file mode 100644 index 0000000..35715d5 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_fan_large.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_fan_large.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_fan_large.fbx.meta new file mode 100644 index 0000000..bb15645 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_fan_large.fbx.meta @@ -0,0 +1,80 @@ +fileFormatVersion: 2 +guid: a91467bc2f995b649bab090f4e25d82b +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 100002: prop_fanLarge_propeller_001 + 400000: //RootNode + 400002: prop_fanLarge_propeller_001 + 2300000: prop_fanLarge_propeller_001 + 2300002: //RootNode + 3300000: prop_fanLarge_propeller_001 + 3300002: //RootNode + 4300000: prop_fanLarge_propeller_001 + 4300002: prop_fan_large_propeller + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_floorBot_female.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_floorBot_female.fbx new file mode 100644 index 0000000..0150b4c Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_floorBot_female.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_floorBot_female.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_floorBot_female.fbx.meta new file mode 100644 index 0000000..74570f2 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_floorBot_female.fbx.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 885d56c09d2eb8047921525d03066a55 +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: prop_floorBot_female_001 + 4300002: prop_floorBot_female + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_floorBot_male.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_floorBot_male.fbx new file mode 100644 index 0000000..ce75662 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_floorBot_male.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_floorBot_male.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_floorBot_male.fbx.meta new file mode 100644 index 0000000..eb3ee5f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_floorBot_male.fbx.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 192cf0f9d8bc0c24097af14438cba8b3 +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: prop_floorBot_male_001 + 4300002: prop_floorBot_male + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_hoverPad.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_hoverPad.fbx new file mode 100644 index 0000000..9b9ff37 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_hoverPad.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_hoverPad.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_hoverPad.fbx.meta new file mode 100644 index 0000000..698aa83 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_hoverPad.fbx.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 3acba0f8a314bd44d9ac03308e508d5e +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: prop_hoverPad_001 + 4300002: prop_hoverPad + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_parachuteCrate.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_parachuteCrate.fbx new file mode 100644 index 0000000..57bee29 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_parachuteCrate.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_parachuteCrate.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_parachuteCrate.fbx.meta new file mode 100644 index 0000000..a0ea597 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_parachuteCrate.fbx.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: edefa0bc3941e264392160a5dbd3193a +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 100002: prop_parachuteCrate_chute_001 + 100004: prop_parachuteCrate_crate_001 + 100006: prop_parachuteCrate_chute + 100008: prop_parachuteCrate_crate + 400000: //RootNode + 400002: prop_parachuteCrate_chute_001 + 400004: prop_parachuteCrate_crate_001 + 400006: prop_parachuteCrate_chute + 400008: prop_parachuteCrate_crate + 2300000: prop_parachuteCrate_chute_001 + 2300002: prop_parachuteCrate_crate_001 + 2300004: prop_parachuteCrate_chute + 2300006: prop_parachuteCrate_crate + 3300000: prop_parachuteCrate_chute_001 + 3300002: prop_parachuteCrate_crate_001 + 3300004: prop_parachuteCrate_chute + 3300006: prop_parachuteCrate_crate + 4300000: prop_parachuteCrate_crate_001 + 4300002: prop_parachuteCrate_chute_001 + 4300004: prop_parachuteCrate_crate + 4300006: prop_parachuteCrate_chute + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_powerCube.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_powerCube.fbx new file mode 100644 index 0000000..d1a6c99 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_powerCube.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_powerCube.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_powerCube.fbx.meta new file mode 100644 index 0000000..83fb267 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_powerCube.fbx.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 614fa0bc947f1964ab4ab6060d0756b4 +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: prop_powerCube_001 + 4300002: prop_powerCube + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_retroTelevision.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_retroTelevision.fbx new file mode 100644 index 0000000..75eafb8 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_retroTelevision.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_retroTelevision.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_retroTelevision.fbx.meta new file mode 100644 index 0000000..95eefb0 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_retroTelevision.fbx.meta @@ -0,0 +1,86 @@ +fileFormatVersion: 2 +guid: d974aeab7455744449d764ce47e6ef94 +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 100002: prop_parachuteCrate_chute_001 + 100004: prop_parachuteCrate_crate_001 + 400000: //RootNode + 400002: prop_parachuteCrate_chute_001 + 400004: prop_parachuteCrate_crate_001 + 2300000: //RootNode + 2300002: prop_parachuteCrate_chute_001 + 2300004: prop_parachuteCrate_crate_001 + 3300000: //RootNode + 3300002: prop_parachuteCrate_chute_001 + 3300004: prop_parachuteCrate_crate_001 + 4300000: prop_televisionRetro + 4300002: prop_retro_television + 4300004: prop_parachuteCrate_crate_001 + 4300006: prop_parachuteCrate_chute_001 + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_robotArm.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_robotArm.fbx new file mode 100644 index 0000000..66c3194 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_robotArm.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_robotArm.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_robotArm.fbx.meta new file mode 100644 index 0000000..251f2e0 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_robotArm.fbx.meta @@ -0,0 +1,202 @@ +fileFormatVersion: 2 +guid: 46650462f25a2914787b3a152889f2d3 +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 100002: prop_robotArm_antennae + 100004: prop_robotArm_arm + 100006: prop_robotArm_arm_collision_001 + 100008: prop_robotArm_base + 100010: prop_robotArm_base_collision_001 + 100012: prop_robotArm_clawLow_base + 100014: prop_robotArm_clawLow_mid + 100016: prop_robotArm_clawLow_tip + 100018: prop_robotArm_clawTop_base + 100020: prop_robotArm_clawTop_mid + 100022: prop_robotArm_clawTop_tip + 100024: prop_robotArm_foot_collision_001 + 100026: prop_robotArm_hand + 100028: prop_robotArm_plinth_001 + 100030: prop_robotArm_antennae_001 + 100032: prop_robotArm_arm_001 + 100034: prop_robotArm_body_001 + 100036: prop_robotArm_clawLow_base_001 + 100038: prop_robotArm_clawLow_mid_001 + 100040: prop_robotArm_clawLow_tip_001 + 100042: prop_robotArm_clawTop_base_001 + 100044: prop_robotArm_clawTop_mid_001 + 100046: prop_robotArm_clawTop_tip_001 + 100048: prop_robotArm_hand_001 + 100050: prop_robotArm_body + 100052: prop_robotArm_plinth + 400000: //RootNode + 400002: prop_robotArm_antennae + 400004: prop_robotArm_arm + 400006: prop_robotArm_arm_collision_001 + 400008: prop_robotArm_base + 400010: prop_robotArm_base_collision_001 + 400012: prop_robotArm_clawLow_base + 400014: prop_robotArm_clawLow_mid + 400016: prop_robotArm_clawLow_tip + 400018: prop_robotArm_clawTop_base + 400020: prop_robotArm_clawTop_mid + 400022: prop_robotArm_clawTop_tip + 400024: prop_robotArm_foot_collision_001 + 400026: prop_robotArm_hand + 400028: prop_robotArm_plinth_001 + 400030: prop_robotArm_antennae_001 + 400032: prop_robotArm_arm_001 + 400034: prop_robotArm_body_001 + 400036: prop_robotArm_clawLow_base_001 + 400038: prop_robotArm_clawLow_mid_001 + 400040: prop_robotArm_clawLow_tip_001 + 400042: prop_robotArm_clawTop_base_001 + 400044: prop_robotArm_clawTop_mid_001 + 400046: prop_robotArm_clawTop_tip_001 + 400048: prop_robotArm_hand_001 + 400050: prop_robotArm_body + 400052: prop_robotArm_plinth + 2300000: prop_robotArm_antennae + 2300002: prop_robotArm_arm + 2300004: prop_robotArm_arm_collision_001 + 2300006: prop_robotArm_base + 2300008: prop_robotArm_base_collision_001 + 2300010: prop_robotArm_clawLow_base + 2300012: prop_robotArm_clawLow_mid + 2300014: prop_robotArm_clawLow_tip + 2300016: prop_robotArm_clawTop_base + 2300018: prop_robotArm_clawTop_mid + 2300020: prop_robotArm_clawTop_tip + 2300022: prop_robotArm_foot_collision_001 + 2300024: prop_robotArm_hand + 2300026: prop_robotArm_plinth_001 + 2300028: prop_robotArm_antennae_001 + 2300030: prop_robotArm_arm_001 + 2300032: prop_robotArm_body_001 + 2300034: prop_robotArm_clawLow_base_001 + 2300036: prop_robotArm_clawLow_mid_001 + 2300038: prop_robotArm_clawLow_tip_001 + 2300040: prop_robotArm_clawTop_base_001 + 2300042: prop_robotArm_clawTop_mid_001 + 2300044: prop_robotArm_clawTop_tip_001 + 2300046: prop_robotArm_hand_001 + 2300048: prop_robotArm_body + 2300050: prop_robotArm_plinth + 3300000: prop_robotArm_antennae + 3300002: prop_robotArm_arm + 3300004: prop_robotArm_arm_collision_001 + 3300006: prop_robotArm_base + 3300008: prop_robotArm_base_collision_001 + 3300010: prop_robotArm_clawLow_base + 3300012: prop_robotArm_clawLow_mid + 3300014: prop_robotArm_clawLow_tip + 3300016: prop_robotArm_clawTop_base + 3300018: prop_robotArm_clawTop_mid + 3300020: prop_robotArm_clawTop_tip + 3300022: prop_robotArm_foot_collision_001 + 3300024: prop_robotArm_hand + 3300026: prop_robotArm_plinth_001 + 3300028: prop_robotArm_antennae_001 + 3300030: prop_robotArm_arm_001 + 3300032: prop_robotArm_body_001 + 3300034: prop_robotArm_clawLow_base_001 + 3300036: prop_robotArm_clawLow_mid_001 + 3300038: prop_robotArm_clawLow_tip_001 + 3300040: prop_robotArm_clawTop_base_001 + 3300042: prop_robotArm_clawTop_mid_001 + 3300044: prop_robotArm_clawTop_tip_001 + 3300046: prop_robotArm_hand_001 + 3300048: prop_robotArm_body + 3300050: prop_robotArm_plinth + 4300000: prop_robotArm_plinth_001 + 4300002: prop_robotArm_base + 4300004: prop_robotArm_arm + 4300006: prop_robotArm_hand + 4300008: prop_robotArm_clawLow_base + 4300010: prop_robotArm_clawLow_mid + 4300012: prop_robotArm_clawLow_tip + 4300014: prop_robotArm_clawTop_base + 4300016: prop_robotArm_clawTop_mid + 4300018: prop_robotArm_clawTop_tip + 4300020: prop_robotArm_arm_collision_001 + 4300022: prop_robotArm_antennae + 4300024: prop_robotArm_foot_collision_001 + 4300026: prop_robotArm_base_collision_001 + 4300028: prop_robotArm_body_001 + 4300030: prop_robotArm_arm_001 + 4300032: prop_robotArm_hand_001 + 4300034: prop_robotArm_clawLow_base_001 + 4300036: prop_robotArm_clawLow_mid_001 + 4300038: prop_robotArm_clawLow_tip_001 + 4300040: prop_robotArm_clawTop_base_001 + 4300042: prop_robotArm_clawTop_mid_001 + 4300044: prop_robotArm_clawTop_tip_001 + 4300046: prop_robotArm_antennae_001 + 4300048: prop_robotArm_plinth + 4300050: prop_robotArm_body + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_samoflange.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_samoflange.fbx new file mode 100644 index 0000000..64a041b Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_samoflange.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_samoflange.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_samoflange.fbx.meta new file mode 100644 index 0000000..e00f015 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_samoflange.fbx.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 2a28c0dcc5eeab0448036fcaadc8eb3c +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: prop_samflange_001 + 4300002: prop_samflange + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_turbine.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_turbine.fbx new file mode 100644 index 0000000..e833d99 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_turbine.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_turbine.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_turbine.fbx.meta new file mode 100644 index 0000000..0918852 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_turbine.fbx.meta @@ -0,0 +1,82 @@ +fileFormatVersion: 2 +guid: 45b15a070f9999e469721154c803fa2f +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: prop_turbine + 100002: //RootNode + 100004: prop_turbine_plinth + 400000: prop_turbine + 400002: //RootNode + 400004: prop_turbine_plinth + 2300000: prop_turbine + 2300002: prop_turbine_plinth + 3300000: prop_turbine + 3300002: prop_turbine_plinth + 4300000: prop_turbine_plinth + 4300002: prop_turbine + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_weight_ton.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_weight_ton.fbx new file mode 100644 index 0000000..519020f Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_weight_ton.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_weight_ton.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_weight_ton.fbx.meta new file mode 100644 index 0000000..5154da4 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/prop_weight_ton.fbx.meta @@ -0,0 +1,90 @@ +fileFormatVersion: 2 +guid: 5bd4e044c4be59e4f9b0d7fa27583c0d +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 100002: pCube1 + 100004: polySurface1 + 100006: prop_weight1000kg_001 + 100008: transform1 + 100010: transform2 + 400000: //RootNode + 400002: pCube1 + 400004: polySurface1 + 400006: prop_weight1000kg_001 + 400008: transform1 + 400010: transform2 + 2300000: //RootNode + 2300002: polySurface1 + 3300000: //RootNode + 3300002: polySurface1 + 4300000: prop_weight1000kg + 4300002: prop_weight1000kg_001 + 4300004: polySurface1 + 4300006: prop_weight_ton + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/vehicle_rcFlyer_clean.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/vehicle_rcFlyer_clean.fbx new file mode 100644 index 0000000..9cc6306 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/vehicle_rcFlyer_clean.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/vehicle_rcFlyer_clean.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/vehicle_rcFlyer_clean.fbx.meta new file mode 100644 index 0000000..5a67f3f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/vehicle_rcFlyer_clean.fbx.meta @@ -0,0 +1,95 @@ +fileFormatVersion: 2 +guid: dd8c80a5a447f04418da146781b05fd8 +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 100002: vehicle_rcFlyer_leg_frontLeft + 100004: vehicle_rcFlyer_leg_frontRight + 100006: vehicle_rcFlyer_leg_rearLeft + 100008: vehicle_rcFlyer_leg_rearRight + 400000: //RootNode + 400002: vehicle_rcFlyer_leg_frontLeft + 400004: vehicle_rcFlyer_leg_frontRight + 400006: vehicle_rcFlyer_leg_rearLeft + 400008: vehicle_rcFlyer_leg_rearRight + 2300000: //RootNode + 2300002: vehicle_rcFlyer_leg_frontLeft + 2300004: vehicle_rcFlyer_leg_frontRight + 2300006: vehicle_rcFlyer_leg_rearLeft + 2300008: vehicle_rcFlyer_leg_rearRight + 3300000: //RootNode + 3300002: vehicle_rcFlyer_leg_frontLeft + 3300004: vehicle_rcFlyer_leg_frontRight + 3300006: vehicle_rcFlyer_leg_rearLeft + 3300008: vehicle_rcFlyer_leg_rearRight + 4300000: vehicle_rcFlyer_body + 4300002: vehicle_rcFlyer_leg_rearLeft + 4300004: vehicle_rcFlyer_leg_rearRight + 4300006: vehicle_rcFlyer_leg_frontLeft + 4300008: vehicle_rcFlyer_leg_frontRight + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/vehicle_rcLand_clean.fbx b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/vehicle_rcLand_clean.fbx new file mode 100644 index 0000000..afdf5b6 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/vehicle_rcLand_clean.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/vehicle_rcLand_clean.fbx.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/vehicle_rcLand_clean.fbx.meta new file mode 100644 index 0000000..8d7e31b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Models/vehicle_rcLand_clean.fbx.meta @@ -0,0 +1,172 @@ +fileFormatVersion: 2 +guid: 7ae040fa461b32d42ad7169526b0a17f +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 100002: vehicle_rcLand_aerial + 100004: vehicle_rcLand_axle_front + 100006: vehicle_rcLand_axle_rear + 100008: vehicle_rcLand_axle_rearLeft + 100010: vehicle_rcLand_axle_rearRight + 100012: vehicle_rcLand_body + 100014: vehicle_rcLand_bumper_front + 100016: vehicle_rcLand_bumper_rear + 100018: vehicle_rcLand_mudFlaps_rearLeft + 100020: vehicle_rcLand_mudFlaps_rearRight + 100022: vehicle_rcLand_suspension_frontLeft + 100024: vehicle_rcLand_suspension_frontRight + 100026: vehicle_rcLand_suspension_rearLeft + 100028: vehicle_rcLand_suspension_rearRight + 100030: vehicle_rcLand_wheel_rearLeft + 100032: vehicle_rcLand_wheel_rearRight + 100034: WHEEL_LEFT_FRONT + 100036: WHEEL_RIGHT_FRONT + 100038: vehicle_rcLand_wheel_frontLeft + 100040: vehicle_rcLand_wheel_frontRight + 400000: //RootNode + 400002: vehicle_rcLand_aerial + 400004: vehicle_rcLand_axle_front + 400006: vehicle_rcLand_axle_rear + 400008: vehicle_rcLand_axle_rearLeft + 400010: vehicle_rcLand_axle_rearRight + 400012: vehicle_rcLand_body + 400014: vehicle_rcLand_bumper_front + 400016: vehicle_rcLand_bumper_rear + 400018: vehicle_rcLand_mudFlaps_rearLeft + 400020: vehicle_rcLand_mudFlaps_rearRight + 400022: vehicle_rcLand_suspension_frontLeft + 400024: vehicle_rcLand_suspension_frontRight + 400026: vehicle_rcLand_suspension_rearLeft + 400028: vehicle_rcLand_suspension_rearRight + 400030: vehicle_rcLand_wheel_rearLeft + 400032: vehicle_rcLand_wheel_rearRight + 400034: WHEEL_LEFT_FRONT + 400036: WHEEL_RIGHT_FRONT + 400038: vehicle_rcLand_wheel_frontLeft + 400040: vehicle_rcLand_wheel_frontRight + 2300000: vehicle_rcLand_aerial + 2300002: vehicle_rcLand_axle_front + 2300004: vehicle_rcLand_axle_rear + 2300006: vehicle_rcLand_axle_rearLeft + 2300008: vehicle_rcLand_axle_rearRight + 2300010: vehicle_rcLand_body + 2300012: vehicle_rcLand_bumper_front + 2300014: vehicle_rcLand_bumper_rear + 2300016: vehicle_rcLand_mudFlaps_rearLeft + 2300018: vehicle_rcLand_mudFlaps_rearRight + 2300020: vehicle_rcLand_suspension_frontLeft + 2300022: vehicle_rcLand_suspension_frontRight + 2300024: vehicle_rcLand_suspension_rearLeft + 2300026: vehicle_rcLand_suspension_rearRight + 2300028: vehicle_rcLand_wheel_rearLeft + 2300030: vehicle_rcLand_wheel_rearRight + 2300032: WHEEL_LEFT_FRONT + 2300034: WHEEL_RIGHT_FRONT + 2300036: vehicle_rcLand_wheel_frontLeft + 2300038: vehicle_rcLand_wheel_frontRight + 3300000: vehicle_rcLand_aerial + 3300002: vehicle_rcLand_axle_front + 3300004: vehicle_rcLand_axle_rear + 3300006: vehicle_rcLand_axle_rearLeft + 3300008: vehicle_rcLand_axle_rearRight + 3300010: vehicle_rcLand_body + 3300012: vehicle_rcLand_bumper_front + 3300014: vehicle_rcLand_bumper_rear + 3300016: vehicle_rcLand_mudFlaps_rearLeft + 3300018: vehicle_rcLand_mudFlaps_rearRight + 3300020: vehicle_rcLand_suspension_frontLeft + 3300022: vehicle_rcLand_suspension_frontRight + 3300024: vehicle_rcLand_suspension_rearLeft + 3300026: vehicle_rcLand_suspension_rearRight + 3300028: vehicle_rcLand_wheel_rearLeft + 3300030: vehicle_rcLand_wheel_rearRight + 3300032: WHEEL_LEFT_FRONT + 3300034: WHEEL_RIGHT_FRONT + 3300036: vehicle_rcLand_wheel_frontLeft + 3300038: vehicle_rcLand_wheel_frontRight + 4300000: vehicle_rcLand_aerial + 4300002: vehicle_rcLand_axle_front + 4300004: vehicle_rcLand_suspension_frontLeft + 4300006: vehicle_rcLand_suspension_frontRight + 4300008: WHEEL_LEFT_FRONT + 4300010: WHEEL_RIGHT_FRONT + 4300012: vehicle_rcLand_axle_rear + 4300014: vehicle_rcLand_axle_rearRight + 4300016: vehicle_rcLand_suspension_rearRight + 4300018: vehicle_rcLand_mudFlaps_rearRight + 4300020: vehicle_rcLand_wheel_rearRight + 4300022: vehicle_rcLand_axle_rearLeft + 4300024: vehicle_rcLand_suspension_rearLeft + 4300026: vehicle_rcLand_mudFlaps_rearLeft + 4300028: vehicle_rcLand_wheel_rearLeft + 4300030: vehicle_rcLand_body + 4300032: vehicle_rcLand_bumper_front + 4300034: vehicle_rcLand_bumper_rear + 4300036: vehicle_rcLand_wheel_frontLeft + 4300038: vehicle_rcLand_wheel_frontRight + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 1 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: .00999999978 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 0 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs.meta new file mode 100644 index 0000000..0ecde01 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 075b0d7e54915624d9b915d597097b63 +folderAsset: yes +timeCreated: 1461060292 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_batteringRam.prefab b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_batteringRam.prefab new file mode 100644 index 0000000..a6ef280 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_batteringRam.prefab @@ -0,0 +1,493 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 33: {fileID: 3300000} + - 23: {fileID: 2300000} + - 64: {fileID: 6400000} + m_Layer: 8 + m_Name: prop_batteringRam_shield_bottom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100002 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400002} + - 33: {fileID: 3300002} + - 23: {fileID: 2300002} + - 95: {fileID: 9500000} + - 64: {fileID: 6400002} + - 65: {fileID: 6500000} + - 54: {fileID: 5400000} + - 114: {fileID: 11400000} + m_Layer: 8 + m_Name: prop_batteringRam + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100004 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400004} + - 33: {fileID: 3300004} + - 23: {fileID: 2300004} + m_Layer: 8 + m_Name: prop_batterinRam_innards + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100006 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400006} + - 33: {fileID: 3300006} + - 23: {fileID: 2300006} + - 64: {fileID: 6400004} + m_Layer: 8 + m_Name: prop_batteringRam_shield_top + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100008 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400008} + - 33: {fileID: 3300008} + - 23: {fileID: 2300008} + - 64: {fileID: 6400006} + m_Layer: 8 + m_Name: prop_batteringRam_fist + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100010 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400010} + - 33: {fileID: 3300010} + - 23: {fileID: 2300010} + m_Layer: 8 + m_Name: prop_batteringRam_pivot + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -.431346089, y: .361132145, z: .953755915} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 400010} + m_RootOrder: 1 +--- !u!4 &400002 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_LocalRotation: {x: 0, y: .329863369, z: 0, w: .944028735} + m_LocalPosition: {x: -4.17524529, y: .0229596086, z: -6.29387712} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 400010} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!4 &400004 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -.431344509, y: -.164200664, z: -.128499255} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 400010} + m_RootOrder: 3 +--- !u!4 &400006 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -.431346387, y: .829124868, z: .697426438} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 400010} + m_RootOrder: 2 +--- !u!4 &400008 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -.431343943, y: -.42945686, z: -1.04590571} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 400010} + m_RootOrder: 0 +--- !u!4 &400010 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100010} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: .431344032, y: 1.17436719, z: -.0155547177} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 400008} + - {fileID: 400000} + - {fileID: 400006} + - {fileID: 400004} + m_Father: {fileID: 400002} + m_RootOrder: 0 +--- !u!23 &2300000 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 815eebc9c07223a41b0b80c621e22f42, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 400000} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_ImportantGI: 0 + m_AutoUVMaxDistance: .5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2300002 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 815eebc9c07223a41b0b80c621e22f42, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_ImportantGI: 0 + m_AutoUVMaxDistance: .5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2300004 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 815eebc9c07223a41b0b80c621e22f42, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_ImportantGI: 0 + m_AutoUVMaxDistance: .5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2300006 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 815eebc9c07223a41b0b80c621e22f42, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 400006} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_ImportantGI: 0 + m_AutoUVMaxDistance: .5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2300008 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 815eebc9c07223a41b0b80c621e22f42, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_ImportantGI: 0 + m_AutoUVMaxDistance: .5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2300010 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100010} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 815eebc9c07223a41b0b80c621e22f42, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_ImportantGI: 0 + m_AutoUVMaxDistance: .5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3300000 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Mesh: {fileID: 4300010, guid: a4094918c5d1a3e4d954287b016bd896, type: 3} +--- !u!33 &3300002 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Mesh: {fileID: 4300000, guid: a4094918c5d1a3e4d954287b016bd896, type: 3} +--- !u!33 &3300004 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_Mesh: {fileID: 4300004, guid: a4094918c5d1a3e4d954287b016bd896, type: 3} +--- !u!33 &3300006 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_Mesh: {fileID: 4300008, guid: a4094918c5d1a3e4d954287b016bd896, type: 3} +--- !u!33 &3300008 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} + m_Mesh: {fileID: 4300006, guid: a4094918c5d1a3e4d954287b016bd896, type: 3} +--- !u!33 &3300010 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100010} + m_Mesh: {fileID: 4300002, guid: a4094918c5d1a3e4d954287b016bd896, type: 3} +--- !u!54 &5400000 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: .0500000007 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!64 &6400000 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 0 + m_Mesh: {fileID: 4300014, guid: cba410fa184e16b4ab6b02e29c9fccf0, type: 3} +--- !u!64 &6400002 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 0 + m_Mesh: {fileID: 4300016, guid: cba410fa184e16b4ab6b02e29c9fccf0, type: 3} +--- !u!64 &6400004 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 0 + m_Mesh: {fileID: 4300008, guid: cba410fa184e16b4ab6b02e29c9fccf0, type: 3} +--- !u!64 &6400006 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 0 + m_Mesh: {fileID: 4300010, guid: cba410fa184e16b4ab6b02e29c9fccf0, type: 3} +--- !u!65 &6500000 +BoxCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 2, y: 1, z: 3} + m_Center: {x: -0, y: .5, z: 2} +--- !u!95 &9500000 +Animator: + serializedVersion: 3 + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + m_Avatar: {fileID: 9000000, guid: a4094918c5d1a3e4d954287b016bd896, type: 3} + m_Controller: {fileID: 0} + m_CullingMode: 1 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ab6801945bb204a77adf7f79b86c9030, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 0} + propertyPath: m_IsKinematic + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100002} + m_IsPrefabParent: 1 diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_batteringRam.prefab.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_batteringRam.prefab.meta new file mode 100644 index 0000000..26dd916 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_batteringRam.prefab.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 2c05a6c9d0c6f4e4a90f835de5bdad76 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_bench_work.prefab b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_bench_work.prefab new file mode 100644 index 0000000..8f41587 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_bench_work.prefab @@ -0,0 +1,80 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 33: {fileID: 3300000} + - 23: {fileID: 2300000} + - 65: {fileID: 6500000} + m_Layer: 8 + m_Name: prop_bench_work + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 8 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: 0, y: .99698025, z: 0, w: .0776558518} + m_LocalPosition: {x: -4.73682213, y: .0130683184, z: 10.3053226} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} +--- !u!23 &2300000 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: c083291bdd49acd4b9a2f2426529439f, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!33 &3300000 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Mesh: {fileID: 4300006, guid: a914d028806c97545b10647e01ed305a, type: 3} +--- !u!65 &6500000 +BoxCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 2.31975317, y: 1.20000005, z: 1.27751851} + m_Center: {x: -1.1920929e-07, y: .589999974, z: 0} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_bench_work.prefab.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_bench_work.prefab.meta new file mode 100644 index 0000000..8da2559 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_bench_work.prefab.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: a1647117be9416043a0b23a47fe7caa2 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_blastDoor.prefab b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_blastDoor.prefab new file mode 100644 index 0000000..7466ab3 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_blastDoor.prefab @@ -0,0 +1,219 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 33: {fileID: 3300000} + - 23: {fileID: 2300000} + - 64: {fileID: 6400000} + m_Layer: 8 + m_Name: prop_blastDoor_frame + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 8 + m_IsActive: 1 +--- !u!1 &100002 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400002} + m_Layer: 8 + m_Name: prop_blastDoor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100004 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400004} + - 33: {fileID: 3300002} + - 23: {fileID: 2300002} + - 65: {fileID: 6500000} + - 54: {fileID: 5400000} + - 59: {fileID: 5900000} + m_Layer: 8 + m_Name: prop_blastDoor_door + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: 0, y: -0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 400002} +--- !u!4 &400002 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_LocalRotation: {x: 0, y: -.310218245, z: 0, w: .950665414} + m_LocalPosition: {x: 8.15254688, y: 0, z: -3.38784099} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 400004} + - {fileID: 400000} + m_Father: {fileID: 0} +--- !u!4 &400004 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_LocalRotation: {x: 0, y: -0, z: 0, w: 1} + m_LocalPosition: {x: .00202290714, y: 1.74085486, z: -1.48234918e-07} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 400002} +--- !u!23 &2300000 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: 2fbeef26a31cc284dab9699b5f502b55, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!23 &2300002 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: 2fbeef26a31cc284dab9699b5f502b55, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!33 &3300000 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Mesh: {fileID: 4300002, guid: 1785fa44e0d16684bafd4d2150922d1d, type: 3} +--- !u!33 &3300002 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_Mesh: {fileID: 4300000, guid: 1785fa44e0d16684bafd4d2150922d1d, type: 3} +--- !u!54 &5400000 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: .0500000007 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!59 &5900000 +HingeJoint: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_ConnectedBody: {fileID: 0} + m_Anchor: {x: 1, y: 0, z: 0} + m_Axis: {x: 0, y: 1, z: 0} + m_UseSpring: 0 + m_Spring: + spring: 0 + damper: 0 + targetPosition: 0 + m_UseMotor: 0 + m_Motor: + targetVelocity: 0 + force: 0 + freeSpin: 0 + m_UseLimits: 0 + m_Limits: + min: 0 + max: 0 + minBounce: 0 + maxBounce: 0 + m_BreakForce: Infinity + m_BreakTorque: Infinity +--- !u!64 &6400000 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_SmoothSphereCollisions: 0 + m_Convex: 0 + m_Mesh: {fileID: 4300000, guid: 9dbd61983d2eafc48bb30dd3a8a60174, type: 3} +--- !u!65 &6500000 +BoxCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1.99291778, y: 1.72263646, z: .20132266} + m_Center: {x: .0450803787, y: -.0257718563, z: 2.67807391e-05} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100002} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_blastDoor.prefab.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_blastDoor.prefab.meta new file mode 100644 index 0000000..5182158 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_blastDoor.prefab.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: e152124b703bfca458ddf907712a0da0 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_capsule.prefab b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_capsule.prefab new file mode 100644 index 0000000..ecc822a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_capsule.prefab @@ -0,0 +1,81 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 33: {fileID: 3300000} + - 23: {fileID: 2300000} + - 136: {fileID: 13600000} + m_Layer: 8 + m_Name: prop_capsule + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: .00758043164, y: -.208947852, z: .22451359, w: .95177573} + m_LocalPosition: {x: -11.7067566, y: 1.55471575, z: -18.3817825} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} +--- !u!23 &2300000 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: a777e8f773f26a341b9ac6aeab4de03c, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!33 &3300000 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Mesh: {fileID: 4300008, guid: 17c4a7f9c5bb77a41bf7d457d4049dec, type: 3} +--- !u!136 &13600000 +CapsuleCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: .255430698 + m_Height: 1.26909208 + m_Direction: 1 + m_Center: {x: 0, y: .634546041, z: 0} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_capsule.prefab.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_capsule.prefab.meta new file mode 100644 index 0000000..b11f8b9 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_capsule.prefab.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: e38f4bde01116364a8bf36cf30944f84 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_fan_large.prefab b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_fan_large.prefab new file mode 100644 index 0000000..dca6b32 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_fan_large.prefab @@ -0,0 +1,87 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 33: {fileID: 3300000} + - 23: {fileID: 2300000} + - 111: {fileID: 11100000} + m_Layer: 0 + m_Name: prop_fan_large + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -13.340209, y: 3.76252365, z: -.0458986275} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} +--- !u!23 &2300000 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: 2dc4286e6054b844c85a28527552a6fe, type: 2} + - {fileID: 2100000, guid: 459d3d86a4fe8344eaf13fa8a85eb2e8, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!33 &3300000 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Mesh: {fileID: 4300002, guid: a91467bc2f995b649bab090f4e25d82b, type: 3} +--- !u!111 &11100000 +Animation: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + serializedVersion: 3 + m_Animation: {fileID: 7400000, guid: 1cb9b63bd16cf4127932367934a917e5, type: 2} + m_Animations: + - {fileID: 7400000, guid: 1cb9b63bd16cf4127932367934a917e5, type: 2} + m_WrapMode: 0 + m_PlayAutomatically: 1 + m_AnimatePhysics: 0 + m_CullingType: 0 + m_UserAABB: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_fan_large.prefab.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_fan_large.prefab.meta new file mode 100644 index 0000000..3e61bad --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_fan_large.prefab.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: c36695da2470de24bb92b14f1cc8dfe5 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_floorBot_female.prefab b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_floorBot_female.prefab new file mode 100644 index 0000000..f3a6528 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_floorBot_female.prefab @@ -0,0 +1,105 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 33: {fileID: 3300000} + - 23: {fileID: 2300000} + - 114: {fileID: 11400000} + - 195: {fileID: 19500000} + m_Layer: 8 + m_Name: prop_floorBot_female + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: 0, y: -.288804948, z: 0, w: .957387984} + m_LocalPosition: {x: 5.67421532, y: -.840790987, z: 16.0279121} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} +--- !u!23 &2300000 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: b76d693bf145a414f9ea7ca858858911, type: 2} + - {fileID: 2100000, guid: cad8836a0271fc64ba3cee390f1690e0, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!33 &3300000 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Mesh: {fileID: 4300002, guid: 885d56c09d2eb8047921525d03066a55, type: 3} +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4b1fa7e3a0c82074cabef515d0737ee3, type: 3} + m_Name: + minimumCoordinates: {x: -10.3028498, y: 15.3892298} + maximumCoordinates: {x: 9.37759686, y: 24.07934} + speedVariance: {x: 3, y: 7} + newDestinationTimeVariance: {x: .100000001, y: 1} + newSpeedTimeVariance: {x: 1, y: 3} +--- !u!195 &19500000 +NavMeshAgent: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_Radius: .565453649 + m_Speed: 3.5 + m_Acceleration: 8 + avoidancePriority: 50 + m_AngularSpeed: 300 + m_StoppingDistance: 0 + m_AutoTraverseOffMeshLink: 1 + m_AutoBraking: 1 + m_AutoRepath: 1 + m_Height: .400000006 + m_BaseOffset: 0 + m_WalkableMask: 4294967295 + m_ObstacleAvoidanceType: 4 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_floorBot_female.prefab.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_floorBot_female.prefab.meta new file mode 100644 index 0000000..5e6dfc1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_floorBot_female.prefab.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 571e9825c52e03e46bb06b86b65c1af0 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_floorBot_male.prefab b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_floorBot_male.prefab new file mode 100644 index 0000000..befd565 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_floorBot_male.prefab @@ -0,0 +1,105 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 33: {fileID: 3300000} + - 23: {fileID: 2300000} + - 114: {fileID: 11400000} + - 195: {fileID: 19500000} + m_Layer: 8 + m_Name: prop_floorBot_male + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: 0, y: .873335719, z: 0, w: .48711884} + m_LocalPosition: {x: 4.55934763, y: -.852797031, z: 17.3860607} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} +--- !u!23 &2300000 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: b76d693bf145a414f9ea7ca858858911, type: 2} + - {fileID: 2100000, guid: cad8836a0271fc64ba3cee390f1690e0, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!33 &3300000 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Mesh: {fileID: 4300002, guid: 192cf0f9d8bc0c24097af14438cba8b3, type: 3} +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4b1fa7e3a0c82074cabef515d0737ee3, type: 3} + m_Name: + minimumCoordinates: {x: -10.3028498, y: 15.3892298} + maximumCoordinates: {x: 9.37759686, y: 24.07934} + speedVariance: {x: 3, y: 7} + newDestinationTimeVariance: {x: .100000001, y: 1} + newSpeedTimeVariance: {x: 1, y: 3} +--- !u!195 &19500000 +NavMeshAgent: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_Radius: .565453649 + m_Speed: 3.5 + m_Acceleration: 8 + avoidancePriority: 50 + m_AngularSpeed: 300 + m_StoppingDistance: 0 + m_AutoTraverseOffMeshLink: 1 + m_AutoBraking: 1 + m_AutoRepath: 1 + m_Height: .400000006 + m_BaseOffset: 0 + m_WalkableMask: 4294967295 + m_ObstacleAvoidanceType: 4 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_floorBot_male.prefab.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_floorBot_male.prefab.meta new file mode 100644 index 0000000..69cff7a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_floorBot_male.prefab.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 7d757e3d0cff5d34da76b0b4f8912531 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_hoverPad.prefab b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_hoverPad.prefab new file mode 100644 index 0000000..d38bc01 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_hoverPad.prefab @@ -0,0 +1,167 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 33: {fileID: 3300000} + - 23: {fileID: 2300000} + - 111: {fileID: 11100000} + - 64: {fileID: 6400000} + m_Layer: 8 + m_Name: prop_hoverPad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 8 + m_IsActive: 1 +--- !u!1 &100002 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400002} + - 108: {fileID: 10800000} + m_Layer: 8 + m_Name: hoverPadLight (point) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 8 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: 0, y: -.197009727, z: 0, w: .980401576} + m_LocalPosition: {x: 4.66927195, y: 0, z: -12.2060471} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 400002} + m_Father: {fileID: 0} +--- !u!4 &400002 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_LocalRotation: {x: 0, y: .197009727, z: 0, w: .980401576} + m_LocalPosition: {x: .0741960928, y: .676142812, z: .0440869294} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 400000} +--- !u!23 &2300000 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: ae4650ee2de42aa48b3aaab9406d1590, type: 2} + - {fileID: 2100000, guid: 7b967b2196e490c47afdd813892454bf, type: 2} + - {fileID: 2100000, guid: 56af1fd3aa350bf4a892638ce3fa968a, type: 2} + - {fileID: 2100000, guid: 7d31e38ed025b814bb0cecf3232c1345, type: 2} + - {fileID: 2100000, guid: 1d0dec0542968cf4ca08c9de1a21c9fb, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!33 &3300000 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Mesh: {fileID: 4300002, guid: 3acba0f8a314bd44d9ac03308e508d5e, type: 3} +--- !u!64 &6400000 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_SmoothSphereCollisions: 0 + m_Convex: 0 + m_Mesh: {fileID: 4300002, guid: 39dc512d6538d4642b19335bd97402e3, type: 3} +--- !u!108 &10800000 +Light: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + serializedVersion: 3 + m_Type: 2 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: .200000003 + m_Range: 2.49000001 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_Strength: 1 + m_Bias: .0500000007 + m_Softness: 4 + m_SoftnessFade: 1 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_ActuallyLightmapped: 1 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 1 + m_ShadowSamples: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_IndirectIntensity: 1 + m_AreaSize: {x: 1, y: 1} +--- !u!111 &11100000 +Animation: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + serializedVersion: 3 + m_Animation: {fileID: 7400000, guid: 181389ca88dbedc48bb1d26ae50e5925, type: 2} + m_Animations: + - {fileID: 7400000, guid: 181389ca88dbedc48bb1d26ae50e5925, type: 2} + m_WrapMode: 0 + m_PlayAutomatically: 1 + m_AnimatePhysics: 0 + m_CullingType: 0 + m_UserAABB: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_hoverPad.prefab.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_hoverPad.prefab.meta new file mode 100644 index 0000000..12a7c59 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_hoverPad.prefab.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 429158bc8dd68b9449ac645b0493fb6f +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_powerCube.prefab b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_powerCube.prefab new file mode 100644 index 0000000..2e9bbbf --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_powerCube.prefab @@ -0,0 +1,81 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 33: {fileID: 3300000} + - 23: {fileID: 2300000} + - 65: {fileID: 6500000} + m_Layer: 8 + m_Name: prop_powerCube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: -.500489593, y: -.500489652, z: .49951002, w: .499509901} + m_LocalPosition: {x: 12.0250454, y: 3.00257564, z: -16.1549835} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} +--- !u!23 &2300000 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: 5bbf6d6b22249714db6a0483ae425df3, type: 2} + - {fileID: 2100000, guid: 62731ab35455a5042b492e2a0f3ce0d4, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!33 &3300000 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Mesh: {fileID: 4300002, guid: 614fa0bc947f1964ab4ab6060d0756b4, type: 3} +--- !u!65 &6500000 +BoxCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_powerCube.prefab.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_powerCube.prefab.meta new file mode 100644 index 0000000..99dd83f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_powerCube.prefab.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 50086cb9c43bb994d83a34bcac80ef52 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_retroTelevision.prefab b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_retroTelevision.prefab new file mode 100644 index 0000000..b44969f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_retroTelevision.prefab @@ -0,0 +1,80 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 33: {fileID: 3300000} + - 23: {fileID: 2300000} + - 65: {fileID: 6500000} + m_Layer: 8 + m_Name: prop_retroTelevision + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: 0, y: .997313857, z: 0, w: .0732469782} + m_LocalPosition: {x: -4.37976933, y: 1.21160007, z: 10.1892252} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} +--- !u!23 &2300000 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: b727a44543cb7b14d849d02302af849b, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!33 &3300000 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Mesh: {fileID: 4300002, guid: d974aeab7455744449d764ce47e6ef94, type: 3} +--- !u!65 &6500000 +BoxCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: .822000146, y: .632865608, z: .634000242} + m_Center: {x: 0, y: .268010229, z: -.0169990696} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_retroTelevision.prefab.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_retroTelevision.prefab.meta new file mode 100644 index 0000000..a99b6b9 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_retroTelevision.prefab.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: d0dcef58cb05b0b47adbe025ead636c2 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_robotArm.prefab b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_robotArm.prefab new file mode 100644 index 0000000..a04fa10 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_robotArm.prefab @@ -0,0 +1,788 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 33: {fileID: 3300000} + - 23: {fileID: 2300000} + - 64: {fileID: 6400000} + m_Layer: 8 + m_Name: prop_robotArm_clawLow_base + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 8 + m_IsActive: 1 +--- !u!1 &100002 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400002} + - 33: {fileID: 3300002} + - 23: {fileID: 2300002} + - 64: {fileID: 6400002} + m_Layer: 8 + m_Name: prop_robotArm_clawTop_tip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 8 + m_IsActive: 1 +--- !u!1 &100004 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400004} + - 33: {fileID: 3300004} + - 23: {fileID: 2300004} + - 64: {fileID: 6400004} + m_Layer: 8 + m_Name: prop_robotArm_clawLow_mid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 8 + m_IsActive: 1 +--- !u!1 &100006 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400006} + - 33: {fileID: 3300006} + - 23: {fileID: 2300006} + - 64: {fileID: 6400006} + - 114: {fileID: 11400000} + m_Layer: 8 + m_Name: prop_robotArm_body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 8 + m_IsActive: 1 +--- !u!1 &100008 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400008} + - 33: {fileID: 3300008} + - 23: {fileID: 2300008} + - 64: {fileID: 6400008} + m_Layer: 8 + m_Name: prop_robotArm_plinth + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 8 + m_IsActive: 1 +--- !u!1 &100010 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400010} + - 33: {fileID: 3300010} + - 23: {fileID: 2300010} + m_Layer: 8 + m_Name: prop_robotArm_antennae + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 8 + m_IsActive: 1 +--- !u!1 &100012 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400012} + - 33: {fileID: 3300012} + - 23: {fileID: 2300012} + - 64: {fileID: 6400010} + m_Layer: 8 + m_Name: prop_robotArm_clawTop_base + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 8 + m_IsActive: 1 +--- !u!1 &100014 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400014} + - 33: {fileID: 3300014} + - 23: {fileID: 2300014} + - 64: {fileID: 6400012} + m_Layer: 8 + m_Name: prop_robotArm_clawTop_mid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 8 + m_IsActive: 1 +--- !u!1 &100016 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400016} + - 33: {fileID: 3300016} + - 23: {fileID: 2300016} + - 64: {fileID: 6400014} + m_Layer: 8 + m_Name: prop_robotArm_arm + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 8 + m_IsActive: 1 +--- !u!1 &100018 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400018} + - 33: {fileID: 3300018} + - 23: {fileID: 2300018} + - 64: {fileID: 6400016} + m_Layer: 8 + m_Name: prop_robotArm_hand + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 8 + m_IsActive: 1 +--- !u!1 &100020 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400020} + - 33: {fileID: 3300020} + - 23: {fileID: 2300020} + - 64: {fileID: 6400018} + m_Layer: 8 + m_Name: prop_robotArm_clawLow_tip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 8 + m_IsActive: 1 +--- !u!1 &100022 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400022} + m_Layer: 8 + m_Name: prop_robotArm + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 8 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.52319944, y: -.603779435, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 400004} + m_Father: {fileID: 400018} +--- !u!4 &400002 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: .20885542, y: -.485561043, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 400014} +--- !u!4 &400004 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: .43150723, y: -.63950181, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 400020} + m_Father: {fileID: 400000} +--- !u!4 &400006 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: .400310665, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 400010} + - {fileID: 400016} + m_Father: {fileID: 400008} +--- !u!4 &400008 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: .00923244469, y: 5.68434176e-16, z: .00354400394} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 400006} + m_Father: {fileID: 400022} +--- !u!4 &400010 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100010} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -.00358642568, y: 2.68908501, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 400006} +--- !u!4 &400012 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100012} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.61735678, y: .194579557, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 400014} + m_Father: {fileID: 400018} +--- !u!4 &400014 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100014} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: .669330418, y: .305577189, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 400002} + m_Father: {fileID: 400012} +--- !u!4 &400016 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100016} + m_LocalRotation: {x: 0, y: 0, z: -.189824313, w: .98181808} + m_LocalPosition: {x: .000777588226, y: 2.69161105, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 400018} + m_Father: {fileID: 400006} +--- !u!4 &400018 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100018} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.44726539, y: 1.90382445, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 400000} + - {fileID: 400012} + m_Father: {fileID: 400016} +--- !u!4 &400020 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100020} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: .433664322, y: .315884858, z: -8.881784e-18} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 400004} +--- !u!4 &400022 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100022} + m_LocalRotation: {x: 0, y: -0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 400008} + m_Father: {fileID: 0} +--- !u!23 &2300000 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: a323229f8f751234d936510e08c05bef, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!23 &2300002 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: a323229f8f751234d936510e08c05bef, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!23 &2300004 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: a323229f8f751234d936510e08c05bef, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!23 &2300006 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: a323229f8f751234d936510e08c05bef, type: 2} + - {fileID: 2100000, guid: e98a751f43ee8894dac8dad6c7228580, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!23 &2300008 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: a323229f8f751234d936510e08c05bef, type: 2} + - {fileID: 2100000, guid: e98a751f43ee8894dac8dad6c7228580, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!23 &2300010 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100010} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: a323229f8f751234d936510e08c05bef, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!23 &2300012 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100012} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: a323229f8f751234d936510e08c05bef, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!23 &2300014 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100014} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: a323229f8f751234d936510e08c05bef, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!23 &2300016 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100016} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: a323229f8f751234d936510e08c05bef, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!23 &2300018 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100018} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: a323229f8f751234d936510e08c05bef, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!23 &2300020 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100020} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: a323229f8f751234d936510e08c05bef, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!33 &3300000 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Mesh: {fileID: 4300008, guid: 46650462f25a2914787b3a152889f2d3, type: 3} +--- !u!33 &3300002 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Mesh: {fileID: 4300018, guid: 46650462f25a2914787b3a152889f2d3, type: 3} +--- !u!33 &3300004 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_Mesh: {fileID: 4300010, guid: 46650462f25a2914787b3a152889f2d3, type: 3} +--- !u!33 &3300006 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_Mesh: {fileID: 4300050, guid: 46650462f25a2914787b3a152889f2d3, type: 3} +--- !u!33 &3300008 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} + m_Mesh: {fileID: 4300048, guid: 46650462f25a2914787b3a152889f2d3, type: 3} +--- !u!33 &3300010 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100010} + m_Mesh: {fileID: 4300022, guid: 46650462f25a2914787b3a152889f2d3, type: 3} +--- !u!33 &3300012 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100012} + m_Mesh: {fileID: 4300014, guid: 46650462f25a2914787b3a152889f2d3, type: 3} +--- !u!33 &3300014 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100014} + m_Mesh: {fileID: 4300016, guid: 46650462f25a2914787b3a152889f2d3, type: 3} +--- !u!33 &3300016 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100016} + m_Mesh: {fileID: 4300004, guid: 46650462f25a2914787b3a152889f2d3, type: 3} +--- !u!33 &3300018 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100018} + m_Mesh: {fileID: 4300006, guid: 46650462f25a2914787b3a152889f2d3, type: 3} +--- !u!33 &3300020 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100020} + m_Mesh: {fileID: 4300012, guid: 46650462f25a2914787b3a152889f2d3, type: 3} +--- !u!64 &6400000 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_SmoothSphereCollisions: 0 + m_Convex: 0 + m_Mesh: {fileID: 4300044, guid: f18925b65336e944292bf981e6c76333, type: 3} +--- !u!64 &6400002 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_SmoothSphereCollisions: 0 + m_Convex: 0 + m_Mesh: {fileID: 4300042, guid: f18925b65336e944292bf981e6c76333, type: 3} +--- !u!64 &6400004 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_SmoothSphereCollisions: 0 + m_Convex: 0 + m_Mesh: {fileID: 4300046, guid: f18925b65336e944292bf981e6c76333, type: 3} +--- !u!64 &6400006 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_SmoothSphereCollisions: 0 + m_Convex: 0 + m_Mesh: {fileID: 4300032, guid: f18925b65336e944292bf981e6c76333, type: 3} +--- !u!64 &6400008 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_SmoothSphereCollisions: 0 + m_Convex: 0 + m_Mesh: {fileID: 4300030, guid: f18925b65336e944292bf981e6c76333, type: 3} +--- !u!64 &6400010 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100012} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_SmoothSphereCollisions: 0 + m_Convex: 0 + m_Mesh: {fileID: 4300038, guid: f18925b65336e944292bf981e6c76333, type: 3} +--- !u!64 &6400012 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100014} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_SmoothSphereCollisions: 0 + m_Convex: 0 + m_Mesh: {fileID: 4300040, guid: f18925b65336e944292bf981e6c76333, type: 3} +--- !u!64 &6400014 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100016} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_SmoothSphereCollisions: 0 + m_Convex: 0 + m_Mesh: {fileID: 4300034, guid: f18925b65336e944292bf981e6c76333, type: 3} +--- !u!64 &6400016 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100018} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_SmoothSphereCollisions: 0 + m_Convex: 0 + m_Mesh: {fileID: 4300036, guid: f18925b65336e944292bf981e6c76333, type: 3} +--- !u!64 &6400018 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100020} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_SmoothSphereCollisions: 0 + m_Convex: 0 + m_Mesh: {fileID: 4300048, guid: f18925b65336e944292bf981e6c76333, type: 3} +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7e6c8f64fe234457a9c765bd38ce1b9c, type: 3} + m_Name: + rotateSpeed: 5 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100022} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_robotArm.prefab.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_robotArm.prefab.meta new file mode 100644 index 0000000..52cac3a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_robotArm.prefab.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: e5f4c8b53fbf7c64cb14047eea9676ba +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_samoflange.prefab b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_samoflange.prefab new file mode 100644 index 0000000..b8a516c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_samoflange.prefab @@ -0,0 +1,80 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 33: {fileID: 3300000} + - 23: {fileID: 2300000} + - 135: {fileID: 13500000} + m_Layer: 8 + m_Name: prop_samoflange + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: .327831298, y: .733560085, z: .133596793, w: .580145001} + m_LocalPosition: {x: 7.25538492, y: .368270636, z: -7.14630604} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} +--- !u!23 &2300000 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: 90a6d0eda420a7245b40deb0ef7d2eb9, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!33 &3300000 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Mesh: {fileID: 4300002, guid: 2a28c0dcc5eeab0448036fcaadc8eb3c, type: 3} +--- !u!135 &13500000 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: .354665697 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_samoflange.prefab.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_samoflange.prefab.meta new file mode 100644 index 0000000..39b7524 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_samoflange.prefab.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 87ecace2782a531499e26f03edd00fe5 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_weight_ton.prefab b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_weight_ton.prefab new file mode 100644 index 0000000..a6c1fbf --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_weight_ton.prefab @@ -0,0 +1,67 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 33: {fileID: 3300000} + - 23: {fileID: 2300000} + m_Layer: 8 + m_Name: prop_weight_ton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: 0, y: -.244642735, z: 0, w: .969613314} + m_LocalPosition: {x: -10.4720869, y: 0, z: 9.58087349} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} +--- !u!23 &2300000 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: 7a203c71876230e46aaf68cd36c17633, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!33 &3300000 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Mesh: {fileID: 4300006, guid: 5bd4e044c4be59e4f9b0d7fa27583c0d, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_weight_ton.prefab.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_weight_ton.prefab.meta new file mode 100644 index 0000000..2863ec5 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/prop_weight_ton.prefab.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 977d17768a61c1d41893e754b0a5b6b0 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/vehicle_rcFlyer_clean.prefab b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/vehicle_rcFlyer_clean.prefab new file mode 100644 index 0000000..18f6990 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/vehicle_rcFlyer_clean.prefab @@ -0,0 +1,354 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 33: {fileID: 3300000} + - 23: {fileID: 2300000} + - 64: {fileID: 6400000} + m_Layer: 8 + m_Name: vehicle_rcFlyer_leg_frontLeft + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100002 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400002} + - 33: {fileID: 3300002} + - 23: {fileID: 2300002} + - 64: {fileID: 6400002} + m_Layer: 8 + m_Name: vehicle_rcFlyer_leg_rearLeft + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100004 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400004} + - 33: {fileID: 3300004} + - 23: {fileID: 2300004} + - 64: {fileID: 6400004} + m_Layer: 8 + m_Name: vehicle_rcFlyer_leg_frontRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100006 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400006} + - 33: {fileID: 3300006} + - 23: {fileID: 2300006} + - 64: {fileID: 6400006} + m_Layer: 8 + m_Name: vehicle_rcFlyer_leg_rearRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100008 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400008} + - 33: {fileID: 3300008} + - 23: {fileID: 2300008} + - 64: {fileID: 6400008} + m_Layer: 8 + m_Name: vehicle_rcFlyer_clean + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -.353048235, y: .611985385, z: .156807616} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 400008} +--- !u!4 &400002 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: .000345524662, y: .931221545, z: -.196267635} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 400008} +--- !u!4 &400004 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: .353048235, y: .611985385, z: .156807661} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 400008} +--- !u!4 &400006 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: .000345524662, y: .93317616, z: -.195717141} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 400008} +--- !u!4 &400008 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} + m_LocalRotation: {x: 0, y: .859717965, z: 0, w: .510769129} + m_LocalPosition: {x: -5.15932846, y: .00623905659, z: 5.72121859} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 400000} + - {fileID: 400004} + - {fileID: 400002} + - {fileID: 400006} + m_Father: {fileID: 0} +--- !u!23 &2300000 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: 879f5ab2d2a90614db855e052b3e2f20, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!23 &2300002 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: 879f5ab2d2a90614db855e052b3e2f20, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!23 &2300004 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: 879f5ab2d2a90614db855e052b3e2f20, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!23 &2300006 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: 879f5ab2d2a90614db855e052b3e2f20, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!23 &2300008 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: 27342824cec2ee64ab208b2396c0d82c, type: 2} + - {fileID: 2100000, guid: 879f5ab2d2a90614db855e052b3e2f20, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!33 &3300000 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Mesh: {fileID: 4300006, guid: dd8c80a5a447f04418da146781b05fd8, type: 3} +--- !u!33 &3300002 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Mesh: {fileID: 4300002, guid: dd8c80a5a447f04418da146781b05fd8, type: 3} +--- !u!33 &3300004 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_Mesh: {fileID: 4300008, guid: dd8c80a5a447f04418da146781b05fd8, type: 3} +--- !u!33 &3300006 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_Mesh: {fileID: 4300004, guid: dd8c80a5a447f04418da146781b05fd8, type: 3} +--- !u!33 &3300008 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} + m_Mesh: {fileID: 4300000, guid: dd8c80a5a447f04418da146781b05fd8, type: 3} +--- !u!64 &6400000 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_SmoothSphereCollisions: 0 + m_Convex: 0 + m_Mesh: {fileID: 4300002, guid: 917e29929631e264c97a7d174b0301e5, type: 3} +--- !u!64 &6400002 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_SmoothSphereCollisions: 0 + m_Convex: 0 + m_Mesh: {fileID: 4300004, guid: 917e29929631e264c97a7d174b0301e5, type: 3} +--- !u!64 &6400004 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_SmoothSphereCollisions: 0 + m_Convex: 0 + m_Mesh: {fileID: 4300006, guid: 917e29929631e264c97a7d174b0301e5, type: 3} +--- !u!64 &6400006 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_SmoothSphereCollisions: 0 + m_Convex: 0 + m_Mesh: {fileID: 4300000, guid: 917e29929631e264c97a7d174b0301e5, type: 3} +--- !u!64 &6400008 +MeshCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100008} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_SmoothSphereCollisions: 0 + m_Convex: 0 + m_Mesh: {fileID: 4300008, guid: 917e29929631e264c97a7d174b0301e5, type: 3} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100008} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/vehicle_rcFlyer_clean.prefab.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/vehicle_rcFlyer_clean.prefab.meta new file mode 100644 index 0000000..22a513f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Prefabs/vehicle_rcFlyer_clean.prefab.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 40694183cef852946a4713a37b36d6d3 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures.meta new file mode 100644 index 0000000..f5d5e37 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 56c5c72cd14a8f440bed89550fd2a4f7 +folderAsset: yes +timeCreated: 1461071543 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/char_astrella_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/char_astrella_dff.tif new file mode 100644 index 0000000..27fe1a0 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/char_astrella_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/char_astrella_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/char_astrella_dff.tif.meta new file mode 100644 index 0000000..6e221c9 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/char_astrella_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 9a9adb4889d26a64d8cfa5fe285152b9 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 4096 + textureSettings: + filterMode: 2 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/char_astrella_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/char_astrella_nrm.tif new file mode 100644 index 0000000..1831d17 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/char_astrella_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/char_astrella_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/char_astrella_nrm.tif.meta new file mode 100644 index 0000000..5d31be9 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/char_astrella_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 99f57bced835c774587e73b42b4b2f05 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 4096 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/cube_env_robotLab_sharp.cubemap b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/cube_env_robotLab_sharp.cubemap new file mode 100644 index 0000000..a085d15 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/cube_env_robotLab_sharp.cubemap @@ -0,0 +1,33 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!89 &8900000 +Cubemap: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: cube_env_robotLab_sharp + m_Width: 256 + m_Height: 256 + m_CompleteImageSize: 262144 + m_TextureFormat: 5 + m_MipMap: 0 + m_IsReadable: 1 + m_ReadAllowed: 1 + m_ImageCount: 6 + m_TextureDimension: 2 + m_TextureSettings: + m_FilterMode: 1 + m_Aniso: 1 + m_MipBias: 0 + m_WrapMode: 1 + m_LightmapFormat: 0 + m_ColorSpace: 0 + image data: 1572864 + _typelessdata: 51ffaa3a53ffb64050ffad3646ffa73541ff9a363aff8b3344ff9b3c3eff872e45ff91304dff953349ff913144ff983248ff9a354fffa23c52ffbf484bffba4051ffc64954ffbf3a4aff9b2e55ff9b3052ff922d59ff933059ff922f64ff9a3450ff8b2c29ff732244ff782854ff722655ff892f41ff78263eff732544ff7a2644ff752542fd702341ff772336fb6f2350ff792746ff792847ff7d284bff7e2b50ff8b2b41ff742549ff7d2b49ff7d2956ff8e2e52ff8d2e64ff8c3360ff803057d15f22599d471c51bd561f54d8652547ee6f2658fe7d2d4bfc6c245dff7d2f57ff792c57ff7f2f51ff812e40ff7c2948ff852d41ff882c4fff852d51ff8c314fff7c2c4bfe6f2846ef62235cf067295bf0632664f66c2c45ff7d3349ff8f366affb74f5dffa94758ffac4841ffa6414cff9f4136ff812a46ff8b2f4bff88303dff85312dff7d2e41ff843234ff7a273fff802e45ff8d3553ff8b3446ff9c3d3eff943642ff812d43ff85324bff893741ff892d3dff883135ff7f283fff8c2e42ff7e2d35ff6c233cff6a253cfd682632f45e2232ef5d1f2cf7642235f35f2253fe702e3efd6d283bf9692946f869253beb632834e2581d40e15a2149ec66244cf46d2c48fe752848f86c2651fc742b4ef268264df0662556f76e2943e15e2045e4632347ec6a214ef875264df674264dfc7b2541ed6c2338db5d2041e6632243f06a2649ef6c295fea722d64ef723057e4692a53eb6f2a5af5732f5aff853663ff9b3d51ff903364ffa03750ff8c2d4fff882d5bff9c3159ffa1395cff973262ffa0384fff872c48fe7e2a32f86f2647fd6f2850ff862d4bff832d44ff8d2f42ff8e2f42ff912f44ff852c43ff902e3bff892b49ff882e4eff943345ff8a2f47ff8f3252ff97363eff8a2d43ff8a3048ff8e3253ffa13650ffac3a62ffca4662ffe65b5bffe35141ffcc3e4bffc6433affab3442ffb83c55ffc0444fffcd454fffb23f55ffba4258ffb64056ffbd3f3dffb43748ffb5393bffb53545ffb63745ffbb3b49ffab3352ffaa393fff952f3cff8b2d47ff882a59ff91335cff913546ff732758e65a1e5ec64c1b5cbe48174fc34d1b3cbe441743c14d1a32bc461549c24b173ebf481536c14b1c30bb461733c1481631c4481541d3541d4fd5561e49d9592041d9571e45be4f1e559e411b49ad431c49c8531d3ccd531a37cb51193dd8571b44d6541d36cb4b1842c6471838cd4e1a32c1461835c84e1b2fc94c182ecc4d1a3ece501d51dc5e263ccf511b3fc54b1b3ec74d1937c147183dc84c1a4be664233ddb5a1f44ed68223de4601f44e5612154e8632352e562244be85f2043e25f1f44e05e203ef0692249fc72224fff822949fe722141ff742040ff74253aff70263fff8e333eff7f273fff832548ff822641ff7b223eff7c2244ff822551ff934155ffb3485bffb34b51ffb0454bffb2464cffa54450ff984058ffbf555bffa54b61ffa64f65ffbc575dffbd5c5affb15476ffd4676effdd6862ffc85960ffdb625effd15b5affc45063ffc05486ffdb657fffd2637fffca627effcd607cffc76266ffbd5c4bff98436bffa75359ff9f4c61ffa64f58ffac4d56ff9f4658ffa74c58ffa0495cffab4c50ffaa484fff9c446cffb05878ffc4617cffc56463ffa85267ffa14e5effa94d71ffb35873ffc86166ffba558bffd26a7effbf5e78ff9e4c87f786416efa7d3961fc7d3a6dff9f4a75ffa45171ff9f4f67ff904778ffa2535cff8d4252ff883d54ff974469ffae515dffa04769ffa5506affaa5168ffa4506bffa1507affa45b82ff9a59a3ffb3718cffa16096ffb96f8affdc8176ffe88994fffdac99ffffb378fff99875fff79146ffbe635bffd57674ffec8975fff98d7afff19160ffdd7d3fffb0564dffce696ffff39078fffe9a80fffc9c90ffffa78efff6a063ffde7c67ffde7b6dffef8c66ffd6784effc86965ffef7d72fff28157ffd56e57ffb66551ffa85b4cffb35e53ffb25e5bffb4635cffb66471ffb4686effc36c67ffad636bffb96b5effac6258ffa35651ff964f70ffcc6879ffc66f75ffbd676effac5f77ffc26864ffa75868ffad5f74ffac5e79ffa85d6fffaa5b6bffa65976ffc16275ffba5f66ffb45760ffb45566ffa9566dffaa5976ffcf6e6effb86078ffbf6670ffc9656bffb86273ffa85b92ffd17383ffcc6b7cffd06a70ffdb6c8bffe77373ffd76375ffd06493fff17586ffe46f8fffdf7395ffed7887ffd8705effbc5c54ff9f4b7affb6626affc0636bffc4645affc65d5bffc05b5bffcf665affc45a5cffc35a46ffbf5265ffcd636bffc86a7fffea7974ffdd7366ffcc6868ffc76460ffd26473ffe5767affff886ffffd809affffaf7bffff9883ffffa69dffffbe6dffff926bffff8f78ffff9e76ffff9d6cffff8c6dfff98a85ffffa272fffd8e56fff46f5bffff7d6effff8b60fffc7669ffff7d6affff8163ffff795ffff57572fff78989fff98e80fffa9281fff68b91ffee8662ffa5525eff7d3e82ff824778fe814560fd763c58fc70352edf562245f2652f54f96d3259fe79365cfa763841f2672e29e15b2344fe733550ff7b3a5aff803f77ff8e4992ff8e4d67f16f3753e5663057f06b3354fe7b3d48f86c3140fe723460ff96455eff85404cfe7b3945f268344bf26b3647fb773951fe7c4050ff7d3e4ffd763b5ffa733a57fe753958f96d3759fb723a54fa743c48f8703347f96d3365ff964362ff89425eff884060ff803d65ff8d414fff793757ff833e61ff883d5eff7a3a55ff853b52ff853a5bff973f5dff943e48ff883345ff903951ff973e57ffa8495dffba5256ffa9475fffb24c52ffc1504bffb34c5effb04a73ffc65654ff7b3751ff82373dff7f3121f569225fff94466bff944567ff984370ff97486eff9b4c5cff954867ffa34d69ffb85471ffb4566dffb4546affb45168ffb44e73ffb74f71ffb75062ffb24b6dffbe547bffd26087ffd56662ffa44c73ffb45879ffbc5d51ff9e4845ff914251ff974450ff94414eff954459ff9c4843ff943f5dffa54e51ff9c4651ff933d44ff963d56ff9e4973ffab5263ff9f4961ffa1495dff98446dffab4e77ffb4557cffb85771ffa74c82ffb3548affaf5588ffa25183ffa24f86ffa15371ff8c4263ff853d6dff8d4577ff9a4968ff904574ff95466eff8c4758ff7c395bff873e5cff8f4177ff924b62ff8a4563ff964a60ff89436bff9d5163ff8b4577ff8d4b81ff985884ffba6c96ffee8e7effdb7979ffd77870ffd47769ffca7180ffee886fffdc7684ffe6886cffd97b5affbd656fffd77976ffea867affe1867cfff18d6affea7e82fffc9272ffea876bffd87890fffa9a95fffea08cfff9967bffdc7b63ffc16972ffd2757fffe08071ffd27464ffd36f63ffd06d50ffb95a5effc76a5dffad616cffba6753ffb05b6cffcd6e64ffd66b89ffdd7c68ffae645fffb46169ffaf6462ffb15f70ffc46c7cffd87887ffde7879ffd77470ffc1695affa95864ffb05f67ffa25570ffb45f7bffbf6669ffa75763ffa05462ffaa5863ffaf5766ffb65a28ff812f5fffb25a75ffd2718dfff48781ffe3777cffcd6e64ffa65670ffb9617bffd06875ffc3617affca6776ffd06575ffce626fffc75d84ffdd677dffd5636bffcc5c89ffe06c84ffdd6982ffcf6974ffbe5f72ffbe5f81ffd47056ffa45350ffaa5065ffbb5e4affa8494fffa4505affae544cffa84d5cffb5584effab4d43ffa44644ffaf4e56ffae5163ffc45d66ffc05d6bffcb646effde6b79fff07887ffe97a78ffe8737efff9819bffffa094ffffaa80ffff8e8effff9f78ffff8a77fffd886bfffb8177fffb8973fffd8074ffff8085fffe8e50ffce6065ffec7455ffd86567ffea7769ffdc735fffda6e5affd66971ffee7c63ffe46f6effdc737cffd97a7cffc46f84ffb26683ffac5f6aff8e4968ff88466dff844659ff7b3d70ff874667ff814260ff7a404ffe703546f1692f5eff803f6eff874864ff7f4456ff82417cff9a5274ff914c6cff834567ff83428fff975578ff8c4a6eff874675ff814458fb753863ff7e3f6dff86475cf8773c60ff874151f6713559ef6f3856e8673864ef6f3c4de7673053f4733a5dff7e3c64ff823f6df3733e53e867355efc7a3f5af16d3964ff793f5efe824180ff954e7cff954e6cff89455cff8b4653ff7f3e5ffe7d3d65ff824068ff844067ff7e3c61fb773a5ffe7b3d5aff7c3a55ff7d3637ef6e2b2ae7672463ff95486eff9e4b68ffa74c6eff9f4d67ff9e4c5effa24c67ffa74c65ffb04d6cffb1504f5e270e4a5d250e3c5c250d4f632b1058662e1262652d1156622b0f615f28106560280f5c5d260e74652d1261622a0f71632b107d662e118168301271642d105f642d0f5d622a0d61622a0e63652c0e65642b0f595c270d575b250d625d270f7f6831145458260e3754220b3853210a4f57240d4155230c4158250c515d270e445d270d4e60280f4861290e3a5a230b3c5b230b4b5d250c5a62280e5f62280e6c672b0f62662b0e6f6b2d106e6d2f10726f3010756d2e107e7231126d6c2d106f6d2c10706a2b1163692a0f58692b0e5a64270e68672a105e61260e555b210c5e61260d43571f0a4b59220b615e250e555a220d6861271086662b125c5e240e675f250e6c652810896d2c145464250e4e61230d746b2a11806e2b12836c2b136163251069652510806e2c13716828116f6527117f6629147e61251275602411565d230f635f241063612610545e230e5d652911575f25105e602510626125108267291387682b146e622912625f25105a5c230f646226107a662b126e6227115e602610525d230e515c240f7261291365672b125f6e2f135e6d2d12656829127b6829147966281464672a1368682b14656b2b12747331166f712f1568702f145c64281155652811566d2d1359712f135a732f1363783214677530135d732f1358702d1155742f12516e2b113868280e596f2e12567130137176331562753213737432156f7632156d763114717934167d833b187f813c197d813c17b18c441e7b843e18737e3a165c7a36126f803b156a7f39147e843c166c78361465712f126b7633157a7b38177a79391848652b0f3560280d5b672d114d62291046632a0f56662d104262290f51662d1256692f1247652b104360280e52622a0f545e290e64612a106f683012746930136b652d117d693114806a311474642d128b6d321576672e1377672d127a672c136a61281066652b115b5e260f66602710595a230e615c240f6c6329114456200b4b57210c5f5e250f535f230e5e6829108b702f146268280f6968290f636929108f6e2c145e63240e4d5e220d6262250e7466271084662812756025106c5c230f7f6428116d5f240f715f2510715c24117f6226137a5f2511575a210e5e5a220e655c24105759220d4d5b230d5559240e6058220e5657210d7d5f2611875f2611735d25105d58210e55561f0c5859210d6e5e260f6857220e5a521f0c4f521d0b5b57200d5354200d5958210e5461270f5c64290f6a62260f705b22106c59210f5558220d6557220e53541f0c675d260f6a5d240e655d250f5854200c4f531e0b4f58220d4f59220c535a230d585b220c5859220c5258210b5556210c4f56200b4d56200b37511d094d55210b4f59230c695f280f5e5e270e5d5a240d615d260e635e250e555d250d6e642a1064642b106e652b0f5eff833941ff792f4aff89344bff8e3b4dff893b5bff92415dff9f484eff7e3866ff934472ffa24a81ffb0556fffae5175ffb65489ffbb5b7effa54c76ff96436aff994265ff963f75ff9d4588ffa14884ff9e476dfd843c58f578345df97f3762f57c3c7aff93484de5723036d3632645de6d2d4adf713350e271305aec77364ae06a2e4ee56f3350e973354ce26d2f52ea73325cf1783341e0682770f47a3870f8813a6df87f3967ec71346bed733475fa7c3970ff8b3f76ff9f4975ff9e4766fa7c386edf69326dd8683160ce612c5cc45a2a5fc95e2c65cb5e2d50c8552869dd683252d05c294ecf5c2952d5602a43ce592755d25d2b64e1693062d9622e75e1673569d962315bd25c2e7de46a397ce76e3965db643277e26c377add683775db65357ded713e7aff854984ffa55b88ffb36386ffab6490ffab656fff975566ff9e5575ff965676ff9b5867ff914e50ff8b446affa2555fffa0516aff9f5474ff9f5380ffa25a7cffaa5d72ff98526eff914d79ff9a5279ff9c5175ff8e4d6eff904d80ff9c5748fb723664ff984d6dff944d76ff995293ffa75d90ffa25ba4ffb1685cfb794159fb7a4075ff864c6bff814479ff8c4d50f8783857fe813c55fd7f3a56fc7e3c52fc833d6bff924965ff8a427dff9a4b86ff934a62fd833e8bff965065fe87404ef77e3853ff893a58ff91435bff98486dffb45768ffc9615dffad5275ffca6383ffd96a8bffc76480ffb05689ff994b97ffab578fffa95479ffa14c7effa9507affa54d83ffa84f90ffa64f88ff9b4a6df67c3b56ed713263f97d397cff924e77ff984c5bfd873e3df2712f4efd7f394cf87f3a5dfd863e5efe8a4153fc813b57fe874060ff924756f9873d57ff883c60ff883c4ef8833571ff97477fffa85174ffa94f71ff994a79ffa14e87ffa75479ffa44e80ffa9527cffa9506eff9a4a76ff9c4d77ffb85769ffa55161ffac53a2ffdb7951ff984659ff9b4b6cffb75b51ff9a4653ff9f4a55ffaf504aff9d4960ffaa5369ffb8596affb15969ffab5770ffac5b65ffa4567dffad5e7dff9c5477ff8a4b7cfa7f4274f4733d6ee9693677e769386ce264357eef713c82f0753f7eee6f3e86f173415edc613363e86e3967dc61346ee0683863d5613151d15d2d57da663053d764305bd45c2d68d65f2f71d9633371f2723b68fe7a3d65ff89446eff924964ff803d6ee96a366ce46a3778e96f3c3fcb532560ee75386bf3773b79f97b3e83f3783d87fa814381f276404ad3582a59d65e2f74e169386be367346eee70394ce2652c4ede622c50e3652c51e5692f4ce96b2e66f77a385bf174337dfd853e7ef77f3d56e2642c77f878395cef6f3045e465294df1712c53f4793459f6793765fc803958fc7c375aee6d326bf7793677fb7f3877ff8a3d6cff9c447effa94a78ffaa4a58ff9a4354ffa8444cffa0424affb2494fffa2445effab4a54ffa04554ff954165ffa74d6fffb75660ffbb5377ffd4667cffd86589ffda6a86ffc85f87ffc96083ffd0649bffdc6c61ffb84e7cffc95f7cffca5f90ffbf6162ff9b4951ff97446cffb85d7effc6666fffaf585affad514eff974451ff9d4a49ff8f4154ff974847ff8f4648ff944940ff8f425effa44d4aff924365ffa84d43ff903974ffb25681ffb65c61ff9b495cff97466bffa24d74ffaf5675ffcf627bffe97184ffee7875ffb45a85ff9e5375ff8c4768fe824066f97d3e63fe813e63ff7e3d60ff803e72ff8c4764ff8b4258ff8a3f62ff994847ff7c3459ff853f67ff944979ff9b4d5cff85404dff7a3b58ff834462ff8d4a76ff995674ff965469ff8d4d82ff9e597bff97566fffa15875ffc1727bfff28e8dfffea988fffe9f93fffca770ffec897afff59491fff59d93fff8a47affe58c8afff8a370fff58976fffa9365ffea827bffe88994fff89e95fffda59bfffca592fff4937cffdf8066ffc86c67ffc66d63ffc66d51ffbe623cff9d4d5cffd96c5dffba666fffbe71a4fffb9fa6fff79d88ffd58169ffbf6c7affc87691ffe78a8dfff18768ffc06563ffbb6061ffc06153ffbc5d5bffc36065ffc56679ffd5707affd57190ffec8099ffe77fb1ffeb9077ffc26869ffb95f66ffc6605fffc56162ffd56866ffe0737cffff9265fffe8a6effff8f81ffffa892ffffbc73ffff879bfff79196ffd774a7ffee84a9fff58aa2fffb929ffffd93b4fffc9c79ffe87486ffe57796ffe4799dffd37663ffa95567ffb7607affd67786ffdf7b88ffe1814fffbc595affba5d58ffba5f55ffb35b58ffbd6145ffaf594cffb85f40ffa44865ffd16851ffc05b6dffd5664dffbf5279fff07988fffa896dffea7468ffdc6e74fff07b87fffa8983fff98488fff78893fffa918efff78f8efff78d79fffd8974fffb886bfffc8e62fffe8969fffd896efffc8d86ffffa564fffb856ffffe9773ffff9e4fffe96b6bfffc8670fffe8f7afffe925dffee7851ffd66d64ffeb8157ffd36b81ffd67d7effbc7077ffa25b88ffa65e6bff894867ff814167ff7e4375ff8b4b80ff965179ff924f7fff945260ff874767ff86477aff884d75ff844c66ff824873ff944f55ff854162ff8c4a58ff874568ff82447eff894b77ff9f557fffc66c6effc96963ffc6655bffa8545cff8c475fff8f4b45ff823d39fe763757ff9c4a60ff8d4a7cff9e5b96ffba679dffcf7175ffa35759ff824473ff925085ffa45a73ffab545fff95485cff984852ff914350ff964554ff95445dff9b496fffae5676ffb15782ffb8598dffb65d82ff9f5166ff944759ff934254ff984152ff93414eff9a4158ff93436affa14b50ff893c58ff813963ff8c3e72ff9e465affa04574ffc45a70ffde6178ffd85c5dffaa4852ffa34257ffb04659ffb4484cffa9435affad4a4bff943a50ff8d3c73ffb7545eff994179ffc95a7cffcd5d81ffd3608cffe36e8affdd6f79ffcb5b7affc85971ffc55372ffc85768ffc35468ffc0517bffbd5953ff8e3d4eff984866ffbc5d67ffab4f4eff9b435bffad504dff9d4243ff8f3f36ff8a3a43ff8b3c43ff80353fff95473bff893944ff933c39ff89373dff8a3749ff973c69ffa5486bffa94d58ffa2474bff8d3b5aff99415dff9f4258ffbe4e57ffd85870ffed6b6cffd45e73ffa35275ffa44d66ff8c425eff7e3948f970313ffc6d2e3fff7a316bff884161ff954262ff99436bff98475bff984550ff8e3f6eff94484eff8a3b56ff813755ff873e50ff8c465dff8b464fff89426aff8d4871ff8f4d56ff89406dff8e4a61ff904652ffa45171ffe27b64ffec7940ffc0556bffed8066ffe4786cffd97656ffd26e7affd77d67ffc76e49ffb0565dffe0726cffe97c77fffe8e79fff58580ffe37e89fffb8d7cffe67d58ffc2615dffc15b72ffd6735dffbd5b4fffbc5d40ffaa4b3fffae5052ffc65b4affb05266ffa85a65ffbf667effd07189fff17f53ffb3576fffc66c86ffde778cfff27d5affb95660ffbf5b61ffc65d48ffb85541ffae4b4dffb85251ffc96060ffd1608cffef80aaffed8270ffc15f69ffc4607bffca695effcf5d64ffc85c53ffd45c51ffd45d62fff77366fffd8067ffff8878ffff947affff9984ffff9592fffe899bfff3808dfffd869affff9186ffff8790ffff8a79ffff7c80fffc7e7ffff07676ffe77089ffcc684cff904663ffce6b69ffdb7560ffbe5964ffcd674dffb75356ffc65e47ffa75048ffb15545ff9f4650ffb65937ffae4f33ffa64253ffc15433ff9e3f4dffb64a60ffca5869ffe16654ffe6625fffe9695bffd05f68ffef6b55ffef6372fff37279fff17477ffe47086ffee7a6fffde6d6affe87171fffd7f63fffe7f42ffd65d3fffd2574cffd96163fff4746cffff8673ffff936dffff8955fff97268ffff8b7afffe8b43ffd25965fffd7a4cffd9694dffe26f4fffcf6781ffd06e74ffa0576aff954a55ff843b67ff824159ff7c395fff823f6cff89455fff8a435aff8a417bff904c55ff7e3c6aff8a4872ff8e4a71ff81455bff783c3cfe73313fff70316bff954d64ff8e4663ff95486cff994b76ffb25a64ffc45e45ffb24d67ffc9605cffae5449ff80394cff8b3f3aff753259ff9d485dff9a4649ff7e3a52ff7f3b71ffab5583ffab5962ffb64f6aff9c4d6dff8d4795ffab5946ff853664ff974566ffaa4e48ff954032ff873636ff823242ff994148ff9f415effac4a9effc56065ffa54867ff9f4750ff8f3b5aff934052ff983d5bff9b414cff993d55ff984250ff823657ff7f386aff9a4761ff83366fffa5466effb34c7affce5c8cfff0728afff77672ffc05a4dffa94862ffbd5475ffcb5f50ffba5354ffb55054ff9e4659ffa24c5effa84f70ffb55981ffc26087ffc66386ffcb638dffda6c6effc85c85ffd56567ffc4557fffd6637bffd4647affd3637dffd4657effc26270ffac5660ffa24e92ffcc7280ffd27688ffc0676fffc2645affa64e54ffac5745ff914253ffa45151ff9d4c47ff9f514effa24f4fffa84f50ff944749ff9a4854ff9f4779ffc26658ffa24e63ffad565cffa34e58ffa64c66ffad5272ffd16581ffff8688ffff9977fffc8168ffdc6d82ffeb7568ffa95568ff8e494eff7d3a54ff82404aff7a3843ff733641ff823661ff9c495eff974861ff94485aff8c4562ffa14768ff9a4c60ff984963ff9f5057ff8a4869ffa15b70ff99576fffa05870ff995659ff8a4959ff8d4862ff9c5367ffb66672ffcc7480fffa9279fffe9673fffd9784ffffad7cffffa67effffa6a4ffffc485fff9a68effffb094ffffbc83ffffad8cffffb686ffffae9fffffc096ffffb589ffffa17bfffb935bffd67177ffe6866affdb787bffee906dffdb7c4fffcd6c57ffc86a5affbf6964ffbd7062ffb86b80ffed8e82ffdf867cffe58578ffe0839bfffb9f84ffe7856dffcb6d5effc86250ffc35c5affd26a4cffc45d53ffc85e54ffd0676dffdc739bffff9493ffec868dffe18099fff08e46ffbc576effe37792ffffa066fff07f68ffff8a72ffff9d6bffff9c73ffffb197ffffdb93ffffcc93ffffbbaeffffc8b4ffffc1a8ffffb695ffffa38bfffe9098ffff9aa6ffffac81fffd878affff8e8afff78c8cffe68477ffd47489fff08e8bffffa58cfff08c8afff18b66ffd67161ffd27064ffdd7e5cffcc6c5bffce6c4dffda7252ffd67053ffce6556ffc76447ffc05c62ffda6a70ffea7b70fff4805fffe97869fff9805dffec767affff8d6effec7c95ffffa2a1ffffad9bffffb178fffa8980fffd8f71fff68772fffc8f5efff48361fffb8b5efff37e4cffd6704cffef756bffff9d78ffffab79ffffaf6dffff976cffff9575ffff9c6bffff9167ffff955dfff68363fff68f6dffe68475ffd97c83ffbc715aff904c65ff924b55ff844065ff914d63ff894771ff9a5271ff9f5551ff8b4364ff8e4a63ff8f4b68ff904d7bff975272ff92527aff99567cffa05b68ff8e4c6dff9a526affa3567cffc16b80ffd67873ffd6708bfffa8d46ffcd5d5bffc3635effb2596cff9f5869ff9e554fff924955ff9d4e43ff7e3d5eff9c5454ff89476effa85d82ffb96884ffc26b70ffa7596fffa25787ffb5635dff944765ffa95247ff9d4356ffab5143ff984154ffb14e49ffa74a5effb1527affc26288ffbe606bff9b4b7effaf5a5dffa14865ffa8517bffc05f69ffaf555cffa44d5fffa24e57ff8a4062ff9e5067ff9c4b65ff90406dff944284ffae5382ffc25984ffd56467ffd45c78ffc25661ffb45140ffb04653ffb94f58ffb44d4cffa6455affa54b4bff964166ffaa527fffbc5d79ffb95b8dffc66587ffbd5f8bffc46282ffc66063ffbe5177ffc95d97ffda6b70ffc5589cffe46f88ffd96a61ffb1507fffc1626affa45179ffb15d7fffbf6289ffc36667ffad566fffb8584aff9e4953ffae5742ff96454aff9f4b52ffa45352ffac5349ff9c4861ffb25941ff903f5cffaa4f71ffc46568ffb15964ffa95367ffa7525dffa14b6bffb2547bffe7727affff8285ffffa26dffff8871fffe8859ffd76673ffcc6462ff914757ff7c3d55ff823e4aff7f394aff7f3a45ff843a57ff8b4052ff8c4067ff9d4a65ff9b4b65ffa0485bff994552ff954748ff86415bff8f4c7cffa5616cff99575dff8e4b65ff914d6cff9f5661ff995359ff9a5274ffac636effb16576ffc97469ffd27485ffffa77effffa787ffffae71fff89394ffffbd99ffffc87effffaa71ffff9d98ffffc393ffffbe85ffffa78bfffcac93ffffa38effffb069ffea8374ffee896dffd07b6dffd37a77ffe1824affbc6244ffb05a47ffc3665effc36e70ffd07b63ffc97177ffde8477ffd88272ffcc7881ffda8572ffdc7b7affe17d6affcf6f52ffb95a42ffb65145ffc05747ffc55843ffc55865ffe77e73ffde728dffe78484ffde7d89ffd67b95fff08f67ffd66e4dffc55c5dfff07777ffff8a6cffff886affff936effff9e7dffffb890ffffc8a5ffffe5a5ffffe2b4ffffebb7ffffe7abffffce95ffffa473fff77caeffffa89dffff9badffffa7a0ffffa096ffff9795fffe967cffe37e95ffff9989ffef8890fff69090fff38a74ffdc765affcc6658ffce6f51ffc26253ffcf695fffef834fffd06b49ffba5c5affdb7053ffce6462ffd96a80fffe8d73fff9876ffff68368ffed7a6efff38477fffc8781ffff958bffff99a9ffffb679ffff8b7effff8f7bfff98878ffff896fffee8069ffec7f6dfffa8a61ffe97b53ffe0724fffe4745fffff8957ffff8680ffffb866fffc8a77ffffa26affff9061ffff8e4effee7b57ffec7e7effffa772fff59168ffc56c67ffa85d7affa65f59ff8f4861ff964d6aff9c5559ff8c466aff914c5cff88435dff8d486aff904d6bff914d65ff904b59ff8c4a7fffa25d6fff99545bff904c76ff985479ffa35b6fffac5b71ffd4777cfff0875dffd66c57ffea795cffec775fffc7685bffa65664ff9b4f53ff8b4740ff7b3a48ff8e4541ff7f3c5aff9a4f5eff99516affae5f6effb1616cffa25967ff955077ff9e5876ffa25665ffa15059ff9e4b45ff99433dff973e3effa24137ffa0403cffa94a5fffb8566bffb15679ffb15c7fffa95873ffa8556effaf5263ffaa5155ffb15062ffb05160ffa04a51ff94435fff94465eff94476aff95487dff9b4971ff944484ffa24e80ffa64d7effb65475ffc75977ffc05c58ffad4856ffb94f53ffb84a53ffb44c4dffb34c45ff873a4fff924157ff9c4771ffaf547cffb25386ffb05a7dffa25489ffb35b8affc4625bffae4c68ffbc5297ffd8697dffcc5d98ffe0688dffda6780ffcb6473ffb6575bffa24f7dffc4647cffb76088ffbf6667ffad554bff9c494fff97483eff903d48ffa44b4bff9d4a4fff9b4a3eff893d4fff9e4a4fff9f4a55ffa44e60ffac526fffb85a67ffbb5865ffb15668ffb1557cffcb635bffb1545fffcb6183ffff8f82ffffa26fffff916fffff8c6efff17d66ffc85e5aff86424af06b334cff7a3a48ff793748ff7f3733ff702d4eff7e3b55ff864046ff7f395aff884061ff99476cffa04e52ff884243ff7d394bff7f3d7dffaa655cff964f56ff8c4762ff894b67ff985363ff965070ffa35c79ffab6279ffa8606effad6371ffce768bfff8977bfff49380ffff9967fffb8f64fffe906afff28f8bffffb891ffffb485ffffa58cffffae9affffc28affffa184fff6968cfffb9274ffd77c7bffe58750ffb06068ffda7357ffbe657fffe18a4dffae5e4effb7645fffc06e66ffc37370ffd37b6fffd27878ffe48d7cffd37d71ffcd7762ffd16d7efff5877fffe87e59ffcf6958ffde7752ffcd644fffd55e43ffc8574effc25683ffec7c92ffec857dffdc7a78ffc66c94ffe08188ffde7b67ffeb757cffff857fffff9c6effff9d5afffb8462ffff9467ffff9a81ffffbab5ffffeea7ffffd8a7ffffdec5fffffeb1ffffda76ffff9564ffff80b7ffffb7a3ffffa0adffff9eb2ffffa2a2ffffa289fffa8673ffe77b96fff89777ffe07d97fffb957cffd97a58ffb55e5cffbd6142ffad5347ffc55d55ffdb7158ffdb724bffc26043ffb7584dffbb5b58ffc9656affe77482fff9886efffb7b6ffff27f6affe17587fffe927fffff8f62ffcc6f7cffff8eafffffbc82ffff9974fffe8b80fffe9277ffff8771ffef8267ffe47c5affdf765fffda7262ffdf7645ffd1634bffe16f6fffff975cfffe8762fffb8459ffff8367ffff8a67ffff904effd86951ffd96f8cfffea55effd77454ffad5c62ff9d5779ffa45f5eff8d4a63ff8f4861ff8b4860ff874465ff8b4767ff904b6bff974f6aff8e4c68ff8b4854ff88424fff934947ff773b6bff935271ff925065ff8c4a7dff985471ffb36274ffc96d73fff68274fff9885effe46869ffd97054ffc35f5bffbb5a53ff9f4d5cff9d514eff8d4540ff7e3e58ff924e5bff97525aff9a4f64ffa95774ffb66973ffa95d71ff9f5860ff904977ffb45c75ffb45b58ffae5553ffb15840ffa74941ffb64842ffac4746ffab475fffaf4d88ffbb6078ffad566cff9f4e76ff994b6fffa8516effbc565fffa94b5fffae4d58ffa84a47ff903e4cff803a47ff773553ff80397aff9a4577ff98457aff934785ff9c507aff9e4a77ffbf5768ffa85163ffab485dffba515effbd4f48ffaf433dff9d3c31ff853541ff8a3d48ff883e4cff8c3e8affc26073ffa7508fffb55a87ffb05864ffa14890ffc2606bffac4da4ffd66b99ffd06693ffcc628cffce6688ffc5666dffb45877ffb35b66ffa75460ffa15071ffb45d62ffad5b45ff8d3d3fff9b4a3dff893b47ff8f4242ff934053ff9d4a49ffa34a48ff9d464fff9d4653ffaa4e64ffae5567ffb0546cffbc5e66ffb55672ffd36577ffe6755dffdf6867ffe4717affff896fffff8774ffff905affec6e5cffec715effbe5959ff934253ec6f343ef46b2d4bff7e3742ff823446ff853747ff843750ff8c3c52ff8c3f5aff894065ff9b4a54ff9a4276ff9a5059ff834251ff80414fff864559ff864752ff864356ff874651ff874362ff964e72ffa45a73ffa0586cff9b5573ffaa606bffad6284ffd18286ffe78e7effe98d6dfffd926effff9b5fffee807cffff9d67ffed8891ffffad8afffea376ffe88886fff1938cffee8f73ffdb7b79ffd87d63ffc76c61ffc26855ffb85f89fff0996dffd67b99fffba070ffcb7764ffbf6b5cffb7686fffc67471ffcf797bffe38582ffdd8070ffc97371ffd57681fff88c81ffe98467ffd8734bffbc5833ffa54737ffb44c45ffb85159ffdb6b94ffff8f53ffbd5961ffba6486ffe68285ffde7e7fffe47873fff98183ffff9d60ffff895affff894efffa8050fff78051fffe8660ffff97a9ffffeaa5ffffe0a6ffffe2bdfffff294ffffc693ffffc399ffffb7bbffffc4aeffffa5a7fffc9290fff28396ffee8585ffe7807affd8778ffff28959ffb65e77ffdf7f94ffe98851ffab5349ffb45a43ffaf554fffc56544ffc86055ffdd7054ffe07149ffc8605dffbe6056ffd0655dffd66d6cffdf717afff98c71fffc8c7fffff8b80ffff8f71fffc8a81fff58b86fffa907cfff98874fff58368ffe57669ffec7b6bfffe8363fff67a63ffe9784bffc85e50ffc8624dffcf6161fff4784fffe56c6affff8960fffe7f60fff47e60fffb7d57fffa7781ffff9767ffde7961ffcd6e5cffc46c51ffa6585bffab595dff9d554cff823f55ff934861ff8e4770ff924d57ff7f3e5dff824167ff8e4a67ff8f4e78ff94536aff8f4b51ff823f61ff954d4fff7e3a5dff814067ff854673ff8c4b6dff904c68ff954d54ffb05774ffe67a78fff47f52ffbf5d55ffcc5f53ffc15b51ffc25d6cffd7746affc16758ff994e6bff904e69ff904c52ff84435dff884867ff9a5471ffa65a76ffa75969ff954d60ff904a6effaf5969ffa6516fffb65c4dff9f4833ff9b3f2eff9d3c35ff9e3e3cffa53f6bffbc596dffb4534bff8a416cff98496fff9f4e6effa2506fffae4f66ffb1505fffa7454eff9d403bff7e3335ff732f3dff77334fff803a61ff8e417dffa64d71ff9b488bffa4507bffaa5062ffaa495bffa1484bffa14456ffae4657ffb04757ffb34967ffb65363ffa54d55ff8f435fff994b5aff883f57ff914073ff9c4b8bffa35580ff984c67ff974687ffa952afffc96899ffb75b86ffb75880ffaa5378ffaf5479ffc05e60ffad4f79ffbe6073ffac597affae5c5fffa0516affa85340ff8e3d36ff934332ff863737ff8a393bff843b49ff9b474cffa04750ffa04c57ffab4d5dffa84d5cffb0506dffc15f6effb65b84ffc56467ffd86155ffdb615bfffb7354ffe3667dffff916effff8565fffd7e63fff97a5dffe36d5fffb95755f4753946d2602a4df06b3357ff793c4eff853d52ff893d5fff914256ff8c406dff9e4d45ff843a65ffa14a55ff91415fff8c4343ff773450ff87434bff85444dff853e4cff873e77ff9c5755ff87434cff873f5eff8e496fff9e545cff994f56ff8f4667ff9c5790ffb77162ffa85f6fffcf7a55ffe07567fff79373fffd9b84ffffa86dfff79083fffb9a92fffa9d7dffe28971ffd07b85ffdc8675ffd47d65ffbc6a75ffce7866ffbc6d60ffb86581ffdb8566ffbd6d80ffd8876affcb7667ffc2705bffb66561ffb5656affc56e8fffef8e7bffd77b6effc36e72ffc66e6affcf6d68ffd6735effcf6e52ffc45e3fffbc5538ffb24d60ffc96463ffea7454ffca5c49ffb85962ffc26c7affd67383ffea8367ffd56d6cfff27d74ffff9477ffffaf77ffffb28bffffc078ffffab7fffffbe78ffffa86affff9e81ffffb9bafffff3a3ffffd795ffffcb89ffffc3d4fffffeaaffffbdb6ffffae9affef87a4fff28c93ffed8274ffd26c75ffd57099ffe98876ffca6d7affd47b78ffd27759ffbf603affa34a3bffa54f4affb5593bffae514bffd66b5affe67357ffdd745effd1695dffc9625affce6480fffe8e7cffee8494fffa956bffea7666ffe46e67ffe3745fffcb6975ffee7e81fff78974fff48368ffe37671fff88760ffed766affeb7d4cffc95d58ffd26c62ffcf6f58ffc36c57ffda6c74fffa856dfff4827affff9466fffb8568fff98556ffee6f5bffec705dffcf694affad5753ff9e524aff91494dff994968ffab5b5bff934b4fff873f4eff7d3a64ff87434bff78384fff7c3b5aff89435cff884767ff8b4955ff80404cff7d3c5fff8d4a50ff7b3c67ff874564ff7f4164ff814373ff844772ff975166ffb65f66ffc66466ffe17353ffc65f6cffd76d61ffd16a56ffd46a63ffe77865ffbf646fffaa5d6fff975358ff854450ff844255ff854256ff844285ffa65968ff9b4e6aff944c64ff944c5fff9c4c62ffaa524cff974549ffa74c38ffa1422bff9e3a45ffa8474affb64f52ffb14c3cff873a3dff7f3b66ff9b4971ffa4525cff964457ff9f455bffa44357ffa04259ff9b3f6dff9d4867ff954661ff914758ff883e53ff823b5aff924086ffaa547fff974a77ff94465eff96425affb84f59ffb94b51ffb34754ffb94e5fffb64f6dffbe5755ff9f4255ffa14659ffa8515fff9e4a54ffa3484fff93406bffa14e76ffb05878ffb75674ffb65599ffd8697fffc85f7cffc35d7dffc25e67ffae515dffbc5b55ffab5180ffde6979ffc9638dffd8705fffaf545fffac5247ff9c4522ff81302bff8e3630ff993c38ff9c3c46ffaa4d39ff984053ffb85559ffc1585cffbd5561ffc65966ffca5c63ffbf566effce6269ffec6e5afffc734cffff7e6bffff8a6cffff8a68ffff8a7bffffa069fffd8c78ffff8a59ffc65c6bffa15055fd7d3c5aff924355ff93434cff874057ff9b4664ffa14e58ff8d4660ff9e4b57ffa24a54ff95444fff9d416bffa44e63ff9c4d50ff90454bff934348ff95434eff984567ffa75353ff97473fff873b63ffa15366ffab565dffa85554ff9e4f64ffaa5d8fffbc736affbb685effca6d54ffdb724cffcd6b59fff2857dffffb663fffe9360fff0867fffffa177fff48b8dfffd9d96fff79c78ffe08367ffd67571ffe0806dffdc7d60ffd17177ffe5835dffc86d93fffca370ffef8c67ffdf7e59ffc5694cffbd606dffe98097ffffa575ffec806fffdf7774fff38678fffb8a5bfff07659ffea7352ffde6635ffbe5136ffb04c40ffb7517dfff98e4affc35b3dffb44e51ffd36c77fffb8584fffe9a6dffff8464ffff8c6bffffaa76ffffbb88ffffd37fffffba6dffffa55cffffa072ffffb365ffffab5effff9f7effffbe92ffffd689ffffcc8cffffd6a7ffffef98ffffca96ffffb196ffffa18afffc8b5bffd26967ffce6b71ffe37392fffe909efffe947cffe87a76ffe57c4effbb592eff9c4130ff9d4136ffb84e3cffd15b55ffee7438ffc9594effdb6662fff67b5bfff07156ffe26786fffe956ffffa7e74fff97f71ffff8774fffd8659fff17289ffffa371fffd8572ffff907cffff9c44ffda6383ffff9e69ffff886cfffc8e5bfff17c61fffd7f54ffe7705dffe37658ffe57670ffff8978fffe985ffff17e73ffff9b5ffffe7f55fff9736efffb7f60ffdc6e55ffbf5f54ffbb5747ffae504bffaa506cffca674dffa24c4bff9c4447ff8b3d67ffa2555fff964753ff8e454dff964764ff984f65ff9f5250ff9a4c46ff8c4148ff803f47ff853f5bff974c69ff9e534eff854069ff9e5263ffa5526effce6b7cffec816effe87951ffdb6461ffe67261ffe77451ffea705dfffb7e53ffc66264ffc2646bffbe6758ffa65356ff9f4f44ff8b4050ff984a8cffc1676fffae5678ffb65c5cffa95269ffb75c55ffaf5057ffc05841ffad472fffa9431dff90353dffb64a55ffbe593aff8d393eff923c39ff8d3c5cffa84863ffb9565fffb64f5affb54a5bffb84e5affb44d66ffb45073ffbc5558ff9d4352ff96445dffa34a55ff94424fff9a4157ff98426bff9f496bffa54d76ffb85357ffd75c5affce5456ffc75453ffb54964ffc7565bffbe4f54ffb1474cff9c3f45ffa54d53ffa64a56ffab4b4bff9f4566ffac5060ffa34b66ffba516bffb24e7bffd65f81ffd1647dffd2637affcb6269ffd05c5affe46057ffcf5668ffd6604cffc8506bffd25c46ffb14662ffb95662ffc05a34ff9e421eff8a2e23ff99342effa53a39ffac4326ff9e3c40ffac4621ffa1374effcd5751ffc74f5dffd0574dffbe4c6dffd6604dffd55847fffd655fffff8b5cffff8785ffffa26cffff9358ffff8073ffff956afffd8255ffdc6354ffa94e6affab4e66ffbe554fffa8494effa34944ff904064ffab5459ffa44c46ff964366ffc95c61ffbb5653ffac4b63ffb2507affbf604cffa2484bffa64747ffa4444cffa34661ffb55248ff994444ff9c4559ffa94d63ffae566affb85e54ffaa5351ffa25061ffad5857ffae574bffb15147ffb95851ffce6457ffe27862ffff9d62ffff9359fff27a68fffe8972fffe916dfff58369ffe37b93ffffa17cfff78f6fffef808fffffa16dfff5866bffeb7f5fffe27787fffd997cfffd9252ffce655fffdc7046ffcb5f66ffec7884ffff9864fff47c63fff47a5efffc806affff8b61fffd7761ffff815cfffd723bffd65b59ffe26d65fff6736bfffe8b58ffe96f46ffd86880fffc9a79ffff9466ffff9065ffff9962ffffa55dffff9a70ffffaf70ffffbe70ffffb855ffff8a56ffffa856ffff9a67ffffa95affff9662ffffa270ffffad66ffffa46dffffa980ffffcb8affffc380ffffb489ffffad81ffff996dffff8c62ffff7467ffff7c6bffff7563fffb7060fff26b63ffe16761ffd56352ffcf6024ffa53c27ffb6422affc54643ffef6427ffd85233ffd35542ffea6441ffec634dfff4646fffff8d51ffed6569fffe7862fffc7a4dfff76c58fffd776effff9479ffff9b75ffff9760ffff867cffffa17dffffa161ffff8c69ffff925afff77a73ffff9c57ffff795bfffd7f43ffd76265fff5806cffff8952fff57251fff57758ffff8251ffe76961fff06d70fff6785fffd86a4dffc45738ffaf474bffbe5461ffde623cffa04536ff903d5bffb2505dffaa4e60ffaf5551ffa64c53ffa84e53ffa54e4eff9f464bffa14540ff984044ff974041ff91415dffad5554ffa14e59ff9b4861ffa54d68ffbb5d6dffd56158ffe56862ffec748cffff9a5ffff37574fffb884cffec6f5ffffb805fffed7357ffd86873ffe4785affbf5951ffa54c43ffa4474dffa44782ffc36160ffb7544fffa44759ffb65261ffbd584bffa9455affc85459ffd55b46ffd25549ffd35b49ffcc5152ffcb5a53ffc05541ffad4d4bffaf4d68ffd16261ffd16052ffc34f58ffc95353ffbf4f55ffb54965ffc95663ffc65355ffac4550ffa84d45ffa24a55ff9f464fff9b414cff9f4368ffb1505affa14660ffb94d55ffc54e57ffbe4d4affad4153ffb24659ffb54c4cffa5433fff953b45ff953f3dff974158ffa5495dffa8494dffab4758ffa64e4dffa64740ffa24243ff9d4057ffb54b63ffc1536bffd25c78ffe46573ffe46456ffd15150ffc25059ffca5847ffbd4c4affc85657ffd4565bffc35135ffa5404effbc4e42ffb44b28ffa7391fff9c3226ffab3826ffb6441aff9b2e2bffb03a4effc44b7dffee7065ffdb637affe46c5cffdb5e53ffe96253fffc6b67ffff8357ffff704affff6d4cfff66d56fffc775afffd7265ffff7859ffea6872ffeb6f71ffe2696effe16649ffc24a47ffa7454effb64748ffa04343ff9e444dffa24965ffc25453ffa74b4dffad4570ffb1583bff923c44ff9f4132ff8b3144ff963f3aff933a50ffa7495fffb1515cffb24f6affb75964ffb9586dffbb5c63ffbf5d57ffb15270ffc16354ffa54f50ffaf515fffb6584fffbb5966ffe37569ffff8b5afff17c59fff17762fffd816affff8571ffff8b61ffee7661ffeb766efffb8766fff37f5fffe97464fff57961ffef787cffff9198ffffaf5cffdb7266fff37e5cffed7357ffee735dfff88052ffd6674affd85f69ffff8275ffff8f73ffff9261ffff8260ffff7e5dfffc764fffeb6a6afffd7a5bfff47151ffeb6252ffe86651ffea6d46ffdb6051ffeb6d52ffff7c6bffffad62ffff9e55ffff8b63ffff9e6cffffb44fffff8543fffe754fffff8c43ffff8768ffffa369ffff9e4dffff8b60ffff9f4effff8c45ffff864affff825bffff9774ffffc275ffffb88affffba7affff9a5dffff7150fff86c55fffe7061ffff794cfff96c68ffff795ffff16932ffc04855fff06a51ffee6a26ffd44826ffd64929ffe05130fff15a27ffea4e31ffed5660ffff7c87ffffa273ffff8c79ffff9165ffff7d5bfffd765efffe7c76ffff905cffff7850fffb7255fff67a60ffff8363fffc8068ffff9162ffff8878ffffa06bffff9872ffff9d47ffff6c46ffe76550fffc6c4bffe46542ffe76551ffe86f6effff844affd15c4fffd25664ffc15c42ffb0493fffae4333ffa13b41ffab4738ffb64753ffc45659ffc1545bffba5066ffbd5959ffb44e5effb55355ffbe564effab4666ffc25b4affa8484affb34c5bffba5447ffa4475fffa94f5dffa6504dff9a424fff98415cffa54d63ffd35d60fff06f4cffe46253ffee6766ffff7f51fff26e4effef695effff7b59fffe7869ffff8881ffff9d55ffd8675cffd3614fffb74f4bffb54d50ffb95548ffa04541ffa13f56ffb74b61ffb85167ffc75754ffb84e53ffc0504effc75146ffd15563ffec654dffca5042ffb54246ffab4544ffb34837ffaa4749ffae4453ffc34d5fffc8544fffbb494effb8465affbf4e60ffc4563fff9e3a3aff8a3545ff9f433dff963f56ffa4455bffa84648ffa84454ffa94847ffa5437cffc15c5affa2474eff974157ffa1444eff9b4244ff923f3eff8d3e46ff984c43ff8f4456ff90423eff87385affa54a48ff8f3d42ff933d44ff8f3c51ffa24561ffae4d63ffb6556effcf5d82ffe86e8fffea6f7bffe26b5effc2595affbd5546ffb14d51ffbb554effb74a5fffbf5637ffa04148ffaa4c3fffab433fffab4430ffa13e36ffa64033ffaa4039ffa53e3bffb04454ffbe4d54ffbf4d6effe36759ffdc6352ffed6d5afff77357fffd756bffff8e53fffb6e54fff97453fff86f53fffa7457ffff745bffff7f69fffd7f5fffdb6771ffe96f65ffd65d66ffcc5a61ffb24f46ff8b3e51ffa04340ff843b4dff904276ffbb5877ffb05872ffaa5467ffa25057ff9e4859ffab4e4aff9a4562ffa4525dffa15155ffa14b65ffac525affa94e65ffae555fffab526effb85d64ffb2556affb25c61ffa85571ffb05f47ff8e436bffb15d5dffb95f5affc3655cffe5785fffef7f6bffff926bffff9069fffa8572ffff936dfff38571fff88d68ffed836dfff18872fffe926bfffe8b99ffffb381fffea295ffffb673ffed896affe87e57ffd46c4affd26650ffcb6947ffd16651ffe46d71ffff8860fffc7c73ffff885dfffa7a5bfff07257ffec703fffc85779fffd8c4bffdd6747ffcf5c64fff97d51ffdb6749ffcd614effda6560ffff8d85ffffba68ffff9962ffff9963ffff9863ffffa651ffff8e49ffff9250ffffa64fffff9967ffff9852fffc8761ffff9d4effff8246ffff7c51ffff8b6affffab6effffae7effffc684ffffcb85ffffbca4ffffba7effff925bfff47461fff67456fff07359fff9765efff8705cfff87439ffcd5751ffe56b4efff16b3affd55635ffdb583cffe5603dffea6039ffe25a3bffe25e57fffb7159fffa6f7bffff8f50ffe66b5afffa7c5dfff97c65fffd8675ffff9758fff37260fff57d5bfff2775ffffc8059ffff7c59ffff846bffff9369ffff907affffa459ffff826cffff9b69fffe8c55ffee7651ffee7045ffce635fffea787affff8775ffe67778ffce6b6affb15951ffa74a55ffae4f52ffad4f63ffb45c55ffbb5c50ffb55466ffc15b5cffb6535dffaa4e5dffaf526dffbc5b57ffb04e57ffa84d55ffaa4d59ffaa5045ff994359ffb15253ffa44b4eff94444fff994655ff9d475dff9e4c5effa84d5affb85362ffea735fffe86f5effee755cfff3765affee7562ffff895cffff858affffad6effff9d78ffffa064ffe2755bffc96050ffa04a47ffa44b40ff8e4142ff9c464effa84a66ffbc5556ffaf4c60ffb14e51ffb04d4affab463fffa34237ffa24172ffdb6840ffaa4747ffa84759ffb6543fff9f4245ff9b413fff993c5cffb6526cffb85455ffa74753ffa24651ffa54453ffb04d45ff9b423fff9a4540ff984749ff9e4953ff913f4cff99414effa3443eff943b3aff89356bff90465fff803a72ff8a415eff863d42ff7b344cff813c50ff85423df874373ffe7b393cf5682c3dfe752f3efe79334eff893c4aff80374dff83385cff93455dff924379ff9f4f7fffa75490ffc05e8effcc6869ffb85658ff96464eff974949ff923f5bffa6505effa14863ffac5168ffa5535aff9c4d56ff9f454dff97423eff8d3d52ff9b4b55ffa34947ff944142ff8d3a70ffb95662ffae4c6fffda683affbe4b55fff26e56ffe26c56ffdd6860ffe27160ffeb715affe36b4affd45b46ffdb5e4ffff46c53fff36b59ffea6c6effff7c73fff37471ffc95e63ffaa4a69ff9c4b72ffa45357ff8f4248ff7a344eff75367fffa05070ff8a4a51ff7d3963ff8c4459ff8d4366ff95485aff94456effa7515aff8e4669ff994e4eff8d4253ff8e425fff994a56ff8f4354ff8f425eff964a67ff924b7aff9b5871ff96535aff944b6fff95516cffa85b62ffa65861ffc56a6dffe27e70fffa8a77fff98f7cfff68e69ffe17c76ffe08487fff09370ffd98064ffd6776bffe18277ffee8d63ffdb7a76ffed8f49ffc06756ffb96857ffc16647ffb15441ffad5335ff9a4a44ffad5858ffc96777fff5856affe1737efffa875cffe6725affe26e4fffc86232ffb54868ffe77579ffef815effd66c63ffd76f5bffce6751ffc65e5bffd26c76fffc938bffffa37bffff958bffffa96fffff9a5dfffe8764ffff9765ffffa149ffdf744efff68246ffd0674affeb7154fff67f5afffe8859fffe8556ffff8373ffffb070ffffaba2ffffe098ffffce9dffffbc95ffffae74fffb8260ffd66b4effc86057ffd76868fff07c77fff5836dfffd826cffe77c63ffe7775fffe16d5dffe06f40ffc05a58ffdc6f56ffda6b45ffc85e4cffd15e55ffef6e62fff37274ffff8929ffb0425efff07566ffdf7866ffe47871ffe17f65ffe17669ffe57754ffd6684fffe16a55fff7755bfffe7c6cffff8f78ffff9785ffffa883ffffa37affff9a77ffff987bffff9868fffd854affbb5967ffcf6e81ffdd766fffb16258ff91466dff954d5fff934862ff8e4462ff9b4a6dffab5656ffa65157ffa65054ffa44e58ff9a4653ff934255ff944357ff974452ff944355ff954468ffa45354ff95474effa3495cff9d4b58ff954652ff803a4fff813b59ff88425bff89405fff853f62ffa75053ffc0585fffcb6866ffd86c5dffcf6651ffd5655cffeb776afffe8d66fffb8965fffa8840ffd0634cffb85945ffa44949ff934136ff7d382bff73303eff823b52ff994765ffac515effa44b67ffb15450ffa54949ffa3453cff8b3b2eff8f355bffa74e60ffa7504fff954454ff96464eff95403fff7c3046ff7f346bffa34f71ff9f4b6dff9b4970ff9d484eff8e3d4eff8e3e51ff96464eff91453aff763340ff853c38ff732e3fff843541ff873741ff89373fff81336eec733668dd662e73e26c335dd9642c3cc5552144d1602e49ce612e3ac9602e38c8592639d05a243cd8642827cd551e3be56f2a50f47e3743e66c2c60ec733570f87e3c6ef47c3a7af5824194ff9b4975ff984866ff93455dfa813c5df9813c44f0743162ff8b4667ff8c4456f9803b59fe8a404afa7f3658ff924534e6692935e76b2b34e5692b40ef743048f7793242fa7b3367ff8c426eff9f4c7bffc05f47ffb44e60ffde6f53ffbc5953ffba546bffc86654ffb9585effc95d4cffbb554dffb5535cffd85f46ffbd505fffd35f5dffcd6160ffc35b6effb35667ff994372ff8f4271ff864148e868302ed5522157f36f3261fc7d3e61f674374bee6c3461f8753b84ff985659fe7c3c69ff88447bff934d58ff7d3d52ff783945ff73335dff83424efc783772ff8d4d59ff7e3d5dff7f427dff94536ffe834769fb84437afd844a75ff874864fe814370ff925068ff9f535effb25777ffd27275ffcc746cffc56c69ffc0675bffac5b78ffbc716cffad6857ffa2595bffa4576affac5d74ffc57754ffab5c41ff964b65ffa85e58ffa1574fff9c4f43ff91463aff8d4347ff974c4effa85560ffbe605effc16273ffcd6c5fffbc5e5effb75e5bffb55a4dffa84e74ffc26b4bff9b4837ff8f3f6affad5f53ff9e5252ff9e4c6bffb95f76ffce6f9affff9494fff18e90ffee8c62ffd06c56ffcc7059ffd67a55ffc86b47ffb55a43ffad5542ffb25442ffb7542dffab4856ffe86f4fffdc6b6dfffa9084fffa966fffeb8097fff8a88efff38faaffff9f80ffe37667ffc06074ffc86953ff9f4748ffa04864ffc46b79ffc7684cffa94f61ffc5624fffae534fffb55540ff95433fff994542ff9b465bffb35757ffb45862ffc66661ffcf6780ffe67b89fff07e4effb85663ffc1645effb75d71ffc5687bffc67061ffb75f66ffc4654bffae5355ffbf5c5effda6652ffcd5b5fffd56869ffd36e68ffe16f71ffed756ffff97791fffc8c74ffd97141ffa84e39ff833b75ffc1626bffa85774ff9f5561fc884577f97d4464fc834959f57b3d75ff87466cff8f4d53ff8c424dff894147ff86375dff884351fe7d3860ff854455ff7f3c52ff87405dff884070ff90495bff883e61ff8b445aff863f54fb743656ef6d3450ea6a305ffb7a3b5ff977345efe743851ff823d5cffab4e52ffa1486bffb25e54ff9d4f46ff9e484cffa1496fffce6e58ffc56545ffb05252ffb35766ffa75540ff813739e9662c35ed662a3bf970313df56e304eff823c55ff863c52ff853c5dff8e4055ff833b43fb793544fa763342fe7b3474ff914b5dfd843e48f974354cf469334cf7703346e2622959f46f3266fd7c3976fd823e77fb803e6ffd7b393ee9642548ef703449f4713541e66b3038de652b3adf632937e163262bdb5a1f38f6772c4cfa80353bf16f2b55a8481d65a64921589e441c72ae5123489e451b3a9540183996401a38923f1c28913d182798411a31a4491d31a7481b37b4531e41bc592357cb642954c05e2659c15d2858b857276fc7632d78d36b3275e177346ce77c3a5ecd66315dcf652d7cd86e3569d46e355dd0662d55d1672e4dcd642a65d86c3148ce682d39ca642639c15d2442be5a2569e073364dce632a43c7632b7feb7c3b64de74367efe944963ff944363ffa94f5eff9e4b43ff7f355fff89435bff8a404eff873d56ff89404aff913c61ffa94a42ff8c3844ff973b4cff9d405bff924263ff8b4176fc843d5ae272315cdd713252ce642d38c4592474db6d3778e26f396adc6d3771d1653654c75e314fc95c2d68e16d3b80f5824976eb743c7cf77c4483f87e4586fb804460ec733858e66e3566ea723a5de46d356fe9743c76ea783f65df6d3765d76b3578e0744070da713b65d968356df47a3c78ff8c4d79ff934c62ff88467dff9e5a73ff995771ff975255fb7d4360ff7d4a60fe7e4659fe7a4254ff81455bff7a4355fc7c3f5fff8d4e33f46a314efa793e53fa804231e7683042f5743845f7743847fb783a3dfb7534b6ffbd7686ffa85d59ff8b4568ff934c6fff99505aff8e4d44f77b3862fc8d4551f97b3b58fb834371ff92546dff8d4f42fe7e3a74ff92506bff9b4f96ffbc6d67ff9a5190ffbc686dffa1544fff90444cff904742ff844336fb77372cf172313eff85402dff7f3448ff984752ffae537affcf6c5effae516cffbd6069ffab587fffc36792ffca6ea4ffd17077ffb05965fc88476bfe8b4577fe8c4487ff985378fe934c75ff954e5efa84408bff9e554bf5813941f580373cf0752f44f0743364ff8e4658ff8e4045f6813c79ff994e66ff974b76ffaa577dffa5555fff9b4a64ff964a4bfc7c3965f982435cf9804153fe833f62ff8a4655ff8d425cff9a4657ff97455bffa54a4bff9f4360ffa34d6fffb0596cffab5262ffa94c69ffa85370ffb25841fb7d3952ff823e7cff9c5378ff924c80f37e476cd3683a53bf592e6ccd643878d9724189e575417ff87f4786ff884d82ff864766f1743958e66c3258e46a3352dc642e6aea723968eb703763ef703556ea6e326cf1763a60eb72355ad9602e5ad5622d5dd6673169d3652f55c2582869ca5f2e6edc6a3866f6783a58fd7b3c4ffa72394ff66e3649f76b304efc76394eff73374eff79384cff864148ff823e2ff86e2d39e55f2836cf592736bb522337be51213bc0552532bf511fa1ee7b4584e9783e4ed25f2968df6e3665d8693247ce602c4ccd5f2b43c158265fcf612f51ca5e2c5cc65b2d5fc65e303ebb532339ac471d56c3582677d2652f53bb512472c95f2c6fc95e2b47bb542442b8512338ae4b2038a6481f289a411836a0461c279d42163ba7481b3bb4531e55bc592456bc582271652a0f60652a0f66642a10555d250d585e260e455e270e3a5b260e3356240e2b52210c2158240f225b250d1a60270d1364290b25682d0f377534123a7534114377331148753311517937134d743414537f3c165e87401a41884118427f3c1857853e185e853e185a863e185688411c51833c17678c441c7092491f578d472044803a153d803d164c8640186692491f578d451d668e461d6691471e6392481e5e9a4e1f63a251234da2511f3e9e491b3896401a38963e173d9b451a4aa64b1e4da84e1e39a1491a46a54d1d3aa24a1b3fa54c1c4baa4f204fa44e1f51a24c1d4b9a491c4395461c478e3e1a3e8537173f86381750913f1b4c8d3e19628e401e74954724679242205595431e549e49206eaa4e255fa852284ca44b2249a04b2160a74e224aa54c2342a1482054a74f2354a44d225fa955276da352246da050255c9949215591421d508c3d1c679c48215396411d5da34c224596411e5ba24a23579e452249994320328d39172f8a3719549a4522438f3b194996411d3e953f1d3b923c1b4195401d338f3c1a3d923e1b57a149214392401c2f883919318d3f1b3d92421c439a49204ea04b2263a8532874b35e2f59a24f244da754275aa353274294461e5d9a4b2264994a225a964823549449235a924522609e4f2781a6552b7eaf5b2e8ebb653569a9532970a852295da65126429a491f4b9e4e263b92451e2e8d4320258539182a8c401a16893c141f94451739a6532047ae592453af592553b0592456a753245cab57275aaa57256aac592858a252234d94481e5d984b225a96491f709b4d235d934820658f461f6091491f7a9b51255e964e23488f441c438c421a4491441a5a9f4f2267a15124559f4e216ea8552574ae5b2b5ba3512364a553244e9b4b1e4a98491d40903f1a478f3f1b438f411a4895431b4f9a481d3b97451a459f4b1d3799461a4aa44d1f47a74e1f65b35a285eac552353ab532243a34b1c4ca550223b96411a368f3b184c9a441c5b9a461e6c8e3f1e698f45216b853d1e51803a1a59833c1c5f873d1d62914420488b3f1b468e3f1b6992431e4e8d3f1b3783371648893d18428439164d8d411b5d974a1e6095471c5b94461d5690431a528a3e194d81361758853a1756833b17427934154477331444773114497e3517358034142a7c2f133c8335153f823414408234143c7f33132d762b124c863819398134162b7d31124a803616417a32132b672710296c2d11316f30113a733414407635163e763414627d3c1a4c74341447773919487636173d6f30124c753516657a3818567535173a6a2d12536d2e1445672911586f2f13817435177476351862713115636c2e12576a2c1144682b1042682d122c5e260e2d58230e2251210c1f481b0815471b07124b1d072a50210a3b58260c3b54240b4054230a49521f0c5757230e4a52200b5252200c4b4d1c0a674e1d0b5a4d1e0b45491c0845481b0936431908384319093b451a093d4519093b491c09394b1e09354c1f09374d200934491d093a4d200a404c1e094e50210a5150210c454c1f0a494d1f0a5853240c4c50210b464f200b5452230c5453230d6057270f6058280e725d2c117b602f127f5d2d11795e2e117e5d2e124e53250d3e52230b4052230c4c53230c5858260d5159260c2a4f20092c50210a3a53220b4558250c3d5b250c4660290e4f5e280f405d260d3758230c3257220b2d521f0a3756210b4a5a250e4558230c69622c11595e29104c5d290f66602d124357260e4d58260e4157240d4558250d7064301467632e1373642d135a642e126a632c126d632c1361612a115c602a11495d270f555d27105e602b115c5b2610525d291169642e147d67311672642f1369612d126c5e29127e622e15685d29115052210d4b54230e5353220e5553240f404e1f0d3d4a1d0c25441909625324105950210f494d200d404a1e0b3f491d0d444a1e0c43461b0b36461a0a594c1f0e735526114d54240f3f51220e445426113650220e3c5526104755250f4454240e525a280f4756260f3450220c2f4d1f0b2e50210c2f50210c695d2d15364f200c3f50220e5053230f505526105758271159582811695b2a136c5b2812685f2a1256612a104b5e270f3d5a250f4457220f4359230e4359240e485b2610425f29103f632c1049652e112e59250c425e2a0f4a5b270f575f2b105c5f2b114e5b29104e5a270f5f602c125c602c114f5a270e545e29106c622e146d663216736835177b6d381994743e1b8d723d1b89733d1a92773f1c6c6b3515475f2b10415a280f4e5d2b115e602d1259602c123e58280e2d54250d3e57270f485a2a10485b2a11475a290f495d2b104e5d2b113758270f3455240d3352220c4157240e3e56240d4f5a270f595c29107d612e14555c2a10625e2c124a57260f5c5928104957250f3d54230c605c2a11635d2b12715d2911545b280f645a270f6959250f6356250f5b58250f4352200c4e53220d5d56250f5350200c4a4e1f0c5d54230e6757260f715a29106859270f6d5c2a128f612e16645c291148501f0c4e50220d5650210e52512310444e200d4c4f1f0c24451909434f200d5655230f5c54230f4652210d394e1e0c4351210d3a4b1b0a3748190944481b0b7451220f5b4c200d544c200c3d461d0c3a421c0b333e180942421b0a3f421a0a584e210c4b4a1e0c36471c0a32441a092c451b092b431a0857491f0e3f461b0a30401808404018094641190960461e0c494119095b451c0b574219096a471c0b58471c0a43451a0845451a0a363f17083b401809393c1708403a1608383d1807373f1a083d421d092f3f1a0732401a073d421b0942411b0852441e0a4f5a230e4556200c4c58220c4756210c5d59240d5255210c59501e0b554f1e0a374c1d09404a1d0a3f491c0b3d471b0a41471b0a38481b09394a1c0930481c091a471c083f50210b4751210a4e52220b5250220c5a51210b5d53230c5751210b5b51210c6f58270e6756240d5d52220c4e52210b5050200b6454230c765d2b10885f2d11795c2b1188602f1271592a0f5e57290e3a4d1f0a4953230b4254230b4e55250c4454230b565a270e3a51210a354e1f093d52220b4958250d3353200a4358240c3b57240c3455210b2f511e0a294e1c093a54210b4754200c4655210d5857240e6357250e6357260f5c56250e314e1f0a3851220c615a290f5a56260f6057260f7f602e14665a2810675c2a105959260f6e5c28105557240d5956230e5f57230e4753220d4651200c5051210d6055240f705b2b136257250f5d57250e6b5c28106e5c2912645a29115b56250f4c52210d5654240e5753230e4b51210d534e210e44481c0b38451a0a3d441a0a4d4a1e0c45491e0c3a451a0a48491e0d3d451c0b3f4218094243190a3f441a0a40461b0b364a1d0a344c1e0b3750220d354c1f0b3a4f210c4050210c434e200c4251210b4550210c384f210c2b4a1d0a2b4d1f0a3b52220c5854240f525727105253230f4c51220d4951210d5353240f62592911635a281169582610615a260f475a250e4759250e475a260f3f55210d4354210d4656220e3b54200c4059250e1e54210a365d280e505f2a10545e290f585b2810605c2910665f2b11615c280f5b59260e79622d12715f2b12675c29115c5b270f4b5a270f67602c12776b3516896f3918846b351693713a18876f38176e6b341450602c104e5c280f4d5d2a10495b280e4a5a270e61612e124259280e3552220c4758270e505a290f3950210c4656260e3e57270e3653230c3551220c2b4c1d0a364f200b4e54230e4a52210d5153230e67572610645726106756260f374e1f0b344d1f0a6259270f5e55250f6756250e8c5e2d15625726106656250e5254240d6c55240d5f52220c5c53220d6352210d474d1f0c464b1d0a4e4d1f0c5d4d1f0d624f210d694f200d604f210c6a54230e7a5827106054240e5e55250e524f200c564f200d544d200d4f4d200d564c200d3f471c0b37451a0a33451a094d4d1f0d494d1f0b36481b0a464e200d354b1d0b42481a0a43461a0a3d44190a3b4118093a451b0930441a083b471d0b32401908343c16083d41190941441b0940491d0a46491d0a3c471c0a304018082c42190835451b0951461c0a4d491e0b4b461b0a4d441a0a3c4018084d41190a5c461e0b5f461d0b56431a095c451a0a46461b083643190845461c0a404219093e411809474019092e3b15073d401a08233c170623411a0850481f0a48471d094d461d0a53461d0962491f0a5a481e0a595b250f40531e0b5a57210d4256200c4755200c4d54200c6659250e7058230e755c260f5d56220d4e51200b524c1e0c374619093e491c0a3f4c1e0a364c1d093450220b2e52220b4f58250d4c58260e635c290e4e54230b6058260e84602d116c5c290f7b602c11775e2a10685a260f6658240e5152200c3e4f1e0a4e50200c645b280f8a64301384622d1379612d12665f2d10605c2a0f6059280f5958260e4756240c4357250c4955240c5f5929103c55250c4857260c485a270d4c57240d4656240d3d55220c3954220c3352210c35501f0b3a51200c4154210c5d58250f5255220e5154220e7e5c2a12805e2b12665827106057250f5a59270f625b28109d612e165956240e5d59270f675927108a602e166d5a2610745c29125955230e715a29124652220d625725105155240f5b54220e5a55230f815e2c14785e2b137b612b1290642d157b5e2b1395612d165b55230e775e291263572510595525105754230f625525113a481c0b3144190a45471c0c2d42180836451a0a48491e0c544d200e514a1d0d4e481c0c52471b0c44451a0b31451a0a364a1e0b3e51210d2f4c1d0a344b1d0b384a1c0a3d491c0b3d4d1f0b4d53230d4151200c374d1d0a4152220c62592710775a271265552410484e1f0c6052220f5d55240f5454240f5051220d775a29117e5c291284612c147d622d135358250e6558261143501f0c4050200d4351210d3d4f200b3352230c2552220b535f2b105d5f2c1270642e135d5c280f645d2911826731157b642f1384642f158d632e15745d2a12755a28124f53220e4153210d4a53240f6a612e13916d3617906a32168c6c33167068301267662e11655f2a116a602c124e5b2810485d280f4b5c280e746430133f5b270e4c5d290f4e5e2a0f585d29104c59270e4356230d3755230c3c54240d3c4f200c354c1e0b334b1e0b665525105952230e5352220e835b2a138a5d2b136c5727106456250f5d57260f6259270f795828116c57260f5155240d6556250f8c5c2b14765524106e55250e5b4f210d66522410464d1f0c514f200d4d4e200c614f200d574b1e0c83562611735526107555240f925a271279552510975828136b50210e6850210e604c1f0d50481c0b55491d0c5b4b1f0d3f43190b283e15083e43190b2b3f16073342180943451b0a4f4a1e0c4e491d0c4543180a4d411809473f180a313e17082f4119093c471c0a304218082e4119093141180837431809364a1b094b50200c3a481b093541170830431908544a1e0a64491d0b5d471c0b434319095042190a57451b0b49431a094c431a096a451c0b6c491d0b734a1e0c7953230e564b1e0a59471c0b4643190838401708393f1808363c16073540190822411806454a1e0a514b1f0b534b1e09564a1e094f471b086f4f220b7150220b7451230d6359230e4c521e0b6758220f53521f0c354c1b085e56210d544f1d0b6253200c7458220e5d59230d5652200b4f50200c484b1d0a3c4c1e09384c1c093f4f1e0a304e1d083053210a4d59260d4758240c615b280e485a270d4f58250c6b5c290f5c5c290f535b280d74622b10615b260e565b270d685c28105659250e5357240d575a260e7c642e126b612b11806831136d622c1064622d10555b280e655d290f5b602c0f565d2a0f3a54230b4c58270d4255250c3c59280d495b280d2e4f1f09304c1c0a3b54220b3853210c3956220c2d501f0a274e1d092d4d1c094e55220e645a2711725c29125554230e705d2a115654230e6258270e6a5e2c12695b29117e5e2b12715c29117a612d1378602c125d56230e725a2711635a270f4d54230d5657250e4653220d5455220d5054220d5357250e4d54220c5b59260f675b27108a642e159367301683622c14745f2913595c270f635d29116a5d2812645b27114c53210e54552310344b1d0b2f4419093f461a0b3b481d0c46481c0c4b4d200d635525115f4f210e534b1d0c5b4b1d0e47481c0c38471b0b324b1e0b364e1f0b3e4e1e0b2c45190832491a093b4b1c0a434e1f0b4151200b4255220c3951200a4654230e4f54220d705b27106f5927105552210d755927125a51210f434c1e0b6e5725106752220e74582510835a2711635826106054230e5754230e5350200d444e200b404b1e0b4a4f1f0b354c1d093751210b5b58270f5559270f725e2b11515c290f5a5c280f78622d13625d2910615b2910835f2b136e5927105956240e7a5b29135d5926105e5a281065602c128e6b331678662d12906d331477642c1170652d11605e291072612b1267642f125e642e103f5c260c5c632c10435d270d41622b0e52642b0f2f53200a33501e0a4059240c3c57230b3f58240d31501f0b294a1c0933491c095752230e6b562611755928135a54240f745c2a115653230d6357260f715e2c136e5a29107a5c2911775d2a1179602c127c5f2c125953220d755726105d53230d4a50200c5952230e434d1e0b514e1f0b4d4e1e0b5051210c494e1e0a5652210d6653230e885927118f5a28127d55250f7052220f574f200c6250210e614c1f0e614c1f0d49461b0c4f471d0c2e41180a2f3e16083f41170a3942190b4342190a49461c0c5f4b200e5c461b0b4f43190a5842190b4240180a333f17092e431a0933461b0a3c471b0a2b4117072f461908394b1b0940511e0a3e4e1d0a3e4c1e0a3344190841481c0b48471b0a674d1f0c644c1f0c4e461a0a6c4b1e0d494119094441180862471c0b60441a0a6b491d0b744b1d0c554c1e0a584a1d0a4d481c0a4b461a093b421907363e1607443f18082e3f160630441907514a1d094d4a1c09614b1e0a464a1d084f4a1c08674e200a504a1d09584b1e09485e280e465b250d505d280f455a250c51553628595536285c583a2c4959392b7b6546376d64453764654639506546383c614133365d3e2f375b3b2c3e61403144654535546948375967463353603f2b4d5836234b502f1d5052301e514927154c603e2d44613f2d4a623f2b50643f2c5865412d6365412e4e613d2a63633f2c5e66412e82754f3b827b543e91845e46787f5a436b805b436f835f486e805c486c86634e778d6751868b685284936f5a7a8a665186916b5741835c48698f6754608d6451668a624f718961506b88615083946d5a83a57d6b83a681717c9f786481a1796693a6806b8aa47c6685a47d678aa8816b86a47d67809d776198623a24955f341d935c3119935c3119965d321c945f3724935e36238e5c34208a5b33208b5c34208c5b3320875c34228d5b322084aa83704492675435885d4a2e8459433583574340875c464891654e4f9f745f51a4796351a2786362a67d6941996f5b39976c596faa806f7fa982726fa7817282a4807183a5807183a5807186a681717da982738aa9837388a781728ca6817276a8827379a7827283a9827277aa837377a882726aa87f6a81a9826f81a8806a538f685469976e59629167526d966d5882ab82708cac847387ac84708aae857097ad857291ab84738ba8827286a781718da8827194a9837292aa837199ad857380aa816c6da67a6682a87f6b8a63382482633825816137248264382483643a2581ab85736bab806c64a47a667fac857080ae86717faf846d8baf877283af877280ad846f92ae867388ac86737fac85737cac857283ac84728cad86738fb1887398b68d7596b58b7496b58b7494b38a748db1887381ac867354a87c66369467512b8d604a248557412d8457413d8a5d444993664f5294674f4e8f634c5b91654f3f885c4541895c467297695481a475607c976c578b9e725d90a97b6594a87a648fa1735e88a0745e85a97c6589af867286b0867291b2887390b2877383b287738ab3887384b3887293b18773906b402a8f673c278a5a301c8d6439248a653a268a6339268b63392688653c2a896c43308e66392390673923946638229565372294af84738fad847284ac836f8ba882714a9c725f6ea47e6b6aa179656c9b74637ca079697d9f796982a37e6d82a37f716e946c5c5c89635285966f5d7e916a58738861508c936c5a7d8c67556e87625181936d5b7e936c5a6e8e675576946b58638d64517e91685584946b5984926a588389625184845e4d6a6844337b6e4836786d47347d6d48366f6d473446643e2d59613f2f506240315462402f6f5f3b2b914e2a196868433143633d2c44643e2f4d623f303f603d2e335c3b2c5d5f3f315b5f4032585a3a2b546746373d6342323c5b3c2c445537284e4c2f205d472a1c523b201237351a0d3232190c4e51230c5b1b0d04507f41194b793c183f743a163d6d35165265574b977163588073685daa847a7197877c74908c837e908c878157817a72477c756c5f7e777091787067c2837d7591837d74837b766e99757268515c5850644d4a4293413c3563312d28be46423c96696660b56765609164605c60605c55976a655f71655d57d57d756b9d716a62cc847d758d78736ab08d877fa2958f878589867c9089877e9f939189c9a29e96fbb8b5abceb4b0a68b9a9890c8ada8a2baaea7a0a9aea7a23499918c6aa59b947da1989360948e8a8a9a9490c3a6a19effd8d1cefad6d0cebac4c0bc79b7b2acbcccc8bfb8cbc3bcc6cfcac39fc3bfb678afada8a3b2afa9bea09b94ff4f463fff483c32ff4c3f34ff4a3e34ff494745ff484543ff454240ff42403eff57514eff5e5856ff413e3dff464240b1cec8c099c9c1bbcbc4bfb9bbb5b2ab4a949089398f8a8383bbb4adacd7d1cae0f8f4eeace5e3dfdbf7f5eed9eeece4afdddbd58cd6d3c891d8d4cbb8dbd8d1b1d8d6ceb7c4c4bdded3cfc9c9e6e1daa9eee9e1c9fffffac2fcf8f2ccfffdf8c8fffdf69cf9f2e6a4f9f1e59ae3dcd39cd0cac29cccc6bdb6c4c2b684a8a89f36807e7789a09f96899b9b92a1b2afa8b4cccabfb7d8d6ccabe1ddd382cfcabf87cac6ba90cbc8bdbfe1ddd1dee9e5d9eff2eee0a6dad7ca9ac6c4bbafcdc8bec8d6d1c978c5bfb7a1d6d0c6ff675c55ff6b615aff695f58ff6d625bff5e5550ffffffffeff7f3f48bd2cbc88ed3ccc8c7e5dedac7ebe0dca2e4ddd88fdad5d1ade4dfdcc2f4ebe5aef9f1ec80efe7e272eae3df74efe9e555e1dbd667ebe5e0a4f9f3f0f0fffffffffffffff3fffef8e3fffbf8e0fef9f5afeee4e0c7e2d8d6d9d5cdc87faca5a253a0999469a49b9598b2a8a3b5b7ada898afa8a3adafa7a1d6b3aba5a6a29d99829f97907fa09993a7a7a09ba8ada5a0b4aba59fc7b0a7a3bcb0a7a19eafa8a2acbfb8b2b8cfc7c2b9dad3cdc7e9e2dcbbebe1d9b2eadfd783c6beb9aedad1cdb0d8d1c9ff6b6763ff423f3dff4e4740ff4b443dff4b4843ff53514dff514f4eff5b5a59ff5a534dff5b524bff595049ff574e46ff5a4f49dbe4e0d488cbc6ba9acecac0a2d8d1c7afdbd6cc56c6bfb464c8bfb277c4bcb163b7b2aab0c4c1b9f6d4d3cdffdfddd9fecbc8c69ba2a09c7e98948fb39d9c96959995909e9a99948891918c859694909e9c99948aa29e986199958f49928e8757918c862e837e773e85817a6588847bbd8e8982f9918b82cb78736cba76706ca7726e69c07a756f7c736d687e6f6a647c706a6476756e66a14e4943d555514ac27b746d64736b64726e656291746f6a657169634d6f655f51706661bc7f7772998178718b81766f667d726a4f72665b75685f53595248407f4b4138632f28227f2a231e41241e1847683011587338164c4b200b60431f0b5d7d3f1a4a7a3e19366d32123d6e3313406453479073635693796a5e9282756b96928478858d817c9d918a857b87827a43827b709b837e77cc7f7871af7c78708778746d9a7977708e6f6d665b5b564f6e4c4741713f3b34c1312d2779403e3aad6a6863c76b69648c64605c8a65605a5259534e9f655f56b7786f66a2766d668476706897827c75d09c948b84817b71aa948d83b48f8b83ab8d8b85af91908b7a87847e648480787788837cd4a4a09ac8aaa49f91a49e98ceaaa19d8c9e9690b8a59d96f9b0a8a3d79e9a97ffb8b3affdbbb5b1adb5afa7d7c2bdb4bcbcb7b0d0bcb7b39bb1aea886aca7a381a7a19a9aa69f9b82a19b96ff534e47ff4f443cff443930ff473b32ff4c423bff484643ff45423fff3e3b39ff89827cff87817cff423f3cff43413eff42413dd7b6b3afcfaeaca89da3a09d639694919fa5a19a76a39f97a2b7b7b1accecac2c8e1dcd4d7ebe6dcd8e2dbd3cad9d5cbdad3d2caedd8d5ceccc8c3bcbfbcb8b4b7afaea7a6acaba6aac3c0b9a2d5d2ca93dfdcd3a2eae6e0b1f0ece4a6e9e2daabe4ddd5cae4dcd4b1d2cbc38abcb8af99aaa69f7e99958f5885837d6a91908891a4a397a5b8b2a67d9f9b9483b4b1a891cccbc4bbe6e0d5dceae5d57bbab0a373bab3a7b1c2bdb1b1bfbfb899b1b0a770a7a49c54a6a39a67a8a39bb4c2bfb8b6d2cec665c6c1b6ff6d655eff776d66ff6f665fff71675fff5d5652fffffffffffffbfbb5e7dfdacfebe2dcbfe5ded9d4ece3e2a4e2ddda8fded6d68be2d9d5adf3e6e490f3e7e490f4e8e58ef4eae57ee5ddd8b0f3eceb98e2d8d567d8cdc89be6d9d5c1e6dcd6eceee5dfbfdfd5d1c7e0d6d3c5d3ccca91b9b2ade0c5bfbfc0afa8a7a1a8a4a3659d98959dada6a07fa399917c9a948faaada49ecfb9afa8c3b2a7a2bbb0a59fb0aba19bebb1a9a4deb1a8a3c6b2aaa7bfaba49eaca8a19ca3a8a19d89aba49ea3b6b3b0a6c1bbb7a1c8c2bdb0c8c1bdaac8c1bec7cec5c1acc1bab5ff575451ff4b4844ff353433ff81796dff6f655bff4e4a48ff524f4dff4f4d4aff595552ff5b524cff584e49ff544b45ff574c44899d9a93c5b8b4ae7ca29f97649b988d6da5a199b7bcb8b0cac9c4bdcccac4bcb0beb7ad9bb2aea7e0b9b5adfdbfbeb8e5a6a6a3f2a4a2a0cf92918fbc898682bc87847ece888683bb848381a4807e7c9883817c9d837f7da98a87859c8d8783968985819785817da887837f867b74704f6d68637e716c66c1756f6adf706c65c0706b67d176716c8974706b83726e6792767069846f6c64d03c3831c65d5650c17c7671606e65609e746e6a95746d677a77706a5572696453746a6269766d649d877c745f786d6666776c615e6f645a7a61574d6f4e443c9c473e366529231e7227221d3c231d1847672e11687a3c1964793a1940763519593617095949200b5c552b113a713514336b3112436f36154e6c4f3b6f6f5e4f8a78665983807165a698877a7d8a7d759a8e857da8918b838c89837bbc827e77da7e7a72c77c78717773716a81737069946f6d67755c59514c4b4740833f3c36a136322dca4e4b46a66866628766635ea96c6964765f5a546a5f58519c6a625ab37d766bcc817871d7898479a9807b72c587817aaa847f79997f7b769b8b86807979777392827f79978a857d828d877fb2a0978fb1a29892a1978e884b8b847fab9e9693bb9d9691ce9c9792c29a9390ca9d9794dda9a4a1d5aca7a3c9afa9a4d1ada8a3d3aba6a0cba9a6a1aba39f9aa7a5a19dccada8a3caaaa7a0bba09c97ff524a44ff4a4037ff483d34ff4b4339ff45413cff474441ff3f3d3bebaca69fff8d8580ff8d8682ff413f3bff4643419da29e98669e969091a09d9aa2a19c97b2a09b96b4a9a59eb5b6b1adb7bfbcb5acb9b7b0a0b6b4ae83a5a5a099b0aba5c1b9b4aec1b8b4ada4b3b0a9b6aeaba8a9a8a7a2b2acaaa39cb5b2ac9bbcb9b3b6cec7c3d3ded7cfb7d8cec989c3beb693bfbbb284b0aca17da4a39780a9a49e62a39d95629e998e6996958c56918e877094938a809f9d928e9d9a92a1b6b3a9a5b9b2abc1cac7bab7c6c2b7b5bcb7ae99b0aba284a19f9879aba69f66a29f9972a2a19c7daba89f4faba59baad0c7beafd7cec3bed4cac1ff746b65ff776d67ff776e68ff7a716aff5e5853e2f8eff1d8efe8eaebf7efeedaf0e6e3ceebe2e0d5e8e1dfe4f1eae7caf4ece9c1f1eae7e2fcf2f2d0fcf4f2daf1ebe8c3e4dbdbf6ede7e5e6ded6d798c3bbb982b5ada9a0c2bab6d4c8bfbcc8beb5b3abb5afafa1b2adaa9bada7a4a2afaaa86e9f97956ca1979458999491b1aca4a1a9a69c98a6a89f98a7aca19dabaea69fada8a19c91a19a958398928e9ca09893d2aaa29cbfa89f989da19994c1aaa29dbcaca5a1a2a6a09ba0a49e999ca69f9dc5b2aaa7b9b1aaa67ca19b9886a8a19d80a5a0994889847cff6e6a68ff3f3d3cff9b8f86ff90857ddc877c76ff4e4b49ff534f4dff504d4cff574e48ff544b45ff504741ff4e463fa9857f798697928c66928d8670908e8875908d878a9b978e7ca3a09786ada69d9eb3aba48ba29c955c949089efaca8a3c09d9a96b093918baf8b8886bb858381c6888581e1888682e3898684e4898681cb86827fb7838280877f7c79c087847fc3898680c687827eb484807cfb908d86fc89837f9e726e6aa2706b68ce77726eb16c6863b66f6c68b2726f6a8b736e6884747069756e6964c147423db35d5852a87a746eae7a736e8e726c687e726a649577706b60746c65477066614872675f8380756c477669616673675f5163584e6e584e4773483e386c38312b66241f1a7525201c402c1e164f692f145174361567813d1b5e69311550863f1d3d743115475e291355431c093e3d1e0b326c331325662d10447238164d6d432a626f5b4c847864569c8c7868969482757787796f6c877c7378898178a687827aae7c776fc5807c75ce7b78736e6d6a627f6f6c658c6f6c645c5c584f604d4a438d3f3c36d839342f66413d386263615e7966635fab69656089625e57b56f6761c3766c65ba786f67b87a746ed0857f78cc8a867fca8d8882c68b847fa4827e78736f6c665e6a665f6676726b727f7a73968c8881a7908a83b5948c867c8d8580cf9b9490c298938fa1908a87b9918a89f5999391de9b9794fba7a3a0fba5a19ef8a49e9bf4a4a29ef3a7a4a1aca29e9bc3aaa5a29aa19c95cca6a49fe2a8a4a0fd7b7672ff514842ff493f37ff4b423bff4c433bff454240ff403e3cc1979590ff6a6058ff776e67ff3f3d3bff403f3dff3f3c3a34958c869ca5a09ca7aba69fb2a59f9a999f9a959aa5a29bb6aeaba795a6a19ab4a5a19aafa6a39ea6a5a49fbcaeaba5d7b9b6afe2b7b3aec6b3afa7bbbab4aeb0b2aea7a8b6b0aab9b9b3adb1b8b4acc7bfb9b59fb1aca674a39e9875a49f999cb5afa99eaeaaa389b2aca488aea8a0799f9a9381999790709a97904f8a867f5d8c8881788e8a85b3b5ada7cbb7b1a790a6a19a98a8a39cb7beb9b1a0bbb7b08ab6afa9a2beb8af7daba8a0569490874e98938a64ada9a07bb2aea591bebab199beb8afff746a65ff786f69ff776e68ff7c736edda39b97e7ece4e4f4ede7e6fcf4eeecfff0ebe8fff8f1edfaf0e6e6fff0e9e7f4eee7e6dbe7dddbd6e7ded6add6cec7ffe8e1defedbd0ceedc9c2bef0bab3b3ceb7aeacbdaba3a3b3a79f9fb9a6a29eb0a09c9ab5a09b98c0a49e9abea39c99bda49c9a7c97908c73958c88a4a09694aca29995b4a3999591968d87a39d9590b6a198949e9c938da19c938fb09b938fc59b948fd5a19892d59d9390a7958e88baa59b95b7a59d97aaa09792ab9d9590aa99938dbda29b98a3a099968f9e9995bdaca6a2bfb0a7a5f86b6866ff4c4a48ff353433ff736962ff776d666687817fff4d4a48ff4d4948ff605b54ff5b5149ff594f48ff574e48f3696059b3afaca4adb1aba4a2aba69e859a97915d8986805e8e88825c97928a5f98938d719c9992989d9a93ba9f9c9697999691dca19e9ac0949390b78c8a88df8a8985f18e8c89ea8f8e8cd18e8b87d48c8a86d38c8a86d8898884b082817d9d7f7b77b1817d77ed8b8882ff958f89ec88857ff985827deb807d78d178746fb6797470cd7f7b75d875726d91726d697d736f688a75706adc56514a7b6966609976716ba579726d80716c678a766f6b907c746f7f7a706a4c7065603c6e645c6a796e6765786d66496f655c4b5f554a434b41397c443b347b332c265e201c186c231d19384f261245672d1254753515537735167c37190b55381708529347224e843c1c437b3616376d2f14563c1a093b1c0c0431693012306c3112436c35133e7339146c6f5a4d806f5c4e90816e5fb69886758d9282775085796e41766e67a17e7971936f6a638d605b55bd79767090727069736e6a63716d6b625759564e7b4e494392413e39ad2f2a258e3f3b367162605c73676460b66e6963c9655f57c5736e658a7773699786827995938e85b39c968e8b9a948a7a948f84ac989288a89c988f9ea39f957da49e969cb4aba4acb5b1a9b9b8b2afbdb8b5b1bec2bdb9e5d1cac4ffe3d9d3ffe1d8d3fdddd7d3fee5dddcfee6e0dcced8d2cfb2d1cccac6dbd4d1b1e2dbd5a8e6e0d888e0dbd1e0fcf6ecf0fffef4caf9f3ebbcfaf3ece4fbf2ecff58514dff504943ff4c443eff4f4740ff463f3aff413f3dff858383ff62574fff595049ff3d3a38ff3c3a39ff3d3a3892d8cdc6e3fffaeefafffefcfffffffffffffffffffffffffffffffffdfffffffafffffff4fffffff5ffffffffffffffe5ffffffeffffffff5ffffffc0ffffffceffffffedffffffffffffffffffffffffffffffffffffffffffffffd7fffffffaffffffe0ffffffefffffff93fffffb8dfffef186fefcf1d8ffffffb1fefefab3fefbf7fefffffff6ffffffdbffffffa1fefdf6c7ffffffe6ffffffd9ffffff9fffffffbaffffffc2ffffffc3fffefe96ffffff82ffffffb9ffffffb5ffffffe8ffffffff726863ff7b716aff797069ff7c726bfff0efeeffffffffffffffffffffffffd1ffffffe0ffffffceffffffd0ffffffabffffffe1ffffffffffffffe4ffffffdbfffffff3fffffff8fffffffbfffffffffffffffffffffff6ffffffffffffffffffffffffffffffffffffffe6ffffffb2ffffffa8fffffee1fffffff9fffffffefffffffffffffffffffffffffffffffffffffffdfffffffdffffffecffffffffffffffe8ffffffdbfffffff7ffffffc9fffffff7fffffff8fffffffffffffffaffffffffffffffffffffffbffffffafdfffffff3b8b8b5ff5a5653ff3a3937ff484542ff5b524dff615853c0cac8c3ff514e4cff605d5dff615850ff5a524dff58504aff544b45adfdfbf692f5f5ef83f4f4ec95edede7c1f8f7f28fe6e5df88e3e0dc8fe4e0dad3fdfcf5b5f4f0e9bbf6f3ec9cf4efe8acfbf4f0fffffffffffffffedff1eee6d2eae6e2f3f0ebe4aed3ccc8b1cec6bf80b8afa972b6ada775bfb8ac87c0b8ad90b8b0a691bcb3a99cbfb5a9afc1b6abb2c2b5abc0b6ada3a2a29b91f0a9a197e5968f85c98a847ba0746f6b9f76706b7c736e67c4454039b7504e4a5f6c6865c47a75708c766f6b8d79716e45756c67837d746f6d786d68436c635d5f746a639a7d736c41695d54465b5047464940374f39312a5c27221d5d1d1915431d18143f63270e40682b113f6e2f12597e3a17592a12085137150757823b195d9d4d27488e421e49853e1c447a36184a76351a4f3d1a095328120644793c173a6a33123b733b163e6f34125b68503f726b574964736151898b7868578575665a7f74697c7a746e6c726c668b6c6861b77a7670a775726d92727069636a665f4f68625b685957518d4e4b4696413d37e03c3731ae625d57565e5b598468645e74726b62717871677d817b72808b847d788d8981939490877c908b8392979288c4a39f97949b958e9aa29e96a9a9a49ebdb0aba5c0bbb3afa9b6b0acb3bfb8b5e7cec8c5abc6c0bed4cec7c4eed8cfcbf4d9d3ccd9d4cec9cdd7d3cfadd6d0cab1ddd6d089cac4bf86cdc6c088d9d2cb9de1dad397e4dbd5baf5f0e7c6fef8eecefbf6ebd8fcf3ebe3fcf9f6ff524d49ff4d4843ff4d4742ff544c46ff423f3dff75736eff7c716affbeb2a3ff8a8177ff3f3d3dff3d3a39f6504c49f3f6ede3fefffef3fdfffffefffffffffbfffffffdfffffffefffffff0fffffff6ffffffeffffffee9ffffff9afffcf3fffffffffffffffffefffffffffffffffcfffffff7ffffffecfffffffffffffff4fffffffbfffffffefffffff4ffffffe4ffffffa9fffef8f5ffffffd4ffffffcefffffffffffffff8fffffff7ffffffc3ffffff8ffffff996fffffea4ffffffa6ffffff8effffffa9ffffffb3ffffffbeffffffeaffffffbeffffffb1ffffffc7ffffffe4ffffffd1ffffffc5f6ece1ff716963ff7c736cff776f69ff79706afff1f0edeafffffff3ffffffe3ffffffc2ffffffbbffffff91fefcf986fffefaa8ffffffb4ffffffd1ffffffd5ffffffdcffffffeefffffffaffffffccffffffdefffffffffffffffdfffffff9fffffffefffffffaffffffbcffffffc6ffffffceffffffcffffffff3fffffffffffffffefffffff9fffffffafffffffbfffffffafffffffbffffffecffffffe6fffffff7ffffffa2fffefafffffffffffffffffffffffff9ffffffe4ffffffc0fffffff9ffffffe4ffffffe2ffffffedffffffcbfffff6ff605d5bff4d4a49ff343332ff5a5551ff7b726bff9e948dff4a4a46ff4c4a48ff5b544dff554e48ff554f48ff554c468df1eee89af3f3eca3eeefeaadf5f3ed9aeeece8abebe9e29be3e2dab2e9e7e1ccf1eee8b7f2ede7aaf2e9e2c0faf6eff3fffefcb9fdf8f5fcfffff9e1f6f1ede3efeae2d6e9e4dba7d8d1c9bfddd6ceb5d1cac582b9afaa86bab3a894beb7aea8c7bdb4b0cac0b6aec4bcb391c2b6aea7c3b6aee2cac1b8f9cabfb5cfb9afa5f0b3aba2c09d938ad7968f8698746f6b78746e678a39342ec34c4944536a6763c07975709e746e6b917a736d7d7c7671867a736e8f7b726c4971675f68776e669e7c736e886f655e6c5c524949453b335b37302851211c18511b1713462a170f4650200c3c61260e376f2f11466f311352321407604a210c6095451d5698491d57924420498b3e1c3c833a19427f371a467b371a4e793a1d4c5c29125a411c0a4a4e2510336b3513487139174f612d1248362217435d4a3c5c6e5b4c5e7f6c5d4d7e6d5f597a6f64506c645da4706a64b8706d659066625ca075736b7d706c676665625c7c68655e765a58527a4d49439c433f39f249433db6716c667b66636080827b7282868177758783799e95908aa892908ac69b9993a49592898d98938a66938c838d9b9690a2a49f9ab0a8a39fbfafaaa9e9c3bebad6c1bdbbecd7cecdfee0d7d6f0dfd7d3ffeae2dcffe8dedae7d7d1cee9ded6d3d2e1d8d4d5e5dedba8d8cdc887c8c4c0b0d9d4cec4e8e3dac8ede7dfd5f7f3e9e5fcfbf7d3f9f3eed8fcf8f6fcfffefcffffffffff67625eff54504bff55514cff55504cff514e49ff3d3a37f2d0c3b5fff8ede0ffc0b7adff3d3b38ff3b3837e58a847da8ccc5b9aae2dbd1b0f1ece1c0fdfbf3fcfffffff0ffffffe1fffffff3fffffffffffffff5ffffffeefffffff6ffffffffffffffd9fffffefdffffffffffffffffffffffe9ffffffcefffefdd2fffffffafffffff0ffffffc0fffffacaffffffbdfffffeffffffffffffffffcfffffffc5ffffff90fffffbacffffffe9ffffffc6ffffff72fffdf291fffef890fffffbc5ffffffcdffffffe8ffffffcdffffffb4ffffff9efffffeb9ffffffb4ffffffe2fffffffffffffff3fffffffdf1e8ddff736b66ff7d756fff7a726cff766e69fff0ebe4fffffffffffffffff3ffffffe1ffffffaeffffffb0fcfdfcc6ffffffddffffffe2fffffff0ffffffe7ffffffe7fffffffffffffffffffffffffffffffcfffffff5fffffffafffffff2fffffffcfffffff4fffffff6ffffffedffffffd0ffffffeeffffffb3ffffffb4fffffd8afbfaf6a8fffffde8fffffffefffffff6ffffffe2ffffffe7ffffffc8fffdf8c6fffdf8d9fffffec5fffffb8ff4f3efc3fffdfdeaffffffffffffffe4ffffffd7ffffffb6fffffed7ffffffb2fffdf7b6fbf9f2f78b8782ff393936ff413f3dffb2a99fffc0b7aeffc6bbb1ff4b4a47ff524f4cff524b44ff4f4943ff504843ff544c46a2fbf9f3a9f3f3ee9ce9eae676e0ded785e7e0db75dad7cfa6e7e4dfbdece8e3b0e8e3dfd9fbf8f5ebfffdfafffffffffefffffdf5fffffffffffffffffffffef5f8f6eff7f9f5f2ddeee7e098d6ccc49bcec3bbb2ccc6bdb8cac1b9bfccc3b9ced2c9bfe7dbd3c7d7d1cabfd0d2cac4fedad1caf5cdc6bff5cbc3badcbdb4abecc0b6adbaaaa097c49f978db879746f435b564e7648443f746e6c689172706ab175716f616f68656d7a726e927e767184786f6a6e4a443f73766d6787756e6a72665d56845b514868433a335c342d26531e1a15441a16124d25150d4c3a16084351200c48672a103a6f2f124b2d12076152250f5f9b491e559b491d58aa55215692461e4c90421d4b8c411d3b833819337831144378341746743517575225123470351146763b195d6c361652633014432812065a2d1509503e24144863514042715f4f547868585e756a5e6e69625d6766625cac6c6964d06b6861b476726da76c68628066635d8565625d625c59546e504c47b645403ad53e39337f5e585293827e738c837d74948b857d9b8c89818488837e79847f796c817d767b8a857c6e89837b738b847ea399938cd2a8a29df2b2aba7e8b5b0aeffd0c8c8ffdcd4d2ffdfd6d3ffe9e2deffe9e0dbffeee4dffee7ddd9fae6dcd9dbdad0cf99ccc4c1badbd3cebfd9d8cfa6d4cec57ac9c0b79edbd2c9daf3eee7eefaf5efdff9f6f1fffffdf8fefffdfafffef7f2fff9f5f0ff4b4744ff55514dff55514dff534f4aff3f3d3af8c8bdb0fffffffbffcbcac5ff3a3836ff3735349aaca59cfbdcd3c7ecf4ebdde4fff9edcefffbf1eafffff9fffffffff7fffffff3fffffff6fffffefbfffffff8fffffefdfffffffffffffffffffffffffffffffffffffffffffffffffffffff3fffffee1fffffcc6fffef3eafffffdc7fbf9f7f0fffffefbfffffffbfffffff9ffffffd6ffffffeeffffffe5ffffffc1fffefce6fffffedcffffffa3fefdf9b2fffdf9d2fffffdcdffffff8efdf5ec8cfef8ef6aede6dc82fdf9ef75f7efe598fcf4ede8fffffff8fffffff1fffffffffffffffffcf7f0ff6c655fff7e7670ff7a736dff787169fff0eeebfffffffffdffffffd4ffffffabffffffd1ffffffc4fffffe84f5efe998f8f6efe1fffffffeffffffdefffffffffffffffffffffffffffffffffffffffdfffffff6ffffffd9ffffffe4fffffff9ffffffe0ffffff8bfcfbf38bfffef5e9ffffffbefffffdbefffffdebffffffc0ffffffbaffffffc7fffffff2ffffffddffffffeeffffffebffffffedfffffff1fffffffeffffffffffffffffffffffebffffffedfffffff2fffffff5ffffffe2ffffffb9fffffecffffffffaffffffdbffffffffaba89eff383735ff484543ffc9c1b7fff2e9e197b6b4abff4f4d4bff595149ff564c46ff4e4740ff4c454092dddcd5aee3e1dbb0dfded8a2d3d4cfbbdddad6d7e9e6e3a7dad4d1c2e6e0dad5ebe5defffcf7f0dcede9e5fffffffff1f9f6f5fffffffffffffffffefffffdfafaf6f1fffdf5eed1eae0d7aad2c9c0a2d2c8bfdfe0d4cc9cc5bbb08ac4b9b09fc5bdb3c4ccc4bac3ccc4bebac6c0b9afbdb8b3e8d1c7c0c4c0bbb3d1c4b9b0e7c9bdb4a4b4a99f84a49c91b4a299919f837c74a85856547b6c6b688b706e6c73706b6773716b67447068649180787271776f69677269627f756d6790776e6a7963595296574e4670413a325a2f28223d1a16125734190c632d1409522d14095e401a0a4e52210d55652a114a893f167bfd843965a34e1f5ca44e1d47a24b1b53b4592050883f1c5491441d4c8c3f1a47883c1a3c7f3515427b35183b7733145b58271249773717376a31104d733a1746612d11502e160949311608503c1d0c3d431f0c5a592e14436755464f6e5e505a6a5e533f6159538869655fb66e6b658d696660b36f6b65a768655ea765635e9a66655f9c605e578c504c4793413d37cc38342ec36b645cf3797368725b57514d5c5651b2736f69b07b746fb879746ca87b766f877b766eb07d7873c486807b586f6a62847d7673997f7b77f19e9795eda09993c59d9691b2a8a19ccaaba8a4dfb6b0abeeb8b0aad0b3aaa7e2bdb2acfcc8bdb9c3c0b6afafbab0add3c3bcb5e2c2bdb4dac6beb9e6c8c3bde5cecac6fcd4ccc9ffdcd5d0f7d4cbc5e7cbc5bddac8c0b6ffbcb6afff43403cff534f4bff524e4aff514d49ff7e766fffe4ded5ffebe3dbff3b3837ff353333748c8678b7a9a094acb1a69aded4cbbfe3e2dbccd1e8ded0ebebe3d6aee1d6c7d8efe5dab7e4ddd0c5e1d6cab5e0d5c7bde9dfd3a5dbd1c872cdc5bbb8e7e0d2d8e5e0d6bfe7ded29ddcd2c970c9c0b630aba69e80cdc7bc6cc3bdb58ee1d7cdaee7e0d7b9eae0da64e3dcd2bbfefdf389e8e5dcc2fbf5ecfeffffffe8fffdf5fcfffffdffffffffd7fffbf1fcfffffedffffff924c2b6aec7f5f1ea91ede8ddaddbd9ccfdffffff92e0d9cfc5faf2ebace9e3d9caf1e6dda1e2d8d197d0c7bfedcbc5beff645f5aff79726cff7b736dff766e68dcd1cac9b8efe6dbe2f4ece7ecfcf9f6d4f4f4f6b7e7e8e8bcebeae9f4fffffbf8fffffaf4fbf9f6fdfefdfabaeaeae9fffaf9f8d2e5e4deb5d7d5d0ebf2ebe4fffefcf696e3dfd79bebe2d8c6e2ded6dbf6f0edfffffbf8bae9ded6aee7ded6abe0dcd59bdad8cf95dedbd2aeeee4dbcef2eee0b2e8e2d7e9f7f3e9c0ece3ded6f5efe37bdad6c9d5f8f2eceff6f5e9f1fcf5e9d0f4f0e5c1f2efe79edcd9d4b7ede8e2c6e9e3e19cd1cdc771b9b7b36ebcbdb2bfe6dedcd1fdfbf499f9f7f1c2eee9dfd383817bff444241ff484643ffb3aba4ffcdc8beff555250ff574e47ff5b534bff554d45ff4f4741d36d6761a398978f5c87827e6e898782aba29e9aaea7a49d82a19e99a7aca9a5beb0adaac4b4b5b29eadaaa9b0b3b1afb5c3bdbadfc8c2bf1b8d877faaccc6c194c4bdb890bfbcb7aeb1aea6b5ada6a79da2a19defbeb6afc2a7a197e1b2aea5e5bcb4acb9aea8a1afb2aaa59ba8a19bb9afa9a4e2aca7a3ceaba59ee0a8a39dbfa29b949c9f998bc39d968fe7a49c94c7968e86a347444199716e6e856f6d6ca474726fa378746e406c666344716a66817a726d81655e5680736d678e7067628361574f9d5248409a433a3269302720806731194f4b230f653c1b0d622d15094c2b1308503d1708564b1f0b4e4319086a60290f75ff9a4351a44e1d57b1561f65b85d245dc0622358833f1c568c421c5192461e48873a1844853a1a3e7e35183f7c351652692e1448833b18476d31134253250e5b4d250e6235190b4c381a0b48401d0d574e261058582a124966311447674935896f60544d62554b56655b53926a6560b96f6b659866615ca76a665fab67645d795f5d597d605f59975f5c56854e4a458d3e3934f24c423ad14d423bbf51463fa8524943bc574e47c95a524bc95f574fe9665e57dd625953c85e5852ac5c544ea85c554fc75e5651c85d5652db625a55ba6058537458504abf665d57c2686059f96c655ece605a54aa59524eb25c5550ff6e655eff6c645dfc716961f1716962da6c655eca6c655dd26b655ed46e6660eb6e6760ef6f6760ff716961ef6c635cc2645d55d0635b53fd403d3aff44423eff514e49ff514d49ff43403effaba5a1ff9d9693ff393736ff363333b3524a44a5574f48a75c544cca655c54c2665e55c86c6157cd6d6257bc6e6458ad6e6257b76b6157e571665bee72665cdc6e6359db6e6358d86c6259c36b5f57c56c6159ba6a6058a2685e56a7685f57b0685f58ae655c54906259518e625951dc6c6259d76e6359db6c6158845f544bc2695c51e46b5e53ef706255fd716357c96b5e53f974675cd26c6156f970655ae26c615759534a43cf685d54e96b6158dc665d56d9635c55d35e5952d75e5a53e0615a558e524d47b457524cb156504aff686157ff66605cff746e67ff7a736cff78706afd635a52ff665d56fd665d57ff6b615aff70655efb6b615be8655c57ff6e635cff6e645dff736963ff7a6e69ff7c716afd7f736cff83766dfc7a6e65ea786c62f87b6e65f87e7168f97f7267e3786c61fd807469c8776b61c7766a5fac71655bb673665bca756a5e9b6a6055a96f645abc73675cd375695eb271665bc573665cbd70665ba972675da872685ed67a6f65ef80756adc7d7266e4807569d57e7368b0786d64af7a7067b57c726891726860bf776e66a36b635bad675e5688615a51b2645e55e959544eff454340ff464341ff9e9792ffa39e99ff565452ff574f49ff534b45ff534a43ff574d47e8716b60cc6d675ebe6a665dc96c675fca6b655ebd6b655ee16e6762d669625dac635d59aa635d589a5f5854c1635c59bc615a57bb625b58cc645e5995625a558e645c58e26b6560e466605ba959524eb45e56518b5a5049c45f554dd361574ea95d5249b15b4f4680544b4275564c4495595048b7625850e6635951f663584fdc5f554bdf5f5449ec776a5fdf8e80749993887c716a68667e716f6ebe7b7976a075716c9576716f3569635f6f7b746f8b7c786d9276726b856b635e9d5d524a75453c34d0433a31725d311b727a3a1c6a6530177052281362411e0e6532170b792e160b5c3717094f2b110662421a0963682c0f6eff9e4550b0541c5bbb5d1f5aba5f2068c765236880401e6088411d40863c174c91431d428a3b1948883b1a478439185277351845893a17447131144f411c0d473a170a5e39190b403618084e49230e454f240e4d5b2d133f612b11427335134d703a1d7d67584a6863584e62645a528b6d6761ce726e68b7706c66af68645fab62605a7862605c8c64625da35e5b536f49453fa3584e44a45b524ac5625950c9675e56ac6a6058bc6b635bab6a625bcf736b63d9787169ac70685fcf776f69d27a726de27c746fbb746c67c9776f68f4837a74c07d736ca67d736cf28d837ae48c8078dd887e78a57a706bd1897d77446f635aaf867d75b18c817a958a817a9f8b82787c827a7171847b7395898078c6978d84f99e938aff9f958cf9999087f590887ef58b827af8857c75ff3a3734ff4c4844ff4f4b47ff504c48ff3d3a3aff383735ff3a3836ff36353599534c44a460584fd973695fd07f746aed8d8378f89a8d7efaa59586e9aa9a8ad7a59686a699887dcda39387d6a19185eba59689ce9e9085f1aa9c92a9968a80c0a5978db29f9087a49d9085b19f9087cda1968cb9988b82ac978980a4988a80dba19389c79a8e82c69c8f83e7a49587e6a8998aeba89889ffb2a18ee6aa9a8aac9a8c7ed8a79889ddac9c8ce6a69586e9a49689eca6988be3a09287e89b8f84e9998f84ff9b9288fc938b82cf837c74c8837b73d0817a72f5878079f9877f77d7827971ff68625cff797269ff79716aff787068ff7e766dd46f6761c8706863fc887d76ff8b7f78ff8f837cfb887d76fa887d77d07d746dbf867a75bb8f827ceaa79991ffbcaca5ffc4b4adffc3b4aaffbbaba2ffb7a79dffc7b7adf0b0a398cea89b91fab7a99ed9aea1986b908378c5a79a8ea8a19486a8998d83c4a2978adcad9f91ddb1a293deb0a293fabaac9cf8b8a998f7b3a597f2b4a79893988b82b0a6988dc7a99b8fe6afa295baa69b90deb4a89eb0a89e92dcbbafa4bfb1a69be1b0a5997f8c827899867e759a79716a8c6f665e916a645bd15a5550ff474442ff474440ff575452ff585654ff59514bff5a524bff544c46ff554c46bf7e7a6dad7f7b70d68c887dd6928f84b6928c81c38f8a82bb89837cc68a827cc68b827ec1877e78ed918885c68a827ed488827d9a7b7371f7918884c288807da4837b75f5968d87ff9a8f8acd8c817c917c726aa3766e66a2766d647270675cb77b70678773675ea6776b61bf7c7065ae7a6f65ce81786ede857a71e783786fd57e7268e07e7166ca796d61b182756aae8f83778f998f829a737272ad7a7776c07b79778c75736e4d6e686459716a666d757065a37b776cad71696070554b439c433930a1362e256a9a471d6990441b808344217967321a6d562a1473482210563618094a401d0b4e4f2510403b18095b491e0a5e6d2e106fffb04a55b65a1f5dc3662453bc5f1f5cb95d23637d3e1d6d88441e58863f1b47883b17488f4019488a3f1b478b3e1a52853c1c408d3e18417731125250221048491e0d53451e0d36351508723d1c0d4a4c230d5b6330154a6a3314427435124e7c3b174b763716715d4f44595c4f4672655c54a5716e67ce746f67956d6863ab64615e94615e5a7d5f5e5a985d5c5787575450a76b6259aa6c625bc2746a62aa736a61c07a7068a67c71698a736b627c776d65927b716abc837b76ec948c86a88c827db88d837fa6867d78c08b837f96887f7bd19d928fffaea29dfaaea19bd1a69b93969a8f877091867f7486807ca99d958db3a69f97dab7afa78aaaa098aab1a8a0b9b8b0a6b6b4aca4f9c9c1baffccc3b9ffcdc2b9f0c6bbb2f0c7bab1e4b7aea3efaca399db9a9289e6403b38ff403b38ff4f4945ff4d4744ff494541ff3a3939ff3a3836ff3736378c584e46d774685eff8f847af7a2948aecaea093ebbcaea27cad9c8d95c7b5a46fbaa896c3d1c0b0a8cab7a9aeccbaad43a89988a1c7b6aed8dbccc0fce8d9cdd5decfc4fff4e4d7ffeddccfc3cfc2b7a6c8bab09dbfb4aa67b0a59c73bdb0a4a0cfc0b4accfc0b2d3ddcdc0c8dcccbd96d1bfb19bd2c3b4cde6d2c4ecefdbcba1d4c4b4cde1d0beb6d4c6b4e0ded1bff8e6d9c7f8eadecbd2ded0bff1d9cdc1dcc5bbb0f2c1b7acf9beb5aadbaea599febcb2aafebbb2aafbb4aca4d7a39c92ffb5ab9fff8c857dff79716aff7c746dff7a736bff9d9389eb9b9189a9867d77d99d918bbc91868174857974be968b87a38d837fbe9d928c92a39892bebdada7f1e2d4cefffcefe9fffff6f2fffff4ecfff8e8dffffae9e0f8eee0d5eaf1e5d895d0c5baa2d4c9befefef3eae9ece0d3dde8dcced7e7dbccbfddcebd5cbdad9ef9ecdccbfffff0dffffef0dcfffdf1ddb7d9c9ba94d1c3b36dc4b6a5acd1c3b6afd3c7b9a4d0c2b54cb5a79765b8aca2dbe5dbcfe7ebe1d5d4e4daceecede3d5e0d9cec07ca9a09687998e868b89827a8c807a70706f695ecb5c5951ff494544ff4a4643ff494644ff59544eff5d544eff5d544eff58514bfd928d81bc918f84bf98938bc5a6a198aeafab9fccb9b2a8a8afa79e7f9c938e69928986b1a09694d0a99e9de8b0a8a6959f9694909d9691c3aba4a1b8a59c9ae1b1aaa7bfaca5a2bfaba29fc1afa4a0989f959159887f798e908781c0968c837c877d72b293887f7881787082847971a38e847ac79c9186bf9d9389d5a2978cc79f928ae09a8d83b88c8076c69082789196897e578d7f78a9a59a9196747270a374747367756f6b53716c686e76716d59716d6185767469a96e665cbd5b5147673d3229a632281f5b9240195aa4541c5b8840196b783a1d6a6934185256280f4150240f4e572911405d2a1045692f1337461e0b534c1e0a677b361279ffa54759b95e205bc4662164bf63265dbd64266b6c32165b82401c5e8a431c518e42183e903e16468c3d17418c3d19569c4a24438c3c183d7b35154e652d1352612b13555826114d4c200e584b230f4c4c2310505f2a115875381441723414518240183a7a37133674351486594b418e5f534a95696057936f6961cd79736ba9706a65ab5855518c5f5c59895d5a555555524d997c746c9978726a87766f6883776f69937d746d827d766d98837e7591888079ce9a928acb9f9790c5a49a97b7a59c98d0afa7a3d5b0a5a2929f9492cab3aaa5d4bcb0aeb0b9aeabb5beb4af98baaba7a4b7aba7c5beb2afb9bdb1aecec8bcb75bb3a8a0bfd9cec7b9e3d9d0d0e4dad2dee9e0d8e4efe5dde7f0e8dffaf7ede4f3f9ede6fffbf0e7efeaded5dedccfc8d6d1c7bf6aa29791a8a39994ff312d2aff47413eff4d4743ff4c4742ff383735ff413e3cff393736f3685e54f37f736ad592857bc5a79a92a9b7aba0c3cec0b5e1ecddd0edfff3ead9fcf0e78ae6d5cad9fffbf3f1fffffbcefffbf3bffff8ebdcfffff8ebfffefbfffffffff1fffefbe3fffff8dffffbf5eefffffdf8ffffffc6fff8f088f6ebde89f9eadab0fef6ecd2fffffaaafffaf1b0fffdf6f8fffffffdfffffffaffffffbefffff9f0ffffffc7fefcf4d5fffffcf8ffffffb8fffff5d7fffffcbefff6e88edcd0c68ccec2babbd0c5bdf2ddd4ccffebe2dac1cbc1b9cdc6bfb6d2c4bdb4dac9c2b9ed8f8881ff7d756eff7c746dff7c766dc2a29a91a2a59c94869d95909f9d9796e4b8b0acd7b5aeace3b5adaca2a09997a2aaa2a3cccec8c6fffefdfcfffffffffffffffffffffffff7ffffffedfffffffdffffff9ffffcf88ffbf5f0f7fffffffdfffffff3ffffffb0f9f5f1f3fffffff8fffffff9fffffff9ffffffffffffffdefffffbd8fffffbf1fffffed4fffff6fcfffffff5ffffffa2f6ede3cefdfcfae9ffffffc3fffef8aafef9efbbfffdf6ddffffffffffffffe6fffffdf3fffffcdce9e3dbdacec9c3d2b6b0a7b19a958c9d868177a55c5750ff4b4845ff4c4845ff484544ff5c554fff5d544fff5b544dff554e499e9b978faea3a098a8aaa8a0a1b9b6af90c2bfb89bc9c5bc88bfb9b4afc4c1bd96bbb3b1cdcbc4c2e8cfc7c6d6cbc0bfe0cdc7c5c3cac3c194bcb4b49fc5bdbdc6d4cbcabfd3cbcbbbd4cecc69baafaeabc7bcbcbec4b9b5b6bbafa86a9e948bb3aca298d5bcafa6b6b3a89eb0b1a59bc2bbaea5d1c3b8adcdc3b8ade0c3b8aedbbfb3a9e1b7ada1e8b4aa9edeaca197d5b0a2986d9a8f85aca89d95947673717573706a5e706c666d615d595e736d63817772679f6c645ab0574b40913c3129a02f241b559d4c1f75994e2160954b1c6587411a4e72341236622d124c653115526b3317507437183b7434144d88401b4252220d5456240c557f381275db773156bc5f215cc969245fbe632460b05a22566b30136049200d5b49220e5d91441d5198471d4f96451b4592411a56ab5328418e3e15487f3a174b7233164a773515587435165a683016505f2a14405a2711415f281055793516479048175690491b488f481a38803b144e7b3a177e584539845e52479b6a6055ab746c648f6e6861b7726b669d66625e8b5e5a564d56534e7b7b746b7477726b947f787195817970667a7068b291887ec8968f83a9938b81bc9b928bc6a79f99e0b2a8a4cfb4aaa7a0a69d99a1a69e9ba0a8a09d99aea29f9fb5aca8a1bcb1af86b9adab74bcafaab9c9beb9b1c9bdb9c1c9beb893c4b8b1cadbcfc8eff8ece5e2fff4ebb8eee3dbe7fffaf4f9fffffcf7fffefafffffdf9f8fff5edfffef6edfffffaefffe7ded6fee1d5cc75a59b94aaa89f98ddafa7a2ff36322fff45403cff494340ff47423fff3f3d3bff363535a5695f54d4867a70b593857dd1b3a69af6d4c5badbddcdc4ceead9cfc4f4e3d5fbfffff7f5fffefcc6fff8f4c1fffef7d9fffffdc7fffff9e5ffffffedffffffe7ffffffe0fffffff8ffffffe1ffffffdbffffffdcffffffdbffffff8efffaeeaafffffdddffffffe6ffffffeaffffffecffffffb1ffffffe6fffffff3ffffff96fffcf8d4ffffffc1ffffffd0ffffffaafffffdb6fffffcb4fffffca1faf2e8c8fcf7edb6eae1d8f9f8f0e6faf3eadfebe7ddd7d7ddd4cce2e3dbd3f5e8dfd7c0cfc4bffc99928aff7b746cff7a726aff7a726b9cb0a59eb6afa7a2eabfb7b3d9bab2b187a39c98f2c9c1c1d2bdb5b3e7c3bcbafedad1d2f3ede2e4ffffffffffffffffffffffffffffffffffffffffebfffffff3ffffff95ffffffbdffffffd8fffffff0fffffff0ffffffffffffffffffffffffffffffaffffffbedffffffffffffffe3ffffffedffffffdcffffffeeffffffc0fffffef2ffffffe2ffffffd1ffffffb6fffffec4fffffeabfffef6c3ffffffbdfffef8c1ffffff9cf9f6f0e3fffffec3e3dfd7c6cbc7c2b0b0aca69f9b968f998b847ccc69645dff4d4947ff4e4b48ff59534dff59534dff5b544eff5e554f9b9e9c9471908f86889a999085a1a19aa0b7b5aeabc8c5bb84c1b8afc5dbd5cdbed4cfc7aacdc4c1c9d2c9c7cad4cdcbd6d9d0ceb5cdc5c3a1c7bec0ccd3cccb93c9c0bf9fd4cac69cd1c7c4a1d7cdcb7fcfc4bea5d4cac7bcd3c9c2cbcac1b7d3c1baaeefc8bcb1c3bdb2a7b9beb2a990b7aca1b7ccbfb4d4cec1b592bcaea496bfb1a5eeccbfb4f9cbbeb5efc1b5acd8b5aaa09faa9d8fa7a7999197a6998e7474716b5a716d667477716988757269506d675e7e655c518f4e443b9a3a2e268460351c51a04e1e568d441c5389421a55843f17477838123c703514346f32134577391a5e833f1e44833c194391441c6caa52274e602a1156602a0d618f441671e1753162c163215fc3632256b0562160a0511f4d692c115e6d3115533b1a0a555d2a104e95421a5298441b5298451b68ae582b4c9b4a1d457e3714576f32163e773214467b36166d7c3c1d938041225270321737692d12467a3414448f421a56b45e2057a0521c4a9d511e5b974c1e5a83411a9c54473db466584ea76c6258a3736c65ad716b668d6c66618c625c57785b5651ca8e857bbf8c8379a5887f76bc8c8379df978d84e09a8f86c2978e84cc978d83c29e938bc6a49b95a7a69b9789a3989592a59a98a3a79e9aceb4aca8a2aba09c97b0a5a085b3a7a3c4cebfbb4aaea19cc8d1c4bfd3d0c4bffbdfd3cefce4dad3fcefe4def4faefe8ebfdf8f1a6ebe0d8ddfffdf4e4fff7eda6e9dcd39ee2d5cbfdfef5ecfffcf1e9fff9eee8ffdad1c89bb3a99df9c5bab3a8a29892ccafa59fe77a736dff3a3634ff443f3cff484341ff3f3b3aff3636359b7e7167747d6f677a8c7d75ddbdb0a7d6c5bab2a2c3b5ad97cbbcb1ecf8e9def8fff2ecd8fffaf0d4fffcf9abfff8f094fcefe8b2fffff4a9fff8f4affffffee7ffffffccfffefbaafffff99dfff4eb9dfcf0efc2ffffff95fff7ed8ffff9f1e1fffefee2fffffffcffffffb0ffffffb8ffffffbeffffffc9ffffffcfffffff91fffffa9afffffea3fefdfb90fbf7f1bcfffffdbbfffdfb8ef6ebe0e3fffefcfdfffffdcdf2e8ddedf7efe6eaf3eae2fcfaf6eef5eee4ddc8d4ccc2b9cbc4bbb7c7bfb8ea938d87ff7a746eff7a736eff7a746f8eb0a7a0ccbcb5aedbc1b9b5bab7ada9e7c1b7b5c5bdb3b2f6d1c9c8e4cdc3c3fde0d8d8fdfdf8f7ffffffffffffffffeefffffffffffffffffffffffeffffffffffffffbdfffffeedfffffffbfffffffffffffffffffffffffffffffffffffff6fffffffbffffff96fdf5e775feefe4cbfffffff4ffffffe5ffffff74fdf1e8e8fffffffaffffffe5ffffffb9ffffff9cfffef87ffdf4ec83fef9ee9bfffff8d2fffffefaffffffeefbf9f3f4faf6eff1dbd9d2e7cac7c0f7c8c5c1b9a6a19ac99f9991fa79746eff514e4cff524e4cff5a534eff5a534eff5f5752fc65615bd5a6a39b88918d86e8b0ada4d9b5b2a7b9b4b0a6b8b9b5abf5d4cfc6e6d4cec7c9d1cac4c8d2c7c5b3ccc3c2bdccc4c5abc7c1c074bdb3b4a5cac2c180c6bebdadd6cdcebfded6d474cabebde3eee3e16fcdc0c0e8e7dedccad6cbc7cad0c6bfe8d1c4b8c6bfb3a7c2bdb2a9c1c3b6ab92baada2d4c6b8ade4d2c6bcdccdbeb4fbcfc2b7d1c1b4a6d4bfb2a6ffccbdb1ffbeb1a5eabcaea0b8b2a1949fa99a8b79746e69a17d79718d78736b7a736f6573635c50864f453b6a342a227259321b5192441b4e8d441b4e813c18507939164b7336153e7338152b7331122d7b36143b853e1a428c401b4699451d59b35a2671b05b2a6a622d125f6a2f105b9546186ad86c2b5cc3652160c1632457aa561f666f38165d6f2f135a6f3214516b2e10586a2f124c602d1356853d185c9d4b1f8eb15c334a97441847853d1855672f155172331652813b1b4f823e1c5f823e1d567f3b1b4278331255863b193895401741a54c1d53b960244eab571f55a6551f669b501e618d481c6f6d42249c605348c06f6559926b655d9370696488645d557e35312c9680787093857b73a3897f7796887e76bb91887ea28c837ab091887ece9d938a8d928981aca1978f779d938d7ca69a9690aca19dabb1a7a297aca09ea4b4aaa4acbfb1adadc6b8b4ccccc1bc6dbaaca9f6d9cecaf0d9cccaf4dbcecafff2e3d9d8e2d5cddbecdfdad5faf0e7aaefe2d9fefff7edfffffffeeffdf4edfffff4ebffeaddd1fdebded4ffeaddd3ffdbcfc6ffdacec4e2bcb0a5eebcb0a8b7a99f95b9b1a69bff302d2cff3f3a37ff423d3aff46403dff3738376c83797048877b7245867971a4b0a096efc8bab0a1b9aca2b2c1b3acd1d8c9c0d4ecdad1aeebdbd3adfdede572f2e2d973efded56fe8dad1acfff7f0fffffffffffffffffffffffffffffffffffffffff6fffffffffffffffbfffffffffffffffffffffffffffffffefffffffffffffffffffffff7ffffffe7fffffffcffffffcaffffffb3ffffffe7ffffffdfffffffdcfffffff5fffffdfdfffffffafffffee9fffcefeef8eee1fdfef5eafdfbf1e7c2e3d7cfb4d7ccc3cad8cec6dbd9cec6f6d9d3cbec918b85ff7b746eff7a736cff77706a6ca69d96edccc2bafecfc7c2ffdad2cdffded5d5ffd7cfcef4d7cfcdecdcd1d1efe7dbd9f7f5eae8def1e5e5c6f0e6e4e8fff9f7fffffffffffffffffffffffffffffffffbfffffffaffffffc1ffffffddffffffe8ffffff94fffef4c9fffffee2ffffffeffffffe65eee4d742f9ecdd6efdefe6ffffffffd8ffffffaeffffffdeffffffc4ffffffb0ffffff93fefdfa70fbf3eb55ebe3d76af2e9dfc4fffffafcfffffffffffffffffefcf5f3e0dad3dfcdcac2eec5c2beeabfbdb6ffc6c1baffc2bdb2f3837e78ff524f4cff5c564fff58524dff5d5650ff5d5652e0aeaba3c9a7a39bb49b9991a898958fa79c9992b4a29e97a5a09c97cfb4b0a9aeb9b3adb8c3bcb8d9dcd1cfbed5cbc9a0cdc2bf74beb6b19dd1c6c394cdc3c29cd9cfce82cfc4c29ad9d0cca2ded2d0bfe4dbd557bfb7b5aad4cbc7eee1d5ceefd4cabfe1c7bbb3ddc2b7aee4cabfb097b5ab9dcccec0b3b9c9bbafcfd2c5bcdbcdc0b5f3cfc0b4e6c9baaedbc1b4a8efc3b5aaefbcb0a4aeac9d92c4b3a697a1a9998acc575149a17b776f80726d6175655e52915148407b3a3029839c512279984c1f5c873f195b803f1a51783b174f6f38174a773d1a3f7f3b1629833a14378b3e19479c4c2266b15a2a60b75f2965a04d24739a5026605e2b115a7234125697431874d56d2c59c36524769854216b9f54248048230e4d461d0b5e703013596e3013566d2f124c6a2f114f411d0b4f71321482a6542e5e9b4b1f4f8b4219515c281150692e135e77361a5c85411e5186411e5788421e47843a174a8e3e193398421940a54b1c44a44c1e4aa14a1c56ab5a215ea95a2158984c1c5589461a726c42259e5a5044a96a5f54ae6e676094685f5685574d44af7e756bb983796fb382796eb1867d71be8c8074d594887dda978b81c591857d8d877e74a18e817a898f827a858f837bc89c8f88d19d9089e9a69991b99f9289cea3978eb7a4988e5f8f817cefb2a29ad3a99c96ffb9aaa2ffbbada4ffc7b6acebbdb0a6bfbcaea3aeb3a59cfccabeb3babfafa4d3beb1a8ffc3b7acffb8aba0ffa69890fca2968efca89b91fda79a90af8f8378ffa5988eb4908177bb918278e4a09086d88b7e74ff3a3532ff403b37ff433e39ff40393694695c547e7668609d918278bc98897fb695867ba4908279c195867ebc978a809b9385789d9284785184786a6297897a73af9e8ca5d2c1aefffef5e3fdf6e8d4f0f0e0cec2e8d9c8d5f5e5d0ebf9ecd9e3eee2cefffcf4e4fffcf3e7fffffff5fffffdf1f6fcf2e1fefff9eaf1faefdffafef6e9f1faf3eafefffef4d5fbeee2cafeeeddb8f1e4d6d9f9f1e3dbf0e3d8b5dacbc0afd0c1b6e7dccfc3e3dbcdc3f2ded1c5f8dacdc2f4d7cac0bac5b8ae92bab0a4abc3b7acbec3b7aec8c5b9afb6bbafa5e9948c85ff857d77ff807971ff7d766feca09691fda59c97ffada39fffa89f9cffb2a9a6ffc0b6b3a0a19693fec7bcb87a9f928effc8bcbaffc4b7b4ffc4b8b4ffc1b5b0ffc7bbb4ffd7cac5ffe7d9d4f9e8d9d3fffff6eafcf2e1d5eff4e6d5e6f3ebddf6faeededaeedecfdbeee1d2c2e3d6c8afe2d2c4b0deccbf89d7c7b9c4eadccdd0eadbccc4e5d6c6b5dccbbec0e3d3c4ade4d1bf8ed4bfb24ebba69669c2ae9f54b9a798c5decbbcfaddcdbfffcfbeaffab4a69a938d8074d9a5978afaafa094f2a4968bfba4988dda887c72d8746960f65c5550ff59544fff5a544eff56504aff5c524de2857b73c9837971bf80776ea87d736bc57c746cd481776ec17b726afa837b71fa847870f882786fdd776d66c1726b62a37e756da58c8178a29b8f85bcaea095b3a99d91deb6a99d72968980aba4988d95a1948c66978880e2b7aa9debb7a99dfcb7a99bdfa99b8fd9a6978b9695877ee1a7978bae9d8f81d2a49689bd9e9084e1a19287c3978a7ff7a4958affa5968bffab9c90ffa394888c8a7970b48f8074d1908175e48e7f748d78746ca77770689d665f558a524a416e3c352e8c984e227f904a1e7a8d491f6885451d6c7339184966311446773c184188451b3d8e441b308e3f173097431847ac552385c2693462a5522557974c216382401c6a5d2c13657838146892451889bd622b6a673514816e3d1b7c4f260f7853280f6c5a250d4a5e270e56702f12506d2e12486b2d11496a2e114c5c290f7d9549265d95481e4a853c1751542511505f2a124a6b2e144f7a38195d864220668e462452883f1a428f3f173b943f17359c43183ca84a1a43a0481a5c9f4b215bac5b2161ab5a2250974c1b5489451a5272371585564a3f705d5148a161584f845449418d8f867fc89e978db89d9389af9f9488bea79d91d0b0a699d3b1a69bc6ada29a9aa09690739a8c87819a9089bab2a39dcbb1a59ec4b0a59fafac9f9986a3979087a5999586ac9f9ca6b5a6a2f6cdbfb9f8d0c2bbffd3c6bdf9d6cac0e1d4c7bfc5d2c5c0d8dfd1c8bed8cabfdbe2d5cadbe3d6cdf0e8dacfefd7ccc2ffd2c7bfe7b8ada6ffc4bab1ffd3c7beffd0c6bc80a1928affc0b2aad6b3a59deeb7a8a3eebbaba2d89b8e87fe393532ff413b38ff423c38ff433d37af796c6584887b72b4ad9d94afafa096c5afa199afa79891849c8d86caafa299889f9188bdaca2985e9e908372b5a5977acfc2b0c2fff6e3fcfffffffffffffffffffffff0fffffae9fffff9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffd3fffffffefffffff8ffffffffffffffffffffffffffffffceffffffdbffffffd9fffffaffffffffbbfaf1e3b9f0e2d4d6f5e6d6fcfff9ecf0f8e9dfe5e8dcd0dee4d9ccc1ddd0c4b3dcd0c3aad7ccc1f0ebdfd3f7e7dbd0eee4d8cffe9e968eff827b75ff7d7770ff7c766ee4a79d98febab0acffc0b7b2ffbfb4b2ffbbb3affac3bab8c5b7aca9ffdcd5d3f9d7cccad5bcb3b2ffd2c9c7ffdbd2cdffd7ccc9ffd4c9c8ffe9dddafff9ece8aad1c3b9fffffbf5e0f9efe5e3fef9efbbfbecdee0fff8ebf9fffefbe3fffcf0cdfef4e5e0fffff59aeee0d4d9fffef697ede1d4e1fffef5d5fffbf193e8d8cec1f9ebe084e2cfc5b8f5e2da83e3cfc367dac5b867ddc9bb88ecd7c5ecfbe9dbfbe6d7caffddcdc1cfb5a79cf0c1b3a7e2bfb0a6fcbaafa7ffbcada2faa1948afd8d8278ff645d56ff57514bff524b45ff514b45ff7a726cc8988f89d59d948ac5978d85b7948b84a18a827bf19c958cac898177d28f857bd78e877ec98a827ad6867f79ca878078878a817b899d938a92b5a9a0c2d1c7bbb3c9beb5d1d7c9c088bdb2a7c2cdc2b77abab0a8d8d8ccc0faeadccefeeaded2f7dccfc1ccc9bbadacb9ac9fe7cdbfb2d0c6b8adc3c1b3aabfc2b4a9d8c5b6aae4c5b5aae4c3b5aa80a8998effc5b7abf3bcb1a683a494884e95857a949c8d835c8b7a6f85897b7188706c627862594f86504940663b352e788d431b838c461e8689481f7880421d6e743b1a5d6a3517497639173585411846974a1c349a46182c9943173ea54d1d46aa52227cb6602f679d4f246888441f6b753a1b675c2c116f6f34126a7b3a15739c4e218d4d271193532912884f26108854281054763112456d290e43471c0952662a10506e2f12496d2f116f8b4522798f47224b853d1a4d823c1863582a14575f2b1252662d143d6c2f1464844120467d391a3f7d3714508d3e1754934218349240163aa4471a42a94b1b44a1471b499d481c57a0501d62a858215f9e531f3b8541164f7a3e17504a3d318152473e934e433b6a6d635ba1776d65b57c7067e5867c70b07e756caf837a6eb7877d71d78f8379877d716a7e80736c7d7d6f698d80746d9f867871bb8b7e75a784797093857971a6897d75ac92857ecd988a82de9e8f85f4a1938bfca29389ce9e8e83b99b8e84eab2a398f2bcada1dfb6a79dd0b1a39ab9ac9f95febdafa5feb4a89dbea19489ffa79a92ffa79b95fea0948ce491857f8c827670cd8f817af79b8d84fb958780f091847cf683766fbb655954ff3d3935ff413b38ff403a36ff3e3936846b5f567c776b61d8908178d88e8277ef91837bef90837bbf867b72ae867a709986796d7985796b9d9c8e7fa9b0a08fcacfbea8ebe8d4beebe8d5beede6d3bcabd7c3affdf7e0c8bddac8b3d4dcc9b7fffdedd6eaead7c1e2e7d6c2fffefce7fffcead6fff9e7d2eee6d6c3fbe5d5c6e8e0cec2c4dccbbbd3e4d3c3bddbcabde6f6e1cfb1d2c3b1f8e7d8c8e4d6c4b5fad6c6b6fedbcab9ffdbcab9ffccbcace7b9aa9cc6aca094bea7998fc8a4978cd9ab9e93dcab9d92e6ac9f93b39c8e84de7f7670ff6b6661ff68625eff6c6763e4a79c94ffbaafa8ffb9afa8ffafa5a1ffc4bab9dbb5aaa8fcd9cbc7fddfd0caffded0cbffd4c5c0ffd2c6c0ffdacec9ffe5d7d2fffff3ecfffff9f3fffef0e9bcd1c3bbfff9ece4f4f8ece4fffffffcfffffffffffffff9fdfffffdebfefbf3e6fff6efd2fff4ea7fe2d3ca8ce3d6c7cdfceee4f4fffff9ffffffffffffffffeafefaf0d5fff2e7baf9e7dbc4fcece1c0fbeddfebfffff2f6fffcee90d6c1b286b6a69af7c9b9acc6aa9b91a5a2948bc5aa9c92f0b8aa9cb3a19287cf94857ae684776cff534d46ff49443fff4a433efd48433fe4988d82f5a0958bb18e847aa4897f78af8e847c8c877a72cb968a81fea2958ce895897ee090847cbb867d73fb92887ede8c827ac1938980868d837c979f938c89a79c939eb7aca1b0cabbaeced3c6b876bdb0a3c3d9c8baefe3d4c6ffefe3d3d8daccbdffe6d5c5ffdccaba57a2917ee1c0b1a1d2baaa9ec9b7a79cb9b0a096cfb5a69bf0b8aaa0fdbfafa3f8b7a89c7399887bc0a7978cdfad9e92d6aa9c8fd4a7978bcea291868d8b7c6f775f564c764f463d553b32296d853d197e8b461e9a8d4a21787d411b6a6d37183f6932145985441d4a90481f42994a1c33a14e1c3ea74d183ba74d1940ae55204caf572468a957285c954b217f8a492370753f1d915d3015785f2d118066311397643215aac66e3497572b138f5127117d2f1509536834174b4e250e4560250d3b3d170749632a0f737f3d1d5e84411d7f8d4823517d3a185578371855602c145d612d1456682f15436c2e1454793819618644234b7c37173a7f37144d90451a398f3f163c97421738a245174fac4e1d40a04819458e3e174f8842194c8a44173b984c1943864118407638137041342bb34b3f35ad584f48c25b524ad65e544ba35a4f48a95c524a93574f47b860564dd4675c53d8695d559361554e855f524b9362554d795c5149925f534b9a62574fa0665951555e524aca71665ef1756a61fc776c62d171645bfb7a6b60ff817265b176665ac47d6e62e488786ec27d7067c780736ad07f736ae681756eff8b7e75ff84786f7161564fef756961ee72675f4b554b419b6358509462564f665a4d46ab635751c9685c54cd61554dd8574c45b4493f38b33f373090443a3475483e37ad5b4f47ca6c5f55eb6e6258f973675bf06d6158ad60544db4655a50e670655ac96d6257d473695de8847769e28d7e6f8184736475877564a6917f6f938d7c6c7a887867ab95847374887668b7998874ae998774c69d8c79d3a08e7de49f8e7fde998979eb998a7beb9b8c7ee997887bd3928477ed9e8c81a5928276aa97887ba099887cb19c8b7eeca59686eba19080e79a897bd4938476cc8b7c6fe68b7b70e787786c9570645aa773665bad6e6158c572675cb16f6258e67b6e64c474685dc1796d63c181756cae887c73ffada195ffc0b2a6ffcbbfb4ffb8aca3ffb6aca3ffbeb2abffdbcdc5ffe2d3ccfff6e5def5e1d2cbffe7d7cfffe6d7cffce5d6ccefdecfc8fffaeae4ffe0d2cbd1c5b3adbfc3b4adc0c6b6adc0cab8affae7dad0fff5e8defcfdf5e9fffffffef1fef8f2d7fff9e893e2d4c7baf0dfd2effffceffdfffff8fffffffefffffffbd5f6e7dedffaeee6f4fff6edf2fef8f4cbf4e4dfcef8e6ddc4f6e3d771d2bbad6fc0afa1a8beab9e909d8f818e9283777e8e7f7261847467818e80748286786bd48b7b6fbf75665abf625449dd6a5c51ee7d6e62fa8f8072eb99897dba9080759b87776cf29b8a7fe097877de89a8980f29b897fffa69489d78f8076ea8f8178f38f8378d484796fd5827970907f7369a48b7e74bf968a82c1a1958ac6aea096aab1a596d2c9bbacaec6b6a9d6d3c3b5f0dccabdefdac9bde9d0c0b3dac0b0a4dcb6a79ab99f928458867466caa29388d9a4958ab69b8d82be9b8c82d69f9086d59e8f85eda29389fca7978cce9b8c827588796da1918378828b796e938a7a6e86837166734c433b66773c1d7286401c74843f1c7b7d3d1c71763a19696b3518527137185488451d5193471d43a24f2036a44a1a35a84b1a38a84a1946a94f1c3bac532054ae552559a15125578a441f5f783b1b7e763f1ca76c3c1e8a50260f9a5028118749230e823a1b0b6d924a22425a2a11523314075e6e3a1a395525104156250e4766280e4e6d2d1057783717747f3e1e5b78371857713314566a2f1454672d1357672d146e71351965773819577a381a547e3b1c3e763214407a3614357f38153d8e43194995441a37933e1449a5491a44a74b1b4b9e481a54873d1854733515445a2a0e3e994e19458640185c7e3d196e59341fa73f342bbc45382fa745382fb94d4036b552453bd95c4e43c964564aa868594d7a69584b40615244946b5d539673645a99786a5e9c7d7065967a6f6477776c62af80746c9a80726a9b81736ca484766ead867a72ae897b73b58b7d75a186796f5d79685fb1857972af7d706aba786c65b26e635dc46f635dcc71665ee8776a63da73676093685b55cb72665d6161564dcd766961c573665ec372645c9e6a5c55876759518466574faa695b53a8665a528963564d9165584f9364594fad6b5e55c673675cd6766a62e0776d64e07b7167926d655dd97c746bc2776e67c57a7069b3756c63a2746b63c57d746a7671665c59695f55816c63587f655d538b635b52885e584f725750478e59534c85544e47b55a544dc25d564fc65e574ffa645e57d85e5852f9666058e15e5751e1605a54a55f5751c56d655fd3766d67c67c726cc079706ad27f756de382776fa0796d65b48b7f768c867b74b98e827ab38a7e78988379726b796f6866776d67757c726b6c7c726aa3877d74807f766d93877c72697d7369d792877df18a8076e18e847aea9c9085ffa4978cffae9f9491857a70f0a09389d78d827cd48e817bcb8c817ace8b817cdc8d827ce68b827bac8278736b7a6e66ce847c777d756d65d290867fb692857dd8a1938ad0a39489c99d9187c1a19288d79c9086ca91857ba881766cb17a7067c2716962e1766d65f77f7670ff827872ff857c75b26f6560d2777069e8736c66c56c665de5726a62c06b645cd36e665d9c645b54795b52495852493f5c4e453b6d4d453baf564d45a2554d439f554c44b9595048be5b52499e574d46c760564fc0615750a05f554db1645b52b36d6359936b5f55465c50459c6e625aa270655eb8786b64b4766a62986d6158b572675cbb72675dd075685ebf6e635abb6c61576160544a6964594d8f6a5e559d6c5f56a26d6157ba77695fa576675db77b6c62c7807166cd82746af4928278df887970f78e7d74ff928279f78b7c72c0776962bf796b64c67a6e65ba786b62a174675f9372665c8c6f635b9072665ba87a6d62a27a6e635e6a5e547d70685d6b655b5166564b4172453d3568773c1c57843a176e83401c7a81401f6b7539196c73391a4d793b1a4486401b4595491e3ea04b1c44b1561f39ab4d1c54b65a2248b3562049b1541d3ea84f1f44a24d20649e4e2675944e2543743716586a35156b5f3014794b240f7d3b1b0b923b1c0b8f3a1d0c7c381b0b8836190a7535180a586a36183159290f3f55260e5c4e230e5464270d4565270e4f692c10506a2e136d77371a566f33165d6e311664733518647034163f6b2e11577a38197b85412150763214477835143e783312327d37123f8538144698451a4699421846a247194ba14718509945185f873f194d5e280f4c55250d4b984b1c60924a1e607b3a186b54301d53362a226c3c30277540342b7044382f7b4b3e348b51443a8e5c4c415f5e4e416a5e4f44585c4e44505c4f45596153485164554a5766594e696f62577a73665d7d73665e8e7669638f796e66a47f736ca37f736ca480726c777366607a706560776b605b62615853655f56525f5b514d62584e4b56524a4676584f4a73584e4969534a445854494165574c455b584b4358594c4365584c43585449414d51453d6454494270544a426c5247406b4e453e6f4f453e7050463f6651464072554b43905c514a8f5e554e8f5e564fa5635b549c635b5596655c55b56f665d946a60577c655b516d645a505461574b5361584c4c5d5449545b5248775d554c7959514a7d564f489158514a9a58514aa856504acd5b554fe05c5650b4544f48984f4a448e4f494394514b448b514b4559504741825a524d84635a548a6d645d906f655f7b69605877685e57a7736a60b180776cb7887c72948278709c877b724b7b70656081776b82857a718f8579719281766da284776fa481756d8f7b7068b47c6f68a9766b65b6726862a6726860a8776c64cf837871d9887c74c582766f9a786e679b776d68a4796f69b37d736e9e79706b85736a669c766d699f786f6ca977706db377716d636b615c85786c666475685f647a6c618e83766d8880746a62766961747b6e668b7c716a81746b638a716861866b625c886c625c8469605a8269605aa6716863b1726a64b6706861bf6e665faa686059a9655e57b6655e57a761595272564d455d4d443c4c453d345a463d345d443b3267463d34844d433a63473e365a473e35604940386b4b413b854f4740614d443c5550463d945e544b735d524a8361564e7d61564d605e52487d65574e7663564c605c50477360534a585b4e446b5d5147725e51486d5b4e467f60544c6c5d50475b5d50445b5c5044665e51475a5b4e44675d50484d5c4e44515c4f456363554c766a5b537b6f6159816e5f5870685a533a5b4c43475a4c445e5f524b3f584b443357493f5d63554d6062554e3c554a413051453c43564a414d574c4257574d434c51473d41483e35423d352d41332c2566863c175b8b3e17718e441d6d813e1c6a7b3c1a697c3f1d638a451e478c421c3896451b46aa521f49b4551d46b75b2441b0521d48ab4f1b47a94f1d46a2491a46a34c1f58ac53257baa592947864019497437154c642e114c53250f4e48200e50431f0d88391b0a8b381909623214076748200e62673017616b37185e6231155a5c2c135f5528115549210d6f552a13935c2f1960642b123b5f240c4f682c10597333165f73321662733518436e2f12547435165a7838194b753515577635163e7632113d7b3512468238143a883b12418e3d15469a43175ba4481a50a2491b5b8f3f17577c3715536d2f116c793b1a549849195c8e451a5f7e3c19ff5b5451ff7a716dff7a706aff796f69ff726963ff6e6760ff6c665fff726b66ff79716aff7f7770ff89807aff827b75ff847c76ff877f78ff8c837aff8e847cff908781ff938c85ff988f87ff9f958effa49b94ffa39b95ff9b948eff9e9690ff938b84ff807771ff766e68ff7c736dff837a75ff8a837eff8d8783ff938c87ff938c88ff918b87ff8f8a84ff938d88ff928c87ff8f8a86ff8e8a86ff8b8582ff8c8785ff8b8583ff898480ff898480ff867e7aff887e78ff897f79ff8a817bff8e8782ff8d847eff8e8680ff8d847dff8b827bff9a908affa19691ffa89d97ffa99e98ffa79b96ffb6aba5ffd9cbc5fff4e8e2fff2e7e0fff6ede5fff6ece3fff6ede6fff9f0e8fffaf3eafff9f0e7fff5ece5ffd7cec6fffff9effffffdf2fffffffffffffff8ff887c72ff73685fff867a70ff988d81ff8e8379ff82786eff877c72ff8b8076ff8c8178ff8e8479ff90867bff91867bff8d8378ff8f857bff91867cff938a7fff938c81ff948b82ff948b81ff91897eff938c82ff928980ff948a81ff958b83ff958c83ff999189ff958b83ff90847aff8b8076ff867c73ff837a71ff837a71ff827970ff81776fff898179ff837c75ff847b74ff857970ff87796fff877970ff8a7d74ff8b8079ff8a7d76ff897b73ff5a544fff655e58ff655e57ff7c736cff90857dff2f2a27ff302d2aff302c29ff332f2dff38322fff37322fff3a3531ff38322fff39332eff39322eff37312eff3f3a37ff44403bff47423dff45403cff46413cff463f39ff453f39ff46403aff48433cff48423bff46413bff47433dff44403aff3f3b35ff3f3b34ff403b35ff3f3a34ff3e3832ff3e3832ff423b36ff423c37ff433e39ff433d38ff423c37ff403a34ff3c3732ff38332eff383430ff393632ff383531ff393531ff393532ff3a3632ff37322dff342c26ff342d28ff342e29ff332d29ff342e2aff35302cff35302bff37302cff39322dff38312cff38322cff352f2bff38312cff362f29ff352e27ff36302aff332e2aff322d29ff312d29ff322e2aff332e2aff342f2bff34302cff332d288473381b609543196498451a96df914c78f07e3d5d8a451e5b8c461e5594491f499e4a1c41ab532049b659224fbc612947b0541e40b0521d44ad511c43a64f1d419f461b3c9d461769af5c2769a24f224f823c17456c30125d612d126653261044411c0a5c3b19096c431f0d65683219686a3119676630175c662f1599723f2063653318736433195d5a2b13545127104a53260f505c2c1250602c14686d371a516e34164961260d50682a0f577131147078391a58723316476d2f12496f30134b7031134e7634163f7a35133d7a35123a7d35113b853913448e3d1563a14a1b58a247195d9a4318618f4118567f371574984d234b9b47175b99491b638f451bff746a65ff897e77ff8c8078ff8a7f78ff8f857fff878078ff867e78ff8b857eff938b84ff9f988fffa59c94ffaca79fffa89f98ffa9a099ffafa59effb2a8a0ffb3a8a0ffb4aba2ffbab0a6ffbbb1a9ffbab2aaffc1b9b3ffb5afa8ffafa8a1ffa19892ff948c85ff928a84ff928b84ff9f9690ffa49e98ffaaa49fffa59f97ffaba6a0ffb1aca8ffaca7a1ffa9a59fffaba49fffafa8a4ffb2aba7ffb0a9a6ffb0aaa6ffb2aca9ffb4ada7ffc8c2bfffcbc2beffb8afa8ffa59c93ffaaa19affada69effa79e96ffa69d95ffa89f96ffb0a7a0ffc5b9b2ffcdc0baffcdc0baffd6c7c1ffd3c6bfffe4d7d0fffffcf7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdddcdbfffffffffffffffffffffffffffffffffff7eeddffe1d3c4ffddcfbfffdccdbfffd7cabaffd4c7b9ffd4c7b9ffdccdc0ffdcccbfffdecfc1ffdacbbbffedddcfffe3d6c6ffd9ccbcffddcdbfffe6d9caffe9daccffe9dcceffe7ded3ffd6cabbffdfd4c9ffdbd1c7ffdcd2c8ffd9cec4ffe0d5ccffe2d8ceffdacfc5ffd7ccc1ffd3cac0ffd6cdc7ffcfc7c0ffcbc3bdffd0c7c1ffccc5beffd3cbc5ffd2cec6ffd7cec9ffe2d5d1ffecdfdbffefe1ddffebded9ffe7dad4ffe2d6d1ffdcd0cbff6f6965ffbfb4a6ffb9aea0ffe4d7c7fffef7efff897d76ff9d948dff998e88ff9c928cffa49a92ffa9a09affaea39dffa59b93ffa1968dffa49890ffa29891ffa19992ff8c867fff868079ff817a74ff827b74ff847b74ff847b73ff837a72ff827970ff80786fff7d756dff7e7670ff7d766fff726c65ff706861ff6e6760ff706a61ff6d655dff70675fff746b63ff746b64ff716962ff675f57ff6f665fff6f6860ff665f56ff605852ff615a54ff67615dff655c57ff635c57ff66615dff605a53ff605851ff595048ff59504aff5a524cff645b54ff746b63ff766c64ff736860ff71675fff6a625bff6d645dff69615aff655c56ff675f59ff655b55ff655d54ff625951ff615a52ff5a524bff585049ff5a524bff5b534bff5b524bff5b534cff4d453e7e763a1c5ca3491a5899441988de86476bf1783a58984c23599a4c2150a551214ab256204bbb5f2757b95c2740b3582047b0521c4db0541f4bab4f1e329a43173f96441a3d8e3d1446883d16367934124c7634135a642b10504b1f0b5d431c0a7b70381e4f632d166769321a8071381f5a652d155e612c1456612d155d653215626533177064331965612f1559582a124a592b135d673317576c3417496e34174c76391b4a803f1e5381401d55652a0f4e64280d596c2f134f692c13596f3116506c2f144c7132154176351341793512447b3613337d351240873a144c9342154f98411568a2491a63994518658f3e1775ac5b2e499e4a174d9e4b185198481aff897e77ff978d85ff9f9692ffa49c96ffa49c95ffa59c94ffaaa299ffaeaaa5ffaea89dffb8b1a6ffb5ada3ffbfb7aeffbfb6adffc3b9b1ffc4bbb2ffc7bcb4ffcec2b7ffd0c7bdffd0c7bcffcfc5bcffcac1b9ffd7cfc8ffc5beb8ffafa7a0ffaea49effa9a19cffa8a29cffaaa39dffaba59fffb4ada8ffb5afaaffb6b0a9ffb5b0a8ffb8b3adffb9b4adffb3aba5ffbfbab2ffcec6c2ffd8cfceffd4cdcaffd3cac5ffd6cec9ffded5cefffefdfafffffefeffe8e0d9ffc5c0b9ffc6bcb6ffc6bcb2ffc2bab1ffc5bfb6ffd0cbc6ffcfc7beffe6d9d1fff5e6dffff8ebe6fff5e5dfffeadcd4ffeee0d7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdddcffffffffffffffffffffffffffffffffffefdfd2fffffefbfffffdf5fffffdf9fffef9eefffdf3e6fffdf3e6fffbefe2fffdefe5fff4e8dcfff8eddefffef3e5fffdf3e6fff0e3d8fffdf2e6fffffef5fffffffdfffffef7fffffaf0fff8eee0fffffdf4fffffffefffffffffffffffffffffffffffffefafffefaf2fffffefcfffffefdfff3efeaffede6e1ffefe9e4ffede8e4ffe3ddd7ffe0dbd6ffe8e3ddffede6e2fff6eeeafffcf4f0fffef4f0fffffcf6fffffbf6fffffcf8fff3ece7ff938c89fff5e6d7ffeddfd1fffef3e1fffffff3fffbf2edfffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefcffe5ded6ffccc5beffccc4beffcdc5beffd2cac2ffd1c7bfffd5cec4ffd1cac2ffd2c8c2ffc2b9b4ffc9bfbbffcabfbaffbab3b0ffb9b0acffc3b9b5ffbdb3aeffbbb2aaffbdb3aaffbdb2aaffbbb0a8ffaea59cffa59d93ffa59e94ffaaa198ffa29891ffa39891ffa69c95ffada3a0ffa7a19cffa29993ffa39a95ffa0978fff928a82ff837c74ff857e76ff88827bffaaa39effcbc0b6ffd4c8bdffd4cac0ffcbc4c1ffb1aeadffa6a09dffa49b96ffa69c98ffa7a4a3ff99918cff968f8aff887f78ff83796fff7b7167ff7b7066ff7b7167ff7c7167ff7f7267ff7f766bff6b61577a7b3d1d4da1421551a0461bdce4bd767cff83424da0522253a450204cad531f45b1521b4cb1532043b4572240ac501b40a94c1956b0572362ab541f5a9c4a1e578b3d184a80381547753313436a2c0e4353220a5d451b096565301a766c361eb17a41277d6d361d64642f176868331a58622d155d602b134f5e2912586632165b6633175b612f16726736195e613116445e2c1250652f16727c401f57803f1d5a884420548c4521528a421e4e82401b5b6a2f154860280e44642a1053662d1349692e134c6b2d134270301346723012437331113d763210407f3b18478b3e1758954419659c46196d9942196495411878ba69393e934417499a4717559b4817dc453023ff352f2bff362f2bff37312dff36302bff342d29ff463e38ff696159ff756e65ff787067ff7a7369ff7b7369ff797066ff7e756dff80776eff82776eff827970ff847c71ff847b71ff82786fff7c736bff8c867dff8c8781ff74716aff69655eff6a645fff69635dff6a655fff69635dff67615bff69635dff69645eff6a645eff67635cff66635aff67635cff6a645dff6a6660ff6f6c67ff75716aff77756dff78726aff7a766eff8d877dff9c958bff8b847bff767168ff716c65ff6c6861ff6e6b62ff706d64ff78756eff7c7a72ff7b776eff79756dff807b72ff7e776fff807971ff827c73ff736d66ff5e5750ff5d5852ff605b55ff605a52ff625b52ff575149ff464039ff403a34ff3d3832ff3f3a35fffaf8f3fffaf6ecfff0e2d5ffd3c4bbffc9bbb3fffffffffffffffffffffefdfffefdfcfffdfbfafffdfbfbfffcfbfafffcfaf9fffbfaf5fffcfbf9fffbfaf8fffbfaf5fffbfaf7fffcfbfafffdfcfbfffefefefffffefefffefdfcfffcfcfbfffffffffffffffffffffffffffffffffffffffffffdfdfcfffefdfdfffefdfdfffdfdfdfff8f5f3fff1ebe8fff4f0ebffeae5e1ffeeeae5fff3f1ebfff6f2edfff8f5edfffbfaf9fffafaf6fffaf7f3fffbfafafffbfafafffcfbfafffaf9f9ffb2afadfffffffffffffff8fffff1e0ffe1d1c2ffecebe4ffebeae0ffedece4ffedebe3ffedececffecebe7ffece7dcffece1d3ffeee0ccffe5d4c2ffe2d0beffc6b8a8ffaa9e91ffa69889ffac9f94ffa79c92ff9d9189ff988f87ff9a928affa09891ffa39c96ff9d9791ffb0aba5ffd8d5d3ffe9e4dfffcbc2bcffa19894ff988f8aff988e88ff9d9390ffa09795ffa19996ff9e9793ff96908bff8b8681ff87837eff88837eff8b8580ff8c8783ff918c8bff9a928eff96908cff938a85ff938b87ff938a84ff8e847fff8b817dff887f7aff8e8680ff9c948dffb7aea5ffc4bcb1ffc8bfb9ffc1bab5ffbab1a9ffb5aba3ffb3aaa2ffa8a098ffa7a096ffaaa29affaea69dffaba094ffb0a89effb5aba4ffaea59cffaca198ffafa69dff9b9288ff655c54618239153fa141137ba84c2083e5814372fe864240a44d1b52aa521e52b85c1f49b6561f53b5561f4baf521f45a94e1a54b25820549c481d59903f195d873c195b78351557692d114d58230c61441b096f652f187d67311a8370381f726a321b5f612b166c602e1869622e168469361d8265311a4458250f6d642e1734602b10435f2b12445e2c13635f2e165c6131174c622f155d73391b517a3b1c5286421d6292492389ab5d325c94482348853e193a77351544763315456228104560270e4a642a1046692b11476d2c114c6e2d114c7532134d7633134578351248843a144c8d3f164992401551913c145b8f3c165aac5b2f379144164b9a48174699441548994416ff8c8681ff918b85ff948e89ff9d9892ff9b948fffa5a19bffaaa6a0ffaba59fffafa7a3ffb8b1adffbeb7b1ffbfb7b2ffc1bcb5ffc8c1baffc9c3bbffccc4beffcac3bcffc8c1baffd1cac3ffcdc5beffcdc5bfffc1b7b2ffb1a7a1ffb2aaa4ffb2a8a2ffafa59effb0a89fffafa79effb0a89fffb5aca6ffb7afaaffb8b0aaffb5ada7ffb4ada7ffb6afa9ffbbb3aeffbab2adffb9b2afffc6c0bcffc5c1bdffc2bdb8ffccc6beffdbd4ccfffcf6eefffffffffffbf7eeffc5beb5ffbab2aaffbeb5aeffbeb6adffbfb8b0ffc7bdb5ffcbc1baffd5cec6ffdbd5cdffddd5ceffdad2cbffe7ddd9ffefe7e0fff1e8e0fff5eee5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff746b64ff817a74ffaaa099ffd7c9bcffe3d4cdfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffcfffffff7fffffffcfffffffdfffffffdfffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfafffffdfcfffffffbfffffffefffffffcfffefbf6fffffffdfffffffdfffffffdffffffffffffffffff9a9088ffcdc0b9fffefbf7ffebe5e0ffcdc3b9ff615a52ff7d756eff887c73ff8c7f74ff8c7f75ff8f8277ff8d7f75ff94897eff9c9287ff938980ff827871ff776e67ff756c63ff756b61ff736a60ff736960ff706860ff6f6760ff6d655eff6d665eff6f6760ff6b635bff6c635aff6d635bff766f66ff7b756dff716962ff625b53ff4a443dff38342dff38342dff39342eff39332eff39332eff38322dff37312dff37312dff38322dff342e2aff342e2aff36312cff34302bff322e29ff2f2c27ff302c27ff322d28ff312d27ff2f2b26ff2e2b26ff302d29ff2f2d28ff2f2c28ff34312bff3c3933ff3a3731ff3c3933ff403d36ff423c35ff423c36ff443e37ff443e37ff453e37ff443e37ff453e37ff474038ff4c423aff4b4139ff4a4038ff39312a4c79321260a6461956a3471b69d66d378bf78d4c42a54b1958b55c1f4bb75b1e5ebe5f2154b2551e59b0531e4ba44e1b549e4b1a578e4018537d38165f6f31135f612a10634a1f0b655226106f602d187668311960692f186b6f351c5c672f18655f2d166e5c2b167c5d2c17755d2c176c5d2b154e5a2710405d270f3461290f4f652f134c5d2b135d5d2e146a5e2f1870633218696e371a63783d1e4586411c5c9b4f254c9c4b2153a451255094481e4b843d18497c3817497635155a7135174d63280e4461260d4f6728104c6a2a105072301244722f11447532134e7e37144e873d174c8f4017558e3d165f923f1769b46431379140142e8e3d114095421346964315ff87817aff918b83ff968f88ff98918affa09892ffa9a29cffa9a59dffb0aba5ffb8b2acffbab4afffbfbab5ffc1bab4ffc1bbb5ffc8c3beffd2cfcbffd1c9c3ffcec6beffc6beb8ffcfc8c2ffc6bfb6ffb2aaa1ffb4aca5ffada39cffb4a9a2ffb4aaa2ffb0a99fffb3a9a0ffb3a9a1ffb2a8a0ffb6ada6ffb8b0aaffb6ada8ffb7aea7ffb8aea9ffafa8a2ffc1b8b3ffbfb6b0ffc1b9b3ffbfb9b3ffc3bdb7ffbdb7b0ffd6d0c7fffffdf9fffffffffffffffffffaf7f1ffbdb4adffb0aaa4ffb2aca4ffb9b4abffbdb5afffc0b8b1ffc7beb8ffd4ccc5ffd6d0c8ffe1d9d2ffe7e1d9ffe8e1d9fff2ece5fff2eae2fff2eae3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd3c8bfffcdc2b9ffe3d7cefffffcf3fffffdf9fffffffffffffffffffffffffffffffffffffffefffffffffffffffffffffffbfffffdf6fffffef7fffffffcfffffffdfffffef7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffcfffffcfafffffefefffffffffffffffefffef9f6ffffffffffffffffffe4d8cefffcf6effffffffffffffffffffdfdf3ffb8aca0fff8f4e9fffdfaf7fffffdf9fffffdf9fffffbf9fffffefafffffffcfffffffefffffefbfff4f0e7ffd9d1c9ffd6cec5ffd4cbc3ffd0c7c0ffd3ccc6ffd0cac4ffcec5beffc7bfb7ffc0b7b1ffc3bcb4ffc2bab0ffbfb5a9ffcbc1b9ffeadfd4fff9f6f0fff5f0e2ffe7dccfffbbb0a6ff958c85ff928a83ff958c84ff958d85ff938c83ff938b81ff8f887fff8c867dff938c83ff8a837cff878279ff807c73ff807c73ff78736bff767269ff7d7870ff7f7a72ff7a766dff77726aff726d64ff706d65ff726e65ff746f66ff847f76ff969086ff9e988effa29b91ff979288ff8f8880ff918982ff8f8780ff8e8880ff8d857eff8b847dff918a84ffa19b93ffb4a99bffb2a797ffa79b8eff756c614983351252a1401652a5481961bc5c2d59be5c294fb0561e4fb85c1e58b7591f66bb5b2058b1561e5ba5501d609a4a1d5f8d431b5e7b391851672d125351210c623e190962602d167668331a5d6f33195b7535196873331959692f166e653018735627147852271477562915815a2b176d5929145d5d291253642d1430642c0f2c5f290e3f5d2b12455727105f582b146f5c2d1686703c1e938249256884441e759551296c9a4d265fa34f25549d4a1b5792461c447d3716437935154f7434164a6a30155161260d435c210a4f65280f5a6a2c12526f2f134a713013487532134b7f371649853c17498e3e1657913d158bc6703a489947152c8d3d12298a3a124c954418ff8c857fff958e87ff998e84ff9d948dffaaa29affa9a49cffb0aba6ffb1aba6ffb7b2acffb8b5acffc0bbb3ffc2bab5ffc8c2bbffd2cbc6ffd9d7d2ffcec9c0ffc4bbb4ffbfb8b1ffc2bab5ffb9b1abffaca49effb0a9a0ffaaa39affaaa199ffb1a79fffb1a7a0ffb3a9a1ffb7ada5ffb8aea6ffbfb5aeffc3bab4ffc1b7b1ffb9b0aaffb8afa8ffbeb4aeffc7bfbbffc6bdb9ffc1bab6ffcac4bfffc8c0bbffbab5aeffe6dcd1fffffffffffffffffffffffffffdf8f2ffc6bdb7ffb1aca6ffb9b1adffbeb6b1ffbfb4abffc2bcb3ffd5cdc7ffd4cec6ffe3dbd4ffe2dbd4ffe8e1daffece5ddfff2ede2fff3e9e3fff7f0e8fffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5fffffcf0fffffffbfffffffffffffffffffffffffffffffffffffffffffffffcfffffffffffffffffffffffffffffef5fffffff8fffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffbf8fffffcf7fffffffdfff6f5f4fffffffffffffffffffffffffffdfdfdffdbccc1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf9f3ffe8e4dbffe2dcd4ffe6dfd9ffe5dfd8ffede5e3ffdfdcd8ffd7d1c9ffcac2bcffd2c9c3ffcbc3bdffccc3bdffccc3bdffe0dbcffffdf4ebfffffffffffffffffffffdfaffded4ccffb8b0a9ffb4aca5ffb0a9a1ffb2aaa1ffb6afa5ffb2aba1ffada69dffb4aba3ffb5afa9ffaba49dffa7a19bffafaaa2ffafa79eff99948aff938b80ff9d958dff918b83ff8d887fff908981ff8f887fff88827aff8a847dff88827cff948b80ffa9a19affb8b0a7ffbbb5aaffb2aba4ffa59e98ffa39d97ffa49d95ff9f9991ffa19993ffa49d96ffada6a2ffb0aca6ffb7b0a3ffaea59affafa79bff7c746a66943f1648a3431655a2441866a24d27589e49205cac521c5fbd601f68be5f2055b2561f5aa14e1c5893481c6287411c667437185b5f2a105f471d0b654d250f8667331d7b74371e5276351862853d1e63863d1e5d7834164f672c1579622e167b4e24127a4c23128451261481582a165d5727124459240f46642c122b652d0f255f290e2859250c1e51220b324a1f0b66562a137c5e2f1960622f1675763d1f7e85462382934e2772994e264b8a3e174a934519528f45194c7d391643743315506f33174e68311658622a1146551f095862260e4a642910556c2e14466e2e13417532144b853a163c8b3a15468f3c1686c46d39589a48193d934416308f3e11358d3c12ff908883ff978f89ff9c958dffa19892ffa39b94ffaea9a1ffb1aba6ffb2aca7ffb7b3abffbcb7afffb0a7a4ffc0b9b3ffbfb7b2ffc8bfbbffd0c8c3ffc5beb7ffc7bfb7ffb6afa7ffada59fffa79f98ffa9a19bffa9a199ffa79f97ffa8a098ffb2a9a2ffb4aaa2ffb6aca4ffb7afa6ffbab3aaffc7beb6ffe0d5d1ffd0c5bfffb5ada6ffb5ada5ffb9afa7ffbfb6afffc6bfb9ffcdc4bfffcdc9c4ffc8c0baffc7bfb7fff4efe6fffffffffffffffffffffffffffcf8f5ffc9c0bbffbbb2aeffbcb4b0ffc0b8b3ffc5beb7ffcbc4beffd3cbc6ffded8d1ffe2dbd3ffe2dbd5ffe8e2d9ffefe8dfffe2d9d3fff1eae1fff4eae4fffaf0eafffffdfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffff9fffffffefffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffefffffffbfffffdf5fffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefcfffffffffffffffffffffffffffdfaf5fff5f0edfff7f2edfff5f3eefffffef7fffffcf8fffffffffffdfdfdffe3d4cafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefeffece5e4ffe4ddd8ffdbd4ceffd4cdc8ffd9d1ccffd1c9c5ffd3cbc7ffcfc9c3ffc6bfb9ffc3bcb5ffbfb6b0ffb9b0abffb6ada7ffc0b7b1ffc7c0b8fff1e7e0fffffffffffffffffffffffeffe7ddd7ffbdb6b0ffb8b2acffb2aca5ffb8b0a8ffb1a69dffb2aaa2ffada59dffaaa099ffaaa19bffaea6a0ffb1a9a2ffbdb6b0ffbfb5acffb0a69cff9b948cff978d86ff968d86ff958d86ff908781ff918881ff918781ff8c837eff857e7aff87807aff8c8480ffa39a95ffb7afa7ffafa7a2ffa39e99ffa29d95ffa29b94ff958e89ff9f9994ff9b938fffa09692ff9a928cff8f8881ff8f8881ff89837bff6e655f4f9d4216359b3c11599842176b984a246a9a492256a54e1a6cbc5e236eb65a216da4531f6b93491d697e3d1b6b6c32175952240e633b190a66672d176d6d3019787b391e69833c1d6291431f699a4622598e3e1c5b7b34167570341b6e59281470441e0f64451f0f5b49200f79582915685c2813495d271046622a113069311030612c0f2d5c270d2651220c304c200c5e50261178572b156d5b2c167a69371a536733174c7037186e8545204b7e3a164a863d1649954819548a431950783616436e321452662f155865301642622c1251521f0b4957200b4c632911416c2e124b803817498c3c194d98431b49973f197ccc6e375fa14d1c57974719409444163c924114ff928b85ff9b938dffa49d97ffa39e97ffa8a39bffaba7a0ffa9a39dffafa9a3ffafaaa2ffb7b0aaffb7aea7ffbcb2aeffbbb3afffc2bbb5ffccc3beffc3bcb4ffbdb4aeffb1a9a2ffa19a93ffa49b95ffa79f98ffa69f97ffa79f97ffa9a199ffb0a7a0ffb2a9a1ffb0a89fffb9b0a7ffb9b1a8ffcec5bdffefe4deffd8cdc7ffb9afa8ffb7afa8ffb5aea4ffb8b0a8ffbbb3abffcac6bfffc6bfb7ffcbc2bbffdcd2ccfffef9f1fffffffffffffffffffffffffffffefbffe2d8d3ffc8c1bbffbfb7b2ffc4bcb7ffc9c3bdffcfc9c4ffd7d3ccffdad6cfffdcd5cfffdfd7d1ffe1dad2ffe9e0d9ffe7ddd4ffeee3dcffece2dcfff1e7e0fff9eee7fffffff9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffffffffffffffffffffffffffffffffff9fffff9f1fffffdf8fffffaf5fffffdfafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f2f0fffbf5f3fff1e9e0fff8f0e9fffbf4eefffffef9fffdfdfcffd8cbc2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeee5e3ffcec8c7ffd3ccc8ffd5ccc8ffd2cac4ffd1c8c4ffcdc5c2ffc8c1bdffcec6c1ffc3bcb6ffc1b8b2ffbab2abffb6ada8ffb9b1acffcbc3bcffded6cefff9f0e9fffffffffffffffffffffefbffeee5deffd8d0caffbeb7b1ffb6afa9ffb3aba4ffb2a9a1ffaca29affa9a099ffa39a91ffa09690ffa59d97ffa9a59effbbb1a9ffbbb0a7ffb0a49dff978e87ff92887fff948982ff928882ff928982ff8e857fff877f78ff867e78ff847c77ff877f7bff847e7aff958f89ffa29b96ff978f89ff938d89ff948e88ff9c928dff988f89ff99918eff978f8cff948c87ff948c86ff87807aff867f79ff827d76ff6a615b469e421551923d145b9140165aac562575b65c2b65aa59216aa85521769e50207b8d461d77773a196b622e1361451e0b5e461e0c54722f154d773317637f3a1e728f43216b974420609f47215ca74b215396401c5e7d361856642b14494b1f0e463a170a55431c0d604d22106d582814585c2913485d271056662d144754240c2c622c102c5e2b103256250d254e210b31471e0b40471f0d90592f187f5b2f1772623217676835196b763f1f577b3d1957813c1944974c195d924a19467f3b16416e30125e69331755622f15556631164e6630145f642b124e65280f456f2d125b873b1a318d371458aa481f75dd753472be602e5c99471a539244195398471942964417ff968e88ffa39a93ffa69f99ffa9a49effa69e95ffaaa49fffa8a299ffaca59fffaba59dffafa9a3ffaca7a0ffb3aea7ffbbb3afffc1b8b3ffcfc8bfffc5bcb5ffaca59dffa8a09affa39c96ffa39c96ffa39b94ffa29b93ffa39b93ffa49c94ffaca39cffb0a69dffb0a69dffaea59dffb3a9a1ffc6bcb5ffe7dbd4ffd8cdc5ffbeb5aeffb7afa7ffb4aca5ffb2aaa2ffbbb3abffbeb5adffbeb5afffd8cec7fffef5eefffffffffffffffffffffffffffffffffffffffffffffffeffeee5deffc9c1bbffc7bfbaffcac5beffd2cdcaffd3cdc5ffdad4cfffddd8d0ffdfd5cfffddd5ccffe0d9d0ffdcd6cdffe3dcd3ffeee4defff1e7e1fffdf7eefffffaf3ffece4dafff8ede5fffffffdfffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffbfffffffffffffffffffffffffffffffbfffffdf4fffff8f2fffdf4effff3ebe5fffcf4effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaf8fffdf7f4ffede5dcfff7eee8fff9f0e9fffaf2eafff7efe7ffccbfb6fffff9f6fffffdf9ffffffffffffffffffffffffffffffffffffffffffe0d8d5ffc5bdbcffcdc7c4ffd0cac8ffc9c4c0ffcbc5bfffcdc5c1ffc6bfbbffcec7c2ffc1bab5ffbeb7b0ffbcb3aeffb8b0abffc0b9b4ffe6ded7fffff7f1fffff8f1fffffdf6fffffef7fffef4ebfff3e9e2ffe9dfd9ffcac2bcffaea8a2ffaea59effaaa199ffa79f97ffa19690ff988f86ff999089ffa09790ffa59d96ffb0a59dffbeb3abffaea49dff908982ff90857dff928881ff8e857eff8f867fff8b827cff847b75ff837b75ff877e78ff88817cff87817bff857e78ff88817eff837c75ff817975ff8b847dff958e88ff8d8882ff8d8a84ff928b87ff8d8681ff928b85ff88807bff857f78ff857e79ff6c635d408b3a123f813912377e36113d83381274c05e2b70a04e237688431a7b7f3e1a84733a196853250f6a3b190a44712f134676311330732c11437e341560913f1c70a14924539e421d48a8461d4ba7471e59903f1b546d2f155f5b2813684c2210523b180b6d49200f645326114c552510655d291460652c135f682e1241321809323e19082c58260d2956270e2c51220c4752250f54532711715b2f166a5a2c156d5b2e1668592c148467381a637039166d85461c6b914d1c5c964e1b4f934c194b7636155b7237174f632e1353632f14586531153b602b115e69321654772e10498433124f9e421a66e4733062c0612c5198481b5392441b518c421a418f40164a984416ffa19891ffa19991ffa29a93ffa8a099ffa79f98ffa7a09bffaca7a3ffb0aaa6ffb2aba6ffb2aaa6ffb7b0abffb5b0a9ffbbb4aeffbeb5adffc9c0b8ffb9b1a9ffa19993ff9f9791ffa09a93ff9e9891ffa09991ffa19a92ffa59c94ffa39b93ffaca29bffaaa199ffada39affaea59cffb0a69effc3b9b2ffded4ccffcfc5beffbdb4adffbcb3adffb6ada8ffb5ada4ffb8b0a7ffc5bcb3ffd2cac3ffe9e0dafffffdf6fffffffffffffffffffffffffffffffffffffffffffffffffffef9f1ffd4ccc6ffc8c2bbffc6beb9ffd0c9c3ffd8d0caffd7cfcbffdbd2ccffe2dbd6ffe5ddd6ffe1d8d2ffe4dad5ffe3dcd3ffece3dcffede3dafff4ebe3ffe6ddd5ffc6bdb6ffc9c0b9ffece3dbfffefaf0fffffffefffffffffffffffffffffffdfffffff9fffffef5fffffef6fffffff9fffffdf5fffffff8fffffcf4fffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffbf4effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffef9fff2ebe3fffdf4eefffef6effffbf2ebfff7f0e6ffc7bbb2fffdf7f3fffef8f3fffdf9f4fffffffffffffffefff4ede9ffe0dad7ffc8c2c3ffb5afaeffbfb8b8ffc8c1c0ffcac2c0ffc9c3bdffc9c1bdffc6beb9ffc6bfb9ffbdb5b0ffb5aca7ffb0a8a2ffada7a1ffb7b2aaffe5dfd5fffffef7fffffdf6fffef6eefffcf2ebfff2e8e1fff4eae1fff0e7e0ffd7d0c9ffc2bbb5ffb6ada7ffa69c95ffa49a94ffa39993ff9a908aff9a9189ff9c938bff9f978fffada39cffb4aaa2ffa49b94ff8c847fff8b847cff90867eff887f79ff89817aff867e78ff837b75ff837b75ff817972ff837b74ff867d77ff7f7772ff7f7773ff7f7775ff7a736fff847d78ff908883ff908984ff8d8982ff918a85ff918982ff948d86ff8b837eff847d78ff817974ff6b635b477d37124070301039672a0e64763613567c391363a95021767f3b1a6f632e12624d210d63642f153a75311336752f12427e3415488537164a8f3d1959a8491e55a7441d53a3431a559f431b4893401a4b783316455c250f6b5526127249211068431c0d55491f0d574e22104d54230f66612b1447622a0f4e652f134e7f391b5077361944622b12304d1e093a56250d4b5a2b114b582810625d2e17475929124c5d2d1364633117786533195e67331469783e174e824017488f4818499049174b813c1543753715496f35154d6d34154d6833164b632f1245612c12556d34166eab53246fc2612971b25c2b5e88411b51833e174e833d174f90441a3e9241168d8d573affa79e97ffa29b93ffa19990ffa29b93ffa69e97ffaaa4a0ffaeacacffafaaa6ffb4aea9ffb8b1abffb7b2abffbcb3acffb9b1abffb4aca5ffaba29affa59e95ffa19993ffa19993ff9e968eff9f988fffa0978fffa39b91ffa1998effa79d94ffaaa199ffaba29affaba29affada49cffafa69fffbab1a9ffc3bbb3ffc2b9b1ffbbb2abffb9b1aaffb6aea7ffb8b2aaffbcb4adffd4cec5fff1e6e0fffff8f2fffffffafffffff9fffffffdfffffffffffffffffffffffffffffffffffef5edffd9d1cbffcac4bdffc8c1b9ffcec7c1ffd6cfc8ffddd5d0ffdfdcd9ffddd8d3ffe3dcd5ffe6ddd7ffe6ded7ffeae0d7ffe7ddd5ffe0d7d0ffccc4bcffbcb4acffb3aaa4ffb5aca5ffbdb4abffdbd3c8fffffcf4fffdf3eafffff4eafffffaf5fffffdf5fffff9edfffffcedfffff6e7fffffaeefffffbf1fffff8effffffcf4fffffefbfffffffdfffffffffffffffffffffffffffffffefffffcf3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffcffece5ddfff3eae2fff6ede4fffcf2ecfffcf3ecffc3b7aefffdf6f2fffffffdfffefaf5fffffcf6ffefeae5ffc8c1beffaba7a6ffa19e9effa19d9bffaaa4a2ffb5afacffbdb8b3ffc5bdb7ffc2bbb7ffbeb8b3ffb7b1abffaea7a2ffaca4a0ffa7a09affa19a92ffaea8a0ffe2d9d1fffffaf0fffef5eafffff8effffaf1eafff1e8e1fff3e9e0fff2e8e1ffe8dfd8ffe0d8d1ffc3b9b3ffaba09affa59b95ff9f9690ff989089ff9c948dff9a918aff9a928affa69b94ffb3a79fff9c938cff857e79ff89817bff89807aff847b75ff847a74ff807873ff827a75ff867d78ff7f7871ff7f7770ff807872ff827a74ff837c77ff807a78ff7b7470ff7f7773ff837c77ff88827cff928983ff918984ff928a85ff8e8780ff878079ff857e79ff827c76ff696159546d2e0f385f280c3d5e280c42642b0d4e6d32105e6d3112607e36174a5e260d4c52210d3c76321329783113287a2f114888371651923b1b58a1441c52a6451b519b3e195799401b568f3d195280361860692c155053210f584b210f55431c0d5c431c0d4e481f0d5551230f4152220e485b28105d5b2911877f401c557e371a5d7a391b5f7133185d69301665622e16324d200b4254240e5b622e16586933173b632c1347652e15586b321750662e1366793d1858854419478943184c8941153f7e3813598541184275361443723514406f35154f6d35164d683214426b321463a850224a793813557035144c7537154e793917437d39153f883f1739934116ff776e67ff968f87ff968d87ff988f88ff958e87ff979088ff9c9590ffa39c99ffa19994ffa59e98ffa8a19bffa29d94ffa39b93ffa79f98ffa39991ff978f87ff9b928bff9a918bff9c938dff988f88ff9a938aff9c928bff9c948cff9c948cff9e958effa29a92ffa09891ffa39a93ffa59c94ffa79e97ffa8a199ffaca49cffafa69fffaea79effb1a8a2ffb4aaa5ffb1aaa2ffb1aaa3ffd0c7c0fff7ede6fffef6effffdf3edfffaf1ebfffdf5eefffffcf6fffffff9fffffffbfffffffaffeee5deffcbc4bcffbdb5afffbfb7b0ffc4bcb5ffc9c2bbffcec6c0ffcec5c0ffd1c8c1ffd2cac2ffd6ccc5ffcfc9beffcbc2b9ffcfc4bdffcac0b7ffb3aba2ffaaa199ffa79e97ffa89f97ffa59b94ffbbb2a8ffebdfd4ffe3d9d0ffe9ded5fff4e7e1fff7ebe3fff1e5dafff2e6daffefe4d7fff0e3d7ffebe2d8ffe8e0d8ffeae1d9ffece3dcffefe8e0fff6ede6fff7ede7fff6ede5fff6eee8fff7eeeafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefbf6fffcf7f4fff9f3effffffffdfffffffffffffffffffbf6f3ffebe4e0ffedeae5ffdbd5d0ffe0dcd5ffe2dbd5ffeae3ddffeae2dcffb7aba3ffe7e1dcffece7e2ffefe9e5ffede5e0ffd3cdc8ffa29e99ff8b8684ff8b8785ff88837fff8e8985ff95908cff97958effa09995ffa9a39dffaca39dffa29d97ffa09995ff9d9590ff9e9691ff948c85ffa09993ffd1c7bfffede6ddffe8e1d8ffe6ddd5ffe0d9d1ffdbd3cbffdcd3ccffded4cfffdad1cbffd3cdc5ffbfb5aeffaba19aff9f958fff968c86ff958b86ff918983ff8f8781ff8f8681ff9e958effa69c94ff938a84ff7d756fff7c746eff7d746fff7d746eff796f6aff776f6aff756d69ff78726bff78706aff786f6aff746e67ff746d66ff766f69ff766f6aff6f6661ff6f6762ff706964ff736e67ff7a726cff7e7670ff817872ff7f7873ff807a74ff7b7570ff7d7671ff69615aff514a423e57240b3c57250c3a5b270c42622b0d465e290e3d7430116592482752783516257a3010268133124d89381761943e1b6398401c5f993f1b50953c186797411c6990401c537b3517646b2f165c58261250471d0d54441c0d4d401a0b4e461d0d534f220f6457271345421a0a866e391e76803f1c8984441e4c7c381a537a3819597436195e703419776b341b715e2d165f5a2913576532183a52230c4152240d5b7d3e1a6285421e4e793a1668793a1754844116548a46194c884214357d37104c853f1658864118377434123f73361459783b1853723715437435156bbb5e2745874014447b37125c93461b54733515477c3915ff574f48ff655d58ff6e6662ff79726dff7d7671ff7d7671ff807973ff847c77ff8c847fff938a87ff968d89ff9b928dff918983ff8b827cff887f78ff89817bff89807aff898079ff898179ff837b74ff8a817bff8f8680ff8c827cff8f857fff918782ff938a85ff908881ff918983ff918983ff958d87ff928b84ff978f88ff9a928aff9a928aff9a938bff9b958cff9d978fffa19993ff9f9992ff9f9891ffb9b0aaffd8d1c9ffdcd5cdffdad1ccffded5cfffe8ded7ffeae2d9ffeae2dbffebe2dbfff0e8e1ffd3cbc4ffb2aaa3ffaaa29affaaa39affaca49dffb5ada7ffb9b1abffbdb3adffc4b8b2ffcbbeb8ffc2b7aeffb6aba4ffaca199ffada299ffa99e96ffa2988fff9e948bff978d85ff9e938affa0948cffa2968dffb3a79effc8beb6ffd2c6bfffdcd0c8ffded2ccffd7ccc3ffd8cdc4ffd9cec4ffd5cac0ffd1c9c0ffccc4beffcdc5bfffccc4beffd2cac2ffd4ccc5ffd3ccc5ffd1cbc3ffd7d1ccffddd5d3fff8f3eefffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f0edffe7e3e0ffe2dddaffdcd7d3ffd6d1ceffe7e2dffffefbf8ffefeae6ffd6d1cfffcecac7ffcec9c5ffccc7c4ffd4cecbffd1cbc7ffd2ccc8ffd3ccc7ffa69b93ffccc5c1ffcfc9c4ffcec8c3ffc9c2beffbcb7b2ff918c89ff7c7875ff7c7775ff7b7774ff7c7773ff797570ff76716dff78746eff88837eff8f8984ff8b847fff85807aff88817cff8a827dff89817cff8f8680ffb8aea9ffd2c9c3ffcac1bbffc1bab4ffbfb8b2ffbbb4afffbfb8b2ffbcb5afffbeb7b0ffbeb7afffb4aca5ffaaa199ff958e87ff887f7aff877e79ff857e78ff817874ff827975ff8f8881ff928a83ff837974ff716863ff756b64ff736a64ff726965ff6f6762ff6e6660ff67605bff6a625dff6a635eff69625dff6c6560ff6a635dff6c645eff6a615cff68605aff675e5aff625a56ff635c57ff635c56ff625c57ff605a56ff68625eff6d6762ff6a6560ff6c6662ff6b645dff615a52ff4c433d474c230e3b52230c3056220a428038175b8c421e69a6532a5793421d4d8f3c17438e391558913d1a65913d1c558c3816458e381555903c175b8838185b7b3418776f331a625828134f4b1e0d48431a0c554921124d451d0d4e451c0a443f17077c48211190773c1f817f3f1e89743b1a6d72381854813c1b4a7b38185577391b6c773a1e6b6f361a62612d156c612e1766642f174f672f15797e4121597b3d194c57280d547a3c166d8c471c5b8643185a8441174986411448843c1345803b1450833b14347e3a1339793a154f7a3a1650793a164a8340196fd56d305b984d18468840144f7637147e794020f55d534dff6f6962ff645e5bff6a635fff6a635fff6d6663ff6f6864ff78716aff78716cff847a77ff887e7bff8c837fff8d827eff827973ff7c736dff7a726bff7a716cff7e746eff817871ff827a72ff7e766fff847a73ff857c75ff847b75ff877d78ff897f7bff8e8480ff89807bff8d857fff8f8781ff8c847eff8f8781ff8e8680ff918881ff928b84ff958d87ff8f8981ff958e87ff98908aff98918bff9f9992ffafa7a1ffcbc3bdffcdc6c0ffcec6c0ffd0c8c2ffd9d0caffdad2caffd8d0c9ffdad2cbffdad3cbffd0c7bfffb6ada5ffa9a098ff9f978fffa29a93ffa59e97ffaea49fffb3a7a2ffb8aba6ffbbada7ffafa39cffa59993ff9b9189ff9b9188ff998e85ff9b8f86ff9b9087ff948a81ff9a8d85ff978b83ff968a82ff988d84ffada49cffb7aea6ffc3b9b3ffd0c5c0ffd5cac1ffd4c9c0ffdacec5ffd5cbc1ffd4cbc2ffcec6bfffc9c2bcffc8c0baffcac1baffcec7c0ffd3cbc5ffcbc6beffe1d9d4fff0e9e5fff8efebfffffefafffffdf8fffffffcfffffffbfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffece7e5ffdfdad8ffdedad7ffd9d6d1ffcfcac7ffd8d3d0ffe7e3dfffdbd7d4ffcec9c6ffc8c4c2ffcbc7c4ffc7c1beffd1cbc8ffcdc8c3ffcbc5c0ffc8c3bdff999089ffc0bab7ffbfb8b4ffb7b0adffa49e9aff938e89ff7c7874ff716d6bff706b69ff726d6aff6f6966ff6a6561ff67625eff6a6660ff75706bff7e7771ff7d7570ff7b746dff837b76ff88807bff877e79ff908781ffafa59fffc7bdb7ffbfb6b0ffb6afa7ffb8b0aaffb6aea7ffb0a9a3ffb3aba5ffaea5a0ffb0a7a0ffada49dffa99f98ff8f8881ff807773ff7c756fff78716bff78716bff756c67ff837b74ff847b76ff78706aff6e6560ff6f6660ff6e655fff6b635eff67605aff645e58ff645d57ff625b56ff625b56ff615a55ff635c57ff625c56ff665e59ff635b55ff645c56ff615853ff5c5550ff5e5651ff5b554fff59524dff57504cff5c554fff605b54ff605b55ff655e59ff645d57ff625b54ff514942ff59534daf55392c40682e134c7a3518448d3c197eaa582f62a148215695401b5b8f3b18568b3b196c8b3a194b8434145d8a381656883815657d3617666c301672602c166c5024136f4d231252431b0c423b15064c3c190a6a431e0e68401c0d6764311770653015666630147571371a63763a184c7b3614557e3b1b567c391b708241226c7a3e1f4c642d14716b341a666d34196574391b5975371a527b39184c833e1a537a3c18605d2d0f6488441b577e3e164a7a39124886431445843e144b89411536813c12337a36123d7a37133c7a37124487401867f48037519347174f95491754884315bb644937ff645e59ff726a66ff625d59ff69635eff6b6460ff716a66ff6f6964ff746e69ff79726dff837a76ff887f7bff887e79ff847b74ff7d756eff776f69ff79706bff7c736eff7f7671ff827973ff807770ff837a72ff867c75ff857c74ff857d76ff867c76ff877e79ff8d847fff8a817cff8e857fff8e857fff928984ff918883ff8f8681ff918984ff928c85ff958e87ff908982ff8f8880ff8f8780ffa49d95ffb8b0a9ffbdb5aeffcac3bcffc9c2bcffccc4beffd0c5bcffd6cec7ffd4ccc5ffd4cdc7ffd7cfc9ffd7cfc7ffdcd4caffdbd1c9ffc9bfb7ffa59e95ff9f9890ffa9a29bffb1a7a1ffb5aaa4ffb4a8a2ffafa39bffa49991ff9c9189ff9b9089ff9d928bff9c908aff9c9189ff988c84ff988d84ff9a8f86ff988c83ff958a82ff978c83ff958e86ffa49c94ffbbb1acffccc2bdffd5cbc1ffd2c7beffddd2c7ffdacfc5ffd7ccc3ffd1c8c2ffcfc8c2ffcbc5bdffc8c1bbffcbc4bdffd0cbc3ffcdc6c0ffe7e1dbfffdf8f5fffffefbfffffcf5fffdf9f4fffffcf8fffffcf8fffffdf8fffffffffffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffeae4e2ffd7d2d0ffd8d3d0ffd4cfcdffcecac7ffcfcbc9ffcac6c4ffccc7c5ffccc8c5ffc8c3bfffccc8c5ffc5bfbcffccc6c3ffcbc5c0ffc5bfbbffc9c1beff948c86ffbeb8b6ffbcb4b2ffaaa39fff7f7a75ff6b6762ff66625fff66625fff686361ff696360ff68615eff625c58ff615c58ff625d59ff67625dff6c6560ff6d655eff716861ff857b74ff948983ff8e847bff978d86ffb1a59fffc3b8b1ffc0b5adffb5aca5ffb6aca3ffb4aaa2ffb1a8a1ffaea69effa79f98ffaaa29bffaaa29affa69d94ff8c837dff7a726dff77706aff79716bff756d66ff6f6761ff746c65ff746c65ff736a64ff6b6159ff6d645eff69615bff665f59ff655d58ff615a54ff635c56ff625a55ff635b56ff5e5852ff615a54ff615a55ff625b55ff615953ff605851ff615852ff5c5550ff58514cff574f4aff57504aff57504bff564f49ff514a44ff59524cff635c56ff5f5952ff5f5a53ff534b44ff67615bff615b544874321556883c1c549d471d8da7572e8fb65c2c6396411c58913d1847803313477d34126c8237166482351556783113657231164c5e271153512210744920104a3a150850451d0c57451e0d4f411b0b5e421c0e63411c0d66451e0e48451d0d576e34155b703516617337173b5d240b4264270e4069290f5a7f3b1e667c3c206b793b1d7f7c3f206b74381d5c72351953723417507937165a89411c5c853f1b537c39185c592a0f6e572a114c723511437b3a13427f3c1343803c1438843f15327f3a13327b371335793611468c441a6ef07f3751984c184d9146165a934717bf755742ff69645eff6e6964ff645d5aff69635fff716a65ff69655eff6f6964ff756f69ff77706bff847c77ff867e79ff837d77ff7d746dff7b726bff766d66ff787069ff7c736eff7f7771ff837974ff827871ff827870ff857d75ff827a72ff867b73ff857c75ff89807aff8c837eff8e8680ff8d847eff88807aff948b85ff948b87ff908782ff918884ff99938dff948d87ff928b84ff979088ffa09891ffb0a8a0ffc0b8b0ffc4bdb5ffc0b8b2ffc4bdb7ffccc6bfffd2c8c1ffd2cac3ffccc6bfffd3ccc5ffd4cdc5ffd8cfc7ffe9dfd6fff2e8dfffccc5baffaca49cff9f9890ffa7a099ffb1a9a2ffb2a6a1ffafa59effa69a92ffa0958dff988d84ff998f87ff9e938bff9d928aff9f928aff9a8e85ff978c82ff999085ff958b81ff95897fff948a81ff948a83ff9e958effaaa29bffbdb2adffd7ccc2ffdcd1c7ffe0d5cbffe1d6cbffd3cbc2ffcec7c0ffd0c8c2ffcdc6bfffc9c2bcffd2cac4ffdcd6ceffece3ddfffcf5f0fffffffffffffdf9fffffff8fffffefafffffaf6fffffbf9fffffffdfffffffffffffffbfffffffffffffffdfffffffffffffffffffffffdfffffffefffffffbfffffffffffffffffffffffffffffffffff9f3f1ffe4dfdcffdad4d1ffd8d3d0ffd1cdcaffd3cfccffcec9c7ffcdc7c4ffcdcbc7ffcac7c3ffd1cbc7ffc7c2beffbbb5b3ffc5bfbcffbdb9b3ffbfbbb6ff958c87ffb6aeadffa7a09dff8d8782ff6b6761ff605b56ff605c58ff645f5cff66605dff65605cff655e5bff605a56ff5f5954ff615b57ff625c59ff665f5aff665f58ff6b6159ff7b7067ff8b8178ff968c84ffa99c94ffb4a8a1ffbcafaaffc3b8b0ffb9afa6ffb0a79effb0a89fffb5aba3ffb0a89fffa89f97ffaaa19affafa59dffa49a93ff988c87ff887e78ff7d746eff726a64ff716b63ff716a62ff6b635dff6b635dff706961ff6d645dff68605bff665f59ff645d57ff605b54ff615a55ff625a55ff615a54ff5b554fff5a544eff5e5751ff5f5752ff625a55ff615954ff605952ff5f5751ff5b534fff564e48ff554e48ff564f48ff58504aff544d46ff4f4841ff544d47ff5c564fff5b564fff5f5851ff524a44ff79716cff79726d487c3416479c471c4a8a39187b9249278f9d4d286d98441f5a8a3b175a7931145e793314647832146275301559713014736b30155958261050391709533f1a0a5149210e51451e0c4f431c0c443e190a5f421c0c4d3d190b51421c0c626b331678773b1b5c7136164f6e3315484c1b0949501e0a4a53200b41551f0a4359200a405a210a55692d1462773a1b5e75391b4c703415507335175a7b3919607e3b1946773614467535167981441e5f5b2a1157773813457b3a152a7332101c7432102d7c3913337935113c7b37114889401866da6f304f93451755954818508e4317ba795945ff6e6963ff77726cff665f5cff6d6762ff726b67ff746d69ff6f6a64ff77706bff7d756fff7f7771ff7c746dff7a736cff79716bff786f69ff776e67ff7a716aff746d66ff7c746eff807772ff7e746dff837972ff887e78ff867c75ff867c75ff847c74ff887f79ff8b837dff8b837dff8e8680ff908881ff938984ff958c87ff8c847eff948b86ff918b85ff928d85ff938c85ffa8a09affbab3acffbfb7b1ffbfb7b0ffbeb8b0ffbfb8b5ffbfb8b2ffc7c1baffc8c0baffcac2bdffd1c9c3ffd4cdc7ffdad1caffddd4ccffeae1d7fff4e9dfffdad0c6ffaba39affa49c94ffaaa29affada49cffa89d95ffa39a90ff9f948aff9d928aff9a8f88ff9d928bff988d84ff988e84ff9a8e86ff968a81ff978b81ff9b8f87ff988d83ff968c82ff92897fff8f857eff918880ff9b928affb3a79fffdad0c5ffdfd3caffe1d7ccffded4c9ffd9d1c8ffcec8c0ffcfc7c1ffc8c1bbffcbc3bdffcac3bdffece5dcfffffefafffffffffffffffffffffffefffffffbfffffdfafffffdfafffffffbfffffcf9fffffbf8fffffffdfffffffffffffffffffffffffffffffffffffffffffffefafffffffdfffffffffffffffffffffffffffffffefffffffefff2eceaffe5e0ddffd7d2ceffcecbc7ffd1cccaffccc9c5ffd1ccc8ffd4d0cdffd5cfcbffd4cfcbffc7c1bdffbcb7b4ffbeb9b6ffbcb7b3ffbeb9b5ff9a908affb0a9a6ff8d8681ff736e68ff66615cff625d58ff65605aff635e5aff645f5aff615c57ff645e5aff5f5955ff605b57ff605a56ff5e5954ff645e59ff645c55ff665d53ff6e655cff7d736affa3968effbdb0a9ffbdb0aaffbfb2adffbdb3abffb4aca3ffb9b2a8ffb6aea5ffb6aca5ffb3aaa1ffa49d94ffa79d96ffa79d96ff9d948effa69b95ff9c918bff857c74ff726a63ff706962ff6f6862ff6e6561ff69615bff6a625cff655d58ff655c57ff675f59ff655e58ff655e57ff635c56ff615a54ff615954ff5f5853ff5b544fff5e5651ff615953ff615954ff5f5750ff5b544dff5d5450ff58504bff564f49ff564e48ff514b44ff554f47ff514b45ff4e4741ff544d48ff58514cff5c564fff5f5851ff524b45ff7e7771ff7f79723a78301443914119467731145775331a78884221548b3b18417d331367793416627531146c763317576e2d146b6c30175e5c28134e3e190a4f401b0c4c411d0d5145200e4a451e0c47421c0b4c431c0b433d18094c3f1a0c4f431b0c6c773b1a6a703518676b32174a5e2a113945180750491a08434a1a08494c1c09454d1c08424e1c083d4f1c0842521e08434f1d08555f29104b6c3013597134165f75351752773718507536175d75381975954a2076813f1d3c70331133763713156e2e0e0a6e2f0e29773411397d391340863d1565cc662b53954617519246174f904518b97b5c47ff726c67ff7c7571ff6a635fff726c67ff706965ff756e69ff756e6aff746e68ff79726dff78716bff706962ff746b66ff746c67ff766d67ff787069ff7c746dff7b736dff7d746eff7e756fff817873ff827873ff817873ff857c76ff857c76ff867d76ff888179ff89837bff8f8882ff948e8bff948e89ff918882ff8d847fff8e8580ff8f8782ff928a85ff948c87ff908982ffafa7a2ffc5bdb8ffcdc4bdffc2bab3ffc0bab4ffbdb7b0ffc7c1bbffd1cbc3ffd3ccc5ffd6d0c8ffd6cfc8ffd7cec9ffdfd6cfffe3d9d2fff0e7ddffede3d9ffded4caffbfb5adffaea59dffa59e96ffa39b92ff9b9088ff988e85ff998e85ff9a8f86ff9c9189ffa0948cff9c9289ff988d84ff968b82ff978c83ff988b83ff958a81ff978d83ff948a81ff948a81ff8e857dff8d857cff8f877effa79c93ffc6bcb4ffd3cac2ffd2cbc0ffdad2cbffd6d2ceffccc7c0ffc3bcb6ffc4bdb7ffc2bbb5ffcbc3beffeee5dffffffff8fffffffefffffffffffffffffffffffefffffcfafffffcf9fffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffffffffffffffffffdfffffffefffffdf9fffffdf9fffffffdfffdf9f6fffffbf9fffffaf7fff6f1eefff1ece9ffe2dedcffcecac7ffc6c2bfffc9c5c2ffc9c4c2ffc9c6c2ffc9c5c2ffcac5c2ffbeb8b5ffc0bcb8ffbfbbb7ffbcb7b4ffbab5b2ff9c938cffb0aaa5ff817b76ff6a6561ff645f5aff605c57ff635e59ff625c58ff605b56ff625c58ff605b57ff605a57ff625c58ff625d59ff615c58ff615b56ff645d56ff685f58ff665d55ff766d64ff9e928bffbbafaaffbcafa9ffbcb1aaffb7aea5ffbeb8b0ffbdb9b4ffb7b0a8ffaea59dffafa59effa89f97ffa79f97ffa69b95ffa69a95ffa79b95ffa39790ff928781ff837972ff776f6aff6d6864ff6b635eff6e6760ff6e6760ff6b625dff6b645dff69615bff665f59ff665f58ff655d57ff645d57ff5f5752ff605853ff5d5551ff5b544eff5f5852ff5f5752ff59524dff59514cff59514cff57504aff58504aff59514bff554e48ff534c46ff524b45ff524d48ff514b46ff544e48ff57514bff5a534dff504943ff7f7973ff7e797131752e13437b34154470301455703319696f341a50873917587a321368753214607231145a6f301553682c135a612c14855f2e19554d210e59401d0e4f401c0d433f1a0b4b401b0b46401a0a3f3e1909423f1708505d2a105f713415546a311444602b105756260f454f220cff342d27b43b271c3842160740491b08344719073e491a073b4819083e491a08444c1c09454e1e093e4c1c08697136197175381c65773a1c5e783b1b6d7b3c1d7d9c52257f8b4622486e33133e7739132d7232111772320f1a75320f287e38114989401858b858245293451647924417478c4418b57a5c47ff726c67ff7c7671ff6e6863ff716b66ff746e69ff75706aff7a726eff716b66ff706863ff726a65ff6f6760ff716963ff726a64ff756d68ff777069ff7e746eff7a716aff7d746dff7f7670ff7f7670ff837a74ff827973ff847b75ff817873ff847b75ff887f79ff8e8680ff8c847fff8f8882ff928c86ff918984ff8e8680ff908882ff918984ff928b86ff928b86ff928c85ffaea69fffc8c1baffd0c6bfffc6bdb5ffbeb9b3ffc0bbb3ffc5c0baffcfc9c1ffd7d2c9ffd7d0c8ffded7cfffdbd2ccffded5ceffe9e0d7fff0e7ddffeee4dbffece2d8ffe6dcd3ffc2b9b1ff9f978eff978e86ff958b83ff978d84ff988e85ff998f86ff9a9087ff9f938aff958c83ff958a82ff958982ff948880ff958a82ff91877eff948a80ff8f857dff8f857cff8e847dff8f867fff90867fffa1968dffa8a099ffc1bab4ffc7c0b9ffc6bebaffc7c3bdffc6c1b9ffc4bdb7ffc1bbb4ffc1bbb4ffc7c1bcffe8dfd9fffffff8fffffffbfffffefafffffbf9fffefaf6fffdfbf6fffaf4f1fffffffffffffffffffffffcfffffffefffffdfafffffcf9fffffffffffffffdfffffffffffffffffffffbf8fffef9f4fffffcf9fff9f4f1fff9f4f1fff6f0edfff4efebfffaf7f1ffe3e0ddffc8c4c2ffbfbbb9ffbebab8ffc0bcbaffbfbcb8ffbbb8b4ffbbb7b4ffb6b0adffc0bcb8ffc4bfbbffc2bdbaffbcb8b5ff9e958effaea8a4ff837c79ff696561ff66615eff605c58ff625d58ff605b57ff5f5a56ff605a56ff5f5956ff5f5956ff615d58ff615b57ff605b57ff625c57ff645d57ff675f57ff685f57ff746c63ff938981ffaba09bffaa9f9affaea49effb7ada6ffb8afa8ffb7b1aaffb5afa5ffb3a9a2ffaaa29affaca39bffa9a098ffa79d96ffa49892ffa69b95ffa59a95ffa19690ff978c85ff817972ff6e6862ff68615bff6f6862ff6b645dff6d655fff6b635dff6a635cff675f59ff665e58ff655f58ff635c56ff635b56ff605953ff605853ff5b544fff5c544fff5b534fff57504bff574f4bff564e49ff575049ff58524aff58514aff544d47ff534b46ff534c47ff524c48ff544e48ff534d45ff524b44ff514a43ff47403aff6a645eff716a643d7031152d6a2c103f652a10626e341a646a31184879311254732f13466e2c104e6f2f135d6f321664683016655829137e572a16543c1a0c513b190c4f3d1a0c4d3f1b0b443e1a0a453f1709555c2a11597035177a743a1a706d3618565f2d125652250f6049200c7248200cff372f29ff39322b57a84c204fa94c2148933d19478a39175881371653753014517d3516588339185d8a3d1a878d42227572381b73783d1d757a3c1e677a3d1e678b4320718d4721516d34124a7136133d6f32112c7535122978341136833b15538c421957b858234d8c41164c8f431747843e16b6755745ff716c66ff7a746fff6e6662ff746e68ff726b66ff746e68ff736c67ff6e6763ff6b6460ff6e6660ff716962ff716962ff716963ff736b65ff79726bff7b726bff7c746cff7f776eff837b73ff7f766fff817972ff837b74ff887e78ff8c857fff867e78ff887f79ff887f7aff88807bff8d847fff89807bff8f8780ff968d87ff978d87ff958c87ff918a84ff9b938dff99938dffaea6a0ffc2b9b3ffc6beb8ffc5bcb6ffc1bab1ffc8c0b9ffcbc3bdffcfc7c1ffccc5beffd3ccc4ffd8d0c9ffdcd4ccffdcd4ccffe8ded6ffefe8ddffe7ddd3ffede4daffeee3dbffccc2baff9c948cff8f877fff948a81ff958a81ff958b83ff958c82ff998f84ff998e84ff958a81ff938980ff978c83ff93877fff92877fff92887fff958a82ff988f88ff948a81ff908680ff8c827cff918680ff9c918bff9e9892ffaba59fffb3aca8ffbcb6b0ffbeb7b1ffbfb8b2ffcac2bcffcbc6beffd9d0caffe1d9d2fffbf2ebfffffff6fffffbf6fffbf5f2fff8f5f3fffdf9f4fffbf7f2fffffefbfffffffffffdf8f4fffffcf8fffffffcfffffffdfffefaf6fffffefbfffffef9fffffefafffdf8f4fffbf5f2fffcf6f3fff9f3f1fff7f2eefff3eeebffefeae7fff4f0ecfff7f4efffe8e3dfffd8d3d0ffcecbc7ffc0bcb9ffbbb8b5ffbab6b3ffbcb7b6ffbebcbbffb4b0acffbdb9b5ffbcb7b4ffc8c4c0ffbfbcb9ff8f8782ff9b9692ff7a7672ff676360ff66615eff635e5aff625d59ff615c57ff605a56ff5f5a56ff5e5855ff605b57ff635d59ff615b57ff625c58ff645f59ff67615aff675f58ff686058ff736a62ff968b84ffafa6a1ffa69b96ffa89d97ffa89e97ffaca59dffaca29bffaba29affb4aba3ffb4ada4ffafa69effa89f98ffa59b94ffa89c95ffa49993ffa49893ff9e938eff968e89ff89817bff79726bff766e67ff6f6760ff675f5aff675f5aff6a625cff69625bff6a635bff645d56ff665e58ff645e57ff605a53ff605853ff5f5652ff5c5450ff5c5450ff59524eff57504bff564f4aff544d47ff564f48ff58524aff574f48ff564f49ff554e49ff554f49ff524c46ff524c45ff524b44ff544c45ff554f48ff463f39ff524c47ff57514d2d5c250f3d632a11416028115c6c331a656c32184477321442753010747d39175c7434145c6d33155f632f14625828125d522511523b1a0c4d39190c4739170b4739180b513a190b5857240e6f733a19626d35177b683315655a29107553271060471f0c67471f0c63441b08ff362e28ff39312b5698441d4d96401b50903d1a4a893a18598238175a8139185f853b195c853a195681371673843e1d6a6c3419647035196e793c1d68783a1c708a4521798a44224b622d104166311143693112367134112e763611387e3913498a41185cbd592452863f175287411856833f17b7725544ff6f6963ff827c76ff746b66ff766e68ff746b65ff746c65ff716a63ff6e6660ff6c645eff6f6761ff716962ff716861ff716963ff736b64ff7a726bff7b726cff7c746bff7e746cff7d766dff807870ff837a72ff847a73ff867b75ff8c827bff8c837bff8a817aff89807aff867d76ff89807bff8c827cff918882ff978e86ff958b84ff958c85ff958d86ffa39b95ffaaa19cffb4aca8ffb9b0adffbeb7b2ffbfb8b2ffc8bfbaffc6beb6ffccc3bcffd1c8c1ffc8c0b9ffd3ccc2ffd9cfc8ffdbd2c9ffebe2d7fff6ebe0fff5eadfffe4d9cfffe5dbd0ffe6dbd2ffc6bdb4ff9c948cff8f867fff92887fff90877dff8f857dff8f857dff938980ff92877fff91877eff90857cff90867dff90857dff92877fff91867eff91857eff968a82ff978e84ff948a83ff8f867fff928780ff9c9088ff95918cff95908bffa8a39effbab3acffbfb8b2ffbeb8b2ffcac4bdffcdc6c0ffeae1dafffdf6effffffffafffffef6fffefaf6fff5f1effffaf6f4fffdf9f6fffdf8f5fffff9f6fffffffdfffaf4f1fffffffafffffffffffffffefffffffefffffffdfffffbf7fffdf8f3fffcf6f2fffaf4f1fffaf4f1fff6f0eefff2edeaffece7e3ffeae5e3ffece8e5fff2eee9ffede8e5ffe7e0dcffd6d3cfffc2c0bcffbbb7b4ffb3b0adffb4b0aeffb9b7b4ffb0aba6ffb7b4b0ffb8b4b0ffc2bdb9ffc8c3bdff7a7570ff7b7674ff706a67ff6a6561ff696461ff67625fff635e59ff615c58ff615c57ff5f5955ff5f5955ff605b56ff635f5aff645e5aff625d57ff635c57ff645e57ff6a625bff696059ff706860ff948881ffb0a49dffaba098ffa89d95ffa39a91ffa29991ffaaa199ffaba29affb2aaa0ffb3aaa1ffada39cffa69d96ffaa9f98ffac9f99ffa39993ff9f9591ff978e8aff968e8aff928983ff8c837eff7a716bff6e6660ff6c645eff68615bff6a635cff6a635cff6a635cff69625bff67605aff645d57ff615953ff615a54ff615954ff5e5651ff5c544fff5a534eff58514cff554e47ff544d47ff544d46ff58514aff564f4aff544d47ff544c47ff514a44ff534c45ff534b44ff504942ff524a44ff564f48ff49423bff4c4741ff524d48445f2911486028103f6229104a6a3016616f3419537230144d7432116b7a3815697537165e6e3415656430156e5b2b147d592b154e37170b3c3213084f37170b5a38170b503a180a5458240e6b673215615c2a115d50220d6249200c684a1f0a6e451c09564219075a441a08ff372f29ff39312a51813717518c3b19568d3d1a53893c1953853a18658c411d64883d1a73893e1d6b863d1b5775351759622e16626b3419656e35195a7235186e854320768a452251602d1156602f12555f2e123568301036743512317936114a8940185bbf5a26527d3a16547e3a16607c3d18b66f5544ff706a65ff827b75ff776e68ff796f69ff756c64ff706861ff6c645eff6d655fff6f6660ff6e6660ff716963ff726a63ff726963ff756c65ff797069ff797069ff797069ff7c736cff827870ff827971ff847971ff837972ff827871ff837972ff887e76ff888078ff8e847eff8b837cff898179ff8b827cff8e857eff958c84ff958a83ff958c84ff968e87ffaa9f99ffafa6a1ffb3aba7ffb9b0acffb7b2b1ffbbb3aeffc3bab4ffc5bcb4ffcdc4bcffcfc6beffcfc7bfffd4cbc2ffd5cbc4ffdacfc8ffe9ded5fff7ebe0fff5e8deffe5d9cfffdfd4c8ffe0d4cbffcac0b7ffa9a199ff988f87ff948981ff91877eff8d837aff8d837aff8f857cff8e837bff8b8178ff8c817aff92867fff91867eff92867dff91867eff8d827aff8e827bff8f867cff928a81ff968c84ff958a83ff9a8e86ff8f8b85ff908c87ffa39d98ffb0aba5ffb6b1aaffc4beb7ffd4cdc6ffdfd7d1fff2e8e2fffff8f1fffffdf7fffffaf1fffbf6f1fff8f4f1fff4f4f4fffcf8f3fffcf7f3fffdf7f4fffffefdfffffbf6fffffdfafffffefbfffffefcfffffffdfffffffffffffffffffefaf3fffdf8f4fffbf5f2fffaf5f2fff3eeebfff1ebe9ffede8e5ffe9e4e1ffeae6e3ffebe6e4ffe4dedbffe0dbd8ffd9d4d1ffc2bfbbffb8b5b1ffb3afadffb0acaaffadaaa7ffaba7a3ffb4b2adffb7b3b0ffbfb8b3ffc8beb7ff726e6aff726d6bff6d6864ff6b6763ff6b6562ff696460ff65605cff615c58ff625d58ff5f5955ff5f5955ff615c57ff635e59ff625c58ff615c57ff635d58ff665f59ff6b625cff756c65ff817670ff968b83ffa3978fffa69b93ffa59b92ffa79d95ffa59d94ffa29b92ffa8a098ffaba199ffaba39bffaba19affa99f98ffa79c96ffa99d96ff9d938dff99918cff978f89ff8f8a88ff928a84ff918983ff7d756eff706862ff69615bff6a635cff6a625cff6a625cff69625bff6b635dff69615bff68605aff645c55ff625b54ff615953ff605852ff5e5651ff5a524dff59524cff554e48ff544d47ff544e46ff554f48ff544c47ff524b46ff524b46ff544c46ff514943ff504941ff4f4741ff4e4640ff4c453fff443d36ff4a453fff56504a61672f163e5f280f3f622911486d32177174381c5471331354773513737d3c175b7235155b69311457602b125f5c2a13585125114736160a4f35160a4e35160a5138180a5037170a5059230e6e55281057451d0b4d421b094b41190851401807393d1606413d1606483b1606ff362f29ff39312b57803718488538164e8236175185381851883b1a4e873a186991431e698f411d728e411f4f743217585f2b1559602c1561652f175c6b33186c83411f87985026646834135d61301260582c12385f2b10366e32113d7e3b15568a421b56c05927537e3c155b7939165e733717be6b5344ff6f6864ff7c756fff766d67ff706761ff6b625cff6e665eff706761ff6b635dff6a635cff6e665fff756c66ff746c65ff716862ff756c65ff756c65ff786f69ff776e67ff7c726cff807670ff827871ff817771ff817870ff80786fff847a73ff8d827aff898078ff8e847dff8e847eff8b837cff8f877fff8e847eff8f847eff928882ff938b84ff948c85ffa69d96ffaea5a0ffaea8a4ffb6ada9ffb8b0acffbeb6b2ffc5bab5ffc7bfb6ffcec5bcffcbc3baffd0c7bfffd4cbc2ffcfc8beffded2cbffe4d8cfffeaded4ffe2d6ccffdbcec4ffdfd4c7ffe3d7ccffd1c6bdffc0b6adffafa49cff9d938aff948a81ff8f847cff91867eff8d8379ff90857dff8a8178ff8d827aff91857eff92877fff8f857dff8f857cff8e847cff8f847dff938880ff948a83ff988d86ff9a8f87ff9e9189ff96918dff95908bff9b9591ffa09b96ffb2afa9ffcdc6bfffddd4cdffeee4defff9efe8fff7efe7fffef6eefffff6effff7f3edfff9f4f0fff2eeebfff5f1eefffbf6f2fffcf7f3fffef9f5fffdf8f4fffffbf7fffbf9f3fffffbf9fffffcfafffffffcfffcf6f3fffbf6f1fffdf9f5fff6f1eefff1ece8fff0eae7fff4efecffefeae7ffe7e2dfffe6e1deffe7e2dfffdad6d3ffdbd6d3ffd2cdcbffc0bcb9ffb4b1aeffb0adaaffaba7a5ffaeaba8ffb0aba8ffb6b1aeffafaba6ffa69e99ffa9a099ff726d69ff6d6865ff6c6762ff6d6863ff6d6763ff66615dff635f5bff605b57ff625d58ff605b55ff5d5853ff5f5a55ff645e59ff635d58ff635e58ff655f5aff665e5aff6b635dff877c76ff9c928aff9a8f89ffa39790ffaa9d97ffa49992ffa79b95ffa79d96ffa19b94ffa29a93ff9c928cff9c938cffa49a93ffa49b94ffa09790ff9c938dff958d87ff908a83ff938b84ff8b847eff8d8781ff928983ff7d756eff6f6861ff69615bff6c635cff686159ff686259ff68605aff69615cff69615bff635a55ff625953ff635b53ff655c55ff5f5650ff5b534dff58514cff5b534eff564f49ff524b45ff524c45ff544d46ff524b46ff514a45ff534b46ff524a45ff4e4741ff4d4640ff4a443eff47413bff49433dff433b35ff4c4741ff58514b476026104a632a123f5e260e506c301669773a1b587838155e7d3c1571793b154d6d32125268301156602a11605d2a13565527125b39190c423113095d36180b5035160a4f37170a505c260e4b5f250e535f250e5160260e4f5f260f4e62270f647230126f7e35166e883a18620000007000000045783116417d33154b81361753873a1a568b3c1a5891401a6397461e6e98461f6a96461f557d37195a5c2a155a5f2c1572632f1954622d157c8b48228a9c55285e65321259613112605b2e1245613011496b32133d75351150873f1756c15a2560783915597437155a6d3314b8674f41ff68635dff6b6560ff716762ff6a625c560000006c0000006d0000006b0000006f0000006f0000006f0000006e0000006b000000690000006b0000006c000000700000006a000000690000006a0000006d000000700000006f0000006d0000006a0000006b0000006d00000071000000700000006b0000006d0000006d0000006a000000690000006b0000006e0000006e0000006c000000750000006d0000006c0000006d0000006d0000006c0000006f0000006e0000006d0000007000000068000000690000006a00000065000000640000006e00000070000000750000007400000070000000710000005f0000006100000063000000640000006f0000006e00000068000000630000005c0000003d000000ff8d847bff8f847cff8e837bff93877fff948a84ff988d87ff9f938cffa89a92ff98918cff9a9591ff9a9490ff9a9590ffaba7a4ffb3ada7ffd1c9c3fff2e8e0fff9efe9fff9f0e9fffff7effffbf2ebfff8f1ecfff6f3eefff0eeebfff4efecfff3f0eefff4f1effff6f3edfff8f3effffaf5f1fff5f1edfffef9f5fff8f2f0fffbf5f2fff5f0edfff5efeafff9f5f1ffefeae7ffe8e4e0ffe6e1deffe6e3dfffe8e5e2ffe7e2dfffe0ddd8ffdfdcd7ffdfd9d7ffdbd6d3ffd2cecbffc8c4c1ffbcb8b6ffb2afacffaeaaa8ffb0adabffb2adaaffb6b1aeff9c9692ff827d78ff87807aff6f6a66ff6b6661cd474340550000006c0000006d0000006b0000006f0000006f0000006f0000006e0000006b000000680000006b0000006d0000007000000069000000690000006b0000006d000000700000006f0000006d0000006a0000006b0000006d00000072000000700000006b0000006d0000006d0000006a000000690000006b0000006e0000006e0000006c000000750000006d0000006c0000006d0000006d0000006c0000006f0000006e0000006d0000007000000068000000690000006900000065000000650000006f00000070000000750000007400000070000000710000005f0000006100000063000000640000006f0000006f00000067000000630000005d000000650f0e0dff48423cff49433dff433b35ff4f4843ff58514b455b240e526027104462290f4e70321756743619597a3a15537435124c693113576830125a6a30124b652d11505a2811535225115137180b5235170a533416095a38190b6338190b565f2810445c230d475c250e545f2510566328115a682b115b7231126c7b35156f843a1839000000320000004f783217427c3215487e33174d843618538d3c1b4f913e195f9a461e5f9b461e609e472061883d1d52552512665929154b5525125359281373894721799850245c64331358603112645e30134c62321243632e12366e331157813d175bb957244c753413436a30103c632c10c2674f40ff66605aff625c57ff6b625dff665f594b0000004c0000003d0000003b0000003b0000003f000000360000003e0000004a00000032000000320000003600000034000000390000003a00000048000000380000003600000034000000350000003900000037000000430000004c00000034000000300000002f0000003100000030000000380000004d0000005e00000056000000440000003400000033000000360000003d0000003a0000003e000000530000004f0000003e0000003a0000003400000034000000370000003f0000004f0000003c0000003a00000034000000320000003600000037000000430000004100000036000000380000003200000034000000300000003b0000004a0000006d000000ff8d827aff8e837bff8d827bff8e837bff8c837dff938982ff988d85ffa59890ff948d87ff95908bff9b9591ff9a9793ff98938fff918e88ffbfb8b2fff0e7defff8efe8fff8efe8fffdf3ecfffcf4ecfff8f1ecfff2ece9fff3eeebfffffef8fff3efebfff5f1edfff4eeebfff2edeafff2eeeafff5f1edfffcf8f4fff1ece8fff0ece8fff0ece8ffeeebe6ffefe9e6ffe7e2dfffdfdcd8ffdedbd6ffdfdbd8ffe2dedbffd9d5cfffdfdcd7ffdcd8d4ffe1dcd9ffddd9d5ffd8d4d1ffd4d0cdffc8c4c0ffb3b1aeffb1adabffaeaaa8ffaea8a4ffb5afabff948e89ff756f6aff79736dff6b6561ff696460730a0909480000004c0000003e0000003b0000003b0000003f000000350000003e0000004a00000032000000330000003500000034000000380000003a00000048000000380000003600000034000000340000003900000037000000430000004c00000035000000300000002f0000003100000030000000380000004d0000005d00000056000000430000003400000033000000360000003e0000003b0000003e000000520000004e0000003d0000003a0000003400000033000000360000003f0000004f0000003c0000003a00000035000000330000003600000037000000430000004100000036000000380000003200000034000000300000003b00000049000000880f0e0cff4b443eff49433dff423b34ff4c4640ff564f48505e260f495c250f50642a103c682e14416b2d1460763613697035144a622d104a632c104761290f445e280f4556230e515124115d38190b4a3416095d36180b6b3a1b0c6c3a1a0c6d622912485c250f485a230e4d5e240f5e65291254672a11566f2f1262773315607c35164f000000510000004a763115467a3015408034164c85371751933f1b569a451e589f471d5fa2491f64a74c21568a3b1b4c5727114952241053522312455425116a83431e899f5527646434135f603111585d3011556434133f622f10416a31115b7d3c174ea54b1d397733113b672b0f51642c11b45d4537ff5d5752ff5f5854ff675f5aff645c564e000000420000005d0000005c00000057000000570000005100000047000000440000005500000052000000590000005e0000005c000000570000003f0000004f0000005b00000053000000570000004e0000004f000000370000003a000000500000004d00000050000000540000004900000049000000600000006d00000065000000520000004d0000005200000051000000560000005700000060000000390000004900000062000000640000004d000000560000005a00000050000000420000004f0000004d00000054000000490000004b0000004f0000003800000049000000530000004e000000510000004e0000004c0000003d0000004a0000006e000000ff8b8179ff8d827aff8b8179ff8b8179ff89817bff89817bff8b8179ff948980ff8d8480ff928c87ff928b87ff908a85ff98928dff9b9591ffbdb6b0ffd9d1cbffe4dbd5ffefe6e0fff7ece6fff6eee6fff6efe9ffede8e4ffece9e8ffeeedebfff0ede9fff1edeaffeeeae7ffebe9e6ffebe7e5fff0ece9fff1edeaffebe6e3fff1ece9ffeae5e3ffe6e2dffff0ebe8ffe8e3e0ffdad4d3ffdad6d3ffd9d6d2ffdad6d3ffd9d5d1ffd8d5d1ffe0dad7ffded9d6ffe1dbd9ffd8d4d0ffd8d4d0ffcfcbc8ffc0bdbaffbab6b4ffaca9a6ffada7a2ffa8a29eff89847fff6e6864ff716c67ff6a6561ff66615d610909094d000000400000005e0000005a00000057000000570000005300000047000000420000005600000052000000590000005e0000005b000000570000003e0000004f0000005a00000053000000560000004e000000500000003400000037000000500000004d00000051000000550000004a0000004d000000600000006d00000066000000530000004e0000005200000051000000550000005700000061000000360000004a00000063000000650000004d000000560000005a00000051000000420000004e0000004d00000055000000490000004a0000004f0000003800000049000000530000004f000000500000004d0000004c0000003d000000490000008a0f0e0cff4b453fff49423dff423b35ff4d4740ff514a455e652c12525f260f335d260e35632a11386b2e126b793a155a662f1253602b1159632d1165642c1364673014685e2b137c5d2e1863391a0b5837180a5c38190b753c1d0d6c3a1b0d646028124a5c240f405a220e4a5f260f50632811556a2c13546e2e115f733114637834162d0000002900000046743014497b3316498136174f8739195c97431e549b441d609c451e6ca64d236ca84e23558b3f1c5c592a1452582812505528144451221056793c1a739a50226363341363633414555f311053592a10465d2e104f6330125f7338174e9c481d44803913486c31125a622c12bc5e4536ff5b554fff655e58ff655d57ff645d575600000044000000320000003300000032000000320000002b0000002b000000450000002d00000025000000260000002a0000002e0000002d00000045000000210000002a0000002b000000240000002200000027000000370000002900000021000000220000002900000025000000200000002a000000620000007b000000760000005600000026000000280000002c00000031000000320000003500000045000000320000002a00000026000000240000002700000027000000270000004500000026000000280000002c00000028000000250000002b000000480000002e0000002a0000002c0000002900000029000000230000002d0000005100000073000000ff8b8179ff897f77ff897f77ff8a8178ff887f7aff887f79ff857c74ff867c74ff837c77ff857c79ff867e7bff847c78ff9b948fffaea7a2ffb8b0acffb8b1aaffd2cac4ffefe6dffff6ede6fff3ece5ffeee7e2ffebe5e3ffe9e6e6ffece9e7ffede9e6ffeae5e2ffe8e4e2ffe9e8e6ffe8e5e4ffeae6e3ffeae6e3ffece8e5ffeae5e2ffe7e4e0ffe7e2e0ffe4dfddffdfdbd7ffdbd7d4ffdedbd7ffd5d1ceffd9d5d2ffd4d0cdffd5d1ceffd6d0cdffd8d3cfffd6d1ceffdad5d2ffddd7d5ffd5d2ceffcec9c7ffbebbb8ffa9a6a4ffaba5a0ffa09b97ff817b76ff6c6662ff6c6762ff68635fff66615d590a09095400000043000000320000003200000032000000320000002b0000002b000000450000002d00000025000000260000002a0000002e0000002e00000045000000210000002a0000002b000000260000002200000027000000350000002a00000021000000220000002900000025000000200000002a000000620000007b000000750000005700000027000000280000002c00000031000000320000003500000044000000340000002a00000026000000240000002700000027000000270000004500000026000000280000002c00000027000000250000002b000000480000002e0000002a0000002c0000002900000029000000230000002c0000004f0000008d0f0d0cff49433dff48413cff443c35ff4b443eff4f484254612a123b58210d2e5b240c3b632c123c682c115d7236134f5e29104e602a105c612c1265642e135a652d12695f2c135a532512673a1a0c5b38190a5c391a0b633a1a0c5638190b526028104d5d2610415b240e566429115c692c135a6f30145e6c2d136b7333166a7534162700000026000000456f2c124c7b341751813718568a3c196295441e5f98441e6a9d492174a24d236fa14b225f893f1d5a5829145b572a155a5729155a592b165373361774954b226a623313515d2f11586132124655280f4f572a0f54582a10606631145a8c411d49823c16426d30124a622d11bd61483aff5f5952ff625b55ff645d57ff655e585200000040000000280000002c0000002b0000002400000023000000270000004b0000001f00000022000000210000001d0000001c0000001e000000410000001f000000220000001b0000001f000000200000001f0000003d0000002c000000220000001c00000020000000210000001e000000240000006700000077000000710000005600000021000000290000003400000035000000370000002f000000490000003900000033000000310000002700000023000000220000002b0000004700000020000000250000002a0000002600000027000000220000004f0000002e000000290000002800000026000000240000002a0000002c000000460000006b000000ff877e76ff877d76ff898078ff8e857cff89817bff8a8279ff877d75ff877e75ff807974ff857c78ff908883ff998e8affa8a09bffb2aba6ffb7b1abffb2aba6ffc9c0b9ffddd2cbffede3ddfff3e9e3fff5ede9ffeee8e5ffeae5e2ffe7e3e1ffe6e1deffe9e4e2ffe7e2e0ffe9e4e1ffe9e5e1fff3edebffe9e5e1ffe5e0ddffe6e1deffe0ddd9ffd8d7d3ffdcd7d4ffd9d4d1ffd6d1ccffcfcbc9ffd2cfccffd0cdc9ffd2ceccffcdcbc6ffcfcdc8ffd2cdcbffd8d2d0ffdbd6d4ffd8d3d0ffd2cecaffcbc7c5ffc5c2bfffb8b5b2ffaca6a0ff99948eff7c7671ff6d6863ff6a6560ff696460ff64605c620909095000000040000000280000002d0000002b0000002400000023000000260000004a0000001f00000022000000210000001d0000001c0000001e000000400000001e000000220000001b00000020000000200000001f0000003c0000002d000000220000001c00000020000000210000001e000000220000006800000077000000710000005700000021000000280000003400000035000000360000002f000000470000003a00000034000000300000002700000024000000220000002c0000004700000020000000240000002a0000002600000027000000220000004e0000002e000000290000002800000025000000250000002a0000002b00000046000000860f0d0cff49423dff4a433eff433d36ff4c453eff4f49413257220d31531f0c3257240c2e582510385c27105c652c11515d2910545c281062622e1259622c1250632b11635f2c136b582b156f3d1d0e6339190b633b1b0c52391a0a553a1a0b4f6128104f6028114f622911506429115e6b2e145e6d2f1363703015767535186973331631000000320000004f753418557a341750843b19668a3e1c5d90401c5a8e3f1b6e9746207f9f4d2481a04d245d823a1b575729145555291462582b1651572814597d3e1b71934c215c5c2c11505e2f114b5f32123050240d4455290e4955280e565c2b115b89401c4c7a38164a6a3014415c290fbd624a3dff635b55ff665e58ff665e58ff655f585000000035000000330000003b0000003a00000032000000300000003400000045000000340000003500000037000000340000003200000032000000390000003200000035000000380000003300000031000000330000002f0000002b0000002d0000002e0000002e00000031000000380000003d0000006e0000007700000074000000560000003700000035000000370000003a00000035000000350000002b000000300000003e0000003a00000037000000350000003500000037000000370000002c0000002e0000002f00000036000000360000003600000039000000300000003000000030000000320000002a0000002f0000002c0000004100000058000000ff827a73ff847b75ff8e847dff9f958cff8c827bff8d847cff8d837bff8b827aff807974ff847b77ff9d948fffb8aca7ffb8aea9ffb0aaa4ffb1aba6ffb7b1abffbeb7b0ffc6c0b9ffdbd3cdffece0dcffefe6e3ffeee9e5ffe8e2e0ffe4dfdcffe5e1deffe8e3e0ffe5e1deffe3dfdcffe6e0deffece6e3ffe4dedbffe0dcd9ffe3dedbffdedad6ffd8d5d1ffd8d4d1ffd2cecbffcfcbc6ffc7c3c1ffcecbc7ffcdc9c6ffcecac7ffcac7c3ffc9c7c2ffcfcac7ffd8d4d1ffe0dbd9ffd8d3d1ffd0ccc7ffcac6c3ffcac7c4ffcbc8c4ffa59e99ff908a85ff79736eff706a65ff6c6662ff6a6561ff65615d630909084d00000033000000330000003c0000003a00000032000000300000003400000044000000350000003400000037000000340000003200000032000000380000003200000035000000380000003200000032000000330000002d000000290000002d0000002e0000002f0000003100000038000000400000006d0000007700000074000000580000003700000035000000370000003a000000350000003500000029000000310000003f0000003a00000036000000350000003400000036000000380000002b0000002f0000002e00000036000000360000003600000038000000300000003000000030000000320000002a0000002f0000002b00000041000000750f0d0cff48423cff48433cff433b34ff4d463fff5049423254220d2d4f1f0b3d54230d38542511304f210d64642d125c622e11525f2b1053632d125a6a3213666c3214585e2a126a5a2c15643e1d0c6c3c1d0d5f3a1b0c56391a0b5a3b1b0c55642b125160281153682e146e6d30165d6c2e13586a2c13696f3015757435177b7334173b0000002d0000004d7432155a7d3a1a617f391a6e883e1c57813717879345227c924421909b4b247b984820617d371a5e592914585527135a56281450572813577a3c1a859c52264b5a2b0f565e30124b5e30113a582b0f3b50250e4c552910545c2d1255843c1a456a30124a632e12595a2a11b7624c3fff69625bff6c645eff645d57ff645d56440000003900000036000000390000003b0000003d00000038000000340000004b00000038000000360000003b0000003200000039000000390000004c0000003900000038000000370000003400000034000000350000003d0000002c0000002c0000002e0000002e000000310000003b00000040000000690000007600000067000000530000002f00000035000000330000003000000033000000350000003c0000002e0000003400000039000000330000002e00000030000000370000003e000000300000003200000036000000380000002f0000004e0000004700000037000000340000003c0000002e0000002b00000023000000250000003900000051000000ff887f79ff867e77ff938a83ffaca19aff90867fff978e87ff999188ff978e86ff8c827eff8e8480ffaa9f9affcdbfbaffc9bfb9ffbbb6b0ffbdb6b0ffc9c2bbffcbc2bbffcfc6bfffe7e0d8fffef6eefffffbf5fffcf8f4fffdf8f5fff7f3f0fffffaf7fffdf8f5fffaf6f2fff8f3f0fff9f5f2fffaf3f1fff3eeebfff4efecfff3efecfff4efecffefeae7ffe5e1dcffe5e0ddffe4e0dcffe2dedbffe5dfdcffe6e2dfffe5e0deffe0ddd8ffe7e3e0ffeae6e2fff2edeaffede9e6fff0ebe8ffe2dfdbffe1dddaffd5d1ceffc9c6c2ff99918eff8c8581ff817a75ff7c7671ff78726dff6e6864ff6c67636e0a0909420000003700000036000000390000003b0000003d00000038000000340000004b00000039000000370000003a0000003200000039000000390000004b0000003a00000038000000370000003400000034000000340000003c0000002d0000002c0000002d0000002e000000310000003a000000420000006a0000007700000067000000530000003000000035000000330000003000000033000000350000003b0000002f0000003300000039000000330000002e00000030000000370000003e000000300000003200000036000000390000002f0000004c0000004700000037000000340000003c0000002e0000002c00000023000000240000003900000071110f0eff4e4741ff4c453fff443c36ff4f4842ff544d47344f1f0c4951220e3b4d210c444d220f4549200e706935156b6833144d6733135e653114616c34146c6f361558602d125e592a13653e1e0e753d1e0e5a3c1c0c5a3c1b0c513b1a0b50652c125a672d145e692e156a6c2f1563692d137a6d30166e6c2f14817233177a713215280000002b00000053723417527c3919637e3a195d7f3a195f823c1b6587401c758e45208091462167893d1b677c3a1c68612f18555c2a145b5b2a15555929146382421d729d5123525c2d0f555e2f115e5e30134d5c2f11495a2e11374e240e50582a1263863d1d4c602a113e52230e4e4e230eba5f4a3dff67615bff6c655eff665f59ff67605a4500000035000000330000002a00000035000000320000002e000000310000005200000034000000310000003a000000300000002e0000003200000048000000300000002d00000035000000310000002b000000330000003a00000030000000290000002c0000002d0000002b0000003000000033000000650000005f0000005b000000480000002c000000260000002600000027000000240000002b0000003b000000240000002600000025000000270000002200000024000000250000003a000000240000002d0000002d0000002a0000002d0000002c0000004a0000002b00000023000000270000002b0000002a00000024000000270000003c00000063000000ff958b84ff968c85ff9e948effb8ada8ff9c948cffa39a92ffa39b93ff9e978fff988e8aff978e89ffbaaea9ffdccec8ffdacfc9ffd2cdc5ffdad2ccffd8d1caffded6ceffe3dbd4fffcf5edfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffffffffffffffffffffffffffffffffdfcfffffdfcfffffefdfffffdfcfffdfbf9fffffffdfffffefdfffaf9f4fffffdfafffffdf9fffffdfbfffffdf9fffffefafffefbf7fffcf8f5ffe0dcd8ffc0bab7ff99918dff928b86ff8b857eff847e78ff807b74ff76716eff75706d6d0b0b0a4300000034000000330000002b00000035000000320000002f000000300000005200000034000000310000003a000000300000002e00000032000000470000002f0000002d00000035000000310000002c000000330000003900000031000000290000002c0000002d0000002b000000300000003200000064000000600000005b000000480000002c000000260000002700000028000000240000002c000000390000002600000026000000250000002700000022000000240000002500000039000000240000002d0000002d0000002a0000002d0000002b0000004a0000002b00000023000000270000002b0000002a00000024000000260000003c00000080161413ff5c544eff504842ff433b35ff4f4942ff58514b3b4b1e0c474a1f0d474a200d474c231041411d0c816b37174a602c10405f2c104c602b1050652d11686e341463602b127d6231185d421e0d6b411f0f543f1c0c543d1b0c4239180a4c632a12586b2f14626c3115606b2f145c682e1362692f14696b30157b6f331662692c1255000000500000004e6a2f1542692b115d72321652703014577634167b84411e858843217988421f76883f1c7a7f3d1f5b67351a6a67321a5d622e166767321a527a3d195c87421c4c54280e5b5b2d104c5a2c10525b2d11545d30123f562b0e4354260f5881391a4f58270f394c210c46481f0cb65b473cff68625bff666059ff68625bff6a625c54000000620000009000000066000000650000006d000000650000006700000061000000670000005c000000610000005f0000005e00000060000000560000005b0000005f0000006400000061000000610000005e000000570000005c0000005d0000005f0000005c000000560000005e0000006500000061000000670000005f00000055000000590000005500000056000000540000005b0000005e0000005b00000054000000550000005d0000005600000058000000560000005b00000053000000540000005a0000005b000000620000005f00000052000000550000004f0000004800000055000000500000005600000052000000560000005500000045000000ff9c918bff9c918bffa69c97ffbdb2afffa7a097ff9f958cff8c827aff807871ff9e938fffb0a5a0ffcbbeb8ffe3d4ceffded3cdffdad2ccffd9d2ccffe1dad2ffe2dcd3ffe5ddd6fff9f2e9fffffffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffffffffffffffffffffffffffdfffffffdfffffdfaffeee8e6ffd0cbc8ffb4b0adffa39b97ff9d968fff958d85ff7c756eff6c665fff797572ff7a7673490c0b0b53000000630000009400000066000000650000006d000000640000006700000062000000670000005c000000610000005f0000005e00000060000000570000005a0000005f0000006400000061000000610000005e000000570000005b0000005d0000005f0000005c000000560000005e0000006500000060000000660000006000000055000000590000005500000056000000550000005b000000600000005d00000054000000550000005d0000005600000058000000560000005c00000053000000540000005a0000005b000000620000005f00000053000000540000004f00000048000000560000004f000000570000005400000055000000550000006a171514ff625953ff514843ff3e3631ff4f4943ff59524c3044190946461c0c37471f0b3949200d3b3b1a0a7b6935155c63301252622f1246602a0f51693112606e3414766631168963321a50421e0d7846211054411d0d60411d0e4f3c1a0b64662e144d6027105e622a124d5d270f525d260f6d662f147d672f157267301575652d135804030353040303435c250e54662e14696b301654652b125a6f33166a723418777b3b1c70813f1c6e813d1b7c87411f6c71381e7b73391f6072381d6770371d61743b1a7380401d3b4720094154290d4255290e4f5a2d1048572a0f525a30125d5a2c12537130154253250f553b1a0b4749200db4523e33ff59524cff554e48ff6c645dff6f6860480505045d0505046805050578050505710505046b06050573060505720706066e0706067a0706066e07060674070606710606056b060606670606066f0606066c07060669070606620706066a0706066f060606770706066f07060663070606660706066c0807076f090808690909086e0a09096c0a09096d0a0a09720a0909680a09096a0a09096e0a09096209090864090909650a09096c0a0a096f0a0a09760a0a09660b0a0a6a0a0a09740b0a0a6c0b0a0a720a0a096c0b0a0a6c0b0a0a690b0a0a6c0b0a0a6d0b0b0a6c0b0b0a710b0a0a690b0a0a580b0a0a580b0a0a5a0a0a0a580909094e090808530808075c07070762070706560707065707070654070707ff9d938dff9f9691ffaaa29cffb8afabff9a9088ff8c8178ff70665fff5c544dffa09691ffd2c4beffd9cac4ffe2d3cdffd7cdc9ffcdc8c3ffd4cdc7ffe2d9d3ffdfd6d0ffe6ded6ffe8e0d8ffede5ddfffffbf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefafffffffefffffffffffffffffffffffffffffffcfffffefbfff2edeaffcbc6c4ffb8b4b0ffacaaa6ff948c87ff968d86ff8f867dff665e56ff514a43ff7a7572ff7c7974561110105c0606056606050576060505740605056b0605056f050505770605056a0505057b0505057105050573060505720606066a070706670908086f0a0a096e0a0a096b0a0a09610a09096a0909086d090808780908087108080862080808670808076a0808076d080807690808076d0808076b0808076d0808087508080769080807680807076f0807076307070764070707640807076a0707066e06060674070606670706066d070606710707066f070706720706066e0606056c050504690505046b0505046f0505046a050504700504046a05050459050404580404045b0404045704040450040404550404045905050460060505580605055705050552060505ff736a65ff635a54ff514a43ff3c342fff524b45ff544e482f431a093b39180a313d19093d471f0d2d3013076e653214736532145a622f114f642e11766c3316686d32157469321585663319674c23106347200f6d46210f56431f0e4b3d1b0c4c592611585d29126a5f2a135156230e5a5b2810695b2711785f2b146a602d13695e2b12ff1a1613ff1a1714b7311b114754210d5d5e2812535a2610555d28115d602a11646a311565753817697738186b7d3d1c727c40236f7e4022657c3d204e74381a35692e144f642f114847210b5750260e5053280e4053280e3852260d635a2e124b4f230f3f50230e2f471d0b30803b1763411f0e92402619ff332e2aff332e2aff655d57ff675f57ff6a625cff686059ff686059ff6b655cff605953ff635b54ff645d56ff655d56ff665e57ff635b55ff645c56ff665e57ff675e58ff686059ff686059ff665f57ff6c635cff6b625bff6a625bff696059ff686058ff696159ff6b635bff6d645cff6b625bff6a635cff6a625bff6b645dff726962ff6f675fff726a62ff6f665fff6f665fff716861ff716861ff6c645cff6e655dff746c63ff736a62ff71685fff736a62ff706760ff70685fff726a62ff756b64ff726861ff766d65ff797067ff7c746bff7a7168ff797067ff7b746aff2a2521ff2d2824ff312b27ff332e29ff342e2aff312c27ff302b26ff322c27ff332d28ff312b27ff2d2824ff2c2723ff2e2924ff2d2824ff2d2824ff2b2622ff282420ff4b453fff4a443eff453f3aff403934ff554f4aff6a625cff6d635eff6e655fff665e5aff605c58ff635e5aff6c6660ff6a645eff6d6761ff69645eff69635fff756f6aff7d7773ff76726dff7c7671ff7d7873ff7d7872ff807b76ff797470ff77726dff78726eff766f6cff756e6bff7c7571ff817c78ff7c7671ff78716dff837e77ff76706bff776f6bff7b746eff76716bff756f6aff746d68ff76706bff736d69ff726c68ff706a66ff6c6863ff696460ff5a5552ff534e4aff4e4b48ff443f3bff3d3834ff403a35ff3a342eff322d29ff2a2723ff2c2925ff2a2622ff27231fff282420ff26221dff25211dff25211dff27231fff25211dff25211dff25211dff26231eff26221eff282420ff2d2823ff332f2aff766d65ff776d65ff756c64ff726961ff6f675fff706860ff70665fff726962ff726961ff6f665fff6e6760ff6e675fff716961ff70675fff726961ff726a61ff6e665eff6f665fff6f665fff6f665fff686059ff6a615aff6b635cff6e665eff6c645dff69615aff655e56ff69605aff6b635bff675f58ff685f59ff6d645dff6f6860ff6d655eff6b625bff6d665eff676058ff645d55ff645c56ff675f58ff635b54ff635b54ff625954ff625c55ff635b55ff635b55ff635b55ff615953ff5f5851ff625a53ff615953ff5f5751ff5c564fff5f5751ff3c3732ff2d27243d42190a512c1208223c18092a3d1708253c18086a64301376632f137167331552642e10626830145a672f12886c381c7a5d2d146d5026116e4e2411644a230f5b451f0e59431e0d5450210e5e5424106152220f5d4f210e534e200c6552240f735828115e552610755d2d16ff27231fff24201dff231f1c4c4a1e0b484b1f0c534f200c5751220d464a1d0b5455260e585f2a1066682f1369713516767c3e21788543255c864423467a391b4c78391b4d54270f696130134e4d270d4351280d43552a0e49572b0f61592d1164562a1034461c0b35471e0b33431b0a5a92451f5d4b230ff526211cff24211dff24201dff26221fff282420ff27221fff27221fff28231fff26211eff27221fff27221fff282420ff27221fff27231fff25211eff25221eff272320ff292421ff2a2522ff2b2623ff2b2723ff2b2622ff2a2622ff2a2521ff2b2622ff2a2521ff2c2723ff2c2723ff2b2622ff2b2724ff2d2925ff2d2924ff2e2925ff2f2a26ff2f2a26ff2e2925ff2c2723ff2c2623ff2d2824ff2e2825ff2b2623ff292521ff2a2521ff2a2621ff2c2723ff292622ff292621ff2b2723ff292622ff2a2621ff2a2622ff2d2823ff2d2924ff2b2722ff2c2723ff2e2824ff2b2622ff2b2622ff2a2622ff2c2723ff2b2622ff2d2823ff2f2a25ff312c27ff312c26ff312b26ff2d2824ff2c2723ff2d2824ff2c2723ff2b2622ff292420ff282420ff312c28ff322d28ff322d29ff342f2aff38322dff3e3731ff403933ff3e3832ff3b3632ff383430ff39342fff3a342fff3a3530ff3b3631ff3a3530ff393430ff3b3633ff3c3733ff3d3834ff3c3834ff3e3934ff3f3a36ff423d39ff3b3833ff3b3733ff393431ff393430ff3b3431ff3d3733ff3e3833ff3c3632ff3d3633ff413935ff403934ff403933ff423a34ff3f3833ff3f3833ff3c3530ff3c3630ff39342fff36312cff342f2bff36312dff322e29ff2b2723ff292522ff2a2622ff282420ff221e1bff201d1aff221f1bff1f1b18ff201e1bff211f1dff221f1cff26221fff26221fff231f1cff23201dff23201dff24211dff24201dff25211eff25211dff25211dff25211dff2b2722ff322c27ff342f29ff342f29ff2f2a25ff292520ff28231fff282420ff28231fff2a2521ff282420ff27231fff262320ff272420ff27231fff27231fff28231fff28241fff27231fff27221eff26221eff25211eff25211fff231f1dff221e1cff221e1bff221f1cff25201eff201d1bff221e1bff221e1bff211d1aff221e1aff221e1bff26211dff27231fff25201dff27211dff26211dff221e1bff221e1aff221d1aff221d1aff221e1aff211d1aff201e1bff211d1aff201c19ff201d1aff1f1c19ff201d1aff201c1aff1f1b18ff1f1b18ff1e1a17ff1d1816ff241f1bff2d272354401b0d5e2b14083c3c180a2e391608303b1a0a52401c0b63632f136f632e13585f2a0f63642f126a642f1271663213755e2c125c52261070522711574c220e634d250f40451e0b604c210e4441190a59471d0b51441a095b451b0a55431b0b5b491f0c6750240e6c50250f65522710ff120e0cff120f0cff120f0df5140f0b3f3f170852451b0947441b0943411908474219084f4b1f0c5954240e515d291058622b115d7f3e2061824121708b492761844323547e3d1e524e240c5c532a114150270d4b572c104e572c1058582d1059552a0f635026104e4b210d2b431b08173f1a086d4b2512504a210dff231e1aff26221dff201d1bff181512ff171512ff181513ff191614ff1a1815ff1a1815ff181613ff1b1916ff1e1b19ff201d1bff211e1cff201d1bff1f1d1bff1f1c1bff1e1b1aff201d1bff201d1bff201c1aff1f1c19ff201d1aff201c19ff1f1b19ff1f1c1aff1f1c1aff1f1d1bff1e1c1aff1d1b19ff1e1c19ff201d1bff1f1c1aff201c1aff1f1c1aff1f1c1aff1e1c19ff1f1d1aff1e1b1aff1e1c1aff1d1b19ff1d1b18ff1d1a18ff1c1a18ff1b1816ff1b1916ff1d1a18ff1d1917ff1d1a18ff1f1c1aff1f1c1aff1f1c1aff1f1c1aff1f1c1aff201e1bff1f1d1aff1e1c1aff1d1b19ff1e1c19ff1f1c1aff1f1c1aff1e1c1aff1e1b19ff1c1b19ff1c1917ff1b1917ff1c1917ff1b1816ff1b1816ff1b1917ff1b1816ff1a1715ff1f1c19ff201c1aff221f1cff24201dff1e1b18ff161412ff161311ff161311ff151211ff141211ff131110ff141210ff141210ff151311ff161311ff161412ff181513ff171413ff181614ff171513ff181514ff171513ff171512ff171512ff191614ff181614ff181513ff191614ff1a1614ff181513ff1a1714ff1a1714ff1b1715ff1a1815ff191613ff191613ff191614ff1a1714ff181513ff171513ff181513ff171512ff181513ff171512ff171512ff171412ff161311ff161311ff1e1b17ff1c1916ff1c1815ff1d1916ff151210ff151210ff151210ff161311ff171411ff171411ff181512ff151310ff171411ff171412ff181513ff171412ff161411ff161412ff171412ff171411ff181512ff171512ff171412ff181513ff181512ff181512ff181412ff171412ff171412ff161412ff171412ff171513ff191613ff1a1714ff191614ff191614ff191614ff1a1614ff1a1614ff1a1614ff191613ff181513ff171412ff181412ff181512ff181512ff161411ff181613ff181513ff171412ff171412ff181412ff181512ff171412ff181512ff181512ff191613ff191713ff171411ff181512ff181512ff181512ff151210ff120f0dff110f0dff110f0dff100e0cff110e0cff13100eff15120fff161310ff151210ff14110fff13100eff24211eff27211dbb36231a4542190a55401a0c413917093a36180b2f3113076765311461612d127566311561622d1079632f126c5d2a106b5c2d1378562a115c5025104c4e230d594c230e534b220e5649210e43391507533d1708523e19094d3d18074b3a1607513e190964431c0c50441c0a54451e0cfb100d09ff201c19ff1f1b17ff201c19ff24201c6f39180a4b441b0a403f1808463d1708474018094e441b0948481d0a5e4f220d5252220d6a74391e5c7f3d1f5d813f2066824322597e3e1f5a74391c626533134e572a0e435a2c0f4a592c0f52572a0f5a55290f5753280f41451f0c36441e0c373f1b0a4a441e0c464d220d4b572710ff292420ff2a2320ff423c38ff35302bff322d28ff312b27ff322c28ff322d28ff322c28ff342f2aff38322dff39322dff3a342fff3f3832ff3c3530ff3a332eff37312dff38322dff37322dff37312eff36312eff35312dff38322eff38322fff39332fff3b3430ff3e3732ff3d3632ff3e3732ff433b36ff473f39ff453d38ff463e38ff453d38ff433d37ff433d37ff443e37ff443e37ff433d36ff47403aff443d37ff443d37ff463e38ff453e37ff423c34ff453c34ff433a32ff423931ff413931ff413932ff413832ff403731ff413832ff423932ff413933ff413a34ff413a34ff3e3730ff3a342dff3b342dff3c372fff39322cff37312aff342f28ff36302aff36302aff34302bff322e29ff322d28ff332e29ff3a342eff35302cff352e28ff36302bff38322eff302b27ff352e27ff332b25ff312a24ff302b25ff312b26ff322c26ff312b25ff322c25ff322c25ff322c25ff322c26ff332c26ff322b25ff332c26ff312b24ff302924ff302a24ff2f2924ff2d2822ff2f2923ff2e2822ff2d2721ff2e2722ff2e2722ff2e2721ff2e2722ff2e2822ff2e2822ff2e2721ff2d2721ff2c2620ff2c251fff2e2720ff2b241fff29231eff27221eff27211dff2b2520ff2e2824ff2e2823ff2d2722ff2c2722ff23201dff322b26ff322b26ff3e3730ff342e28ff26221eff211d19ff211e1aff26211dff26221dff26211dff26211dff25211dff28231fff2a2621ff2d2823ff2c2722ff2b2622ff2a2622ff2b2622ff2b2722ff2b2722ff2a2722ff292622ff2a2722ff2b2723ff2c2824ff2c2824ff2c2823ff2b2622ff2b2622ff2c2722ff2d2822ff2c2722ff2c2722ff2c2722ff2c2722ff2d2722ff2d2722ff2d2822ff2c2721ff2e2823ff2c2620ff2c2520ff2b2521ff2a2420ff28231fff292420ff2a2420ff28231fff27221eff27221fff28221fff28221fff27211eff27221eff26221dff26211dff26221dff26211dff25201bff25201cff27221dff231e1bff221d1aff211d19ff221d1aff211d19ff201b18ff1d1a17ff221e1aff29231eff2a2520ff28221eff575049ff24201c373b180a3e431c0b48411b0b493d1a0b393616083d3114086a5d2c125b5e2b106d632e1374683114605a26105b59280f61572910504b1f0b464e240e4b4e240e464b210d524d240e504c220e513e19094a3d18093f391507483814074b3b1608533e19094d3e180960421c0b4c3f1909a723120aff14100d6913100d4d120e0c5f130f0c6814100d64130f0d4d401909473f1809403c1708423c1708443f1808464119093c41190950471d0b544a1e0c65834122557b3a1d5c7c3b1e5177371b5c77371d5b7238177b7c421f616233144a5f2f11635d30134e54280e5150260e4c4d240d474c230d4149220c32421b092f491d0a5f642f1474542b15ff28221fff2c2723ff292420ff24211ed41c1916dc272420c728231fad27231f67211d1b8c24201d882a2622a52e2a25c72f2a27e82f2b29f4302c29be2e2a27db322d2ab2332f2ba034302c9c383430c13e3935bb413d389a423d38ff312a24ff1e1b19a22d2825ba2e2a26d6312c29c82d2925bc2f2a268937322cc9463f39d2473f39ad443d35be3d3730cc3e3731ab37302bab332d28e439332cdb39332e992f2a25ff3a342ef738332de836312cff3f3933db39342feb37312dfb36302cf66d645cff2c2724f939332fd9463f39ff524940eb4c433bff4f453ede463d36ed443d36fb473f37fb443c34ff463e36ff473e36ff453d36ff3d3733ff3b3430ff3c3531ee38322ef537312cef312b27c22a2622ff302a27ff38312cff38312bff3c352fff4c443eff423b35ff3c342dff362f28f5362e27c3302b26fc352f2adf312b27d12f2925ff332d29de302b26f9322d27f4312c26fe332e28fc312c26ff342e27ff352f28df2e2922ff332d277325201ba929231ec12a2520c42b2620b62a251fc42b251fd62d2621ea2f2823ff372f29ff362e28f7322b26e72f2823ff332c26ff342d279328221ef92e2722e92d2621c32b241efa2e2721dd2d2620f42f2821dd2d251ffe2e2721ed2a241eff28241fff2c2824ff37302aff38312cff3e3831ff342e29ff292520ff302922ff302821ff2e261f86251f1aab29221dd32e2720b12c251ffd312923ed302722ff3b312aff362d27f1342c25ff3a3129a7302822ed372f27c7332b24ff3c332ae8362e26ce29231eff3c352fb6312a24cc302923e7312a24c92d2722c72d2721ab2b251fb32c2620c22d2720cf2d2720a02a241db52b251eab2a241d8627211bbb2a241da12a241da22b231dcd2d251fef312821c02a221edb28221ee72b2521da312a26ac2f2925bc332d298b2d2723ff2a2521a639342ecd3c352fb73a332bcb3f372faa40372e953b342ccb3c362ea73b342cb73b352eb83c352dd6403931d23d362fc43c352fb337302ac837312bb0342e27a7302a23a52c2621a527211deb1c1815ff2a2520ff272420ff27221eff2b2622353a180840421c0b433c18094f451d0b655829115859281069612e13585f2c11615e2811565e29105655230e5d53260e574c220e5c4a230e524c220e4d4b210d524a220f4c49200e51421c0c4a3b17084438150840381507453a15074b3c1708393915074d3c1709523c180957351509aa040303850403039514110f7114110f6d13110e56120f0d6d13100e7c17120f453b1608403a16084e3d1709413c1708483b1709423d1808483d18095a421a0b4b451d0c6e874829597d3f205e7a3a1e5678381c4e692e176f84451e746e3b1b5b6735146f62341563592d12574f260f484d240e3f48210b4649230d5547210e4f421e0c405f29104a673014ff28221fff27221eff332e2bff332d29c5171513ec2824219c2b2724912b272485292623b52c2825a32b2724a22b2723cb2e2a27f5332e2ace342e29c836312c5b2f2b26a235302ca739342e8838332e973d3732e647403cef48423ff93c3531ff2c2825b94e463fda453d37fe39332ed2342f2aaf342e29fd443e38f44f4843e648413cc23f3834d6433c37ef47403bde413b36f8443e39d1453e39a93c342ebc403831d14e463ee8595249d6574f46e4554e45fa504a43fd4d4841d0443e38dc655e56ff2f2a26ff221e1bff332e2af7433c36ff554d46ff5a534cff4f4942e848423bd748423ac949423ab5474037f7514940f74a4339ff4c4339ff4e453aff4b4238fc494035ef423a32df413a31fe433b32ff2b2622ff3a332cff37302aff3c352fff4b443eff47403aff3c362eff2c2722ff322c26fb2d2823fc312c26ff2f2a257d241e19b727221cef2a241ff32a251f77201c189e231e1a9a231e1afe2a251fff2f2a24ff2d2823ff2c2622d225201cff2c2722fd2b2621df24201dc1211e1abe1f1c18db201c18e6211d1ad3211c19d2201c18d3211d19fe26201dff27211dff2b2520fa27221dfa2b251fff2a241f82201a16ad221d18e224201bf727211c6f1d18159f211c18a0231e19ff302a26ff302b27ff352e28ff38332dff3b3530ff322d28ff2a2621ff41372edc3b322ada3b322bb9372f27f33c332cdc3a332cdd3c332cfe413831ff463d34ff413830fe3e362e7b302924ce3f3831da4a4138b7453b33d6483e36fc51463eff544942fe534a43ff423b35de302821ec312a22ff352d25e7312923ba2e2722fc312a25f7302924d52c2620a729231db429241ece2c2620c029241fc82a251fb028221d9327221ca52a241fad2c2620b82d2721a52b251fb02b251fc1332c25c539322b92352d2688322b24d42d2722ff221e1abc312b25a538302ae03a322cfc3c352ec9362f298e312b2584322c2580332e277f352f28b93b342da73a322bc53d342dd33c342cbd362e28b7322a24a02b24208726211dac25211cdc25201cff1f1b18ff26211dff292520ff27221f5730170d313615074e3c19095f491f0d5e51240f5c5527104d55260f545d2a104d5b260e61642d125c5d29105853240d624f240f4f451e0b5c50240f6a502510614e2510654c240f5b4a210e4536140741361407503916084338150745391508443a1608463815075f3b180a4e3a17099f18130fc5191410f51b1611891b17156b1a17158c1c19178e1c19169a1d1a17871e1b175c341a0c453a16094b3b1709483a16084a3a1608433b1708463c180936361407563e19094853240f55793a1d4f77391d5b71331b4e662e177d96522b87975329606e38156564331356562a104e4c240d584c240e514a220d5047210d4b441f0c50401c0b4d431e0b555e2b15cc35231bff27211eff302a27ff2b2623ff23201cf61e1c19ad23201db023201ecd252220e2272422c6252321be272421b4272321ea2a2724e02b2725ce2a2724a62b2723a92f2b2895312c2999312d2aa734302cec3b3532cc3c3632ab3c3732ff2b241fa82c28248627231eb92b2721d72b2621f22b2723d2312c27df3b352efd413b34ff474039ff47413bb038332dff47413aff48413bff4b423be64a423ae54b4239bf463e37ee4c443cff554b42e84f463dda4b433bb2443d35ad4a4038ca544942ff615850ff342e28272c251e45342d253d332b2443322b231427211b342f28212a2c241e372e26202b2d261f53352d2756322b243629221b623028216030282110211b152a261f18562e271f69312922602f2922ff362e29ff332d28ff3e3732ff433d37ff38322dff3b342e9e171512eb1c1a17fe1e1c18f81d1b17ff1f1d19ff1e1c18ff1e1c19ff1d1b17ff1b1916c8181613d1181613d9181614f6191715d7181614ff1b1917ff191715fe181614bd181714f81d1b18ff1e1c19ff211e1bff211f1bff201e1bf4211e1beb282420e6312c27ad322c27e839332e97332d28fa3d3530ff3f3831f43b342dff3f3730ff3e362eff3f3730ff403932ff3c362ed3322d26dd37312aef3d362eff37302bff3c352fff332d27ff332d29ff39332eff201c19ff2b2722fa29231cdf27211bfb29231dfc2c251fff2c251ff72a241fed2b251ff92d2620ff302821ff312821f22c251fc92c251ec7312921d2332b24f7382f28e5362d26ff3d332cd4362d25fc1a1612ff3e3831ca2d2822a02c2620fc352e26ff362e27fc352d26ea322b24ff332c25fe322b24ff362f27dc312a23b72d2720ff322b24e8302923e4322b25cb2f2923a02d2721b52b2621ff302a24ff312b25c62e282385312c269535302a9d3a332c88342e27ff272420f91d1b17c828241fd927231f8824201c8024201dac27221eb127221e9a25201ca826221e8e25201b6825201b5829221c882d2520ac2a241fb829231e7e231d199f221d1ab11f1b18ac201b18e0221e1aff2b2621ff211d1aff27231fff26221e5d34170a5035160954471f0c5d461e0d514a1f0c5e50240f5a54250e4f56250e5356240e5a58260f5553230d6a51240d554a210c5a50240f705025116e502511594c230f714e2511543715084635130748371408473714074c3815083e391507443816084634140751371608100f0c0a180f0c0a1b0f0d0b160f0d0bfe252321a6201e1cdf23201fb5201e1da6232120bd211f1dca211f1d543f190943391508503c190a4239160837361407353513073e3815085c3a17094438150841672f173f6c321837662c14405f2a13545a281467964f23698849205d6533125a572a10544c230d5349220c5148220d5045200c50431f0c4f3f1d0b563d1b0b4250230f37481f0cff27211eff2b2521ff282321ff3a342ed5282420ea1f1c18b71b1917aa1d1b18b71c1916b71b1816a31b1815c41d1a17d01c1916bd1b18168e1b1815951f1b18b7221e1aae231e1bb524201c97221f1b9323201ccd26231fd7292521ff302923f01d1a18d3292420b828231fc225211ecb26221eef322c28ff3c3631fe443d38f8463f3ace443d37f34d453fff5a514aff443d38fd3d3731aa35302b9a35312bbc3b362fbc3c3630ab272420fd2e2a25cc2e2a25dc35312bff3f3833e5413934ed58524cff3c352ff641362db4372f28ad352d28b1362e28f43d342da5342d2574302921e3372f28e4362e27d8342d25d0332b24d9322a24b12d2621ff37302afa312b26e8302a25fd332c27e32f2a24e737312cff312a25ff342d28ff3c3630ff3f3933ff4d453eff38322dfc26231f9335312b9c39342dff464038f3474139ff474139fb443e37fe443e37ff433d38ff3e3934fe403a35ff3f3834c937312dff423c37ff413c37ff3e3934ff433d38fe413c37ff3f3a34ff413d38ff443f3afe403c36ff453f39e046403a9a433d37c94e463ffa5b5149cf4e463fed534a428f474039a24c443cff585047ed574f46fc544d44f34c453cfe4a423aff474038f6403a33f7453d36fc453c34ff37302cff36312cff332c27ff2f2b25ff36302bff26221eff1a1815ff2d2621f328231fe12a2520f92a241ffb2a241fe928231dfe2d2620ff2f2821f52e2620cf2a231ec72d251ff8302922ee342c24ff3c332ad9393127c4372f26ff41382eff443a30ff2c2723ff3b3530fd342c25e3322b23e6322b24e3332c25f5352e27ff362f29ff373029f0332d26c6302923e8332c25ff37302aff352f29e72f29239529241e8c27231e9f29241fa72a241f8d29231eed2f29239b2e2822a3353029d03d352ead3c342cae393229ff322c29bc1e191680171511791713117d171411a3191612701815114d171411971a16139a1b1713971c17138f1d1813961d18147b191512cb1c1814af1b161495191613b31a16139a19161399191613ff1a1715ff26221dff29231fff231e1aa4271811482f1408593b1b0c59431d0c65471f0d534a1f0c6650230e5952240e4c4e210c474d200b544d200c534e220d5a4d240f4f4b230d665428116b522711614e240f6d502611573f1a0b443313074f3514084935140732311106353111063c3212064e3313075233130875221813a8191817ad181715fa1d1c1a8d1918178e0d0b0a7c0c0b0a990e0c0bac0e0d0ba60e0d0c840e0d0b7d0e0c0a5e0e0c0a563c180a453a1708583c190a4339160844381608443715083f371508653b180a433815082f66311430612c133a5d2a11635d2d1572572b156b8e482065673616645c2e1269552c11574c250d5549240d5846210d5243200c58411f0c4c3c1a0a4d421e0c51492211ff25201dff251f1cff2b2724ff2a2521ed221e1bcb1f1c19d01d1a17c51c1917b01a1715a7191715e81b1916d71a1815a31715138117151387191614941a1815a81d1a17961d1a179f1d1a17be1f1c19b2201d1ab7201e1b9d201d1af726211cff25211fc438332edb443e39f64b443ecc443e38f44c453ff54f4843db504945e5534d48ff5c5550bc4f4a45f8534a44fe544b45ff4f4843ff504943fd574f47ff574f48f54c463ea73f3a34bb3f3b34fe4e4840e4524d45b848423bc1423c36c45c564fff3f3732ff292521f9282420d625221ed325221eff2c2623f6282421e724211f9c1f1c19ff272320e4221e1add201c1af3211e1bf3201d1af1211e1bc31e1b19b91d1a18fb211e1bcd1e1b19c0312c27ff2e2823ff38322cff38322dff3a342eff443d37ff37302cf926221ed538312aff403b34ff3e3a33cc36312bea38342ebb35302af33a362eff3b362fe539342ed438312af6342e28e625201bc11f1b16ab201b17891e1a167d1e1a15cb231e19e825201bd1231d1af827211cdd29221df7302822da302923f83b332df7443c35ff544b44ff4b443df6463f39fd4d453cff4f463eff4e433be5473d35da453d34ca423931fe463c33f9433a31ec3f362e8d362c25f93e352dff342e29ff34312dff38322cff2a2521ff312b26ff27221ff22b2520fe2d2722ff2f2923ff2c2622d328231eff2d2722ff312b25fe2e2822b229231dcf2c261f9e2b251eab2d261fff382f26df322a22ff352d25e7332c24f1352e27fa362e27cb312a23ff34302bf22e2822d6302a23fd332d26ff342e27e7312a25f3322c26eb312a25e1302923ee302a23da2f2922e8302922ee312b24d72e2922f42e2922f42f2923f7312b26a12a2520a62a25209726211dca28241fad2d28238d352f2a79352f289638322aae373129ff2c2825e00505049f050404be050404c0060504e3060504a20605049e050404bd060504b3060504be0605048d050404b5050504a80505047c0505047f06050496060505cf0606058d0807068a100d0bff2c2722ff221f1aff2a2621ff211d19482b12084e301408423b1a094b3f1c0b4f431e0b624a220e6c4d230f5b4e220e4e4a1f0b55471e0b59451d0b44441e0b57431d0a76512611695327125c512711534d230e744d251052331307413113074d3213073d301106413012064430120642311307603414084a2b1107480605053d060505540605055806050559070606620c0908880d0a09710c0a08790d0a09990d0b09760c0a08680c0a08570c0907660c0a085e3d1809493916084a3a1608403a1608493c1809533a15085e3d190a5439170a393c1a0b3f5e2c143f5626114e532610534a220f413c1909433918094e3d1a07664a240d5f532a0f6b4f280f5548240d4e431f0b443c1909483c1a095239180932421c0c3a3c1a0bff241e1bff29231fff292420ff302c2774221e1b991a17147c17151297181613b7191614fa1a1816f41a1716b2181513d71917148a1714129f1816147e171413b11b1816ad1c1917c21d1a17b41d1a18e9211e1aa01e1b17aa1e1b17ff2a2420901f1c19b1221f1cbd201d1a921c1916ba201d1ade2a2622e22e2925ba2d2824f536302be237322dfd3f3831fc493f36fe4d433ba4453b35ff4a413aff483f38fa524942e1574c45fe5c5148f35b5049ce544a43ff524a44ec443e3aae4d4843ff3a342fff443e36ff4a433aff4c443bc0433c34ba413a34f64c453ef64c443eff4f4741f64b433ef94c433dff554b45ff564d46ff4c453ffe413b35c63a342ed53b3530a738312ce53e3731ff413831ff2a2521ff443d35ff37312cff39332dff3f3832ff352f2aff23201cff302a26ff342e2af0342e2af9332d29ff36302cf3312b27e9302b27c02c2723c0292521ff272420ff24211ef224211dd6221f1bff262320ff25221eff27231eff25201bff25201aff26211ca1201c188c26211cff373027fe372f26852b241dc1312921a52e261fec342c24ff3e362dff3b332bff3d342ce2332c25ff3a322aff3b332cd5332b25cd322b25c5312a24cb302a24fe352e27e42e2822ff312c27ff3a342dff2e2924ff292521ff2e2925ff322c289228221dc72d2620ab2b251fc52c2520ed2e2721ff362e28ff352d27fe2f2823ff332c26c72c2621ee302924b42c2621ed332c26ef383029ff39312bf3362e29ff3e352ec5342c25e4393028ff3a3530c02e2823e4332d25e8332d25af2f2922d8312b23e9332c24ec322b23c42d2620ef302821ce2c251ede2a241ee92b241ee42b25209929231fff2e2823fd2f2823ed2c2622c5292421dd2c2723c82e282599332d28c53c3530b03a332e83342e28ff1b1917ec231f1bc90c0a08c90403039404030399040303cf040403bf040303db040403b9040303c6040303f1040303ff040403ec040303c8040303980403039c04040377040403b9050504c0050504ff120f0eff27221eff26221dff221d1adb231a155931170a5f35180b5c381909403917084b3f1a096c48210d6d4a220e654b210d5a461f0a6e431f0d503f1908553f1b0a2d3e18076b5229125a4f2610945930175d4d250f5a341508513012074f2f12063d2e1105483113073d2f1106543213075d3314084c3012079c070606b1070707c00807068f070606a5070606b9070707ae100e0ba90b0a08690b0908950d0b09b40d0b09b70d0b0ac70d0b0ac30d0b09be0d0b098622110a563a17095e3d1a0b553b17094f3c180a453b1708593b17095a3a170a4b3817093e582b123e542711414d24113c421c0b353a1809313616083d35170845321509563b1a0955421d095946210c4e44200b4b411d0a423b19094f381809424c210e324b200dff241f1cff26211eff1e1c19ff2b26219c1c18154614110f39100d0b49110e0c46100e0c52100d0c3b0f0d0b69100e0b3d0e0c0a56100d0b59110f0c4c120f0c38100d0b4d110e0b65130f0d6414110e43120f0c4f13100d4914100dff2f2923de272320b628231fa225211d732c2621a0352e29d939332dda3a332ffc413a34da3d3630ec423933de433b35fc4d433de9514740ff564c44fc524840f7332c27ff342e29e92f2924eb2e2924cb2d2723f0312b26f01f1b18e01b1714882d2722fc36302dff201c1ad3322d27d4322b26dc312b26ff352f29ff3a332dff352e2aff342e2aea2e2925e62c2623bd292420ff2d2824fa2d2925dd292520ff2b2622ff2d2823ff2c2723ff2e292486322c27ff211d1aff39332dff342e29ff36302bff38322dff2a2521ff27241f822f27207927211b641e1a159d231e1a99231e1aa6241e1a8c211c19761f1a175e1e1a1667211b178925201ba228231f7324201c8527221e8a27221e7125201ba52b25216527211c8d2b251f852c25209b2e2923942e2924842a241e6d26201a9e2b251f8329231d9d2b251f8e2a241f7927221c51231e199a2b26209929241eb529221e9726201b71221d1963211c1867221c198a26201ca4231f1cff312b27ff35312bff292420ff27231fff2b2722ff302b266e27211c46221d176427201b6d29211c4d231c184b231c187729211b9d2d251f752a221b802b231ca42d251e44251e19612e251e692f271fae392f27733129214d2d251d84362c2461221c16ff3d3732dd362d25c7322a23a02e27206928211abc2c251dc92a241fe22c2520cd2a231eba2a231fb02d2621cb2d2621bb2a231eff312923f52e2722cc2a241fff2f2924fa322d28bc2f2925c32b2621b42c2620cf352e27be37302aa3352e28af38312aff322d28982f29225f2a241dc1312822b6312923fa372f28da332c27c8322b26f2342d28aa302924be302925b52d2722d52b251fc628221dcb27211ce529221dd127211cf329221db026201a8a27211bff13100eff26211dff1f1c18ff201b184c2d13074e31150969321709483416084b381808583e1c0a5b431e0b6e3d1b0b64351608583616094435140756391809503a16094e3d18085347200c4249200b604d240f7338180a502f13075a311408572e1207462e1106432e1106502f1206532f12074b301307be1a181680171614a3171615aa181615f91c1a19fd1b1919d4191818a1332f2ac336322cd238332ef23d3732c33a342ed53b352feb3a352eae322e29c1322e29d4332f2aa0392a21513615075c381708593615075b361408513715084b36150850351407453415073549200e3c49220f2a401c0b2c3c1a0a343a1809313616094236180a4939180a553c1b0c4d3d1b0c48421e0b493e1b0a373b19073e37170867381a0a6b6b34199c482616ff25201cff2b2621ff29231fff1615138612100e8613100e8813110eae13110fbb13110fbe13110eb912110eb112100e9b110f0dc813110e9c13110ebf151310b5141310d2161311c71715128d171412791413117e131210da221e1ab526221d251915112d1915113c1a1612371814102d171310381815114e1e1916301d18142c1e191532211b175228221c4329221b302620194227211a301d1813341f19143d211b153a211c163e211c173e211c16461714102f13100e461d1916bb2d2723ff39332df6201c19d41f1c19ff26221eff24201eff25211fff25211ed01f1c19ad1c1916f0201d1afc211e1ad41d1a18fc201d1aea1f1b18b51b1815ae1a1714fd1d1a18f71d1a18d224211efa2e2925ff3b352eff332d28ff332d29ff342e29ff1d1917ff292520dd25221ffe292521db23201cda22201ced24211da21e1b18f524211de324201dff24211df824211dff26221fff28241ff124201cfd24211ddc221f1bd1231f1cfb27231fff2c2723eb2925216e211d199125211cea28241fd526221dda25211cff302b25dd292420b628221dea2a241fde28231ef527231dd325201bd826211cc525201bd926211cd826211deb2a2520f12a2520ff2c2722ff2e2a25ff302a26ff322d29ff2b2621ff2a2520ff2f2a25ff2f2a25bf3a332cc43c362ebb3b342dfd433c35fe413934ff403a34fb403832f9403731ce3d352ffd453c34e7413931ff4e443cfb534a42ff574e47ff554c44ca4f4740aa48413baf464039f83e3832ff3a342ffc352c25e6312923df2e2721ff322b25f1302a25f7362f2afb362e2aff38302aa9322a25c6312a25b92b2520d728221eeb2c2620db2c2621a328221dec2e2924f7342f2ac0302b26df2d2822eb332d276e302923a3362f2992352f2a8c352e28ff282421c02b231e952d2621e6342b26cd2f2722e2302924f2332c26a22d27218f2b241fc62c2520d62d251fa92b241ed12c241eca2a221c97251e1987231d17bf27201cbe27211daa231e19c825201bff2b2521ff221e19ff1e1b17ff1e1a16533016094f2f1408562e15084331160846361808482f1306443114073f3214073e321407563717095d351509463716085b3e1b09463c170946421c0a3c451d0a5a3a190a502d1206552c1106552a1006602a10064e2b10064c2b10064e2a1005472c11068e0c0805a20706059a060505790605059d070505730605055c0605056b060505bc211e1bbe211e1bf3252220f925211ed0221f1ca8201d1aad211e1ba9201e1bd624201dc123201cf026221fb024201c7a2b180f40311306422f1206452e10054d2e10054a2e1005402e1106582e11065731130739441f0c33401c0b343c190a2b3315084a3d1c0c5b401e0e4b401d0d52421e0e6749231355411e0c70401f0e45391809663719096d72371a50723416ff241e1bff2c2621ff1d1917ff201d1bc913100ee513100ec0120f0d86100e0c6f0f0d0b7d0f0d0bab100e0b760f0d0b89100e0c80100e0caf13100fcb161311b6151211b7151210a71411109b13110fc9151210c1161311da191715ff322c271f1b161225191510271814102516131029171411291915122d211b173627201b3526201a3f29231c402b231d462d26203e2c251f4129231d4d2c241f4f2a241e4627211c3927211b592a241e5429231d2c231d1733221c1635211c164f2d251eff413a34bb463d349641382f983f372feb443d37e5433c36b53c3530f9443c37b63c3531e2463f3aff4d4540fd49423dff514b44d93f3a34df37332ec035302bf239342fb435312ce938332eff2b2621ff1e1a18ff312b26ff322c27ff352f2aff1b1815ff2b2621c12b2723fa2e2a26ea2e2a25cd2d2924c32b2723d62d2924dc2f2a26fa332e29ee302c27ff332f29ff36312cf2322d28ff37312cee332e29ba312b26fb39332dff3d3630ff3f38325d2c28246f302c28b636312db7322e2bd434302aff3f3932ff433c37aa35312cdd3a3530a7322f2aff3a352fe236322cae322d28cf34302ab12e2a25e636302bf23a332df339322bff3a332dff3d362fe6332d27ff302b27ff2e2924ff2d2722ff2e2823ff312b26ff342e29ff3d362fff453d35ff494038d7443c359c37312ce2403832f4423b3394362f29c13d352ecf3d362ef8453e37ff514841f04a423bf14a423bc5433c36fb49423bff4b433dff574c45ff4a413bff2c282542211a143d221b1540221b1542211a1441211a142a1e1813361e1713301b1510281d17112f1f1812381d1712301a15102117120e2617120e2e19140f2517130f29181411241814102718130f231d18131a231c152b251f181a211a15cd1e1a17f82824227a1613117e161311ba181512b2151312c215131182141210b616141284151210db191614c9161412cb161412d51715139815121083141210a6151311be1513118114110fa8151311ea120f0eff26211dff1e1a16ff1d191666261209482c120741281206372a12073d2e1407493416095b36180b5836180a4b3316084633150847331408553615083f341407583c190a393b17073633140641260f0542240d0442220c044b210c044e220c0447210c0453220c0458220c049c080503aa050403ac050403cf050403a2050403c9050403b80504039a0504037f050403ae050403ff26211dff161311ff161311ff161311ff161311ff151311ff161311ff161411ff171412ff171411ff171311ff181512ff191613ff191512ff171311ff1915126832180d392e1005292a0e04382c0f043e2d1004402d0f04392c0f04312b0e043f3a190a4c3d1b0c734822117d4f2613684e251368502715705229175c411c0c5d3d1c0a603718096d36190a51622c14c2332018ff29231fff28231fff25211eff201d1bff0c0a09ff0c0a09ff0c0b09ff0c0b09ff0c0b0aff0c0b0aff0c0b0bff0d0c0cff0d0c0bff0d0b0bff0f0e0cff13110fff141210ff13110fff131110ff141311ff161412ff1d1a17ff2f2a25ff3a342fff1a1715ff191715ff1a1816ff1a1815ff191715ff191715ff1a1715ff1b1917ff1c1917ff1b1916ff1b1917ff1c1917ff1e1b19ff1f1d1bff201d1bff201d1bff211f1cff23201eff23201dff23201eff1e1b19ff1a1715ff322d29ff474139ff453e37ff1b1816ff1b1816ff1b1916ff1b1816ff1b1816ff1a1815ff1b1917ff1b1916ff1a1816ff1b1916ff1c1917ff1d1a18ff1a1816ff191614ff1a1715ff1b1816ff1c1816ff25201cff302a25ff302b26ff312b27ff352e2aff433c35ff332d28ff1f1c1bff100f0eff100f0eff100f0eff110f0eff100e0eff100f0dff100f0eff0e0d0cff0e0e0dff0f0d0cff0f0d0cff0f0d0cff0f0e0cff100f0dff141110ff171412ff1b1916ff1c1a17ff1d1b19ff1f1d1bff1d1c1aff1d1b19ff1c1a19ff1c1a18ff1c1a18ff1c1a17ff1d1a18ff1e1b18ff1c1917ff1b1916ff1a1815ff181614ff181614ff181614ff181513ff1a1715ff1b1816ff39332dff2b2722ff2e2924ff2d2622ff2f2824ff2e2823ff3a332dff151310ff14120fff14120fff14120fff14110fff13110fff13100fff141210ff13110fff12100eff151210ff1a1715ff1d1917ff1c1816ff181513ff161312ff171513ff171413ff4b443dff403933ff161412ff161412ff161412ff151412ff151412ff151310ff161411ff151412ff171513ff161412ff151411ff161411ff161411ff171413ff161412ff161412ff151311ff161312ff151311ff141210ff131110ff110f0eff110f0eff25211dff302b27ff110e0dff100e0cff0f0e0cff0f0e0cff100e0dff110f0dff120f0eff110f0dff100d0cff100d0cff100e0cff110f0dff110e0dff0f0d0cff0f0d0cff100e0cff0f0d0cff151210ff2d2722ff211c19ff181513ff1d1916462a1206522f15083e241006462a1307362f1408443a1a0a5f37190b5d36180b6c381a0b3d32140733311307383314073a32130640220c043b210c042c1e0a03331f0b0344210c0342210b0338200b035c1e0d07ff13100eff13110fff12100dff12100eff14110fff13100eff120f0dff100d0bff0c0b09ff0c0a09ff0b0a09ff0b0a09ff0c0a09ff0f0e0cff0f0e0cff0f0e0cff0f0d0bff0f0e0cff100e0cff0f0e0cff110f0dff100f0dff100e0cff100e0cff100e0cff12100eff141110ff13110fff181512ff28231fff342d28ff332d2752311207423112073f3113075332130859331408342f1106322f1206242d10056752281481582c1876552c1975552b185c3f1b0b613b1c0b643719097a32180a5c51261141471e0cff27211eff2e2823ff241f1cff24201dff221e1bff221e1bff1e1b18ff201c19ff201c19ff1f1c19ff1f1b19ff211e1bff201d1bff211e1bff221e1bff24201dff25211eff23201dff23201dff25211eff282421ff2a2622ff2c2724ff2a2623ff292522ff292522ff292522ff282421ff282522ff282421ff282522ff2c2824ff2c2824ff2a2622ff2b2723ff2b2724ff2c2825ff2d2926ff2e2a27ff2d2926ff2d2926ff2c2825ff2b2624ff2c2724ff2c2724ff2c2724ff2d2824ff2b2825ff2c2826ff2a2824ff2a2824ff2b2824ff2a2724ff2a2724ff2a2723ff2d2825ff2c2824ff2c2824ff2c2824ff2e2926ff2e2a26ff2b2723ff292621ff2a2622ff2b2723ff352e29ff362f2aff342e28ff2f2a25ff2f2b26ff36312cff3c3630ff342e2aff332e29ff342e29ff2b2723ff292421ff2a2622ff2a2522ff2b2723ff2d2926ff2b2824ff292723ff2b2825ff2b2825ff2d2a26ff2e2b27ff2e2b27ff2e2a27ff2b2824ff2b2724ff2b2623ff2b2623ff2b2724ff2b2723ff2a2723ff292622ff282521ff292521ff2a2521ff2b2522ff2d2824ff2c2722ff2b2622ff2a2521ff2a2522ff292520ff282420ff292521ff2e2924ff332d28ff332d28ff2b2722ff2c2621ff2b2621ff2f2924ff292420ff302b27ff332d28ff312b26ff2c2722ff2b2722ff2c2722ff2d2723ff2c2722ff2f2925ff2e2824ff2d2823ff2e2823ff302b25ff322b27ff312b26ff2f2925ff2e2925ff322c27ff302a26ff302a26ff2f2a26ff302a26ff2f2a26ff2f2925ff2c2723ff2e2924ff2e2824ff2e2924ff312b27ff312c27ff302a26ff2f2a25ff302b26ff302b26ff322d28ff332e28ff342e28ff342e29ff352f29ff312b26ff302b25ff292520ff221f1bff221e1bff211d1aff221e1bff231e1bff221e1aff211c19ff211d19ff241f1bff28231fff2e2723ff2c2621ff2b2520ff2a241fff2a2420ff2a2420ff29231fff28231eff27221eff28231fff2b2521ff29241fff27211dff211e1aff1d1a17cd1f16114e2c1308401f0e053c220f0634240f05443517096b3c1d0d4d35170a5a38190a5636180a5a311408492910063a28100648281006522910063e270f0531290f05342b100586261710ff1b1815ff110f0dff110e0cff100e0cff0e0c0bff0c0a0aff0d0b0aff0c0b0aff0c0b09ff0c0a09ff0c0a09ff0c0b0ab1331a0c9443200d436f311040753513ff100d0bff100d0bff110e0cff110e0cff120f0dff120f0dff120f0cff120f0cff120f0dff120f0dff110e0cff120f0dff13100eff13100dff12100dff14100eff14100eff15110fff26211dea362c26793b1b0d7c3b1c0e5e36170b7c38190d4f34160a6636180c5834160a4c32140971532815795529176e532816835a2d189342211052351709662f15084f3317093e39190bfd1c1815ff2a2521ff27221fff27221eff26211eff161411ff2c2721ff2d2825ff2c2824ff2c2824ff2b2723ff2c2824ff2c2824ff2a2622ff2c2824ff2d2824ff2c2724ff2a2622ff2c2824ff2c2824ff2d2925ff2e2a26ff1c1816ff1b1815ff1b1715ff191614ff191614ff191614ff191714ff191614ff1c1915ff1d1a17ff1f1c18ff1e1b18ff1d1a17ff1c1916ff1c1815ff1d1916ff1e1a17ff1e1b18ff201c19ff201d1aff201d1aff201c19ff1e1b17ff1e1a17ff1d1a16ff1c1916ff1c1916ff1c1916ff1c1916ff1c1916ff1b1815ff1b1815ff1b1815ff1b1815ff1a1714ff1a1714ff1b1715ff1a1714ff191613ff1a1714ff191613ff191613ff191613ff312a25ff3c352fff36302aff332d28ff342e29ff39332dff2e2925ff322c27ff322c27ff171513ff191714ff12110fff13110fff141210ff161412ff161413ff161413ff151412ff151312ff161412ff181514ff191816ff1b1a18ff1c1b1aff1c1b19ff1c1a19ff1b1918ff1c1a18ff1c1917ff1c1a18ff1c1918ff1c1917ff1c1917ff1b1815ff1a1714ff1b1715ff1a1614ff1a1714ff1a1815ff191714ff191613ff191613ff191613ff1a1714ff2d2824ff28231fff2e2924ff2a2521ff2a2520ff2a2521ff302b26ff28231fff2c2622ff2a2420ff241f1bff171412ff161411ff171412ff161412ff171512ff171512ff161411ff181513ff181413ff171412ff171513ff181513ff181513ff181613ff171513ff161412ff161311ff151211ff13110fff13100fff12100eff12100eff12100eff13110fff13110fff13110eff12100eff110f0dff110f0dff110f0dff13110fff151311ff161512ff171613ff181614ff181614ff191614ff181412ff181513ff181513ff171513ff181513ff191614ff292522ff292522ff282320ff282521ff272320ff272420ff26211eff25221fff25221fff25211eff24211eff24211eff24211eff26221fff2d2925ff221d19ff25201cff27211eff231e1aff100e0dff1d191658281108562e1509361e0d0434210e055830160a5c391a0b4f3517095535170a4635170965381a0b7632150a8334180c5b2f1409682f14084c2d13086231150a4f3114083f301307ff221f1bff15110eff13100dff13100cff12100dff13100dff120f0cff110f0cff120f0cff120f0c74602e104277340f467c3915427c39143e76341245763312407b3714ff221e19ff221e19ff221e19ff221e19ff221e19ff221e1aff221e1aff221e1aff231e1aff231e1bff241f1bff231e1bff221d19ff211d18ff201c18ff221e19ff221e19ff221e19ff221e19ff2f2a24843e1c0e8d3f1d0e753b1a0c6e38180c6537180c6234160a4a3215095b33160a6053271368532715795b2d199061321c6c401e0c5636180a8232180a552c1407422c13083c261006ff231f1cff25201cff27221eff27231fff1c1916ff1a1715ff1c1916ff1d1a17ff1e1b17ff1f1b17ff1f1b17ff1f1c18ff1f1c18ff201c18ff201c18ff211d19ff201d19ff201d19ff211e19ff211e19ff211d1aff211e1aff211d1aff211e1aff221e1aff231f1bff221f1aff221f1aff221f1aff221e1aff221e1aff221e1aff28221eff342d28ff37302aff38312bff39312bff38312bff1f1c18ff211d18ff221e1aff231e1aff231e1aff231f1aff241f1aff241f1aff241f1aff241f1aff241f1aff231f1aff231f1aff231f1aff231f1aff231f1aff231e1aff231e1aff231e19ff221e19ff221d19ff201d18ff211d19ff211d19ff201d18ff201d18ff26221dff37322cff342e29ff332e28ff342f29ff39342eff38332dff2f2a25ff2e2824ff27231fff1c1814ff211c18ff211c18ff211d19ff221d19ff211d19ff211d18ff211d18ff211d18ff211c19ff221e1aff221e1aff221e1aff221e1aff231e19ff221e19ff231e19ff231e19ff231e19ff241f19ff231f19ff1f1b18ff241f18ff251f18ff272019ff272019ff272018ff251f18ff241e18ff251f18ff221d16ff211c16ff201c16ff201b16ff181613ff24201dff292420ff1a1815ff292420ff292420ff302a25ff1d1a17ff2e2923ff2e2924ff1c1814ff1d1915ff1e1a16ff1e1916ff1d1915ff1d1915ff1d1915ff1e1915ff1e1915ff1e1a15ff1d1a15ff1e1a15ff1d1a15ff1e1a15ff1e1a15ff1e1a15ff1e1a15ff1d1915ff1d1915ff1d1915ff1d1915ff1d1914ff1c1814ff1b1814ff1a1714ff1c1814ff2f2924ff2b2621ff2c2721ff2d2822ff2d2822ff2b2721ff1c1915ff1c1915ff1c1915ff1c1915ff1c1915ff1c1915ff1c1915ff1c1915ff1c1915ff1b1915ff1b1815ff1b1814ff1b1814ff1b1714ff1a1714ff1a1714ff1a1714ff1a1713ff191713ff191713ff191613ff191613ff191612ff181612ff181512ff171412ff181512ff221d19ff221d19ff201c18ff29231fff1d1915c91e1510562c1409481a0c04471d0d0545220f056136190a713b1c0d5437180a43341608362f1307663316098435170b6d32160a673015095b2e13085f2f1308422f130753311409c42c2018ff1a1613ff1b1713ff1c1814ff1a1613ff1b1713f71c17136c38190a4f56230a557f3c144b7c37134f813a154f80391649823d184c833c16397e3912397c3711417f3a16ff201d19ff201d19ff211d19ff211d19ff211d19ff211d19ff211d19ff211d1aff211d1aff211d1aff211e1aff221e1aff231e1aff221e19ff211d19ff211d19ff211d19ff211d19ff231f1bff201c18ff332c27793f1c0e703d1c0d6f3b1a0d3e311308483215093f3013083e2f13085634160a7b5c2e179967361d9966351e865027157f3e1e0e70331809622d1508502b130748281207ff1b1815ff25211eff2a2521ff27221fff26211dff27231fff191715ff1b1815ff1b1916ff1b1916ff1c1916ff1d1a16ff1d1a16ff1d1a17ff1e1b17ff1e1b18ff1e1b18ff1e1b18ff1f1b18ff1f1b18ff1f1c18ff1f1c19ff201c19ff201d19ff201d19ff211d19ff211d19ff211d19ff201d19ff201d19ff201d19ff201c19ff26221eff302b27ff332f2aff332e29ff352f29ff38322bff27221eff211d19ff211d19fb221e1aff221d19ff221d19ff221e19ff221e19ff221e19ff211e19ff221e19ff221e19ff221e19ff221e19ff221e19ff211e19ff211d19ff211d19ff211d19ff211d18ff221e19ff221e1aff211d18ff201c17ff1f1c18ff1f1c18ff201d18ff37312cff352f2aff1d1916ff35302aff39332eff38322cff2f2924ff2f2924ff2a2622ff191714ff1f1c18ff1f1c18ff1f1c18ff1f1c18ff1f1c18ff201c18ff201c18ff201c18ff201d19ff1f1c18ff1f1c18ff1f1c18ff1f1c18ff1f1c17fe201c19ff1f1b17ff1f1b18ff1f1c18ff1f1b18ff1f1b18ff201c19ff1f1b17ff201b17ff1f1b17ff1e1a16ff1e1a16ff1d1a15ff1d1915ff1d1915ff1d1914ff1c1814ff1c1814ff1b1814ff1a1714ff27221fff282420ff1a1715ff2a2521ff282420ff2f2a24ff2d2824ff2f2923ff2f2923ff1c1915ff1c1915ff1c1914ff1c1915ff1c1915ff1c1915ff1d1916ff1d1a15ff1d1a15ff1d1a15ff1d1a15ff1d1a15ff1d1a15ff1d1a15ff1d1a15ff1d1a15ff1d1915ff1d1915ff1d1a15ff1d1a15ff1d1a15ff1d1a15ff1d1a15ff1d1a15ff1d1a16ff1b1714ff302b25ff2f2b25ff2f2a24ff2e2923ff2e2823ff2c2722ff1b1815ff1b1815ff1b1815ff1b1815ff1b1815ff1b1815ff1b1815ff1a1715ff1a1715ff1a1715ff1a1714ff1a1714ff1a1714ff191714ff191714ff191614ff181613ff181613ff181512ff171512ff171512ff171512ff171412ff171411ff161411ff161311ff24201bff12100eff1e1a17ff1d1916ff12110fff1d191550271106512f140853160a04541c0d05512510066835180a6336180a4231140848331509473215087a36180b6b34170a6332160a3a2a1006432c1207422d12072c2b1006412f1207ff1f1b17ff191612ff1a1713b026170f4e3f1b095258280e6f7039166d763915517a3813597f3a13678a431651823a154c7f381455853f195289441d4e843d174a7e3a143b783511ff24201cff231f1bff231f1cff24201cff24201cff24201cff24201cff24201dff25201dff25201dff25211dff25211dff231f1bff25211dff25211dff25211dff26211dff25211cff2e2823ff23201cff332d27773f1d0e6c3e1b0d5a37180b343113084633160a4a30140951311509332e1207655027125e592a148669371c78602f188143200e6236180866311608692a1307572a130870211109ff221e1bff2a2520ff26221fff27221eff1d1a17ff161412ff1e1b17ff1f1b18ff1f1c19ff201c19ff201d19ff211d19ff211d19ff201d19ff211d1aff211d1aff221e1aff221e1bff231f1bff231f1cff231f1cff231f1cff231f1cff23201cff241f1bff241f1bff241f1cff24201cff24201bff231f1cff231f1cff211d1aff2e2925ff332e29ff342e29ff36302bff36302bff38322cff24201bff25201cff2e2823ff25211cff25211cff25211dff25221dff25221dff25221dff26221eff26221eff26221eff26221eff26221eff25211dff25211dff25211dff25211dff25211dff23201bff211e1aff24201cff24201bff23201bff23201bff23201bff38322dff352f29ff1f1b17ff332e29ff37322cff38322cff302a25ff322c27ff302b27ff1d1a16ff221f1aff221f1bff231f1bff231f1bff221f1bff23201bff23201bff23201bff201d19ff231f1bff231f1bff23201bff231f1bff221f1bff211e1aff221f1aff221e1aff221f1aff221e1aff231e1aff201c19ff221d19ff221d19ff211d19ff211d18ff211d18ff211d18ff201c18ff201c17ff201c17ff1f1c17ff1f1b16ff1f1b16ff201c19ff282420ff282420ff211d1aff2b2521ff2c2722ff332c26ff2e2925ff2e2722ff141210ff1f1b17ff1f1c17ff201c18ff201c18ff201c18ff201d18ff221e1aff201d18ff211d18ff211d18ff211d18ff211c18ff201c18ff201d18ff201d18ff201d18ff201d18ff201d18ff201d18ff201d18ff201c18ff201d18ff211c18ff1f1c17ff1d1916ff27221eff302a24ff302a25ff302a24ff302a24ff2e2923ff24201bff1e1b17ff1e1b17ff1e1b17ff1f1b17ff1e1b17ff1e1b17ff1d1a17ff1d1917ff1d1917ff1c1916ff1c1916ff1d1916ff1d1916ff1c1916ff1c1916ff1b1916ff1b1915ff1b1815ff1b1815ff1a1714ff1a1714ff1a1714ff1a1714ff191614ff191613ff0d0b0aff27221eff211c19ff1d1a16ff26211cff1e1a17fd1c18154f2e14084f230f0656160a04581b0d056233170a6937190b5435170949331508523517096a33160a6e35160a66311509352b1106392c1207402c11073d2c11072f2e1207a32c1c146c3c1a0a664e230d7453240e7b54260f775a2a117265301373783b187984401867813c1460833d14537e371459813c1650833b174b823d195187441c50803b164578341238753210ff25201cff24201cff25211dff25211cff25211cff24211cff25211cff25211cff26211dff26221eff27221eff26211dff231f1bff27221eff27221dff26221dff26221dff26221df326211dff24201cff24201bd233261f77431f0f6e3c1b0d5236170b38311408343013085a33160a6735170b5e37190b6b6232186b6030177d613019764a23124f38190b65331708672c15075126110842271207ff1d1917ff25211dff24201cff24201cff211d1aff1c1917ff1e1b17ff1e1b17ff1e1b18ff1f1c18ff1f1c18ff201d19ff211d19ff211d19ff221e19ff221d1aff221e1aff231f1aff221f1bff221e1bff221e1bff221f1bff221f1bff231f1cff24201bff24201bff24201bff24201bff231f1bff231f1bff231f1bff221e1aff2c2723ff332e29ff332c28ff342e29ff342e29ff36302aff231f1bff24201cf325211cff25201cff25211cff24201cff24211cff25211cff25211cff25211cff25211cff25201cff25201cff25211dff25201cff25201cff25201cff24201cff231f1aff231f1bff211d19ff231e1aff231e1aff231e1aff221e1aff221e1aff28241fff352f29ff23201cff312c27ff38322dff37312bff352f2aff39342fff35302bff1c1815ff211e19ff221e1aff221e1aff221e1aff221e1aff221e1aff221e1aff221e1aff201d19ff231e1aff231f1bff231f1bff23201bff231f1bd01f1c18ff231f1aff231f1bff221e1aff231e19ff231f1aff1f1d18ff231f1aff231f19ff231f18ff231f19ff241f1aff241f19ff241f19ff231e18ff221d17ff221d17ff211c16ff211c16ff221d1aff27221eff292521ff23201dff2d2722ff312a25ff312b25ff2d2824ff2c2621ff1f1a16ff1e1b17ff1f1b17ff1f1b17ff201c17ff201c17ff201c18ce1c1915ff201b18ff211c18ff221c18ff211c18ff201c17ff201c17ff1f1b17ff201c18ff1f1b17ff1f1b17ff1f1b17ff1f1c17ff1e1b17ff1e1b17ff1f1b17ff1f1b17ff1f1b17ff1d1916ff2d2722ff2f2924ff2f2923ff2f2a24ff2e2823ff2d2722ff15120fff1d1a16ff1d1a16ff1d1a16ff1c1916ff1d1a16ff1d1916ff1c1916ff1c1915ff1c1915ff1c1915ff1c1814ff1c1814ff1b1815ff1c1915ff1b1815ff1b1815ff1b1815ff1b1814ff1a1714ff1a1614ff191613ff191712ff191612ff181512ff181511ff0d0c0bff040403ff1e1a17ff201c19ff28241fff1d19154a210d05482c1207520f0702491308034a1c0d055e361709553516095636170a4534160963391a0b6d36180b7834170a582f140927280f05372a1106413314056845200c5a441e0a7c4e240f744d220d674e220d5e4f210d7056260f775d2b126c68311372783a166d7e3b15587f3b134e7c3712617e3914547d3915467b36133a7c3814497d36124d7e3c16427735133a702e0fff25201cff24201cff25211dff25211dff25211dff25211dff25211dff26211dff26221dff27221dff28231eff26211dff231f1bff28231eff28231eff28231eff27231dff27221dff26211dff25211dff25211cff312a257e44200f67401e0d80421f0e5735160a5835170a402f13086836180b83391a0d615f2f166a6333185c5d2d158265331b8943210f4d3316075c2a120753220f053f241006bc1f140eff26211eff302a24ff25201cff26221dff29241eff151210ff1e1a17ff1f1b17ff1f1c18ff201c18ff211d19ff211e19ff221d19ff221e19ff231e1aff231e1aff221f1aff221e1aff231f1cff231f1cff231f1cff231f1bff231f1bff231f1bff241f1bff24201bff241f1bff231f1bff231f1aff231f1aff231e1aff292420ff312b26ff312c26ff322d27ff322c27ff332d27ff231f1bff24201cff25201cff25211cff25211cff25211dff25201cff25211cff25211cff25211cff25201cff25211dff24201bff25211dff25211dff25211cff25201bff25211bff24201bff231f1bff201d18ff231f1bff231e1bff231e1bff231f1aff221e1aff332d27ff342d28ff181411ff302b26ff342f29ff36302aff2f2a25ff342e28ff12100dff1c1814ff221d19ff221e19ff211e19ff211e19ff221e19ff221e19ff221e19ff231e19ff211d1aff231e1aff221f1bff231f1aff221f1aff221f1aff231f1aff231e1aff221e1aff221e19ff231e19ff231f1aff1f1c18ff231f19ff231f19ff231e18ff231e19ff231f19ff241f19ff231e18ff221e18ff211c17ff211c17ff221c17ff211c17ff221d1aff28231eff27221eff201c1aff2a241fff2c2520ff2f2823ff2c2722ff2b2620ff1f1b16ff1e1b16ff1f1b17ff1f1b17ff1f1b17ff201c17ff1f1b17ff201b17ff1f1b17ff201b18ff201c18ff201c18ff201c18ff201b17ff201b18ff201c18ff1f1b17ff1f1b17ff1f1b17ff1f1b17ff1f1b17ff1f1b17ff1e1a16ff1f1b17ff1f1b17ff1d1a16ff2c2722ff2f2923ff2d2822ff2e2823ff2d2722ff2d2722ff1d1915ff1d1915ff1d1916ff1d1915ff1d1916ff1d1916ff1d1916ff1d1915ff1d1915ff1d1915ff1d1915ff1b1915ff1c1915ff1c1815ff1c1815ff1b1815ff1b1815ff1b1814ff1b1714ff1b1714ff1a1713ff191613ff191713ff191613ff181612ff12110eff2a2420ff191513ff201b18ff1f1b18ff1a1614ff1c1815482610065b281107610c0502481007026d381b0c6537190b5637180a5f38190b5b37190b8134180b633116087431160968311608643517095a3819095a3d1b0a71431f0d7d49210d774d240f694d230d6b4b200c674d220d5953250f65622e126d6c34146870341360753613587837145b793813597c3813597e3813587a3714427a3511457d37123a74300e4b7a37123c773310ff25201dff25211dff26211dff26221dff26211dff26221dff26221dff26221eff26221eff26221eff27221eff26221eff23201cff28231eff28231eff28231eff28231eff27221eff27221dff26211dff25211dff25201cd63428215e3d1a0c553b190b533817094d331509413214093c2f13087c381a0c493417095e5e2e16665c2c158965341c64431e0d643b1b0c5e2b130740200e056125110851251006ff1d1917ff24201cff241f1bff24201bff171512ff191714ff1d1a16ff1e1a17ff201c18ff201c19ff211d19ff211d19ff221e19ff221e1aff221e1bff231f1bff241f1bff231f1bff231f1bff24201bff24201bff24201bff24201cff241f1bff24201bff241f1bff241f1bff241f1bff231f1aff231e1aff221e1aff211d19ff2f2a24ff302a25ff322c26ff302b25ff312c26ff26211cff24201cff25201cff25201cff24211cff25211cff25211cff25221dff26221dff26221cff25211dff25211dff26211dff26211cff26201cff26211cff25211cff24201cff24201bff231f1bff211d19ff23201bff241f1bff231f1bff231e1bff221e1aff27231fff312c27ff2d2823ff2d2823ff322c27ff352e29ff221e1bff342d28ff191714ff1b1714ff221e1aff221e1aff221e1aff221e1aff221e1aff221e1aff221e1aff221e1aff211e19ff221e19ff221e1aff231e1aff231e1aff231e1aff231e1aff231f1aff221e1aff221e19ff221e19ff231e1aff1f1c18ff231e19ff231f19ff231f19ff231e18ff221e18ff221d18ff221e18ff211c17ff211c17ff211c17ff211c17ff211c16ff1f1b16ff28231eff26221eff25201bff26201cff28221dff25211dff2c2621ff28231dff1e1b16ff1f1a16ff1f1b17ff1f1b17ff1f1b17ff201b17ff1f1b17ff1f1c17ff1f1b17ff201c18ff201c18ff201c18ff1f1b17ff201c18ff201c17ff1f1b17ff201c17ff201c17ff1f1c18ff201c17ff1f1b17ff1f1b17ff1f1b17ff1f1b17ff1e1b16ff1a1613ff2b2620ff2a251fff29241fff292420ff2b2621ff29231fff1d1a15ff1d1a16ff1e1a16ff1d1a15ff1d1a15ff1d1a16ff1d1915ff1d1915ff1c1915ff1c1915ff1c1915ff1c1915ff1c1815ff1c1814ff1c1814ff1c1815ff1b1814ff1b1715ff1b1714ff1a1714ff1a1713ff1a1713ff1a1713ff191612ff181512ff040303ff0d0b0aff201c18ff1f1b17ff211d1aff191613791c0e08542610064a0904015c0a0502540d06027237190b5c38190a563718096237180a6c391a0c602610067e2d160878301609613217094b31150753381909633d1b0a7c431f0d7d47210d6d48220d5948200d4e49220d604a220e6657281161622c115a6a2f125f6f3212547335144f7a3b1850793814517634114573300e44793511497935124c7834124a783411487b37144a7a3713b525211ca225211d8124211dbb25221d9a25211caf25211cab25201c6925201c7525211c6825211c8e25211cbe25211dff24201ca425211d8925211daa26211dae26211dc726221d7925211d9926201d9025201cb525211df22d2723443715083b341408483716094b371609583616096336170a7d3a1a0c7a391a0c5a5c2c155d572814775f2f19635c2c168743200f612c130757200e055f2310076b271208eb181310ff25211dff26211dff26211dff26211dff332d27cb1b1715d5201c187f1f1b18a5201c199d211d19c8221e1afb231e1ac8221e1ad4221f1be2231f1bf2241f1cda24201cf724201cff25201ca023201bc725201bda25201c9624201bb124201bde24201bd024201bcc24201b80231f1a8e231f1a8d231f1ac1221f1aff2b2621ff2c2722ff322c26ff312b25ff312b25ff302a248d241f1bc025221cab25211dee26221df927231ef626231eef27231ef328241ffe28241fb327221edd27231fe627231f9826221ec627231ed727221edc26221ee027221e8325211cc924201cff201c19d727231def27221ed726211dab25211dd626211dff26221eff302b26ff2d2823ff302b25ff352e28ff37302aff2d2721ff312b25ff191613f3181613e725201bb925201bdf25211cd625221dda26221da225211da525211de927231dfc211d1ab525221de426221db325211ddd25221de725221dfd26221efc26211dfe27221ed025211ce525201dd124201cff201c18ca23201bdc24201c98231e1a97231f1ad8231f1ad0221f19a6211e18e2221e19bb211d19b9211c18bf201c18e1211d18ff211d19ff25201cff26221eff25201cff27211dff27211cff25201cff2a2420ff1c1815c8221d19c2201c18b6201c1879211d18ae221e19d2221e19c7221e19aa231f1a9e221e1ade231f1acb231f1a8d221e19ab221e19aa221e1adc231f1af8231f1bea231f1ad4221f1af6231f1afd231f1b8b211e19af211d19cc221e1994211d19a0201c18ff1e1b17ff26221dff25201cff29241fff29241fff28231fef13110ebd1f1c17ae1f1c178b1f1b17991f1b17bd1f1c18cf201c187e1f1b17ab1f1c18a01f1c17d41f1c18eb201c18dc1f1b18c81f1b18e61f1b17c21f1b17e71f1c17f01f1c177b1d1a15861d1915b21c1916ab1c1916791c1814b21c1815a11b1814ae1b1714ff25211cff0c0a09ff1e1916ff1e1a16ff080807ff1a171448220d045d2610074b0804015b0a05017634190c5533170a68391a0b67391a0b6738190b7130160a64220f0654291306632d1407522f1507513217084a341608683b1a0a75401d0b8147220e6445200d51461f0b554b230d594e230d615a290f5e642c1052652a0d4e692c0d4b6d2f10557434145479391650773713637d3b175f79371549773310427531103531130431280e0336280f048f25201c9425201c9724201c8f24201b9f25211c9525211d9626221d7e26221d5f26211d7726211d7f26211da826211dff23201c8825211c7a25211c9225211c9125211ca826211c7e26211d9625201c9d24201ca124201ca524201cff342e29343615085d3a180a4a371609523716096939190b6038180b733b1b0c593d1b0c595c2d165f5c2d166b5d2d1775421e0d6b34180a59210f05531f0d05812713097e251107ff211d1aff24201cff26211dff231f1aff1a1614ff151311aa1d1a16761e1b179a1f1b18a11f1c18a3201c18a7201c18b7211d1999211d19a0211d1ab2221d1aa5221d1aac221e1ac0231e1a8d231f1a94221e1a91221e1a97231e1a8d231e1aa6231f1a97221e1997211e1977221e1960221e197f221d198d211d19ff2b2621ff322d27ff322c26ff332d28ff322c25ff312c2477231f1a9e24201b9924201ca825201cb425201c8e24201ba424201cb525201cba25211d9725201c9624201c9424201c9a24201c8f25201c9f24201c9524201c9924201c6a24201cae241f1bff201c1888241f1b8f241f1b89231f1b81231f1b92221f1ad32a2420ff332e28ff332d28ff2f2a24ff312b26ff332d29ff2e2823ff2f2923ff302a24ef16141193221e199723201a9923201b9423201b94231f1b61231e1a7f221e1a99231e1af6201d198f221f1aa0231f1b7a221f1ba9231f1bb0231f1bc1221f1baf221f1ac4221e1a96221d1a99221e1a99221e1aff201c1896221e199a211e1963211c187d211d189e211d188d201c1792201c17a0201c17911f1c17a2201c17a91f1b17ab1e1b16ff211d19ff25201cff24201cff27211cff27211cff241f1bff201c18ff24201bff29231e9a201c18a51f1b17a01f1b177f201c1791201c1798201c178f211d187b211d1895211e199c221d19a5221e1980221e19a3221e199a221e19ae221e1abb221e1a8d211d19ad211d19bb211e19b6211e1998211d199c211d1897211d189a211d1794201c17ff28241eff26221dff25211cff27231eff24201cff24201b901e1a16891e1b16871e1b17841e1b16901e1b17a21e1b17971e1b17951e1b179e1e1b17a11e1b17a11e1b17b71e1a179d1e1a17a31d1a17b21d1a16a61d1a16b61d1a16b81d1a168e1d1916991d1a168d1d1916981d19158f1c1915a61c18148a1c1814d70a0908ff1b1815ff1e1916ff1d1916ff27221dff1a1714ba1c120d6b2711075b080401450703014b0a04016437190a6d3a1b0b7c3b1c0d75381a0b6836170a49200c0454200e04572711064d2a1206502d13074c30140666371809693e1c0b79451f0d65431d0b3f441d0a45481f0a4c4e210a4f57250c59672e1157682e123e652c0f57672e114a6c301150652c0e4d642b0e4528100441270f0444270f0445280f044829100450291005522a1005432b1105ff221e1aff231e1aff221e1aff221e1aff221e1aff231e1aff221e1aff221e1aff221e1aff221e1aff221e1aff221f1bff231f1bff231e1aff221f1aff221e1aff231e1aff231f1aff231f1bff221f1bff231e1bff221e1aff221e1aff2a252147361509613c190b5d39170b5b39180a613a190b6a3b190b6a3a190b633b1a0b62602f17615d2d16696331187a5f301880401f0f57200e0564210f066c2210079326130aff201c19ff26211eff24201bff241f1bff211d19ff211e19ff1a1714ff1c1815ff1c1916ff1d1916ff1d1a16ff1e1a17ff1e1b17ff1f1b17ff1f1c18ff201c18ff201c18ff201c19ff201c19ff201d19ff201d19ff201d19ff201c19ff201d19ff201d19ff201d19ff201d19ff201d18ff201c18ff1f1c18ff1f1b18ff211d19ff2f2925ff312c26ff312c26ff2f2924ff312b25ff161311ff211d19ff211e19ff221d19ff221e1aff221d1aff221d1aff221e1aff221e1aff221e1aff211d1aff201d19ff211d19ff211d19ff211d19ff211d19ff201d19ff201d18ff221e19ff211d19ff201c18ff1f1c18ff1f1c18ff1f1c18ff1f1b17ff231e1bff312c26ff312c26ff2e2824ff302a25ff302b27ff2c2723ff2c2722ff2d2723ff1c1816ff1d1916ff1e1a17ff1e1a17ff1e1a17ff1e1a17ff1e1a17ff1e1a17ff1e1a17ff201d19ff1e1a17ff1e1a17ff1e1a17ff1e1b17ff1e1a17ff1e1a17ff1e1a17ff1d1a16ff1e1b16ff1e1a16ff1d1a16ff1f1c18ff1d1916ff1d1915ff1d1915ff1c1815ff1c1814ff1c1814ff1b1814ff1b1814ff1a1713ff1a1713ff1a1712ff1a1612ff201b17ff231f1bff201d19ff28221dff26211cff241f1bff181613ff25201bff29231dff1b1813ff1c1814ff1d1915ff1c1914ff1c1814ff1d1915ff1d1915ff1d1a15ff1d1a15ff1d1915ff1d1915ff1d1915ff1d1915ff1d1a15ff1d1915ff1d1915ff1d1915ff1d1916ff1d1916ff1d1916ff1d1a16ff1d1a15ff1d1915ff1c1815ff1b1714ff26221dff24201cff25211cff24201bff231e1aff231f1bff1a1713ff1a1713ff1a1713ff1a1714ff1a1814ff1a1814ff1a1714ff1a1714ff1a1714ff1a1714ff1a1714ff1a1614ff1a1614ff191613ff191613ff191613ff191613ff191613ff191513ff191513ff181512ff171512ff171412ff171411ff171411ff0f0d0bff040403ff1d1915ff1c1815ff090807ff1b171456210e055f25110742070301410703016425120864361a0b6738190a73381a0b753a1b0b7432170a5f1d0c0467271106532d1407482f13066436170959381809513918085c3e1b095c421c0a5a48200c644f240d6852270f6856280f5051220c615f2d114b431c094a291104402910053f291004452910044828100440270f043f280f04412b11049d25140c9d28160dff1b1815ff1b1815ff1b1815ff24201cff24201cff24201cff24201cff24201cff24211cff25211cff25211cff25211dff26211dff26221dff26221dff231f1bff26221eff27221eff27231eff27231eff27231eff27221fff28221fff27231fff26221eff27231eff27231eea3129216a3d1a0c673d1a0b693d1a0c5f3a190b643e1c0c74421f0e603a190b6d502612685f2d16605f2d167a64321a924321108730180a652511066b220f0567210f07761f1009ff25211dff28221eff201b18ff221d1aff25201bff14110fff1e1a16ff1e1b17ff1e1b17ff1e1b18ff1f1c19ff201c19ff201d19ff211d19ff221d1aff221e1aff231f1aff231e1bff231e1bff231e1bff221e1bff231e1bff231e1bff231e1bff231e1bff231e1bff231e1bff221e1aff221e19ff221d19ff201c18ff2b2621ff2f2924ff2d2722ff2d2722ff2f2924ff221d19ff231f1bff24201bff24201cff25201cff25201cff25201cff26211cff26211dff26211dff25211cff24201cff24201bff23201bff24201bff24201bff24201bff24201bff24201bff211d19ff231f1bff221f1aff221f1aff221e1aff221e1aff221e1aff302a24ff312b26ff25211cff2f2924ff302a26ff2a2521ff2c2723ff2c2722ff1b1815ff1f1b17ff1f1c17ff1f1c17ff1f1c17ff1f1b17ff1f1b18ff1f1b18ff1f1b18ff211d19ff1f1b18ff1f1b18ff1f1b18ff201c18ff1f1c17ff1f1c17ff1f1c17ff1f1c18ff201c18ff201c18ff201b18ff1f1c18ff1f1b17ff1e1a17ff1e1a16ff1e1a16ff1e1a16ff1d1a16ff1d1a16ff1c1915ff1c1915ff1c1914ff1c1814ff1c1814ff1f1a16ff221e1aff191613ff26211cff27211cff26211cff1e1b18ff24201bff0c0a09ff1d1915ff1d1915ff1e1a16ff1e1a16ff1e1a16ff1f1b16ff1f1b16ff1f1b16ff1f1b17ff1e1b17ff1e1a16ff1e1a16ff1e1b16ff1e1b16ff1e1a16ff1e1b17ff1f1b16ff1e1a16ff1e1a16ff1e1a16ff1e1a16ff1e1a16ff1e1a15ff1d1915ff1e1a16ff25201cff25211cff241f1bff241f1bff231e1aff14110fff1c1915ff1c1915ff1c1915ff1d1915ff1c1915ff1c1915ff1c1915ff1c1915ff1c1915ff1c1815ff1b1815ff1b1815ff1b1814ff1b1714ff1b1714ff1b1714ff1b1714ff1a1714ff1a1714ff1a1614ff191614ff191613ff191513ff181512ff100e0cff231e1aff1e1a17ff1c1915ff231e1aff1b1816e91a151154220e0657130803490703014006030165381a0b6f3a1b0c68391b0b813c1d0d803c1d0c732d1308592e14076a3619095f37180847381807463c1a0a573e1b0b563d1a0a66431f0c7c4b250f774b240d4b2e1206532f1406502911044e2810044b2810044927100546271004452910054b301306d3211812d2221912ff1d1a16ff1d1a16ff1d1a16ff1e1a16ff1e1a16ff1d1915ff1d1915ff1d1915ff2a2521ff28231eff28241eff29231eff28231eff27231eff28241eff28241fff28241fff28241eff29231fff27221eff231f1bff231f1bff27221eff28221eff28231fff28231fff27231eff27221eff26221eff27221eff27221dff26211dff27231e7639190d693c1a0b623a180b6e3d1b0d6339180b6e401c0d753d1c0e6f3b1a0c7c65321a7566331b6e643119835027137f4221105f2b13076a24100665200f07621e0e06ff231f1cff26211eff201b18ff201b18ff161311ff191613ff201c18ff221d19ff221e19ff221e1aff221e19ff231f1bff251f1bff25201cff27211cff26211cff27211cff26221cff26211cff26221dff26221dff27221dff28221eff28221eff28221dff28231dff28221dff28221dff26211cff26211cff25201bff2a2520ff2e2822ff2e2923ff2e2823ff2e2823ff2d2722ff27221cff28231eff28231eff29231eff27231dff28231eff28231eff28231eff28231dff28231eff27231dff27231dff28231eff27231dff27221dff27221cff27221cff26211cff211d19ff26211cff26211cff26211cff26201bff25201aff251f1aff2c2722ff312b26ff221d1aff2c2722ff312b26ff342d28ff2f2925ff2f2924ff26211dff211d18ff211d18ff221e19ff231e19ff231e19ff221e19ff231e19ff221e19ff221d19ff221e19ff221e19ff221e19ff221e19ff221d19ff221e19ff231e19ff231e19ff221e19ff231e19ff231e19ff201c18ff221d18ff231d18ff221e18ff221d17ff221d17ff221d18ff201b17ff201c17ff1f1c17ff1f1b15ff201b16ff201b16ff211c18ff231e1aff1a1815ff25201bff26211cff27211cff1e1b18ff241f1aff211d18ff211c17ff1d1915ff1f1c17ff211c17ff211d18ff211d18ff211e18ff211d18ff221d18ff221d18ff221d18ff221d18ff211d18ff211d18ff211d18ff221d18ff211d18ff221e18ff221e18ff211d18ff211c18ff211d18ff201c17ff1f1b16ff201c18ff27211dff28221dff27211dff25201bff221d19ff1e1a16ff1f1a16ff1e1a16ff1f1a17ff1e1a17ff1e1b16ff1e1a16ff1f1a16ff1f1b16ff1e1a16ff1e1a16ff1e1a16ff1e1a16ff1d1916ff1c1915ff1d1a15ff1d1a16ff1c1815ff1c1915ff1c1915ff1c1814ff1c1815ff1b1814ff1b1714ff1b1713ff040404ff0c0a09ff1c1815ff1b1714ff100d0cff1915124112070253180a0450080301480703014e190b0561371a0a823b1c0c733a1c0b70381a0b652f1406563014065e3117086b341809553116093d30150745351808512a12053b240e0436240e03392710043a2710043d27100448281004532b120553321506ff1c1915ff1d1b16ff1f1b17ff201b17ff201b17ff1f1b17ff1f1b17ff1f1b17ff1f1b17ff1f1b17ff1f1b17ff1f1b17ff1f1a16ff1e1a16ff1e1a16ff37322cff28241fff29241fff29241fff29241fff28231eff28231eff28231fff28231fff28231eff28231eff29241fff29241fff29241fff28231eff26211cff25201bff28231eff28231dff27221dff27221dff27221dff27221dff27221dff27221dff302a25783e1c0d703d1b0d643a190b683a1a0c5437170a613a190b6038190b795027147763311971612f197a64321a88421f0e56311608562510065d200e05581f0d06a01e140fff25221eff2e2722ff1f1a17ff1f1b17ff2c2722ff151310ff221d19ff221e1aff231f1aff231f1aff24201bff25201cff26221dff27221dff26221dff27221dff27221dff27221dff27221cff27221dff28231eff28231eff28231eff29241fff29231eff28221dff28221dff27221cff27221cff27211cff27221eff2d2823ff2d2722ff2d2722ff2e2823ff2e2822ff27221dff28221dff29241eff29241eff29241eff29241eff29241eff29241eff29241eff29241eff28231eff29241fff28231eff27221dff27221dff26221dff26221dff27221dff231f1bff221e19ff26211cff26211bff26211bff26211bff25201bff2f2924ff312b25ff221d19ff2d2722ff302b25ff322c27ff2f2824ff2f2924ff25201dff211d18ff221e18ff221e19ff221f19ff221e19ff231f19ff241f1aff231e19ff231e19ff231e19ff221e19ff231e19ff231e19ff231e1aff231f1aff221e19ff231f19ff231e19ff221e18ff221d18ff1f1b17ff231d18ff231e19ff221d18ff221d18ff211d18ff211c18ff201c17ff1f1b17ff1f1b16ff201b16ff201b16ff13110fff231d19ff231f1bff1e1b18ff25201bff26211bff29221dff1f1b18ff241f1aff1f1b16ff211d18ff1e1a16ff211d18ff221d18ff221d18ff221d18ff221e18ff221e18ff221d19ff221d18ff221e18ff221d18ff221d18ff221d18ff221e18ff221e18ff221e18ff231f19ff231e19ff221e19ff221e18ff211d18ff211c17ff1d1915ff26201bff28221dff26201cff241f1bff231e1aff221d19ff1e1a15ff1e1a16ff1e1a16ff1e1b16ff1e1b16ff1f1b16ff1f1c16ff1f1a15ff1f1c16ff1e1b16ff1e1a16ff1e1a16ff1e1a16ff1d1a15ff1d1915ff1d1a15ff1e1916ff1d1915ff1d1915ff1c1915ff1b1815ff1c1914ff1c1814ff1c1814ff1a1612ff25201cff1a1614ff1c1815ff1f1b17ff191512ff191512651007036d0e06034f08030140070301703b1d0c6535170a6e37190a66371a0a471709035f190b0352220e045c220e0442260f0440260f0444260f0445250f0441260f0340270f038624130a8229150aff1e1a16ff1b1814ff1b1815ff1e1a16ff1f1b16ff1f1b16ff201b17ff201c17ff201c18ff1f1b17ff201b17ff201b17ff201b17ff201b17ff201c17ff1f1b17ff1e1a16ff1e1a16ff1e1a16ff1d1915ff312d27ff3a332dff29241fff29241fff29241fff28241fff28231fff29241fff29241fff28231fff29241fff29241fff29241fff29231eff29231eff28231eff29241fff29241fff28231eff28231eff28231eff27221eff27221eff27221dff27221dff28231f8e391d11713d1b0d6339190b663a1a0c53361709523516095a36170a5737170a69612f177d64331a66602f16625328127d46220f5c26110666200e0573220f085c1c0c06ff221f1cff211d1aff1e1a16ff211c18ff0c0a09ff110f0dff221d19ff221e1aff241f1aff24201bff24201bff26211dff26221dff26221dff27221dff27221dff27231dff27231dff28221dff28221dff27221dff27221dff29241fff29241fff28231eff28221dff27221dff28231cff27221bff27211cff201c18ff292420ff2b2621ff2c2622ff2d2722ff2d2722ff201c18ff28221dff29231eff29231eff29241fff29241fff2a241fff29241fff2a241fff2a241eff2a231eff29231eff29231eff29231dff27221dff27221dff26221dff27221cff26221cff27221cff26221cff26221cff27211cff27211cff26201bff2e2823ff2f2a25ff15120fff2f2a25ff312b26ff302a25ff2e2824ff2e2823ff28221eff211d17ff221e19ff221e18ff221e19ff221e18ff221e19ff231e1aff231e1aff231e1aff231f19ff231e19ff231e19ff231e19ff221e19ff221e19ff231e19ff231e19ff221e19ff221e18ff221e18ff231d18ff221d19ff221d18ff221d18ff211d18ff211c17ff201c17ff201b17ff1f1b17ff1f1b16ff201a16ff1f1a15ff14120fff25201bff221e1bff1d1b17ff26221cff27221dff2d2721ff201d19ff241f1aff211c17ff211c18ff201c18ff211c17ff211d18ff211d17ff221d18ff221d18ff211d18ff221d18ff211d18ff211d18ff211d18ff221e18ff221e18ff231e19ff231e19ff231f19ff231e19ff221e19ff221e19ff221d18ff221d18ff211c17ff211b17ff241f1aff25201bff251f1bff231e1aff221d19ff221d19ff1e1a16ff1f1a16ff1f1a16ff1f1b16ff1f1c16ff1f1c17ff1f1c17ff1f1c16ff201c17ff1f1c17ff1f1c16ff1f1b16ff1e1b16ff1e1a15ff1e1a16ff1e1a16ff1e1a16ff1e1915ff1d1915ff1c1915ff1c1914ff1c1814ff1b1814ff1b1813ff030302ff14110fff1b1714ff1c1815ff1c1714ff1d19154f0803025b0a040153080401560803015e0904017e3b1d0d6f33180a5a3116095f311709633418097231150a692f14095d2c1208542b11074d291107522a10075e2b1107f71f1916ff1e1a15ff1e1a16ff1f1a16ff1e1b16ff1f1a16ff1e1b17ff1f1b16ff1f1b16ff201c17ff201c17ff201b17ff1f1b16ff1f1b17ff1f1b17ff1f1b17ff1f1b17ff1f1b17ff1f1b16ff1f1b16ff1f1a16ff1e1a16ff1e1a16ff1d1916ff312b26ff322d28ff2c2721ff2a2520ff2a2520ff29241fff29241fff2a2520ff2b2621ff29251fff29251fff29241fff2a241fff29241fff29241fff28231eff29241fff28241eff27221dff28231eff28231eff29231eff28231eff27231dff27221cff28221dff342d27703c1b0c6439190b6238180b5d37180a6f38190b6d36180b6938190b72683518726633186d6230186e623018773e1d0d50251005581e0d0562200f0669210f07dc1f1815ff231f1bff28221dff201b18ff201c19ff26211dff1c1815ff241f1bff24201cff24201bff25211cff27211cff27211dff26221dff26221dff28221dff28221eff28221dff27221cff28221dff28231eff28231dff29241fff29241eff29231dff29231cff28221cff28221dff28221dff28221cff26201bff28231fff2c2621ff2d2722ff2c2622ff2c2621ff211d19ff29241eff2a251fff2a241fff2b251fff29231eff2a241fff29241eff2a251fff29241fff29241fff29231eff29241eff29241eff27221dff27221dff27221dff27221dff27221dff27221dff27221dff27221cff27221cff27211bff26211bff151210ff302a25ff25201cff2f2924ff2f2924ff322b26ff2d2722ff2e2824ff26211dff211d18ff221e18ff221e19ff221d19ff221e19ff231e19ff231f19ff241f1aff241f1aff231e19ff221e19ff221e19ff221e19ff231e19ff221d19ff231e19ff231e19ff221d18ff221d18ff221d18ff231e19ff221d18ff221d18ff221d18ff211d17ff211c17ff211d17ff201c16ff1f1b16ff1f1a16ff201a16ff1f1a15ff1b1814ff25201bff201c19ff1e1b18ff26201bff26211cff221d18ff241f1aff1b1713ff201c17ff211c18ff201c18ff221d18ff221d18ff221d18ff221e18ff221e18ff221e18ff231e19ff221d18ff221d18ff231e19ff231e18ff241f19ff241f19ff241f19ff241f19ff221d18ff221d18ff221d18ff221d18ff221d17ff221d18ff16120fff221d19ff231d19ff231e1aff211d19ff201c18ff1f1b17ff1f1b16ff1f1b16ff1f1b16ff1f1b17ff201c17ff201c17ff1f1c17ff201c17ff1f1b16ff1f1b17ff201c17ff1f1b17ff1f1b16ff1f1a16ff1e1a16ff1e1a15ff1e1a16ff1e1a16ff1d1a15ff1d1915ff1c1814ff1c1815ff1c1814ff1c1814ff27211cff0e0d0aff1b1814ff1b1714ff0d0b09ff1b17144a070301500a040254080401560c0502aa462611693116097233170a623317095e32170977301509682f14095a2c1208632c1208682b12075f2a11076d2b1208b7281912ff1d1a15ff1d1a15ff1f1b16ff1f1b16ff1f1b17ff1f1a16ff1f1b17ff1f1b17ff201c17ff1f1c17ff1f1c17ff1f1c17ff1e1b16ff1f1c17ff201c16ff1f1b17ff1f1b17ff1f1b17ff201b16ff1f1b17ff1f1b17ff1e1a16ff1e1a16ff1e1a16ff332d28ff342e28ff3a352eff2b2620ff2b2621ff2b2520ff2a241fff2a241fff2c2620ff2b2620ff2a2520ff2a2520ff2a251fff29251fff2a251fff29241fff29241fff28231eff28241eff28231eff28231eff29241fff28231eff26221dff27221dff29231eff29241f743b1b0c6a39190b6638180b6537180a6d37180b6436170b6136170b5934160970683518736735197367371b734c25107c3c1e0d5e1f0e055f1f0e057423100862190b05ff221e1bff1d1916ff1f1b17ff211d19ff12100eff120f0dff24201bff25201bff25201bff26211cff25201bff28221cff28221dff27221dff27221eff28231dff28221eff28241eff28241eff2a251fff2a251fff2a251fff29241eff28241dff28231dff28231dff28211cff28231dff27221cff27211cff27221dff2d2722ff2d2722ff2d2722ff2c2621ff2a251fff29241eff28241fff28231fff2a241fff29241eff2a241fff2a241fff29241fff29251fff29241eff29241eff29241fff29241fff28241eff28221dff28231eff29231eff28231eff27221dff27221dff27221cff27221cff27221cff26221bff2c2822ff2f2924ff241f1bff2f2923ff2e2823ff312a25ff231f1bff2d2723ff28231fff221d18ff24201aff241f1aff241f1aff241f1aff24201aff25201bff25201bff231f1aff25201bff24201bff25201bff24201bff241f1aff24201aff231f19ff231f19ff231e19ff231e19ff221d19ff221d19ff231e19ff221d18ff211d18ff201b17ff211c17ff201c17ff1f1b16ff1f1b16ff1e1915ff1f1b16ff1f1b16ff1d1916ff221e19ff1f1b18ff241f1aff241f1bff26211cff241d19ff26201bff27211cff211c17ff211c17ff211c18ff221d18ff211d18ff221d19ff221d19ff221d19ff221e19ff231e19ff231e19ff231e19ff241f19ff251f1aff251f1aff241f19ff231e19ff231e19ff221d18ff231d18ff221d18ff221d18ff231d18ff211c17ff201b17ff221d19ff231e1aff231e1aff211c18ff201c18ff1f1b16ff201b17ff1f1b16ff1f1b16ff201b17ff201b17ff201c17ff201b17ff211c17ff201c17ff201c17ff201b17ff201b17ff1f1a17ff1f1b16ff1e1a16ff1e1a16ff1e1a16ff1e1a15ff1e1a15ff1e1915ff1d1915ff1c1914ff1c1914ff0a0907ff1c1814ff1a1713ff1a1713ff231e1aff1d1a167f0d09076609040147080301640904016c11080283391b0c5f3116096233180a543418096e361a0b7a321709592b1207632b12085e2a1107642a11075729100759291107ff211c18ff1e1a15ff1f1b16ff1f1b16ff201b16ff1f1b17ff1f1c17ff201c17ff211c17ff211c17ff201c17ff201c17ff201c17ff201c17ff201c17ff201c16ff201c16ff1f1c16ff201c16ff1f1b16ff1f1b17ff1f1b17ff1f1b17ff1e1a16ff181411ff2f2925ff342f29ff35312cff3a342fff2a251fff2b2520ff2b2520ff2a2520ff2b2520ff2a2620ff2a251fff29241fff2a2520ff2a251fff29241fff29241fff2a2520ff29241fff29241fff29241fff28241fff28231eff28231eff27221dff27221dff29241eff29231efe332c27563616094f36170954351609583516095a34160a6d37180b6636170b6b562a1467633319606130165b5c2d15713f1e0d652110066b1f0f0569200f06621e0d06ff1f1c19ff211d19ff231e1aff211c18ff15120fff1e1a17ff221e19ff25201bff25201bff26211cff26211cff27211cff28221dff28221dff27221dff28231dff29231eff29231eff29231eff29241fff2a251fff2a241fff2a251fff2a241eff29231eff28231dff28221dff28221cff28221cff27211cff241f1bff2e2823ff2e2822ff2c2621ff2f2923ff302b25ff25201bff29241eff29241fff2a251fff2a251fff2a241fff2a241fff2a241fff2a241fff29241fff29241fff29241fff28231eff29241fff28241eff28231eff28231eff27221eff27221dff28231dff29241dff29241eff28231dff28231cff2c2722ff332d28ff2c2621ff302a24ff2c2722ff302a25ff28231fff2e2823ff1c1915ff221e18ff231f19ff231f1aff231f1aff241f1aff241f1aff251f1aff241f1aff24201aff24201aff24201aff241f1aff241f1aff241f1aff231f1aff241e1aff231e1aff231e19ff231e19ff231e19ff231e19ff231e19ff221e19ff211d18ff221d17ff201d17ff201c17ff1f1b16ff1f1a15ff1f1a15ff1f1a15ff1f1a15ff221d19ff25211cff211d19ff241f1aff241f1aff27211cff0f0c0bff26201cff1d1915ff211c18ff221d19ff211d18ff211c18ff211d18ff211d18ff221d18ff221d19ff231e19ff231e19ff231e19ff231e19ff241f1aff241f1aff241f19ff25201aff241f19ff241f1aff231e19ff231e19ff231d18ff221d18ff221d18ff201c17ff231d18ff241f1bff231e1aff231e19ff221d19ff201d19ff1f1b16ff1f1b16ff1f1b16ff1f1b16ff201c16ff211c17ff201c17ff201b17ff211c18ff201c18ff211d18ff201c17ff201c17ff1f1b16ff1e1b16ff1e1b16ff1d1a16ff1e1a16ff1e1a15ff1d1a15ff1d1915ff1c1814ff1c1814ff1c1814ff14110eff050403ff1d1a16ff1b1814ff13110fff1a1512380602015409030153070301550a040185371b0d7f371a0c6832170a5d33170a52331709612b1208542a11074b291006562910065a291007642b12086b2b12089729160dff1e1a16ff1f1a16ff1f1b16ff201b17ff201c17ff201c17ff201b17ff201c17ff211d18ff211d18ff201c17ff201c17ff211d18ff201c17ff201c17ff201b17ff201c17ff201c17ff201b17ff201c17ff201b17ff201c17ff1f1b16ff1a1612ff241f1bff302b26ff342e29ff352f2aff37302bff312b27ff2a251fff2b2620ff2c2620ff2b2620ff2a241fff2a251fff29241fff29241fff28231eff29241fff29241fff29241fff29241fff29241fff28231fff28231fff28231fff29241fff27221dff28231eff28231eff29241fff29241f6e36180b5334160952341609503516096136180a3a301307503316096136180b6d6232197a62321978623219685027124c3f1d0a65210f06671a0c04591f0e0753160a04ff221e1bff241f1bff201c18ff211c19ff1b1714ff14120fff251f1bff25201bff26211cff26211cff27221dff28231dff29231dff29231eff29231eff29241eff29231eff29231eff29241fff2a251fff2a251fff2a241eff29231dff29231dff29231dff29231dff28221dff28221dff27211cff25201aff2c2722ff2e2822ff2f2923ff302a24ff312a25ff25201bff29231eff2a251eff2a251fff2a251fff2a251fff2b251fff2b261fff2b251fff2a241fff2a251fff29241fff29231eff28231eff29231eff2a241fff2a241fff29231eff29241eff29231eff29241eff28241dff29231dff28231dff211c19ff302a25ff312b25ff302a25ff2c2722ff2f2924ff2d2823ff2f2923ff211d19ff221e19ff251f1aff241e19ff231f19ff231f1aff241f1aff25201aff24201aff241f1aff241f1aff241f1aff241f1aff241f1aff241f1aff241f1aff241f1aff241f1aff231f1aff231e19ff231e19ff231e19ff221d18ff211d18ff211c18ff211d18ff211c18ff211c17ff211c17ff201c17ff1f1b15ff1f1b15ff1f1b16ff231e1aff221d19ff1f1b18ff241f1aff241f1aff26201bff26201bff27211dff181511ff221c18ff211c17ff211d18ff211c18ff221d19ff221e19ff221e19ff221d18ff221d18ff231e19ff241f19ff231e1aff231f1aff241f1aff24201aff241f1aff241f1aff241f1aff241f19ff241f19ff231e1aff231e18ff221d18ff201c17ff231f1aff241e19ff241f1aff241f1aff221e1aff211c18ff1f1b15ff1f1a16ff201b16ff201b16ff211c17ff201b17ff201b17ff201b17ff211c17ff201c17ff201d17ff201c17ff1f1c17ff1f1b16ff1e1b16ff1e1a16ff1e1a15ff1e1915ff1d1a15ff1d1a15ff1c1914ff1c1814ff1b1713ff100e0bff1e1815ff1c1914ff1a1713ff201c18ff1d1916d214110d570803015e07030161070301720d0603793217097e33170a7934180b7036190a613117095f2911074f271006532911076d2c130945281007502811073d260f05ff1e1a16ff1f1b15ff1f1b16ff201c17ff201c16ff211c18ff201c17ff201c17ff201c17ff201d18ff211c18ff211d18ff211c18ff201c17ff211d18ff201c17ff201c17ff201c17ff201c18ff201c17ff201c18ff201c17ff201c16ff201c16ff26211dff231f1bff2e2923ff332c27ff342d28ff332c27ff342d28ff241f1cff231e1aff221e1aff221e1aff221e1aff221e1aff221e1aff221f1aff231f1bff231f1bff221e1aff221e1aff221e1aff231f1bff231f1bff231e1aff231f1bff221e1aff221e1aff221e1aff221e1aff231e1aff231e1aff2c26225a3416094a3214085b331609633416096834160a693315097a35180b604e25126c5d2e1878613218695e2e167244220e5b251106611a0b0464210f07551b0c05ff1d1916ff181412ff211c18ff1f1b17ff0e0c0aff110f0cff241f1aff241f1aff26211cff27211cff26211cff28231eff28231eff28231eff28231dff29231eff2a241fff26221dff26221dff27231eff28231fff27221eff25211dff26201cff26201cff25201cff24201bff25201cff241f1bff241f1aff29241eff2c2721ff302a24ff2f2a24ff302924ff1b1815ff26211dff27221dff27221dff27221dff26221dff26221eff26221eff26221dff26211dff26221dff26221cff26221dff26221dff27231eff27231eff27231eff26221dff26211cff26211cff25211cff25211cff25211cff24211bff25201bff2f2924ff332c27ff2f2924ff2e2823ff2c2622ff1b1815ff302a25ff231e1bff221e1aff231f1aff231e1aff221e1aff211e19ff221e1aff221e19ff221d19ff221d19ff211d19ff211d19ff211d19ff221d19ff221e19ff221e19ff221e19ff221e19ff211d18ff211d18ff201c18ff201c18ff211c18ff211c18ff201c17ff1f1c17ff1f1b16ff1f1b16ff1f1b16ff1f1b17ff1e1b17ff1e1a16ff1e1a17ff231e19ff211d1aff1e1b18ff231e19ff241e19ff241f1aff26211cff27211dff241f1aff201b17ff201b18ff201c18ff201c17ff201c18ff201c18ff211d18ff211d18ff211d18ff211d18ff221d19ff211d19ff221e19ff221e19ff221e19ff221e19ff221e19ff221d18ff221d18ff211d18ff211c18ff201c17ff1f1c17ff1f1b16ff221e19ff221e19ff25201bff221d19ff211c18ff1d1915ff1e1a15ff1e1a15ff1e1a16ff1e1b16ff1e1a16ff1e1a17ff1e1a16ff1e1a16ff1e1a16ff1e1a16ff1d1a16ff1d1a16ff1f1b17ff1f1c17ff1f1b16ff1e1b15ff1e1a15ff1d1a15ff1d1a15ff1d1915ff1c1814ff1b1714ff1b1713ff030302ff080706ff1a1613ff1b1714ff0d0b0aff191512350702014d080301600703016a070301843c1d0d7733180a703216098333170a89381b0c5728100649270f06562811075e291208632a1208612911077a2a12088429140bff1e1a17ff1e1b16ff1e1a16ff1f1b17ff1e1b17ff1f1c17ff1f1b17ff1f1b16ff1f1c17ff1f1c17ff1e1b17ff1f1b17ff1f1b17ff1f1b17ff1e1b17ff1e1b17ff1f1b16ff1f1b16ff1e1b16ff1e1b17ff1e1b17ff1e1a16ff1e1a15ff1d1815ff25201cff231f1bff312b25ff312c26ff332e29ff332e29ff302a26ff322c27ff1e1a17ff2c2620ff2b251fff2c2520ff29251fff2a251fff2b2520ff2b2620ff2a251fff29241fff28241eff28231eff28231eff28231eff28231eff28231eff29231eff24201bff29241eff2a241fff29231eff28231eff29241e7d31190e52321508553214085f341609593114086b34170b8535180b88391b0d8362331a765f2f176e5b2c156b421e0d7f341a0b4c180a0455180a046e200f077c170c07ff1e1a17ff29231eff1e1a16ff191613ff25201cff151210ff1d1a16ff26211cff26211cff27211cff27221dff28231dff29231eff28231dff2a241eff2b241eff241f1bff1d1a16ff1d1a16ff1d1a16ff29231dff29231dff29231dff29231dff29231eff28221cff28231eff28221cff29231dff25201cff2e2823ff2f2a24ff312c26ff312c26ff2e2823ff29231dff2b251eff2b251fff2b251fff2b251fff28221dff29231eff2c2620ff2c2621ff2d2721ff2c2621ff2b261fff2b2620ff2c2620ff2c2620ff2b251fff2b251fff2a251fff2a241fff2a251fff2a251fff2a241eff2a241eff2a241eff312b26ff332c27ff2b2621ff2f2a24ff2e2723ff221e1aff312a25ff29241fff1b1713ff241f1aff241f19ff241f1aff24201aff241f1aff241f1aff231f1aff241f1bff231f1aff231f1aff231f1aff241f1bff241f1aff241f1aff221e1aff231e19ff241f1aff241e19ff231e19ff221d19ff221d18ff221e19ff221d18ff211d17ff211d17ff211c17ff201c17ff201c17ff201c17ff201b17ff201b16ff1c1915ff211d19ff1f1b18ff231e19ff221e19ff241e19ff26201cff25201bff14100eff211c17ff221c18ff221d18ff221d19ff221e19ff221d18ff231e19ff221d19ff231e1aff231e1aff231f19ff241f1aff241f1aff241f19ff241e1aff241f1aff251f1aff1d1915ff211d18ff231e19ff221e18ff221d18ff211d17ff1c1815ff241f1aff25201bff25211cff231e1aff201b18ff211c16ff211c16ff211c16ff201c17ff201b17ff211c17ff211c18ff211c17ff1c1814ff1a1713ff1a1713ff1d1915ff1d1915ff1f1b17ff1f1b16ff1f1a16ff1e1a16ff1e1a15ff1e1b15ff1d1a15ff1c1914ff1c1813ff15120fff12110dff191512ff191613ff1a1613ff201c18ff181612ff1814115307030159080301660703015a0703017735190b60311608633115097d34180b8933180b632911074f271006542710065b281007622a1208762a1208742a1208ff1f1a16ff1f1b16ff201b16ff1f1b16ff201c17ff171512ff1e1b17ff201c17ff211d18ff211d18ff211d18ff201c17ff201c17ff201c16ff211c17ff201c17ff211c17ff211d18ff201c17ff211d18ff201d17ff1f1b16ff181512ff191511ff27231eff28241fff28241fff2a2520ff2e2823ff302b26ff302a25ff322c28ff322b27ff231f1bff211c1aff201d19ff201c18ff1f1c18ff201c18fc201d19ff201c19ff201d19ff201c19ff201c18ff201c18ff211c18ff211c19ff211d19ff211d19ff221d19ff24201cff221d1aff221e1aff231e1aff231e1aff231e1aff2c26226f33170b5a3014085a3115085f3115096e33160a7834170a7b35180b785e3118715e301763582a14665528136e381a0b52200e05581b0b0465230e0641180903ff1d1915ff1c1915ff1e1a16ff1d1916ff0a0807ff0e0d0aff1b1715ff1d1915ff1d1916ff1e1a16ff1f1b18ff201d18ff211d19ff221d19ff221e19ff231e19ff241f1bff1c1915ff241f1aff24201bff25201bff25201bff25211bff26211cff231f1aff231e1aff221e19ff221d19ff221d19ff201c18ff29241fff2d2722ff2f2823ff2f2b25ff312b26ff24201bff25201bff25201aff25211aff26211bff27231eff25211cff27221dff27221dff27221dff27231dff27231eff27221eff26221dff26221dff26221dff25201bf5211d19ff231f1bff231e1aff231f1aff231f1aff221f19ff221e19ff312b26ff322c27ff2b2621ff2f2a24ff2f2823ff312a25ff2f2924ff2a2420ff1a1613ff211d19ff211d19ff221d19ff221d19ff221d19ff221e1aff231e19ff231e19ff231e1afc211c18ff231e19ff221e19ff231e1aff221e1aff211d19ff221e1aff221e1aff221e19ff221d19ff211d18ff221d19f91e1a16ff201c17ff201c18ff1e1a16ff1e1a15ff1e1915ff1c1914ff1c1814ff1d1814ff1c1814ff191714ff211d19ff211d1aff241e1aff221d18ff241e19ff221d19ff231d19ff201b16ff1f1b16ff201c17ff201c17ff211c17ff211c18fa1c1814ff221d18ff221d17ff211d18ff211c18ff221d18ff221d19ff211d17ff211c17ff201c17ff211c18ff211d18ff1c1814ff201c18ff201c18ff201c17ff201c18ff1f1b17ff1f1b16ff231f1aff24201bff241f1aff231e1bff211d19fa1a1713ff1e1a16ff1e1a16ff1d1916ff1d1915ff1c1815ff1c1815ff1c1815ff1c1815ff1c1815ff1c1915ff1d1915ff1c1814ff1b1814ff1b1814ff1b1714ff1a1713ff1a1613ff1a1713ff191613ff191512ff181511ff171411ff030302ff100d0bff1b1714ff191613ff14120fff1a1713670703018009040247070301650904017c30170b652e15086d32160954311508733417097a2b130861281007542710065428100665281107742a1208862b1308b524170fff1a1613ff1a1713ff1b1713ff1b1714ff1b1714ff181612ff1d1a16ff1b1714ff1c1814ff1b1714ff1b1714ff1b1814ff1c1814ff1c1814ff1c1814ff1b1814ff1c1915ff1c1814ff1c1814ff1c1814ff1c1814ff1b1714ff1a1714ff25211cff26221dff28241fff28231eff1e1a17ff2e2a25ff2e2924ff322d29ff2f2a25ff2f2924ff3b332cff2d2722ff2c2722ff2b2520ff2a2520ff2b2521ff2c2621ff2c2622ff2c2621ff2c2621ff2c2722ff2c2722ff2c2722ff2c2722ff2c2722ff2d2722ff2c2721ff241f1cff2d2823ff2f2824ff2f2924ff302924ff2f2924ff2e29248532190c6c32160a572f14086b32150a5a301308663115096f32160a69351a0b715b2f1563562a12675127135e3e1e0b492c130756210e053e170903581d0c06c416100dff1e1b17ff27211dff1d1916ff0f0d0bff28241eff27211dff29231fff2a241fff2a241fff2a241fff2a2420ff2a241fff2a2420ff2b2621ff2b2621ff29241fff1c1915ff2d2822ff2e2923ff302924ff302a25ff302a25ff312b25ff322c26ff322c26ff322b26ff322c26ff332c26ff312a25ff27221eff2e2824ff302a26ff2f2a25ff2e2924ff0d0c0aff342d27ff332d26ff352e26ff352e26ff28231eff322b25ff362e28ff373029ff38312aff38322aff38322bff37312aff38312aff38312aff383129ff363028ff292520ff373029ff37302aff373029ff373029ff373029ff362f28ff1b1714ff312c26ff191513ff302a25ff2f2924ff322c27ff302a25ff2b2621ff231e1aff322b24ff322b25ff332b25ff332c26ff332d25ff352e26ff342e26ff342e26ff362e27ff2d2721ff352e26ff352e26ff362e27ff352e27ff221d19ff342e26ff362e27ff362f27ff362f27ff332c25ff332c25ff211d19ff322b25ff322b24ff312a23ff312a23ff302923ff2f2922ff2e2822ff2d2721ff2d2621ff1a1714ff201c19ff201d1aff231e1aff221d19ff231e19ff221d19ff1f1b17ff332b25ff332c25ff342d26ff352d25ff352d25ff342d26ff221e18ff352e26ff342d26ff342d25ff342d25ff362e26ff342d26ff332c24ff332c25ff322b24ff332b24ff342c25ff201b17ff211d19ff312a24ff312b25ff332c25ff2a241fff211d19ff25211cff26211dff231f1bff211e19ff302922ff231f1aff302923ff302923ff2e2922ff2d2621ff2b2520ff2b2620ff2c2620ff2c2620ff2b251fff2a231eff1c1915ff29221dff28221dff27221dff26211cff26201bff241f1aff241f1aff241f1aff221d19ff201c18ff201b16ff080807ff120f0dff191613ff1a1714ff1e1a17fc161310820904025f0905025d080401670e060270381a0a4b2f14085a3115087535180aaf391d0d67281107642911075a271006692811075d2911076d2911075f281107ff201b17ff231d19ff241e1aff241f1bff251f1bff241f1aff181513ff1d1916ff25201bff25201bff25201bff251f1aff251f1aff25201aff25201bff25201aff24201aff25201aff25201aff25201aff241f19ff251f1aff241e19ff1e1915ff26231dff2a2622ff292521ff28221eff1d1916ff221e1aff2d2722ff2c2723ff2d2823ff2d2722ff2b2620ff2e2822ff231f1bff231f1bff23201bff23201bf2211d19ff241f1cff241f1cff24201bff24201cff25201cff241f1cff25201cff24201cff25211cff25201cff24201cff23201bff25201cff24201bf224201bff241f1bff231f1bff27211d7032170a6a31150a5b2f13086f3115097230140968301409602d120871572c1472552a13605027105848230f5d3d1c0b4927100552170903571f0d0656140803ff1a1714ff1f1b18ff1c1815ff1d1915ff0d0c0aff100e0cff1b1714ff1b1815ff1c1815ff1c1915ff1d1916ff1d1a16ff1e1a17ff1e1a17ff1e1b17ff211d19ff1c1915ff1f1b17ff201c18ff201c18ff201c18ff201c18ff201c18ff201c19ff201c18ff201c18f5201c18ff201c18ff201c18ff241f1bff2c2621ff2e2723ff2e2824ff2d2722ff1b1816ff221e1aff231f1aff231e1aff241f1aff28231eff231e1afa231f1aff241f1aff241f1bff24201bff231f1bff231f1bff23201bff231f1bff24201bff221e1ae0201c19ff231e1aff231e1aff221f1aff221e1aff221d19ff211d18ff2f2924ff312c26ff201c19ff302a24ff2e2923ff332c27ff2e2924ff2f2924ff1a1714ff201c18ff201c18ff201c18ff211c18ff211d18ff211c18ff211d18f8201c18ff211d18f7201d18ff211d18ff201d17ff201d17ff201d18ff231e19ff1f1b17ff201b17ff201c17ff201b17ff1f1b17ff1e1a16e81c1815ff1e1a16ff1d1a16ff1e1a15ff1d1915ff1d1914ff1c1814ff1c1813ff1c1713ff14110fff231e19ff201d19ff201d19ff25201bff221e19ff1f1b17ff241f1bff241e1aff1c1814ff1c1914ff1d1915f61d1914ff1d1916ff1e1a15f31b1813ff1d1915ff1d1a15ff1d1915ff1e1916ff1e1a16ff1e1a16ff1e1a15ff1e1a15ff1e1a15ff1e1a15ff1e1a15ff1a1713ff201c17ff1d1915ff1d1915ff1d1915ff13100eff211d19ff221e1aff231f1bff221e1aff201c18ff1b1814ff1b1814ff1c1815ff1c1915ff1d1916ff1c1915ff1c1815ff1c1815ff1c1916ff1c1916ff1b1815ff1b1815ff1c1915ff1b1814ff1a1714ff1a1714ff1a1713ff1a1612ff191612ff191512ff191612ff181411ff171411ff060504ff161310ff1b1814ff181512ff1d1916ff1d19165a060301670a04024a070301620b050280361a0c5a2f1407412c1207522f14087a381a0b832b1308622811075b271007742911086428100767281007682811079b22130cff191511ff1a1512fd1b1713ff1b1713ff1b1713ff1c1714ff181512ff1d1915ff1c1915ff1d1915ff1d1915ff1d1915ff1c1915ff1d1915ff1d1915ff1d1915ff1d1915ef1b1714ff1d1915ff1d1914ff1d1915ff1c1914ff1d1815ff25201cff24201cff25211cff24201cff241f1bff1c1916ab201c18e3231f1bff26201cff28221eff29231fff292420ff2a2520af211d19851e1a17e61d1916b51f1a17751f1a177a1f1a177e1f1a17831f1a18ad1f1b18b11f1b178f1f1a17b01f1b18b61f1b17d4201b18a5201b17ff231f1b681f1b185d1f1b186f201c188e201b187a201b17571f1a1762201b1758311408643115096c31150a702f14096d301409612e12085f2c12087b36190c775028137d4d2612704a2612523719093e2b120642160a036f190b057d1b0c06f815110fff1f1b17ff1f1b18ff1a1714ff0b0908ff1a17136c1c18156a1c1816651d1915761d1a166b1e1a17631e1a1777201b188e201c18761f1c189a221d19ff1b1815c4221d19ad221d19c6221e19b7221d18ac211d198b221d198e221d1898211d19d71d1a1681211c1885211c1885211c18d61e1916ff29231fff2d2621ff2d2722ff2d2722ff2c2621be231e1a72231e1967231e1963231e1aff28231e9f231f1a72241f1a57241f1ab824201bc3241f1ba7241f1bbc241f1bb2241f1ba1241f1b80231f1a8b231f1b97231f1b93241f1b7423201b8d25201b8225201c9825201cd025201cff2c2722ff312a25ff1c1916ff302b25ff302b25ff2e2823ff2f2a25ff2e2924ff1c181554201c17ce221d19ad211d19ab221d19a6221d1982221d1990221d19f3201c1883231e1982231e19c5231e1a88221e19c3231e1ad8221e1aff231f1b6c211d196e211d1891221d1950211c18ca221d19b2211c18c1201c17af201c17831e1a17921f1a16901e1a167d1e1a15801d1915c11e1a15981d1915ed161310ff221e19ff211d19ff221e1aff25201bff221d19ff171411ff221d19ff151210c61c1814ba1d1915a31e1a15f21b1814ab1f1a16971f1a16811e1a16831e1a16871e1a15871e19156d1e19157d1e1916831e1a16b31f1a17bb1f1a177c1e1b16ae1f1b16c51f1a16f31b1713f7201c175a1e19156a1d1a163c1c1915ff1c1815ff1f1b18ff211d19ff211d19ff231e1aff231e19ad1d1914a81d1915a61d1a15821d1915801c1915861c1915871c1915851d1915791d1915781d19157e1d1915bd1c1815ff1c1815851c1814b31b1814c41b1814c51b1714861a16135a1916125b181512831915125818151163171411ff060504ff080606ff171411ff181411ff171410ff181512660904017e100703560703016a0e0602873d1e0e3e2c1206452e1407482f14074e311407662911086829110759271007762911086a27100758260f0659250f0593161310bd181411c0171511c1181511861815125a1815115f181512ff171512ff1d1a15841916135d19161257191612be191613ba1a1612a7191612bd1a16129b191612a5191612831916128018161286181612851815127b181511ff201c18ff201c18ff211d19ff221d19ff231e1aff231e1aff1c18158b24201ab325201aff241f1bff26201cff28231eff26211dff29231fff2d2722d6211d19ff25211c69221e197d231e1a9d241f1a7e231f1aa2231f1acc241f1b9f231f1b9424201be025211cd625211cb224201b9c241f1bff221e1a8b24201a6e241f1a8c25201b8824201b61241f1b4c241e1ab925211bb925201b7934180b63301409622f14096e301409772f14095e2d12085e2c12085945210e6643200e7342200e733f1f0e563b1b0b3d180a034b1208037a200e0773130803ff1a1613ff181612ff1b1714ff1c1915ff161311c51c181592211d178c211d18bb231f1990221e1876231e1994241f1a8f241f1b5f231f1a98241f1bff1b17149e26211ce527221de828231db527211dc927221d9b26211c9e26211cbf27221df9211d198326211caa27221c9e27221dbd25201cff25201cff2b2520ff2b2520ff2c2621ff2c2722c929241ec429241e9628231d7d28221dff29231eaa28221d6329231e6329231ec42a251fa22a251fea2a261feb2a2620b92a2520cb2b26209f2b251f9f28241fbe27221e7b26211d8226211da826221d9c26221dba26211de627211dff221e1aff2e2924ff2d2924ff2e2923ff302a25ff342d28ff2d2824ff2e2924ff201c1960221d19ad231e1ae9241f1ac9241f1adc26211cb525201cde231f1aff27221ea926201c9325201bee26211cc625201cfb26211def25211cff241f1b96241f1a8e24201a98231f1a50221e19cc241f1bd324201af4251f1ace231e1aa8231e199c211c1885211c17921f1c16a91f1b17d41f1a17c91f1a16f21c1815ff211d19ff201c18ff221e19ff241f1aff26201cff1e1a17ff231e1bff1f1c17c41e1a16a41f1b16f2231f19ff1e1a15d3211c18c826201b9f241f1b9c231f19bd24201b80231e1983231f1aa52420199e231f19b3231e1ae5241f1abd231f19de25201aed24201afe1c1914f9201d18b9201b178d1f1b16791f1a15ff1c1815ff201c18ff211d19ff201b18ff231e1ac11d1916e21f1b16d61f1b16ad1e1a16b71e1a17961e1a168b1d1915af1e1a16751d1915781d19159a1d1916901d19169f1d1916ff1c1915b41d1915d51d1916dd1c1815e91d1814b11c1714af1b1713871a1613a61a1613ae1a1512c00d0b09ff171311ff1c1815ff171311ff181512ff171310780704028e0f0703640803015a0703017e271308682c140735291106542d1308472f14086d281107652710075526100779291108672710076827100759240e06ed1e1815a91a1713cd1b1714d01c1714df1c1814b01b1714ad1d1915791e1a15ff171512ff1d1916751f1b16651f1b16421e1a159b1f1b16961e1815a11d1814da1e1915ca1d18159e1d1814b01d18147c1c1714961c1813961b1813fe1f1a15ff1e1a16ff1f1b17ff1e1a16ff201b17ff221d18c41c1713ff1b1715c72e2721e02e2821e02e2722ff26201cff27211dff26211dff27221dff28221eff29231ea02b251f932a251fc62b251faf29241e7428231ef32c2621da2d27229b2b2520d32d2822f52e2822ff312b25d42e2721c12d2721ff221e1aa62c2620932c2620af2d2720a42c2620892b251f6e2b251ffb302a23f02f2922672e150a8232170b632f1409742f14096b2d1308672d1208532b11075b381a0b523d1c0b54391b0b69391b0c5a36180a471a0b044e120702751e0d0669190b05ff15120fff171310ff1d1916ff1d1916ff0a0807ff0e0c0bb227211bdb2a241dce29231eb429231d8d29231dba2a251fad2a241e7529231db328231dff1a1714ff302a22ff302a23fd312a24f8302a23c52f2822cb2f2922f6322b24fe312c24ff2b2520e1312b24dd312a24912e2821fc322c25ff211c18ff2a2420ff2a2420ff2b2621ff2c2722f6181411dc322c24ca312b249f302a23ff27231ecf2e292390312b24a1322c25ff373029ff373129ff39332aff39332bff39332ce1373129dd373029fa362f28ff342d27cb302a24e4322b25f6332b26a6302924fc332c26ff342d26ef302a24ff2e2923ff2f2a25ff2e2923ff2f2a25ff362f2aff2c2823ff2e2924ff1e1a169a2b251fff302922ff322b24ff302923f9302923f4302923ff2b2620ff322c26fd312a24b02d2721ff322b24dc2e2721ff312a24ff312a24ff24201ce12d2721c02d2620cb2c26207229231eff302822ff302922ff2f2922ff2e2721dd2c261fff2e2722f02c251ff62b251fda29231eff2b261ffe2a241eff201c18ff231e1aff201d19ff221e1aff25201bff28221dff1f1a17ff241f1bf526211dff2a241eff2a241eff2e2821ff29241dff2b251fec2f2a22d42d2822f62f2922ff312b25d62d2822d22d2721fb2e2822c62c251ff52d2720ff2e2721fa2d2720fe2d2721ff2e2822ff1e1a16fe211c18d827211cd927211ca626201bff1b1815ff211d19ff201c18ff211c19ff221d19f827221cff28221dff28231df528221dd426211cb825201bd425201bff26211cbc241f1bb1231f1ae125201bae231f1ada241f1aff1c1814e3241e1ae9241f19fe241e19ff25201be1221d19c2201c17c1201b17961e1915c01e1915ff030302ff060504ff161310ff161310ff0a0908ff1916126a0a040179160a045007030162070301803d1d0c402e1407402b1206482d1307432c12076c2710076a2710076326100760240e067c2811085b250e0650240e05f6231f1abd231d19d6251f1bf926201bff27211cbe251f1abc26201bc527211cff171411ff1c1914a228221c9026201b6226201b7126201be428211ccf27211bde27211be527211cc626201bc6261f1aa0241e19b5251f1aef1b1713ff201c17ff201c17ff1f1a16ff201c17ff211c18bd221d18e8221d18ff1b1713ab352d259d352d25af362e26e5332c25ff25201bff27211cff26211cff25201bff241f1aff25201c7b312a23ad332b24972f2922962f2922ff352d26d7322b25f7342e27c8332c26f7362f29ff39312aa7332c26f8362e28ff231e1ab5322b2477302922c0342c25d0342c2598322b2497322b24c4352d26c3352d25d028221d6d2f1409662f13096a2e1409712e1309652e1308652d1208462b11063e361808503417095f33170a5e3a1b0b4c3718094315090353150903621c0c0562120804ff1d1915ff211c19ff1c1815ff191613ff1d1915b02a241eab2a241eee2d2720b52d2620782c251fc22e2821cd2f2822972d2720cc2a251fff191614c2322a23e7332c25f7352e27d1352d27c5362e27ac352d26cd373028d4393129ff2d2721be373029d8373028a4362e27ff3d352dff1d1916ff26211cff28221eff2a2420ff2a2520ff201b18ff3b342cd138312a8a352e26ff27231eed352e27ad39302ad53b342cc83d342cd63f372ef3423930ff433b32e6403830d93f372ebe3d352de2403830e9423930c63f362ed240372fed40382fb33e352dff473e35ff433a32ff413830ff2f2924ff2f2925ff2e2823ff302a25ff362f29ff2d2823ff2d2823ff24201cd7393129df3a322af33b332aff3e342ce03b332acf3a3229f62b251fff2e2823e23a322ad63b322aff3e362dfd3e352cff40362ef23e352cff25201cde393028c0382f27ea393128aa352d25d4383026e7393027ff3c3329f0383027c7362e26e9372f27d4342c26e0342c25ad322923ff393129ff372e27ff1e1a17ff221e19ff201c19ff241f1aff231f1aff28221dff15120fff221d19fc0d0b09c8332b24d3342d24f0362e26ff201c18f02c2620d5362e27b8352d26dd362f27e1362f27aa332b25c2342d26d2342c259f312a23ff383029f4352d26fa352e27ef342c25ff372f29ff1f1b16ff221d18f6322b24ca2f2923fa100e0dff1d1916ff211d19ff221d1aff221d19ff221c18ba332b24e0322c24f3312b24d12f2922ba2f2922a22d2721c02f2922c82e29228f2b2520ad2d2821b42d2821932b261fff302821ff1b1814eb2d261fd82c251fff2f2721e52c251ff22b241eea29231dbe26201bfb27221ceb251f1aff13100eff1a1613ff161310ff14110fff161310aa0d0a087e110803670e060248080301580e06026c3216093b2b1206392a11064a2c13065d2710076b260f075c260f07762610076e2610065d250f0651250e05d9261d18d3302922de312922e7312923ff352c25ea322a23dd312923ec322923b52d2621ff161410ff1c1914c22d26209b2c261f802b251faf2e2720b8312922a5312922c9322a22e8332b23b9302922ac302821962e2720ca2c251eff201c17ff201c17ff201b17ff201c17ff211c17fe201b16fe28231cc726201bff1a161461201c175c201c175c211c1884211c18ff241e1aff241f1aff221e1aff211d19ff211c18ff2b262089201c186e1f1b17771f1b17761f1b17b4201c18d2211d19af211c18a6221c18c8221d19bd221d1a77211d1965211c18ff221e1a9e1f1b17661e1a168e1f1b17a4201b189d201b1791201b176b1f1b1769201b17631f1b168a30180d6a2e13096b2e14096f2d1309662d130933280f05552c12076e34190b4a3216096c34190b6232170a492f1407491e0d04561709036f220f0748160903ff1b1713ff0f0c0bff1b1714ff1c1815ff0c0a09fe100e0c671c1814931d1915a91e1a16671e19159a1f1a17971f1a169b1f1b18c0211d19ff1a161373211c1862211c1893221d19a8231e19a0231e1982241f199c251f1a9d251f1bfc25211c93231f1a9125201a81241f1ac925201bfb161211ff241e1aff27221dff29231fff29241fff28231ea3241f1aa8241f1b6b231f1aff27231ea5241f1aa526211e9927211e6b27211d7328221e6829231e962a241fae2a251f9f28241f8028231eab29241f9829241fa42a251f7328231e8c29231f8628231ecd2a251fcc2a251eb029241eff2e2823ff312b26ff2e2824ff312c26ff352e29ff2f2a25ff2f2a25ff231e1b9025211b6c25201a6925201aa126211ba226221c8527231ca326221cf9201d188f27221da727231dce28231dab27211dd527221d8426211bff24211c9625201ba125201b9e241f1a9b251f1a6b241f1963241f19a0251f1aa1241f1a82231f1aac231f1a97231f1a8c221e1995221e19e0231e1ab5221d19ff1f1b18ff231f1aff211d1aff25201cff241f1bff27211dff221d19ff221d19791e1a16701f1b175c1f1b176e201c17fe1e1a169f201c1895211c187b211c19a8221c1999211c197d211d1977211d1982211d18ae211d18cf221d18a7201c189c201c18ca211d19a9201c17df191613f8211c18a11f1b17821f1b16ff161311ff1f1a17ff201c19ff211d19ff221d19c81e1a16501e1a16771f1a16931f1a16931f1b16831f1b16771e1b169e1f1b16a41f1b176c1d1916771e1a16791e1a16af1e1a15d11e1b16ff1b1814a01d1a15d01e1a16bc1d1915671b18147d1b1714a01b1714741a161281191612f2060505ff0e0c0aff171310ff171310ff13110fff1714115f09040172160a045a080301540e06025336180953321608312a1106362a11063e2b12066c2711077827110765250f066f260f0745220d053e230d044d240e05b51d1915b01e1916aa1e1915cc201a16dc201b17661f19157c1f1a169f1e1a16811d1916ff171310ff1c18138d1d1916951d19167e1d19155e1e19155c1e1915581e1915831e1a16941f1a168c1e1a167f1e1915721d1815ff1a1612ff201b17ff1e1915ff1c1814ff201b17ff15120faa1d1814b21c1814aa1c1814ff1a1713ff2c261fff2c261eff2b251eff2b241eff29231dff201b17ff1f1a16ff1e1916ff1f1a16ff201b17ff211c18d61c1815ff28211cff27211bff28231dff27211bff29221dff28221cff28221cff26211cff26211cff26211cff221f1aff28221dff29221dff29231eff2a251fff29241eff29241eff28231eff28231dff28231eff28231d552f13087530150a7f31170c792e14096f2d13096f2f14086b2d13084b2f1408603117096732180a603e1d0c5e36190a551c0c04591309035c1d0d05a91b120eff1b1713ff241f1bff1b1714ff0f0d0bff120f0dff29221cff29241dff29231dff29231dff2b251eff2b251fff2c261fff28231dff181613ff2d2720ff2e2820ff2e2720ff2e2720ff2d2720ff2e2721ff2d2721ff2d2721ff2d2721cc1f1b17ff2c2520ff2c2620ff2b251fff2b241eff201c18ff27221eff28221eff28231fff292420ff2d2721ff2d2821ff2f2921ff29241fff2c2721ff2f2922ff332c25ff332c25ff322c24ff332c25ff312a24ff312b24ff312a24ff312a23ff312a23ff302a23ff312b23ff312b23ff312a23ff312a23ff312b23ff2f2921ff312a22ff2b2621ff2d2723ff2e2924ff2f2a25ff322c27ff12100eff2b2622ff241f1bff29231eff2a241dff29231dff29221cff28231cff28231dff2a241ed31e1b17ff2a251eff29241eff29241eff29241eff29241eff2a241eff25211cff29231cff29231cff27231cff27221bff28221cff27221cff27231cff28231dff28221dff27221dff27221cff27221dff27221dff27221dff26211bff201c18ff211d19ff1d1a18ff241f1bff231e1bff28221eff211c18ff211c18ff27211aff26221bff27221bff26201ac41a1613ff28221cff27221cff27221cff28231dff28221dff27211cff27211bff26211aff27211bff26211aff26211aff27211bff27211bff26201aff1b1812ff211c18ff241e18ff241e18ff1a1613ff1e1a17ff1f1b18ff201c18ff221d19ff13100dff221d18ff221d18ff231e18ff231e18ff231e18ff221d17ff221d17ff221d17ff221c16ff211c16ff211d17ff201b15ff201c16ff1b1814ff1f1a16ff1e1a15ff1f1915ff1e1814ff1d1914ff1d1813ff1c1813ff1c1713ff0a0807ff13100eff171310ff12100dff161310f015120f7711080378150a044a0904015b140803612a12063e2c1307432d1307342b12065327110760260f076c250f077426100865240e0661230e0664250f06be21150eff1f1b16ff1f1b16ff201b16ff211c17ff211d18ff211c18ff201b16ff201b17ff201b17ff16130fff1b1712ff201c16ff211c17ff211c17ff211c17ff201b16ff201c16ff201c16ff1f1a15ff1f1b15ff1e1a15ff171410ff1e1a15ff1c1814ff1b1713ff1c1915ff181411ff1e1a14ff1f1914ff1e1a14ff1f1a14ff211d19ff211d18ff221d19ff231d1aff221d1aff221d1aff1f1a16ff1d1915ff1d1915ff1e1a16ff1f1a16ff211c18ff1e1a17ff1f1b17ff1f1b17ff1f1b18ff201c19ff201c19ff201c18ff201c18ff201c18ff201c19ff201c19ff201d18ff211d19ff201d18ff201d18ff211e1aff221e1aff221e1aff211d1aff211e1aff211d19ff211d194e2f13087131150a7330150a8731160b772e14096a2d13086a2e140857301509542f1508502f15084e2e1508503718094b1c0c0446110702692611074a170903ff221d1aff13110fff1a1714ff1c1815ff171311e6171411b2221d18b0221e18b4231e18b1241f1ab2241f19ba241f1aff231f1aff241f1bff24201bff25201cff27221dff27221dff28231eff28231eff28231fff27221eff27231eff27221eff26221dff26221dff26221dff26211dff1d1916ff27221eff27221eff28231eff29241fff161411ff27231dff28241fff28251fff2b2721ff2a2620ff2a2621ff2b2621ff2b2721ff2c2721ff2b2721ff2b2621ff2c2722ff2c2722ff2c2721ff2d2722ff2c2721ff2d2822ff2d2822ff2d2822ff2e2924ff2d2823ff2d2723ff25211dff2e2823ff26221eff302b26ff322c27ff1a1815ff292521ff2c2722ff27221dff27221cff26221cff27221dff2a2520ff2a2520ff2a251fff29241fff292420ff292420ff292520ff28241fff292420ff282420ff292520ff292520ff29241fff292420ff2a2520ff2a2520ff28231eff28221dff26211cff26211cff25211cff25201cff24201cff24201cff25211cff25211cff1e1b17ff211e1aff201d1aff26211dff27211dff26211dff211d19ff221d19ff211d19ff221e19ff231f19ff221e1aff231f1aff24201bff25201bff25201bff25201bff25201cff25201cff241f1bff231f1aff231f1aff231f1aff231f1aff241f1aff231f1aff231f1aff211e19ff221e19ff211d17ff14110eff1b1814ff201c19ff1f1b18ff1f1c18ff211d19ff1f1b16ff201c17ff1f1b17ff1f1b16ff1f1b16ff1f1b16ff1f1b16ff1f1b15ff1e1b16ff1e1a16ff1d1a15ff1d1a15ff1e1a15ff1d1915ff1c1815ff1c1814b41a1713b31a1612b51a1612b31a1612b5191511b5191511fd120f0cff171411ff191512ff161310ff15120fff181411480803016f160a0454070301470b040179381b0c5e321709482d14074a2e1407402c13066d2710076e26100772271107722610076e250f065e240e0667250f06ff191613ff191613ff1a1713ff191613ff1a1714ff1b1815ff1c1814ff1c1915ff1c1915ff1c1916ff1d1915ff1d1915ff1d1915ff1d1915ff1d1915ff1e1a16ff1d1915ff1c1815ff1c1814ff1c1814ff1b1814ff1c1814ff1f1a16ff1d1915ff1c1814ff1c1814ff1b1713ff14110eff1c1713ff1b1713ff1b1713ff1b17133219161237191612341916122d1916122b181511221815112d181512ff1c1714ff1c1814ff1b1714ff1c1714ff1d1814ff221d182a171411231714112b1714111d1713101f17131028171411331815112d1714113118141134181511301816122918151224181511231916122218161225181511291815122a1815124719161330181512371816123c1815117232160a6c2f14097630150a662d13086b2d1308672e13086c3216094f2f1509572f16095a30180b623a1a0b5d200e06401107034c170a04581e0d05ea231d1aff1a1714ff1e1a17ff1b1815ff0a0908ff0e0c0a2d1613102116131025161310271714102f181511341916123c19151237191612521b18142d1a1714331b17142a1a1713241b17142c1b1814301b1814391c1814361c18155b1d19163e1c1915351b18142f1b17142b1b1814ff151311ff24201cff26211dff27221eff27211dff1b1816451c1915421e1a163a1d1916321d1915291d19152f1e1b17291d1a162c1e1a16381f1b173b1f1b17451f1c184b1f1c18371f1c173b201c172a1e1b162d1f1b17301f1b172f1f1b173e1f1b183b1f1b184f201c183b1f1b17ff2c2722ff2e2824ff1b1815ff2c2722ff2c2723ff2c2722ff282420ff1e1b1858191714521c1815311b1713371b1814321b1714341c18142a1b1714281a1713351c1814331b18143a1c18143d1c19153c1b1814401b1714341b18142e1b1714301a1713331a17132e1a17133b1b1713401b17144e1a17143b1a1713411a1713321a161241191612351916122e1815122818151235171512ff1a1714ff221e1aff1f1c1aff26211dff25201dff25201cff211c19ff13100e3d19151232181511331815124a1a16123a1a161136191511331916122f1915122f1915122c191512281816122f181612491916133419161243191612421916123d1915122f181511331815112c1815112717151144171411e813110eff1d1a16ff1e1b18ff1f1b18ff201c18ed1a17142815120f2b161310241613102616131032161410451715113e1714113b1714103f161310331613102b15130f2715120f2414120e2914120e2e14120e3614110e3614110e4814110e3913100d3912100d30110f0c2b110f0cfd050404ff0f0d0bff171411ff161310ff14110ebb130f0c450e060265190a05430602014a0c05026629120657301609532f150958321709592a12076c2710076e2610076f250f0663240f0664240f0663240f062d16100b2513100d2513110d3114110e3715120f3a15120f3415120f3815130f2815120f2615131025151210251512102d151310291513103916131032161310541614102f15120f2d15120f2314120f2414120e2114110eff110f0dff1d1815ff1c1814ff1c1814ff1c1814ff100d0b2d15120e2915110e2014110e1f14110e2715110eff1b1814ff1e1916ff1d1916ff1e1916ff1c1815ff1d1915ff1d1915ff1d1915ff1e1916ff1c1814ff1d1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1714ff1c1714ff1e1915ff1c1814ff1c1814ff1c1814ff1c1814ff1d1815ff1e1916ff1e1916ff1e1915ff1e1915ff211b17ff211b17ff211c18ff1e1a16ff1f1a17ff1f1a17ff221d1aff312a25532f13076c2f14085f2d1308642e1308632e1408562e13075b2e13084c2f15086231190b5c2f180a5b32170a663b1b0c4f1107033a0f06027c24100864150803ff1e1a17ff161210ff191512ff211d19ff110f0cff1f1b17ff1f1b17ff211c19ff211d19ff211d19ff231e1bff231e1bff241f1cff24201cff26211dff26211dff27221eff26221dff27221eff28221eff25211cff29231eff28231eff29241fff29231fff2a2520ff2a241fff2b251fff2c2621ff2a251fff2b2520ff2a241fff2b2621ff2b2621ff2d2822ff2d2823ff2e2923ff312c26ff2f2924ff302925ff302a25ff312a26ff322b27ff332c28ff332c28ff312a25ff2f2a25ff322c27ff322c27ff332c27ff322c27ff332c28ff322b26ff322c27ff302b26ff211e1bff2e2823ff181613ff2a2521ff27231fff302b25ff25211eff241f1dff38332eff37322dff2c2824ff2c2824ff2f2a25ff322c27ff342d28ff332d27ff332d27ff322c26ff322c26ff322c26ff302a25ff2f2a24ff312b27ff2c2622ff2b2621ff2d2722ff2f2924ff312a25ff2f2924ff2f2823ff29241fff1e1b18ff292420ff29241fff1b1816ff191714ff211d1aff352e27ff26221dff211e1aff201d1aff241f1bff241f1bff1e1a16ff201c18ff1f1b18ff24201cff282420ff27231eff27231eff27221eff292420ff28221eff2a2420ff28231eff2a2520ff2a2420ff2b2521ff29241fff29241fff2a2520ff26211dff28231eff27221eff26211dff25201cff26201cff26211cff26211cff25201bff231e1aff241e19ff231e19ff221e19ff231e1aff231f1bff221e1aff221d19ff231e1aff211d19ff211c19ff201c18ff1f1b18ff201b18ff211c19ff201b18ff1e1a16ff1c1815ff1d1916ff1c1815ff1b1815ff181612ff191512ff181411ff1c1714ff1c1814ff0c0a08ff181512ff191513ff13110fff1814113a080301621409044807030148060201662411078736190c4f2e14075c3116085030150879291208652610065f26100667250f075d250f0653230e0558220e05ff1b1713ff1b1713ff1b1613ff1a1613ff1a1713ff1c1815ff1c1815ff1d1915ff1d1916ff1f1a16ff1e1a16ff1f1a16ff1f1b16ff1e1a16ff1f1b17ff1a1713ff161310ff161310ff181512ff1e1a17ff1d1916ff1c1915ff1d1814ff1e1916ff1c1814ff1d1814ff1c1713ff1b1713ff1b1713ff1b1612ff1b1613ff1a1612ff1b1714ff1a1613ff1d1815ff1d1815ff1d1915ff1b1714ff1c1814ff1c1815ff1e1916ff1d1815ff1b1713ff1b1714ff1c1814ff1c1814ff1d1815ff1d1815ff1c1814ff1b1714ff1b1714ff1b1714ff1b1714ff1c1714ff1c1814ff1c1815ff1c1814ff1d1815ff1e1915ff1e1915ff1f1a16ff201a17ff1e1916ff1e1a16ff1e1a16ff1e1916ff1e1a16ff1f1b17ff1e1a176d301509652f14086d2e14095f2d1308502b12075d2e1308582f14084f2b14084a2a1308492a1308863d1e0d64170a04461207025c1a0b056f1a0b05d11d1713ff1c1814ff171311ff181412ff191512ff181512ff191512ff1a1613ff1d1915ff1d1915ff1f1a17ff201b17ff1f1b17ff201c18ff211d19ff211d19ff221e1aff25201cff251f1cff231f1bff201d18ff241f1bff241f1bff25201cff241f1bff251f1bff26211dff28221eff28221eff26201cff26211cff28231eff29231eff29231fff2a2420ff2a2520ff2a2520ff2a2520ff2a2520ff2a2521ff2c2622ff2c2722ff2c2622ff2c2622ff2c2722ff2c2722ff2c2622ff2d2723ff2f2925ff2e2824ff2e2824ff2d2824ff2e2823ff2e2924ff2f2924ff2f2924ff2c2722ff1a1614ff29241fff26211dff2e2824ff1f1c1aff171614ff161413ff161413ff151312ff151412ff161413ff171514ff161413ff161413ff171514ff171513ff171513ff171514ff151312ff141211ff131211ff131210ff131110ff131110ff121110ff131110ff131110ff131110ff13110fff1c1917ff2d2722ff28231eff27221dff26211dff26221dff28231eff27221eff221f1bff221f1cff241f1bff211d19ff1f1b17ff1f1b18ff211c19ff231e1aff231e1bff221e1aff221e19ff221d19ff221e1aff231f1bff211d19ff221d19ff211e19ff211d19ff231f1bff25201cff241f1bff231f1bff201c18ff221d1aff221e1aff211d1aff201c19ff201c19ff201c18ff201c19ff211d19ff1f1a17ff1d1917ff1f1b18ff201b17ff201b17ff211c19ff1f1b18ff1d1a16ff1d1916ff1d1a16ff1d1a16ff1d1916ff1d1915ff1c1815ff1c1814ff1c1814ff1c1814ff1c1714ff1a1613ff191513ff181512ff171311ff171411ff171411ff171411ff181412ff171311ff151310ff141210ff0d0c0af61a16134c0f060237180a03320803012d0703013b2410065c2d1408633017096932170a6d2b13087a2912086c27100760260f0657240e0550230e0556230e06ef181310ff181512ff181412ff191512ff191612ff1a1613ff1b1814ff1d1916ff1d1815ff1c1815ff1b1814ff1b1714ff1c1814ff1e1a16ff1d1915ff1c1815ff1b1713ff1b1713ff1b1713ff1b1713ff1b1613ff1a1613ff1a1613ff1b1714ff1c1814ff1a1613ff1a1512ff1b1713ff1b1613ff1a1612ff1c1713ff1a1612ff191512ff191512ff1b1714ff1b1714ff1d1915ff1d1915ff201b18ff1a1613ff181411ff191411ff1a1613ff1a1512ff191511ff181511ff181411ff1a1612ff1a1613ff1a1612ff1a1613ff1a1512ff1a1612ff1a1612ff1a1613ff1b1613ff1b1613ff1d1715ff1d1815ff1b1713ff1f1a16ff1f1a16ff1c1814ff1c1814ff1c1714ff1c1814ff1c1714ff1a1613ff191613ff1b17139d2b160d783217096d2d1308752d1309662b1207542a1106562b1107522d14084e2a130848291207582d14087538190b57180a034e1006026f1d0e065e140a05ff191715ff13110fff0f0d0bff13110eff181411ff191512ff191512ff1a1713ff1c1815ff1e1a16ff1e1a17ff1d1a16ff1d1916ff1d1916ff191513ff1c1815ff1d1916ff1e1a17ff231f1bff24201cff231f1cff1f1d1bff131111ff0f0e0dff12100fff1a1716ff1b1817ff1b1816ff1b1817ff1a1815ff1b1917ff191715ff0e0c0bff181614ff231f1cff26221fff26211eff27221fff27221fff282320ff27231fff282420ff2a2621ff1d1916ff231f1cff2a2520ff24211dff211e1bff25211eff2c2723ff2c2723ff25211dff221e1aff201c19ff1b1817ff211e1aff35302bff161411ff0f0d0cff151310ff26201cff25201cff26211dff25211cff27221dff27231eff29231fff28231eff26221dff26211cff26221cff25201bff1c1915ff201d19ff201d19ff1f1c19ff1f1c19ff211e1bff1c1916ff1c1816ff191613ff1a1715ff201b18ff1c1916ff191614ff1e1a17ff241f1bff221f1bff201c19ff1d1917ff1a1715ff181614ff221e1aff241f1cff161311ff0e0d0bff0f0d0cff0c0b09ff110f0dff110f0dff11100eff12110eff11100fff12110fff131010ff12100fff12100eff12100eff110f0dff191513ff171412ff28221eff27211dff27221dff29231fff2a241fff2b2622ff25201bff201c18ff201c18ff211d19ff211d19ff211d19ff201c18ff1f1b17ff201c18ff201c18ff201c18ff201c18ff1f1b17ff201b17ff201b17ff201b17ff201b17ff201b17ff201b17ff201c18ff201c19ff171310ff1b1815ff181513ff181512ff181512ff181512ff181512ff161310ff14110eff15120fff151210ff14110eff15120fff100e0cff0a0908ff1d1a194c0c05026a160a04290903013f0c050249190b054e281207672f16096330160959301509772a1208692811066e261007792610075b230e0550220e0553210d05ff181411ff191612ff1a1613ff1b1713ff1b1713ff1a1612ff1a1612ff191612ff191512ff2d241dff181411ff1c1714ff1c1814ff1d1814ff1c1814ff1e1916ff1c1915ff191512ff191411ff1b1613ff1b1714ff1a1612ff191612ff181411ff191511ff1a1612ff1a1612ff1b1612ff1a1612ff1a1512ff1a1511ff1a1512ff191511ff191511ff100e0dff100f0dff171513ff161412ff151311ff141211ff141211ff131210ff131210ff141211ff141210ff141211ff131210ff131210641413106713120f5211100e5d12110f5512110f6212110f671312105711100e6613110f5011100da21513116e0e0c0bff161311ff221d19ff080706ff070706ff070606ff070606ff0a0908ff0d0c0bff0b0b09ff0b0a09ff0b0b096f2f1408802f15087f2d1409752a120866281007622911075b2810065c2b14085f2b1408652c14097037190b5e1f0c055011060244170903570f05024d0d0502590b0502660c05025a0b0502600c05024a0d05024f0a04015b0904014b0803017f12110e6b11100d7b13120f7313120f7913120e6512100dff171411ff1d1916ff060505ff070606ff070606ff070706ff060605ff060605c011100e4c0a0907c212100e5612100e701614117517161374171613791816137b171512941817147e1716138f18171487181714901b1916871b1a17971e1c198b1b1a17931c1b1779181714851a1915ff151311ff1a1715ff070605ff070605ff060504ff0504039c15131171171613801a1815941c1b17891b1916941c1b178e1b19168c1a18159b1918149014120f9412110f7d12110f8e13120f8012110e8a12110e72100f0c76100f0c7513120f831413117d13120f8013120f851313105f100f0dff1b1815ff231f1b9a0d0c0ba60908076911100e7c13120f841312107b131110ff161412ff1f1c19981313108e1413109915141190141310a01615138d141311961514129a1615138c1513118113120f901514117f1413109713110f90110f0d8c100f0d7b11100da70f0d0be614110f71100f0c8d13120f93151310841412108e151310ff0a0807ff0b0a08ff0e0c0bff0f0d0cff1d1916f31b17148d13120f8012110e8812110e6d100f0c73100f0c73110f0d760f0e0b770f0e0b7f0f0e0b790f0e0b640c0b09b30d0c095e0a0907c50f0d0a70090806390a0806650d0b09670d0b085c0d0b09ff030202ff030202ff030202ff030302ff040303ff040403ff050404ff1a1613ff13100e7a0d0c09640c0a086c0c0a08790d0b096d0b0a08710c0a07400c0501470d050253100702620d0602620804015808030169090402600e06034a11070247160a0341170903300803013a110702432812076b2d1509622d1408692f160a582a12076928110683281108792711076a240e0664220d055c210d05f8040302ff030302ff030302ff030302ff030302ff030302ff040303ff050504ff060504ff181511ff161310590e0d0a620f0e0b650e0d0b5f0e0d0b6e100f0c630f0e0b670f0e0c600e0d0b640e0e0b650e0d0b5f0e0d0b6d0c0b09ff030302ff030302ff030302ff040303ff040302ff040302ff040302ff040303ff040303ff040403ff050403ff040403ff100f0ddc0d0c0a60151411601514116b17151266161512661615126615141165161411681615125414120f6b1514115e1413106815141166151411661413105713120f641312105c13120f6113120f6a1413105b12110e6513120f4d100f0dac141210890f0d0b660f0e0bff161311ff0e0c0a9e0d0c0a5a100f0d6711100e6711100e6611100e7f1312106812110e7312110f5a2813096d2e1408772d1408742b1207572810065228100644270f055a2c1408632d1409832f170a89371a0c7932160a521106023b1006024d110702510e0502560c0402500c0401590c0402520b040167090401520a0401520c0502560c05027d13110e6c12100e7b1412107514120f7814120f6c13110e7714120fff1d1915ff1a1815781514106e14120f781513105011100d64090807af100f0d540b0a089f12100e4e13110e761816137f1a1815831b1916871b19167e1817138f1a18157c1816138f191814851918148d1c1a17891e1c19921f1d1a911e1c19991f1d1a841c1b178f1d1c19a01c1a18ff24201dff0b0a08811c1b177f1c1b17b81a1815981614117f1b1a168b1d1b189c1e1d198a1c1b188e1d1c188b1c1a17901d1b188b1c1a17831513108614131080141210911514118313120f8713120f7711100d8312110e7a161512831616138816151287161512871514116311100eff161412ff201c18980d0c0b8f0b0a095d12100e841514128c15141282141311ff161311ff151311901514128c161512981615128b151412a01716148f161513911514129e16151293151412911614129a171613861615129113110f8311100d8712100e7e12100eb7110f0dd713110e8012110e9a15131097171613861614118916151285161411821413108a151411ba11100eff191613e00e0d0b8f151411821412108513110e6f110f0d7f12110e76110f0d76100f0c8111100d8611100d7b0f0e0b680e0d0a9a0d0c0a690b0907e8100e0b680a0807370a08066f0e0d0a6c0e0c0a610e0d0a79100e0b720f0e0b730e0d0b7f0f0e0b7a0e0d0a710e0d0aff090907ff191512c20f0d0b7a0e0d0a680d0b097b0e0c0a830e0c0a720d0b09760c0a08470703014c0a0401490d05023b0b040137070301380803015608030164090401730c0502340e05022f1106023d0f06023c1a0a043a220d05612912086d2c1409632e15095e27110675281207762510066e240f064e210d054d200c043e1c0b04690e0d0b640d0c0a640e0d0bbe0d0c0a8f0d0c0a750a0907b10e0c0a360b0a08ff12100eff191612900c0b09610f0d0b640f0e0c620f0e0c600f0e0c6f100f0c5f0f0e0c680f0e0c600f0e0b630e0e0b650f0e0b610e0e0b620e0d0b670f0e0c5c0f0e0b580e0d0b560e0d0a510d0c0a4f0d0c09760a0907900d0b095c0e0d0b5b0d0c0a5c0e0d0a570d0c0acf191613b015121064171512611716136e181714631715126c18171362161512611615126015141155141310661514115914131063151411621514115d15141154131210681514115e1313105d13120f661413105812110f6913120f47100f0ca91412106a0e0d0b400b0a08800d0c09d5171412510f0f0c5810100d6511100e6911100e6c11100e831312107112110f7412110f7312110f5b2d1307702d1408792d1408672c1308532a1107442810064f2c1207592e15087a30170a6f31170a7934180b55110602521308023d1508025e1007024f0d0502630d0502540c0401460c0401510d05023f0f06024f110702521509037713110e65110f0d7513110e7012110e6e13110e6812100d7a13110ebc15120f94110f0c7313120e6613110e7b14131049100f0c9b0d0c0ab6110f0d380807068f0e0d0b850b0a086d1514107a171612801817148618181485181814951b191587191714901a18158c1a18168e1b19168a1a1815941c1a17871a18158a1a1815871917148719171482191814cb191714821615117a181613861a1713bf171513a7151310861817138e1917149d1a181586171612921817137e161411871615118015141080151410801513107e14120f87141310801413107d13120f7612110e8613120f8112110e7d10100d8111100d7d100f0d88100f0d530c0b09c20e0d0cb40e0d0c930b0a088b0a09074d0908077e0f0e0c82100f0d84100f0dc80f0f0dac110f0e9812110f9512110e9412110e9012110e9b13120f8d11100d9511100e9012100e8711100d9112100e8f12110e8712110e9a13120f7511100d8112110e8513110fbb110f0eec1513108413120f9e1615129b1615118113120f8e1513107c13120f7d13110e8113120f8413120fc11512108f14130f8413120f7c13110f7a12110e6d100f0d8012100d7a100f0c720f0e0b7f100e0c7e100f0c7c0f0e0b5b0b0a08c10d0c0a3b090806ee110e0c6e09080641090806700e0d0a670d0c0a690e0c0a7a0e0d0a770f0d0b7d0f0e0b87100e0b7a0f0d0b770f0d0bb30e0d0bb4100f0c790f0e0b6e0f0d0a640d0c09780e0c0a780e0d0a780d0c0a840e0c0a4109050343090301380a04014a0904013e07020139070301460703013c0703013f0702013f0a04012c1307024f170a0348240e066c2210065f261107612d1508632b14086126100680261107752510075c230f064c1f0c04441e0c046b0f0e0b650f0e0b640f0e0b750d0b09b00c0b09610c0b0936080705ae0e0c0a430a0908b0151210960e0d0b600f0e0c620f0e0b66100f0c69100f0c650f0e0c6d100f0d630f0f0c650f0f0c5d0f0e0c660f0f0c5b0e0e0b5e0f0e0c5f0f0e0c5e0f0e0c620f0f0c5e0e0e0b4e0d0c0a520e0d0a540e0d0a740a0907980d0c0a5f0f0e0b5e0e0d0b5d0f0e0b550e0c0a921513117e12110f611816135f1817136b1a18156e1918146c1917146a19171466181714651716125415141169161612531413105a1514116116151262161411581413105f141310581413106014120f691513115712110f691413104711100da01412106d0e0d0b490c0b09830d0c0a9d100f0c56100f0d57100f0d6e12110e63100f0d5a0f0e0c7211100d6811100e7012110e6b12110e601c110b5d2811066e2711076c2911075828110656281107502810065f2e16096b30180a682d16096a2b14084c210e0450210e04451c0b04441c0c0458200e05682510066d1f0f06711d0e066c1e0e065a1f0e055c1c0d056613110e7b14120f6011100d6c13110e7013120e7413120e6d12110d7113110d6d13110e7313120e7014130f6613110e7b15131047110f0ca30e0d0bbd13110f44090806950f0d0b800d0c0a741614117b1716138d1a18157b17161372171612811816137c1816138b1a181581191815911b191677181714911b19167c1816137e1a18156f1816137c1a18157e1a18148b1a1915811a18157d191814871a1815bb181513a7151310831917138b191814951a1815931a1815921917148c1816138d1817138816151281161411851614117214120f7d1413107a141310861413107c13120f8013120f7712100d8012100e7d11100d7b110f0c8911100d530d0b09c20b0a095a0605059c0b09088e0a0908550a09087e0f0e0d83100f0d8f11100e80100f0d7a0f0e0c80100f0d8a11100e8d11100e8511100e9c1413107e11100d9013120f8512110e7912100e78110f0d8212110e8312100e9413120f8313120f8814120f8714120fbc12110eec1614118114120f99161512961614118d15141091151410891413107f13120f881413108514130f8514130f7d13120e7a13110e7913120f8513120f7311100d7d12110d7111100d73100f0c79100f0c7b100f0c7e100e0b5b0c0b08be0c0b0953090807d4100e0b6f090706420908066a0e0d0a670d0c0a710e0d0a660e0c0a660e0c0a6c0f0d0a7d100e0c710f0d0b6d0f0d0b79100e0c5e0e0c0a730f0e0b660e0d0a580d0c09640e0c0a6e0f0d0b750f0d0a840e0d0b6d0d0c09520b0501440a0401510a0401540b04014d0b04014d0b04015d0c0501620c05024c0f06015c120702411509034e1509035b180b045e241107542d15084e230e0560230f0573220f0664210e0556200d05511f0c044c1d0b04640f0e0b650f0e0b650f0e0b750d0b09ab0c0b096d0c0b0936070706ad0f0d0b450b0a085b0f0e0b5a0e0d0b640f0e0c4d0d0c0a550e0d0b5c0f0e0c5f0f0e0c60100f0c5b0f0e0b5e100f0c5a0f0e0b5f0f0e0c530f0e0b4e0f0e0b4f0e0d0a570f0e0c60100f0c5a0f0e0b560f0e0b590f0e0b550e0d0b770a0908990e0d0b5b0f0e0c590f0e0b5d0f0e0b5a0e0d0b7314110f4b100d0b5517151255181713601917146c1a18156f1a19156d1b1915661a18156617161356161512671817135316141158161411511514115d1614115c161411681615125b1514115d141310641514105e13120f5212100e320e0d0bb2141210740e0c0a520e0c098f0f0d0ba6100f0d490f0e0c5d10100d7312110f6711100d6110100d7712110e6c12100e6411100d6912110f6411100e4c190a044f1a0a04541a0b0449190a044a1c0c0447210d045e291207682c14097c281208411f0d04511e0d04511f0d044c1c0c04511c0c04591f0e0568200e05832110076f200f065d1d0d05561c0c045c1a0c046a13120e781513105f13110e6a14120f5e14120f6e15130f7216141079161410711614117015141170161411721614105e12110d310e0d0ab7110f0dd1151311460a0907a713110f870f0d0b6c1a1815871d1b18921e1c19831d1c18771c1b178a1f1d19801d1b187f1e1c19801f1e1a821f1d19781d1c1982201e1b771e1c1883201e1b6e1d1c186e1d1c18791e1c1986201e1a8321201b8921201c821a1815981715125e14110f721d1a177c1e1d19851f1e1a9121201c9d23221e9421201c8e21201c871e1d1a851e1d19841e1d18751917147a1715126b181713851c1b17861c1a17861b1a16831a1916821918157c1a181588191815671514113b0f0e0cdb12110f6b080706bc0c0a099f0c0a093d0908077d16151391181714941817148b1717147e1716138911100e8511100e89181714821716138b1817147b171513851817147c1716137e17161373161512791716137a161513911917158319181590171612811514109413110e8c14121075171613861a1814851917148b1918149a1b19168c1a19157f1816138317161287181713821615117e14130f7313110e6e151310821614117d1514107b1513107b1513107613120f7514120f8313110e60100f0b400b0a08d00e0d0b590b0a08f012100d7e0a09073a09080670100f0c74100e0c74100e0c71100f0c660f0e0b74100f0c71100f0c6d100e0b690f0e0b6e0f0e0b560d0c0a690f0d0b610e0d0a550d0c0a5d0e0d0a670f0d0b6e0f0d0a820f0e0b6e0e0d0a580b05014c0a04014b090401530a04014a0b0401590c0501610c05015f0c05014c0d05015f0d05024d11070258160a035f1a0c04672210065d220f05551d0c04581c0b04551b0b04481a0a044d1b0b044a1b0b04660f0e0b600f0e0c650f0e0b490d0c0a5a0c0a08b90d0b09850d0c0a3f080706ba0f0d0b3d0a09075f0f0e0b630f0e0c660f0e0c580e0e0b580f0e0b63100f0c520f0e0b62100f0c530f0e0c550f0e0b520f0e0b58100e0c500f0e0b510f0e0b480e0d0b520f0e0c5c0f0f0c5a0f0e0b560f0e0b590f0e0b530e0e0b4d0a0807690c0a09500e0d0b4b0e0d0a560f0e0b590f0e0b5d13100e901714113b151310391614114c1816136a1b1a16661c1915651b1815661a1815661a18144d161512671816135016141167181613591715125c161512571614116617151158151311601514106c1614105713120f4c12110e530e0c0bbb161412710e0d0b520d0c097d0e0d0bba12100f540d0c0a4c100e0c6912110e6111100e5a110f0d7512110e59100f0c530f0e0c5e110f0e5a10100d51110d093d0c0501380c05013f0c05023e0d05013e1307023c1a0a036029120758231006441d0d04401d0c043a1c0b03841a0e094f170c0659180d075912100e7b1513107d1613107314120f851614107b1614116113110e7b1513105c13110e7c1614116715120f6d1513106e161411781715116e1614107516141176171511681614115612100d77110e0caa110f0dcd151311460b090892110f0da0110f0d4f151310741c1916871e1d197c1e1c196f1c1b17851f1d1a691b1a166a1c1a176d1d1b18731e1d19741e1d1a7e201f1b741d1c188621201c77201e1a7e201f1b7b201e1a751f1e1a7e211f1a84211f1b761a18147514110fc9221e1b4d191714551b19166c1e1c199322211c8e22201c83211f1b8f22201c89201f1b7d1f1d19811e1c18721c1b178e1f1d19741c1a17801c1b17821c1b18811c1b17861b1a16861c1a16811a19157f1a18155a141310a0171512cf1311106d090808b30f0e0d8c0b0908b01513124a12100f7c1715138c191815821817147917151382110f0d70100f0c70161513731716137c171714771716147e1817147f181614841918157c1917148d1a19167a1817147c18171481191714841a181571191714a1171512b2181613531513105d1614116b181713901b1a168c1b1916801a18157b19171482191814801817137d1615117f15130f86151410721614117b1714117a16141175151410821614107a14120f7914120f7c14120f4e0f0d0ba6100f0cc70f0d0b5b0c0b09f415130f6e0a0907a9100e0c400d0b0966100e0b6c100f0c69100f0c65100f0c6a100f0c65100e0b5b0f0e0b5d0f0e0b630f0e0b500e0c0a630f0e0b630f0d0b610f0e0a610f0d0a7b100f0c650f0d0a6e0f0e0b6a0f0d0a600e0d0a590e0c0aa80e0b09790b09074a0c0a08510c0b09550d0804700e0905580d08054e0d050160100702541b0c0457220f0568221005401608033e140802441508024114080242160802411709034c160a05690f0e0c61100e0c5f100e0c360c0b09950e0c0ab40c0b09800d0b0942080706c2100e0c870e0b0a3f0d0c09580f0e0b5e100f0c500e0d0b58100e0c570f0e0b480e0d0a4f0f0e0b4b0f0e0b4d0f0e0b490f0e0b500f0e0b520f0e0b53100e0b4b0e0d0b5e100f0c520f0f0c4f0f0e0b540f0e0b4e0f0e0b400e0c0a920f0d0b550a0907390d0c0a390d0c09480e0d0b57100e0bb31f1b1856151210ac1d1a175b13110e791714118d1816138d1815139118151384151311841513107e1413107913110f7c14120f7913110f7d13110f7e13110f8413110f8713110f8512110f8b12110e7f110f0d7d11100e72110f0da3161311d218161494110f0d81100e0c740e0d0b9e110f0eaa12100fbd13110f8b0f0e0c92100e0c8c0f0e0c8b0e0d0c8a0f0d0c890f0e0c820f0d0b7a0e0d0b870f0e0b92100e0c86100e0c860f0e0c9b12100e9411100e9812100e9112100d8d110f0d8c110f0d69100e0ccf1814126c110e0cd41814126c0f0d0b9112100dac14110faa13100eb214110f9f13110ea113110f9813100e90110f0d9212100d9113100e9113110e9413100e9c14110e9f14110f9e15120fa515130f981413109a1513118914120f8b1614119c110f0df3181614670b0a098912110e8b100e0def231f1ca61c1916b11c1a17b81e1b18b31d1b18af1d1b18ae1d1c19aa1e1b189f1c1a17981c1916aa1e1c19b31f1d1aa01e1b18a81e1b19b7211e1ab7201e1bb9211f1ba9201d19a71f1c1aa41f1c18921e1b18d026211e7d1c1916c6231f1c78191714af201d1acd23211dcb22201cd122201dbe201d1abc201d1ab41e1b18ac1c1a17b41d1a17af1c1916b61b1917b31b1916be1c1a17b71b1916c11c1a17c51b1916b1191715a7181714c91c1a1778141210bf12110f87090908c8131210840f0e0c470d0c0bf51e1c1988141210c8191715c5191715c1191715bb181614b9181715b4181714a9171512a4171512b7191714bb191715a9181513b3191715bc191714c2191715c21a1815ac191714ab181614a7181613cb1d1a179a1815137215120f9016141185151310b31a1714ca1c1a16cc1c1a17c91b1916bd1a1714b5181613b0171512a8161411b2171512ad171411b0151311aa151310b9161411ab15120fba161410bb14120fa713110f8c12100ddc1714114b0c0b09b90f0d0b820d0c0af9151310690a0907550d0b09c613100d740e0c0aa8100e0ca2100e0c9d0f0e0b990f0d0b920f0d0b8e0f0d0b830e0d0a860e0d0a970f0d0b980f0e0b890f0d0a950f0d0a930f0d0a9e0f0d0b9d0f0d0a890e0c0a8b0e0c0a840d0b09c8120f0c6e0c0a08b4100e0b7f0c0b09770b0a08990e0c0aa40f0d0aaa0f0d0ba10e0c0b9c0d0c0a8f0e0c0a8f0d0b09890c0b09900d0c0a8f0d0b0a8f0d0c0a8c0d0c0a950e0c0a8a0d0c0a970e0d0b990e0d0b860d0c0b7c0f0d0bdf151310650d0c09a90d0c0a830c0b098a0b0a08dc11100d5f0c0b09860f0d0b690d0b098b0f0d0b830e0d0b810e0c0a7e0d0c0a770d0c0a700d0c096a0c0b096c0d0b09790e0c0a770e0c0a6d0d0b097b0e0c0a740d0b097d0d0c0a7d0e0c0a6d0d0c096e0d0b09650d0b09a713100d4e0c0a099a110f0c610c0b09610c0a087b0d0b0a810e0c0a8e1b17149d1c181545161411531a18155a1b1815611c1a17691c1a166c1d1b16661b1915641b19155d1817135e19181452181713591816135a1715125e1816125e1715116e1816135815141059151310691614114d12110f35100f0c97141110c9181613630f0d0b4a0d0b097f0d0c0ab713110fb3151210360d0c0a6f12110e6a12100e5e100e0c65100f0d6911100d62110f0d5b100f0c5a100f0d6a110f0d7913120f6311100e6d13120f751412106113120f7014120f6813120f6813110e7014120f390f0c0b69100e0cbd1512105b100e0b6213110e7114120f7314120f7f1413107e1715117e1715117a1614117314120f6f1614106014130f6b151310671513106e16141076161410821916136c1714116e17151177181612591514114213110ec11a1714b612100eed181513400a09079712100e9d12110eab1e1b185c19171490221f1b8c201e1b781e1c197a1e1c197b1f1d19781e1c196b1e1d197b1f1e1a8c22211d9a24231e8622201d8623221e8422211d7522201c7e22201c79211f1a7e221f1b8824221d40191613c225211de3292521521916137a211f1b8222201c8522211c9724221e9525221d9223211c8b22201c8822201b7e201f1a761f1e1a891f1e1a771d1b188d1f1d198c1e1b188d1e1c18861c1a16821c1a17871b1a16691716134d131210ef1e1b19db13121068080807b412100e92100e0ce31d1a187f1514116e1614129a1c1a17981b1a178418171581181714871a18157a1817146c1716138d1c1a178e1b1a169a1b1a17901b1a17821a1816851b1a177f1a1815781918147e1a1915811b1916851b19163a13110edc211d1ae3211d1a4313110e851c1a167e1c1a17841c1a17951d1b178a1d1b17891b1a16841a191582191814791817137b1918148a191814741715128e19161380171511811715117d1715117915130f7f1614106512100d55100e0cd5161210d0110f0c5d0c0a08f915120f710a0907c013110e510e0d0a63110f0c7c13110e7b12100d7111100c7111100d7c13110e62110f0c560f0e0b7413110e66110f0d7d13110e7012110e64110f0c6a110f0c6d110f0c67100e0c6b110f0c69110e0b5e100e0a330b0a08dd14100da8100d0b3e0c0a08720f0e0b69100e0b70100e0b7d100f0c6b100e0b74100e0c680f0e0b680f0e0b670f0e0b630f0e0b7b100f0c620f0e0b71100f0c70100f0c68100f0c64100e0c6a100f0c65100f0c4c0e0d0a5f0f0e0baa100e0cba0d0c0b8f0d0c0a37080706d9110f0d960f0d0b380d0c095a100e0c6911100d60100f0c5d100f0c62100f0c5f100f0c54100f0c460e0d0b5c100f0c59100f0c5e100f0c5b100f0c5a100f0d50100f0c55100f0c56100f0c4c0f0e0b53100f0c470f0d0a2c0c0a08a5120f0d730e0c0a320d0c0a4e0f0e0b4f100e0c56100f0c4213110f63181412591c1915601c1a16641e1b17601c1a16651c1a166b1c1b17601c1a166b1c1a17591a18156b1b19165a19171363191814561715126218161256171512691816135e1615115a1513106e1614125d1513105f141310380f0d0bbe1816136d0e0d0b640e0c0b7f0d0c0bab12100f410e0d0b520f0e0c6412100e6211100d5e100f0d7011100d6811100d6c11100e5d100f0c5e11100d6d11100d7b1312105e11100e6712110e6912110f6813120f7915130f7214120f6d15120f6e14120f6714120f4c0d0c0a7b110e0c7414110f771513107b1613107114120f7a1514117a1614117a1614117e1615126f1614117e1716126915130f761614116214130f741614116c1614117c18161276181612711816127b19171472191713701816134912110ea512100ee71815134f0b0a089613110f8c11100e5e1918147a1e1c187e201e1a80201e1a771f1d19801f1d1a7b1f1e1a8522201d6d1f1d197e211f1b8e23221d9b2726217b22211c7c22201c7621201c7f23211d8424221e8324221e8526231e7f23211c7c24221c5f181613891e1a177923201c8e25231f9026241f8123211d8e24221e8d23221d8923211d9323221d8a23221d8b21201c7f1f1e1a89201f1a741c1b178c1e1d197f1e1c18881d1b188c1e1c18851c1b178b1c1b18891c1b187b1a18155b12110fc914121065090807b112100f91100e0d5e0f0e0c6f17161383191815811a18158a1a1916801a181582191814871918158a1a1a166f181613931d1c18901c1a17981d1c18841b19167d1a18157a1a1916851c1a17821b19168c1c1a17861d1a17851c1a16781c1a1675151411751613117a1d1b179d201e1a8c201d197b1c1a168c1d1b17841c1a17771a1815911c1b178a1d1b17891a1815881a19157f1917147717151289181613771715117d171511821816127c16151183171511861614107114120f600f0d0bc3110e0c510a0907e313110e720a0908610d0c0a6512100d6b12100d6813100d7313110e6d13110d7012100d7f13120e6f12110e5e11100c7c14120f6812100d7c14120e6b12110d5f11100c6612110d7112100d70110f0d7b13110e7012100d67110f0c65110f0c620d0b09640d0b0970110f0c8812100e71110f0c64100e0b73110f0c66100e0b6a100f0c7811100d7311100d7611100c6d110f0c68100f0c66100f0c6e100f0c67100f0c6a110f0d68110f0d6f11100d6b11100d6a11100d56100f0c740f0d0aaf0e0c0a750c0b093f090806c8100e0c5d0d0c0956100f0c5c100f0c5c110f0d57100f0c5b100f0c5e110f0c5d100f0c5f11100d4b0f0e0b6611100d5d11100d6011100d56100f0c53100f0c4f100f0c59100f0c5a11100d5511100d58110f0c53100f0c4a100e0b5f0e0c0a4b0c0a085611100d5b110f0d52100f0c4d100e0c8f1a17146713110f5d1c1a165d1c1a166c1e1b18651d1b17631c1a16721e1c18691d1b176b1c1b175b1b18156f1c1a165e191814651a19156c1a19156a1917135d1715126d1816135c1615115a151311701615125b141310631412103f100f0cb7181614710e0d0b570e0c0a880f0d0b93110f0d58100e0c580f0e0c7012100e6d11100e6711100e7d12110f6a11100d6f11100d6f11100d60100f0d71110f0d7e1412106812110e7113120f6712110e6813110e821514107414120f6c13120e6a13120e6b14120f770f0d0b850f0d0a7a14110e7515120f7d14120f7614120f771513117d161411821614117d17151270161310821715116c14130f791716127c1716127e171512771715118219171374191612701816127e1917146f191714741917133f12110e9f0e0d0be81917154a0b09089d1512107a141210751d1b17841f1d199023201c8c22201c81211f1c8f23211d7e21201c8b23211d7f22211c7e23211d9224221e9e2725218924231f8a25231f7422201c7f24221e8f26241f8325231e8325221e7e24221d8225231eb822201b881a17147d24211c8925231e9e2725208524211d8c23221d9825231f9424231e9323221d9224211d9021201c861f1e1a9622211d90201f1a941f1e198c1f1d198f1e1c19831c1a17821b1a178d1c1b188e1c1b18821a19164912110fd01615136a080806c012110f94110f0d51100f0d7c1817148b191815911c1a17991c1b188b1c1a17911c1b17901c1b17911c1b17811a19168a1c1a17931c1b179a1e1c19911d1b18861b1a16771a18158b1c1b178e1d1b178c1e1c18821d1b17831c1a177d1c1a17b41a1815ca1d1b177d1d1a16971f1d199b201d19811e1b188b1e1c19901d1c18811b19168f1c1b17921d1c178c1b1a16901b1a16921b1a168e1b1915911a181582181613841816127b17151176151411841715128b1715127414120f500f0e0bca110f0d540b0908e214110f720b0a093b0c0b096811100c7012100d7414110e821513107615130f7a14120e8b1513107914120e6812110d7914120f6912100d7f15130f7113120e6311100d6612100d7a14120e7d13110e7c14120e6c12100d67120f0c68110f0c8a0e0c0abc12100c7012100c8012110d8012100d66100e0c7611100d71110f0c73110f0c7311100d7a12100d7a11100d7211100c7f12110e7912100e7411100d7011100d6d11100d66110f0d6b100f0c6c11100d6d12110e5a100f0c6a0e0c0abc0e0d0b8e0d0c0a43090807c1100e0c410d0c09540f0e0b5f110f0c6612110e6412110d6412100d6511100d6512100d6812110e54110f0c6512100d5e11100d6312110e5a100f0d5a10100d4f100f0c6012110d6512110d5612100d55110f0c5311100d4c100e0b6c0c0b098b100e0c5711100d56100f0d5d11100d50100f0ca31d1a176a141210531a1814631c1b17661e1b18631d1b17681e1c19711d1c18661d1b176a1d1b18581a1815761e1c185d1b1915691c1a166c1a191565191714581716127319171467181613681615126e16151260141310701514115813120fc2191715710f0d0b5b0f0d0bac161411370d0c0a570f0e0c5e100f0c7212110f6f11100d6c11100d8112110f68100f0d7311100d6e100f0c6b11100d6f100f0d7612110f62100f0d7613110f6d12110e6612100e7513110e6f13110e6d12110e6f13110e6a13110e86100e0c8c0f0d0b6b110f0c7713110e7113110e751412107c1514117b1514117e1514117a1614116c151310891715126c14130f7e1715127c161512781715116f17151288191714811a1714801917147d19181472181713861b19165917151263080706f61a1816490b0908b217141151181713751d1b178b211f1b8f23221e8e23211d8823211d9524221e7b22201c9125231f7b21201b8824221e8f24221e942625208023221e912625207a22211c7d22201c8324211d8124221d8926241f8125231e8426241fd026231e8c1b191670201e1a9225231f962725218624221d9225231e9523211d9024221e9023211d8e23211d9b24221e85201f1b9824221e9020201c92201f1b871f1d1995201e1b911e1c19931c1b188f1c1b18921c1b17981c1b186a1716137e0b0a096c090807c1131210980d0c0b6016151180191814961b1a16941b1a179c1d1b18911d1b17981d1b18871c1a17951e1c187e1b1915921c1b18901c1a17921d1b188a1d1b18881c1b177e1b1a16851c1a16821b1a168a1d1b17891e1c18861e1c18821e1c18c81d1b17cb1e1b18701b1915a1211f1b95211e1a7e1d1b1790201e198f1e1d197c1c1a168e1d1b178e1d1b17971d1b178d1c1a16931c1a168b1a19158d1b1915801a18148b1a18148919171385161512861715128e181612891816126f15130f950d0b0a5b0a0907f315120f6d0c0a08380e0c097014120e7a15120f7815130f831614107d1613107e1514107f1614107c15130f6a13110e7b14130f6712110e7b15130f7113110e6312110d6a13110e7314120e7113110e7c14120e7413110e6613100d6d13110e990f0e0bbe12100d6712100d8913110e7d12110e68100f0c7912110e71110f0c7211100d7512100d7912110d8313110e7112100d7f13110e7411100d6f11100d7012110d7512110e7012110e6e11100d7012110e7312110e7013120e6911100dc40e0d0ba10d0c0a3b090806d0110f0d380e0d0a5611100c6713110e6913110e6413110e6713110e6712110e6112100d6a13110e5611100d6311100d5c11100d6111100e5b100f0d5d11100d53100f0c5a11100d5b11100d5911100d5c12100d5311100d5411100d770d0c098b0f0e0b5211100d5a100f0d5d11100d5111100d961b181567151210591c1a16641d1c17671e1d196b1c1c186e1f1e1a79201e1a681e1c19701e1c195b1b1a16731e1c185e1b19166c1b1a166a1c1a16771b1915671a17147e1b1916661817136b18161378181613641614117216141161141310c31a18159912100e8713100fb3191612320c0b0960100f0d68100f0d7a12110e7011100d6c11100d7e12110e6b100f0c69100f0c70100f0d6a11100d73100f0d7512100e60100f0c7513120f7912110f60100f0d6912100e6912110e6612110e6d14120f7414120f810f0d0b830f0c0b7212100d7c14120f751513107d14120f821715128317151280161412801614126f161411841715126b14131080171512781816138b19171380181613931a19157f1a1814841b1815861b1915781b1915871d1b176919171457090807ee1a18166f0e0c0bb81815135017161280201e199724211d9624221e8e23211d8524221e8f25231f7d22201c8624221d8423211d8725241f93262420942725208323221e8f26241f882624207722201c7323211c7f25221e8626241f8526241f90282520c324211e8b1b19167722211c97272520972927229425231f9b2726219e2624209425241f9d26231f9224221e9023211e84201f1c9e24221e9121201ca923211d97211f1b9f211f1c941e1d199c1f1e1a971e1c19961e1c199a1d1b18881a1916760c0b098a090807ca12110fa00d0c0b631514108c1a1916a11d1b179e1e1c19981d1b178d1c1a17911c1b178c1d1b178d1d1b17871c1a17911e1c19911c1b18911d1b188c1d1b188a1c1b178d1d1c18821c1a176c191814891d1b17881e1c188e201e198a201e19bd1c1a17c01e1b18791d1b17a322201c91211f1b891d1b1797211f1b95201e1a811d1b189b1f1e198f1e1c179d1e1c188e1c1a17961d1b17901c1a16a41d1b178a1a1915901b18158d1b19158f1917138d191713931917138918161398191613850c0a097c0c0b09f81513116d0c0b093a0e0d097e1514108416141082161410821614117a1614107a161410861715117b1613107315130f7c1614106513120e7a1614106d14120f6814120e7314120f7315120e6012100c7d15120f7214120e7014120e7514120e8b0f0d0bb613100e7213110e8c15120f7a13120e7011100c7d14120e7612110e7412110e8513110f7913120e9314120f7312110e8114120f7d13110e8113110e7713110e7a14120f7414120e7d14120f7614120f7713110e7113120f8f161310b2100e0c9f0d0c0a990c0b09d112100d3d0e0d0a6b13110e7113120e7114130f6613120e6613120f6512110e6212110e6f13120f5d12110d6712110e5811100d6112110e5811100d6212110e56100f0d5a11100d4f110f0c5912100d5b12110d5e13110e5a12110d6c0c0b09860f0e0c5c12100d5c11100d5a11100d59100f0d8b1b181569161311561d1a16541c1b1768201e1a6a1e1c186c201f1b7b211f1b671e1d19701e1d19631c1b17721e1c185d1b19166e1d1b17691c1a16771c1a1667191714761a1815661816136b1816137218161365161411741615125212110ec51a181682100e0c5d100e0c93100f0d650d0c0a580f0e0c61100f0c7511100d71110f0d6e100f0d8712110e69100e0c70100f0c7b110f0d73100f0d72100f0c7812100d66100f0d7312110e7b12110f7011100e7513110e6711100d6412100e5f11100d6713110e760f0e0c8b0f0d0b7112100e6712110e7114120f7814120f7c151411831614117c1514117f16151277161411841715126915131080181613751815128a1917137f181613881a18147b191713841a18147a1a18157a1b1915871d1a1753181613a012110fec1b19164d0d0b0aa615141258171511771f1c188f23201c9124221d8d24221d8924221e9425231f7a22211c8b26241f8e26241f932726209125241f962826218b25241f902726218d2725218624231e7e24231e7a24221d7f25231e7424221d8025231eb524211d931c1a177623211c8023221d9a2826218e24231e99272521a12725209524231f9a25231f9e25231f9424221e86211f1ba024221e9121201ca723211d9d201f1b961f1d1a901e1d199b1f1d1a871c1b179b1e1c19971d1c1961171513c711100f6d080707c61211109f0f0e0d4f12110e83181715981b1a179c1c1b17951b1a16911c1b17951c1a17841c1a17931d1b18931e1b189e1f1e1a901c1b18951e1c18901d1c188d1d1c18941f1d1a8c1d1b18761c1a16831c1b177e1d1b177f1e1c187a1d1b18b01b1816be1d1a18721c1a168e1f1d1997211f1b871d1c1897211f1b98201e1a851e1c18961f1d199c201e1a901e1c18901d1b17991e1c188e1c1a169e1d1b16901b19158a1a1814891a18148d1a181480181612961a17148718161266151310c311100d520b0a08f9161411780c0b09370d0c08771513107d16130f86171410821715117f1715117d17141078171511801815117f1714118a1816126614130f7e1715117115130f6f15130f7c171410781614106714130f7716130f6914120e6313110d6613110e860f0d0bb113100d6d13110e7d14120e7e14120f7012100d8014120f7813110e7613110e7d13110f8314120f7c14120f7413110e8514130f7b13110e7e13120e8013120f7713120e7013110e7914120f6b13110e7914120f6a13120e69110f0db20e0d0a760d0b093e090706d411100d310e0c096713120f6913110e7614130f6914120f6a13120f6512110e5b12110e6f14120f6613110e6f14120f5d12100d6813120e5a11100d6412110e5f12110e5e12100d5311100c5511100d5311100d5412100d4e11100c6b0c0b0981100e0c5411100d5611100d5d12110e5611100d9b1e1b176a171411591e1c185f1d1c1866201e1a6d1f1d196a211f1b77211f1b701f1e1a701f1d195c1c1a167d201e1a5f1c1a16741e1c18691d1b177c1d1c18671a1815781b19166518171368181613811a1814631514116e1615114c12110ebd1b181585100e0c64100f0c980d0c0aae12100e550f0e0c65100e0c7811100d70110f0d6c100f0d8311100d6d0f0e0c7d0f0e0c79100f0d75100e0c6d100e0c7211100d61100f0c7312110e7f12110f7811100dff0d0b09ff0d0a08ff0d0a08ff0d0b09ff0c0a08ff0d0b09ff0d0a08ff0d0a08ff0e0b09ff0e0c09ff0e0c09ff0e0b09ff69615b841615127d1614116c1413108d1816136914131086181612741614118f1917147e191613891a18157a1917147c1918148e1c1a1673181713811c1a1648161412b0141210e11b1917500c0b09af1514128f13110f6e1f1d189324221e9225221e8c24221d8424211d8f26241f8323221d992725208a25231e962725208c25231f8d2725218025231f8f282621942826218b26252088262520882624208626241f7d26231f89262520c827231f921d1a167823211c8e25231e942726219325231e97272521a22725219f2625219824221e9424221ea825231f88211f1ba524221f8b201f1bac23221d9c201e1a981f1d1a8b1d1b18ab22201cff100e0bff0e0c0aff0f0d0bff0f0d0bff100d0cdc0d0b0af1100e0cff0f0d0bff0f0d0bff0e0c0aff0e0d0bff0e0c0bfa13100d8b1c1a17901a1915921c1b179e1e1c18911d1b17a01f1d1a8d1c1a168c1d1b18881d1b188c1d1b189a1f1e1a961f1e1a881e1c19911f1e1a861d1b18891f1d19851e1c18c31e1a17c01e1b18771d1b1796201e1a93211f1b8e1f1d199321201b99201e1a8e1e1c18951f1d19941f1d19a11f1d19951e1c189d1f1d18881c1a17a31e1d18911c1a168b1b1915871b18147e191712971c191584181612871816125512100dcf13110e5a0b0907f6161311800c0b09420d0c09701614107f1714118417151181181611781815117a1815118a1a1713861917127f181611891917126815130f771614106d15130f6b15130f831816128318161277171511841816116e14120f6d14130f7015130f92110f0cb115110e6e14120e7f14120f7815120f7413110e7915120f7a13110e7d14120f7c14120f8115130f871513107a14120f871513107513120f8214130f8014130f7914120f7114120f7013110e7d15130f6c13110e6c13110e6c0f0e0bb60f0e0b740d0c0a4c0a0807d012100e490d0c0a6113120e6b14120f7214130f6414120f6514130f6513120e6613120e721514106913120f6d13120f5d12110e6312110e5912110e6413120f6513120f6813120f6313120f6013120e5a12100e5e12110e5512110e750e0c0a85110f0c5a12110e5311100d5a13110e5b12110e9f1f1c196b18161363211e1a5c1d1c186b22201b70201e1a7023201d7b221f1b6d1f1d1977201e1a5c1d1b177f211f1a671f1c18751f1c18631c1a16741d1a17661b18157c1b19166518171368181613801a19156d171612751715125713120fad1916146f0f0e0b5e110f0c8d0d0c0ab2110f0d480d0c0a620f0e0c7611100d7711100d69100e0c85110f0d770f0f0c82110f0c77100e0c7d100f0c6f100e0c7911100d600f0e0b72110f0dda13110dff1e1915ff191613ff161311ff13110fff14120fff161311ff171411ff1b1814ff191612ff221e19ff26211cff1c1713ff0f0d0aff0e0b09ff0d0a08c513110e6b1413108e18161271151310841815126c151310851816127b1816128d1a18157a1917137f1917148a1c1a17821b1916891c1a1753171512a9141210d81a18154b0c0b0aa316141285110f0d5f1b19158a22201b9024221d9426241f8324211d9025231e8624231e9d2927218b26241f9d2927228d272620952827227e24231e8b2826208526241f8525231f8526241f8d282621922826218327252096282621cf26241f921e1b178425221e8a24221d9a2826219526231e9e282622a42725219e25241fa326241f9023211daa2624209022201ca624221e851e1c18a3211f1b961e1d199e1f1d19ff24211eff120f0dff302a25ff2a2522ff272320ff272321ff2e2925ff2e2a25ff302b27ff2e2924ff24211fff282420ff352f2aff352f29ff100e0cff0b0a08ab171512961c1b179e1e1c19941c1a17a5201e1a8e1c1b17901d1c18851c1a17831c1a178d1d1b188f1e1d19821d1b1895201e1a961e1d198b1f1d1995201e1aca1e1b18c81f1c19831e1c19941f1d1a99221f1b95201d1a9823201c9b211f1a8c1e1c179c201e1a90201e19a0211e1a9b201e1a9d1f1c18841c19159a1e1c17891b19148f1b1914891b1814901b1814911b1915911b18148f1917136213110dc812100d4f0a0907e1141210760d0b09420e0c0a6715120f7a1815117c181611831916127f18151185191612901b1914871b1813891917128f1b1814671614107b1917126916141063161310791715117f19161277181511881a17127d1715106e15130f7c1614109812100dbb16130f7f1714107d15130f7c1513107c14120f7d1614107914120f7a14120f7c15130f7c161410891614107d151310841614107314110e8014130f7714120f7715130f7214120f8515130f7a15130f7814120f7314120f7d110f0cb10f0e0b7c0d0b0938080706c0110f0d450d0c0a5f13110e6813120e6d14130f6514120f6a14130f7215130f6c15130f721614117315130f7314130f6313120f6313120f5612110e5d13120e5f12100d6513120f6413120f6113120e6512120e5e12110e6113110e770e0c0a8e120f0d6814120f5411100d5d13110e6412110ea8211e1b7a1917135e201d19531f1d196922201b7522201b6b23201c7c23211c70201e1a7a201f1a5f1d1b177e211e1a671e1b18731e1c17651d1a16741d1b17721b1916891c1b186c1918156e181613811a18156c1716127d1816124d12110eb319161481100f0c63110f0c990d0c0bc413120f4a0e0d0b560e0d0b78100f0d7b100f0d70100e0c8d11100d79100f0c7e100f0c7f110f0c77100f0c720f0e0c7e100f0d5f0f0d0bff161311ff14110fff070605ff050404ff080706ff060504ff040403ff040303ff070605ff090806ff090807ff060505ff080706ff171411ff1c1915ff110e0bff0e0b09ff0d0a08ff13100e891715126f151310811715116c151410831816138a181713991b1915841a1815841a18158c1c1a167e1b1915901d1b174a161511b8141210e21a1816460c0b09b11716139713110f5d1b19157a201e1a9424221e9926241f8624211d9a2725208926241f97292721902825209829272292272520992927227d25231e8626241e7e24221d8f292622842725208a282621992a28228126241f97292621d4282420a5201d197f24211c7a22201c982624209f27241f98272420a226241f9f25241fa424231e9623211da624231f9421201ca222201c8b201e1aa321201ba91f1d1aff1b1916ff110f0cff302a26ff211c19ff080705ff0e0d0bff0d0c0bff0d0c0bca070605eb080707ff0d0b0bff0c0b0bff0c0b0aff0e0d0cff13110fff24221fff1c1916ff0c0a08f9161310991c1b17921c1a16a61f1e1a921d1b17931e1c18841c1a167d1a1815831b1a16971f1d1a831d1c1795201e1a9d201e1a881e1c1894201e1ad21e1b18df201d1a7b1c1a16861d1c189a211e1a97201e1a94211f1b9b201e1a92201d199e211e1a95201e199e211e1a9c201d19991e1c188c1d1b179a1e1c189d1d1a169d1d1a16901c1915901a1814941b1915921b1914941a18146013110ddc13110e4a0a0806e6151210870d0c0a460e0d0a5c14110e731715118518161291191713801916128f1b1814941d1a15831b1814831a17138f1b18146c1614107d1a1713681715105c15130f71171511831a1713761916128a1a1713831816116c1614107d171511a413110ed11714107015130f7415130f801614107a14120f7e1614107a15130f811614107f15130f801614108816141080161310811613107c151310801513108814130f841613107614120f8115130f7e1513107a151310791513107f110f0cc9100e0c870d0c0a3a090806c3110f0d490e0d0a5212100d6413120e7514130f7215130f6d14130f791514106f1513106e1514106a15130f731513106614120f6314120f5312100d5812110e5a12100d6814130f6314120f6514120f6a13120f5f12110e6113110e810e0c0a9b12100d5812110e51110f0c6313110e6013110ead211f1b7a1a17145a1f1d1954201d197124221e6e23211c7225221e7822201c6f211f1b8122201c601e1c177c211f1a641e1c176b1e1c18611d1b17751e1b186b1c1a16751c1a17681a18156d191714801a18156c1715127a1716125412110ebb1c1916a113100e6913110e8f0d0b0abe13110f500d0c0a4d0d0c0a7b100f0d70100e0c70100e0c88110f0d6e0f0e0c7c0f0e0c7c100e0c780f0e0c6f0e0d0b7c0f0e0cff13110fff1c1815ff13100eff11100dff1a1714ff161411ff14120fff100f0dff0e0d0bff13100eff161411ff151310ff13120fff13110fff181613ff13100fff161311ff191512ff0f0c0aff0e0b09ff16120fa412100d7715141167151311821816137e18161384191714811a1815821a1814871b19157c1a19158b1c1b1750161512ad141311de1b1916560c0b09a616141196141210641c1a16711f1d189525231f8b24221d8724221e982624207b23211d962826218e282520992926218f272520992927228826241f962927218e282621932927228a2826218e282620992b28228327241f93292620d9292621a61f1c1879231f1c7d23211ca22825219425231ea12825209a24221da025231eaa25231f9723201ca422201c8d1f1e1a98211f1b831d1c18aa1f1d19ff161311ff181512ff272521ff0c0b0aff191714ff211e1cff201d1bff201d1bff201d1b74070706b90f0e0dff1d1c1aff1d1c1aff1e1c1aff1e1d1aff1e1c19ff090807ff1d1b18ff23201dff0d0b0aff181513921b1916a51e1c198f1c1b17901d1b188b1c1a178f1d1b17931d1c189c201e19881d1b1897201e1aa0211f1a861e1c1893201e19db1f1c19d8201d19761c1a168b1f1d189f221f1b93201e199a23201c94201d1993211e1aa422201b95211e199a201d1997201d198e1e1c18851d1a169a1f1c18871b19158a1c19168d1c19168f1b1814901b19159e1c19158f1a17146614130fd213110f4b0b0907e2161310800d0c0a430e0c0a6315120f711714107f191713871b1814811a17138a1b18148b1b19158a1b1815831b1814901c19156a1715117c1a1712721815116e1916127d191712891b1914781916128a1b1713861916116816140f7e191611a814110ecb1915116a15130f7b171410831714117b161310811715117715130f861715118717141080161410831714107e16130f791614107514130f811715117614120f75151310731513107f1613107a151310851614107515130f8111100dc1110f0c7c0d0b096e0b0908c712100d480e0d0a5b12110d6513120e6f15130f6b1514106d151410731513106b1413107c1615116a151310731513106413120f6613120f5d13110e6614120f6213110e6e1513106514120e6514120f6d14130f5a12110e6113120f870f0d0b9712100d5412100d5613110e6313120f6614120fb0221f1b7e1a17146723201c5b211f1a7825221e7725231e7525231e8125221e7022201b7d23201c671f1d1979211f1b631e1c186c1e1c18631d1b17731d1b17681c1a167b1d1a16701b18157b1a18157b1a181474171613801816135112110fc01a18157f100f0d6b12100d950d0c0ab313110f6c0f0e0c610e0d0b7d100f0d6a0f0d0b720e0d0b8811100d700f0e0b810f0e0c7a0f0e0b760e0d0bc10c0c0aff221d19ff1c1815ff171412ff1c1815ff161411ff161411ff171412ff161411ff161311ff151310ff161411ff161411ff161411ff151310ff161411ff161411ff141210ff151311ff171512ff1f1a16ff0f0d0bff0e0c0aff0e0b09f6120f0d671413107e1614117917151284191714871917148e1a1915821b1915871b19168f1d1b1750161512bc151412f21b19174b0c0b09ad1615128e13110f87211e1a87221f1b9324231e8223201c8723211d9326251f7d24221d982725218c27251f962927228e272520922a2721902826209d2b2923982a2822962a2722902926218c2825209d2b28228d2926209a2a2821d7292520a81f1c198a26231e8925231eaa292621a027241fa4272520a725231e9d25221da624211d9922201ba123201c8a1f1d19941f1d1ae612100eff14110eff1f1c19ff25221fff0b0a08ff211e1cff23201dff1f1c1aff1a1917ff1b1a18ff1c1a1969070605c30f0e0dff1c1a19ff1c1b19ff1c1b19ff1d1b19ff1c1a18ff1c1b18ff12100eff110f0dff23201dff13100eff0c0b09a41e1c198f1c19168b1d1b179a1e1c18981e1c189d1f1d199f201e1a8c1e1c1895201e19a9211f1a8f1f1d1899211f1ad91f1b18e8211d1a841e1c1795211f1aa6221f1a9e221f1a9f23201ca2221f1b8a201d18a0221f1a98221e199a211e1994211e198a1e1b17861e1b16981e1c17871d1a168a1c1a159a1d1a16911b19158c1b1814a11e1b16891a17136d161410db14110e480a0806f6161310860e0c0a410f0d0a751816117d1916127f1a18137e1a1813831a1713871a18138f1d1a14841b1814801b18138b1e1b16711916127a1b18137d1b1812761a1712831b18138b1c1a157a1a1713871b1813901b171271181510831a1712a614110ede1a16137718151180181611871815107d171410841815118216130f7b1714107f17141080171410841715117a171410741614107815130f7d1614107815130f78161310801614107b1513107a15130f861614116f14120e8711100dc7110f0c6c0c0b093d090706d812100d4a0e0d0a6514120e6d15130f7015130f6814120f74151410731513106f15130f751614106915130f711513106b14130f6815130f6714130f701513106514120f711513106714120f6414120e791513106414120f6c141310860e0c0aaa13100e5f14120e5b13110e6714120f64141310a5211e1a761916146522201b5b211f1a7725221e7625221e7325221e7d25221e6e23201b7923211c63201d1979211f1a641e1c1870201e19691e1c18781e1c18651c1a15791d1a17661a18156c1917147b1a1814711816137d1716125b14120fc21a18157e110f0c5b110e0c9c0d0b0ab412100e640f0e0b690f0e0c82100f0d700e0d0b780f0e0c94100f0d7a0e0d0b7a0e0d0b7f0f0e0cb4151310ff2d2721ff1a1714ff14110fff161411ff171412d31412104d100e0c4a100e0c420f0e0c440f0e0c43100e0d4a100e0d5a100f0e54100e0c4d100e0c4c100e0d65110f0dff151211ff141210ff13110fff11100eff1e1b17ff120f0dff0f0d0bff0d0b09ff1d18148316141175161511811816137a1715127d181713811a18147e1a18158d1c1a1657171512b5141311f51b1917490c0b09b41614128a13110f7e201d199223211d9823221e8722201c9023211d9c2725208925231f902624208f2825209729262197292621922825208b28251f982b2822932926219b2b2823952926218d2825208f2825208027241e90292620ce27231f9d1e1b188525221d8824221da52825209f26231ea126241fa024221d9923211c9e22201b97201e1aa2211f1b8b1e1d19da221f1cff171412ff2b2724ff1f1c19ff0d0c0bff201e1cff1e1d1aff1e1c1a5514121030100f0d5911100e3e11100f42100f0e4711100f3c0f0f0f5b1110105c11100f440f0e0c4e100e0dff1c1a18ff1a1815ff1c1a17ff090806ff1f1d1aff1d1a16ff0b0a08ea1c1a168b1c1a16951d1b17901d1a17971e1c18a3201e1a911e1c1897201d19941f1d18851e1c178b1f1c18c91e1a17d21e1b18831e1b1795201e19a0211f1a9a211e1a9c22201b9c221f1a861f1c179b211e1996201d189a211e1995201e1991201d18861d1b16991f1c17851d1a16891c1915871c1915831b1814951c1914971d1a168c19171270171511d715120f3e090806f315120f890e0c0a460f0d0a7a191611871a18137b1a18137e1b1813891b18138e1c1914911e1a15861c1914841c1a158d1e1b16721a1712791b18137b1b18136f1a1712811b18138e1e1b15801b17138c1c18137d1916116a171410751916119914110ece1a161274181511851916128418151178171410841815117d1714107a171410821714107f171410831715117c1714117d17151177161310801714107516130f76161410741513107415130f86161410801614106f14120e8a13100dc5100e0c620c0a0835080705d9110f0d480e0d0a6c14120f7415130f6d15130f6313120f771514107815131070151310761614106f151310721513106714120f6314120f6814120f6a14130f6714120f741614106e14130f6614120f6914130f6013120e5b13110e7a0e0c0a9b12100e5c14130f6014120f6615130f6114130f991e1c18701716135f22201b5b211f1a7726241f8025231e7524221d7d24221e7323211c7522201b64201e198122201c631e1c1872201d19721e1c187b1e1d18681c1a167c1d1a16721a18156b181714871b19156a171511781615114d12100eb11b191677100e0c55100e0c930c0b0ab713110e6b0f0e0b76100e0c85100f0c6a0d0c0b810f0e0c8f0f0e0c730d0c0a7b0d0c0afe12100eff282420ff1c1815ff11100eff161311a013110e5412100e4c12100e561311105c1311105212100f5212100f6012100f4b11100e3e11100d6711100e58100f0c480e0c0b73100f0e66110f0ef9131110ff141210ff151211ff13110fff1b1816ff181512ff0f0d0bff0e0c0aff1815129513120f87161512881816147c1716138b19171474171613851917144b14120fb0141210d7191715430b0a09a81513118d13110f7f1f1d189d24221e9724211d7f211f1b9625231e9427241f8124211d92272520952826209228262094282520992927218c282520a12c2923972a2721992b2822992b2721902926208927241f8728241e8526231ebe23201c941c1a167b23201c8523211ca8272520aa26231ea224231e9c23211c9f23201c95201d19981f1d19a71f1d19ff151311ff191614ff332e2aff1e1b19ff0d0b0aff1d1b19ff1c1b19ff1c1b19591412103b1412104b12110f4f131312511413125c1414135c151413471312115c141414641312123b1110105e100f0e600f0e0dd2161412ff1d1b18ff1e1b19ff0f0e0cff171512ff201d1aff0d0c0aff100e0c9d1b1916981d1b179c1e1c189e1f1d19971f1c1898201e198d1e1b178a1e1c17821d1a16bd1b1915cb1d1a177a1c1a1693201d18a3221f1aa8221f1a9a221f1b99211e198c201c1794201d189a211e199f211e19911f1d18941f1c17911d1b17961e1b17841d1a15921d1b16921c1915831a1713961d1a158e1c19148419171268151310d314110e3c0a0806d815120f840e0c0a480f0e0b7b191611901b1914761917137f1c1814901d1a15861d1914911e1a15881d1a15881d1a158e1e1b15771a1712851e1a157f1c1914761b1812861d19148a1e1a15831c19148c1d1a15791916116f1915106d1815109113100dc31815116f181511821916128719161186181510841916127d1715107d1815117c17141085181511831715107b1714108217151181171410811714107515130f821714107b15130f7915130f831614107a15130f6b14120e8512100dc2110e0c670c0b082f080605c3110f0d4c0f0d0b6e14120f7c1614106a14120e6a15120f7b16141072151310711513107a161411701514107316141070151310751614106c141310741614106d15130f721614106e1513106a1513106714120f6213120e5413110e750e0c0a9812100e5b14120f6014120f671513106d14130f9b201d19751917146122201b56211f1a7c26241e7024221d6f23211c7a24221e6e22201c7822201c611f1d197922201b5f1e1c186b1e1c186d1e1c18731d1b17671c1a16801d1b17741a19156a1816137e1a18156a171512761614124911100db21b18147c110e0c4e0f0d0b810c0b09b214110f6c0f0d0b6f0e0d0b760f0e0c730e0d0b7e0e0d0b880e0d0b7a0d0c0aff171512ff141210ff141210ff110f0d7f13110e6713110e53131110521412105e151311501312104c131210531413116013110f4212100e4d13110f4212100f4e12100e791211107612110f71100f0e71100f0d7d110f0ea712100eff141211ff141211ff141211ff181714ff1d1a17ff100e0cff0f0d0bff100e0c9a1413108917161379161412851817147717151381191715461312109211100ed51816142d0a09089513120f8a13110f841e1c189122201c8822201c8922201c9425241f9026231f8324211d9a27251f8a26231e8625231e94272520a02a27228d27241f992b2822962a272193292621982a2721952a27219129251f8327241e8525231ebe231f1c9e1d1a177c221f1b8022201bae2825209524211c9723211c9921201b96201e1a981f1d19901d1b18fe12100eff161311ff312d28ff100e0cff1a1816ff1c1a18ff1b1a186912100f6a14131252151312411614126116141254161414501615145d16161557161515491414145016151559141412461312115712110e60100f0e75100e0d8911100eff1c1a18ff1c1a17ff191714ff0b0a09ff22201cff13110fff0a0908941c1a169a1d1b179a1e1c18971e1c179e1f1d18971e1c17881d1b17821d1a16bd1b1915cf1e1b177b1c1a158c1e1c17a6211e198d201d1890201e1995201d19851e1b1696201d188c1f1c17901f1c178a1f1c178f1e1b16881c1a168a1d1a16791c1914941d1a15911d1a15841b1814911c19158c1c19147f1a17136015120fb812100d2b090806c414110e780e0c094a100e0b861a17127f1b1813751a1713871d1a158f1e1a158b1e1a158a1d1a15861d1a15811d19147f1d1a15721a1712871e1a157b1c18147a1c1813841d19148c1d1a15831c1914931d1a15801b17126e1916116f1916119414110ec61a16126e1815117e19161287191611721714107b181611781715107a1714117f1714117a1715107c1815107316140f7d1714107615130f7615130f6615130f831714107a161410781614107f1714107916130f6c14120e7a110e0cad0f0d0b6d0c0a0826070605bd110e0b4f0f0d0a7614120f6e1613106d15130f7115130f7d1715117b1514107014130f741514106c14130f6d15130f6c15130f741614106915130f771614106a14120f74151410701413106c15130f6e15120f6113120e5712100d780e0d0b9913100e5a14120e5f14120e6714130f5d14120fa3211e1a761a16146223201b4f1f1e196c24221d6d23211c6a22201c7e24231e7422211c7823211c611f1e197922201b611e1c1875201e196e1e1c18741d1b17691b19157c1d1a1770191815721917147a191714681715116e16141147110f0dad1714129512100d440e0c0a8d0c0b09b212100f620d0b0a640e0d0b780f0d0c7b0e0d0b7c0d0c0a850e0d0aff0f0d0bff191714ff151310e913120f4a15120f59151210521614125918161356171412451513114c1514124a1513124f141211491513114d14131087141311621413121e12100d3a12110f871312106812110f6411100f7811100f7111100f60110f0eff141311ff141210ff13110fff131110ff1d1a18ff14110fff110e0cff0f0c0a83151411821514118116151271161412791716134412110e9711100ed716141238090807a012110f8b13110e7b1d1a1784201e1a8e22201c9323211d9024221e8725231e8725221d9328251f8b27241f8b26241f8d26231e9528262194272520a02a27228d27241f91292621912926208a27241f992926208527231e8c26231eca24201d9e1c19167e22201b76201e199625211d8e23201b92211f1b9b211f1a9c201d19971e1b188e1c1a17ff0e0c0bff24211fff090806ff1d1b19ff1c1a18ff1b1a186e131211631413112e1413115d191715621a18164e17151254181615541818165c1a191750181816431615144e171716471616154d1413123b1412116f1413114a12100f6a100f0e790f0e0dff1a1815ff1a1816ff1a1816ff070605ff201d1aff100e0d991b1915921c1915961d1b178f1c1915921d1b169d1e1b17881d1a168b1d1b17c51c1915cf1d1a17791c1a157f1c1a15911f1c18861f1c178c1f1c1898201d18871e1b1694201d188c1f1c1795201d178a1f1c17981f1c16871c1a15911d1b16831c1914921d1a16921c1a158c1c19148e1c1914831a1813781815115c14110eb813100e30090706b6120f0d7f0e0d0a42100d0a801a1712731a1612771c19148e1e1a158e1e1a157f1d1a148f1f1b15861e1a157c1d1a14861f1b166e1a1712801d1a14811c19147e1c1813831d1914841d19147c1c1913871c1813831b17126d191611771916129614110ec91a161269181510731816107b1916116a17140f7b1816117c1815117a1815107a1815117a1715107e18151174161410831715117716130f7d1614107115130f801714107c15140f7d16140f7e1614106f14120e6213110d77100d0bae0e0c0a6a0c0a084e090706b70f0d0b440d0c097213120e6413110e6f15130f7715130f7e1614107015130f7215130f791614116815130f7115130f6914120f6f15130f6e14130f761513106d14130f6e1513106814120f6614120e6f14120f6013110e6114110e790e0d0b9e13100e5512110e5412110d6015130f5813120fa1211e1b761b17145a22201b50201e1a7426231f6d23211c7525231e7b25231e7022201c7522201c601f1d198423211c601f1d1875201f1a6e1e1c186f1d1a17671b19157c1c1a166c191814691817137b191714641614116615131043100f0c9d1614116e0f0d0b5e110e0c970c0b0ab913110f670e0d0b630d0c0a7c0e0c0b7a0d0c0a7f0d0c0a8c0d0c0aff13100fff1816134d161411541614124f1816145e1b1816581a181555191716561917164f1816154d1715134d1614126d191714a31715145d1615112d12100d1112100d5b13110e641513125615131169141211601211106011100f5911100f5411100f7111100eff13110fff13110fff141210ff171513ff14110fff110e0cff0c0b097d131210761412107e1513116e131210701514113e110f0d9a100f0dc2151311440b0908a813110f9314110f7d1d1a167b1e1b1793211f1b90211f1b8c23211d8f26231e7c24211c9327241f8425211d8c26231e8624221d962825208f27241e922825208d26241f8726231d8c27241e8726231d8e27241f8125221d8e27231ec3231f1b9e1d1915711f1d19761f1d199d24211c8d211e1a9c211f1b951e1c18951d1b18921b19158b1a1815ff11100fff141311ff12100fff1c1a18ff1c1a1957121110611615145e16151316151310541b19175b1b1a1850191816511a1918551c1b19601f1d1c521c1a19521b1a19521a19194a1918175a17161562171614721514121b100e0c5f1311116410100f580f0e0dff191715ff1a1816ff131210ff0f0d0cff110f0e8c1a1814911a18158c1a1814891a18148e1c19158f1c1a16871c1a168e1e1b17bd1a1715cb1d1916701b1815801c1a1697201d18881e1b1794201d18911f1d17821c1a168d1e1b168a1f1c179a1f1c17881e1b15981f1c177d1b19148a1d1a15811c1914831b1813881b18137e1a1713871c18147b1a1712751915115014110eb912100d3a0a0806b9120f0d88100d0b440f0d0a831b17126c191611781b1813921e1a15851d1a14831d19148d1e1b15861d1a157b1c1814861d1a156e1a1712811d1a147e1c1913751c19137f1c19147c1d19147b1b1812841c1813761a17126d191611761a16128e13110dc71a161166171510751916117d1916116e1714107c191611751815107617151071171410791715118018151070171410851816116c15130e761614107416140f7416140f7515120f7515130f7815130f6a13110d6313100c6e0f0d0bae0e0c0a680b09072b070605a60e0c0a470d0c097614120e6413110d6e14120e7a15130f781614107415130f6f14120f7a1514106914120e6e15130f6a14120f7115130f6b14120e7015130f6a14120f6a14120f6b14120f6814120f6313120e6213110e5e13110e700e0c0a9a13100e5112110e5612110e6214120f5d13120f95211d1a661816136023211c5c22211c7225231e6b23211c7926241f7e26241f6c23211c7022201b5e1f1d197f24211c631f1d19711f1d196a1e1c176c1c1b16641b1915741b1916691817136e18161378191714661614116c1614124911100eab17141275100e0b5d110f0c9c0c0b09bc13110f600d0c0a600c0b0a750d0c0a770d0c0a770c0b09860b0b09d313110f4f1816136b1a1815521b1a165a1c1b18601e1c195d1e1b19521b1a184b1a1817581716143f161512611b181562181613981917153013110e1914120f6c161512791615125f1716145e151413601413125e1413125e1413115a1212116412100f8512100e79100f0eff13110fff161412ff191715ff120f0eff0f0d0bff0d0b0a7711100e7b12110f7c13120f701412107415131142100f0d970f0e0cca141311430b0908ad13110f9512100e731b19157c1d1a168a201d1989211f1a85211f1b8b24211d8324211d9526231f8324211d9527241e8b26231e952926209327241f952826208925231e8f26241f8925221d8524221d8c25231d8424211c8c25221db7211d1a8a1916137a201d1983201e199b221f1b891d1b189e201e1a971d1b17921b19168918171489181613ff0f0e0dff131211ff11100fff1a1817731312105f16151470191817541817152a17151264201e1b4c1e1c1a6a1d1c19521d1c1a5a1f1e1c581f1e1c5c201f1d501d1d1b511d1d1c4d1b1a1a50191817691a1917741514122211100d75141311601312115d100f0f7f0f0d0cff191614ff100f0fff0d0c0bff100f0e8f1918148c181714941a1814851816138a1a18148d1b1915871c1a15881c1a15b51a1714a9191613761c19158b1e1b17941f1c18851c1a15971f1c17931f1c17831c1a15851d1a16871e1b16901d1a158c1d1a158d1e1a15791a1813871c19147c1a17137b1a1712831a17127d191611831a1813831a1713731815115014110ebb12100d44090806c613100d8b0f0d0a410f0d0976191611711a1611731c1813841c19147f1c1914841d19148f201c16851e1a15781c1814881d1a15701a1712811d1a14811d1914771c19147f1c1914851d1a14781b1813801b1813791b18126c181611741a17128913100da116130f6a1815117d1916117b1916116d1614107e19161275181510781715106f161410781815107918151074171410791815106a15130e7316130f6e15130f6f15120e7414120e7814120e7714120e7313110d5e110f0c680f0d0ab30e0c0a6f0b0a0837080705ad0f0d0a460c0b096c12100d6613100d6e14120e7214110e7414120f7814130f7315130f791513106914120f741513106f14120f741514107014130f7214130f6e13120e7014120e6a14130f6613120f6714120f6113120e5f14120e720e0c0a81100e0c5913120e5812110e6013120f5e13120e8d201d1a711b18156423211c5822201b6c23221d6d23211d7425231e7c26231f7224221d7923211c601f1d187122201b611e1c18701f1e1975201d19751e1b17611a1814711b19166b1817136d1716127a19171469161411731614124c11100d9c171412750f0d0a5b100e0c9e0d0c0ac314110f5d0d0c0a630d0b0a760d0c0a760c0b09820b0a095f19171448191714661c1b18581b1a17511e1d1a6822201d6b22201d59201e1c491d1b1956191715431817143d181715531918173b1a18145f18171489181715a1191715751917145d1715146c161514621514135c15141358141312681615134e1413116712110f6e110f0d9112100eb2100e0dff151311ff181614ff12100eff0e0c0bff1a17147910100d78100f0d7c13120f7412110f7b13121043100f0c970e0e0cc51412103f0a0907ad12110f9712100e6f191714801d1a17811e1c188b201e1a91211f1b9324211d8924221d9926241f8c24221d9427241f8e26231e972826209427251f962725208425231d8e26231e8e25221d8624211d8925221d7c22201b78211e1aab1f1c19961b18157b1f1c187e1f1d1891201d198d1e1c18991e1d19961c1a16991c1a17951917158a171613ff11100fff131211ff100e0efd1917165f16141361181716611b1a18801d1b1a431e1b18691f1e1c561d1c195c1f1e1c6921211f532524235c2625236b2525225d2322204d201f1f471e1d1c561b1a19461717145216151469171513991615135a1413125f1212115c11100f780c0a09ff110f0fff0a0909ff100e0dee1917148917161293191714851816128e1a18148b1a1915801a181473191713aa191612c21b1815791b1914861d1b168e1e1c17831c1915911e1b16931f1c178a1d1b16921e1b17871d1a15871d1a15841c1915901d1a15891c19148a1d1a1577191612811a1712801a171279181511841b18138a1b18147d1916125914110dbd12100d450a0807bf14110e8c100d0b430f0d0a6e191611771b17126f1b17128c1d1a14891d1914841d1a1494201c168b1e1a157c1c1813881d1a146c191612831e1b15821d1914731b18137c1c1914851c191375191712831b18137519161168181510621714108413100dbb1915116f18151177191611781815116b16140f7a1816117517151079181510771714107417140f761815106816130f7d1714107816130e7416130f6915120e7414120d7114110d7213110d7614110d7813110d6912100c740f0d0ab80e0c0a6d0b0a0842090806a40f0d0a460c0b086712100d6d13110d6a13110d7914120e7c14120e7614120e7914130f8215130f6a13120e7915130f6a13110e7615130f7114130f6f14120f6d13120e7314120f6513110e6513110e6413120e5d12110d5312100d700e0c0a9812100d5d13120e5812110d6213120e5e12110eab24211d801c19166823211d6023211b6b24221d7324231d6f24221d7524221e7724221d7d25231e62201e1975221f1a611e1c1874201e1973201d18781e1c17641a18156f1b1916671816135f1614117718171461151310771614115712100db9191713730f0d0b61110f0d8c0f0d0cb312110e5c0d0c0a5d0c0b09750d0c0a780c0b0a501c1a17461f1d195e22201d69252320682624226326242258232220602523214f22201d48201e1c331e1d19351f1e1b4f1e1d1a7a1e1d1b731a19177619171575191816791b18167a1817165a1917165618171561161514671615145d1514138714121074131110881312116110100e600f0e0d9d0e0d0cff10100fff151312ff1b1715ff12100eff0e0c0b730f0e0c6b0e0e0b7612110e6910100e7d12110f4e0f0e0c860f0d0cd5141311330a090791100f0d9012100e68181613771b18157e1e1b178a201d1985201e1a9123201c8722201b9725221d8b25221d9226231e8924221d8e27241f8c25231e9327241f8724221d8c25221d9226231e8723201c8d25231e8724221c7e211f1ac9221e1aa81b1815811e1c18881f1d188c1e1c17941d1c188f1c1a178a1918159d1b1a1695191815ff0f0d0cff211f1eff0d0c0bff1715147015131259171615601b1a19681e1c1a71201f1d642222214d29282738292825512c2c296b2f2f2d693333326230302f5e2e2e2d542b2c2c602f2f2d4b282826422726243b242220511e1d1b7e191817751817157d161514591514126412111083100f0eff181513ff060505ff191615ff0908078c17151293181713871816138d1917138f1a18148919181476181612ca1b1814da1c19167e1c1915931e1b17841c1a158b1c1a16871c1a15891d1a168b1e1b16941e1b16871d1a15891d1914881c19158d1c1a15891c19148f1c19147b1917127c1a1712761816116f1715107d1a1712841a17137f1916125b14110eb213100d430c0a08d516120f780e0c0a3f100e0a62181410731a16116d1a1612911f1a15801d1914831d1a148b1f1b15881e1a157a1c1913871d1a156d191712791c19147a1c1913741b18137c1b1813871c1914771a1712801a1712781a17126d1816116417140f9f15120ed31b171370181510831a16116f1715106e16140f721715106f16140f7c181511791714107416140f7516130f7216130f7816130f7916130e7715130e6d14120e7013110d6312100c6512100c6e13100d7413100c6b120f0c72100e0bae0f0d0a6d0b0a08500a0907bc0f0d0b430d0b085a110e0b6d12100c6c12100d8414120e7613110e7513110e7513120e7f14120f6a13120e7914120f6a13110e6e14120e6c13120e6d13120e6912110e7614120f6813110e6212110d6813120e6312110e56110f0c860f0d0baa13110e6013120e6213110e5b13110e5f13120ea223201c831c1a166a25221d5d23221c6d25231e7023221d7325231d7523211c6821201a7121201b5f201e197a22201b641e1c1875201e19711e1c176f1d1b17671a1815761b1915601715114a13110e7e19171367151411731513105b12110eaa16131184100e0c54110f0dd91d1915390a09075e0c0c095f0c0a09770c0b0a371d1b174b1f1d1a62211f1d5622201e5f2523215d252321532221205a242322512322214822201e38201d1b3c22201d4121201d581e1b17511d1c1a4f1c1b19611c1b1940191815501a19185a191817571918175c1918165318171652171615521412104f1413119b13121067100f0e550e0d0d5d0f0e0dac100f0dff0f0e0dff0c0b0aff191716ff13110fff100e0ce112100e510c0b097a0f0e0c6e100f0d78100f0d540e0d0b63090806c911100e3c0a0908d51816134812100d67171511721a18147d1d1a168c1f1d1983201d199623211c84221f1a9524211d8a23211c9024211d8e24211d8e26231e8825221d9527251f8d25231d8a25221d8c25221d8823211c8f26231e9225231d9023211cc0201d19ae1c1915801e1b17831e1c188a1e1c188b1b1915921c1a168a1917148a1817148b171513ff12100fff211f1eff080707ff1615145d171513591a1918671e1d1c6821201e732423223c25221e392928262e272622502c2b28652d2e2c5a2f30305f303030592d2e2e522b2b2c582e2e2e4e2b2b2b442929274525252348232220471d1c195b1c1b194e1817165a161514561413124b100f0dff181614ff0f0e0cff181514ff100e0dce1513118e181613861716128c1716128d1a1814941b19158a1b1915c0191714d41c1915801b18148b1d1b16851c1915851b19148a1d1a15861c1a157c1b1914891b1914811b19148a1c18148d1c19148e1c1914801a1713871b18137a181612811a17126416130f5214110d801a17127e1a16117d19161070171410900e0c09390a0806d214120f7f0e0c093c12100c63181510711916116e1a1611921e1a14831e1a14891e1a158d1e1a15851e1a157d1c1813851d1a1472191712781c1913751b17126f1a17127f1a1812801b1813751917127f1a1712791a171277191712761917129414110ec9191611751816117a181611711815106d16130f721714106d15130e6f16140f7315130e7316130f7816130f7415130e7b16130f6f15120e7114120e6c13110d7513110d52100e0b540f0d0a7312100c7012100c6e110f0b71120f0cc2100e0c6d0a090736080705b50e0c0a420e0d0962100f0b6b12100c6d12100d8613110d7a13110d7a13110e7613110d7c14120e6e13110e7713120e7012110d6b13110e6812110d6e12110e6c11100d7013110e6312100d6812110d6913110e6b13110e6413110e7f0e0c0aa011100d6312110d5b12110d5d12110d5f11110d8f1f1c196f1b181458211f1953201f196524221d6f24221c6622201b64221f1a6c22211c6c22201b64221f1a7723201c621e1c186f1f1d186b1e1c17751d1a16651a19146e1b19155f171612571513106f1716125914120f5612110e4d11100d9415131072100e0b56100e0bb51b1814460b0b09590b0b095b0b0a094a1d1b194c1e1c1a50201f1c592421205d2423215e2524234f21212058242322542422226a23212035201e1c3821201d5e1f1e1d71201f1e61201e1c71201e1c781f1f1d4d1d1a174f1d1c1b541d1c1b5c1c1c1b6a1b1a196419181752191817461615138a1716156314131259100f0e620e0e0d5b100f0f750f0e0d8d0a0909ff0d0c0cff0d0c0cff100e0dff110f0dff0e0c0bff12110f5f0c0b0a6b0d0d0b5f0e0d0b5a0e0d0b440d0d0b63090807c3110f0e460b0a08b11614125a13110e661614116d1916136e1a1814751d1a16711d1a1688211e1980211e1a8722201b9123211c9825221d9123211c9125221d8e24211c8b24211c7f221f1a8924221d8924221d8923211c9225231e9224221d9624221dab1d1a17911815126b1b1815741b1915831d1b17891b1a1581191814781615118d181714ae161412ff1f1d1bff0f0e0dff131111ff161514561a1917621e1d1c62252423632725236825242351262624512a292835262523502c2c2a592f2f2e5a3130305e303031592d2e2f4a282a2b592d2e2e552c2c2b5f292928472626235e23232165201f1e72201f1e4c1e1d1c581a1a19631716154a121110ff171513ff181513ff070606ff181615c60d0c0a8d1716128215141190171612921b1915921b1915951c1a16a6171412b51917136a1816127b1a1813811c1a15871c1914791a1813771917127d1a1713861b19148c1d1a158b1c1914861b1814851c18147d1a1712881b181377181611761916116f1815115a15120e701715106816130f6316130f5a16130f980e0c0a41090806c713110e6d0c0b0839110f0b6a1815106317140f6c1815107a1a1711711a1711791b1813861d19147e1b1813801c1813891c19146b1815117d1b1813731a17126b181611721916117f1b1712731a1712881b18137d1a171275191611821a171279110e0bae17130f5e15130e6d16140f6d16140f6e15130e6114120e6113110d6a14120e7215130e7716130f7816130f7014110d7215120e6f13110d7214110d6b12100c68120f0c60110f0b57100d0a64110e0b5b0f0d0a5b100e0a5d100e0ac30f0d0b790a090732070605aa0d0b093a0d0b0864100e0a5d0f0e0a68110f0b74110f0c6c12100c6f12100c7012100c7613110d7013110e7913110e6911100d7512110e6411100d6b12110d64110f0c7012110d6412110d6c12110d6d13110e6812110d6f13120e640c0a088b100e0b51110f0c51100f0c5a12110d5e11100d711d1a164815120f5e211f1a56211f196523211c5e211f1a6522211c7325221d6923211b6c22201b65201e1a7723211c571e1c18681e1c17661c1b16771e1c17641a1814751b191565181612601615116a16151140110f0c5512100d3c0f0d0b9b15131073110f0d5d110e0c8012100d7b0e0d0c5b0e0d0b431e1c183f1e1c1a47201e1b5422211f5c2423235a2423235925242353232222522423234a2322205e22211f542624214821201d4d1f1e1d291b1a17151b19166d201f1d3e181613551f1f1e652121205f1f1f1e631e1d1d601b1c1b6a1b1a1949171513561715156715131358100f0f610f0f0e6911100f77100f0f330b0a09c10a0908ff0c0c0bff0c0c0bff0e0d0cff161311ff0d0b0aff11100e670c0b0a650d0c0a410a0a08570d0d0b350b0a098b0f0d0cb9110f0d4f0c0a09810f0d0c5a100f0c67151310691715126c191713771c1916671b19157c1f1c186e1e1c187e201e198322201ba226231e8f23211c8c24211c85231f1b8623201b71201e1977201e1977211f1a79201e198b23211c731e1c187f201e198c1916135f14110e741b1814781a1814821a191575181713831817148417151284161512ab151411ff1d1b19ff060505ff131211a41716156f201e1c61232322622625246c292727152523205e2c2a28452a29262f2626234a2a2a28502c2d2d592f2f315c2e3030572e2e2f4c2b2b2d562d2e2f4f2c2d2c5f2a2a29562b2a274a2222203a1d1c1a5c21211f481e1c1b621f1e1d661a1a1a4e151412ff171513ff161412ff050504ff181514be0b0a097c141310721413107e16141187181713771816127e1918148515120f7a14110e721916127b1b18137e1b18146f1917127d1b1914831b181471191612831b1814891c1915841b1814771b18137e1a1712771815117c1a1712791916117d1917127a1816115f15120e6716130e5e14110d5e15120e41110f0bbc16130f42090806b1110f0c6e0e0c092e0f0c09671814105815120d6617140f6f19151063181510721b1712711b1712721916117b1a17128f1e1a156f181611761a1712721916116117140f63171510711815106016140f751816116e1816116116130f6f18161061100d0b7b120f0c6416130e6b16130e6915130e5813100c6815120e6a14120d6714110d6f14110e7615120e7115120e6413110d6f14110d6b12100c6712100c6d12100c6d12100c6a110f0c590f0d0a590f0d09540e0c09520f0d09590c0a08bf0e0c0a690a08072b060604a80d0c0a310b090761100d0a500e0c0963100e0a5e100e0a60100e0b6912100c62100f0b6b11100c7112100d7f13110e7311100d6c11100d6811100d5e100f0c57100f0c65110f0c520f0e0b6111100c5d110f0c5a100f0c6111100d490b0908690d0c0a54110f0c4f100f0b57110f0c4d100e0b581a1513a0251f1b3a1b1914491d1b17551f1d195a201e1960221f1a6522201b5d201e1965211f1a561e1c18601f1c184c1b1915641d1c175c1b1915631b19145c191713711a181456161511571513106015130f4b12100d5011100d530d0c0a8f161311660e0d0b5a110f0d880c0b098e1b1917421e1c1a3c201d1a4b211f1c4b22211f572524224d2322214f2423224d242322512525245a2524223d23211f552726235525252344252320311e1d19241f1d1a4221201e561f1d1b5520201f5e202120642322216a21201f621e1e1e791d1d1b5a1c1a18581918177d15141364100f0e580f0f0e64111110610e0e0d70475655d59dbbb83f0e0c0abb0e0d0cff0e0d0cff100f0eff161411ff0d0b0aff11100f5d0b0a095a0b0a094c0b0a094d0c0b09780d0c0a920c0b0a9e0f0d0c3f0a09078a0e0c0b88100e0c3b0f0e0c5d15131067171511731a181459191612651b1814601b1915771e1c1877201d188d23201c80201e198622201b8322201b78201e196d1f1d18751f1d196d1e1d18741f1d186d1d1c175a181713641b19157a181512e424201c4314120f66171612691715126f161512791615127515141173141310a5161412ff1d1a18ff050504ff111110831918166520211f622424247d292829622a292711201f1c442d2a273c2a2927362928244d2a2a284b2c2c2c563030304f2d2e2e4d2c2c2d462a2a2b542e2e2f5a2e2e2d452c2b2a4f2e2d2b562929282d1e1d1a3f24221f51201f1e60212120651d1d1c681918179111100fff12100fff060605ff171513bc0b0a097412110e6813120f741513106d1413105812110e5a14120f9b171411d91e1a164212100d67171511651816126e18151173191612721916126116141075191712721916126718151168181511761815116f171410701815116a171410721715106816130f6014120e5e15120e6015120e49120f0bbe1a1511c012100d4a0a0807c4110f0c770e0c099115110e38100e0a5514110d5c15130e6d18140f4f15110d5c16130e6016130e6b181510721916117b1b1712631714106d1916116a1815105115120e6016140e6916140f5d15130f6a16140f5b14130e45110f0c4812100cb11814108914110d40110f0b5b13110d5612100c5a13100c6313110d5c12100c57110f0c6113100d6012100d58110f0b5e110f0b64110f0c64110f0b5e110f0b60110f0b64100e0b5c100e0a5d0f0d0a530e0c09550e0c09390b0a07ae100e0ab10b0a086c0a09072f060504990c0a087a0c0a08400c0a074f0e0c095c0e0d0a61100e0a4c0e0d09560f0d0a540f0d0a63100e0b6a100f0c6d11100c64100f0b63110f0c61100f0c570f0e0b550f0e0b5d100e0b540f0e0b560f0e0b500f0e0b420d0c0a380d0b099c110f0c620d0b083e0e0c09450e0d0b470f0e0b510f0e0b9b25201c3314120f731d1a163214120f361513103e161411441714123a15130f3c15130f3f1513103613110e3f14120e4114120f4813120f4812110e4b13110e4712100e40100f0c400f0e0b48100e0c55110f0c470e0d0a440e0c0a8913100ea71816137c100f0d7212100e7b1b19175a1d1c1a43201e1b6222201e5b242321572725245527262558282726522726265c2a282873262524572625234e272522542827255a2423224d232121161e1c185b22211e5e222120792221206b2222215921202068201f1f7c1f1f1e6c222220551d1c19731a18167d1919176a100f0e6e0f0f0e63121211650d0c0b9d5266627f45524f470f0e0d75100f0e580b0a09ff0c0b0aff171513ff161311ff0d0b0aff1b1815530908075f0a0a08500a09084d090807640c0a09940c0b0ab8110f0e560b0a08650b0a087b0f0c0a9c151210420e0d0a6114120f601613105315120f4413100d4513110e4e1412105f181612611916126b1a1713681a1814761d1a166f1b19156c1a18156b1b1815731c191668191613701b1814711a18146b171512ac1d1a1642110f0c891715124511100d5212100d6013110f6613110f58100f0d580f0e0c9913110fff1b1917ff040403ff0f0f0f641e1e1c58201f1f932828287d282827822b2a2a14252421782c2b2a492928263b292724662c2b295a2e2e2d573232315532323359323234512e2f305d323234712e2f2d592d2d2b532d2c2a622b2c2b3e22201f592523206622201f5f20201f6f1d1d1c6f1e1d1b75151413ff0c0a09ff060606ff181514bc0a09086c100f0c7612100e69110f0c7213110e7014120f7e14120f8014110e470f0d0a6512100d4a110f0c5312100d5c14110e6515120f5b13110e5513100c5a13110e4d110f0c5912100c5c13110d6914110e6413110d6614110e6213110d59120f0c5a13100c6b14110d6c14110d57110f0b8a15110d350c0a07c1110f0c6b0d0b09c9120f0d580b09073a0b09077d120f0c3c0e0b085d13100c6114100d4b110e0b3c0f0c0948100e0b4a110e0b5d13100c5713100c6214110d5c12100c6814110d5e110f0c5e12100c6012100c6313100c59110f0b5e120f0c5b120f0c8014110e510f0c0a74120f0b560f0c093d0e0c09430e0c09490e0b09500f0d0a4c0e0c08460d0b08460d0b083e0c0a07490d0b084c0d0b08590e0c09550d0b08510d0b08500d0b08490b0a07490b09075d0d0b085a0c0a084e0b0a07a20f0d0a510a0806b40b0a08890b09086b0a0907aa0c0b09480907054c0a08063b0a0806510c0a07530c0a083c0a0907320908063b0a09073e0a09074c0b0a07470b0a07510c0a084c0c0a08540d0b084b0c0a084c0c0a084f0c0b08500c0b08490c0a084d0c0b09490c0b08750f0d0a340a0806740e0c093b0a0907340a0907390b09073d0b0907b01c1916a81b1916a61b1816ac1b1916b91c1917b51c1917b41b1816bd1b1916ab1a1715b31a1715b119171596171412b1191613bc181613ac1714129a1513119d1412116c100e0d9412100e76100e0c8b100e0c7c0e0c0b750d0b0a8a0e0c0bac161312600e0c0b611a18174d1f1e1c4d23211e5f26242260252421622a28275f2b2a28612b2b2a5e2b2a29622c2c2b5d2b2a29542827254a28272356282825492524215b2826241c211f1c31211f1c7b25232060211f1d5d2222215e2222225f2121216920201f6020201f5e1e1d1c591d1c1a7a1b1a196211100f6a10100f5e1212115f0d0c0bc8a7c8c3714a59564a11100f7712100f8e0f0e0c66090807ff0a0909ff131211ff151211ff0d0b0aff161412720606058407070676080706730807067f090808970c0b09bc100e0d37090807800c0b0a840e0c0bb0100e0db9100f0dbe11100eba13110ec414120fc2161311ae1412109f141210a7141210b1151310ab151211c7171512c2171512c5181512c2171513a3141210b6161311b7171412be171311bd161311ba151311c4161411bf151210ba141210bd13110fce13110fc711100ec6100f0dd1100f0dba0e0c0bd8100f0dff191715ff030303ff0f0f0f521c1c1b54212120642727267429292a832d2c2a1523231f422b2a27462c2b29532e2d2a5f3333325f323231613938385e363737603536375d343535623535365d313231592e2e2d6d30302e5d2d2c2c4a2624234926242262201e1b5f202020601e1e1d5b1c1b1a6a181615ff0b0908ff040404ff141211df0808079c0c0b0ab50d0c0bb60e0d0bbb100d0bb7100e0cb4110e0dc0110f0db2110f0db3110f0dbb12100dcb13110ec613110ebf13100ec913100ead110f0db8120f0db8120f0d94100e0cbd120f0db612100daf100e0ca3100d0c9c100d0b6f0d0b09880f0d0b770d0b0a870e0c09760d0b09810d0c097b0d0b09c2110e0b41090806db12100e6c0b0a08910e0b09b6100e0bb9100e0bbc100e0cae100e0cb6100e0bb7110e0ca00f0d0b900f0c0a990f0d0aa5100e0b860e0c09b2100e0baf0f0e0ba80f0d0ba70f0d0b890e0b099d0e0c0aa6100d0aa00f0c0aa20f0d0a9d0e0d0aad0f0c0a9f0e0c0aa00e0c0aa80e0d0ab50e0d0aaf0e0c0aab0e0c0ab30e0c0aa00d0b09a30d0b09a60d0b09890b0a08ae0d0b099e0d0b09a10c0a089a0c0a088b0b0a086d090806790a08066c0908067b0908067009070681090806830a0906b70b0908630a08073f080605b60c0b09920a0907b20b0a07b70c0a08b60c0a08ab0c0a08ae0c0a08ac0c0a08960b0908860a0907910a0907a50b0a088e0a0907aa0c0a08aa0c0a08a40c0a089f0b0a08850a0907920b0a089d0c0a08930b0907990c0a09960b0a08a20c0a09940b0a08950b0a089f0c0b09a80c0b09a40c0b09711e1b182d1513108a1f1d197d1d1a1751181613751c1916931f1c197b1b1916731a17158d1d1b18941d1a17461614116a1815124513110e5d1513108a171512a1191613851614115d12100e5d120f0d7f12100e76110f0d560d0c0a290a0907ac1715137312110f5e211f1d632926235d28252358282624552a2928612e2d2c562c2b2a542a2a29612f2e2d522b2a29622a29283b2827235e2a2927672a2928a64c453e221e1c182f22211d6527262586252322772323215a2322225b2322215c2121216121201f63201f1e701f1e1c6f1c1c1b7b1312117b11100f731212115e10100f6c14120f280f0d0b481211107411100e980f0e0d950c0b096f080706ff0b0a0aff0f0e0cff151210ff0d0b0aff0f0e0d580707066e0807077c0908085f0808072c0807068e0b0a09bc0f0e0c490b0a08940d0b0a940f0d0c4d0e0c0b3d0e0c0b8113110f9a151311981513117f1613114f12100e7317141283181412921916135c13110fa61b18158719161470181412b71d1a179c1a17145315121074171411b81c19169819161372151311891614122f0f0d0b9f181512971614117412100e680f0e0ca012110f9e11100e8f0f0e0dcd11100eff121110ff030303f11110105822211f4f20212052252525642829287f2d2c2b1d2a2723512f2d2b5532302d6135322e5e333332513334335c3838385a3637375a363737543233345b35353652333333633231305932322f6a2d2d2c54221f1d44272725852422205f2121205d201f1e611c1b1a771a1918e90a0908ff060505ff151312c3090807a4100e0c4b0c0a09640f0d0bbc14110fa814120f54100e0c6f12100e46100e0c8e15120f9415120f7e14110e6912100d8d15120f9f1613109414110f6c13100ea01613107713110d59100e0b7712100d7f12100d500f0d0a8613100d9713110ea213110e63100e0b480e0b09560d0c0985100e0b440c0a08b8100d0b4b0a0806d512100d7f0c0b09430c0a0771100d0a5f0f0d0a440e0b095d0f0d0a97120f0ca114100d6c110e0b4d100d0a480f0c097e120f0b570f0c0a8e120f0c9c13100d3a0d0b0870100e0b9e13100d82120f0c380d0b0889120f0c9e13100c660f0d0a4a0e0c09530e0c093f0d0b0877100d0a7d100e0b770f0d0a6a0e0c098d0f0d0aab110e0b380c0a087b0e0c0a6e0d0b095b0b0907730c0b08840d0b096c0c0a08590c0a08700c0a08940c0a08840c0a083c09080643090705750a09075b090806aa0a08078109080647070605af0c0a0841090705740b0907740b09075b0a09073e0a08067f0c0a08970d0b09730c0a085a0c0a083d0a0907650b0a084e0b0a08720c0a088d0d0c0a5a0c0a084a0a09077c0c0b09820d0b09460b09076f0c0b088e0d0c0a900e0c0a360a0907610c0b09420b0a08660c0b09760e0c0a7f0d0c0a861f1c184919171497211d1a92201c195b1b191698201d1a9a201d1a8c1d1a175a1916149a1e1b187c1b181572191614801a171550151310551714117a1715129a1816137e1512106112100e7613110e8913110f80110f0d530d0b0a2a0b0a08b11a18157b2625235928262366292623622927254c2a2927572d2c2a532c2b2a4e2b2a2a512c2b2a512c2b2a532c2b29592a29275d2e2d2b6e2b2a29642a2929672928284f232120652726257a292827632727266627262665262525642424246122222165201f1e521e1d1c591b19175e181616561110105c121211671312113d0f0e0c1e100f0d2f11100e69100f0e920e0d0c370c0a09990d0b0a68080706ff0e0d0cff12100fff141210ff0d0b0aff1d1916700707067708080784090808580808072f080707980b0a09c2100e0d470b0a098f0c0b09950e0d0b600f0d0c4a0f0d0c87141210a71614128314120f7b1412104c13100e9e1a1714bf1c19169a1916135712100eab1b18158618161378191613c81d1a17ac1b1915641513108b181612a91917148d171512601512109b1815134e12100fad181513b31815128c15131089110f0ea113110fb812110f6e0e0d0bd8110f0eff0f0f0fff030303d71413126e22211f5923232260282827702c2c2c8231302f612f2f308a30302f563534315533302d5e3332314c33333355373737533535355334343454343334533434334d323131673131304d3232306d2c2c2b6329292945252422782828266825252464232221621d1c1b57181715b20b0b0aff050504ff161412d4090807a70f0e0c560b0a09750f0d0ba312100e9712110e4b0f0d0b8613100e6612100d9a151210ab171411a1171411861512108a15130fbe1714117713100e7814110e9715120fb71713107513100d9214110e7613100d42100d0b7f120f0d9612100da313100e79110e0c500e0c0a550d0b09700f0d0a4d0d0b09c1100d0b5a0a0806eb13100e7b0b0a084f0c0a088b110e0b75100d0b630f0c0a590f0c097a100d0aa0130f0ca914110e64100d0a680f0d0a83110e0b4c0d0b088f120f0c98120f0c3f110c0585100e0b97120f0c8b100e0b410d0b08770f0c0a8f100e0b590e0c09600f0c09700f0d0a440d0b0987100d0ba3110f0c8d0f0d0a5d0e0c09aa100d0a98100d0b3e0b0a07810d0b09a60f0c0a730c0a08900d0b09790d0b09600c0a08570a0907770b09079c0c0a089f0d0b08450908064408070661090806670a0806b00a0807990a09074a060604b70c0b09560907068f0c0a088e0c0a087f0b09083a0a0806670b0907930d0b08ad0f0c0a6b0c0a08520a0907660b0a084c0b0907750c0a088d0d0b09710d0b096b0a09077b0c0a098b0c0b09500a09075d0a0907850c0b087b0c0a084f0b0a08770d0b094b0b0a08760d0b09a10e0d0a970e0c0aad221f1b561b191594201d1997201d1a591b19167d1d1a1799201e1a861c19164f191614a8211d1a9a1d1b176d181614931c1916541513115d1614119b1b17159e19161381161411681412107c151310991513109713110f670f0e0c420d0c0a70272523632625214f262421482a272542282724482b29274b2c2a294c2c2b2a4b2b2b2a4a2d2b2b4b2a29284c2b2a29352927243e2b2a275a272726682c2c2b63282727542625255f292724692524215a2626265f26272662262525662625256124232366201f1d501b18165f1b1b1a5a1212125b1312125e141413400c0b0a3a1413114912111034100f0d610f0e0c900d0c0b4a0c0a09950c0b0a60080706ff090908ff0f0d0cff151311ff0e0c0aff110e0dfd0d0b0a84080808a30a090972090808460908079b0b0a09d20f0e0d490b0a08860b09089a0e0d0b610f0d0c52100e0d7f1412109a1613118e161310831513106a14120f911a1714a71b18159f1a16146113110eac1b1815921917138c1916149e1a1714981a171476161411a0181513c21b1815961715127e161411bd1917145c13110fa0171411b717151284141210740f0d0ca2131210af12100e630e0c0bff141210ff10100fff030303731a19187724232183292928602b2b2b792d2d2a69303030703031327630302f6536353155312f2b4932323143323332493534334c3433344c3434344b3231314c3331324d3030304e3131304731302e5d2a2b29672b2b2b58242322802827245e2525256123222163201f1e601a1715450f0e0dff010101ff161412ff080706b9100e0c6a0b0a0990100e0cc213100ea113110e67110f0cb11512107713100e9a161310ae171411931613107a14110f9015130fb21613105e12100d7d161310ab161310ac1613108013110e8b13100e7913100d51120f0d9113100ea015120fb215120f77120f0d59100d0b710f0d0ba212100d670f0c09bc0f0d0a52090705ed12100e730a08074e0c0a088a100e0b75100d0a4f0d0b095b0f0c0a81110e0b9a120f0cb313110e5b100d0b5f0f0d0998110e0b520d0b088d120f0b50130d05450e0c095d0f0c08320f0a02a8110f0b570d0b088d100d0b99100e0b770f0d0a810f0d0a7b100d0a4c0d0b098c100d0b8c100d0b8a0f0d0a6b0e0c09a10f0c0a820f0d0a3b0c0a08890d0b099d0d0b097c0c0a08830c0a08820c0a086a0c0a086d0b09077f0c0a08ae0d0a08920c0a08490a08075c090806a00c0a08780a0907ad0a08078a0a080647060504c10c0a0949080806840b09078b0b0907640a09073d0a08066e0c0a08920c0b08ac0f0d0a630c0a08500b09077a0b0a084d0a0907760c0a08960d0b096c0c0b08410908077a0c0a09a70d0b09670b0a08720b0a078b0c0a089d0d0b09740b0a08850d0b09560b0908790c0b09870d0b098f0d0c0a9d221f1c521b1815a3221e1b8c1f1d1a501b18166c1f1b19b624201d7d1e1b184c19171494201c19a51f1c1963181613901b19165d16141159171412941a1714a51b181591191613701513118a1512109514110f8d12100e72100e0d7a2725245c2a27254c2a28244e2a29264a2b2a28542e2c2b4f2c2b2a4e2c2b2a472b2a294a2b2b2a452b2a29562c2b29462a28264b2d2c2a542e2c2a52282420512b2a295e292727512827265d29282861282727592726266027272764272727622525257323222175211f1f6e1e1e1d5b1413125a1312115a161615410d0c0b491413104816151457121211440e0d0c420e0c0b930d0c0b860c0b0a8f0c0a0966080706ff080807ff0c0b0bff1a1614ff0f0e0cff0f0d0bff0e0d0bff0b0a09ff0f0d0c7a09080855090807920b0a09cc0f0e0c720c0a09760a09089d100e0c77100e0d8212100ec6181613be191613a41715126b1412106e14110f8e171412c01c19169c1816135c12100db51c19158a1815126a171412b61b1815be1d1a178a19161397191613b51b18159118151279161411ad1916145613100eb3171412ac1614117813120f5c100e0dcb141210ff100e0dff100e0dff0e0d0cff131312ff0403035b1d1c1b64262624692b2a2b642b2b2c8a302f2e733232325a31302f44302d29653937335433312d4d34353451373736563939384e3534344f333434473131314e333332493030305431302f4f32312f562a2a284729262359252323582726255b262524602423236221201f711d1c1a5a11100fff020202ff181614ff0c0b0aff0d0b0aff0c0b09df0d0b0ab913100ea112100e66110f0d9d1512107513110ea8161310a41613108815120f5f14110fa41614119f1713105f12100e7214110fa7161310a515131072110f0c9314110e7d13100e56110e0c8c14110ea014110eb715120f72110e0c5b100d0a6d0f0d0aa613100d7c0f0d0bb5100d0b660a0907e512100c680a0806600d0b088c100e0b9c110e0b82100e0b72110e0b96120f0c9e13100d9c12100c5f0e0c096e0f0d0a8a110e0b510d0b0898120f0b5c140e06490e0c097b0f0d0a9d110f0c65120d0551100d078b100d0a97110e0b750f0d0a6f0e0c097c0f0d0a520c0a08820f0d0a88100d0a640e0c09720d0b098b0f0c0a7f0e0c0a380b0a087d0c0b099a0d0b096d0a0907890c0a08820c0a08730c0a08620b09077d0b0908af0c0a08900c0a084e0a08065e0908069c0b0907860a0807a00706057507060579090806bd0a090762090706830a0907ac0c0a088e0c0a094f0b0907790c0a089b0d0b09990d0b09660b09075c0a0807730b09074f0a09077b0b0a08950c0b08700c0a085f0a0907870c0b098b0c0a08730b0a08750b09088d0b0a089c0d0b09640a0907840c0a08600a0907710b0a08890c0b09820d0b099f23201b4f1a181594211d1a851f1c18591b181580201d19a4221f1b881f1c19831d19178a1d1b17ad1f1c19551816136b1917145d1714115e181513811816139f1917138c171412601512106d141210ab1614118c12100e6a252422622927236c2f2c27522a292741292827442a2a29442a29294e2c2c2b462b2a2a452b2a2a512f2e2d502f2e2c482c2b2a5a2f2e2b562f2e2b512b2a26392c2825572928285b2a2929522b29275a29282866282828612828286027272760262626622524258323232382212020601717165a131312681313125c131211641614123e1313125d1514144b110f0e6f0d0b0a310b0a08900c0b0a980c0b0a810b0a095e070605ff090808ff0d0c0bff151311ff211d1aff181513ff100f0dff110f0dff0f0e0cdb0b090846080807900b0908c60f0d0d4c0a0908840b0a09980f0e0c530e0c0a75110f0db1161412a51614119a16141281151310781513108f181513bf1b1916b01b18156312100ea61a1714771714129a191613b31b1815af1b1815961917149a181613b51a17149818151388171412b11916135311100ea6151311a11412107f12100e6f0f0e0cff0b0a09ff0f0d0cff1b1917ff181614ff110f0eff06050466232220662927276b2b2b2b632e2e2e662f2e2d7032323245302f2b7832312e723b3935673433304533333246343434483435344d3535344c3434334631303151353534543434335033323153343331582d2d2b3b2928245c2524245728272565262625602524245f2221217a1e1e1c55121210ff070605ff0e0c0bff1e1a17ff221e1aff0e0d0bff0a0908dd0d0c0ba513100f6f12100e9d1613106d13100e95141210991512108f14120f6713100e9115130fae1714119914110f65120f0dbf1714109515120f5f100e0c9414110e7a13100e4d100e0b8713100d9c13100d9413100d78120f0c5f100e0b780f0d0ba6120f0c680e0b09b60f0c0a4e090706c4110f0c710a0907440b09077b0f0c0992100d0b780f0d0a670f0c0a94110e0ba0120f0cb1120f0c5c0e0c096a0e0c09a1120f0c520d0a088b100d0a610e0a046a0e0c097b0e0c099e110e0ba9110f0b620e0c0838160e038e110e0a7c0f0d0a730e0c09750e0c09450b0908770e0c09910f0d0a670d0b08660c0b089a0e0c09a10e0c092b0a0807950c0b098e0c0a08610908068b0c0a08780b0a08780b09075d0a0806780b09078e0b0907a20c0a084d090806650908069b0b090775080705a10706056e08070540060504aa0a090741070605810a0806a00b0907810b09074a0a0807800b0907980c0a08ad0d0b09660b0907590a0807830b0a084f0a0807730a09078e0c0a08860c0a08650908078a0c0b08970c0b087a0b0a08820b0a08920b0a089b0c0a08630a09077f0b0a08510908076b0a0907950c0a08840c0a08871e1c184f1a1714821f1c1993211d1a691a1815721e1b19a4211e1a811d1a17881d1a17951f1c18b3201d1a5c19161374191714611714125b17141295191613941916138b1613125f151210681412109215131167201f1d712b2a29632c29265d2b2926462c2a29462c2b2a4c2d2c2b4c2c2b2a462b2b2a452b2a2b462c2c2b492d2d2b4c2f2e2c332c2b274c2f2e2a792b2b2a7a2e2d2d692a292a59282828502b2a2a522a29286e2b2a2a61292929602928285c27272861272626982423237422201d8e1f1e1e581313125c1313129917161540100f0d35181815901716155c12100f630e0c0b8e0d0c0b330908078e0d0b0a890c0a098f0b0a09c0070706ff070707ff090808ff0a0a09ff0c0a0aff0d0d0cff201d1aff100e0cff0d0b0adb0b090846090807900c0b09b60e0d0b4e0a09087f0b0a09650807065f0e0d0b540f0e0c8f1513119d151311931613117c13110f6313110f7d171412ba1b1815ae1a17146112100eb41b18159b191613b01a1714ac1a1714b31b18157518151296181613b91a1815ba191714741412109816141152110f0d98151311ae1613119212100e610e0d0cff0c0b0aff171615ff100f0eff0d0b0bff161513ff1110105d25242262292928982d2c2d612e2e2f5e3131325e2f2e2f7e323433823636357b3c3a37603635324b3535334a363635513837365337383649333333493333334e3434334e3334325135353453353432622d2d2b712a2b2b5f252424482726256b28282760252424602322226f201e1c92181716ff0a0807ff0b0a08ff100e0cff0e0c0aff151210ff12100fe00e0c0bba1412105c0f0e0c8412100e6f13100d8213110fac1613119d14120f6414110f94151310a41613109a13110e7313100eb5161310a315120f6c110f0c9a14110e7312100d5a100e0c8313100da615110e9c14110e74120f0c5d100e0b6e0e0c0aa9120f0d680e0c09c30e0c0a5b0a0806bd100e0b6f0a09074a0b0907840e0c097a0e0c0a6e0e0c0a650e0b098e0f0d0a9c100e0b8f110e0b4c0d0b09680e0c0995100d0b4b0c09079c110e0b74110c05410d09027b0e0c09a5100e0b90100e0b620d0b08940f0d0a9b100d0a321810035e0c0a08760d0b09370a09078d0d0b09930e0b09670d0b09690c0a08900d0b089e0d0b083a0a0806880c0a08990c0a08700a0806900b0a07750a0907710a090764090806810b0907960b0907990c0907550908065b080605a00a090768080705ab0908068d08070641060504a10a09073a080705830a0806920a0907780a0907470907067c0a0907940b0a07970c0b08530908065b0a09077c0a09074b090806850b0908920b0a088d0c0a08670908068d0b0a088b0b0a08720b0a08860b0907940b0907890b090753090706800a090740080706810a0907920a09077e0c0a08811e1b184b19161397201d198c1f1c19701b181581201d19951f1c198b1e1b18891d1a177f1d1a17a8201d1a621a1714681816136c1714115a171411751714128b181613b91a18155f14120f7314120f91161412712b2a28682e2c295c2d2a2651312f2c4c2f2e2c52302f2f5331302f492d2d2c412c2b2b422c2c2c422c2c2b4b302f2e4e2e2d2b5c343331612f2e2d692e2d2c6c2d2d2d5e2928295c2b2b2a60322e2c6a2b2b2b612b2c2b602b2a2960292928612828288c2626255523211f86232221601616165a131312791615156f11100f5b1817144d1a1a185f1414137a100e0d4b0d0b0a860d0b0a510907067a0c0a09610a0908a0070706ff060606ff070707ff070707ff080707ff080707ff080807ff141211ff0e0c0bff0d0b0ad00b0a09360807066d0707069c0d0b0a4e0b0908b513110f4c0c0a09660e0c0b590f0e0c8d13110fa4141210981412106f12100e6512100e6b141210a51816139c1916146112100eb11b181594181512aa191614af1a1714af1b18157518151295181512a81a1714a51916147b131210901513114f110f0da4151311ae1512109b12100f6e0e0d0cff0e0d0cff0e0d0cff050505ff11100fff11100fff0f0f0e722525235f2a2928732c2b2c662f2f2e6e2f2e2c5e2e2e2e603333328737363377383633733937335639383655393937603d3c3b5e3a393a4532323148333233493333334b333332523535334a343430592f302e722b2b2a60242424542a2826652828285f26262660232322641f1e1c90141311ff090806ff090706ff0f0d0cff13110fff070706ff0e0c0bc80d0b0ab11412105c0f0d0c7f110f0d62110f0c9b14110fa8151210a715120f6d15120f8a14110eae1613109d13100e6612100db1171410a216130f5a100d0b9c14110e7e13100d390e0c0a7812100db815120e9313100d76110e0c570f0d0a5f0e0c0a8e110e0c540e0b099c0c0b09600a0806a30e0c0a710c0a08500c0a088b0e0c09710e0b095b0c0a08630c0a08900e0b09950f0d0a96100d0b430c0a08560d0b0891100d0a5c0c0a08980f0d0a61110c05770e0c093c100b03950f0d0997100d0a540b0a077c0d0b09a10e0c09660c0a08580f0b0630191103480a0907890c0a089d0d0b086b0d0b09630b0907960c0a089c0d0a0838090806890c0a08970b0a075e080706910b0a07840a090750090706560907068b0a0807910a08069c0a0807480807054e0706058d0a08064f080705ce0b0a08850807053f0504038d080706480806058e0a0806860a080675090806450706057c0a0806930b0907980b0a0749080705460908067a0a0907560908067f0b0907920b0a088c0b0a0863080706840b0907950b0a085f0a09076d0a0806990b09078b0a090752080706760a080658080706830908079d0b0907830b0a088d1e1b18601a1814951f1c188c1d1a176c191714811c1a16aa211e1a801d1a17621917148e1d1b17951d1a176118161473191713651714115d1715127917151285171412a01816135713110f6713110f7a2b2928582d2a2661322f2a5c312f2c4c32302e4d312f2e5632313155323233412d2c2c452e2d2e452e2d2d4c302f2e48302f2e5c32302d5430302e3e2c29244b272521582a2a295d2928297d2c2927692d2b2a632c2b2c602c2b2b602a2929612929296627272765262625542423217b1f1e1d5b1313135a1313129915151555141310631b1a18681b1b1a6c131211630d0c0a740d0b0a8e0d0b0a630a0807660b0a085a08080790090807ff060606ff060606ff070707ff080707ff080707ff080808ff0c0b0bff0f0d0bff0d0c0ad40c0a094908080761060605a20d0b0a400a0807aa120f0d590d0b0a73100e0c5b110f0d97141210a3151210951412106f13100e53110f0d7614120fa8181513a219161355100e0cb0191614941715128f171412b2191714ad1a17147017141286171412b21916149b1714127b14120f9c1513116712100ea5151210a213111096110f0e750d0c0bff0b0b0aff0b0b0aff040404ff110f0fff11100f7b1c1b1a5c252220602a2929622b2b2c76302f2f67302f2e6c3030304e2b29257c383734663735327b3d3b37583b3a39583b3a39613f3e3c633c3c3d49343433503636365137363552353534533535344f33322f5e32323064292724582625257c2927256b2928285e272626602424235d211f1e71141312e9090706ff090706ff0f0d0cff100f0dff070706ff0d0b0aaf110f0da6110f0d62100e0c8b12100e7e12100e9214120fa214110f9f13110f7913110e9c15120fa515130f7b12100d6b13100da715120f9d15120f65100e0b9414110e7c13100d3f0f0d0a74110e0ca914110e9b14110e66100e0b5e100d0b690f0d0b93100e0b690e0c0a910b090747090705b3100d0b730b09085f0c0a08960f0d0a820f0d0a660d0b095c0b0a08830d0b089a0f0c0a780e0c0a4f0c0a085a0c0a08900f0d0a4a0a09079a0e0c0a64110c04690d0b087c0d0b08970e0c095d100c054a0b0907800c0a089a0e0b096a0c0a08660c0a077e0c0b0835170f0365110c06940b0a08860b0a07710b0907920c0a088e0c0a0835090706850b0907900b09076a090706880a0907800a09075909070659080605800908069e0a09068809080655090706570806058c09070662080705b60907066e07060542050403960807065c080705930b09069b0b0907770908073c0706056d090806970a09077e0a09075409080647090706750a09064c080705850a0907980b0a07840b09076c090705830b09078c0b09075b0908066e090806930a08078e0a080760090706880a0807520807057e0908068f0a0807990a09078d1e1b17461715127d1d1a17861d1a17741917147b1c1a16b8211e1a741a1715541816138b1c1916871b181553171512621614116c1613104414110e7c1714128c171512a0181513671411106d292827582f2e2b5b32312d6f34333046323130493231315236343353343333462f2e2e472f3031482f2f2e4b3130304d32313147302f2e6231302e783434325e35322e26272420292c2a255a2f2e2d6b33302e652e2d2d612d2c2c5f2b2b2a60292929632a292a73272626541f1e1c742323215f1717165513131257151515521413113f1313115f1c1c1a55151412900f0e0d8c0e0d0c960d0c0b8d0d0c0a6b0b09084d090807450a09083e0707065c0b0a09ff060606ff060606ff070606ff070707ff080708ff0b0a0aff0f0d0bff0e0c0ad00c09083907070690090908910c0b0a640c0a08720a0807720e0c0b740f0d0b57100f0cb51513119b151210961412107a13110f4b110f0c8a1613119d18161399181512560f0e0b8b1714128c161411a0171513a4191614b31a17147316141188161412c11a1714891513106512100e95141210490f0d0b8b13110ea011100ea0100f0d690c0c0bff0a0a09ff0c0b0aff040404ff100f0eff0f0e0d791e1d1d522523215f29292a6a292a2a812f2e2d7e31302f392d2c286d33322e7f3636346e38363383403e3a593d3b3a5a3c3b3a6842403f673f3e3f543837375839393a583a39385c3a39385f3a3938493533306731312f4a2b29262424221e612a2928642827275e262626612423235d201f1d63171615ec0a0908ff080605ff0d0b0aff0e0c0bff080606ff0e0d0bb9110f0d93110f0d550e0d0b8612100d60100e0c7e13100ea414110faa13110f66110f0cab14110f8d13100e6e110f0d62100e0c9614110e8d14110e5b0f0d0a9213100d70120f0c340e0c0976110e0cb815120fa313100d73100d0b590f0d0a640e0c0a8b0f0d0b5b0d0b08c20d0b0967090706c90f0d0a5f0907054f0a08069b0e0c0a750e0c09610b0a085d0c09088c0d0b099a0f0c0a950f0d0a580c0a08510c0a07750d0b084c0908067c0d0b0850110b046d0c0a086e0b09079b0e0c09900e0c093b0d09045d0f0b05880c0a08650b09075e0a0907620a090737080705b21d170c9d0b0a086d0b09077c0a08077b0a0807880b0a0729070604770a0806840a0807610806057f0908067d0908064a0807055707060593090806a00a08069d0a08064f08070553070605870907066f070604be08060577060503880605049c08070547070604980908068e0a080671090806420706057c090806930a0907990b09075d080706440807055e0907054d0807056f090806930a0907850a0907610806058a0a0907920a0807670907066f0807058309080690090806590706056c080705440706048b09070699090806870908065b1917134a181612a9201d19a3201d19721917147a1c1916a11f1c19791a181559191613ae1d1b17881a181568161412811816134513110e4613110e781614119a1816139f181513551d1c1a803433325a3a3838743b3936513333314a3433334b3433335236353455353537422f2f2f453231324b3332314c33323146312f304833323055333230622c2c2b5a31302e1c282621442a28246731302f752c2c2b612d2d2e602c2c2d612b2b2b5d2a2929602a28285e28272768262524751f1f1e5713131256141313801212127217151228131210631b1b1a6c141311990f0e0d8a0d0c0b9e0d0c0b8c0d0c0a620807063609080753080807710d0c0b53090807f5060606ff060606ff070606ff070707ff080707ff161312ff0f0d0bff0e0b0ad00b09083907070686080707960c0b0a3f0a0907740a0807790d0c0a620d0c0a460e0d0bb11512119513110fa11512118013110f60110f0d96161411ab1915139918151253100e0c721513108616141299171412b01916139b1916137a15131196161411c21917149315121054100f0d65110f0d4b0f0d0cb2151210bd1311109c100f0d680c0b0aff0b0b0aff0c0b0bff040404ff0f0e0dff0e0d0c4922211f552524255c29292a602b2c2c702f2f2f7c2f2f2e1f2827248f343432613a39388b42403b713e3d395d3d3c3b5f3f3d3c6a4342406e42414256383737583b3a3b5f3d3c3b603d3b3a5e3b3a3941353430623534307d2c2c2a2223211d5d2a2928672828285e2625265c2424245e2221216c1c1b1ae8090807ff070605ff0b0908ff0e0c0bff080606ff0f0d0cbc110f0ea0110f0d3c0c0b09570e0d0b6d100e0ca913110fc3151210a613100e6a120f0d9913110e9a14110e7912100d80120f0d9413100eb615120e5c0f0d0a6c100e0b71110e0c340d0c0975100e0baf13100d9a12100d85100e0b630e0c0a780d0b098a100d0b590c0a08ab0c0a0840080605cc0e0c0a63090705480908068f0d0b09650c0a08670b09076b0b0907960d0b09a10e0c0a9a0e0c09650b09075c0b0907850d0b08420908065c0b090745130c045b0b0906710b09078c0d0b08920d0b08650b0906820c090737150f03470807053e090706730a0907520908065b1d14069c0b0907301f14043a271b05860c0906960b09074608060575090706ad0a080759070604690807057d090706510807054d070605880907069b090806a80907065a080605620706048208070570070504a10605045305040338040303980807054f060504950908067e0807057008070650070604800907069c0a08069a0a09076e0807054b0807056e0907053f0706054f0807059e0a09077f090806600706057f0a0807900a08067809080670080705990908066e0807053906050485090806660807059d0908069c0907067f0907053e1513103914120f611916137c1c19164a171512561916137f1c1916631815133f15120f72171412651715114213110e4c13110e5013110e3d11100d5c13110e5c13100e70141310693333335f3736356c373632753636334a3636354c3636354f383737533837374b3434344b3333354b36353449343233493434354831302f6b393835823b39386a343333382c2b2a232b292462302f2d743936335e302f2f5f2d2d2e5e2d2c2c5e2b2b2b5f2a292a6f2828276a2927256b232221951818165b1414145a1616164816161494616d68581c1b1a4e1615132a0908079d100f0d880d0c0b940d0c0b710a0807440a09083e090808700d0c0b5e0909075b0b0a0aae0d0d0bff060606ff070707ff080707ff080707ff1c1816ff0e0c0bff0d0c0ac00b09082d0605058f0808079c0c0b09440908077e0b0908840e0c0a3b0b0a08550d0c0a9f13110f8011100e8212100e63110f0d4d100e0c7714110f8d1613107514120f380d0b0942100e0c3e100e0c4c12100e7c161311871714125d14120f6413110f7b1413105e11100d430f0e0c470f0d0b3b0d0b096d100f0d9111100e690e0c0b4f0b0a09ff0b0a09ff0c0b0aff040404ff0e0d0cff0d0c0b541d1c1a592827265a2829295b2a2b2c602e2e2e66312f2e1e2b29266b343533613b3a399747453fa14847446541403e6842423f6f47444372434242613d3b3c5c3b3a3b6942403e633f3d3c5d3d3c3a493534306d353430612c2c2b2023211d5c292827592927275c2625265c2423236821201f671c1b1972141211ff080605ff0a0807ff0e0c0bff060605ff0f0d0b7b0e0c0a680e0c0b310c0a093f0c0b09510d0b0a65100e0b8c13110e75110f0c4f100e0b76120f0d7b120f0d56100e0b580e0c0a72110e0c68100d0b470d0b0972110f0c5b100d0a330c0a08540e0c0a87100f0c78100e0b480d0b093d0c0b09440b0a085d0c0b09480a0807b20b0a0850080706b60e0b096d090705400807054d0a0806700b0908640b0907610a0907780b0a08700b0a08700c0a08500a08065d0a09065f0a09072a070604360907053e0f0a033809070549090806750b0907730b09073a0806055909080663090806300906052c100b0250080705390707053f1c13046d0a08063f1e1405510807055a100c05342419042e0605045b0706056008060552060504680806056308060441070504410705046e080605770806056308060535060504380605045907060465060503a7050504740404033503030298070605410505034a06050481080705650706044d060504660706056b0806056e08060551070604520706044907060526060503300605044e070604570706053807060469080705740807054307060451070604610706053d0706042e05040359070604420705045f08070570080605640806046617151273191612691714117018161277191612781916137a19171375181612801916137917151275161411801714117c171411801613107313120f7a14120f67120f0d5e313233823c3b39753a38365a383632543939394c3a3a394b3a3939533c3b3a4e3a38384f3737394c383637503a39384f383739403233324a373633853a3a374b2d2a263c33302c242b2a2544302f2c5a32302f65333130613030305f2e2d2e5d2e2c2d5e2c2b2b752a29296e292726862826258c21201f561414135815151474141414f0b7e6e23f1a19188e1e1d1c89141211840e0d0c490f0e0d8d0d0c0b800c0a09590a0908320b0a096b0d0c0b590a0908600e0d0d5e0d0c0b5d080707ff070606ff080707ff080707ff080707ff161312ff0d0b0aff0e0c0ac20a09085f08070691090807a90c0b09450908077a0a09088c0e0c0a710e0d0b7d100e0c7f110f0c8912100e7c110f0d8614110e8a14110f8213110e7e13110e8c14110f8915120f8214110f8d15131091151310921513108114120f8b1512108e151310911412108513110e8b12100e7c110f0d85110f0d790f0d0c840f0d0c8a0e0d0b8c0d0c0bff0b0b09ff0b0b0aff040404ff0e0d0cff0c0b0a55222120592525235a282829602c2c2d642e2f2e893231301c2c2c295b33322e7f3938358e45423d884846446e4645436c454342734845436e4441407043424168413f3e70454340754644435d3e3d3b423534308f363532412927242625241f542a2927582827275d2626265b252423752120207e1f1d1c8d1a1917ff060504ff080706ff0d0c0bff060505ff0c0b0a8f0e0c0b800d0c0a860e0d0b780e0c0a810f0d0b750f0c0a80100e0c85110f0c83110e0c89110f0c81100e0b90110f0c81100e0b83110e0c89110f0c83110e0c82110e0b80100d0b7d0f0d0a730e0c0a850f0d0b810f0d0b6f0e0c0a6c0e0c09730d0b09630c0a08650b0a08b00c0a084f090706d00e0c0a69080605630908066f0a0907740b09077a0b09077e0b0907740b09077e0b0907770b0907740a09076c0a0807780b0907750b09076f0a0806510c090375090806740908066c0907057109070671090706790908066c08070572090705680807054c100c03650806053c1e1404730807054621160577080705710706057f08070554120d04342218057b08070579070604720706047b0706056f070504700705047d0706057a070605700706046907060470070604650605047a060504a6050403630403023d040302a40706056b0605047307060472070604790706047907060471070604770706046f0706046d070604680706047208060571080605700706057407060573070604720706046d070604720706046f0706047b0706056d060504720706046a0605046d0705046806050472070604700706046d0605046517151171181613731916127219161271191612761916127819161274171512721715127617151174171511671514107516141178161310751513106d14120f6513100e8f403e3d4d36332e7544443e6b3d3d39483d3e3d544040404e3d3d3c4c3c3c3b513b3c3b473738394f3b3b3c4d3e3c3c453737364c3836337b413f3a82403e3a7a3e39341728241f272e2b275e3835358e4b46426133323262302f30612f2e2f5d2e2d2d632c2b2b8c2c2a2a853c38335f252423721818175d1414145917171749141412e2a5c6c17b22212086171615a4100f0d9c0f0e0d49090806850e0c0b610706051b0a0a085c0c0c0b510b0a09590e0d0d7b0f0e0d640a0a09640a0909ff060605ff070606ff080707ff080707ff1a1715ff0c0a09ff0e0c0ac80a0907610707067f080706a40c0a093809080773090807890d0b0a6f0d0b0a6f0e0c0a6a0f0d0b73100e0c75110f0d7312100d7012100d8113100e7d13100e7d12100e8613110f8313110e8114110e7313110e8014110e7513110e7c13110e7e13110e7811100d69100e0c78110f0d6c0f0d0b790f0e0c7b0f0d0c770e0c0a750d0b0a790c0b09ff0a0a09ff0b0a0aff050404ff0d0c0cff0b0b0a57222121582525245e292929602c2c2d8130302e8f31302e1a2a2a26712d2b27533635327c3d3b35904d4b456b464442814f4c4a75494744764745427b4846456841403f76484643764946446643413e4a3d3b366f373532572624201f24221d4d2a2928572827275d2626275a2524238c232120671d1b198b1d1c1bff060505ff070605ff0c0b09ff040404ff0b0a09700b0a08640b0a086d0d0b0a6b0d0c0a770e0d0b770f0d0b740e0d0a700f0d0a790f0d0a7c0f0d0a720f0d0b710f0d0b740f0d0b6d0f0d0b690f0c0a700f0d0a6e0f0d0a6e0e0d0a650e0c0a5e0d0b096d0f0d0a650d0b09670d0b09690d0b086f0c0a08710c0a08600b0907a10a09073a080705dd0f0d0a63070605560907056e0a0806690a0806630a08066a0a0807710a0807650a0806660a0806720a08066f0a0806750a0806780a08061a050301a3130d064e1e13053f0d0802360d0802350c07023e0b07013c0a06013c09060141090601350906013f0906014a090501813f2f103d0805015d221806400805015507050163070502430906013f09060139261a06262e1f053d0704013c06040136060401340604013b0503013c0604013c06040141080501390906013e07050149060401450604014006040143060401ac0706055005030162050301470603013e0805013f0c0902360f0b023c100c033e0c0902370806013308050137090501390906013b0a07013d0a0701380a07013a0b0701440c0802460e0a02420f0b033e0d0802430805014f0705015d0705014b0705013e08050140080601380805013a0805016d1816133e13110e7f19171379191613551412106214120f7a171512711614115513110f81171512781613113c110f0c5313110e4a110f0c48100e0c5911100d633b3b3c7443414149404140794e4f48594849475e4b4b4a5e494948483e3e3e524041414e3e403f443a3a3c4d3f3e3e674848485241404053403e3a9d534f4a97343332853b39371a2b29233c302e2a643a38376537353567353333683332315f2f2e2f5c2e2d2d5e2d2c2d962b2a29782827277e2324235c1413135814141367151415d7a6d1ce2a1b1917742322229415141294100f0d910e0d0c860d0b0a300b09083a0908074a0b0b0a6d110f0e560d0d0c6110100f68090908690b0a0a6d0a0a09ff060605ff070606ff070606ff070606ff1c1916ff0d0b0aff0e0c0bc4090807380706058c080706c20c0b0a4c0908066c090706820d0b09520c0b09440c0a097f11100e82110f0d8d13110f60100e0c4e0f0d0b64100e0c7713110f6b12100e450e0c0a6f13110e6712100e6811100e6f12100e7e15121050110f0d6a12100e8413110f7811100d3e0e0c0a72100e0c3c0c0b09830f0d0c890e0d0c740c0b0a50080807ff0a0a09ff0b0a0aff040404ff0c0c0bff0b0a0a52211f1f552625245b29292a652e2e2ecb3333318b323130162928258d3232315836353393413f3a87514e4aa6615b569f5d575384504c4a844f4c48814e4b476e4643417b4c4844a35b5652774a4743513c3a35b04c49438f2a2b292225231e582a29295c292929632928275a252424712322217f201f1d6b1e1e1cff070505ff070605ff0b0909ff030303ff0a0908810c0a097a0c0b0a300a0907620d0c0a560d0b097b0e0d0b870f0d0b7b0f0c0b4d0c0a086f0e0c0a8b100e0c650d0b095d0d0b09730f0d0b640e0c0a410c0a086c0f0c0a570d0b09310b0907690e0c0a770e0c0a750e0c094c0b0907460b0907590b0908670b0a08510b0907ad0b09073e080705e40e0c0a5c0605044f0807056b0a0807620a080751090706520807057e0b0907700a0806870b0907420706053c0706055f0908063a070604310805021b0906023a060401260303023b090602270302022c0302023203020233020201310202013502020132020201360202017c1d150841100b03651e1608320202013202020132020201290201012b02010135020201360202012d2e20072f1911042902010131020201340202013c0202013702020135020201270201013202020130020201250201012f02020134020201310202013202020134020201340202013402020136020201320202013202020133020201320202013202020126020201300202013702020133020201310202012a0202012b02020132020201340202013a02020134020201310202012b020201330202012d0202012602020131020201340202015b16131036110f0d4e1513105414120f3b12100e5713110e5d14120f6715120f4f13110e661513105913110e3c110f0d44100e0c3c100d0b4a100e0c622221207d444343684a4a4a875b5b534e474844594c4b494a42444354474748564647484f4344444940414154454545574745464a423e414d41404078403e3ccd5e595393403f3c5c2f2e2d2e2e2b27653b3936a5544e4966383735623333325e313030612f2e2d60302f2f6f2e2d2c5b2d2a265f252321701e1d1c6e1413135f1918185f131312ce88aba8432221205c18161575100e0d8c100f0d910e0c0b840d0c0a57080707240b0a08690e0d0c5c0c0b0a59100f0f580c0b0a5e0b0b0a670b0a0a5f0a0a09ff060606ff070606ff070606ff070606ff0d0b0bff0d0b0aff0d0b0a4b060605510706057b070605b70b0a094309080674090807860d0b0a500c0b09470c0b09640f0e0b6c100e0c65110f0d6b110f0d55100d0c5c110f0d7013100e62110f0d350c0a0849100e0c460f0d0b430f0e0c58110f0d6b12100e45100f0c4a100e0b7a12100e510f0d0b470d0c0a66100e0c380b0a085c0d0c0a600c0b0a4e0a090852090807ff0b0909ff0a0909ff040403ff0a0a09ce0f0f0d74242221642626255a29292a592b2b2c832f2f2e6c3332301d2e2d2865333333663e3d38833c3b369357534f8b544f4b804f4c49955853509255514d88524f4b7c4d49478e54514d9a5954507a4c48456945423ca1433f3a7c2b2a283023211d522a2826562726255c272726612524236f2423215f1d1a18601c1c1aff060505ff070505ff030302ff070606ff0a0808720b0908510a0907380909075d0c0b094a0b0a084f0c0b085d0d0b09580d0b09500d0b085c0d0b09760f0d0a650e0c0a530d0b09680e0c0a5a0e0c093f0b09075b0e0c09610e0c093d0c0a085c0d0b096f0d0b096e0d0b09600c0a08400a0907400a0807620b0a08730b09079e0a08074e090806dc0e0c0a640706044e080705600908065c0908063b08070545090706630a0806770a08076e0a08063e08070546080605500907052b0605033c07060421070502180f0a0320090602290504025608060330030302320302023403020231030202330302023403020237030202381f14042b020201612c1f0b381d14042b02020133020201360202013702020131020201340202013002020129140e033031220731181104340202013302020133020201370202012f02020134020201330202013202020230020202300202023402020234020202340202023102020238020202360302022f02020230020202350202022d030202310302023503020236030302360302023503020232030202280202022a0302023103020232030202320302023403020236030202330302023003020235030202340302023103030230030202781614117817151272161310721614107a1714117a161411831614118416141176151310771613107a1513107714120f6d13110e6b12100d7b13110f5f404143584f4e4c4b4a494556474843464545464d46484750474848584a4c4d5549494a5f4c4e4f5f4c4d4f5d4b4a4c544845464b434142544a4745b35f5c54b23938368f45423f2c302d263736342e6f3e3c39703d3b3a743231325e3332325f32313260302f305f2f2f2f95333130772a2928a82827275b1514145b15141467161616be97b3ac331a19168c272523811817161d0c0b09910e0d0c7e0d0c0b830c0b0a340908074a0c0b0b6e100f0e4d101010621010105c0b0a09560b0a0a6f0b0a0a5f0a0908ff060606ff070606ff070606ff070606ff090808ff0e0c0bff0d0c0a700706057b09080782070606b20b0a094809080773090807770b0a09610d0c0a770f0e0b72100e0b78110e0c8212100d75110f0d7612100d7412100d7d13100d8413110e8413100e7a13100e7f13100e7a12100d8112100e8713100e8a12100e8412100d83110f0d84110f0d82100f0c8b100e0c8a0f0d0c830e0c0a810d0c0a890c0b0a870b0a09ff0d0b0aff0e0c0bff040303ff0b0a09c1191817672524227528282754272728592a2a2a6b2f2e2e78393837242f2d28603333316b413e397e3d3b36794b474687514e4b87524e4b9b5856529a595650a35c5853a85e5a56a7605c589356534f834f4a475a423f3a9a3f3d378b2b2b293926241f542928255c282827612625255e2624246f2424228320201d6e1f1d1bff060504ff060504ff020202ff090808ff090807790a09087d0c0a09790b0a08840c0b09850d0b097d0d0b097c0e0c0a870f0d0b800e0c0a8b0f0d0b880f0d0a780e0c097b0f0c0a7e0f0d0a7b0f0d0a700e0c0a720f0d0a7d0f0d0b700e0c097b0e0c0a720d0c097d0d0b097d0d0b09670c0a086b0c0a087a0b0907760b0907a10907064a080605b70e0b096107060457090706630908066f0a08066e0a0806700a0806750a08066b090806640908066809080670090806720a0806700908066509070568080605500b07021c0906021d0a0702360f0a022b0705033d090602300303022f0303023003020233030302330302023322170436030202472b1e092b0202023a080502321d130431030202320302023803020234030202340302023703020231020202300e0b03313526063503020232030202370302022d020202390202023203020230030202330302023403020232030202310302022f0303023103030234030302330303023403030237030302350303022b0303023a0303022f0303023103030333030303380303033403030334030303350303033103030330040303320303033403030332030302360303032f030302380303033303030331030302330303026915120f6615130f731513106714120f6f14120f6d14120f6914120f6213110e6513110f6a13110e6b13110e6b13110e6a12100d62110f0d5f323233714c4b4c4246433eac5f5d574148484848494b4b4e4b4c4d584c4f5162525353524c4d4d5b4d4e515a504e4f514748494d4644454a464644794a4744f87e78703c32312b3433302b58343332673e3c3ba34e49456f3835358538363562343435603332335b3030316732313170302e2c49211f1c842221215e15141457171717a6161615f2b3e3da3921201d4d1b1b1a9011100e7d0f0e0d990e0d0c940e0d0b6e090807280c0b0a640e0d0c5e0c0c0b571313135e0b0b0a610b0b0a5b0b0a0a5f0a09085d0d0c0bff050505ff060505ff060606ff060606ff0d0c0cff0e0c0bff0e0c0bc80908087a08070670080706b50b0a094a0907067d0a09087d0b0a09620c0b09660d0b0a610e0c0a690f0d0b6d0f0e0c690f0e0c7a110f0c73110f0c77110f0c76110f0c6a100e0c76110f0c77110f0d77110f0d80110f0d7e110f0d7a100f0c75100e0c770f0d0c750f0e0c700f0d0b710d0c0a6f0d0b0a7b0d0b09720c0a09710b0a0870090807ff0d0b0bff110f0dff030202ff0a0909d51f1e1d75232220772828275c28292a552a2a2a662e2d2d673635346d2f2e2b332b27235c3735325734322d7c4d49468a524f4b95595552a05d5854ad615d569a5a56519e5a5754a55e59558a514e4a89524d4a473b3934883b39343826251f4f2626236128272665252321672727265e252524622524234a1a181556201e1cff060504ff050504ff030302ff0b0a09ff090807a40908076e0908076c0a08086a0a0808670b0908750b0a086d0c0a086d0b0a086e0b0a08670c0a08600c0a08600c0a08660c0a08690c0a08670c0a08650d0b08600c0a08640c0a095f0b0a095f0b0a09600b0a08620b0a085f0b0908600a0807690a09076e0a0907720908067d08070652080605b60d0b0965070605600807065d0908065d0908066009070665090806660908066609080675090806650907066d0908066b0907065c0807056908070566080705460c0802530b080312060502120e09023a1811032304030352140d033204030334040302310403023504030341261b06300303024a402d0a340302022f030202330302022c1c130433060402350302023703020234030202330303022b0302023203030234030302362a1d0743302208330303022e030202330303023103030239030302300303022d0303032c0303032d0303023304030331030302330403033004030333040303330404033304040334040403340403032c0303033f04040338040403340404033504040336040403350404032f0404032f0404033304040335040404380404033304040331040403320404032c0403033d040403320403035e16130f421c160b5a14110d5913110e47110f0d4b110f0d781613106c1512103d0f0d0b7414120f7414120f4e110f0c6112100e63100f0d5e474749574d4c4c3d4c4c493143423d464c4d4d4d4e5151595254565c5354575f545557564f4f52544d4e50615452524e4949484f4847474a474642754b4843583936323a3f3a34443533325a303132834c4a4983444241743a39395e3534355a343333633333336b38353669343232a13131315b2827265f16161559151414561817173a1513112a151310542525244d1716158c100f0e8b0f0d0d970e0d0c950d0c0b350a0908420d0c0b7111100f4c101110601211115b0b0a095c0b0b0a550b0a09540c0c0b6c0a0a09ff050505ff050505ff050505ff060505ff100e0dff100e0cff0d0b0aff0f0c0b520706065b050404be0b0a09380907069d0b0a0855090807460b0a084a0c0b0992110f0d8412100e61100e0b450d0c0a380d0b0964110f0c6a110e0c65110f0d380b0a0959100e0c490f0d0b480f0d0b66100f0d7011100e380e0c0b630f0e0c8812100e81110f0d4f0d0b0a650e0d0b3e0a0908670d0b0a690c0a09620b0908a00a0807ff0e0c0bff0e0d0cff020202ff0908089d1c1c1a8a282724622626265f2a2a2a582a2a2a63302f2f6032313150302f2d2d2d2b265935342f5134312d844f4b479555524ea75e5a56ac605b57b965605ca15b5754a45c5755b0615c578d524f4a9b55514c61403d387735342f2e25221d4c2525245f2828286d2a29285a2726255d262524702927268323232165242220ff050504ff050503ff050504ff0b0a09ff0b0a09ff0b0a08820a090736080706540b09074f0a09075f0b0a08630b0a086a0c0a083d0a0807650d0b097d0e0c0a4d0b09074f0c0a08730e0c0a770f0d0a570c0a087b0e0c09660d0b09440b09076f0d0b09770c0b097f0d0b09550a08075a0a08074f0908067e0b0907730908067b08070649080705bf0d0b096508070533070604640a080661090806550807055808070554090706570807055e0907063c0806053d0706045b0907062b0605044807060552070605570c0802520b0802600b07021307050230100b032e110c042a0705033d110c0432040403320404033304030330312108380403033d422e0a35040302350403023603030234030302400906033021170435040302350403033204030332030302350403033104030333040303310403032c3726072d3223072a0403032d0403033104030338040403390404032d040403350404043104040430040403330404033204040333050404360505043805050437050404350504043505050436050404350504044005050432050504340505043505050432050504310505043605050431050504300505042f050404330504042b050404290504042d050404310504044731230a4a2319075c14110c4c2c1f085913110e671513108e171512771413105711100d92151310921513105312100e6212100d673b3a3a75505050775353545f5b5a56414a4c4c494c505056545556595255585d5557595a5354565b5555585550515355505051534e4e4f79514e4c725653519367605d7c3a393a8d5652506c363537793535346744413e713d3b395f3937376237353661363534623534346736353559312f2f61272523732b29296616151560171616641919189a1513101f1514117f252422871514128f11100e8e0e0d0c970d0c0c880a0908280d0c0a580e0d0c620d0b0a57131212670c0c0ba00c0c0b760b0b0a4d0b0b0a560b0a0953090807ff060505ff050505ff060505ff060505ff100e0dff141210ff0d0b0aff0a0908dd0a090863060605b90c0a093e090706860a090862090807410c0a09340c0a096d100e0c76100e0c78100e0c66100e0c4e0e0c0b67110f0d9213110f8612100e4c0d0c0a8b13110f6712100e6812100d9213110fa115121070110f0d7b110f0daa14110f85110f0d5a0e0d0b94100e0d660d0c0a7c0e0c0b8c0e0c0a790c0b09ff060505ff131110ff040403ff0a0909ff0908085f222221752422215d2626265c29292a5f2c2c2b752f2f2e7731302f62313030b3373734522e2c285e3c3933874f4c479655514eb3625d59b0605b58b8635e5baa5d5856a75c5755a55c57539c585450af5d57537548433d633632307529282667252424672726255d262422592725245c252423622624235c1f1d1a73161512ff050503ff050504ff050504ff060404ff0f0d0bff070605950a0908400907067d0b09087e0b0a08680c0a08890c0b08850c0b094b0c0a08790e0c0a920f0d0a6d0c0b096a0d0b08920f0c0a820f0c0a4c0b09077e0e0c096f0d0b09390b0a086b0c0b09820d0b09860c0a08520a08076b0a09075b090806860b0908540907068f0a080731070604c60d0b09640706053a070604520908065309070649090706500807056e0908067b0a0806680a08064208070556080705740907063c0605046e080706730807054b0b0702500b0803900806048c0b08022707050319120d031a0c090332110c03310807053f0b08043b0504043d47320a3e050403433e2b0949050403430504034505040343050404400504043e0504042d1e15043b150f043604040343040403420504043c050404440504044c0505044405050441161005366b4c103e0505043e0505043c0505043e050504400605043f0605053c060505350605053e060505410606053f0605053d0605053d0605054106060544070606480706064307060643070606420706063f06060541070605440707063b0706053606060542070606400706063d0706064707070648070706410707063f0706053f0706063d0706068d1917134d281e095814110b704c37125b13110e6d13110e8b161411871514116512100e8914120f921513115e110f0d6a12100d774d4d4e9a5352547f5252505552504c3d494a4950515255615a5a5e615a5a5c645a5c5d585554575a565658695b5c5e51525253514f4f5076605b55804c4b48c16a6863e1746f6b804d4d4d833433347f4b4b4a7944423f81484544673c3b3a703c3a3a6036343480343231603230318632312f7435333191272625a61716165d1918184210100f251413117a2625236f1817166f11100e8d110f0e8c0f0e0d8b0d0c0b6c0b0a0948100e0d701513116214131263141312770a09095f0b0a0a590b0a09760d0c0b4f0908072108070649090806ff050505ff050505ff060505ff060505ff0c0b0aff0e0c0bff0b0908ff0b090886080706b40c0b094f090807850a0907870c0a08750d0c0a500e0c0b7b110f0d9111100e8c110f0d650f0d0b530f0d0b78100e0dad13110f9112100e470c0a099413110f7b12100e6c110f0d87110f0d9212100e6a100e0c6e0f0d0bab12100e7a100e0d540c0b0a970f0e0c470b0908850d0c0aa40d0b0aeb171512ff080706ff0b0a09ff030202ff0a0908ff0908085b2625255f25242456252525732a292a632d2d2c702e2e2e8c2e2e2e582d2d2c842f2e2d612c2925663e3b367a4a46429f595451bb655f5bbc655f5ac066615dab5d5955af5e5a56cb6a645e9455504d9856504c6d453f3878373531982a2827672625256128282772282625642928275f26252476242221a224232164121110ff050503ff050503ff050503ff080706ff090806ff090807ff090706440807057e0a0907690a0807700b0a089f0c0a087e0b0a08530b0907740c0b08a40f0d0b710c0a09620c0a08920e0c0a850e0c0a580b0a088b0f0c0a610c0a08440b09075f0c0a088c0c0a087c0c0a08610b0907560a080657080705870b090782090806a10a090758090706ce0d0b0970070504410706048e0a0907690a08075b0a08065a090706800908067e0a0806850b090756080605650807057b0807063b0605047608070689090706460c0702400d0802840806037f0907034f0b08038709070316120c03170a07034c0c080223060504391c12044836250a2f05040443392809340504043705050437050504360505043605050434050504350505044906050538211705320604043305050435050504360505043905050433050504310605052d583e0d32080705340605052b0505042c05050435060504271f1504373323062f281c063f25190646231a0629241a042d251905342a1d06452a1e0852291e093134250637312307372f2107363928073d3c2a083d3828083e3323092e3626084b2f220b4439290a39382609393a26082c432d082f4732084f402f0c2e483509364d390b344f390a7a171412522d210c6915110a7b1714105712100d6c14120f9b1715127515131161110f0d8d141210961413106411100d82312f2f60525154705152556554535037474948474f504f57585759615b5c5f665e5f6160595a5d5956585b5e5a5a5d5e58595c535352534f4f504f42494842936d6861943e3e3d8e52504f713b3b3b7533333369474847663c3e3b5e3c3b3b673c3b3c6237373871343333973836355c343331883c39346933302e591c1c1b741515155c1a1a1a270f0e0c6423221fbc34322f53161513370a0807260c0b09610d0c0b700d0b0a1f0b0a0850100f0d6e12100e521414146e0f0f0e5d0c0b0b5a0c0b0a3d0b0a09670a0a092c080806560e0c084a080604ff050404ff050505ff050505ff060505ff080707ff161311ff0d0c0aff0b0a088a070605ab0b0a084e090806800a0907840a0908640d0b0a570d0c0baf11100f86100e0d82100e0c5d0f0d0b480e0c0b6a100e0c9712100e7f110f0d540d0c0a9413100e7a12100e7911100d97110f0dab13110f8b12100e70100e0ca4120f0e740f0d0c4d0c0a09840e0c0b3e0a09087f0c0b098f0c0b09ff070605ff0d0d0bff040403ff0a0908ff0a0908ff0908085e2827268929262358262627802b2a2a622d2c2b592d2d2c5e2d2c2c5b2d2d2d822b2a29612f2d2a67413e38854e4a46a55b5652b7625d59c467625dc266615cb2605c58a75d5854b35f5b5796544f4c8e514c497545403a6e35332e83282825702626255d27272659262623632827265e25242487252422651e1c196212111081080706ff050503ff050503ff070605ff040303ff0a0907ff070605690806056c09070659090806750a0907870b0a087d0b0a07570b0a087e0d0b098b0d0b09750b0a08650b0a089b0e0c09940e0c0a5a0b0907b80f0d0a670c0b09390907067b0b0a08900c0a08870b0a08590a08064d090706660907057b0a080769090806a00908064c080705ca0d0b096a0705044c070605890a09076b090806770a0807570807067c09080677090806840a08064b0706055307070567080605410605047c080705870907064f0c08025c0b0803a1080603970b070242090603790807037e08060313100b03170a07032f0c0802290a080463231808380907043c3b290933060505310605043106050535060505330605043506050435060505300605052c05050536130e05312218043606060533060605370606053206060533060605300706058a60491c3207060633070606330706064e392a0a4b46320c2f0707052e0706054007070635070606310707062e070606290706062c0706063308070635070706320807073108070732080807320808073308080735080807350808073008070730120e063b63470e320808073709080834080807350808073309080732080807300808074f2a1f0b462a1d076413100c831513105913110f5913110e9f1714118016131151110f0d7c14120f9614121057110f0d704d4e50625353555d514f497a636360414e4d4e555758595d5c5d5f645d5f62635e5f645e5b5c60545555585e5a5b5d55575657605d5b5c635f5d5c9e78757190746f6a3c3938342434312b5f38383967393b395f4d4a45483433325f3c3c3d5f3b3a3b5c3737395d3434355b3535355f343332d83c3a37802d2d2a611414145916151568191919221413119735322faf3a37328c1716148b100f0d870e0c0b3c0908072b0707064311100e79141210580e0d0c651919185b0b0b0a600c0b0a530b0a09440f0e0d6d0a0908260b090744080605530a0806ff040404ff050404ff050404ff060505ff070606ff0e0d0bff0f0d0cff0e0c0aff14120fa20a09084708070684090807900c0a086e0d0b0a610d0c0a8d100e0c93100f0d8f100e0c630e0c0a4e0d0b0a78100e0c9511100d79100f0d4e0c0b098d12100e7112100e6a110f0da312100e9912100e70100e0c6f0f0d0ca6110f0e94100e0c5d0c0b099d0e0d0b480b0908860c0a09cc0c0a09ff090807ff0b0a09ff050505ff0a0908ff0a0908ff090807751e1d1c7f262524602727287c2b2a2a602c2c2c5a2a28265b2c2c2c4b2b2a273d2b2822662d2d2a6b433f398d524e49a95c5752b9625d59c065605bbc635f5aae5e5a569b56524fa55b56529b55504da859544f64413d3948302e2b3424221e552322205b24242345201e1c5b2625245a24232359222121b32423206312111073090808ff050404ff060504ff070605ff080705ff070605ff0b0a08f30807068b09080761090807720a0807850b09078a0b0a07480a0907860c0a07950d0b09630b0a08560b0a089d0d0b09870d0c095f0b0907910d0b096b0b09073c0908065f0b0907960c0a088c0c0a085e0a0807530908066b0907067a0a08065b090706a109070646070605af0c0a086f07060451070605940a0907770908075f090806610807067c090706800908068c0a08074e0706054e070604640706053906050472080705870807054d0d0802610b07028e0806038d0706043d070502780807038a0907035a0605033e0e0a04150b0803130f0a037e1b1408411b14085430230a27070605300706063807070635070706340706063908070638080706390706053307060531060605360606052d211704310c0a0632070606320707063408070636080706545f4513320707062f080706320a08064260450e36080807340808073308070732080707360908073e0908082f08070735090807340908082d080807330908072b0808072b08080736090908390a090933090908370a0909370a09083b0a090937130e085b573e13300908083e0a0a0932090908320a0909320a0909330a0909370a0a097c17151352281c097614110d841613115d13110e5f13110f981613117313110f55110f0d8512110e9413110f56201e1d5d5050545256544f515555523f4d4e4b4f575557585c5c5e5a5b5a5e625e6065645f6064615e5e63535656585758585a605c5b5b665c5c5a38504e4c473d3c3a91615c58253c3731583e3b37833536376a4444425d3f3f3e5c403e3f5d3c3c3e5f3a393a683534357f3939386c383838332e2b28472826246b2423238914141458191919621413121b1615138e2e2d2bab21211e8911100e8e0f0e0d8e0e0d0c790e0c0b450908074d12100e6e1513114512121155161615540b0a0a590b0b0a450b0a09500b0a092a09080654100e0b59090705650b0907c0070605ff050505ff050505ff060505ff070605ff100e0cff14110fff0c0b09ff0c0a08ab0a09084e0908067a090807940b09086e0c0a094e0c0a09930f0d0c880f0e0c8b100e0d5f0e0c0a300b0a08590e0c0a9c110f0d81100f0d4c0c0a0983110f0d6f0f0e0b68100e0ca612100e9812100e670f0e0c6b0e0d0ba5110f0e6f0f0d0b560d0c0a8b0e0c0a4e0b0a08910c0a09d2080706ff0d0c0bff020202ff060605ff0a0908ff0a0908ff090807811e1d1c882f2c295d2727275b2829295f2b2b2b5d2d2c2c5d2c2b2b532f2d2943272520502f2d2a7a45423d9755504ca559544fa95b5551ba615c58bc625d59b6605b579a55514e9b55504da458534eb35b555062413d3a492c2a2727221e1a6123211f5d24232150242321592524245b25232273262422561f1c1a5c1211106c0d0c0bff040403ff060504ff070505ff080706ff040303ff0b0a09ff07050472090706620a0807870a08078b0a08078b0b09074f0a0806810a0907840b0a07750b09075f0b0907960d0b09810c0a0851090806800b0a087c0b0a0839090706650a08078e0b0907780b090755090806510907055f0807057e0a080664090806a9090806700b0907b50c0a086c0605044d070605960a0807600907064e0807054d0807057a09080687090806720908063d06050453070604630706043a0605036b080605870806054e0d08025e0b080286080604840b080238050402790c09037d0a07035a0504035a0f0a03690a0802150b080312100b03301a1205b34335184e37280b280707062a070606360807073708070733080707310807073709080733070605300707063007070634070706430a090739251b0533080706320908072e080807375d410e3508080730080707340b0a075a5a43132d09080731090807380a0908340909082d080807360909082d090808420a09082d090908330a0909330909082f0908082f090808280909082b0a0908360a0a09380b0a0a340b0a09300a0a0935130f072f5c400c2f0a0a092f0a0a09330a0a09410b0b0a2b0a0909330b0a09350b0a097918151350241a075e13100c801513105512100e6212100e841512106f12100e480f0e0c6f0f0e0c82110f0e604f50525b53515171505152a87474703f5251504d5859595a5d5d5f5b5b5d625c5b5d6054575a5b5e5c5d625958585d5e5c5b5c6a615f5f746361606b605d5cb086807b763b3c3b84545554793536374d3132335142403e392e2e2a563a3b3c5a3a3a3b59373839573434355532333457333232c2373634742c2b2a5c1817175d151514581919193f100f0d3e1e1c197a2e2c2a8e1b1a1799100f0e950f0e0d8f0e0d0c6e0d0b0a22100e0c571413115712110f4c1515144f0f0e0d570b0a0a570b0a0953100f0d530909082b0c0a085f0a0806590b09075f0b0907bd070604ff050505ff060505ff060505ff060605ff090706ff13110fff0c0a09ff0a0907a50a09084007060579090806850b0908600b0a09470c0a086d0e0c0b830e0d0b830f0d0c590e0c0a440d0b0a7e100e0c83100e0c7e0f0e0c450b0a08730f0d0b590e0d0b600e0c0b8e110f0d7f100e0c540e0c0a760e0c0b990f0e0c6e0d0c0a4d0b0a08850d0b0a41090807820c0a08cd080706ff0c0b0aff010101ff0c0a09ff0a0908ff090808ff08080764232221932a29275d2827285b28282857282829622b2a286e2d2c2b812e2d2c6b2a29295d2c2d2b9e4e49448a504a4598524f4aa156524eac5a5652a8595550b05c575492504c4a9d55504db55c5652ae59544f8248443e562a29277824242373242423422321214822201e57242423592323225520201f9321201e711615148d100f0eff040403ff050404ff060504ff080706ff040303ff0b0908ff040302720806055608070569090806860908067e09080650090706700a08077e0a0907600a09074c0a08068b0b0907820b09073a080605650a0807690a08062d0706055d0a0806810a08077a0a08074d08070550080705580806057909070650080705a80a08063a070605ae0c0b086906050443070604890a0807590907054f08070551070605750907067d0907067c0908065207060447070604600706043b050503610706046907060436090602710a060371080603800907033a0907026d0906037806050451050403590b0803660b080231110c041b0a0804120d090416130e042a0d0b063b100c072a100c06200706052a0807063309080733090807330908073309080733080807340908072e0908073309080736090807491d1506331812063209090837583a0c330a0908350a0908340c0a085f594113310a09082c0a09082a0909082e0a0909330a0909300a0909310a0a09350b0a092f0a09093c0b0a092e0a0908360b0a09310a0a092d0a09092c0a0a09220a0908230908082d0a0a09340b0b0a30120f08395b3e0c350c0b0a350b0b0a2f0b0a0a330c0b0a320b0a0a3f0c0c0b2c0b0a0a7417161346261a064a120f0c701412104f11100e6712110f7f1412106212100e3d0f0d0b620e0d0b6a100e0c614e4e518a535253515756596869656348545555545a5c5d595d5e61616060655e5e5e625f5d5e635054565a5b5a5a605f5e5e5f665e5e5f72656460805c5958ba8c8780764e4e4f6f474a4a6f363737653d3c3d564342405f434140573c3b3b5c39393a593536365d343334583534355b323131832f2c2a74272626641414145515151466161616291514134c242321e23b39359d1d1b19830f0e0d8e0f0d0d820e0d0c770a09092912110e59161412530d0c0b79201f1d5d0c0b0a570b0a0a640b0a097b12110f4509080735100d0a650a0806520c0a07550908068b050404f3050505ff060505ff060505ff060605ff080706ff110f0dff0c0a09ff0b0908b10908074b08070688090807840b09073e090806380a0807570c0b09660c0a09710c0b0a5c0d0b09370b0a08390b09086c0d0c0a750f0d0b370a0907750e0d0b4d0d0b094b0d0b0a800f0d0b890f0d0b450c0b09550b0a09770d0b0a810e0c0a4b0b0a087c0c0a09400a0807520a0807c5080706ff0b0a09ff020202ff0c0a09ff0a0908ff090807d5080707772725246d2726245a27262658282727642928287c2c2b2a9c2a2a287e2c2b2a702b2c2a432f2d2b8647423e8d4f4a4598524e4a9f55514dae5b5652a9595450a85854508c4d4a479d544f4c9f544f4aa554504a6b403d374e2b2a27612625246c232322582322214a25232254242322592221215821201f74211f1e7c1716148b131210c4050403ff050404ff060504ff080705ff030302ff0b0908ff040302700706054e07060545070605730807066a0907065d0908066c0a08076d0a08064c08070543080605760a0807600908064108060561090806540907062a0706044d090705790a0806570907063a07060435070604460705045f0806053b0706059d09080643080605bb0c0a08750705043e07060457070605520806053207050446060604600706057408070555070605230504033d0605035f060504300504035a0605045a06050438090602690b08036a0a070262090603370a07035c080603830a0703470f0a02590c090358090703240705024b1b12052c110c04290b090520130e05421f1607280a09083f2c1e07360a0908380a0a09360a0909320a09082c0a0908300a0908360a0a09320a0908380b0a092f0b0a092e0a0908370a09094f32240c79413114370b0a09330b0a09300c0a083e5b3e0d350b0a09330b0a092f0b0a09280a09092b0a0a09320b0a09330b0b0a2e0b0a0a370c0b0a3a0c0c0b340b0b0a410c0b0b2e0b0a0a300c0b0a2b0b0a0a250b0a092b0b0b0a360c0c0b360d0d0c3c1d150844553b0e2d0c0b0b2e0c0b0a350c0c0b320d0c0b350d0c0c350d0c0b2f0c0c0b2b100e0c42251906460f0d09240d0c0b1f0d0c0b320e0d0b390e0d0b2e0d0c0a280b0a08330b0908654c4d4e9f595756655150524b5e5c5c7b625f5a4f5a59595b6060615d6060646661646767626366605d5e635458585b686262666763616567616161465b57535c59554f7e434345a3595959282a2a280c25241f5e4c4a485d4443426740403f5f3d3d3e5d39393a5d39383985363635503432335d333233642d2e2e7e26252465151414561717176a1717172916151453292826a21f1f1e7d100f0e280d0c0a910e0d0c810e0c0b5808080745151311731c1a18601312119b21201d610b0b0a5e0b0a0a570b0a094a0d0c0b28080806370f0d09750b0907540c0a074008060525090807310a0908ff050404ff050504ff060605ff090807ff0c0b09ff0d0b09ff0b0a08b40908074b0807067c080706790a09072f070605200605041c0706052308070629080706320908072e0a0807350a0907350a09073d0b0a081b080705360a09075b0c0b092b0908073b0a0907320a080723080706270807062d0807062c08070622060504300706052a07060531070605a6060504ff090807ff060504ff0a0908ff090807ff0807072a0b0a08651e1e1d672524245c2727275b2828275d2a2a29b4312f2e7035332e54272525702d2d2c4b343330d8635c538b4e49449a534f4aa457534eb25c5853ba5e5a55ab595451854a4643ae585450a1534e49a8544f4a72433e394d2a282475252524331c1b1958302d2a502423225d2423235c23222178211f1e5a1e1d1c771817158d15151432070605ff040303ff050403ff070605ff030302ff080706ff0605032f0504032e0504032e06040326050403280605042f06050435070605330705042b0605042d0605042e0706042a0605042106050426060504280605041b0504032206040330070504290605041d0504031c0504031d05040329050504280605049b09070639070605b30b09076c06050436060504260504031e050403190504031b0404032805040335050504300605032c0504032b050403260403031c0403023a0504034305040339090602670b08022806040226050402190504022207050227080602210403022a0302022d0e0a0327070502431a12044a150e04470c0802140f0b041a100c053e251a07260a0a08411812082d0a0a09330b0a09390c0b0a340b0a092e0a0a09330b0a09300b0a092e0b0a09270a09082d0b0a09290b0a093f23180672493713330c0b0a310b0a0948412f0c643a2b0d4344300e350d0c0b390d0c0b340c0c0b2b0c0b0a210b0a09320d0c0b390d0c0b390d0c0c360d0c0b370d0c0c340d0c0c370d0c0b460e0d0c330e0d0c350d0c0c2a0c0b0a280c0b0a432d210a5833260d54553d114c422f11330d0d0c2f0d0c0c330d0d0c310d0c0b2c0d0d0c280d0c0b5211100e421f150667100f0b6611100e59100f0d4e0e0d0b570e0d0c4d0e0d0b4c0d0c0a4d0b09085c4d4d51905b59554652514daaa39b975b58555551595b5b5d616162676165686a646569666163675e5e5f64666263686a656667585a5b5d656361615a615f5ba6887f772c35332e253a383307262421153737325447434254353331613f3f415e3c3c3e5f39383a643736375a37373857363536493231306d2e2e2d5c2321215a1615155d191a1b4a0c0b0a361f1e1b7f3a373452181816740f0d0c610d0c0b910e0d0c810d0c0b3e0c0b0a4e161512ba332d2a9122201e59151514520b0a095e0b0b0a430d0c0b710a0908210a080648100d09750d0a085a0d0a070c050404320d0b0a2b080706ff050404ff050404ff060605ff0a0908ff0a0907ff0b0908ff0a09079b0807063d0706057d0807067f0a09074a080706450807063e0907064e090807390807063d0907072e070605460908064b0908074a0a0807540b0908520a0907440a0807530a08075e0b0908600b0907580a0907510908075b0908075a09080752080706630907067409080771080806cb080706ff060605ff060504ff050404ff040403ff040403470f0e0d591e1d1c67242221602826265b282727562928288b2e2b27a34a453f3125231f452a292751363430e6686057884c474392504c47b05a5651b45c5753b0595551aa57535098504d49a854514d964e4a45aa514d485c3a3832472826233222201b141b18146c35322f56211f1d5c2423225e2221206e201f1e511e1d1c6f1a19176018171628050504ff030202ff030302ff040302ff030302ff060505ff06050563060504710706056f07060573070605650706055607050463070605530706055107060555070605540806054006050451080605500806055d080605580806055b080605600706054a0706044c07060462070605600706055a0706054a0605048f0807063a0806059e0b09086f0605044a06050447060504410605043a0605044606050432050403320404032f0404033d050403400504033d0504034505040343050403360504023c0a06024e0a07024d0705024609060344090602470b0803440b080240030302550e0903620805025f110d034a19110453140e043d181106540706031a161005140b08050e0e0a04260b0a08260c0b093f100e0a330b0b0a380c0b0a390c0b0a380c0b0a340c0b0a310c0b0a2f0b0a09340c0b0a3a0e0c0b3c0d0c0a5c36270d3c0f0d0c340c0c0a38110f0b614937105639290c330e0d0c340e0d0c310d0d0c320d0d0c380e0d0d380e0d0c3b0e0d0c370e0d0c300d0d0c2a0c0b0b2a0d0d0b360e0e0c360e0d0c2a0d0c0b370f0e0e380f0e0d3a0e0d0d340f0e0c535038105e543e144038260a320e0e0d390f0e0e3a0f0e0d380f0e0d330f0e0d2e0e0d0c7e11100f471f150673110f0b7c100e0d89110f0e830f0d0c810e0d0bca14120fde1a1613311514145d4f5052594f4e4b44505251716b686155575656505a58595b5f61616a65666a6a66666b696463685d5b5d63656365686c676668595b5c5e646a6565625c5c59b8968b844a4b443d4533302d1a3534304a4e4c4a66403f3e5f424242643c3e405d3b3b3d6a393a3b6e3737376035353459363537502f2c2a5a312f2f571c1b1b60161616641b1b1b2311100f4f262422ac423f3c87201e1c8b0f0e0d920e0d0d8a0e0d0c870d0c0b200e0d0b4b1514126012100f5f1b1a19571211115a0c0b0a560b0b0a470e0d0c5b0a090845120f0b4f0a0806610d0a08590c0a070e0706054d080606ef050404ff060504ff090807ff0d0c0aff0d0c0aff0a0908ff090706a80707059f090806420705052a04040325040403240403032704040324040403270504032705040326050404280504032405040329050403280504032405040325040403240404032b05040328050403260504032604040326040403250403032a04030325040303240303022803030226030302ff050504ff060605ff050404ff050404ff040404ff04040335100e0d571d1d1c502322205a2625255b27262660282827912c2b2a763c39343822201b3c29292556363531e5645d537f474440844a45419b524e4ab15a5552a956524fa554504c914a48459a4f4b479a4e4a458a494541513734303b2926233f26211d211c191663322e2b6023222065232221642121206b1f1e1d4f1e1d1b5d1b19187b1b1a1819040302ff030202ff030302ff040403ff050404ff070605ff0605052a03030227040302230303022703030224040302260403022504030224040303290404032504040327050403290504032405040324040403250504032b0504032805040327050403260504032405040324050403280504032505040322040403260504033f080705910a09072605040323050403280504032404040327050403290404032304030226040302250403022a0403032704030226040302260403022304030247130e044f1510052d191205270c0802250a070325080602270806022602020124020201270a0702240c0802260d09035e18110558120c043d160f05260f0a042a0f0a031a1a13051b140f05110f0b054b110d06240b0a09410f0c072c0d0b0a200b09082e0d0b0a330d0c0b330d0c0b2c0c0b0a300d0c0b350d0c0b340d0c0b3e342408310d0d0c2b0c0b0b3e0e0c0a5f4c3713310e0d0b340e0d0c2f0e0d0c310e0d0c2f0f0d0c260e0d0c2f0f0e0d360f0e0d370f0e0e310f0e0d340f0e0c2b0e0d0c280e0d0c2c0e0d0c320f0e0d330f0e0d3a0f0e0d360f0e0d340f0e0e3615110b5833240b31100f0e34100f0e2f0f0e0d200d0d0b2d100e0d34100f0e32100f0e711a1816541e15066215120d7717151353131210a4181512ff1f1a16270a0908bf161310643e3f3f7e504f4f564b49485c52514f805e5c554b575556525c5b5d636363655f605e6269656468635f60655d5d5f61686464685e5f5f6052585757505e5b5a46474642895e5c59a55f5e5a484544421733322f7b5b5751644b4844563d3b3c5d3d3d3f5e3b3b3d62393a3c63373838643433336832323455313030672b2b2c4b1413135f16161693181919301716155b282725c944423eaf22201d97100f0e8f0e0d0c8f0e0c0c7f0c0b0a1d12110e4c1514125e0f0e0c6f1e1d1b550e0d0c5b0c0b0b570b0a0a650f0e0d540a09083e0e0c0853090705530c0a071b080604ff050404ff090807ff110f0dff110f0eff0f0e0cff0f0e0cff0e0d0bff0a0908ff090807ff0a0806ff0d0a08ff0d0a08ff0f0c09ff0f0c0aff0f0d0bff0f0c0aff0f0d0aff100d0bff100d0bff110e0bff110e0bff120f0cff120f0cff120f0cff120f0cff110f0cff110e0cff110e0bff110e0bff100d0bff100d0bff0e0c0aff0d0b09ff0d0b09ff0d0b09ff0c0a08ff0c0a08ff0c0a09ff040403ff090807ff080706ff060505ff050404ff050404dd0e0e0d4c1e1e1d4b2222205c2525245d272626962a29277a2c2a275b322f2b5326252371292927833d3a36e6615b517943403d7f46423f9e514e4a984d4946a5524d4a974b49468c474541984c48468747433f74403d384a33302d372725216c23221f321e1c19853935305121201e5c22222163201f1f66201f1e651d1c1b5f1a19188b1e1d1bff030302ff030302ff030302ff040303ff070605ff070605ff050504ff090705ff0a0806ff0c0907ff0d0a07ff0c0a08ff0d0a08ff0e0b08ff0d0a07ff0d0a07ff100c09ff0f0c09ff0f0c09ff0e0b08ff100d09ff0f0c09ff100d0aff110d0aff110d0aff100d0aff100c09ff100d09ff110d0aff100d0aff100c09ff0f0c09ff0d0b08ff0e0b08ff0f0c09ff0f0c09ff0f0c09ff0e0b08ff0d0b08ff0e0b08ff0d0a07ff0d0a07ff0d0a07ff0c0a07ff0d0a07ff0d0a07ff0c0907ff0b0906ff0b0906ff0a0806ff0a0805da0b0704f00a0704ff0b0803ff090704ff0b0803ff100a02ff0d0903ff090703ff0906024e1b120446100b033d171106ff0d0904ff060403ff160f061c1b1305121e15041316100540160f04230a0a083c100d092f0e0b07290807062c080706330908062d09080632090806330907062f080706443e2b0a340908072e080706250807056147331237080706330907062b080706330807063308070631080706330908072f08070638080706320907062f0807062c0707062f0807062f0807063008070636080706300807062e08070639080706420f0c06604e371036100f0e32100f0e33100f0e3511100f2b0f0e0d280f0d0d300d0c0b8019171557261b08b319160fff221e19ff1f1b16220a0a09cf1a1714ff1f1c18ff201d185f4e4e508352515280595a5bbda49a92b37b746d4d585858585c5d5e696366685d5e5f64636161665e5d5d62605d5e635d5e5d5f5257575a555b59582c4846424852524d75424241a464615f162827251438352e774642416b403e3d6d3f3d3d793c3c3d5c3a3b3d6f3738396134353568353434453533304e2c2a295e262727811415145718181891191a1a2a161514a2413f3bb82f2e2c9a1513129a100f0e970e0d0c8c0d0c0b640808062d12110f56151313570d0c0b651c1a1a510c0b0a5a0c0b0a550b0a0a7d0e0d0c3d090807350e0c0956090806ff050404ff050504ff090908ff0e0d0bff13110fff110f0eff110f0dff0e0d0bff0e0d0bff0a0908ff0b0907ff0d0b09ff0e0c09ff0f0d0aff100d0bff0f0d0aff100d0aff100d0bff100d0bff110e0cff0f0d0aff110e0bff130f0dff13100dff13100dff13100dff130f0cff120f0cff120f0cff110f0cff100e0bff100e0bff100e0bff100d0bff0f0d0aff0e0c0aff0d0b09ff0d0b09ff0c0a09ff0a0907ff030303ff080706ff070606ff070605ff050504ff050504dd0f0f0e50201f1d542423215e24242361282726892727257f2b2927432a2824872b2b286f2d2d2b8d4c4640f56962588044413c7b413f3c914946438d47454392484544924845447f413f3d8544413e783f3c3a6f3e3b3949302e2a3222221f6f252422321d1b1969322f2c6222201f7a2321205b20201f5e1f1e1d501c1b195b181716801b1a19ff030302ff040302ff030302ff050403ff070706ff070605ff040403ff050403ff0d0a08ff0c0a08ff0c0a08ff0d0b08ff0d0b08ff0f0c09ff0e0b08ff0e0b08ff0d0b08ff0e0b08ff0f0c09ff100d0aff110d0aff100d0aff100d0aff100c0aff100d0aff0f0c09ff0e0b09ff0d0a08ff0f0c09ff0f0c09ff0f0c09ff100d0aff0f0b09ff0d0a08ff0f0c09ff100c09ff100c09ff0f0c09ff0f0c09ff0e0b09ff0e0b08ff0e0b08ff0d0a07ff0c0a07ff0c0a07ff0d0a07ff0d0a07ff0d0a07ff0c0907ff0b0906ff0b0906ff0a0806ff0a0806ff0a0604ff090603ff0b0803ff080604ff080704ff0e0a04ff0907034119110442100a0236110b03ff110b04ff060504ff0e0b05ff171006af191105141e15051722170516231806331c1409290e0c0a302b1f08300b0a09310b0a09370c0b09330c0b09330c0b0a370b09085045300d340c0b09370c0b09390c0a073a593f0c3207060537090807300b0a092e0c0a09360c0c0a350c0b0a390c0b0a380c0b0a2b0b0a09330c0b09330c0a09330b0a09240b0908260a0908330b0a09350c0b0a310b0a09330c0a09330b0a0934100d0753593c11300d0c0b2e0e0e0c321110102e110f0f2c100f0f32100f0e320d0c0bff221e1aff201c18d91a1814210b0a096511100eff211e19ff1e1b17ff201c18b422201d7d5050516950514f5d5b5959a78a837c5b565557555e5c5d545b595b61606162595c5d5d565a5a5d585c5a5e5d5e5d605559595b57595856575a5a585a575251a27d7970673d3e3f945c59570f2f2d29223b383278464543663b3b3a94404040653c3d3e623838395a373738603635355a3433337d3434326a30302f6521212182151515561818195910100f221b1a17a5464441821d1d1b93100f0e840f0e0d630b0a0934090807420808072a0d0c0b61141312571111106d1e1c1c490a0909520b0b0a570b0a09500d0c0b4f0a0a0854060605ff050504ff050504ff0b0a09ff0a0908ff0e0d0bff12100eff100e0cff0e0c0bff0f0d0bff0c0b09ff0b0a08ff0c0b09ff0e0c0aff0f0c0aff100d0bff100e0bff0f0c0aff100d0aff120f0cff120f0cff130f0dff13100dff15120eff14110dff14110eff15110eff14110eff14110eff14100dff13100dff13100dff120f0cff12100dff120f0dff110e0bff0f0d0bff0e0c0aff0e0c0aff0e0c0aff0c0b09ff0a0907ff040303ff080706ff060605ff080706ff050505ff050504d911111055201f1d6021211f542221216a2625248c2827256b2928273d2624217a2827247b2d2c2a883c3935b84e4840713e3b39743f3c3a8043403d6f3b39377f42403d743e3b3a763e3b3a7c403d3b733c3a37773d3b373e2b29263f24231f6d252423391e1c1a552b29256022211f8022212061201e1e631f1e1d6b1c1c1970191816691c1b1aff030302ff040302ff040302ff070605ff080706ff070605ff020202ff070605ff0c0a08ff0e0b09ff0e0b09ff0e0c09ff0f0c09ff0f0c09ff0f0c09ff0e0c09ff0d0b08ff0d0b08ff0e0b09ff0f0c09ff100d0aff100c09ff100c0aff110e0bff120e0bff120f0cff120e0bff110e0bff110d0aff110e0aff100d0aff110e0aff100d0aff0f0c09ff100c09ff100c09ff0f0c09ff0f0c09ff100d0aff0e0c08ff0e0b08ff0e0b08ff0e0c09ff0e0b08ff0e0b08ff0e0b08ff0e0b08ff0e0b08ff0d0a08ff0c0a07ff0c0a07ff0c0907ff0b0906ff0b0806c50f0a03ff0b0803ff0a0806ff0e0a04ff090704ff140e03401b1103400f0a023d181006ff070504ff0f0a05ff130d06ff0b0905ff060503ff140e06140a080322151005421c150753211708250b0a0941261b08330e0c0b2f0e0d0c33100e0c2d0f0e0c35110f0e3b402b0d33100f0d32100f0e36100e0c4067490f340d0b0a300a0908290b0908370f0e0c3311100f3012110f3211100f3212100f361110103612100f3512111037131110361412113313111032121110321311103011100e3512110f33110f0e3d13100b395a3e0d2f11100f3c1211102f12101035131111331211103311100f35100f0dff181713290c0b0a7311100dff1f1c18ff1f1b18ff231f1aff1d1a16ff231f1b7a3736347c4e4f4e58504d474755545446504f4b46545355535d5b5b525a5a5b5d5f60605a5c5c5f5357595c5558595b595d5c5f64585657605b5858525e5a5786696560b9807974744c4c4a59504f4a1435322e8e65615c7859535170373534853f3f3f533a3a3b5639393a5c363737603636367a3434337c3e3b38692e2e2d5b20212174151516581a1a1b41121110883634319a3c3a396c1818172b0b0b092f0b0a09600d0c0b7f0c0b0a560b0b092d0c0b0a791c1a1982171514631111105a0b0a0a520b0a0a550b0a09420d0c0bef050505ff050505ff050505ff0a0908ff0a0908ff0b0a09ff0e0c0bff110f0dff0f0d0bff0e0c0aff0d0b09ff0c0a08ff0f0d0bff100d0bff110f0cff120f0cff120f0dff120f0dff14110eff130f0dff14100dff13100dff14110eff13100dff110e0cff110e0bff110e0cff120e0cff120f0cff120f0cff120f0cff110e0bff110e0cff110e0cff110e0cff110e0bff100e0bff0e0c0aff0e0c0aff0d0b09ff0c0a08ff0b0908ff0b0908ff050505ff090807ff080706ff090807ff080706ff050504e011110f4b1f1e1c561f1f1d5521212069252523832625249437332d3f27262163292622682f2e2c6031302e6b3b373365383634743e3b37743d3b3881413f3c783e3c3a6e3a3937703b3937763e3b39843c38367c3c39363f2d2a273f242320652322202f1e1c197b33312d842825227a22212051201f1e621f1e1d691c1b19641a1916681e1d1cff030302ff030302ff040403ff070605ff060605ff090806ff070605ff0c0a08ff0c0a08ff0c0907ff0c0a08ff0d0a08ff0d0a08ff0e0b09ff100d0aff0e0c09ff0d0b09ff0d0b09ff0f0c09ff100d0bff0f0c0aff100d0aff120e0bff120e0bff110d0aff100d0aff110e0bff120e0bff120e0bff130f0cff130f0cff120e0bff120f0bff100d0aff0d0b08ff120f0bff110e0bff110e0bff110e0bff120e0bff100d0aff100e0aff0f0d0aff0f0c09ff0f0c09ff0e0c09ff0f0c09ff0d0a08ff0c0907ff0b0907ff0b0907ff0b0906ff0b0906ff0a0806ff0a08067a120d03ff090806ff0c0904ff0e0904ff0d0a04361b1103450f090248140d04ff130d05ff140e04ff090703ff110c05ff060503ff151006ff100b05150a08031a0c0905190e0b052d1e1506290c0a092b130f083c1e1608300f0e0c2d100e0d2c0f0e0d604e371039100f0e32100f0e36110f0e436b4c12391211103a11100f32100f0e200f0d0c3f111110391110103511100f3612111036121110381210103a13111133121110341412113614121135141311321311112d12100f341312103011100f3717120c3c62430d3113110f311311103212111040131211361311113313121131131110230c0b0aff231f1bff25211cff27221eff201c17ff211d18ff24201bff28231e58454647995455555d5a534b565d5c59595251504c5855564a5756564e5959574f5657584e555559515655595459585b5a5c5d5e59545553515654542c4946413a3d3c394843413eb46d665f2025221f0b2d2b277a55514c7f4443418d454342653f3f40583b3c3d533838385938383856363636553735355a353433822d2c2c5b16161661161616581a1a1a5f1917157720201d97353433891c1b1a97100f0e960e0e0d930d0c0b840c0b0b530b0a09350d0c0b611615137d1817156c161515580b0a09560b0a094c080807ff050505ff050505ff060505ff0c0b0aff0a0909ff0a0908ff0b0a09ff0b0a08ff0c0a09ff0d0b09ff0e0c0aff0b0a08ff100d0bff100e0bff120f0cff13100dff13110eff14100eff13100eff110e0cff15110eff16120fff16120fff16120fff16120fff16130fff16120fff15120eff14110eff13100cff13100dff13100dff14110eff120f0dff13100dff12100dff120f0cff110f0cff100e0bff0f0d0bff0f0d0aff0e0b09ff0d0b09ff0c0a08ff0b0a08ff090807ff080706ff080706ff060505ff050504691a1816651f1d1c5c21201e5421201f5d24242386262524a52a29273a282622682924204b2d2a28522e2d2b943e3b3765393533693a37346a3a37346f3b393664363433663735346b3836346a3736336634333067363330432d2b283823221f67332e292c18151347262522812322206821202056201f1f571f1e1d581d1c1a6b1b1a187722211fff030302ff040302ff050504ff070605ff070605ff0b0a09ff0c0a08ff0d0b09ff0e0b09ff0e0b09ff0e0c09ff0e0c09ff0f0c0aff0e0b09ff0f0d0aff0f0c09ff0f0c0aff0e0b09ff0e0c09ff0f0c09ff0f0c09ff100d0aff110d0aff120f0bff110e0bff120e0bff120f0bff120f0bff130f0cff120e0bff110e0bff13100cff130f0cff14100cff130f0cff0f0c09ff120f0cff120f0bff130f0cff120f0bff120f0bff110e0aff100d0aff0f0c09ff100c09ff100c09ff100c09ff0f0b09ff0f0c09ff0e0b08ff0e0b08ff0d0a07ff0b0906ff0b0906ff0b0906ff0b090665110c03ff0d0a04ff0a0705ff0a07034c1d1304580e090340160f05ff0f0a03ff070504ff0b0804ff060503ff070603ff110c05ff110d05ff17110576211605161e15051917110619140e062b19130a290b0a0947291d083412100e3111100e4f4d370c3111100e33110f0e36100f0d3a6d4d112d100f0e3512110f3311100f381311102f11100f3011100f410f0e0c370b0a09300c0b0b360f0e0d3411110f3312101037131111361311112d13110f2a11100f3514121134141211351312113d18140e495c4010331513112c11100f341412113012100f331413123e14131132131211ff231f1bff25221dff211d19ff201c18ff26221dff29241fff2a2621f12a26225c48494a815757545f51504e6a6b6864485250504855525343515152424e515246525155505557584d535357515655574f5654555b5454524e514f4d43524e4c675b58535b37383633444340082a28250d31302b6c4b4a477244403b834243416e434443563c3b3c5a3837375e3433346f3333335036343257322f2e832e2e2d561515155f191919601b1c1cb61a1816421e1c19883433316e1515149a100f0e890e0d0c900c0b0b820c0b0a260a0908430d0c0b5e0f0e0d6411101070121211530a090841080806ff050505ff060505ff060605ff0d0c0bff0b0a09ff0b0a08ff0a0908ff0a0908ff0c0b09ff0e0c0aff0f0d0bff0e0c0aff120f0dff13100eff13100dff13100dff13100dff120f0dff14110eff120f0cff14100dff15120eff17130fff16130fff16120fff171310ff181410ff171310ff16120fff13100dff13100cff14100dff120f0dff120f0dff120f0dff110e0cff110f0cff0f0d0aff100e0bff0f0c0aff0f0d0aff0e0c0aff0d0b09ff0b0908ff0b0908ff090907ff070706ff090706ff070606ff060505ff050504681a1917631e1d1a3d1a191853201f1f54222221912826248c2d2a27472f2c284b272521602d2b28632d2c2a6535332e5e34312f5733302e5732302f5d3533325d333230603332315d32312f5c33302e6733312f5f302e2c412a27254522211e5821201d391d1b19512c29257323221f7c24232156211f1e5a1d1c1b621c1b19691b1817621d1c1aff030303ff040303ff060505ff080706ff0a0807ff0c0b0aff0d0a08ff0c0a08ff0d0a08ff0d0b09ff0f0c09ff0f0c09ff0e0c09ff0e0c09ff0e0c09ff100d0aff0f0d0aff0e0c09ff0d0b09ff0e0b09ff0f0c09ff100d0aff110e0bff120f0bff13100cff15110dff14100cff14100cff14100dff14100dff14100dff130f0cff130f0cff14100dff130f0cff130f0cff13100cff14110dff13100cff120f0bff130f0cff120e0bff120e0bff100d09ff100c09ff0f0c09ff0f0c09ff100d0aff0f0c09ff0f0c09ff0f0c09ff0f0c09ff0e0b08ff0c0907ff0b0906ff0b0906ff0b09077e110c04ff0e0a04ff090603471e1304650e0903670e0903ff140d05ff070604ff151006ff090704ff150e04ff1b1406ff100b05ff090703ff0f0a03ff0605031f1f160517251a0717281c06402d1f062a0c0b095a19140a3913110f3d45310b3412110f3112110f3612110e386a4b0e371211103211100f381311103513111136131210361311102d12111042121110330f0e0d350d0c0a370e0d0c380e0d0b370f0e0c3411100e3714121132131110361312102c13110f371413123a19150e4a64450f331513113413121032141311341413102e1413103113121036141211ff221e1bff28241fff342e28ff322c26ff302b25ff2e2a24ff2f2b25f12e2924554749485c50504d6258555246514f4c4b5554554d5856564e5756554d575759414e4d504e5254564d535457565a5a5b595d5b5a685553536f59555267615b5a826d6966613b3c3d6a4d4b4c1c30302c454f4c4a58454242673f3e3e6c4142415c3d3e3d4f37383855363737543131315632313140322f2e622e2c2c6424242455151516611919196c191919726978708c312f2b8131302f86171614820e0e0d950d0c0c870c0b0a7f0b0a0a1b0a0908500e0d0c65100f0d6811100f65100f0f5e070605ff060605ff060606ff060606ff0c0b0aff0c0a09ff0b0a09ff0b0a08ff0a0908ff0b0a09ff0f0c0bff0f0d0bff0f0d0bff12100dff14110eff15120fff15120fff161310ff15120fff16120fff14110eff15120eff16130fff17130fff181410ff171310ff171410ff181411ff181411ff17130fff16120fff14110eff15120eff14110eff14110eff12100dff14110eff13100cff120f0cff100e0bff0f0d0aff100d0aff100d0aff0f0c0aff0e0c0aff0d0b09ff0b0a08ff0a0908ff0a0807ff0a0907ff0a0908ff070706ff060605571f1d1c6a1d1c193f1a19183e1b1a1a431e1d1c60232321592625243f2927256f2927249d33302d7d302e2c69383531663634325e343230633634315f333230502e2c2b5a302f2e5e31302f673533316c34323077312f2d572a28254524221f6321201f52201e1d542d2b286624212067222120511f1e1d541c1b1a531c1a196b1817155f1e1d1cff030303ff040303ff060505ff070606ff080706ff0a0908ff0a0907ff0d0b09ff0d0b09ff0f0c0aff0f0c09ff100d0aff100d0aff100d0aff0f0d0aff0f0c0aff0f0c0aff0f0d0aff110e0bff120f0cff120f0cff130f0cff14100dff120f0cff120f0cff14110dff15110dff14100dff13100cff130f0cff14100cff14100cff14100dff14100dff15110eff15110dff130f0cff15110dff14100dff14110cff14110dff14100cff13100cff130f0bff110e0aff110e0aff110e0bff100d09ff100d0aff0f0c09ff0f0c09ff0f0d09ff0f0c09ff0d0b08ff0c0a07ff0b0907ff0c0907ff0b090783110c03ff0e0903471c12044d0d08034b100a04ff080604ff080704ff0e0a05ff110c05ff0f0b04ff080603ff100b04ff0b0904ff0b0804ff120d05ff110c04190e0a0521120e0527150f0637261b07391812084134240a5b3a290c331311103012100e3213110e39513b0f38141211341311103413121134131211351413113714121237141211361312113615131244151312311312103212100f320e0c0a300b0a08310e0c0a3411100e3615141233141311331513113d15110d4d593d1033131210301413112c1312102513110f2a1311102a14121032151311ff37322bff39342dff36302aff352f2aff342f29ff342f2aff322e28473e3c3b494547488a4f4f4f725452505755545251595857565e5b5a424e4f50515858574d555555505555574c535356535758594e525253554c4c4d5853514d584846457d5f5d5c6a47474884474644903736365f3b3c3b614242415b3e3f3f583e3d3e553a3a3b4b36353664353535573433334f32313144312e2d592d2c2d632727275d1616165a1a1a1b76191817ffbde5e19433322f862626258e121110810e0d0c840c0b0b880c0b0a7d0909083c12110f530f0e0d661413114813121132141311ff060505ff070606ff070706ff0a0909ff0c0a0aff0c0b0aff0c0a09ff0b0908ff0b0908ff110e0cff100e0cff0f0d0bff13100eff15120fff151210ff161310ff171310ff171411ff171410ff171310ff171310ff17130fff181410ff181410ff171310ff181411ff181511ff181411ff181411ff171310ff16130fff16130fff16130fff15120fff14110eff15120fff14110eff14110dff120f0cff100e0bff110f0cff110e0bff110e0bff100e0bff0f0d0bff0f0d0bff0d0b0aff0b0a09ff0a0807ff090807ff070706ff080707ff0706064a1a1a194e1e1c1a4d1e1d1c4f1d1d1d411d1c1b4720201e512323224b20201f84282725a8363431822f2d2b6e35322f6033322f67353330502d2c2a5c31302e57302e2c5d312f2e5a2f2e2d6131312f592f2e2c622c2b294e2724223e23211e6922212089232221641f1e1d5722212059201f1e4b1e1d1c611c1b1a4f1b1a19581817165a1e1d1bff030303ff040303ff060605ff070606ff080706ff090807ff0b0a09ff0e0c0aff0f0c0aff0f0c0aff0f0c0aff110e0bff110f0bff120f0cff120f0cff120f0cff13100dff13100cff15110eff14100cff15110dff16120eff15120eff16120eff16120eff17130fff16120eff17130fff16120eff16120eff17120eff15110eff15110eff16120eff17130fff16120eff14100dff110e0bff16120eff15120eff16120eff16120eff14100dff14100dff130f0cff110e0aff120f0bff100d0aff120e0bff100d0aff100c09ff100e0aff100d0aff0f0c09ff0e0b08ff0d0a07ff0c0a07ff0c0907ff0c09073b150e033519100340100a034c110c04ff0f0a04ff160f04ff191207ff0e0a06ff080604ff1d1507ff080604ff150f04ff0d0a04ff151007ff181206ff0a080448150f05140e0b05150f0c052f1711078e32260f4b291e0c4e2e210a341513123718140f5348340f3012121035141311371312113c1513123b1413123515131235141312331312113515131231141312391413123c15141333141210331412102c13120f3112110f34141211331513123116141348231a0935573b0c36161414301514122f1412112f141211331514123115131231151311ff3d3730ff3a352eff37312bff342f29ff3a3630ff37322dff37332e55444545634f4d4b784d4d4d7f5e5d5e5852514e5e615e5c585f5d5b4a54545448505252434e4f4f4a515153434e4e524c50525445494c4c4f48494a3a4747443940403e644a4a4b8c4b4a498c4644446f383838633c3c3bb778716a543b39375e3e3d3e563a393a55363738563435345433323252302e2e5c2d2a29612b2a29621f1e1e5d161616651e1f1f56191818c8a1bfb8602121209c1d1d1c850f0e0d100b0a098d0c0b0b9a0d0c0b720908072b0c0b0a440f0e0d3e100e0dff060606ff060606ff080807ff0e0d0cff1a1817ff100f0dff0d0b0aff0c0b0aff0b0a09ff0a0907ff110e0cff120f0dff13100eff151210ff161310ff171411ff161410ff181512ff181512ff191612ff1a1612ff191511ff191511ff1a1612ff1b1613ff1c1713ff1a1512ff1a1612ff1a1613ff1a1612ff191612ff191511ff181511ff181411ff171411ff161310ff15120fff14110eff120f0cff120f0cff120f0cff110e0bff13100dff120f0dff100e0bff100e0bff0f0d0bff0e0c0aff110f0dff0f0e0cff0e0d0cff090807ff080707ff080707ff070606501d1c1c4a1a1916511f1f1d55201f1f4d20201f50232221682b292648201f1f6d252423b1353431772c2b29652f2d296132312d66343330582e2e2c562e2d2b4a2a2a28542e2d2b4f2c2a2a542d2c2b4a282927552928253821201e3b21201d65232321892321216d1e1d1c9f2e2b285f21201f541e1e1d571c1b1a531a18165519171454191816ff040303ff040303ff070605ff080706ff080706ff0c0b09ff151311ff0f0c0aff100d0aff0e0b09ff120f0cff120f0cff110f0bff130f0cff130f0cff130f0cff12100cff13100dff15110eff16110eff16120eff17130fff17130fff17130fff17130fff16120eff16120fff17120fff17130fff17130fff17130fff16120fff18140fff181410ff181410ff16130fff17130fff16120eff14100dff16120eff17130fff17130fff17130fff16120eff15110eff15110dff130f0cff120f0bff110e0bff130f0cff130f0bff110e0bff100d0aff100d0aff100d0aff100d09ff0e0b08ff0d0a08ff0d0a08ff0c0a0732180f0346120c034a0f0b04ff0f0b04ff0d0904ff080604ff150f06ff090705ff160f05ff1a1307ff151003ff201707ff1a1307ff181106ff070503ff1b150afc0805040f2a1e0813312208123c2a0b70493712342a1f0a2b120f0b563a2c0e3013100b434c39102a1412102d1514122d1413112f1413102b14120f2b1413102a1413102b1514122b151412301413122b1413112c141311301514122c1614122815141128141311241311102a13110e483023082f110e0a5f382b0f2c13120f2815141228151411291615122b16151330161513ff3e3832ff3d3731ff3d3831ff37322dff3a352fff35312bff38332e5c48484a674a4a4a7453524f695c5c58805353504f5655544c5353554d5353564951505245504f50464d4f51424b4c4f464a4c4d474c4c4d524a494a344746423d3e3f3e443838372d3b38343c38373567373838533e3d3d584040415b3d3d3f5d3b3b3c5b38393a5a3636366935343557313030602e2d2c5c2d2c2b642b2a2b6e1b1b1b5c1515155b1b1a1b7e58615e6643504d50272725791b1a19860e0d0c290b0a09940c0c0b960e0c0c75070706ff060505ff090908ff0e0d0dff201d1cff242221ff2b2827ff2f2c2aff332f2cff1b1816ff0c0b0aff0c0a09ff0d0c0aff100e0cff13110eff181512ff151210ff181612ff191613ff191613ff191613ff191613ff1a1713ff1c1814ff1a1612ff1a1612ff1b1713ff1c1813ff1b1713ff1c1814ff1b1713ff1b1713ff191511ff191512ff1a1612ff181510ff181411ff171410ff181511ff161310ff171310ff16120fff15120fff13100dff13100dff12100dff120f0dff110f0dff110f0dff100d0bff0f0d0bff0e0c0bff201d1aff211e1bff23201dff1b1917ff12110fff0c0b0aff0807064d1e1e1d681c1b1a551f1f1e7421202058212120602222207325242251212120462724208d33322e6b2b2b28832f2e29702f2e2b532e2d2b512d2b2b4f2b2b294e2c2b294b2a29284d2a2928492828274a292926562927254222211e3b201f1d3a1f1d1b271d1b185a1e1c1b572221205d201f1f5b1e1d1c641c1b1a5f1a18176e1a18164c191816ff040403ff080807ff090807ff141210ff1a1715ff171512ff191613ff0e0c0aff0f0d0aff100e0bff100e0bff120f0cff13100dff13100dff13100dff14110eff14110eff13100dff16120eff17130fff17130eff17130fff17130fff17130fff171310ff181410ff181410ff191510ff191511ff181410ff191410ff171310ff15120eff181410ff16120fff17130fff16130fff181410ff16120fff16120fff181410ff181410ff17130fff17140fff15110dff15110dff15120eff15110dff14100dff14100cff13100cff130f0cff120f0bff110e0aff110e0aff100d0aff0f0c09ff0e0c09ff0e0b09ff0e0b083219100345130c033e110c03ff0e0b04ff0a0805ff160f06ff080604ff120d05ff140f07ff140e05ff120d05ff171106ff070604ff1b1406ff070504ff191309ff1b1407ff140f0417171106161f1708172f220a1c3b2a0c1f4c360d5c533c136a503c18835c461c6f694d1b4c5a4116536a4b17577250186f4f3d1d7164481e8a5e4622505c42174f77551a496347183e5f44144375531645664a164f6045164b7654175c5e461b5a6c4f1b5c79581a576146195b674b187a624b1d5b523c187b624a1d65684b1a445c4217506b4c164d6a4b16ff3e3833ff403b35ff3e3932ff3e3832ff3c3631ff3a3530ff35302c5b4a4a4c5c4c4c4b6353514d42484744644b4a48585151504f535355535353564f525255494e5052474d4e51444b4c4e414a4b4b50514f4f644f4d4e594f504f504a49492736322f46302d295c393a395b3435368c403f3e6040403f583c3c3d59393a3a5c37373859363636583534344f2e2e2e362a292749201d1c8a2a2b2b591a1a1a60141415551c1c1c926577735d3c454154272726841a1917870e0d0c800c0c0b8f0d0c0b6c0b0a095a070605ff0a0908ff0d0c0cff0e0d0cff2c2927ff2f2c2aff35312eff35312eff3b3531ff25221eff0d0b0aff0e0c0bff12100dff151310ff181512ff161311ff191614ff1a1714ff1b1814ff1c1915ff1c1915ff1c1815ff1c1814ff1b1713ff1b1814ff1a1713ff1b1813ff1d1915ff1c1814ff1b1813ff1c1814ff1b1613ff1b1714ff1b1713ff191512ff181511ff1a1611ff191611ff181511ff161310ff15120fff15110fff151210ff14110eff13100dff13100eff13100dff100e0cff110f0cff100e0cff100e0cff0f0d0bff1f1b18ff201d1aff221e1bff231f1cff0b0b0aff0a0908ff0a08074a1d1c1b5d1c1a185e201f1e712120205a222121802423216b242321562322205e23211d7f35332f702c2b27652928257a2c2a28532c2c295a2e2d2c572d2c2b542c2b2a492928274a2828274325252449282725622b29274c2624224020201d38201d1a361d1a175f1d1c1b64211f1d5a1f1f1e5c1d1c1c571c1b1a48191716461413104d181716ff050403ff0b0a08ff0a0908ff100f0dff191613ff191613ff191613ff14110eff110e0cff120f0cff110f0cff120f0dff130f0cff120f0cff14110dff14110eff15120fff14110dff15120eff16130fff17130fff18130fff191511ff181410ff181410ff18130fff181410ff1a1512ff191511ff1c1713ff1b1612ff1a1612ff191511ff16120fff181410ff181410ff181310ff191410ff181410ff171410ff191411ff181410ff181410ff181410ff191511ff17130fff16110dff15110dff14100cff15110dff13100cff14100cff13100cff120f0cff120f0cff110e0bff100c09ff100d0aff0f0c09ff0e0c093a161005411a120444181004ff0c0a05ff0b0906ff100b06ff160f06ff170f04ff140e06ff0e0b05ff0a0804ff0c0904ff0a0804ff080604ff0d0a05ff1e1609ff251b09ff251b09ff120c05251c15082021190a20201a0c2218140d2b29200d1d5b4111254c360f1d1d1610235f441441503d18211e1a112e73521623473413223a2a121f7250141f3226121a3224111d64481429241e121d473412216d4d151c221c131a6043131f694b15202a2115326a4e1a1e4e3b131b241e102571511324503b132c231c112c7250181f3b2c112f332714ff423c35ff413a34ff403a34ff403b35ff37322eff3d3933ff3c3732604c4b4e664e4d4c59504f4c544644436c4c4c4a604e4f4f4f525254575555584f505254474c4c504a4c4d50434a494c434a4a4b4c4d4e4d7a4f4f4f6a5858575449494975393a3785454544753a3a3b6f343535743e3e3c562e2f2d5338383958363738563536375d363737533232334c2f2f2f3d2d2b2a4d2928285f2828285d161616721616165c1a1a1b976b8480321b1c195a252524891b1a18900e0d0c820c0b0a770d0c0b3a080706fe0a0909ff0d0c0bff0f0d0cff121110ff2f2c2aff322f2cff34302dff37322eff332e2aff221f1cff0d0c0bff110f0cff191614ff191614ff171411ff1c1916ff1d1916ff1d1915ff1d1915ff1d1915ff1c1814ff1c1814ff1a1713ff191512ff1b1613ff1c1814ff1d1915ff1d1915ff1c1814ff1c1814ff1c1814ff1c1814ff1b1713ff1b1713ff1a1612ff1c1713ff191511ff1a1612ff181411ff171411ff171310ff15120fff161310ff15120fff15120fff14110fff13110eff14120fff13110eff120f0dff110e0cff0c0a09ff1e1b18ff1f1b19ff201d1aff1d1a17ff131110ff0c0a09ff0d0b0a511f1e1d7b1d1c1a5a201f1f5b2120205e232222662524234923201d5c2422227a262624792e2d2b812d2d296a2a2826862c2b285d2b2b29592d2b2b552b2a29552c2c2a4b2827264c282727422625244a2a28265c2a28265a26252339201f1d7222211e871f1f1e731b1a195b1c1b18541d1c1b551c1c1b591c1b1a471918174e1715134c161514ff050404ff0b0a09ff0a0908ff0a0907ff161411ff181513ff191613ff141210ff120f0cff120f0cff120f0cff13100dff15110eff15120eff161310ff16130fff16130fff15120eff15120eff16120fff17130fff17120eff17130fff181410ff181410ff191511ff1a1612ff1c1713ff1b1713ff1b1612ff1a1511ff191511ff191511ff1a1611ff1b1612ff191410ff191511ff191511ff1a1612ff191511ff16130fff1a1612ff1a1612ff1b1712ff1b1712ff191510ff16120eff16120eff15110dff120f0bff120f0bff14100cff14110dff13100cff130f0cff120f0cff130f0cff110e0bff110e0bff100d09ce1812097341301158412f0d38150d03ff110c04ff161007ff100c06ff0a0906ff0f0b07ff090705ff130f08ff0d0a04ff0e0b05ff161006ff211808ff261b09ff0e0b04ff201809ff070604ff2e2410d80c09043d3c2a0c2f37280d253a2b0c1f201a101737280f155b3f0fc33932271e402f111b62461219271e0f1a6042131d6144151d271e131a5e431224412f131c1c170f1a60440f1933250d1731240f1e6e4e14172a200e1b332912336f511c24271d13194b371218735211181c170d204332101c5d42111f21190e22563e111d523c11ff454039ff423c36ff3d3831ff37332dff3d3833ff3e39347c43423f5a4c4a4d915352516c514f4d5a464644684c4b4b5f4e4f504d4f51535554555651515153444a4b4d5f58595a4548494b474a4a4b4e4b4c4e4f494847584847496a4243426c3a3b3b6a404141663737386f3233346a3c3d3c643938385b3635366c373637793536367734343454313233472c2d2d312827251e2423205a242423581515168017171751171717ddb1d1cf261e1e1a62292927671716147e0d0c0b6b0c0b0a33090806ff0a0909ff0f0e0dff0e0d0bff0f0e0dff12100fff2f2b29ff312d29ff302d28ff24221eff282422ff25211eff181614ff1c1916ff1c1815ff191512ff1d1916ff1c1916ff1d1a16ff1e1b17ff201c18ff1e1a16ff1e1b17ff1e1915ff1b1713ff1a1713ff1c1814ff1e1a16ff1e1a17ff1e1a16ff1d1915ff1d1915ff1c1814ff1d1915ff1b1713ff1a1612ff1a1612ff1a1612ff1a1612ff181411ff171410ff171310ff16120fff15120fff15120fff15120fff161310ff161210ff13110eff13110eff13100eff110f0dff110f0cff161412ff171513ff1c1916ff1e1b18ff100e0dff12100fff0e0c0aff0c0a09531f1e1d481c1a1758201f1e5b211f1f5c2221215b2422224e24232362232221aa292826962f2e2c802e2d29672928256c292826582a2928532b2a28582c2b2a552b2a2a48272726592b2b29472626244b2827255b2827263f25231f391e1d1b7521201f6b201f1e6a1b1a19691d1c1b621c1b1a781c1b1a5e1b1a19491816152e14121049181816ff040403ff0a0908ff0b0a09ff0a0908ff13110fff141110ff141210ff110f0dff0f0d0bff13100dff130f0dff15110eff15120fff15120fff16120fff171310ff171310ff171410ff161310ff171310ff17130fff17130fff16130fff171310ff171310ff191510ff1b1712ff1c1814ff1b1713ff1c1713ff1c1714ff1b1713ff1c1813ff1b1712ff191511ff1a1511ff1a1611ff191510ff1a1611ff1a1611ff1a1611ff16130fff1b1713ff1b1612ff1b1712ff1d1814ff1a1611ff17130fff16120eff15110dff130f0cff120f0bff15110dff13100cff14110dff13100bff14110cff120f0bff120e0bff110e0aff110e0aff0f0d09ff0f0c09ff0e0b084a130d04f10e0b05ff130e06ff0b0906ff181006ff0a0806ff171005ff110c04ff181207ff191208ff0b0804ff0d0a06ff080704ff291e0cff080604ff271e0dff231b0bdf1510095d45310e63815b1b98835f24dc1d1508ff080604ff080705ff080704ff080705ff080604ff080705ff080705ff090705ff080605ff070604ff080705ff080705ff080705ff080705ff080604ff070604ff080705ff090705ff090705ff090705ff090706ff090705ff090805ff080705ff080705ff080705ff090806ff433e38ff3a3530ff433e38ff423d37ff413c37ff413b36534141426f4c4a479c53535267525353564a4847574848484c4c4c4f4e4e4f50514e4f524c4a4c514348494b4b4a4b4d444847494a4a494a604948484d4747455f3d3d3d8048474791414142794141417732323370363737523c3a38442e2d2a703536355a3736375a3535365a343434573031314f2d2e2e2e2928244c2a2826632424235e1515157916161667191a19fbb7e2e02c1e1d1a702c2a286d141312730d0c0b39080706ff0a0909ff0f0e0dff0e0d0cff0e0d0bff0f0e0cff0f0e0dff181614ff24211fff23201dff23201dff1c1916ff1d1a18ff1e1b18ff1d1a17ff1b1815ff1e1b19ff1e1b18ff1f1c19ff1f1b17ff201d19ff201c18ff201c18ff1e1a16ff1b1713ff1c1914ff1d1914ff1f1b17ff1e1b16ff1f1b16ff1e1a16ff1e1a16ff1e1a15ff1e1a15ff1a1612ff1a1612ff1a1612ff1c1813ff1b1713ff191611ff171411ff161310ff15120fff151310ff171411ff161410ff171411ff161410ff161310ff14120fff13110fff13100eff110f0dff100e0cff100e0cff100e0cff100e0cff151412ff100e0dff100f0dff0e0c0aff0b0a09591a1817671b1a175d201f1e56201f1e59212121762221204e25232266222120a8292825872d2c286b2c2c295c2726235d2726244f28282752292928542a292953252526491513124d272626452524234b272624622624234e23211f6c12100d89201f1e771f1e1d731b1b19521e1c1a681c1b1a591c1b1a5b1b1a194e181715441513114a191816ff050504ff0a0908ff0b0a09ff0b0a09ff0e0d0cff151210ff110f0dff0f0d0bff100e0cff13100dff14110eff15120fff15120fff161310ff161210ff16120fff17130fff17130fff16130fff16130fff171411ff171310ff181411ff191512ff1a1612ff1a1612ff1d1814ff1e1916ff1e1915ff1e1915ff1d1814ff1d1915ff1d1814ff1c1713ff1c1713ff1b1713ff1b1713ff1b1712ff1b1712ff1b1612ff1a1612ff191511ff171410ff1a1612ff1d1915ff1d1914ff1f1b16ff191611ff18140fff17130eff14100cff130f0cff130f0cff15110dff14110cff15110dff14110cff14110cff130f0cff120f0bff100d09ff0f0c09ff0f0c09ff100d09ff0f0c09be130e07ff0c0907ff0b0906ff130e06ff130e05ff1a1204ff1e1607ff1b1307ff161108ff0a0806ff251b0cff0a0705ff100c05ff090705ff241c0bff20180bce1e170a6a2b200b57553a10556d4c15b236250ba5201707ad221808a9261a08b3251a09b3483416b13a280fb8251b09c0251b0bb622180aaf231909b1463317b6412d11b0251a08ab231907ae241908dc1e170bbc473316c9422e11d222190bdc1e170ccd20180ad121180bb9423015b23f2c10b4231908b0231907ad231907ff4a443eff47423bff464039ff433e38ff453f3aff413b365947464970504f4f864f4e4c6f524f4e72494746474746464949494b524b4c50524c4d50514c4c524746474a4546474a44464647484648494d454546554748474c3a3b3875424141543b3b3a473a3b3a713334336c3737375137373646353534523535355b363637583435355731323358303131522d2c2c3526252341292827743231305b131314621a1a1a54151615ffbaede93120201d762928267916151336080807fd12100fff131210ff11100eff0f0e0cff0d0d0bff0d0c0aff0d0b0aff12100eff141210ff1e1b19ff1e1c19ff1e1c19ff1d1b18ff201d1aff201d1aff201d1aff201d1aff221e1aff211d19ff231f1bff211d19ff211d19ff211d19ff211d18ff201c17ff201c18ff201c18ff211d18ff221d19ff211d19ff201d18ff1f1c17ff1f1b16ff1b1814ff1b1713ff1b1713ff1d1915ff1c1814ff1b1613ff171410ff161310ff161310ff161310ff15120fff161310ff161411ff171410ff171411ff151310ff14120fff14110fff14110fff13110fff12100eff110f0dff100e0cff100e0dff0f0d0cff0e0d0cff100e0dff0f0d0bff0e0d0c631a1917511c1a175a1e1e1d541f1e1e5a2121216d2222207227262579212120872725237f2c2c287c2d2a2873282724552524224b26272653292829552929298d1c110845140f09320b08063e0d0907560d0a085b0c0a0747150c07841e1712940e0905451c1c1a7d1b19184d1b1b194d1c1b1a5c1c1b1a581a1918551816153714131146161513ff090808ff0a0908ff0a0908ff0b0a09ff0d0a09ff0f0d0bff100e0bff110e0cff110f0cff110f0cff13100dff15120fff16130fff15120fff161310ff171410ff181410ff191411ff191512ff181511ff191511ff181411ff1a1612ff1a1512ff1b1612ff1d1813ff1c1813ff1d1814ff1e1915ff201b17ff1f1a16ff1f1b16ff1e1a15ff1e1a15ff1e1a15ff1e1915ff1e1a15ff1f1a15ff1e1a15ff1e1915ff1e1a15ff1d1915ff1a1612ff1a1611ff1a1611ff1a1611ff1a1511ff1b1712ff191410ff191410ff181410ff16120eff16120eff15110eff15110dff15110dff16120dff15110dff14110dff14100cff13100cff100d0aff100d09ff0f0d09ff110e0aff100d0ade110d08ff150e05ff151006ff140e05ff0e0b06ff1a1206ff0a0806ff1d1407ff0b0907ff1d160aff211809ff0e0b05ff2a200bff362910ff100c06cd181309423727093f6345104263430fff0a0905ff413013ff3a2c17ff3b2d17ff483920ff1d1507ff0f0c07ff473416ff46341aff453419ff4f3b21ff1e1508ff0f0c07ff4d371aff45341cff483621ff513d21ff221809ff0e0b06ff513a1bff4a3a21ff473720ff4f3f27ff221809ff0e0b07ff423118ff41331bff453520ff4a433dff4a453eff453f3aff47403aff413c35ff2827275947484a5c4f4e4f714f4e4b54504f4c4f4543434647474a4846464a4f4a494c524a4b4e4b46474a4a44464b4443434648454647494646495744454640424142433c3b383433312d9d4e4740282d2a28563534335e3739385637373642333432523435345a343435593334345a313232573030314b2d2d2d3b2623204229292760212020581313146018191952161717daabcec331211f1d842d2a28420d0c0bff1d1c1aff1a1817ff110f0eff100f0dff0f0d0cff0e0c0bff0e0d0bff13110fff211e1bff24211eff211e1bff1f1d19ff22201dff231f1cff201d19ff1e1a17ff211e1aff231f1cff221e1bff221e1aff231f1bff211d19ff221e1aff1f1b17ff1e1a16ff1e1b17ff201c18ff211c18ff211c18ff221d19ff241f1aff211d19ff201b17ff1f1b17ff1d1915ff1d1914ff1e1915ff1c1814ff1d1915ff191612ff181411ff171310ff161310ff151210ff161310ff161310ff161310ff161411ff171412ff171512ff171411ff151210ff151310ff14120fff12100eff100e0dff100e0cff0f0d0cff0f0d0cff0f0e0dff0e0d0bff0f0c0bff100e0e7d1818164c1916145a1e1d1d581f1e1e5820201f7a222220632625247721201e99282420792a2825762d2c295e252421442524234d2726274e282727532828288d1f13094a140e092c110b053b110a0357120a045b110a0539180f089d1c140e96140f0b321513105a1a1917541b1b194b1b1a19591b1a19591a19184d1817153e1412102d181613ff090808ff0a0908ff0b0a09ff0d0b0aff090807ff100e0cff100e0cff100e0cff110f0cff110f0cff13100eff14110eff14110eff161310ff181511ff171411ff191511ff191512ff191612ff181411ff171311ff161310ff181511ff181410ff1a1511ff1a1613ff181411ff1a1511ff1b1713ff1b1713ff1b1713ff1c1814ff1e1915ff1e1a16ff1e1a15ff1d1a15ff1b1613ff201b16ff1f1a15ff1e1a15ff1e1a15ff1e1a15ff1e1a15ff1b1712ff1f1a15ff1c1814ff1d1914ff201b16ff1e1914ff191511ff18140fff18140fff17130fff15110dff15120eff16120dff15110dff16120eff16120eff15110dff14100dff13100cff130f0cff110e0aff100d0aff100d0aff100d0ac8120e08f50d0b06ff140f06ff0d0906ff0e0b05ff100c07ff0c0907ff0f0b06ff21180aff221a0aff251b08ff211808ff0b0906ff1a1308b6241a0a4233250a51553b104661410fff090705ff44381bff291f0dff382b16ff413117ff0a0706ff090806ff4c3a1cff342715ff362917ff46361bff0a0806ff0b0907ff43321cff302514ff3a2d1aff43361eff0b0906ff0a0906ff453721ff302515ff41321dff483820ff0c0906ff0c0907ff4b3c22ff332714ff43351dff433e39ff403d36ff433e38ff413c36ff272726ff21202059464648434848456c4a4a47564947444c4545484b47474a474545495048484d4f48484b5047474a4b44454a4d46464a4843434753464749674445475b4749484a3d3e3b4c2e2e2c4d373432352727261523221f503536356132302d4e353535573434355b3334355a3233335b313232593030304e2d2d2d6e2c2b2a4929282956201f1f5613131357191a1a591515158d1513112b1a18169f1f1e1bff23201fff1e1c1aff141211ff0f0e0dff0f0e0cff0e0d0bff0c0c0aff12100eff1e1b18ff1e1c19ff1e1b18ff1b1916ff201e1bff211e1bff1e1b18ff1c1816ff231f1cff231f1cff241f1bff23201bff24211dff24201cff24201cff201c18ff1e1a17ff1f1a17ff211d19ff211d19ff231e1aff221e1aff201d19ff1f1a16ff1c1915ff1d1915ff1e1a16ff1b1814ff1f1b17ff1f1b17ff1d1a16ff1b1714ff191612ff161411ff171411ff171411ff15130fff15120fff161310ff141210ff151210ff151210ff161310ff161310ff14120fff14110fff13100eff100e0cff0f0d0cff0f0e0cff0f0e0cff141211ff151412ff0b0a09ff100e0dff0c0b0a43161512521c1a19601e1d1c581f1e1e571f1f1f6d201f1e4721201f361a19166723221e7f2928245f2a29265a2725234d2726264b2524254c262626522827267d180e06290f0a061d0f090454140b0462150c0462140c044218110a861f140c8c130e094a1918161816141159191815551b1a195a1b1a195b1a1918511817154d16141223151311ff0a0909ff0b0a09ff0a0909ff0d0b0aff0b0a08ff100e0cff110e0cff100e0cff11100dff12100dff120f0dff13100eff13110eff14120eff15120fff171410ff181511ff171411ff171411ff171310ff161210ff15120fff15120fff181511ff181411ff191512ff181511ff191512ff1b1714ff181411ff181511ff1a1612ff1c1814ff1b1713ff1c1713ff1f1a15ff201c17ff1e1a15ff1e1915ff1d1814ff1b1712ff1e1a16ff201c17ff1d1915ff191511ff211c17ff1f1a16ff1e1915ff1d1914ff201b16ff1a1612ff191510ff17130fff14110dff14100dff16120eff16120dff18130fff17130eff15120eff13100cff120e0bff130f0cff130f0cff110e0bff120e0bff120f0bff110e0bb8130e089e110d05ff17130aff0f0b07ff100c06ff140e06ff1d1507ff271d09ff120e07ff231b0cff0c0a07ff261f10ff0b0906a01610064635250a416144105a5d4012ff080705ff413519ff271f0fff332713ff403115ff090705ff0a0806ff3d3116ff282011ff2f2413ff49381bff0b0907ff0a0906ff413119ff362916ff3e3019ff483a20ff0b0906ff0b0806ff4f3f24ff362b17ff403219ff46371dff0b0907ff0d0a08ff534222ff342914ff3d3019ff4c463fff4d4740ff4e4942ff2b2a2bff232323ff1e1e1d674646484243413f6b4b49484e434242494546484d47474a4a4445484e4646494e4545484b4242464b434447464142444c434447594244465b4141445c4646476e424240713334346f3c3d3e1223221f0d292721573434347434333353353536593535365a3435365b3233345a303131562e2f304c2b2c2b5826242156292828551c1c1c58141314561a1b1b3d100f0de4141312ff211f1dff262321ff231f1dff1a1816ff151312ff100f0dff0d0c0bff0d0c0bff13110fff1e1b19ff211e1bff22201cff211e1bff23201dff23201dff25201dff201d19ff27221eff27231fff26221eff27221eff28241fff29241fff292521ff292420ff24201cff221e1aff221e1aff24201cff25211cff231f1bff221e1aff25201bff211d18ff221e19ff241f1aff221e19ff211d18ff201c18ff211d18ff201c18ff231f1bff201c18ff201c18ff201c18ff1f1b17ff1e1a16ff1e1a16ff1d1a16ff1f1b17ff201c18ff1d1915ff1d1a16ff1a1814ff1b1815ff1b1814ff1a1713ff181512ff161310ff13110eff110f0eff151312ff1c1a18ff111010ff0c0b09ff0c0b0ac40e0d0c691916145b1c1c1b661d1c1c571f1f1e651f1d1c68201f1d151b1a176121201f7c292825792b2a2754272524492524244d2625254d2625254e26252595170f072f120c0617110c0769140c0568150c056b140c053b140c05881f130a93120c07551a19161a181612691a1916551b1a195a1a19185a1a1918521716155113110eff0b0a09ff0b0a0aff0c0b0bff0f0e0cff0d0b0aff0d0b0aff151310ff161411ff171512ff191613ff1b1814ff1a1713ff1b1713ff1a1713ff1d1915ff1d1a16ff1e1a16ff1f1b16ff1d1915ff1e1a16ff1f1b17ff201b16ff201c17ff1c1814ff1b1713ff1a1613ff1b1713ff1a1612ff181511ff1c1713ff1e1914ff1e1915ff1e1915ff1d1914ff1c1814ff1e1a15ff1d1915ff1f1a16ff1e1a15ff1d1814ff1e1915ff1f1b16ff1e1915ff201b17ff1f1a16ff1f1a15ff1e1a15ff221d18ff211d18ff231f19ff1f1b16ff1c1713ff1d1712ff1d1813ff1a1611ff17130fff17130fff17130eff18140fff18140fff17130fff16120eff17130eff16120dff15110dff15120eff13100cff14100cff13100cff13100cd114100a91160f04ff150f06ff181208ff181208ff130f09ff130f0aff131009ff261e0cff120f0cff251d0cff1f180bc01712094236250a3d5f4210635d4214ff0f0d09ff4d3c1bff4d3b1aff51401fff48381dff261d0bff0b0a06ff514122ff554322ff564425ff5b4824ff1d1509ff0d0b07ff6b5328ff5a451fff604b26ff564622ff291e0bff0c0a07ff6b532cff634e28ff5e4b28ff5f4b28ff291e0bff0c0907ff6b5327ff604d27ff624c2aff484139ff463f39ff272625ff252323ff21201fa32222224d4241423b3f3e3d574748464d4141414742434643404244464242454a4242464842424547404143463f40434a4242454b424247594344474c3c3d3e5f474747794242426b373738593c3d3e152a28250d2b29244a3536355e39363251333434563435355a3334355a3132335d303132582f30304e2b2c2b8f32312e4b2a2828591d1c1c5016161546181817ff1b1918ff1e1d1bff191816ff201e1bff211d1bff1c1a18ff171614ff100f0dff0f0e0cff161410ff211d19ff23201cff211e1bff211e1bff22201cff24201dff221e1aff24201cff26231eff26221dff27221dff26221dff29241fff29241fff27231eff29241fff28241fff26221dff292520ff292520ff292420ff26211cff25201bff221e19ff231e19ff211d18ff211d18ff211d18ff231f19ff241f1aff221d18ff231e1aff211c18ff201b17ff211d18ff1f1b17ff201c17ff1f1c17ff1d1915ff1d1814ff1d1a15ff1f1a16ff1f1a16ff1c1915ff1c1814ff1a1713ff1b1714ff1a1713ff181512ff161310ff14120fff14120fff14110fff141311ff12100eff151312ff0b0a08ff0d0c0bbf0f0d0c7d1a1918591c1b1b691c1c1b561e1d1c3f1b1a18561d1c1a0e1a191651201f1e612424217d2a2a284a2523234623232345232323492423234b24232454120b0550130d0721130e0883160d0698170e0799170e0658180e068420130a9c120c07661b1a171c181714521a1816521a1a185a1919185d191817501615145b161513ff0c0b0aff0c0b0aff0b0b09ff141210ff0e0c0aff0d0b09ff15120fff171410ff181511ff181512ff181411ff1b1713ff191512ff1a1612ff1a1713ff1d1915ff1e1a15ff1f1b16ff1d1914ff1e1a15ff1f1a16ff1f1a15ff1f1a15ff1c1813ff191612ff1a1612ff1c1713ff1b1713ff1a1611ff1b1712ff1e1914ff201b17ff201b17ff201b17ff221d18ff201c17ff201b16ff1f1a15ff1f1a15ff1e1914ff1d1814ff1c1814ff1e1a15ff1d1914ff201b16ff1e1915ff211c17ff221d18ff231d17ff211d18ff211e18ff241f1aff1f1a14ff1d1813ff1d1813ff1b1612ff1b1712ff191510ff19140fff1b1611ff1a1510ff18140fff16120dff16120dff15110dff15110dff15110dff17130eff15110cff14100cff15110cd216100a9f1a1206ff1a1308ff151108ff14100cff281f0cff110e0aff191307ff110e0bff261c0aff181209b71f16084036260a954132175c5b4014ff553f19ff100d09ff0f0c09ff0d0a08ff0d0b08ff4e3c17ff58451fff100c07ff0c0a07ff0b0907ff0e0b08ff554222ff5a4625ff140f09ff0d0b08ff0d0b08ff0d0b08ff53401bff6b5023ff120d07ff0d0a07ff0d0a07ff0d0a07ff543f18ff654a21ff110e08ff0e0b08ff0f0c09ff2b2928ff282725ff21201fff211f1eff222120af323332644545465d454443764f504d484141414140404247404344443f41434d434447413e3e41443f3f43423d3f41453f3f43504444485b3f3f4248393b3d63424243793d3d3e6237393a643a3938182b2926172e2e2b613736363e30302e4e3334355a3434365a333435583031325b303131572f2f30652d2b2b6a2e2c2b4e2b29284f1a1a1a3a131312ec1b1a18ff201f1eff171615ff131110ff1b1917ff1e1b1aff1a1816ff171513ff161513ff27221eff292621ff28241fff26231eff25211dff24211dff24201cff26221dff292621ff28241fff2a2621ff2b2621ff2c2622ff2a2520ff29241fff27221eff26221dff28221dff28241fff2a2520ff292420ff29241fff27231eff28241eff26211cff26211bff231e19ff26211bff25201aff25201bff241f1aff25201aff231e19ff231e19ff211d19ff211d18ff1e1915ff1e1a16ff1d1915ff1c1915ff1b1713ff1c1814ff1f1b16ff1d1915ff1d1915ff1d1915ff1a1712ff1a1713ff191613ff181412ff151210ff15120fff171411ff161310ff151311ff131211ff12100fff100f0eff110f0dff171514e7110f0e571a18155d1c1b1b7c1c1b1a571f1e1d6a1e1e1d73211f1d181d1c1a5b1e1e1d6e272624982d2c29472423224223222248232423462322224d24242499150c06a018110b4d16100a74150d0678150c067d150d0651160d059f22160ca4140d07781816131a1716144b1a1917511a19185a1a19175a1817165a1615146013110fff0c0b0bff0c0b0aff0d0c0bff141210ff100e0dff0d0b0aff090807ff171410ff181411ff161310ff191512ff191511ff181511ff181410ff191611ff1c1813ff1d1914ff1d1814ff1d1914ff1b1712ff1b1713ff1d1914ff1b1613ff1a1612ff191511ff1c1813ff1c1813ff1d1914ff1d1914ff1e1a15ff201b16ff221c18ff221c18ff221d18ff221d17ff1f1a15ff1f1a14ff201b15ff211c16ff211c16ff221d17ff211c17ff201b17ff1e1915ff1f1a15ff1e1915ff211c16ff25201aff221d18ff231f19ff241f18ff26201aff241f19ff1c1813ff191510ff191510ff1a1510ff1a1611ff1b1611ff1b1712ff1b1712ff191510ff19140fff17130eff17130eff16120eff17130eff17120eff17130dff16120dff17130eff16110dff14100caf181209ff191106ff120f0bff1a1408ff201909ff120e0aff231a09ff2d220cff1f1609da1712094f34250a625138104a5e4010ff32240cff3b2d11ff14100bff110e09ff241c11ff4c3b16ff36280fff3e3011ff15110aff13100aff282013ff574016ff413011ff473616ff16110bff120e09ff292111ff543f18ff3e2b10ff443313ff15110aff131009ff282013ff594219ff3a2a0eff473613ff16120bff14100aff252322ff262524ff262523ff242322ff232221af3433347045454433433f39714c4c484b40403f3b3e3e3e423f40414a4143454b434345433e3f414e424347514345494d4143464f424445533d3f3f4a3a3b3b563b3b3b7b3d3d3d55433f3b4831312d1a2d2c2a2832323055363736533435344b3332335633343559333334573132325b3031314d2c2c2c7a2c2b2a782e2d2b54282727be1e1c1aff252220ff22201fff191716ff141311ff11100fff181715ff191816ff1c1917ff181513ff2a2722ff2d2925ff2c2823ff2a2621ff27241fff292520ff27231fff26221dff2a2621ff2c2823ff2d2923ff2b2721ff2c2722ff2c2721ff27231fff2b2622ff2f2924ff2a2520ff2a251fff2a2520ff292520ff28231fff28241eff27231eff28231dff28241eff28231dff28231dff25201bff26211bff28221dff27211cff25201bff25201bff24201bff231e19ff231e19ff231e19ff211c18ff211c18ff1e1a16ff1b1713ff1e1a15ff1c1814ff1e1915ff1c1814ff1d1a15ff1c1814ff1b1814ff181411ff181411ff161310ff161310ff171411ff181512ff13100eff11100eff171514ff11100fff12100eff1a1816b0100f0e54191817571b1a195a1c1b1b571e1d1d591d1c1b82201e1c121a1917311f1c1862262522792928254c2322203b222120432322214a2323234c23232293170e0781160f0a4a16100a82160d0779160d0697160d065f160d079e21140b99160d065014120e1c181715561a1a184b1918175a19181758181716511514136d151412ff0f0d0cff100e0dff0c0b0aff151211ff171412ff0c0b09ff120f0dff181512ff181511ff1a1612ff1c1713ff1b1714ff1c1713ff1a1613ff181410ff1d1814ff1c1713ff1e1a15ff1d1914ff1e1915ff1e1914ff1d1813ff1c1712ff1b1612ff1a1612ff1c1713ff1d1814ff201b15ff1d1914ff1e1914ff211c17ff231d18ff221c18ff211c16ff231d18ff231d18ff221d17ff231d18ff231e18ff231e18ff221e19ff241f19ff221d18ff211c17ff1f1a15ff221d17ff201c16ff211c17ff211c18ff26211bff28231dff26211bff27221cff252019ff1d1813ff1d1813ff1b1611ff1a1510ff1b1611ff1a1510ff191510ff181410ff1a1611ff191510ff19140fff19150fff19150fff18140fff18130eff19140fff1a140fff18130fff18130fff17130e92191208ff17110bff1a1408ff1a1308ff211908ff241b0aff15110aff281d09d41c15095831240a5a4e370e4653390fff120f0bff3a2e12ff312511ff271e0eff413213ff110d09ff100d0aff372a0fff3b2c12ff2e240eff493816ff120f0aff120f0bff483715ff3b2e15ff2f2513ff584420ff141009ff100d0aff4c3a19ff403117ff302612ff52411fff120f09ff0f0d09ff453514ff3c2e16ff2d2313ff2e2c2bff222120ff2d2c2aff262524ff2321214e3a3a3c734342413037352f654948464c3f3f3e41404040463f41424c42434650444549473f40425242434953424349483f40424a414243533e3f3f36373937533838385a3b3c3b41312f2b3c383732182f2d2930333230563435346d282726603332335e33343458323333573132337a2f2e2e612e2e2d762c2b2cf524211fff403b38ff4a4642ff3b3834ff211f1dff151412ff131210ff12100fff171614ff191614ff1d1916ff2b2722ff2b2722ff2c2823ff2a2621ff2b2721ff2a2621ff2a2621ff28231fff2a2521ff292520ff2e2a25ff2f2a25ff2f2b25ff2c2722ff2e2823ff2e2923ff2f2a24ff28231eff2b2620ff28241eff2a251fff28231eff27221dff29231dff2a251fff29241eff29231eff29231dff29241fff29231eff2a241fff29231fff28231dff26211bff27221cff27221cff231e19ff25201bff241f19ff241f1aff201b16ff1f1b16ff1f1b15ff1f1a16ff1e1a15ff1e1a15ff1f1b16ff1e1a15ff1d1915ff1b1713ff1b1713ff181511ff181410ff181511ff181410ff1a1612ff191512ff12100fff231f1cff24201eff131110ff151312fa11100f5c1b1a195b1b1a19551c1c1b581e1d1d711c1a197f1e1d1b1019191629171612592625226a2625224e21201e43222120480405054f0405055304050552040403540303035603040355030403570304035a0304036203040460030404620404035f040404540304044a0404035a1211105e181817651717156415141367161513ff0f0e0dff11100eff161412ff1d1a18ff191613ff0d0b0aff1b1714ff1b1813ff1b1813ff1b1713ff1f1b16ff1d1914ff1f1b15ff1e1915ff1a1611ff1d1914ff1c1713ff1d1914ff1e1a15ff211c16ff201b16ff1f1a15ff1c1812ff1d1813ff1a1611ff1d1913ff1f1a15ff1e1813ff211b16ff231d18ff221c17ff211c17ff231e19ff221d18ff241e19ff231e18ff251f19ff25201aff241e19ff231e19ff221d18ff221d17ff221e18ff231f19ff241e19ff231e18ff241f19ff211c17ff211d18ff1f1b16ff28221cff27211bff28231dff27211bff29221cff28231dff25201aff1d1713ff1a1510ff191510ff18140fff18140fff18130fff1a1510ff191510ff1b1611ff1a1510ff1a1510ff1a1610ff191510ff1a1510ff1b1611ff1a1510ff19140ffe1a15104f201707ff231a09ff140f0aff21180cff17130eff19140bff14110cc41e1607363323095449340c3d553a0eff15110dff413519ff271e0eff463515ff413113ff110e0aff100d09ff453618ff251d0fff48371bff463619ff13100cff120f0bff4a3b1cff2f2513ff53411eff4d3c1dff13100bff14100cff514022ff372b16ff574622ff4a3c1eff110e0aff110e0aff523f1eff2d2312ff4d3d22ff2d2c2bff212020ff292727ff262423ff211f1e513b3c3d764444425642424059484747523e3d3d4440414147414243514545485245454a4d4042475343444a504243464c414143494142436741414143393937583435356b3a3a3a503637398e3c3b381c2f2e2b433939387d3435346334353560333436553333344f313131652e2d2eff282624ff383432ff4e4844ff4b4641ff46413dff413d39ff3b3734ff2a2725ff131110ff110f0eff161312ff151310ff1c1814ff27231fff292521ff2d2823ff2d2822ff2b2621ff2b2721ff2d2923ff2d2821ff2e2822ff2e2923ff312d27ff34302aff332e28ff322d27ff302b25ff302a25ff2f2924ff2e2923ff2e2922ff2b2620ff2c2721ff2d2721ff2c2621ff2f2923ff2f2923ff2c2620ff2d2722ff2c2721ff2c2721ff2b2620ff2b2520ff2b2520ff2b2620ff2a241fff29241fff28221dff27221cff241f1aff28231dff25201aff25201aff221d17ff201b17ff231e19ff241f1aff231e19ff211c17ff211c17ff1e1a16ff1e1a15ff1c1814ff1b1713ff191512ff1a1612ff1b1713ff1a1612ff1b1713ff1c1814ff1a1715ff201d1aff25211dff2f2a26ff161413ff121110ff100e0d791a1918661b1a1a591d1c1c7e1c1c1b791f1d1b111a19164d0a0b0a5405070654050706570506065a0506065504050554040504550405045d040504530405044d0405054d04050554040505560405055e0405055d040505540405055504050452050605500404045203040457030303550203035302030355020303dd11100fff1d1a18ff211e1bff1a1715ff181513ff0e0c0aff1c1814ff1d1915ff1d1914ff1c1713ff1e1a15ff1f1a14ff201b16ff1c1712ff1e1914ff1e1914ff201b16ff231e18ff201b16ff221d17ff201b16ff1f1b15ff1f1914ff1e1914ff1d1813ff1e1914ff1f1a15ff1f1a15ff211b16ff221c17ff221c17ff231d18ff231e18ff26201aff251f19ff221d17ff231e19ff25201aff221d18ff221c16ff221d17ff221d18ff221d17ff241e19ff241f19ff231e18ff241f19ff231e18ff252019ff26211aff29241eff2c2620ff2c2620ff2f2922ff2d261fff2c261fff2b251eff2a241eff29241dff1f1a14ff1b1510ff1c1611ff1c1712ff1b1611ff1c1711ff1c1711ff1a1610ff1b1711ff1c1711ff1b1711ff1a1611ff1b1611ff1a1510ff1a1511ff1a1510ff1b1611491d1505ff18120aff20180bff18140fff241b0aff16120cbd1712094b3022094a45310b394d340dff16120dff46381cff2f2413ff241c10ff4a3a1aff14100bff120e0aff4d3d21ff352814ff251e11ff594727ff13100cff14100cff584422ff392d16ff2a2214ff5f4d2bff15110bff110f0bff5c4a28ff3c2f19ff292112ff5d4b23ff110d09ff0f0d09ff66522bff392d16ff271e11ff33312fff21201fff282625ff1d1c1aff161413b12f2e2f694544425e4746465c474644423e3d3e3f403e40444041424e434447504445494d4042474f4142474b4141444b4040424b4041426d3e3f3e35363735403335356e3738395f38393b4c313131192f2f2c633b3b386d3635354c322f2c62313130b12c2c2aff343230ff514d49ff55504cff4b4541ff47433eff443f3bff413d38ff403c38ff3e3935ff322e2cff141211ff161413ff161412ff201c18ff2d2924ff302b26ff312c26ff2f2a23ff2c2823ff2d2823ff2f2b25ff332e27ff322d27ff2f2a25ff35302aff35312cff35302aff332e29ff312c26ff342e28ff332c27ff312b25ff2b2721ff2b2620ff2d2822ff2d2822ff2f2924ff302a24ff322c26ff2f2923ff2b2621ff2b2520ff2c2721ff2d2721ff2b2621ff2c2621ff2c2622ff2c2621ff2c2721ff29241fff28231dff25211bff26211bff241f1aff241f19ff231d18ff231e19ff211c17ff241f1aff24201aff211d18ff211c17ff201b17ff1f1a16ff1d1814ff1d1814ff1c1814ff1a1713ff1c1814ff1d1814ff1c1814ff1d1914ff1d1814ff1f1c1aff1f1c19ff221f1cff25211eff2d2825ff201d1bff141211ff0f0e0da91716155e1c1c1b571a1917701d1c1a5b0c0e0d57090b0a56080a0a570709095b0709085d070908580608085306070755060807590607075a0608075c0608075b0607075b0608075d060807630708085f0608075e0608075a050706570506065805060656040605590506056905070761040505610405055e0404047f090908ff1c1916ff181513ff181512ff13110fff201b17ff1f1b16ff1f1b16ff1e1914ff1e1915ff201b16ff201a15ff1e1813ff1e1914ff1c1712ff211c17ff221d18ff211c17ff211c16ff201b15ff201b15ff1e1913ff1f1a14ff1e1914ff1c1813ff1f1a15ff211c16ff211c17ff221d17ff241e18ff221d18ff231e18ff241f19ff251f19ff241f19ff221d17ff241e18ff251f19ff221d17ff221c17ff231f19ff231e18ff231e18ff25201aff241f19ff25201aff25201aff28231cff29221cff2c261fff2c261fff2f2923ff2e2722ff2d2721ff2e2720ff2f2922ff2f2923ff2e2821ff2a241eff27211bff29231dff241f19ff1e1813ff1d1812ff1e1913ff1e1813ff1e1a14ff1e1914ff1d1913ff201b15ff1e1914ff1d1814ff1f1a15ff221d18ff26211aff29241c431f1605ff1c150aff211c16ff231a09ff1e180ea21d1609472e200953402e0c3d50360dff45371eff30250fff272014ff261f14ff231b0eff59441cff4d3d21ff3d2e10ff251e13ff251d12ff282011ff664e22ff594725ff4a3812ff2b2215ff2a2316ff2c2413ff675023ff5a4827ff513e18ff2a2315ff2a2316ff2c2211ff59451fff594728ff503c13ff282013ff221b10ff32302fff262423ff1b1918ff211f1eff292725f32624226745434059444341564342404b3f3f3e3f403f41424140434943434648414247443d3f44453d40454e41424549404042493f4041533c3c3c453e3e3c483738366d3838385f38393a352e2e2d1f2f302c453a3937e2282725ff2f2c2bff494643ff595551ff56534eff4d4945ff484340ff46423dff433f3aff3f3a37ff3f3b37ff3d3a36ff3b3733ff2d2a27ff1b1917ff1b1815ff2f2a25ff332d27ff353029ff332d27ff322c26ff322d26ff322d28ff35302aff39342dff322e27ff302b26ff38332eff35302cff322e28ff39332eff342f2aff332e29ff342e29ff332e28ff2f2a24ff322c26ff312b25ff302b25ff352f28ff373029ff332d27ff312b25ff302a25ff2f2a24ff302a24ff2f2924ff2e2924ff2e2923ff2d2822ff2c2721ff2c2621ff2b2620ff2a241eff28231dff28231fff28231eff26201bff25201bff231e1aff221e18ff231e19ff241e19ff221d18ff201b16ff211d18ff1f1b16ff1d1916ff1d1915ff1e1915ff1e1a15ff211d18ff211d17ff201c17ff211c17ff201c17ff1a1713ff1c1917ff201c19ff201c1aff211e1bff25221fff2c2824ff322e29ff181614ff131210f2141211641b1a1860121514680b0e0d620b0d0d5b0a0c0c5a090b0a5b080a0a500709094a0708085407080858060807590608075f070908530607074c060707550608075a06080754060707520608075106070754060707580608075a050706580506065804060584070807a2090a0a8507080764050605720506065e050605ff181512ff161311ff13110fff1f1b16ff211c18ff201b16ff201b16ff201c17ff211c17ff1f1b15ff201b16ff1e1915ff1e1a15ff211c17ff221c17ff201b16ff1f1b15ff211c17ff201b16ff1f1b16ff1e1a15ff201b15ff201b15ff221d17ff241f19ff252019ff251f19ff27211bff241e19ff241f18ff241e18ff251f19ff251f19ff26211bff251f19ff26211bff26201bff251f1aff231d17ff25201aff27221bff26201aff251f19ff25201aff27211bff2a241eff2d2720ff2c261fff28231cff2f2923ff2c2620ff28241dff2d2821ff2f2922ff2f2922ff302a23ff312a23ff2d2720ff302922ff2f2922ff2c261fff2c261fff27211aff201a14ff1f1913ff1f1a14ff1e1a14ff201b15ff1e1913ff1f1a15ff221d18ff241f19ff25201aff2a231cff25211b481f1605ff1e170dff22180aff2118099f1c14086a241a0b513b2b0d5650380eff33260fff29241dff2d261fff27211aff211c16ff4a3919ff402e10ff221d15ff29231cff26201aff201b16ff43341cff473513ff211c14ff28221bff2e2821ff25211aff51401eff4d3813ff1c1812ff231e18ff2d271fff2e2921ff4f3e1dff493513ff1a160fff1e1a15ff25211aff2f2d2cff282624ff22201fff2c2a29ff272524ff23201f6934322f4e41423e463f3e3b48403f4042414042434141444942434847414346453e3f444c4042484c424247473f4143403e3d3e5c3d3c3c464241413d3b3c3b593334344d3738384c242321ff33312eff514e4aff605d58ff5a5551ff5d5752ff56514dff4d4844ff46413dff46423dff443f3bff3f3b37ff3c3834ff3b3733ff373430ff2f2d2aff2e2b29ff2c2621ff37302aff3a332dff38322bff36302aff342f29ff352f29ff342f29ff39332cff36322bff37322bff332f29ff38332cff3a352fff3a3530ff38332dff37312cff352f29ff36302aff37302aff352f28ff332d26ff322d26ff342e28ff363029ff352e28ff363029ff362f29ff322c26ff2f2a24ff2f2a24ff2e2823ff2d2723ff2d2823ff2d2823ff2d2722ff2d2722ff2d2822ff2b2620ff29241eff29241eff29241eff27221cff28231dff28231dff26211cff241f19ff241f1aff25201aff221d17ff201b16ff211d18ff201c17ff1f1a16ff1f1a15ff1e1915ff1f1b16ff221d18ff221e19ff201b16ff211c17ff1e1a16ff181512ff1a1715ff1e1a18ff201c19ff231f1cff221f1cff26221fff2c2723ff312c28ff1f1d1aff161412621215155b0e11115c0c0f0e540b0e0d42191c1b2f25292641343734322f333036313833372e35303929312e533338374c2f343448272e2c5d32383551272f2c632c34337b3d45447f414645804f535378575b5f745158587b555a5887646869764f5455744f53575f47494b73313536880a0b0b580507068108090963060607ff110e0cff161311ff17130fff17130fff211c17ff1f1a15ff201b16ff201c16ff201b16ff221e18ff221d18ff211c17ff221c17ff231d18ff231e18ff211c17ff1f1a15ff201b16ff201b16ff211c17ff201b16ff1e1914ff221c17ff26201aff27221bff261f1aff27201aff241f19ff251f19ff241f19ff251f1aff28221cff2a241eff28231dff27221cff28211cff241e19ff251f19ff26201aff28221bff27211bff27211bff28221cff29231dff2c251fff2d2720ff302a22ff2d2820ff27221dff302a23ff322c25ff312b24ff312b24ff312b24ff312a23ff322b24ff332c24ff312b24ff322b24ff302a23ff322c25ff342f27ff332d25ff2b241eff231c16ff1f1913ff1f1a14ff1e1a14ff1e1914ff251f1aff241f19ff231f19ff25201aff2b241dff231e1848211807fd231a0bff261e13b01f170c482f200a4343300c4c53390eff231e16ff3b2b11ff554223ff574624ff534321ff291f0cff1f1a13ff4e3c16ff5e4c27ff5f4e29ff635027ff29210fff231d15ff5d4719ff725b30ff72582dff6e572cff32260fff1d1912ff5a4218ff6f572eff6c562fff6d572eff30250fff211a12ff503a13ff665128ff5c4c2aff3e3c3aff333130ff242221ff2d2b2aff2b2a29ff2a2928ff242321504948463f3f3f3d403f3f3f45424244414142454b4544484d4344484540414447404145494243463e404041473e3c3d463c3b3a6046454597343332ff2f2d2bff4c4843ff645c57ff625b55ff5b5551ff5a544fff5b534eff554e4aff4d4844ff45403cff45403cff45403cff433d3aff3c3834ff34312eff322f2dff322d2aff342e29ff37312bff37312bff3a342eff38322dff3a332dff37312bff37312aff363029ff37312aff37322cff37322cff36312cff3d3732ff3c3731ff3e3832ff3d3631ff3b3530ff39322dff39332dff36302aff38322bff362f28ff312c26ff332d27ff352f29ff37302aff38312aff352f28ff363029ff342e28ff322c26ff2d2721ff2e2723ff2b2521ff2e2822ff2a2520ff2e2822ff302a24ff2e2822ff2e2822ff2a251fff2a2620ff292520ff2a251fff2c2621ff29241fff28231dff28221dff27211cff26211bff231e18ff241f19ff231e18ff221d18ff221d18ff1e1a16ff1d1815ff1d1915ff211c18ff211d17ff211c17ff211c17ff201b17ff201c17ff1c1815ff201d1bff1d1917ff201d1aff211e1bff211d1bff24211eff292521ff2a2622641519186d161a1a530d10104f0d100f490e1111441f22233f161b1a4b191e1c491c22203d1b211f451a201e4919201d56181f1c58171e1c55171e1b58191d1d5d191d1d5a181d1c57191d1d59191e1d561a201f561b2220581d2222501c23214e1d2322562128275b252a2a5522282877353b3ca10f1011600809095d070808610809097f090909ff14110eff18130fff191410ff1c1713ff231e18ff211d18ff1f1c17ff211d18ff24201aff241f1aff241f1aff221d17ff241f19ff241e19ff241e19ff201b15ff221d17ff231d18ff221d17ff231d18ff1e1a15ff1f1a15ff231e19ff252019ff252019ff251f19ff27211bff241f19ff25201aff26201aff26201bff26211bff28221cff25201aff27211bff28221bff26201aff26211bff27221cff27221cff28221cff29231dff2a231dff2a231dff2b241eff2b261fff2c261fff2c2721ff302a24ff312b24ff342e27ff332d26ff332d26ff312b24ff322c24ff312b24ff332d26ff332c25ff2f2922ff332d25ff363028ff38322bff373028ff342d24ff302921ff252019ff1f1a14ff1e1913ff1d1914ff231e18ff221d18ff211c17ff241e19ff28221bff2c261e321e1506ff2a241bc821190a8c2a1f0e41412d0d494d340eff2c261fff3c2f18ff312817ff342a19ff503e1bff231e18ff2a241cff49391cff372c19ff312717ff413419ff201b15ff221d17ff4e3d1dff3e311aff3d301aff52401fff262019ff241f19ff554221ff3f321cff3b301cff57431eff221e18ff221e18ff57451eff392d19ff382d1bff423f3dff2f2d2cff242321ff333130ff302e2dff292726ff262423ff252321ed262423cb32302eca373636c9373636cb363535ca343233c8323030ca323030c831302fc32e2c2bcf302e2def35332fff524d49ff66605bff625c57ff635c56ff615a54ff615954ff5f5753ff59524eff514b46ff4a4541ff443f3bff413c38ff3f3a37ff3f3a36ff504b45ff36322eff38322cff3a342dff3d362eff3e3730ff3a332eff39332dff3a342eff3c352dff37322bff3a342dff38322bff39332cff332e29ff38322cff37312cff36312cff38322dff3b3630ff3f3932ff3f3a33ff413c35ff3d3731ff3a342dff3a342dff38312bff36302aff37312aff332e27ff373029ff39322bff37302aff352e28ff342e28ff302a24ff2e2924ff2f2a24ff2e2923ff2e2823ff2f2924ff2d2822ff2e2822ff2d2822ff2c2720ff2c2620ff2a251fff2a251fff2d2722ff2d2721ff2a251fff2c2620ff2c2620ff29241eff29241eff26211bff231e18ff25201aff241f1aff221d19ff211c17ff1e1a15ff1e1915ff201b16ff221d19ff211c17ff201b17ff201b16ff211d18ff201b17ff201b16ff211d19ff201e1bff1c1916ff201c1aff201d1aff201d1bff24201dd823211e6d171c1c6d161a1a4a0e1211450f12114315171559171917420d0f0f3a0c0e0d360b0d0c370c0f0d3b0c0f0e480c0f0e6d1113125a0f12114e0e1010500d100f530c0f0e550d100f590c1010781316155b0e1010510d100f560d100f520d10104b0d100f4e1014134b161a1955191d1d451e2222872a2b2d6d0c0e0d600a0c0c6d0d0f0e56080a0abf120f0dff17130eff17130fff18140fff231d18ff221d18ff211c17ff241f1aff26211bff25201bff25201aff25201aff26211bff27221bff25201aff221d17ff241e18ff241f19ff241e18ff241e18ff211b16ff201b16ff201b16ff241e19ff241f19ff241e19ff231e19ff26201aff26201aff26201aff28221cff2a251fff29241eff26201bff27211bff29231cff28221cff28221cff28231dff29231dff26211bff29231cff26211bff2a241dff2b251eff2b251eff2b251eff2a251fff2d2821ff2c2720ff302b24ff322c25ff363029ff352f28ff38322bff362f28ff352e27ff352e27ff332c24ff342e25ff393229ff332d25ff352e26ff3a322aff383129ff363027ff342d26ff262019ff1b1712ff1d1813ff1e1914ff1e1a15ff201c16ff221d17ff28221bff2b251d3f201606b6241d13812c200d63402d0f4d4c340fff2a241dff45371fff33291aff392d16ff473714ff221e18ff221d17ff40321bff342a1aff382b17ff42351bff1d1913ff1b1712ff4b3a1cff47381cff4e3b19ff45371eff201b14ff211c16ff52421fff3c2f1bff42341cff513f1eff221d17ff201c16ff554620ff3b2f1cff47391fff343230ff393836ff272524ff312f2eff312f2eff302e2dff2e2c2bff302e2dff363533ff333130ff353332ff333130ff31302fff302e2dff312f2dff312f2eff302e2dff43413fff63605cff655f5aff645d59ff615a56ff615a55ff615954ff5e5752ff5b544fff59524eff4c4642ff47423eff403c38ff3d3935ff373430ff514a44ff3a3631ff413a34ff403a34ff463f37ff433b34ff423b35ff3d362fff3d362fff3b342eff39332dff3b342cff39332bff38322cff37322bff36312bff302b26ff38332cff3f3832ff3e3932ff413b35ff3f3832ff403a33ff3f3932ff3d3730ff3a342dff3c352eff36312aff312c25ff342e27ff342f28ff39322bff363029ff36312bff36302aff362f29ff342f29ff332d27ff322b25ff302924ff332d26ff312c26ff2e2822ff2e2923ff2f2a24ff2f2a24ff302a24ff2e2822ff2d2822ff2c2621ff2b2620ff2a241fff2b2520ff2c2620ff2a251fff2a251fff28231dff27211bff27211bff25201aff25211bff251f1bff231e19ff211c17ff201b17ff231e1aff241f1aff231e19ff241f1aff231e19ff241f1aff211d18ff201b16ff211d18ff221e19ff1e1b18ff181614ff1e1b19ff221e1cff23201d60181d1c64191e1d4c111514400f14124b13161548191a1a320d100f440d100f430d100f430c0f0e4a0e110f420c0f0e490e1211520e11105d10131361101313510e1211580f1212540f1211510e12114e0f12115c0e111156101212540f1211590e1110560e11104c1013125315191958171c1c481a1f1f773031337814161782181a1c6d0f11115b0b0d0d49070909ff17130fff18130fff17130fff221d18ff241e1aff231e19ff231e19ff231e19ff241f19ff25201aff25201bff27211bff26201bff26211bff251f19ff241e18ff241e18ff241f19ff252019ff241e19ff201c17ff221c17ff241f19ff27221dff27221cff26211bff27211bff29231dff26201aff27211bff2a241eff2b251fff2a241eff2a241eff2b241eff29241dff2b2520ff29241eff29231cff29231dff28231dff29231dff2b251eff29241dff28231dff27221cff28231dff2b2620ff2a251fff2f2922ff332d26ff352f29ff3a332cff363029ff363029ff352e27ff352e26ff383028ff322b24ff332c25ff312b24ff342d25ff352f28ff39322bff3b352dff39322aff39322bff352f28ff2d2720ff1e1913ff1e1913ff211c15ff211c16ff25201aff2b251eff302a224d1e15074933220a713929102e422b0dff2b241eff5a4a2bff3f3015ff403116ff5b4724ff2f2717ff2b251eff68532aff3c2f15ff3f3015ff544323ff2d2316ff241f18ff7f6230ff503c19ff4d3915ff5a4b2fff2c2416ff211c16ff876a2fff513d19ff503e1bff614e29ff2c2414ff231d17ff776037ff4a3a18ff4d3b1bff44413eff393635ff302d2cff272524ff272624ff292726ff333231ff333030ff343231ff363533ff343230ff32302fff32302eff373532ff494643ff63605dff63605cff5e5b57ff635e5aff665f5bff665f5aff635b57ff645b57ff5f5852ff5a544eff514b46ff4c4742ff433d3aff3a3633ff4a4540ff3b3631ff3e3933ff49423bff474039ff48413aff4d453eff49423bff433d36ff453e37ff433c35ff3d3730ff3e3731ff413a31ff3e3831ff3e3830ff3d3730ff3a342dff3b362fff3b352fff3e3832ff3b3630ff3c3731ff3e3732ff3a352eff3c3731ff3a342fff3c3730ff36312bff3b362eff302b25ff342e28ff322d27ff38312aff39322bff38322bff38322cff37312aff3a332cff342e27ff342e27ff322c26ff342e28ff302924ff2f2923ff2f2a23ff2d2822ff302a24ff2e2924ff302a23ff2b251fff2b2520ff2a241fff2b2620ff2a241fff2b2620ff2a241eff2b251fff29231dff28221cff26211aff26211cff241f19ff25201aff241f19ff241f1aff221e19ff211d17ff221d18ff211d18ff211d18ff231e19ff241f1aff221e19ff24201aff231f1aff231f1bff24201bff221e19ff1e1b17ff211f1cff1e1b19d422212066191e1d65181d1d511417174c1317164b1316163f1a1b1c310e100f390e1010440e1111470f1312480f1312440f1312501115144f11151465141818561115144f11151456121616531215155412161552111514521115145511151553111514581115144e1014134c1115154e151a1a4e191e1e461b20204c222727871f2122871a1c1d78141617871315155f0c0e0e57090b0bff17130fff191410ff1d1914ff241f1aff211d18ff231e19ff221e18ff241f19ff251f19ff25211bff241f19ff27211aff25201aff251f19ff231e18ff231e19ff231e18ff252019ff241f19ff25201aff241f19ff231e18ff241f19ff241f19ff241f19ff28221cff29221dff27211bff2a241eff2a241eff2b2520ff2c2620ff2c2720ff2e2821ff2e2822ff2d2721ff2c2720ff2c261fff2c2620ff2a241eff29241eff2c261fff2c261fff2b261fff2d2821ff2c261fff2b261fff2e2821ff302a23ff322b24ff332c26ff352e28ff312c25ff332d27ff322c26ff342e27ff322c25ff373129ff302a23ff312a23ff302a23ff363027ff3b342cff38322aff3b342cff38312aff3a332bff383129ff383027ff352e26ff221d16ff1f1914ff1f1913ff221c15ff2b251d9e261e11752f220c463d2a0d37452e0cc74f3c1cc73d2f17c23d3019c13d3018c13d3018c0523e16bc4f3b18c1433519c346381dc23f3118c53d3018cd503c19c85c451fcb3e3117c644361dce3d321cc23d3016c255421ec4664d1fc5413316c444371cc2433619c23d3016c457421bc75f4720c640321ac63e321ec43d301cff5e5853ff3d3b39ff3b3836ff312f2dff2d2b29ff2d2c2bff343231ff373432ff34312fff2e2c2aff2d2b2aff524f4dff78726dff7f7874ff6d6762ff625d59ff605b57ff65605bff66605cff655d59ff645b57ff625a55ff5e5651ff59524dff4c4642ff443e3bff544e49ff4b4540ff3a342eff484039ff49423aff4a433cff4c453eff4e4640ff4c453dff474039ff4b443dff464039ff433d36ff423c36ff3f3932ff423b35ff3d362fff3e372fff423b33ff3c352fff3c352fff3c3631ff3e3732ff3f3933ff423c36ff423c36ff3d3730ff3d3631ff39332dff36302aff3a342eff3b342dff352e28ff363029ff342e28ff38312aff3c352eff3b342eff3c362fff39342cff37312aff38322bff352f28ff352e28ff352f28ff352f27ff322c25ff312b24ff2e2822ff322c26ff2f2a24ff2f2a24ff2b251fff2a251fff2b251fff2e2821ff2f2922ff2f2821ff2d2721ff2d2822ff2c2621ff2b2620ff2b251fff29231cff29231dff26211cff26211cff26211bff231e19ff201c17ff201c18ff211d18ff231e19ff24201aff241f1aff26211cff26211dff25201bff26211cff25201bff26211dff27211eff27221dff25211cff25221f57181d1c55171d1b57181e1d461419184913171654181c1b4e171817380d110f3d0f11105110141345121615441217164411171550141817741c20215e141817581419185213181755141818591519195614191955141818541318174d131716581417174f1317164a121716491418184d161a1a481b1f1f431c21213f222727762a2c2d781f24245c121515561114136a0f1112570b0d0dff18140fff1a1510ff191510ff25201bff211c17ff221d17ff221d17ff251f19ff27221cff28221cff27221bff27231dff26211bff26211bff27211bff251f19ff25201aff241f1aff25201aff25201aff241f19ff221d18ff221d18ff241f19ff25201aff28221cff28221cff2a241dff2c2520ff2c2620ff2d2721ff2e2721ff2f2923ff312a24ff312a24ff302a24ff312a24ff312b24ff2e2821ff2d2720ff2a251fff2b261fff2d2721ff2b251dff2e2820ff2f2922ff2d261fff302922ff2f2a23ff332c25ff332d26ff373029ff352f28ff312a25ff342e27ff322b25ff322b25ff363028ff372f28ff342d26ff352e26ff322b24ff393229ff3b342cff3b352dff3d372eff3e372eff403830ff3d362dff3a332bff3b332bff3a322aff2b251dff201a14da221b114e33270b4d2f220b3b3d290c3448300cb741321bba47361cb440321ab343351bb447381db64b3b1dad46361db24b3c1db2493a1caf46381eb34b3c1ebb45371dba45371dc742351eb748391bb746371ab2473719b1443618b7473819bb4a3b1cb84b3b1cb54e3d1cb6493819b94a3a1bd2433720d5423620de3c3323cf3d3221ff554e49ff6f6967ff6b6664ff646261ff615f5dff696765ff676260ff5f5b58ff66605eff79736fff8e8683ff8a837fff7e7873ff6f6865ff69635eff645f5aff605b57ff5f5955ff605a56ff5e5752ff5d5551ff59524dff554e4aff3a3734ff504b46ff3c3834ff3d362fff4b433cff504942ff49423cff433d38ff4b443eff4c453eff4b443eff47413aff463f38ff48413aff473f39ff453e37ff473e37ff443d35ff443e36ff433d35ff413932ff423a34ff413b34ff3a352fff2f2a26ff463d38ff49423bff48413aff403832ff413a34ff3f3832ff403833ff37322cff3d3630ff37302aff352f29ff39322bff39332bff3d362fff3b342dff3c352fff3a332cff3a342eff3b342eff38312bff38312aff38312aff363029ff322b25ff352f28ff342e26ff302a24ff2f2a24ff2e2923ff2e2822ff2c2620ff2b2520ff2b2620ff312a23ff2f2922ff302a23ff302923ff2c2621ff2e2722ff302924ff2f2923ff2d2821ff2c2520ff26211bff27211cff28231dff241f1aff241f1bff24201bff231e19ff241f1bff25201aff28221dff26211cff24201bff26221dff28231eff251f1bff221d19ff27221eff25201cff231e1aff231e1a4f181d1c501a1f1e5a1b20203f14191846151a194a1c201e3f12141436101311451214144c121615491418184c151a1948141a185a171c1b8f2226266a1a212268171c1c5a171c1b57171c1b58171c1b59171c1c5a171b1b54171b1a55161a1a58161b1b52161a1a4f1418194b14191949151a1b561c21204e1d2424321b22204f363b3a852225277115171860121415610f1212600f12127f0f0f0eff191410ff1b1611ff211c17ff241e19ff221d18ff201b17ff25201aff27211bff27211bff28221cff28221cff26211cff28231dff2b251fff29251eff29241dff27211bff251f1aff251f1aff27211bff251f1aff25201bff27211cff251f19ff27221cff2c261fff302923ff2c2620ff29241eff2e2822ff2d2721ff2b241fff2a241fff312b24ff2d2721ff2d2721ff2d2821ff2f2923ff332c26ff2e2821ff302922ff312a22ff2e2720ff302a23ff322b24ff312b25ff312c25ff322d26ff312c25ff362f29ff39322aff3a342cff3a322bff383029ff373029ff322b25ff332d27ff322d27ff38312aff342e26ff332c24ff352e26ff3b332bff3c352eff3e362fff3f3931ff3c352dff433b33ff423b32ff3d362cff3f372eff40382fff3d352dff342d2591281f0f392f2209353b290a3649310aff3c352dff3a332bff373129ff352f27ff3c352dff3f382fff413a30ff413a31ff3f3830ff3f3830ff413a32ff423b33ff403a32ff403931ff3d352dff37312aff38312aff39322bff363029ff38312bff39332cff3a332bff3a342dff3e362eff423b32ff3f3931ff403a31ff443e35ff645b55ff7c736eff827974ff88837fff86817cff827b76ff837b76ff7b736eff7c7570ff98908cff8c8480ff7e7874ff6c6763ff696461ff665f5cff5f5a56ff5c5753ff5b5551ff544e4aff524d48ff4d4844ff4d4845ff3d3934ff463f37ff4a433bff4a423bff4b443cff4d453fff4b423cff4f4841ff504842ff4a433cff47413aff4d453eff4b433dff453d37ff48413bff49423cff48413aff463f37ff474138ff3a362fff3e3830ff433b33ff433d37ff403b34ff37312dff474139ff443e37ff49423cff474039ff443c36ff3e3832ff3c342fff413a34ff3c3630ff3d362eff3a322dff3e3730ff3d362fff3d3730ff3e3730ff3b342eff39332cff3c352eff3c352fff3c3630ff3c352eff38322bff362f29ff363029ff363029ff363029ff342e26ff2e2922ff2e2923ff2e2923ff2a241fff2c2620ff2c2620ff2e2822ff312a24ff2f2923ff312b25ff302923ff2e2823ff2e2822ff2c2721ff2c2621ff2f2923ff2b2620ff2a251fff2a241fff28231eff27221cff25201bff221e19ff241f1aff25201bff25201aff24201bff25201bff241f1aff241f1bff251f1bff27211dff29231eff28221eff231f1aff25201c8f22222253181f1c591b202045181d1e43161b1b40161b1a3f272a282b10121135101412391216144215191946181d1c52181d1d53181d1c59181e1d872327289a272e2e5d1b20205e191f1e591a1f1f58191e1e58191e1d60191f1f5c191e1e57191e1e56181d1d58181d1d51161c1b59171d1d531a2020561c2221551d23253e1d242255303436541a1e1e5c1619196515181963131616670f121263101212ff191410ff191510ff1c1612ff231e19ff221d18ff241f19ff241f19ff27211cff29231cff29241eff2a251fff29231eff27221dff29231eff28231dff2a251fff2a251fff29231dff2a241fff2a241fff27211cff26201bff251f1bff26201bff27221dff28231dff28231dff2a251fff29231dff28221dff2b2520ff2a251fff2f2923ff312a24ff302923ff2f2922ff312b24ff312a24ff2f2822ff2e2822ff2f2822ff322b24ff302a23ff332d25ff2c2621ff2d261fff2d2721ff332d27ff322d26ff29241fff372f28ff362f28ff3d352eff3b342cff39322bff332d27ff39312aff38312bff352f29ff362f27ff373028ff3d342cff3c342cff3c352dff3c352eff3e3730ff3d362dff3e372eff433c34ff433c34ff423a31ff433b31ff3d362dff3d362eff4038307f2f25164c35270c383a2c0dac3c3019ff3a342dff363029ff39322aff38322aff3d352dff413a31ff423c33ff443d35ff433c32ff403931ff3f3830ff423c34ff433c34ff464038ff433d35ff413a33ff3f3831ff3c362fff3a332cff3e372fff39322bff3c362dff3d372eff3e3830ff3f382fff403a31ff3c352dff726963ff6f6763ff726a66ff7e7b76ff807b77ff7e7671ff7b736eff766e69ff7b736fff958d88ff7e7672ff6a635fff665f5cff615b58ff5d5855ff5a5552ff544f4cff4d4845ff57514dff504a47ff443d37ff48403aff49423cff4f4740ff504943ff4f4740ff48423bff49433cff504840ff4e4740ff4b443eff4c443eff4b443dff4a433cff4b433cff4b433eff49423cff47403aff463f38ff474039ff473f38ff48413aff4b433cff453e37ff403a34ff322d28ff47403aff463f39ff464039ff443e37ff443d36ff3f3932ff3b3530ff3b352fff3d3630ff3b342eff3f3932ff3f3831ff3c352fff3d3730ff3e3730ff3f3831ff3e3731ff3f3831ff403933ff3d3730ff3a332bff36302aff322c27ff362f28ff39322bff37312aff373029ff342e27ff302b25ff2f2923ff2d2722ff2c2620ff2b2520ff2d2721ff2d2621ff2b2520ff2d2822ff2b2621ff2a251fff2e2823ff302a24ff2c2721ff2a251fff2a2520ff292420ff28231fff27221dff26211cff26211cff27211dff26211cff27221cff231f19ff241f1aff25201bff28221dff27221dff241f1aff24201bff27221dff27221dff26211cff25201bff25201c632026275c1b2120581e2423521d22223a181d1d39181f1d402e2f2f1f0f1212371316143b12161546171c1c41181e1d5a1b2120521b2120551b20205e1c2021621d22217c232828591c20205c1c20205a1b21205a1a1f1f5f1b201f5e1a201f5c1a201f56191f1e551a1f1e55181f1e53181e1d541d2322561e2424571d24234d1d25255529302f821f24257e1c212164171c1b59151a196711141474131615e3191512ff1a1611ff191511ff251f1bff231e19ff231e19ff231e19ff25201aff251f1aff27221cff27221cff26211cff29241eff2d2822ff28231dff29231eff29231eff29231eff28231eff29231eff28221dff27221cff28221dff28221dff2b251fff29231eff28231eff29231dff2c2620ff2e2821ff2c2620ff2b251fff2c2620ff312b24ff302a24ff2c2620ff2f2923ff332d26ff322b24ff2f2924ff322b26ff322c25ff312b24ff312b24ff302923ff322c25ff372f28ff342e27ff332d27ff2f2a23ff2c2622ff3a332cff39322bff3d352eff3c352dff3a332cff373029ff352f28ff362f28ff373029ff363029ff3b332bff3e362eff3d362eff3e3730ff3e3730ff3f3931ff3e3730ff433b33ff443c34ff433b32ff433b32ff3f3930ff3c352dff40392fff433a30ff3f372eab352b18823f3217ff363029ff3d362fff38322bff38322bff38322bff3c352dff3c352eff3d362eff413931ff3d362eff403930ff463f37ff423c34ff413a33ff3f3932ff3f3831ff403933ff403932ff3e3730ff3d362fff3a342dff3d352eff403931ff403a31ff3b352dff3d362eff423b32ff6a625cff66605bff665e5aff746e68ff766e69ff79716bff766f6aff706862ff8c8580ff837c76ff6f6a64ff645f5bff5f5955ff57514eff56514dff4d4946ff4d4945ff3e3a37ff50473fff554b43ff4a423bff544c45ff514840ff524b43ff514a44ff4b443dff4f4741ff463f39ff47413aff433d36ff49433bff4c453eff4e463fff4b443dff4a433eff443e38ff453f38ff413a33ff484039ff474038ff4a433bff4e463fff4e463fff3e3732ff37312cff413a35ff463f38ff4a423dff49413bff4a423bff433c36ff3f3933ff3d3731ff3b342fff413a33ff3e3730ff403b34ff3f3932ff3d3630ff413a33ff3f3932ff413a33ff403832ff3f3931ff3a342eff39332dff38322cff332d26ff352f28ff37312aff363029ff37312bff36302aff312b25ff2c2722ff2f2a24ff2a2520ff2a241fff2c2620ff2c2521ff26221eff24201cff28231eff2c2721ff2b2722ff312a24ff2a2520ff25211cff29231eff28231eff27221dff25201cff241f1aff29221dff27211cff28221dff28231eff29231eff211d18ff27221dff27221dff28231eff29231fff24201aff28231eff25201bff241f1aff231f19ff241f1aff241f1b692026265620262666242a295e2227273d1a201f391a221f3c3236331f1214123d13171648161b1a44191e1d381b20204b1d22224f1f24244e1e2423662027255e1f242458202625591e24245a1e2323561d23225b1d23235f1c23225d1b22215a1d2322561b2221581d2222541b2221511b21214d1e232353212626591f2626561f252551242a2a602a2e2f5c191d1d57181e1d54181e1d5c1317168217181a83141515ff1a1611ff181410ff191511ff17130fff17130fff1a1611ff1b1612ff191512ff1d1a15ff241f1aff26211cff26221dff2b2520ff27211cff251f1aff27211cff27221cff28221dff27221cff251f1bff28211dff26201bff2b251fff2b251fff2e2821ff25201cff2b251fff2d2721ff2f2922ff2f2822ff2b251fff2f2923ff2d2721ff2d2721ff2d2721ff2d2721ff2e2822ff342d26ff322c25ff332c27ff312b24ff322c25ff312b24ff322b25ff362f28ff39322aff3a322bff39322bff322b25ff2e2823ff2f2924ff403831ff3f3831ff3b342dff3d352eff3a332cff363028ff352e27ff372f29ff38312aff39332bff3b352eff3c352eff3c352eff3e3830ff413a33ff443d35ff423a33ff443e35ff433c33ff403a32ff3e382fff3a332bff3b342cff40382fff423a30ff413931ff40382fff3b342cff37302aff39332cff36302aff363029ff3b332cff3b342dff36302aff322e27ff3a332bff3a332bff3c352dff433b34ff3e3730ff3c352fff3d362fff3e3730ff403832ff403931ff3d362fff3e3730ff3c352eff423b33ff413932ff423b34ff39332cff3e3831ff675f5cff655d5aff645c59ff6c6561ff6e6662ff68615dff6a635fff716a63ff87807bff6a645fff635e59ff65605bff655f5aff766f6bff403c39ff433d38ff4c453dff534b43ff4f4840ff4c453dff4f4841ff504a41ff4e4740ff4d453eff4f4641ff4c443dff4c453eff4b443dff4e463fff48423bff4b443dff4b443dff4b433cff4f4740ff4b443dff453e37ff403a33ff3e3832ff3f3832ff38332eff36322dff35302cff3d3732ff3d3732ff3e3731ff453e38ff453e38ff473f39ff453d37ff3f3933ff413933ff3e3731ff3f3831ff3e3630ff3e3730ff3a332dff36312cff3a342eff3a332dff3c352fff413a34ff3c362fff39332eff3c3630ff3d352fff3d362fff3b352eff39322cff373029ff39332cff39322bff332d27ff332c27ff312a25ff322c27ff312b26ff2c2622ff2a2520ff2c2621ff29231fff2b2520ff2e2823ff302b24ff2e2822ff2d2822ff2d2722ff2a2621ff2a2521ff2c2621ff2a2520ff2a2521ff28231eff29241fff2a251fff2a241fff27221dff29231eff27221dff27221dff29231eff26211cff25201bff25201bff25201bff26211cff27211cff25201bff25201bff25211cda2a2928612028255f23292864222828461e2524461e24223a1b23203e292b2b241115143b15191948171d1c461b2120441f2424471d24234c202625581f26255a1f25245e1e23235b1f2524551f26255e20262656202525561e2524651d2525632025275f1f25265e1f25255b1f2526581d2324521c2223502126264f222727562027265620272748242b2b5c3b3d40601e2223581b2120571a202059161a1a5a141717921d2022ff191410ff191410ff1b1612ff1a1611ff181310ff17130fff191410ff17130fff191410ff1b1712ff241f1aff26201cff28231dff27221dff26211cff26211dff28221dff29231eff29241eff27221cff28231eff28231eff2a241fff29231dff2b2620ff2b2520ff2b2620ff2f2923ff2b261fff2b251fff2b251fff2b251fff2d2721ff2f2922ff2d2721ff2c2721ff2f2922ff332c25ff312a24ff322b25ff312a24ff302a24ff2f2923ff2c2721ff2c2620ff2a251fff29241fff28241fff2b2622ff2c2722ff2d2823ff322b25ff352e28ff38312aff3d362eff3c342cff3b342cff3a322bff39312bff39332cff403831ff3c342dff3a332cff3a332cff3a322bff39322bff413a32ff433b34ff413a31ff3f3730ff403830ff443b33ff443c34ff403830ff3f372fff3e372eff423a31ff423b32ff423a32ff3e372eff3c342dff3b342dff3b342eff39322bff373029ff39312bff38312aff38322aff3c362dff403931ff3d362fff3f3931ff3e3730ff3b352fff3a332dff3b342dff3f3831ff3f3831ff3b352eff3b342dff3b342eff3e3730ff3f3831ff423b33ff413a32ff605855ff5f5a54ff5b5451ff605a55ff645d59ff5c5552ff605956ff615b56ff716965ff5d5753ff5f5955ff55504cff48433fff48403aff4b443dff4b443dff504740ff4e4740ff534b43ff574e46ff554c44ff524942ff554b44ff534943ff544b43ff544b43ff504842ff4a423cff474039ff4f4740ff514942ff4c453fff443d38ff443d39ff453e37ff49433bff433d37ff423d37ff403a35ff413b35ff3f3933ff423b36ff3e3832ff4c443dff4a423bff4c433cff463e38ff473f39ff443c35ff443d35ff443c35ff443d36ff433b33ff3f3732ff3e3831ff39332dff38322bff332e28ff3a332dff39332dff3c3630ff3b352fff38332dff39322dff38312bff38312bff39332cff38322bff3a342dff3a332cff39322cff3a322cff363029ff352e28ff322c26ff322c27ff302a25ff2e2923ff2c2822ff2d2723ff2d2823ff2d2722ff2d2722ff292520ff29241fff2a2520ff29241fff29241fff27231dff2d2823ff2d2823ff2a2520ff27221dff29241fff24211bff25201cff28231eff2a241eff2a241eff2b251fff2a241eff2a241eff2a241eff29241eff28221dff29241fff28221eff27221dff25211c8e353a40792c32336523292965252e2b47212a26421f27243d202926482325252d14181642161b1a4a1b2120461f2524442027264e2027264c1f2525531f28265a2128285c222a2a5a242a295422292851212827522128276022282861222827682329295f222827562126265921272658202626512027264721282753232a29542329295b202827412229286c4b4f516f292d2e5e1f25245d1e25245c1a1f1e5f15191896202225ea1b1714ff1c1713ff1c1713ff1b1612ff1b1611ff1a1511ff191510ff191410ff1a1612ff1a1612ff1c1813ff1c1813ff211d18ff28231dff28231dff27221dff25211bff27231dff2d2821ff2e2822ff2a251fff2a241fff2d2721ff27231dff2b2520ff2b2520ff2c2620ff2d2620ff302a23ff312923ff322b24ff312a23ff2f2922ff312b24ff302a24ff322b25ff302a23ff302a23ff342d26ff342e27ff2f2924ff322b25ff332d27ff312c25ff2f2a23ff2b2621ff28241fff292520ff29251fff2c2721ff322c26ff28231eff3a332cff3d352eff3b342dff3e372fff3b342cff383028ff383128ff3b332cff3b342cff39322bff3a322bff38322bff342e27ff322c26ff373029ff3a332cff403931ff3d352eff3f3831ff413932ff433b32ff423a32ff433b33ff3f3830ff423b32ff433d33ff403930ff423a32ff403931ff3f3830ff3f3730ff3d362eff3a332cff38312aff362f28ff363029ff3a332cff3c362fff3f3931ff413a32ff3b352eff403a31ff3e3831ff3c362fff39332cff413a32ff443d35ff443d35ff423b33ff3f3932ff3d3730ff3a352eff423b34ff5d5550ff645c57ff675f59ff6a615bff6a635bff6c635cff6d645dff6a635bff595149ff4b453fff514941ff49433cff4c453eff554e47ff4f473fff574e45ff4d453eff443d37ff453e38ff433d36ff3d3731ff3d3731ff3e3732ff413a34ff474039ff433d37ff423c36ff463f38ff3e3832ff423b36ff3f3934ff3d3731ff3c3731ff463f38ff3c3731ff3f3932ff49423cff433d39ff4b443dff3e3933ff433c37ff443e38ff36312bff37312dff39332eff39322eff38332dff362f2aff36302bff38312cff352f2bff342e29ff322b27ff302b26ff2f2a26ff322c27ff342e28ff35302aff362f2aff342e2aff332d28ff342f29ff312b26ff312c26ff2e2924ff352f28ff2e2823ff2f2924ff26221eff2a2520ff29241fff2b2521ff28231eff292420ff2e2822ff28231fff26211dff26221dff26211cff25211dff26211dff28231eff231f1bff241e1bff221e1bff25211cff211d1aff201c19ff1f1b18ff221f1bff26211dff27221eff211d18ff27221cff26211cff27221dff29241fff221c18ff221d18ff211c18ff1f1b16ff1f1a17ff1d1a16ff1f1b16ff231e1aff221d18ff1f1a17ff1f1b17ff201d18862e33376e2b30325f242929442329293f202a2643202a27402d33313f1417173c161b1843171c1c471c2321472028264323292948232929512227295a232b2c5d252d2d5b262c2d6c2e333554222a284e222a294e232a2958242b2b5e252e2c772c343662242d2e55232a2b5b232a2a55212828532229274f232a2953252c2c57262c2c58212929412028267a4f54589247484e5920262558222727541f252456171b1b69181a1ca0161717ff15110eff14110eff15120eff17130fff16120eff16120eff17130eff14110dff15110eff17120fff17130fff16120eff16120fff1f1b16ff211d18ff201d18ff1f1b17ff211d19ff221e1aff27221dff211e19ff221d19ff29241eff27221cff2a241fff28231eff231e19ff241f1aff241f1aff231e1aff211d18ff241f1aff231f1aff27221dff28231eff241f1aff2b261fff25201bff27221dff2a2520ff29241eff29251fff2e2923ff26221dff27221dff302a24ff2c2722ff312b25ff2c2721ff292420ff312c25ff27221dff27231eff2a2520ff2b2620ff2a2520ff2b251fff2d2721ff2b2620ff2b2621ff2b2520ff2b2521ff2c2622ff2d2722ff2d2723ff2e2822ff302924ff322c26ff322c26ff322c26ff342e28ff322c25ff312b25ff322d26ff39332cff322c26ff2d2823ff2c2721ff2d2722ff2f2923ff2e2923ff2f2924ff2f2b24ff332f27ff342e27ff302b24ff302b24ff312c24ff2f2924ff2f2a25ff352e28ff312d27ff302b26ff302a25ff342e28ff332d27ff322d27ff2e2923ff37312aff38322bff3b352eff302c25ff36302bff3d3731ff5c5147ff4f453cff4e433aff53493fff50473dff50473eff484039ff595046ff60574cff5c544bff5d554cff5f574eff595046ff514941ff574e44ff50483eff534942ff554d44ff584f47ff564d44ff4f473fff504840ff4d463eff514840ff504740ff554e45ff534a41ff48413aff463e38ff413a34ff4b433cff4b433dff48413bff4a433cff544c44ff47413bff49433cff4f4741ff433c36ff49423cff464039ff332d29ff3e3832ff3d3731ff403932ff423b32ff3e3730ff3f3730ff463d36ff3e3731ff3f3832ff3d3730ff3e3831ff3b332dff3e3730ff3c342eff413a34ff3a332dff423b34ff3a332dff38322cff37312bff38312aff373029ff352f29ff332c26ff342e29ff352f29ff373029ff363029ff312b25ff332d25ff342d26ff312a25ff322b25ff302a24ff2f2a24ff302b25ff2f2924ff2c2721ff2c2621ff332d26ff2d2722ff28231eff2a251fff2a251fff27221dff24201cff2b2520ff2e2823ff2b2621ff2d2721ff2f2a23ff2c2620ff2a241eff28231dff29231dff29221dff28221dff2d2721ff29231eff241e1aff27211dff26211cff28231dff28221eff26221dff2a241ffa221f1a7632373a5f292f2e61242a2a3f252b2a40242c2a3e232a293d393e3c351416142f171b1839191e1d421d24233f20272644252b2b42272d2d4a272b2e49202a2c5b262e305b2d33365b33393c54252d2c4b252d2e4d252d2c55262d2c5f29303166272f315e27313355252b2c57242b2b52232a2a50232b2a46252b2b4d262e2d50272e2d55242b2a4321292765373b3d692329295c222828562227275e242a2a53191e1e57171c1b54161a1aff181410ff1a1511ff1b1612ff1b1612ff1b1611ff1a1511ff1c1712ff1b1611ff181410ff191511ff1e1913ff1e1914ff1a1511ff1a1612ff1e1914ff24201aff27221cff25201bff27221dff2c2621ff2e2822ff2c2620ff2f2923ff2e2822ff2e2722ff2e2821ff2f2922ff2c251fff2d2721ff2f2922ff28231dff2f2821ff2e2822ff322b25ff2f2922ff322b25ff302a23ff332d26ff2e2822ff332d27ff2b251fff322b24ff342d27ff322d26ff322d26ff352f28ff37312bff3b342dff362f29ff312b25ff38322bff302b26ff302925ff312b25ff312b25ff2f2923ff383128ff373028ff332e26ff352e27ff373028ff362f29ff39322bff352f28ff352f29ff373029ff352f28ff3e372fff3b332cff3e372eff3d362eff3c342cff38322bff37302aff37312bff342e28ff36302aff3b342dff37302aff3d352eff38312aff373029ff373028ff373028ff3f382fff40382fff39332aff3c362dff3b352dff363029ff39332bff423a32ff423b32ff39322aff353029ff3b342cff383129ff39332cff37322bff39332bff433b33ff423b34ff3f3830ff3f3831ff685c52ff63594fff5e544aff5d534aff5d5349ff574e45ff5d544bff61574eff5e564eff595049ff534b43ff584f47ff514940ff51483fff564d43ff544b42ff574e45ff5a5148ff524941ff4e473eff48403aff4a423bff534b43ff534b42ff564d45ff544b42ff544b43ff49423bff484139ff4f473fff4f4741ff4c443dff4e463eff49413aff4d453dff4c443cff4a433cff484139ff463f37ff403a33ff36302bff3e3832ff484039ff3f3831ff3f3831ff433c35ff3f3731ff3a332eff403832ff413933ff403932ff3f3932ff433b33ff3f3730ff443d35ff403832ff3b342fff3e3730ff3a342eff39322cff3a332dff38312aff352f29ff342e28ff362f29ff3a332bff3b342dff362f29ff3b342dff352f28ff373028ff373029ff352e28ff342e28ff312b25ff302a25ff302a24ff2d2721ff2e2822ff342d26ff312b24ff2e2823ff312b25ff302b25ff2d2722ff2c2620ff2c2621ff2b251fff2e2722ff2e2823ff2e2923ff2d2722ff2c2621ff2c2620ff29241eff29241eff2c251fff2a231eff2b2520ff2e2721ff2b251fff29241eff231e19ff251f1aff28231eff29241fff2c2620ff2d2721d02a27237a323738742c33326128302f43282f2e42262e2b3d242c2938434744291416142e171c193a1e23224220272541272d2b4c2b313149282f2e472a313153272f30572b35365d2e3638692f34394f29302f48262f2e51252e2d4d262e2d5c2c35355b282f2e6930363857272e2e54272e2e53282f2f54272f304a272e2e542930304e282f2f51252d2b48232b2a5d272d2d80383e4160252b2b63252c2c5e242b2a88292d316b1d212255191d1dff1c1712ff1d1813ff1e1813ff1c1712ff1b1712ff1b1612ff1b1712ff1b1611ff1c1712ff1d1813ff1e1914ff1e1914ff201b15ff211c16ff201a15ff211c16ff29231dff2a241eff2d2621ff302923ff2e2923ff312a24ff2e2822ff2f2922ff2b251fff2b251fff2b261fff2f2821ff322b24ff362f27ff312b24ff312a23ff2c2620ff2c2620ff342d26ff362f28ff39312aff393229ff3a322bff322c26ff2f2923ff332d26ff383029ff373029ff373028ff38312aff363029ff342e28ff36302aff373029ff312c26ff2d2822ff2a2520ff2f2923ff39322aff3b342dff363028ff352f28ff3a332bff352f28ff383129ff3b342cff3a332cff3b352dff3c342dff403830ff3e372eff3e372fff3f372fff433b32ff3c352eff3a322bff3d362eff362f29ff3d362eff3a332cff3c352dff423a31ff493f36ff413930ff463d33ff433c32ff413a30ff423a30ff433b31ff413a31ff3e382fff3e372eff3f382fff413a30ff403930ff413930ff443c33ff423b32ff463e33ff483f35ff483f35ff40382fff423a30ff413a30ff453d35ff4a4239ff463f37ff4b433bff62584fff5b524aff5c534cff5c534bff5d554dff60574eff5e544cff595049ff5d534aff575046ff584f47ff544b43ff554c42ff584f45ff574e44ff554d43ff595146ff574f45ff544b42ff4c463eff514842ff564d46ff5b524aff554d44ff4d453dff524940ff534b42ff534b43ff524a42ff524941ff50483eff4e463eff4f473dff4f473eff504940ff4c443cff4e463fff4a4139ff48413aff3a332eff413a33ff453e36ff3f3931ff3f3832ff433b34ff463e36ff413933ff413932ff423a33ff3f3831ff3e3730ff403932ff403832ff433b33ff413932ff3f3831ff3d3730ff3e3730ff3e3730ff3d3730ff3a322cff3c342eff3e3831ff3b342dff3e362dff3f3930ff3d362eff3a332cff373029ff363029ff37312aff342e28ff36302aff362f28ff322c26ff2f2a25ff312b24ff302a24ff2f2923ff2f2923ff2e2822ff2d2823ff2f2a24ff2d2822ff2e2822ff2d2722ff2e2822ff2c2721ff302a24ff2f2923ff2b2620ff2e2822ff2d2822ff2c2620ff2b2620ff2a241eff2d2720ff2d2720ff2c261fff2d2821ff2c2720ff29241fff27221cff2a251fff2b2520ff2e2822ff2c2621ff28231e75383d3d813037358230373567293230442931303c242d2b43262e2c3e515453271517163c1a201e3e1e252442242c2a4929302e41262d2d422a30304a2b3231572b3435593138395f2a33315a2a3232592a32325a2c34334c293030512c32326b2f3839602b3233662b3232582a31315c293233592a32325b29313155293130592b33334f2b32325728313054252d2c5b262b2d67393f3f64252d2d61252d2c5f252b2b611c2221561a1f1e57191e1dff1e1813ff1d1813ff1d1813ff1d1813ff1d1813ff1d1813ff1b1712ff1c1712ff1c1713ff1d1813ff1c1712ff1d1813ff1d1814ff201b15ff201a15ff1f1a15ff1f1a15ff2b251fff2d2621ff302923ff2f2822ff2c2720ff302922ff302a23ff2d2720ff2f2922ff2d2720ff312b24ff342d25ff332c24ff352f26ff352e27ff322b24ff302a24ff342e27ff373129ff3b342dff373029ff352e27ff39322aff352d26ff352f27ff3a322bff3a322aff383129ff38312aff39322aff3c342dff3b342cff39312bff3b342dff383028ff352f28ff2c2622ff322b25ff362f28ff342d27ff362e29ff3a322bff3e362eff39322aff39322aff3c352cff3f372eff3c342dff3e362fff3d362dff413930ff403830ff403930ff423a32ff423a31ff40392fff423a31ff3d352eff433a32ff423a31ff433b32ff453c31ff473e34ff463e34ff463e33ff40392eff453d32ff433c32ff403930ff433c33ff413a31ff413a31ff3f3830ff3f382fff3f3830ff423a31ff423b32ff403930ff413931ff453d33ff443d33ff453d34ff433c33ff423a32ff433c34ff463f37ff463f36ff655c52ff5f564dff575048ff5d544bff61574eff61574fff60574fff62594fff5c5249ff585047ff554c43ff5c5248ff584f45ff5b5147ff62584dff534941ff544b42ff584f45ff574e46ff544a42ff564d47ff574e48ff4f463fff4c433cff4e453dff524940ff544b42ff554d43ff524941ff4f473eff534a41ff514940ff504940ff514941ff4e453dff4d463eff4c443bff453e37ff3a342fff3e3731ff463e36ff423a33ff463e37ff494039ff483f38ff443d35ff474037ff3f3831ff3e3730ff433b34ff423b34ff3e3731ff443c35ff423b34ff3e3631ff3f3832ff3b352eff3a342eff36302aff38322cff3c352eff39322cff453d35ff3d362fff413931ff403932ff37312aff3a332cff3a332cff38312aff39322cff39332cff39322bff332c26ff322b26ff302a25ff312b25ff2d2722ff2e2822ff302a23ff2e2822ff2f2922ff302a24ff302a24ff2f2a23ff2f2923ff2d2621ff302924ff302a24ff312b25ff322c25ff322c26ff2e2823ff2c2621ff2a241eff2f2922ff2f2821ff2e2821ff312b25ff2b2520ff2c2621ff2f2922ff2c2620ff2b2520ff28231eff2b251fff29231eff26201b77313634812e35336226312c6c2d38343a262e2d3a272f2e3f29312d495c5d5e20151a1a3b1b22214d262d2b4c2b31304a2b333256353b3d412a32304f2c3433542c3534502c3434572b3333582b3434582c3536502a33324d293232532a33324f303738512c3636733d4546542c33325a2c3434572a3433572c3434552c3333542c3535532d3636562a343353272e2d4f242c2d68565c5c782b33355f262d2d62262e2e7d2a3033671b2020601a1f1e6d161817ff1d1813ff1e1914ff1e1914ff1f1a14ff1d1712ff1c1712ff1d1813ff1c1813ff1c1713ff1b1612ff1d1813ff1c1713ff1f1914ff201b15ff211c17ff211b16ff211b16ff2d2621ff302923ff2f2822ff302a24ff322b24ff312a23ff302a23ff302922ff2e2821ff322b24ff342d25ff342d25ff3b332bff372e26ff373028ff39322aff393129ff362f28ff352e27ff383028ff352d26ff2f2923ff362f28ff39322bff3b332cff3e362eff39312aff3b342bff3a322bff39322bff3d352dff3d362eff3f372fff3a332cff38312aff352e27ff312c25ff393129ff39312aff38302aff3d352dff3f382fff3b352dff3b342aff3b352cff39322bff3d362eff413931ff3f3830ff413931ff443c33ff453d33ff453d34ff433c32ff3e372eff3b342cff413930ff413931ff3e362eff4a4238ff494036ff433b31ff4b4338ff494035ff433b31ff453d32ff483f35ff443c32ff433c34ff443d33ff443d33ff413a31ff3e3830ff423b32ff40392fff403930ff3b352cff3e382fff3c362dff403930ff453d33ff443d34ff453d35ff463e35ff443d34ff484038ff60574eff5e544cff60564eff625a51ff635950ff655b51ff60564cff5a5047ff574d43ff574d43ff5a5146ff5f554aff594f45ff62584dff5b5046ff5a5046ff584e44ff595047ff544a44ff594f47ff584e47ff564c45ff574e44ff554c44ff544a42ff534a41ff51483fff4f4740ff4d463eff524941ff4d443cff504840ff514940ff514940ff4d453dff484139ff48413aff3f3832ff413932ff4b433bff453d36ff463e36ff4a423aff494038ff494038ff4a4139ff463f37ff3b352eff433b33ff453d36ff443d36ff3f3831ff403831ff413932ff463e36ff423a32ff3f3730fd443a2aff3d3626ff3c3424ff413727ff473e2cff413929ff413828ff463d2dff413829ff403727ff3e3426ff413828ff3e3526ff3e3626ff3c3424ff3a3223ff3c3425ff383123ff362f21ff362e21ff322a1dff312a1dff322a1dff312a1dff342c1fff342d20ff362e21ff362e21ff342c1fff342b1fff342c20ff362e22ff362e20ff362e21ff352c20ff31291cff31281cff2f271aff31291bff31291bff322a1dff342b1fff312a1dff30281bff30281cff30291cff30281cff31291dff322a1eff30281cff30281c71393e3c55262d2c6d2d3534844d53574c3b42443f2e37343b2c342f455456561c191d1c381b212047262c2b4c2c3332472e36354f373d3e4a3037384b2c3534552d3534532c3536552d3635582d36364c2d3535522d35354f2c3534512b35334c2d363552303a3b6d3f4549743f47495a313b3a582d3635562c35354e2d35344d2e3738542e3837572b3534542830303f242b2c67676a6c6d2b3438622930305e282f2f62242a295c1d22216a1e2423661a1d1eff211a11ff201a11ff211b11ff221c12ff211b11ff211b12ff211b11ff211b12ff1f1910ff1d180fff1f1910ff1f1910ff201911ff221c12ff251e14ff261e15ff251e14ff241d14ff322a1dff372f21ff372f20ff3b3223ff372f21ff352d1eff32291cff342b1dff392f20ff393020ff372e1fff3c3223ff3d3324ff3c3223ff3b3022ff3c3224ff393122ff3c3324ff3f3627ff3e3426ff3d3324ff3d3325ff3f3526ff3f3626ff3f3524ff3e3526ff403726ff403626ff39322bff3a332cff3c352dff3d362dff39322bff39322aff39322bff342d27ff2f2a24ff3c352eff3a322bff3b332cff403931ff413930ff3c362cff3b342cff3d362dff3b332bff3a332cff413931ff423b32ff40392fff413a30ff40382fff494037ff433b32ff3f372eff3c342dff3d362eff39332bff3d352eff453c33ff453d34ff443b31ff4b4339ff494237ff453e33ff453c32ff473f34ff453d33ff433c33ff463e35ff443c33ff453c34ff463f36ff443c33ff443c33ff3c352dff3c342cff3d372eff403930ff3f3830ff413a32ff463e36ff484139ff453e35ff443c33ff5f564dff625750ff625850ff625850ff5e544bff5c5248ff60564aff61574bff5d5347ff61574cff5e5449ff5e5449ff5a5146ff5a5147ff554b42ff594f46ff5e544bff5b5248ff554b43ff5c514aff574e47ff584e46ff574d44ff514941ff4f473eff50473eff4c453dff50483fff51493fff504840ff514941ff564d44ff514941ff544b42ff4b433dff463f38ff423c35ff433c35ff463e37ff4c443cff4e463dff4a423aff4d443cff4c433cff4f453dff484038ff453d37ff453d36ff463e37ff443d35ff463f36ff453e35ff453e35ff453d35ff484039ff433c33ff56481c4949370cff5e4b0cff5d4a0bff5e4b0dff5f4d0eff5d4b0dff5c4b0eff5c490dff59470cff58460bff58460bff59470cff58460cff54410aff53410aff52410bff53420cff53430dff4f3f0aff4d3c09ff4a3908ff4b3a09ff4b3909ff493809ff4b3909ff4b3b0aff4c3c0aff4c3c0bff493a0aff493909ff48390aff48380aff48380aff473709ff453609ff46370aff463709ff443609ff46370bff45360aff44360aff44360bff423408ff423409ff43350aff42350aff42340bff43360cff42350bff41330aff42340b7634373773323939863a40455942494b49383f3e4e383f3c50484a4b4f4f525415171a18321c22214833373849363c3d46363f3d523c44455238414048353c3d57323a3a502f3838522e3837543039384c2e3737552f37374c2e38374a2e3938542e383779484e53895c646b7a434b4f8d51585c8f585d66522e3635503037374c2f3837542e3737522f3737502d353435262c2b5c6e72765d2c3637622a3231602a3231682c333367222727601f2525731e2323ff2e2306ff2f2306ff2e2206ff2f2206ff2e2205ff2e2306ff2f2407ff302407ff2f2305ff2d2005ff2e2205ff2f2205ff312305ff342606ff332607ff332607ff352808ff352807ff372907ff48380aff4b3b0cff4a3a0cff4b3a0aff4b3a09ff4a390aff4c3b0aff4d3b0aff503f0cff503f0cff4f3e0bff4f3d0aff4f3f0bff503e0aff52410cff54430dff52410cff54430eff54430eff54430cff55440dff56440cff57450cff59460dff57450cff59460dff57450cff59470dff3b342dff3e3730ff3e362fff3f3730ff3e362eff3c342dff3b342cff322d26ff3a332bff3a332cff3a332cff403930ff3f3830ff413b31ff413a31ff443b32ff423a31ff3d362fff3f382fff433b31ff403930ff423a31ff433b31ff453d32ff473e35ff4b4339ff443c32ff473e35ff453d34ff40382fff423930ff453d34ff484036ff473e34ff4a4338ff433b31ff443b31ff443c33ff493f35ff483f36ff473e35ff443c33ff433a32ff443c33ff473f37ff4b4239ff433c33ff403930ff3d362fff3e3831ff3d362fff3f3831ff423b32ff484138ff4a4239ff4a4239ff655b53ff645b52ff635951ff5c524aff585046ff5e554aff5f554aff5f554aff62574dff665c51ff584f46ff655b51ff595147ff5a5146ff5f5448ff5c5248ff5b5149ff5a5248ff5b5249ff5b5148ff5b524bff574f47ff5c534aff554d45ff524941ff504840ff544b42ff524941ff514941ff534b41ff524941ff524a42ff534a41ff4c443cff50473fff4a433bff4c443cff4c443cff4a423bff524941ff4e453dff4c433aff4b423aff423c35ff423b34ff483f39ff433c34ff463d35ff484037ff463f36ff463f37ff453d36ff453d35ff463e36ff433c34ff433b33ff63500eff624f0fff4a3f2aff473e28ff483e2aff4a402bff4b402bff483e2bff463d29ff443a27ff433926ff433926ff423926ff423825ff423825ff413725ff3f3523ff403725ff3e3624ff38301fff362e1dff372e1dff322a1bff342b1cff342c1cff342c1cff372f1eff3a3222ff3a3221ff372f1fff393121ff382f1fff372f20ff342c1dff332b1bff362d1eff352d1dff352e1dff352d1dff393020ff382f1fff352c1dff342c1cff362d1eff342c1dff352c1eff342c1dff342c1dff352c1dff342b1dff352d1e8127282451272e2d6a2d343579323a3c42323b3a52343a3a3c2c363443323736352a2d2d18191b19361f2524452d34334a31383845323a395838404055353e3d53333c3b52313a3a54313a3b532f3938532f383753313a3a4e333c3d57333d3e553038385d363d3e6b3b43455b323a3b5a353c3d76424a4f78464d528e555b614f3039394f2f393851303939502f3837512e363539262e2c6c55595d5d2e393c602b33325c28312f5d2a313168252b2b67212726601e2423ff231b11ff231b10ff231b11ff221b11ff231c11ff221b10ff241d12ff251e12ff211b10ff211a10ff20190fff1f190fff211b10ff211b10ff231c11ff241e12ff272014ff2a2215ff282014ff32291aff3a3021ff3a3121ff372e1fff362e1dff392f1fff3b3120ff3d3320ff3d3422ff3f3423ff3e3421ff3d3321ff3d3421ff403724ff3e3320ff413725ff403624ff413725ff413724ff433926ff413724ff423926ff443926ff433926ff433a27ff423825ff403624ff58460dff57450fff3c352eff403930ff3f3830ff403830ff413930ff3c342dff403931ff353029ff39332bff3b332cff433c33ff413a31ff3f382fff413931ff3f3831ff3c352eff403830ff3d362eff3f382fff443c33ff453d33ff473e34ff473e36ff453c33ff493f35ff473f36ff473e35ff4b4138ff4b4237ff473e34ff484035ff473e34ff483f36ff4a4137ff4b4439ff473f35ff4b4238ff4b4238ff483f35ff463e34ff463e35ff473e36ff473f36ff4a4137ff4b4139ff4c433aff453e35ff3f3830ff38332cff3d3630ff3f3830ff3b352fff433c33ff463e36ff483f37ff665c53ff665c54ff5b5149ff5a5148ff675e53ff675c51ff635a4eff6b5f54ff63584dff655b50ff61574dff675e53ff5f564dff63594fff60564dff60564dff5b5147ff554d44ff5d554cff574f47ff5c5149ff5d534bff524a43ff493f39ff554d44ff524841ff554c43ff51483fff534a41ff554c42ff514941ff524a41ff554b42ff504840ff4c453dff443e37ff484139ff4d453dff4f473eff494138ff4e463dff4c453cff4b433bff453e37ff443d35ff423b33ff413933ff463f36ff484138ff4a433bff494139ff49423aff49423aff443c34ff474037ff655210ff675310ff494033ff423b33ff3f3830ff423a34ff423b34ff403932ff433a32ff423a33ff403932ff3e372eff403932ff3d3630ff403830ff413a32ff3d362fff3b342dff3d362fff332d27ff312b25ff302a24ff2d2822ff2d2722ff2e2722ff2d2721ff2d2721ff332d27ff352f29ff332d27ff322c26ff312b26ff332d26ff332d26ff2c2721ff2d2722ff322c25ff322b24ff302923ff352e27ff342d26ff322b24ff332c25ff342d26ff312a24ff302a23ff302923ff312a25ff312a23ff2e2721ff312a23ff2f28238a2d302d6c2c333269293130632e3a364c343c3c432d36353d2a3332414549493c2628291e1a1e1c3d2128274e30373652343b3a3f2d353354363e3f55303a3963363f4059323c3b64323e3f61313a3964323c3b5d323a3a67363f4192494e535d3139395d333b3b673b4345794851586e3b424560343c3e5f3540416a3a43475431393956363e3e53313a3a5d343f3e5e333b3b3829322f9e4a4e509f53585c7b383f425c293331622a33326522272885272c2d62242829a4191916ff211b16ff211b15ff211b15ff221d16ff201b15ff211b16ff211b16ff1d1813ff1d1813ff1e1813ff1b1612ff1e1814ff1d1813ff1e1814ff1f1a14ff221c16ff251f18ff251f19ff251f19ff342c26ff352d27ff332d26ff2e2822ff2e2821ff332d25ff362e27ff352e27ff3a312aff383029ff332c24ff3d352dff3b332bff3e362eff3a322aff3c342cff3c352dff3c342cff3a322bff413830ff3c342dff3d362eff413931ff39322bff322c25ff3b322bff5c4911ff5b490eff473c22ff3b342cff41382fff423a32ff453b32ff3f362eff423931ff3f3730ff3b332dff3e362eff3f3730ff413932ff413930ff3f382fff413931ff443c33ff423a32ff3d362eff3c362dff3f372eff443c33ff473e35ff453d35ff463e35ff4a4239ff4a4239ff473f35ff484036ff4b4237ff443b32ff4b4338ff473f35ff483e36ff4a4138ff4a4138ff4d443bff4e4439ff4b4439ff463d34ff4b4238ff4c443aff4c4339ff4b4238ff50463dff4e443aff4e453dff4b433aff463e35ff403931ff443d35ff3c362fff453d35ff3f3831ff403931ff453d34ff665c53ff61574dff655a50ff675c51ff645a50ff63584dff655a4fff655b4fff6a5f53ff6a6053ff665c50ff5e544bff635a4eff60574cff5e5449ff5c5247ff5b5249ff5d544cff5b524aff5f554dff594f47ff5a5248ff574e44ff5b5148ff554c43ff544b41ff574e43ff544c42ff534a41ff564d44ff554d43ff584f46ff51483fff4a423bff423a34ff4a423aff4e453dff534b42ff50473fff524940ff50473eff50473fff4f473fff4d453eff4a423aff4b433aff4a4239ff4b4339ff4c433bff4b443cff4b433bff4b423bff484038ff494138ff564a2aff675412ff604f19ff4c443aff4c4339ff8f8070ff938474ff897b6cff998a79ffa79683ffa49481ffa39280ffa99582ff9e8e7dff978778ff9a8a7aff988778ff938575ff968777ff8f8172ff897a6dff908273ff998979ff928373ff928373ff9d8b77ff968672ff908070ff8a7b6dff86786aff857666ff827364ff7d7061ff7e7163ff837668ff807365ff786a5eff827265ff857465ff847465ff7f6f60ff807162ff7f7163ff817363ff7f7162ff7e7062ff7d6f61ff7c6f61ff75695cff726658ff796c5cff7e6e5fff7d6c5d652b3231642b3333672c36355e323d3a442f3a3747313a3a412f39385055595933181a1b241c201e41222a284e333b3a4d333b3a4d363f3d4d333d3c512d39367d414a4e6737404067343e3d90454c516c353d3e6e414b4d663943436b363f405d323d3e60333d3c5c343d3c64343e3fa162687061353f3f60373f3f59323b3b57313a3a52323c3b5b333f3c64333e3d5e30393a51313a39632c303290586064612d36365b2a33325e2b3433832d33337323282862252b2b86252422ff40352bff43382dff42372dff3e342aff453a2fff4d4135ff4d4034ff4a3e33ff493d32ff493d32ff45392fff463a2fff4d4135ff4e4236ff4e4236ff524539ff584b3dff53463aff564a3dff615346ff776a5cff75695cff76695cff6f6357ff786b5eff7b6d5fff736559ff6f6256ff6f6356ff6f6356ff7d7161ff867868ff857665ff847766ff887b6aff8d7f70ff837566ff8e8070ff918373ff817465ff776a5dff776a5cff7a6c5fff837566ff413830ff433a32ff5c490dff5b490dff413930ff3f372fff423931ff413930ff443c34ff433a32ff403831ff3a332cff3a332cff413830ff453c34ff484037ff453c34ff453c34ff463d33ff463e35ff473f36ff443d34ff433c33ff433c33ff484037ff463e34ff494138ff484038ff4b423aff4c433aff4a4138ff50473cff50473aff4a4136ff4f463bff4e463aff463e35ff453d35ff494139ff4b4239ff4c4339ff494037ff4b4239ff4a4137ff4d433aff4f463bff52473cff53493fff4f463cff4b423aff4f463eff4a4239ff4a433bff453d35ff463e36ff463e35ff463e35ff443c33ff65594dff685c50ff6a5f54ff695e52ff675c50ff695f53ff675c51ff63584dff64594fff665c51ff62594eff63594fff665c52ff63594eff5f544bff5c524aff5c534cff5d544cff584e47ff504740ff534a40ff574e45ff564e45ff534b41ff574e45ff574d46ff4f463dff514940ff524941ff534b42ff544b43ff50483fff4b423bff423a34ff483f37ff50473fff534a41ff564d44ff534840ff544941ff4e463eff544b43ff524940ff4f473eff4d453cff4c443bff4d443bff4e463dff4d453dff4b443cff4a423bff4c423bff4d443cff4d443bff695816ff685512ff473e36ff494038ff3f362cff746759ff675b4fff726658ff746758ff786b5bff786c5dff7a6c5dff716356ff6b5f53ff6e6355ff6d5f52ff6a5e51ff695c4fff675b4fff61564aff62574bff65594dff6a5d50ff675b4eff6a5d50ff675b4dff655a4bff695e50ff655a4dff594f43ff5a5042ff5d5145ff594e43ff564b40ff594e43ff52483eff53493eff594e43ff625649ff5c5044ff5c4f43ff5f5346ff5b5044ff584d41ff5a4f43ff594d41ff584c41ff554a3eff574d41ff52473bff51463bff594e42ff564b3f89353c3c77333b3a632d37356a3641404a303b393b2c3533392d34326262646637171a1a2c1d222040222a284b363f3e7c474d524a37403d4b353e3d50303b3958333c3c7340494b6c3841428d4b53566a374040673740407b3e484894535a647f3c4749763c4645a25e696e6837404167363f3e5e333c3c5c34403c5c3640405e374040563740406338414065353f3f61313c3c502f3839662d3334754c5255673139395f2c35345f2d35346729323072262b2b7423292a76212526ff30281fff332a22ff332a21ff30271fff342b22ff382e25ff352c23ff362c24ff392f26ff362d23ff352c22ff362d23ff3a3026ff3b3227ff3b3127ff3d3328ff42372cff42372cff40362cff403429ff52483dff544a40ff554b41ff53493fff53483eff5b4f44ff554a40ff53483dff574d41ff564c40ff544a3fff5a4f43ff66594cff685b4dff685b4eff695d50ff6b5e52ff64584bff6e6253ff675b4eff65594cff625649ff574d41ff605447ff4e4338ff453c35ff453c2dff5c4a0fff5f4d10ff3b342cff403730ff3f372fff403830ff433b33ff423a32ff413830ff36302aff3e362eff413830ff453c33ff453c34ff483f36ff483f35ff483f35ff4a4137ff4b433aff4b4338ff494136ff483f35ff484037ff494138ff4a4238ff4c423aff4b423aff4c433aff4a4239ff4d4439ff51483cff50453aff4b4238ff4f463cff494137ff4a4138ff4d443bff4e453bff4a4138ff484137ff483f36ff4c4339ff4d4439ff51483cff4f463cff51483eff51483dff4d453cff4e453cff514a40ff4d453cff4e463dff50473eff4c443bff4e433aff6e6255ff6a5e53ff6c6053ff685e52ff726558ff6a5f53ff655b4eff60554cff685c52ff685e52ff645a4fff62594fff5e554cff62574dff5f564eff5e554cff5f564eff564c45ff474039ff534b42ff574f45ff544b42ff574e44ff544c43ff554c43ff51483fff534b42ff4d463eff534c43ff534a41ff4d443cff453d36ff3b362fff4f463cff4d453bff534b42ff504840ff50473eff50473fff514840ff534941ff544b42ff4f473dff4e453cff4c443bff51493fff4d443cff50473dff50483fff4d453dff51483fff52483fff4e443bff6b5916ff6a5814ff4f463bff4d443bff4a4036ff4a4238ff4f453cff4d4339ff4f453aff564b40ff4f463bff4b4135ff4e4438ff493f33ff463d32ff493f34ff473e34ff423930ff453b32ff413930ff433b32ff413930ff453c33ff453c33ff423b32ff473e34ff463d33ff3f362dff423930ff3e372dff332b23ff3a332bff383129ff3a322aff383128ff3e362eff3a322bff383129ff3d352dff3c342cff3e362eff3e362dff3c342aff3a332bff352e26ff372f27ff322b24ff352d25ff373028ff352e26ff332c24ff362e26ff3e352eff3b332b6a2c363365333b3a6b31393866343e3c412e39363b2c3733362e3531647272763c161919331d23223d252c2b4d2d373471454a4c4c303b384e353e3d5935423f7b41494b9f4d57607c444a50b4707a825e343d3c703841416b3b4445693a414260343f3f61344040a0525c6059363f3f58333c3b5d343d3e84464f53643740405b333e3d55353f3e5f35414161343e3e63313c3b552c353458262c2d7f646a6d68343c3c622e36365e2d36356e2c343460222827631f2726852d3132ff201a14ff221c16ff221c16ff231d16ff231c16ff272019ff282019ff261f19ff251e18ff241d17ff251e18ff261f18ff251e17ff2c251dff2c241cff282119ff2c241cff2d251eff2d261eff29221cff2c261eff393229ff3c352dff3c342dff3c332cff3c342bff3f362cff3d342cff3a3229ff3a332aff3d362cff3c352cff40382fff463d33ff473d31ff41382eff433a2fff443b31ff443b31ff443b32ff443c32ff433b31ff453c33ff433a30ff473d33ff473d34ff433a32ff564719ff604d0eff564619ff3d362eff413831ff413931ff423a32ff413932ff413830ff3d352eff39312bff41382fff40372fff423932ff433b32ff483f35ff483f36ff473e36ff4a4037ff494036ff473e34ff4c4239ff4a4138ff4c4239ff4d433aff50463cff4c443aff4e453cff4e453bff4c4238ff52483cff52473eff544a3fff554b41ff50463cff4f463cff4c4339ff4c433aff51483dff50473cff4d4339ff4f453bff50463bff4e4439ff51483dff564d42ff524940ff4e443bff534a40ff544b42ff544b42ff554b40ff544a40ff574d43ff4f473cff685e51ff665b50ff6f6356ff6e6356ff675d52ff685e52ff675c51ff6c6257ff685d52ff665c51ff645c52ff5f554dff61574eff635950ff5e534bff574e45ff5e544cff574d45ff5c5249ff5b5047ff5a4f46ff574d46ff5a5047ff534b43ff524940ff534a42ff534a41ff514941ff574e45ff534a41ff504740ff433d36ff4d453cff50473eff564e45ff554b43ff50463eff4f463dff564c44ff564d46ff5a5149ff514940ff50473eff51483fff524940ff51483fff50483fff50473eff4e453dff4f463eff4e453cff4d453cff5f5125ff6c5915ff6a5715ff4f463cff4b4037ff473d33ff4d4339ff51473bff534a40ff4c4238ff4b4237ff483e34ff473f34ff473e34ff443b32ff433a30ff443c32ff463f35ff433a30ff41392fff443b32ff443b32ff423b31ff3f382eff3b342bff3d362dff3b332cff3c352eff3d352dff3c352cff393129ff3b342cff352f27ff39322aff353028ff3b332aff39312aff3b342cff383029ff3b332cff3a332bff3b332bff362e26ff373027ff373028ff362f27ff362f27ff372f28ff383028ff352e26ff342d26ff332c24ff373028ff393129b62a2a266f3039395d303838632f37366b424c4c3e2e3a363a2f3a3737323a377784828938181b1a381f252543262d2c4d2c3633704b50525736403f48343c3b6d414b4d65434a4d884f565d76414a4c8f4d5459653f4648663a44468b4854556a3a4344603d4545643f49479d5359605f3c44475d37414169384143683c444662343d3d603d474856353f3e5c3540415835403f61313b3b532c3434602f343565696f7264323b3a612f3a395f2e37365d2c363560242b2b54222a2a5f222727f5201b15ff231d17ff201a14ff221c16ff221c16ff251e17ff261e18ff261f18ff29211aff272019ff262019ff251e18ff261f18ff28211aff282119ff28221aff28211aff2a231bff2a231bff261f19ff29231cff383027ff3d352dff3a332bff393229ff3d342cff433931ff423830ff3e352cff3d342aff40372eff3a332aff3e372dff40382eff473e33ff453c32ff453c31ff443b31ff463e33ff42392fff443b32ff443b31ff443c32ff423a30ff41392eff3b322aff443a32ff443b33ff604d0fff604e11ff423a32ff403932ff403730ff433b33ff494036ff433b33ff423a31ff38322bff403730ff423a31ff453d34ff4f463cff483f36ff483f35ff4b4339ff4e463dff4c433aff4b4339ff494037ff4c4339ff4b4238ff4c433bff4f463dff4f463cff4c4339ff4e453cff52493fff4c4339ff4e443aff54493fff564b40ff51473dff53493fff4e453bff4e453bff50463dff4d443aff4d4339ff473d35ff4b4237ff50473cff52483dff544b40ff584e44ff564d44ff524840ff51483fff4f473eff544c42ff594e43ff564d42ff584e44ff6a5e53ff6f6256ff6c6154ff6c6154ff6a5f53ff685d51ff695e53ff655b50ff675c52ff665c51ff5f564dff61574dff5d534bff655a52ff564d45ff5c524aff61554dff5b5249ff5b5148ff594f45ff5a5147ff595046ff5c5047ff574e45ff544a41ff5a4f47ff534a41ff584e46ff524940ff433d36ff463e39ff524840ff50473dff534a41ff524840ff4d433cff524941ff594e46ff5a5049ff564d45ff564c44ff564d45ff554c44ff544b43ff50483fff514940ff4e463dff4d453dff50463dff534a40ff4a413aff504738ff6d5c18ff6c5814ff4a423aff4d453dff40362dff51463bff4e4439ff4f463bff4e453aff4f453aff4c4237ff4e443bff51483dff4b4239ff483f35ff473f35ff474036ff433d33ff453d33ff453d33ff443c32ff443b32ff41382fff403730ff40382fff3c342cff3b342cff3a332bff3e362eff3d352dff3b342bff3c352cff3b332bff3d352cff3a322aff3b332bff3a322bff3d362dff3c342dff383129ff39322aff3a322aff3c342cff3a322aff373028ff393129ff373028ff383028ff383128ff332c25ff332c24ff352c24ff393129ff383129b52e2d29672d36357a3e42466d343b3c55454e4d4c3d4746493e47473b3f46446d8e8f932d171b1a3f2329295a343b3b4c323a39724b515460424a4a6040474858414c4c75454e50824f585c71454e519751595f754048496c454e4f734751516f3f4b4b7240494b6b444f4f7b454d4e77414b506c4952557d454d53643941425c353e3e5f363f3f5e384243633a45465e3642425e353e3f5c3038373f262e2d60747a7d6a333c3c64313b3a652e383660303a386b282e2e5e21282762222928d71f1c18ff241e18ff211b15ff241d17ff231d17ff251e17ff251e17ff272019ff29221bff261f19ff272019ff272019ff28211aff28211aff272119ff2a231bff29221aff2a231bff29221bff29221bff27211aff322a22ff3b332aff3f372eff3e362eff3e352dff3b332bff41382dff3d362cff3c352bff433a2fff40372dff423930ff3e362dff433a31ff453c32ff453b31ff43392fff463d33ff443b31ff41382fff443b32ff463d33ff443b31ff453c31ff40382fff494135ff413930ff413931ff604d0fff624e10ff413930ff413a31ff433a32ff40382fff473e36ff453d34ff3a342dff3c352eff403830ff423931ff453c34ff494037ff423931ff4a4137ff4b4138ff4f463dff51483fff4d443aff4c443bff4e453cff50473eff4c433aff4e453cff4b433aff4c433aff4d443aff51473dff4d4339ff52473dff52483dff544a40ff53493fff534940ff52493fff50473dff50473cff544a3fff52483eff4e453bff4e4439ff4e453aff50463bff51493eff534b3fff50483fff50483fff4e463dff514940ff534a40ff534a3fff52493fff6d6256ff695d52ff655b50ff6a6054ff685c52ff6b6054ff675b51ff675b50ff675c50ff635a50ff5f564dff5c5349ff61574fff5f544cff5c5149ff60554cff5d5349ff5c5148ff5d5349ff5e544cff595047ff5b5248ff5a5148ff5a4f46ff584e44ff564d45ff564c44ff594f47ff48423bff463f38ff524941ff50473eff594f45ff51483fff564c44ff5b5047ff574c44ff594e45ff574e46ff594f48ff584e45ff5b5247ff544b42ff4f473eff50473eff50483fff524940ff534940ff554b42ff4c433bff50483fff6e5a14ff6c5814ff544931ff4b423bff443c31ff50463bff50463bff463e33ff4d4439ff4e463bff4e4439ff4f453bff4e453bff4b4239ff463e34ff494238ff453d34ff453d34ff463f35ff483f35ff443c34ff443b32ff483e34ff463d33ff40372fff443c33ff40382fff40372fff423a31ff413a31ff433b32ff3d352dff3d362cff41382fff3e362cff393229ff3a312aff372f28ff3b332dff3a322bff3b332bff3b332bff3c342cff3c342bff3b342bff39322aff383129ff383129ff362e27ff362e27ff342d26ff332d25ff342d26ff352d25ff3830295c2328285c2f3838693c4246693944455138434140313c3a39303a3933313b396b8f9298231b1f1c372027264a3139395a3d47444b36413e714750506438434190535d6277434a4c61414a4b603b4546703f494982474f5475414c4d6840494a66404a4a643e4847653f47497641494a7a444e4f663844418d4c5257603a444459374240603641415c3740405d353e3f603642415c333d3c552f373733272e2f5f71787b713b4246652f3a3a652e3837592c373562242d2b592028276c242a2a7317191aff251e18ff231d16ff251e17ff261f18ff241d16ff251e17ff231c16ff271f19ff261f19ff282019ff29211aff29211aff292119ff28211aff2a221bff29221aff29221bff29221bff2a221bff2b241cff2a231cff39322aff393129ff40382fff3d342cff3e352cff40382dff423a2fff40382dff41382fff433a30ff443b31ff443a31ff42372eff453a31ff473d33ff473e34ff484036ff484035ff483e34ff494136ff483f35ff4c4237ff4d4236ff483e33ff473d32ff483f36ff423a31ff624f11ff614d0fff4a402fff413a31ff433a32ff433a32ff463d35ff3f3830ff413931ff3f3830ff352d27ff443b33ff433b31ff493f36ff453d34ff4a4138ff4e453bff4e443bff50463dff4c4239ff4f463dff51483fff51473dff4f463cff51473dff52483eff4e453cff4f453cff50463cff584e43ff4f453bff52473cff574d42ff50473cff51483eff52483fff53493fff564c43ff574c41ff534940ff4f463cff4f473bff4d4439ff50463bff52483dff51493eff51483fff524940ff544a40ff50473eff544b42ff554c42ff554c42ff6c6054ff685d51ff6a5f53ff61584eff706559ff685d52ff685d51ff5f534aff655b50ff655c51ff635951ff665d53ff5f544cff5f554cff63584fff5f5349ff5e544bff5d534aff554c43ff594f46ff5d534aff5a5048ff5b5148ff594f47ff594f46ff594f47ff5b5148ff534a42ff4a4239ff4e463dff51483fff4f463dff4e463eff534941ff544b43ff554c44ff554c44ff4e453fff4e443fff544a43ff524941ff524940ff52483fff564d44ff544b42ff52493fff514840ff524a40ff554c43ff51483fff695618ff6f5c15ff6b5816ff4a423bff4d453cff3e352bff4e4439ff52473cff4f453aff4d443aff52493dff50463bff50463bff494037ff4a4137ff473e35ff4a4136ff443c33ff443b33ff494035ff4b4238ff473e34ff443c32ff423a31ff494037ff463e34ff443c33ff413931ff443c33ff453e35ff40382fff443c32ff3e372dff3e362dff3f382eff3b342bff3d362dff3b332bff3a332bff3d342dff3a322bff3c3329ff3d342bff3d342cff3a3229ff3b332bff3b332bff383129ff393129ff373029ff352e26ff342d26ff362e27ff322b24ff332d25ff352e265d272d2d5a2f39375c323d3a602f3c3749333f3b3c2f3d38372f3b3838353f3c828e9195251e1e1e3f242b2a58353a3a55363e3d57424a49684147467b4a505876434b4ead5f69735d3d4647623841416a394242a5565b666338414183424c4e9d4c575a683c45456d3a43447e434b4c693b49447f3f494b613741405d36403f623841416a37434263364241663843435f36404062353e3e5f2f393733242b2a73686c6fa3565b6467323c3a5f2e37375f30393964262e2d57222a28632129285f191d1dff262018ff241e17ff241d17ff221c15ff261f18ff261f18ff241d17ff272019ff251e18ff28211aff282019ff29211aff282119ff28211aff28211aff28211aff29221bff29211aff29231cff28221bff29221aff372f27ff373027ff3c352cff3e352cff3d342bff3c342bff433a30ff3d362cff42392fff3f372eff423a31ff453c32ff433a30ff453b30ff473e34ff4c4338ff494136ff483f35ff4a4137ff493f34ff4b4238ff4b4137ff504539ff4c4136ff4a4035ff453c32ff463d35ff413a32ff624e0fff665313ff433b33ff423932ff483f37ff463d35ff484037ff473e36ff4a4038ff423a31ff403830ff453c33ff4a4138ff453d34ff4e433aff4c4339ff524840ff4c433aff51483eff52483fff4d443bff4e463cff4e453bff4e443bff554b42ff4d433bff50463cff51473eff544a3fff564c42ff51473dff52493eff53493fff544a3fff50473eff4b423aff564b41ff574c43ff53493eff564c43ff50453cff50463bff50473aff494036ff50463cff53493eff514940ff554b43ff564c42ff524a41ff51483fff52483fff6d6154ff665c52ff6b6056ff655c52ff665b50ff645a50ff685d53ff655b52ff61574eff665b52ff675d52ff61574dff5f554cff5f544cff5c5049ff5b5047ff594e44ff594e45ff544a42ff554c42ff5b5047ff594f46ff594e45ff564c43ff534942ff514840ff534a42ff423b35ff4a433bff4c433bff554c43ff544b42ff51463eff534a41ff574d45ff594e46ff584e46ff594f47ff5a5049ff534a42ff4f4840ff554c43ff574f46ff574d44ff534a41ff52493fff574d43ff4f463eff51463dff534940ff705d16ff715e16ff4b433bff4e463eff433a2fff51483bff51473cff52493eff4b4338ff4d4338ff4f453aff51473bff4c4339ff4d4439ff4e443aff4d433aff4b4138ff473f36ff4f443bff4a4238ff483f35ff483f35ff483f35ff4b4137ff453d34ff443b32ff413930ff443b33ff423a30ff443b32ff413930ff3b342bff3c342cff3e372eff3d362dff3a332aff3c352cff393129ff3c342bff3c332cff3c332bff40372fff3e352cff3d342cff3a322aff352e26ff393129ff3a332bff39322aff373028ff39322bff342d25ff362f27ff373028ff373029ff3a322b5d2930305b30383864303a3865323d3c4c3a4743443744403d363f3d34333e3c757e787f1d1b1e1b4b2b313159363a394d3a403e5e4b5154533a444248333f3c8f51565f864d575a7c4750546938424299575f65974850557f48535584475052693a44447b434b4c733a44456836414076404e4c713c48466b3641405f374141623740406b384142653744436a3a444468374344683a424372363e3e45262e2da46a6f76793a434470343e3f6b323a3a633039385c27302f64242c2b62232a2973232929ff221c15ff231d16ff251e17ff241e17ff241d16ff251f18ff241d16ff261e17ff261f18ff261f18ff2a221bff29211aff29211aff272019ff251e17ff282119ff2b241cff2c241dff29221bff2c241dff2a231bff352d25ff40382fff3f362dff41382fff423930ff41392fff3d362cff3f372eff423a30ff3e372eff423930ff453c32ff483f34ff483d33ff483e34ff463d33ff4b4136ff473e34ff494036ff494036ff463d33ff4b4136ff51473bff4b4237ff4f453aff4e4439ff564d43ff3f382fff504429ff655110ff645014ff473f37ff453c35ff473e35ff473e35ff443b33ff483e36ff493f36ff423a31ff443b33ff423a31ff423932ff484038ff473e36ff4c433aff51473eff50463cff4f453bff51473fff50463eff4c423bff4a4139ff4b4238ff4a4239ff494038ff463d34ff4b4137ff534a3eff544a40ff53493eff51473cff52473dff52483eff534a40ff544a40ff544b41ff53483eff564c43ff574d42ff544a3fff50483dff4d4439ff473f34ff4d453aff51483dff4e463dff524940ff524a40ff52493fff51483eff675d53ff6b6156ff695f56ff685e54ff665b4fff695d54ff685c53ff5c524aff655b53ff685f55ff625a50ff635950ff63574eff594e46ff62564fff584e46ff594e45ff5c5249ff5d5349ff5c5249ff5f564cff5b5046ff5b5046ff5a5048ff574d46ff554b42ff554b43ff4e463eff544a41ff564c42ff584f45ff554a42ff594e45ff584d44ff584f47ff5d5249ff584e47ff554b44ff4c433bff4e463dff4c433aff433b33ff4a4239ff484038ff4f473eff554c43ff594e44ff51483eff584d43ff746118ff6f5b15ff564b36ff524b44ff4e4438ff51473cff50473cff534a3fff4c443aff4e4539ff554c40ff51483dff4c4238ff4c4339ff4b4138ff4f453bff4a4238ff4c4239ff4e453bff494038ff4b4239ff4a4138ff4a4138ff483f35ff483f36ff433a31ff453c33ff463e33ff423a31ff40392fff40382fff3e362eff3c332cff3b332bff3f382fff3e362eff3d352dff3e362eff3c332bff42372fff3c332cff3f362eff3c332bff3b332bff383028ff362e26ff373028ff373028ff3b332bff383028ff393229ff3e362eff39322aff3b332bff3a322aff383028ea38312a5b2d35345a2d383663323a3b5f333d3c5d444d4d4233413d36303a39463c474472656669201c211f4b252e2c713d414581595a62453f4546493b47446c3b424672414b4c9c5864689b576567b766717da0595f68a55c646bc47c8086944f565c663943426836423f653943436d3943436b394442683c45456339434367394645643944446e384342673944456539434363384343663440416b30393962303737884c52588a454e4f6d2f3a396c30393867303b395d2c33335d242d2b61252c2ac245484eff241d16ff221c15ff241d16ff261f18ff251e17ff261f18ff251e17ff241e17ff282019ff261f18ff271f18ff272019ff272019ff261f18ff251f18ff272119ff282119ff2c241dff2b231cff2b241cff2c251dff312921ff3f372eff41382fff40372eff40372eff40382eff3f372eff41382fff433a2fff3c342bff42392fff443b31ff453c31ff44392eff4a4136ff483e34ff453c31ff4d4338ff493f34ff4a4036ff4b4137ff4c4237ff504639ff4c4236ff473e33ff4c4238ff50463dff4e453bff413831ff5f4d12ff655211ff544728ff463e35ff483f35ff484036ff433a32ff453d34ff423931ff433a31ff36312aff4c433aff453b33ff483f36ff4b4137ff4c4239ff4e453bff50463dff52493fff564b42ff534941ff4e443cff4b4239ff4a4138ff483f36ff4b4239ff4a4137ff4a4137ff4d453aff53493eff584d42ff544a3eff53483dff554a40ff534940ff554b41ff564c43ff574c43ff574d44ff574d43ff584e43ff584e43ff554c41ff53493eff4a4135ff4e453aff544b40ff544b40ff53493fff50473eff524940ff6d6257ff645a51ff5b5248ff63584fff706259ff665a51ff655951ff655b53ff655c52ff696056ff5f564cff62584fff60554cff5a4f47ff554b43ff584e46ff5c5148ff5b5148ff5a5048ff5b5148ff5a5147ff574e45ff5c5149ff564c44ff5c5149ff554c43ff474037ff534940ff554b41ff5a4f46ff5a5045ff5d5247ff544b42ff554b41ff514840ff534940ff4e4740ff4f453eff4d453cff524940ff534a41ff4f463dff4f473eff4f463dff594f45ff584e43ff51473fff534a41ff5f5237ff735f17ff736019ff514940ff4d433aff3c3329ff574d40ff574d42ff5a5145ff574d43ff594f44ff53493eff50473cff52493eff51473dff51483dff4d453aff50473cff4f463dff4c423aff4a4138ff4b4239ff494037ff494037ff463e35ff433b32ff433a31ff433b31ff40382fff423a30ff40382fff3f382fff3c352cff3c342cff3e372eff3e372eff3f382fff413930ff3d352cff3f362eff3d342cff3b332bff3a322aff3c332cff3a322aff3c332bff3c342bff373028ff383028ff372f28ff393129ff393129ff383028ff39322aff383028ff3a332aff3a322ae4332f285d313a395b2b3633572e38365b343e3d4b3844414e35443f3c33403d53484f4e744b4d522a272a295d313435633640416e4e5057756b6c74644f58588a616a748f57606c7448505385464f509a50575da2525a5b8e49525589464d51984c565a683b48476a3b454588404c4d6b3b4544713d4646633a464663394343693f4a497139484275414a4a6d3946486b3d47476e3e4847703b454470363f3e542e3536bf52565e9a555b666a343d3d67313b3b65303a39642d373564272e2d5b232b2964242b2bff231d16ff221b15ff241d16ff231c16ff241e17ff251f18ff231c16ff251e18ff241d16ff241d17ff251e18ff261e18ff261f18ff251e18ff28211aff261f18ff282119ff29221aff292119ff2a231bff2b241cff2c261eff3c352cff423930ff40382fff423930ff3f372dff3e362dff413930ff423a30ff453c31ff41372fff463c31ff493f34ff4a4137ff4c4136ff4a4035ff473e34ff473d32ff494034ff494136ff4e4539ff4d4338ff4d4338ff483f34ff4b4137ff4e4439ff4d4339ff544a3fff453d35ff413a31ff675312ff675312ff484037ff4a4038ff473f36ff473f36ff494037ff473f36ff483f36ff453c34ff413931ff473d34ff473d34ff4b4239ff4b4239ff4b4137ff4d443bff4e4439ff4e443cff51473dff474038ff413830ff413931ff443b33ff453b34ff443b32ff463d35ff4d4339ff54493fff564b3fff564b41ff4e443aff53493fff52483eff544a41ff554b41ff574c42ff5b5047ff554a41ff544a40ff534a40ff564d42ff564c41ff544b40ff52483dff544a3fff544a3fff564c41ff584e43ff564c41ff695f54ff62594eff685e54ff6c6058ff645950ff635850ff655a52ff695e57ff60564eff635950ff65594fff5e534aff554b43ff574d45ff5a5047ff5c5249ff5a5047ff5c534aff5b534aff5b5148ff594f47ff564c44ff5b5147ff564b42ff4e453dff473f38ff4b413aff52463fff5a4f45ff595047ff554c43ff564c42ff554c42ff5b5147ff585046ff5a5148ff595047ff564c43ff554b42ff50473fff4f463eff534941ff4e453dff4b423bff4b443cff4d443cff463d37ff4d433bff735e17ff715c14ff4f463eff50473fff423a31ff52483cff554b3fff4f473aff554b3fff595044ff564c40ff53493eff51483dff50463cff4d4339ff50473cff51483dff53493eff4f463cff4c4239ff484037ff4c433bff4a4038ff484037ff463e36ff433a31ff423a30ff443c32ff453d33ff463c32ff3e362eff3f372eff3c352cff3a332aff413a31ff3f382fff3e362eff3e362eff3d342bff3f362dff393028ff3b332aff393129ff39312aff3d342dff3c342cff373028ff393129ff383129ff372f27ff393129ff3a322aff3a322aff3a332bff3a322aff39322aff3c342d6a2124259a565d6576333c3b5c313a385f3c47475141494b4e35433e4f3e4a495d465150603e404423202321572f33354b363d3f66565c60715a62625946505074555c669a57656da459626897546067934e575a9651595baf5d6671a4525c617a424b4b703d4747723f4848703d47466d3c4646793e48496e3e4747643e4848693a46456a3a4746713c46456f3d4747653a47496a3c48466b3c454578394243512b3333903b41449363696f6b333e3d6530393a642f39395a2e39375d252d2c5c23292958242b2a5d161616ff221c15ff221c15ff261f18ff241e17ff251e17ff261f18ff251e17ff261e17ff241d16ff241d17ff241d17ff251e18ff272019ff29211aff272019ff29211aff28211aff28211aff2b231cff2c241dff2d261eff382f27ff40372eff3f362dff423930ff423930ff42392fff40372eff3d342bff3f372eff433a30ff453c31ff473e33ff4a4135ff493f35ff463b31ff473d33ff4e453aff4a4136ff4f463aff4e4439ff4d4438ff51473cff50463bff4e453aff4c4338ff53483cff564b40ff594e42ff463b33ff4b4030ff685411ff675312ff473e37ff494037ff494037ff463e35ff483f36ff453c34ff493f36ff3a342cff3d362eff423830ff4a3f36ff4a4137ff4a4038ff4d433aff50463cff4b4239ff4d433aff473e36ff463d34ff4a4139ff50453cff4c423aff494139ff4c423aff50463cff4b4138ff4d4339ff4a4238ff50463cff493f37ff554a3fff554c41ff554a40ff52483fff554b42ff564b42ff53493fff554b41ff534940ff51483eff544a40ff574c42ff544940ff534940ff51483fff584d42ff574d42ff5f574eff6a6157ff695e55ff645a52ff645850ff61554eff62574fff60574eff5c5249ff60554dff5e534aff5a5049ff5d5249ff5d5148ff5a4f46ff60554cff5d534aff5c5349ff595147ff544b43ff554b44ff574d45ff554b42ff534940ff4a4139ff473e37ff51463eff574c44ff5d524aff5a5047ff564c42ff5d5349ff584f46ff5a5048ff5b5249ff564d45ff554b42ff4f443cff544a42ff595045ff534a41ff574c43ff524941ff4d443bff4c423bff463e38ff50463eff766119ff745e16ff61532eff524840ff4e453bff433b32ff4e453aff5b5044ff5b5044ff564d42ff564d41ff554c40ff52483dff544a40ff4f453aff4c4237ff4d453aff494137ff4e453aff4e453bff483f36ff4b4339ff4c433aff4a4138ff453e36ff483f37ff463d33ff443b32ff423b31ff433b32ff433b32ff433b32ff413a30ff3f382fff3c342cff3f372fff3f372fff3b332cff3b332cff3c332cff3c332cff373028ff3b322aff3d342cff39302aff3c342bff3a3229ff393229ff3a322aff352e27ff39322aff393129ff383128ff3c332aff372f27ff3c342bff3a322aff3c342c8a2e323497585e647339424265363f3f6d3b4448634c545541364540614852585f575f606f393a3e322c2e2e854f4f567b5b616953454c4e4b49505058525c5e734e5c5e6f434d4f955c65727d465052a25862676b424b4e92546064ae64717794535a5f6c3e4e486d424c4e6f424f4c68444a4f6d424f4e6b434f4c63444f4e5f3c4a4578444f4f683b4747693a444461434b4b623945485f3b45447e464c4f572834308f3940419a7c818968333d3c68333c3c61323b3b64343c3d60292f3063292f2f60272e2e921e2122ff241d17ff221c16ff241d16ff241d17ff241d17ff241e17ff251e18ff241d17ff251e18ff241d17ff271f18ff261e18ff261f18ff282119ff272019ff2a221bff28211aff28211aff2a231cff2a221bff2c251dff3b3128ff3d342bff3f362dff423930ff453c33ff473e34ff453c34ff3d362cff3e362cff41392eff423a30ff473e34ff443b31ff463d33ff443b31ff4b4137ff4d4339ff4a4035ff4b4337ff4f453aff4b4136ff4f453aff554a3eff51463bff4d4339ff4f443aff51473bff4c4238ff483f37ff453c34ff695311ff6c5814ff5e4e23ff484038ff483f37ff4a4138ff4a4139ff494037ff483e36ff453c34ff403831ff3e362eff403830ff493f36ff4c423aff4a4239ff50463dff4b4239ff4f443aff50463dff51473eff4f453cff50453dff4d433aff4b4139ff4d433aff4e443bff54493eff4a4138ff4f463dff473f36ff463d35ff51473dff584d43ff53493fff544a42ff574d44ff574d44ff52473fff4c433aff574c42ff584f44ff564d43ff544b42ff544b41ff524a40ff50473eff554b40ff554b42ff665e55ff685e55ff665c54ff5f544cff6a5f56ff655952ff6f6359ff655a51ff675c52ff665a51ff63594fff61554cff64564eff5c5148ff5d524aff5c5248ff5c5248ff5d544aff554c43ff584d44ff534940ff50463fff4e453dff463e36ff4c433cff554b42ff594d46ff5e534bff5d5449ff5e5449ff61574dff5c5249ff5b5249ff5e544bff5c544bff584e46ff4d443cff534a40ff51473dff554c43ff4f463fff453d36ff4b433bff50463eff4a413aff4d433cff6d5b27ff715a13ff766219ff514840ff4f463eff373028ff52483dff534a3dff564b3fff5f5548ff564d42ff544c40ff54493eff564d42ff51483dff4f463bff4d4439ff50473cff52483eff51493eff4d433aff4e453bff4d443aff4c4238ff4d433bff473e35ff4c4238ff453c32ff484036ff403830ff443c33ff403931ff3e3830ff403930ff3d362cff3a332aff3c352cff3e362eff413930ff3d352dff423a31ff3d352eff383028ff3a322aff3e362dff3a3128ff3c332cff393129ff3a3229ff3d342bff372f27ff383028ff393129ff39322aff372f27ff383028ff393129ff373028ff3b342b772d3132a5585f647b424b4b8351565a72484f526c51585e5c575d60604a5255757f85896a393d3f37242927622e35355e353e3d3a3036317d656b6d6f575e629f657270663948459357636888535b617d4b555aa25e6a74743e47487e424b4c74424b4c74404a4a74404a4a78444f5371424b4b78454f509149505373424a4c723f4a49b359666b6e38454372414d4b613c4646673c48475e3944438040474a6c394341983d4246b59e9eab61333c3c6c343e3e67333d3d5f343e3d612d34355b252c2c6b282e2e9327292bff261f18ff231d15ff211b15ff231c16ff231d17ff251f18ff251e18ff272019ff251e18ff231c16ff231d16ff262018ff261f17ff272019ff272019ff29221aff2a221bff282119ff2a231bff2a231bff2b241cff2c251dff3b332aff423930ff423930ff41382eff413931ff423a30ff423a30ff433a30ff41392eff453d33ff483f34ff494035ff463e33ff473f34ff453c32ff483f35ff4b4136ff4e4437ff50473bff484035ff4d4338ff51463bff50463cff4f453aff53493dff51473cff574c40ff554a3fff453d35ff433a32ff695512ff695512ff4a4138ff4b423aff4d443aff483f36ff494036ff4a4138ff473e36ff494037ff483e35ff3f372fff443a32ff4c4238ff4f463dff544a40ff544a41ff574c42ff544a40ff51473eff584e44ff51473fff4c433aff413831ff4d443bff554b40ff554b41ff50453cff463d35ff4d4339ff493f37ff453c35ff50463eff50463dff53483fff584e43ff5a5045ff564b42ff5c5148ff5a4f45ff5a5045ff5c5248ff5f5449ff5d5247ff52483eff554c41ff594f43ff584e43ff625951ff5d534cff5e534bff61564dff61574eff675d54ff655b51ff5a4f46ff5b5148ff524940ff4f463fff49403aff4d443dff514840ff544b44ff514940ff594f47ff564d44ff5a4f46ff5f544bff60544bff534940ff544b43ff544a42ff564b44ff594f47ff5e544aff595047ff5e544bff5d5248ff5a5048ff574f46ff564d45ff564d44ff544b43ff554c44ff564d44ff524941ff51483fff534a41ff534942ff4d443dff463e36ff51463eff4b423bff5a4f40ff765f16ff755f15ff524941ff50463fff473e34ff544a3fff52483cff554b3eff5c5244ff5d5449ff595044ff554c41ff584d41ff554a3eff554c41ff544a3fff4d443aff4d443aff4d433aff4f463bff4e453bff52493fff4c4439ff4c4439ff4a4136ff4d443aff494036ff4a4037ff483f36ff463d34ff473f36ff40382fff3e372fff3c352dff3d362dff3e362dff3f372eff3f372eff413931ff3f372fff3b332bff3f3730ff3a322bff3c342dff3c342dff383029ff393029ff393028ff393128ff382f26ff3b3229ff393128ff393128ff383027ff352e26ff3e362dff393229ff373028ff3d352d732f35367f3f47499b545e637d51585a8061696d4a3c444147434c4d65525b5f6c777e80582329273e2b2f2e532d36375d4047494a3a3e3a5f444b496b515a5e5936433f824e5a5e985b646a9f5f666f6c4a5458703d4747643a444478464f526b424d4f6f424d4d70424c4c7447535462404a4a6a434e4d69424c4d75404a4b68404b496a3c4646643a4645643b46455e3b4545603943435f3641407641484b5f2a34318b3c4345b3a7a6b45e313c3b5b2f39395b303a395e2f3837572931315b262e2c60282f2e70242829ff231d17ff211b14ff231d16ff231c15ff241d17ff251e17ff261f19ff261f18ff241d17ff27201aff251e18ff272019ff28211aff272019ff261f18ff272018ff272119ff282019ff2b231bff2a231bff2b231bff2d251dff3a3229ff453c32ff3e362cff3f362dff3e352cff40372eff443b30ff3f362dff42392eff41392eff473d32ff453a30ff473d33ff473e34ff443c32ff473e34ff4e443aff493f34ff4b4136ff4f453bff4d4339ff544a3eff52483dff50463bff4b4135ff4d4338ff554b3fff5c5044ff504439ff39312bff53421cff6a5411ff735c16ff4a4138ff483e36ff483f36ff4a4138ff4a4138ff4d443bff453d34ff413931ff352e28ff453c33ff483e35ff493f37ff4c433aff4e463cff51473dff463e35ff4a4139ff4e443cff493f38ff4e453cff50463cff4f463dff493f38ff4b4239ff4d443bff4b4239ff4c443aff50463dff4d433aff51473dff51463dff53483fff52483eff584d43ff534a40ff594d44ff554b41ff574d44ff574d43ff534a40ff534a41ff594e44ff594f43ff564c42ff594e43ff61574fff645951ff6a5d55ff625750ff60554dff62574eff6a5d54ff675a51ff655950ff595047ff4f463eff5b5048ff5b514aff5b5248ff595048ff5d534bff5a5048ff5b5048ff554b42ff554b42ff504841ff4b433bff4d443cff50463fff544a43ff574d44ff554b43ff574d44ff554a42ff574e45ff574c45ff574e46ff554b44ff564c44ff544a42ff554a43ff544a42ff524940ff50473eff574d44ff51483fff4f463eff494039ff4d443cff4f463dff78641cff776217ff63532bff594f47ff50463dff423a30ff544a3eff51473aff4f463bff52493eff5a5044ff584e43ff574d42ff534a3fff52493eff4e463cff4e463bff50473dff494036ff4c4339ff4f463dff544b40ff4f463cff4c4439ff4c4339ff4a4138ff4a4037ff4c4239ff4a4238ff4a4137ff473e35ff453d34ff423a32ff423a31ff403930ff413930ff3e372eff3d352dff41372fff40372fff3e352dff3f362fff3e352eff39302aff3d342cff3a322bff3b332aff3a3229ff3d342bff393129ff383028ff372f26ff393128ff3a3229ff393128ff383128ff3e362dff383028ff3a3229ff3a3228723237395f343d3c90444a507343494b89515b5d59474f516f535b5d634e575b8187898d5d282c2d6337393c5a303b3f53353c3e5d3d403d613e494b7f4c57588f4e5458623942426a434c4d6d3d4747683d47476c3e484871414b4ba75f6471653c4846703d484987474d516e424d4d663c484875414a4c6b3c46466b3d4747683d47476d3c47466d3c494a693c4646643d4746663946446838434361374140984951525c2b3332aca09fa96839424360313b3a5e2f39385e2e383760373f3f67282f2e6a2930306e262d2cff251e18ff251f18ff261e18ff231c16ff221c16ff241d17ff251d17ff261f18ff241d17ff261f19ff251f18ff262019ff28211aff272019ff29221aff29211aff29221bff28211aff272018ff282119ff2b231bff2d251dff3c352bff433a30ff3d342cff443a30ff42382fff41382eff433a30ff40372dff473d32ff483f33ff493f34ff463c32ff493f35ff4d4237ff4b4236ff4c4239ff493f36ff4e4439ff4a4136ff4f4439ff4f453aff4e4438ff51473cff534a3eff4f453aff4f4438ff4f4438ff504539ff3d352aff3f372fff37312bff614b0eff675312ff4c4024ff423931ff413a32ff3f362fff3f3731ff443b33ff413a33ff433b34ff423931ff39322bff453c34ff4d4239ff4e443bff51473eff544a3fff51473eff54493fff554b41ff51483eff4c433aff4c433aff4b4239ff51473eff51473eff4d433bff50473dff53493fff4c433aff483f37ff493e37ff4b4139ff50463dff5b5045ff564b40ff584c41ff5d5348ff5b5046ff5b5046ff5a4e45ff564d42ff574c43ff574d43ff5a5046ff584d43ff574d42ff524b44ff5a5048ff5d534cff61564fff665950ff645950ff61564cff5d534aff5a5047ff574e46ff5b5047ff584e46ff5f554bff61564dff5e544dff5d544bff594f46ff60554bff61554bff60554cff5c5349ff534b42ff5c5147ff5c5046ff5a4f47ff5b5147ff5b5148ff584e45ff5c5248ff5b5249ff5f554bff564c44ff544b42ff514741ff574d45ff5b5048ff534a42ff554c42ff4e453cff564c44ff564d43ff524940ff50483fff584d45ff705f21ff79661cff7a661cff594d45ff564d43ff3e372eff50463bff4c4337ff50473bff584e41ff5b5144ff52493dff564d41ff554c41ff4e453bff51483dff4c4439ff4c4439ff4f463bff4f463bff51483eff4f463aff4d443aff4e443bff4c4339ff4d443aff494036ff4a4037ff483f37ff473d35ff484036ff473f36ff453d34ff463e34ff494137ff443b31ff433a31ff40382fff41382fff41382fff3e362dff423830ff423a31ff40372fff3f362dff423930ff3e352dff3c332bff3e352bff3d342bff372f26ff3c342bff3a3128ff372f27ff3b332aff3b332aff3d342cff41382eff3b3329ff433b30ff3f372d60353b3d6f3a414266353e3d5f353e3e5a3c46465246505364545d5e534b54557e888d9364313537462a2f2f6c333c3a5d3941415f3e45466e4b57528d5560607f4a53546e404949633b484770414c4b6c3d4c4b6a3d4645703d48486d3c4646683d47477c47525276424b4c70424d4d6a3d4949633c47476e3d47476c3d4746703e48486c3d4948703e4a4b6f3f4949643e4747663b45455b39444379404649682f3d386a33383abaa0a6b1673a444460303b395a2f3937612f383862333a3a672a31317a3239399f323637ff272018ff272019ff261f18ff251f18ff241e17ff251e18ff241d17ff261f18ff261f18ff262019ff27211aff272019ff2b231bff29211aff29211aff29221aff2b231bff272019ff29221bff2c241bff2a221bff2d251dff3d342bff423930ff473d32ff443b30ff463d31ff40372eff453b31ff43392eff473d32ff463d31ff473d32ff4a4036ff473d34ff493f35ff494036ff4d4238ff493f34ff4a4035ff483f33ff4d4338ff4f4539ff50473bff4b4137ff50463bff53493eff52493eff51473bff4d4338ff4a4035ff4c4235ff413932ff403831ff6b5614ff695411ff4c433aff4d453bff494038ff473f37ff494037ff4b4239ff4c423aff4a4138ff474037ff483f37ff51463bff54493eff52483eff53493eff4e453cff52473dff554a40ff51483fff52483fff4b4139ff4c433aff4a4038ff4e443bff50473dff4c433aff4e453bff50453dff52483fff4e453bff51483eff4e463bff53473eff5c5146ff554a40ff5a4f44ff605449ff5e5348ff5a4f45ff594e44ff584d43ff534940ff574d44ff584e44ff564c42ff695d54ff685d53ff685c53ff6c6057ff665b52ff6a5e54ff645950ff62584fff5f544bff64594fff675b52ff665c52ff61574dff5a5147ff5b5148ff61564dff60564cff5e5348ff574d44ff534a42ff49403aff554b42ff524840ff4f463dff554a41ff534840ff4f453cff584f45ff5b5148ff5e534bff524940ff534a41ff584e45ff524840ff544a41ff5e534aff5e5349ff5a4f46ff594e45ff5d5148ff584f45ff564c43ff584e44ff5e5343ff7f6b1eff7b671cff5b5047ff594f46ff4b4137ff4c4438ff544a3fff52483cff5b5043ff584e42ff584f43ff5e5448ff4c4338ff4d453aff4a4238ff4f463cff50473dff4d453aff4a4137ff4c4237ff4e453bff50463cff52493eff51493eff4b4238ff4c4339ff483f35ff483e35ff4b4138ff4a3f37ff483f36ff483f36ff484037ff494035ff423a30ff453c32ff433b31ff41392fff3f372eff3e362dff453c33ff413830ff423930ff40372fff42392fff3f362dff3f362dff40362dff3b322aff3f362dff3b332aff3b3229ff393128ff382f28ff3a3129ff3c342cff3f362cff3d342aff3e362cff40382eff3d352c7239404267333e3c62333e3c5b333f3d6d5158594d434c4c4b3e484855444e4e819494a15d25292c4c282e2e5d363c3d53373c38914750545b4c51525e454f4d6c3d4a47683a4846693e484971404c4a6d3d4c4b673d4a496b3d48486a3d49496d3c4847703e49486e3f4a495f3e4a4a5f3d484762404c4b70414d4b6a3c494966384542683d4949703d48476a3d47465c3a4445653a4546673b464562343f3d7d3e454a7f404844a2949aa56432403b5e313c3a5e303a39612f3939513038376c2b3233672a3131702b3132f3241e17ff272018ff241d16ff272019ff251e17ff251f18ff241d17ff251e18ff29221bff261f19ff28211aff29211aff29221aff29211aff2a221aff29211aff29211aff2a231cff2a231bff2b231cff29221bff2c241dff3a3128ff41392fff3f372eff463c32ff3f362dff433a31ff463d32ff4a4136ff463c32ff4a4034ff493f34ff4d4239ff473d34ff4a4136ff4d4239ff4e4439ff494035ff4d4338ff50463aff50463aff4d4338ff4a4136ff4e4539ff544a3eff4c4237ff554c3fff50463bff50463bff504639ff493f33ff4e4337ff443c33ff4a3e25ff624d0fff644f10ff443c34ff453d34ff423a32ff483e36ff473f36ff443b32ff3e362eff453d35ff423a33ff4f453bff53473eff4f443aff54473eff54493fff574b41ff50473dff574c42ff574c43ff51473dff4b4138ff4b4239ff4f453dff53493fff534a3fff4f463dff534a40ff50463eff554a41ff574c43ff4f453cff4d453cff5d5248ff5f5549ff5e5248ff5d5348ff62584eff5e534aff5e534aff5a5047ff5a4f45ff5a5047ff5b5046ff5b5147ff6b5f55ff6a5d54ff6b5f57ff6e625aff655a52ff695f56ff655b52ff675b52ff685c51ff665b51ff685e54ff655b52ff60564dff5e544bff5b5147ff5e5249ff60554bff60554cff574e47ff474038ff574f47ff5b5048ff5b5047ff5d5147ff5d5247ff564a41ff60554bff61554bff61564cff60554bff584f46ff4f453dff534940ff50473fff50463eff564b43ff574c44ff574c43ff51473fff5b5047ff544b41ff564a41ff574d44ff7b6519ff7c6517ff675936ff584e46ff504539ff3d352aff574c3fff584d40ff5a4f43ff5a4f44ff564c41ff585044ff564c41ff4f463cff4d443aff4d453bff4f463cff4c443aff4b4238ff4d4439ff574d42ff534a3eff544a3fff4e453aff4e453aff4d4338ff4d4439ff4a4237ff4c4239ff4e453bff4b4238ff463d35ff473e36ff443c33ff473e33ff453c32ff443b32ff453c32ff423930ff40382fff433b31ff483e35ff453c33ff433b32ff41382fff42392fff41382fff41372dff3f352cff3d342cff40372eff3d342bff3c332aff3b3228ff3b322aff3c342bff3a332aff3d342cff3c332aff3f362dff3e362dff40372e924e53596f3c454660313d3a6136403f5b464f4f50434c4d62586463634857568a9798a15723262761333b3f61393f4177474e4f4c3740404f394342614951506037434165394644683b47456f3e49496c3e49496b3e4b4a6e3e4a4a6c3e4b4c6e3c47466d3e4a4a6e3c48476b3b49476a3e4949613e494a6d3e4c4c6b3e4a4a6c404b4b673c48476d3d47486a3d48475f3c4646673d484761394343763e4946712f393757293130847a7f83673b403d62323c3c65313b3b68313c3a6f404547532a323270343a3c7f3e4245911b1b19ff231d17ff28211aff251e17ff28211aff272019ff251e18ff241d17ff29211aff2c241dff2a221bff28211aff29221aff2a231bff2b231bff2a221aff29211aff2b231cff2a231bff2b231cff29211aff2c241dff372e25ff433930ff433930ff433930ff453b31ff463d33ff453c31ff493f36ff453b32ff4a4034ff4a4036ff473d34ff463d33ff483e35ff4f443aff4b4137ff4a4036ff4a4036ff4e4439ff4d4438ff4d4338ff4c4238ff50463bff51473bff554a3eff50463aff51483dff53493eff4b4136ff52473bff42382fff4a4239ff473f37ff6d5815ff705c19ff554a2fff4c443bff4e443bff4e433bff4e433bff4e443cff473e36ff4e443cff4f463eff39332cff453d35ff473e36ff53473eff51473dff564b40ff54493fff554a40ff584d43ff584d44ff554b41ff4c433bff4b4139ff4b4139ff494136ff4c433aff53483fff51483dff544a3fff53483fff564b41ff554b42ff53483fff5a4f45ff5a4f44ff5c5146ff5a5148ff5e544aff5d534aff5f554bff5b5148ff5b5048ff5e5349ff60544aff655950ff64574fff675b52ff665a52ff665a51ff61574eff645951ff5f534aff61554bff63584eff63584dff5e534aff594f46ff574d43ff5b4f47ff63574fff594f47ff4a423bff423d36ff61574eff5c5249ff5d534cff5a5149ff554b41ff5a4f45ff594f45ff594e44ff5b5046ff5d534aff594f46ff574d44ff544941ff564c44ff51483fff51483fff5a4f46ff584d44ff584c44ff574e44ff5a5046ff594e46ff534a40ff7b6522ff7c6518ff7c671bff594e46ff5b5048ff42382dff51463aff53493eff594e41ff564c40ff594f43ff5c5346ff5a5145ff534a3fff50483eff4a4238ff4f473cff4f463cff4f463cff4e453bff52483dff584f43ff584e43ff53493eff4c4338ff4d4439ff4e4439ff4b4237ff494036ff4b4238ff4a4137ff4d453bff4a4137ff4a4137ff453c33ff453c33ff473d34ff453b31ff443a32ff413930ff453c32ff473d33ff443b32ff443b32ff463c34ff41382fff433a31ff443a31ff433a31ff3f362eff3e352dff40382fff3d342cff3c342bff3e352dff3e352cff41382eff3c342bff3c342bff40392fff3f362dff3e362d7e24262697595c617036403e62303b3961343f3e52495154473e49484839484655434f4f8aa8a8b27a3b3d414f283231965a5b627a575c5f623f48485f454d4e5a414c4b58364241633b4645623a4643693d49486b3e4a496b3f4949693e4a4a6e3f4a4a6f404a4a703d4a496f3e4a496a3b4747613e49485f3f4b4c703f4d4c67404b4b6b3e4a49693f4a4a6c3d48476c3b48465c3a464564384643613945435f313d3b5e2b39344d262e2d6c696f727142494968313c3b67303c3b67313b3a563940416e373b3e5f2a3131a3595c66911d1e1bff251e17ff261f18ff251e18ff271f18ff261f18ff272019ff28211aff2a221bff28211aff29211bff2d241dff2a221bff2b231cff2c241cff2c241dff29221bff29221bff2c251eff2c241dff2b241dff2d251eff352c24ff453a31ff41372eff423930ff483e34ff483e34ff443b31ff463c32ff483f34ff4a4035ff483e34ff4a4037ff4b4138ff4b4137ff483f34ff4d4339ff4b4137ff4a4137ff4e4439ff50453bff4c4338ff51493dff50473dff544a3fff544a3dff50463aff52483dff564d41ff52483dff4c4237ff53483dff504539ff494038ff453c34ff6d5815ff705a15ff473f37ff494037ff4a3f37ff494037ff493f36ff4c423aff50463dff463d37ff3f3831ff403a33ff4f463fff4e443dff534940ff4f453cff51473dff4f443bff53483fff51473dff564c42ff594d43ff4f453dff4b4138ff4f453cff4a3f38ff4c433aff50463eff53483fff544941ff50453dff544a41ff52483fff574d43ff5c5046ff594d43ff594d42ff5d5147ff584e45ff5c5248ff594e46ff5d5148ff594e45ff5d5147ff5e534aff665a51ff6d6057ff635850ff645950ff60554cff665a50ff65594fff6b5e54ff62564dff5b5148ff564c43ff5c5149ff564d44ff544d43ff504740ff4b443dff4c443dff655a51ff61564dff60554cff5f554bff60544aff584d45ff594e44ff60544bff5e5349ff61554bff594f46ff574d44ff5f5348ff594e46ff5a5046ff564c43ff5e524aff574d44ff564b43ff544a42ff594e45ff52493fff544940ff5f523eff7b681cff816c1dff574c43ff554a43ff4f4539ff493f33ff564a3dff5a4f43ff574e43ff564d42ff574e43ff574f44ff564c40ff534a3eff52493fff51473dff50473dff4b4239ff554d43ff544b40ff50473bff564d43ff51473cff50473cff4c4237ff50463aff4b4238ff4f463bff4f453bff4d4439ff4b4238ff483f35ff4a4137ff483e35ff494036ff483f36ff463e34ff453b31ff41382eff41382fff43392eff443b32ff453c33ff493f36ff463c32ff40372eff42382fff453b32ff473d33ff40372fff3f352dff423930ff40372fff3b332bff41382fff3d352cff3c342bff3e352dff40372cff41392fff433a30ff3d352c7b242726814b54555f353d3e5e303b39633943424c434d4d48414b4b4b41524d4c414c4c90a4a6ad5f34343868383c3f7d494d507c52595b5c3d48453c35403f563d49475435443e59384443573744415e3a4545613c4947683f4a496b3f4b49693c4a496e3e4a4a693948486b3b48476d3f4a4a663c4947633e4a49643e49486c3d4949633e4a496b424d50663a4745673b48465c3c4846603a48455d3644405b333d3d7f434b487f474c4f6e5c6265884e575c60313f3a62303d3866323c3b945a5f637a3a4042723d43458c40454b92232120ff272019ff261f18ff261f18ff272019ff251e17ff231d16ff251f18ff2a211aff2b231cff2a221bff2c231cff2a221bff2a221bff2c231bff2f271fff2f271fff2b241cff2b241dff2d261fff2f2720ff2c241dff332a22ff433a30ff433a30ff453b31ff493e33ff483e34ff4a3f35ff473e33ff4b4337ff483e33ff494135ff473e35ff484036ff4f453bff494036ff4d4339ff4f4439ff4a4036ff4d4339ff493f35ff4a4237ff4b4338ff4e453aff554b40ff544a3eff52483cff52483cff544a3dff564c41ff4f453bff4a4136ff443b30ff4d443aff494039ff6a5618ff644e0eff6f5a15ff4b4137ff4b4239ff473e36ff4e4339ff463d35ff413931ff453d35ff403832ff38342eff544b41ff524940ff554b42ff554b43ff4d433aff4a4037ff4f453bff594c42ff594d43ff574c42ff554b41ff51473eff50453dff584d43ff51473eff53483fff52483fff53473fff544940ff594e44ff5b4f45ff60564aff4f443cff594e43ff5e5347ff564c41ff60554aff594e44ff5b5148ff5c5147ff564c41ff5c5147ffada19afc72665dca4b4039d6302721eb1b1410fa140f0bfa150f0bdd4a3a2eb868594bf9a19b95ff928d8bff75716dff56514dff373431ff201c1bff1c1917ff1a1716ff191714ff191614ff191714ff181513ff191614ff181614ff171412ff161412ff171412ff171512ff171513ff161411ff151311ff161411ff141310ff141110ff141210ff13110fff12100eff110f0eff110f0d420e0c0a2d100d0a6313100d4e13100d5515120f4415120fc3211c18ff25201bff251f1aff25201cff29241eff2f2822ff9f9893ffa09c95ffa7a19cffaba5a0ffa19c96ffa9a49fffa9a5a0ff827f7aff4a4642ff524c487e47413d691c1915591d19156e1b1814711c19151515120f5a1c18154e1d1815541d1915621d1a16221714105a1b1714541e1a165a201b17571f1b16181a1712561a171372241f1a76241f1a4d201b16201915111b0e0c09ff1f1c19881613102616130f6c1f1b16501c1814591d1814451c17131d171310411c1813571f1b16581f1b166d201c171f1a16122114120f631f1b166a211d186f221e19581c19152c191612541e1a1667201c1761201b165f201b16211c17126c231e195b211c1775201c186b1e1b17151916115b221e1951201b17551f1b17571d19151d15120e5c1d1915551e19155b201b1659201b171a171411501a171373221e1977241f1ae0302a24ff3c3630ff3a332eff3c3530ff3a332eff37302a53211c175f251e194a231d181d1c181348221d1855241e1a5d25201b7727221c161d1915291916126b241f1b7025201b7125201b52211c18351917125e231e1a6e26211d6125201b41231f1a221d19146b27221d5c26201b7a25211c7123201c151b18136526221d4d231f1b50231f1b58221d191d1a15126e201d1952221d1950241f1a4f241f1b171a17135a1f1c17752a241f7c2a251f4f27211c1d1d19151512100dd9161412ff231f1c481916132b1714115d221e1a4f201c1859231e194825201b1d1b17135425211c56231f1a5823201b7228231d231d191542221e1969241f1c7227221e6a25211d311a1713581f1d195e211d195e211d19ff5b534dff3c3733ff4a4744ffa09c99ff9d9793ff98948eff918c88ff8d8885ff89847fff817c78ff686461ff67605aff48423cff3c352fff3a332dff3a332d481e1a161716130f6e211d1977241f1b73221e19481c181515120f0d24110f0cff161311ff191613ff141310ff151311ff151411ff161411ff161411ff161412ff171513ff191614ff1b1816ff1a1714ff181513ff181513ff191614ff1b1917ff1b1916ff1c1917ff1d1a18ff1c1917ff1e1b18ff1e1b18ff1e1b19ff1f1c19ff201e1bff252320ff35322fed44403ba1706d67c36f6b64735650498c5c564db4615950a1544d448b4c443bbe544b42bf675e556c70665d9680786effd8d1ccfea39991d4665c54d1443b34ee2d251eff1a1310ff120e0aff15100bcd4a3b2fce69594cfd999590ff898482ff65615cff494541ff282523ff1d1b18ff1c1917ff1a1816ff1a1815ff191714ff1a1815ff191614ff191714ff171513ff171413ff171513ff181614ff171512ff171512ff161411ff151312ff151210ff141210ff151210ff141210ff13120fff12100eff12110fff13110eff171411ff181512ff1a1613ff1a1612ff1b1714ff1d1915ff261f1aff28211cff28211cff2c241fff2f2822ff635d56ff9e9992ffa29d97ffa59f9bffa29b94ffa7a19dff787470ff4b4643ff716d69ff312d2aff857a75ff231f1bff2f2824ff312a24ff2d2621ff2f2924ff2f2924ff372f28ff2d2721ff28221eff2a2420ff29231fff29231fff241f1bff231e1aff231f1bff2f2924ff302923ff251f1bff26211cff2d2721ff393028ff1c1815ff171412ff372f27ff302922ff2e2621ff2d2620ff2e2721ff2d2722ff2e2722ff2f2823ff312a24ff332b25ff332c26ff342d26ff393229ff3b342cff3f372eff423930ff413830ff423930ff423930ff433930ff473d34ff483f36ff483d35ff473b34ff453b33ff483e35ff463d34ff443c34ff433b33ff483e36ff463c33ff4a3f36ff473c34ff413830ff3c332cff383029ff383029ff3a322aff3b322aff3f362eff37302aff3b3430ff39312cff39312cff38312bff362e29ff382f29ff362e28ff362e27ff372e27ff362d26ff342d26ff352d25ff342d25ff332c24ff362f27ff352d26ff332b25ff332c25ff332c25ff352d26ff332c26ff39312bff3a322bff3b332dff3a322bff3a322bff3e362fff423932ff423931ff423931ff423932ff413931ff3e362eff3f3730ff3d352eff3e372fff453c34ff463d35ff483e37ff483e36ff433a31ff483e36ff443b33ff483f37ff453d34ff484139ff1d1a18ff322c28ff433b33ff403932ff3c352eff3f3730ff403830ff3c352eff38312bff37302bff3b332eff433b33ff433b34ff423a32ff413932ff3d352fff413a32ff453c34ff403a32ff3c342fff38302aff3c352eff5b544eff2e2b28ff908b88ff59514cff9f9a96ff97918cff8f8a86ff8d8783ff8b8680ff6c6764ff66615cff564e48ff3c342fff3a322dff3b332dff332d27ff342d27ff332d27ff2a2520ff26211dff201c18ff26211cff322c26ff161412ff191614ff141210ff151211ff151311ff171412ff161311ff171412ff171412ff181513ff181613ff191614ff181513ff1a1714ff181513ff1d1a17ff1d1917ff1d1a17ff1c1917ff1e1b19ff1e1b19ff1d1a18ff1f1c1aff1e1b19ff201d1aff23201dff302d29f53d3936c874706ad2746e65a4625b537b544e476e514b427d534a42754941388349413ac6685f557d6e655c807a736aa08b857cffcac3c0ffd3cbc5fea59c92dc625a52fc453d35f229211cff15100cfa110d0aff140f0cd446382dc8615146ff908c88ff797470ff56534eff363330ff21201eff1d1a18ff1a1816ff1a1715ff1a1816ff191613ff1a1714ff191614ff181513ff181614ff181513ff171513ff181513ff181614ff171412ff151311ff161412ff14110fff141110ff141210ff13110fff12100eff120f0dff12100fff191512ff1a1613ff1b1713ff1b1713ff1b1714ff1d1915ff1e1a16ff261f1aff28221dff2a2420ff302a25ff322b26ffaca6a1ff9e9892ffa29c97ffa59f9bffa59f99ff55514dff211d1aff373330ff4f4a48ff4b4441ff847a74ff2a241fff28221dff29231dff2a241fff2e2823ff302923ff2e2722ff2d2722ff2b2520ff26201cff2a241fff2a231fff2a241fff27211dff26201cff28221eff29231eff29231fff2b2520ff322a24ff2c2620ff1e1916ff2d2520ff312923ff332c25ff302822ff302923ff2e2721ff302822ff342b25ff352d26ff372f29ff372f29ff383029ff383129ff383129ff39312aff39312aff39312aff3a332bff3d352dff3f362eff40372fff443a32ff423930ff433830ff443a32ff453c34ff413932ff423b33ff453d35ff463c34ff443a32ff473c33ff473c34ff3d342cff382f28ff352d26ff342c26ff372f28ff372f28ff3e352dff38302aff37302aff39322cff39322cff39312bff362e29ff352c26ff352d26ff352d26ff342c26ff362d26ff352e26ff362e27ff352e26ff373027ff362e26ff383029ff372f28ff382f29ff373029ff382f29ff372f28ff3b332dff3c342dff3b332dff3d352eff413830ff433a32ff443c34ff403830ff3d352eff423a32ff413932ff413931ff413931ff423a32ff3e362fff413931ff3e362fff3a322cff39312bff352e28ff372f29ff36302aff342e28ff342e28ff3b352fff211d1aff352f29ff3e3630ff403831ff3d352eff342e27ff352e28ff37312bff37302aff38312bff39312bff38312bff38302aff39322bff39322cff38322aff363029ff35302aff37312bff3a332dff312b26ff655e56ff3f3b35ff55514dff423c36ff3d3731ff66615cff9a9590ff8d8886ff8b8682ff85817cff716b67ff5b544dff443d37ff39322bff3b332dff3c342eff2e2823ff2a2520ff241f1bff201c18ff25201cff25201cff26211dff282420ff1b1916ff131110ff151210ff161412ff161311ff161411ff161411ff151311ff171413ff171513ff181614ff181514ff191714ff1b1816ff1a1715ff1b1916ff1a1715ff1d1a17ff1f1b19ff1f1c19ff1b1916ff201c1bff201d1bff211e1bff201e1bff282522ff34312dd777726cc96f6962e46d675da85b544d83534d4597534b43453e362f74473f37e6685f558870675db9847c729388837c754d4a44ffcec8c5ffd2cbc5ffd0cbc3fe9f988dff675e56e73d362ffd261f1afa120d0afc120d0aeb110d0aa83c3027a157493fff847f7dff6a6561ff46423fff292725ff1d1b19ff1c1917ff191715ff181714ff191614ff171513ff181513ff181513ff181513ff171513ff181513ff171412ff171512ff161412ff151210ff161311ff151210ff151211ff151311ff141110ff14110fff13100eff12100eff110f0dff110e0cff100e0cff110e0cff120f0dff120f0dff14110eff1e1916ff28231eff28231eff2b2621ff2f2b26ff332c26ff9b948eff9e9a95ff9f9a95ffa6a09bff25211cff2e2823ff2d2722ff6c6764ff312d2bff7c726dff181411ff181512ff1a1714ff1a1714ff181412ff181512ff1a1613ff1a1613ff1a1613ff1a1714ff181411ff191613ff1b1715ff1e1a16ff1b1814ff1a1613ff181412ff1a1613ff1a1613ff1a1613ff1a1613ff1c1714ff1b1613ff1b1713ff211c18ff1f1916ff1e1a16ff1d1915ff1e1815ff1d1915ff1f1a16ff201c18ff201c18ff201b18ff201b17ff211c18ff201c17ff1e1a15ff1f1b17ff1f1c17ff221e19ff221d1aff231e19ff241f1aff25201bff231e19ff231d19ff241e1aff221e1aff211c18ff1f1b17ff231e1aff241f1aff241f1aff25201cff231e1aff241e1aff241f1aff221d19ff231e1aff25201bff27221dff302822ff39312aff3a322dff3a322cff38302aff383028ff1d1916ff1b1714ff1d1815ff1c1815ff1d1815ff1e1a16ff1e1a16ff1f1a16ff1d1a16ff1f1a17ff1f1a17ff1f1a17ff1e1a16ff1f1b17ff1e1916ff1f1a17ff1f1b17ff201c18ff231e1bff241f1bff25201cff27221dff27221dff231d18ff211d18ff28231eff292420ff29231fff27221eff26221dff28231eff25201bff221d1aff231f1aff231e1aff1f1b17ff211d19ff211e1aff231f1bff221f1bff231f1bff221f1cff221f1bff28231eff24201bff211d18ff1f1a16ff1f1b17ff211c19ff1e1a16ff1d1916ff201b18ff1e1b17ff1f1c18ff1f1a17ff1f1a16ff1e1915ff211d19ff201d1aff221d1aff231f1bff1e1b17ff615b54ff2f2c29ff8b8783ff3e3731ff3c352fff69645eff96928dff8f8b86ff898580ff716c68ff635c57ff504841ff3a332dff37302aff3b342dff1c1815ff1b1815ff1a1714ff181512ff1a1713ff1b1714ff191714ff191613ff191613ff12100fff13110fff151311ff151311ff161311ff161311ff161311ff181513ff181513ff171413ff171513ff191715ff191714ff181614ff1b1916ff1a1715ff1c1816ff1d1a18ff1c1917ff1d1b18ff1f1c1aff1f1c1aff231f1dff1e1b19ff25211eff2e2a27e176716bd2706961c3675f56dd635b5381554c42ac564d44b653493f9d4d443aba60574dc9786e65e08e867cb6908a829b615d57a3635a4eff88827dfed6cfc9f6dcd7cfffcecac0ff938e85e55a524bfa3c342dc8201a16eb120d0af2110c0998100c0977342a23ad57493fff7a7470ff595552ff33302eff23211fff1b1917ff1a1815ff191614ff1a1815ff1a1815ff191714ff181514ff191614ff171513ff171513ff171513ff191613ff171412ff151311ff161411ff171412ff141210ff151210ff151210ff13110fff12100eff110f0dff13110fff161311ff171411ff171411ff181512ff191613ff191512ff181512ff25201bff29231eff292520ff27231eff2e2a25ff67615bffa7a29cffa09b97ffa69f9aff35322eff3e3830ff403932ff403831ff595351ff433e3aff7e746fff211c19ff221d19ff211c19ff25201cff28231fff27221eff25201bff25211bff24201bff241f1bff241f1bff27221dff27211dff26201cff25201bff26211cff25201cff27211dff26211dff27221eff1f1b17ff231e1aff26211cff27221dff26211dff27211dff27221eff25201cff26211dff26221dff27221dff2a241fff28231eff28231eff28231fff28231eff29231eff29231fff2b2520ff2a2521ff2e2823ff2d2722ff2c2721ff2d2722ff2e2722ff2e2823ff2c2621ff2d2822ff2b2520ff2b2621ff2e2722ff2d2722ff2c2621ff2e2823ff2f2924ff2f2924ff322b25ff322b25ff302922ff322b24ff342e26ff302822ff382f29ff362f2aff39312bff3b322bff393129ff37302aff352e28ff352e28ff352e29ff352e29ff362f29ff39312cff3a332dff3a332dff3a332dff38322cff37312aff37322bff37322cff362f2aff36302bff352f2aff362f2aff38312cff39322dff39322dff37302bff37302bff342e28ff332c27ff352e29ff372f2aff352f29ff352f29ff39322dff342f29ff332d27ff332e29ff352e28ff352d28ff342e28ff332c27ff332c27ff302924ff2d2621ff28231fff2f2b26ff2e2823ff2d2722ff2d2721ff2b2520ff2b241fff2c2621ff2b251fff2b261fff2c2620ff2d2721ff28221dff29221dff29231eff27211dff26211cff27221eff28231fff28221eff28231eff6a655fff3e3a36ff5d5853ff443c36ff483f38ff463e38ff5e5955ff928e89ff8e8a85ff86817dff6e6661ff574f49ff3d3630ff39302aff3a312cff322c27ff201b18ff1e1b17ff1d1a16ff1d1916ff1c1816ff1c1816ff1b1815ff1b1815ff171411ff13110fff13110fff161412ff171411ff161411ff171411ff171513ff171413ff171513ff171614ff171514ff191715ff191715ff191716ff1b1816ff1b1816ff1c1816ff1e1b18ff1c1a18ff1d1b18ff221f1cff221f1dff23201dff221f1cff282521ce706b65c06b665fb5615951c4625a51a45a5147bd584d43964a413868413931cb5e564cd0746c62c3857d75c4958f88975e59539162574db7b9b3aae13e3024f479736df2c6c1bcffdedcd1ffc5c3baff928b82ff575048df352e28cb1e1814e9110c0ada100c09d0120e0b572e241f97504238ff696462ff43403dff282624ff1f1d1aff1a1816ff191615ff181614ff1a1714ff1a1815ff191614ff191614ff181514ff1a1715ff181513ff171412ff181513ff141210ff141211ff171411ff161411ff151210ff151310ff151210ff14120fff12100eff13110eff14110fff13110eff13110eff161210ff161210ff14110fff151210ff151210ff231e19ff231f1aff221e1aff26211dff29231fffa29c96ffa7a5a2ff9f9a96ff54504cff4b4239ff4b4239ff483f36ff867e7dff363230ff7a6f6bff3f3834ff221d19ff201c18ff231d19ff231e1aff28231eff27211cff27221dff231e1aff241f1aff221d19ff241f1aff25201bff251f1aff251f1bff241f1bff231f1cff26201cff231e1aff29231eff181512ff25201bff2a231dff2a241fff28231eff29231eff2b251fff28221dff29231eff29231eff27211cff2b251fff28231eff28221dff26221eff27221dff2b2521ff28231eff29241fff2b2620ff2c2721ff2f2a24ff2c2620ff2b2520ff2e2721ff2c2621ff2e2822ff2e2822ff262320ff2a251fff2e2822ff2f2823ff2c2621ff2c2721ff2d2722ff2c2621ff2d2822ff2c2620ff28221dff2c2620ff2c2520ff29231dff342c26ff372f2aff38312bff3a312bff3c322bff2c2620ff2a231eff2b2520ff2d2621ff2e2723ff302924ff2f2823ff322b26ff342e29ff2f2a24ff312a25ff2f2924ff312b25ff2f2924ff302a25ff2f2924ff2c2722ff2d2621ff2f2923ff2f2924ff2f2924ff2f2924ff2f2824ff2e2822ff2a241fff2b2520ff2b2620ff2f2923ff2b2621ff302a25ff2b2520ff2b2621ff2e2924ff2f2823ff2b241fff2c2620ff2c2520ff2c2621ff2a241fff25201bff1b1916ff282320ff231f1bff25201cff25211cff241e19ff241e19ff26201cff241f1bff231e1aff241f1aff25211cff231f1aff25201cff251f1cff251f1bff241f1bff221e1aff251f1cff221d1aff221e1aff625c57ff2f2d29ffa19d99ff4c423bff484039ff443c35ff5a5653ff918e88ff928d89ff7b7570ff645c55ff4a413bff38302bff39302bff3b332dff1a1714ff191613ff181512ff191613ff191613ff181512ff191614ff191614ff141210ff1a1613ff13110fff141210ff161411ff171512ff161411ff181614ff181614ff171513ff181614ff181514ff1a1715ff1a1815ff1a1716ff1b1917ff1b1816ff1b1816ff1d1a17ff1c1917ff1d1a17ff1e1c19ff23201eff211e1cff1e1c19ff221f1dbf69645ec169645da85f5850c860584fc45a5148a3544a40af4d443977433a308351483fce72695e75736c63bf8d8881d55a5650fe897b6db1b8b4abc8b2aca2ffe3dbd5dc3e3125da817b74ffd4d1c7adb0aba0ffcac8c0fe7f7971ff564e46dc312b25ae1b1612ba0f0b08f1110d0af4120d0a29281f1a964a3e35ff534f4cff363431ff22201eff1e1a17ff1b1815ff191614ff191614ff191714ff1a1715ff191614ff191614ff181613ff171513ff181512ff171412ff161412ff151311ff161411ff171412ff151210ff161411ff15120fff14120fff12100eff12100eff13100eeffffff1effffff1effffff2effffff2effffff2effffff3effffff3fe2f2b27ff221c18ff211d18ff221e19ff26211cff292420ffa19b95ffa4a29ff6e0ded7effffff6ff433a31ff413830ff89817dff625d5aff3f3b37ffa79b93effffff7effffff7effffff7effffff8effffff8effffff8effffff8effffff8effffff8effffff7effffff7effffff7effffff7effffff7effffff7effffff7effffff7effffff7effffff7ff181513ff13100eeffffff8effffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff8effffff8effffff8effffff8effffff9effffff9effffff9effffff9effffff9effffffaeffffffafc4f4b46ff332c26ff352f29ff37322cff3a322cff39302aeffffffbeffffffceffffffceffffffdeffffffeefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffff1d1a17f3cccbcaefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffffeff7d7870ff383431ff615e5aff8b8581ff4b413aff4b433ceffffffcff989590ff928e89ff8d8882ff7a706aff584d48ff38302bff362e29ff38302beffffffaeffffffaeffffffaeffffffaeffffff9effffff9effffff8effffff8effffff8ff141311ff181512ff13110fff151311ff161412ff171512ff171512ff1a1614ff181614ff171413ff181513ff181614ff1b1816ff1b1816ff1c1a18ff1b1816ff1d1a17ff1c1917ff1e1c18ff1e1b19ff1d1b17ff211f1bff201d1bff221f1cff1f1c1ab45e5b56c165605abc635c54d85f5850c0585046a950483fcb564b3f84443a30934f453ba061584e66676058b288817abe635f58be756b5ec3b9b4afabaea89fb6a7a299fff3ebe7f1d7cec6cd3a2f24ee868279edc5c4bcf4c2c0b6f7aba8a0f977726afa4d463fe8302924e71c1612f8110d0aff110d0ad0110d0922261e1a7441362eff423f3cff2b2927ff1f1d1aff1c1a18ff1a1715ff191613ff191715ff1a1815ff191614ff191614ff181513ff181513ff191613ff181514ff171412ff151311ff161411ff171512ff151310ff151210ff151210ff13110fff13100eff14110fff151310effffff1effffff2effffff2effffff2effffff3effffff4effffff4effffff3ff201c18ff1f1b17ff211c18ff231f1bff27221effaca5a0ffa29c98ffb7b3b0effffff6ff3d332bff383028ff393029ff908987ff403c39ff736964effffff8effffff8effffff8effffff8effffff8effffff8effffff9effffff9effffff9effffff8effffff7effffff7effffff7effffff7effffff7effffff7effffff7effffff7effffff7ff171412ff120f0deffffff8effffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff8effffff8effffff8effffff9effffff9effffff9effffff9effffff9effffffaeffffffafc504b46ff352e28ff352f2aff36312cff3e352fff372f28effffffbeffffffceffffffdeffffffeeffffffeefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffff1e1a17f3cccbcaefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffffff0fafaf8ff5e5953ff2f2c29ffa6a3a0ff473d35ff463e38ff48403beffffffdff969390ff938e89ff928782ff6b615aff423933ff362e2aff3a312cfc625b56effffffbeffffffaeffffffaeffffffaeffffff9effffff9effffff9effffff8effffff8ff131210ff171411ff141210ff151311ff171512ff181513ff181512ff181613ff1b1816ff171412ff191614ff1c1917ff1a1715ff1b1816ff1d1a18ff1d1916ff1c1917ff1c1917ff1c1a17ff1c1917ff1e1b18ff211e1bff221f1dff201d1ab0494540c25d5954a15a554ec45c554dea5e564c994a443bcd53493fcf4d443a994c433a9c5c5349926e665dd18d857ddb66625bee71675c89a8a49faaafaaa2bda8a399e3a7a29cfff7efedfff5eee8f5d1cbc1fb3d2f24f337342effc9c8bff7bfbdb4d09a978fbe6a655dd0453e37e72e27228517110efd110c0afa110d0a5e15100d38261f1ab9413932ff35322fff25211fff1d1b18ff1b1816ff191715ff191615ff1a1715ff171513ff191614ff181613ff171512ff171513ff171413ff161412ff161412ff161311ff171411ff171412ff151311ff151210ff161311ff13110fff14110fff151210effffff2effffff2effffff2effffff3effffff3effffff4effffff3effffff3f2d7d6cdff1e1a16ff201b17ff221d19ff25201cff292420ffa49e9affa7a29deffffff6ff3b322aff312922ff302922ffada5a2ff706966ff3a3431ffa2978deffffff8effffff8effffff8effffff8effffff8effffff8effffff8effffff8effffff8effffff8effffff8effffff7effffff7effffff7effffff7effffff7effffff7effffff7ff171311ff110f0deffffff9effffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff8effffff8effffff8effffff9effffff9effffff9effffff9effffff9effffffaeffffffafc504b47ff352e28ff36302bff39332eff39312bff322b25effffffbeffffffceffffffdeffffffeeffffffeefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffff1f1a17f3cccbcaefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffffeeffffffeff7b756fff36322eff6e6965ffaeaca8ff473d35ff453c37ff4a423beffffffdff969491ff867e7aff7b6f6aff544943ff39312cff362e2aff332c27effffffbeffffffbeffffffbeffffffaeffffffaeffffffaeffffff9effffff9effffff8effffff8ff141210ff171411ff141210ff151310ff171512ff181613ff171512ff1a1715ff181613ff181613ff191714ff1a1816ff181613ff1b1716ff1d1a17ff1b1816ff1c1a17ff1f1c19ff1e1b18ff1e1c19ff211e1bff211f1cff211e1c6a3c3732be58544fd65c5751bc59534cd2565149a64e483edb514940da4c443a914b433adf61574ea46f655ad88b847bd6524d47c26e645bacb1aba88aa19c96f2b6b0a8e1a6a19ad3999490ddd1c9c6eeddd5d2f9d6cfc8fecdc7befb312b25f5302c26ffc3bfb6fdb2b0a7dd97958cad615c55c5413933b027211c7b14100dff110c09bb100c094a15100c3c241d189d372e29ff282422ff211d1aff1c1a17ff1b1916ff191715ff1a1815ff181614ff191614ff181513ff181513ff171512ff181513ff171412ff151311ff161411ff161412ff161412ff171412ff161311ff141210ff141110ff14110fff161411effffff2effffff2effffff2effffff3effffff3effffff4effffff3effffff3effffff4fd44403aff1f1a16ff221d19ff24201bff27221eff57514dff9c9893f0f8f8eff3d4d2caff2e261fff2e261fffb4adaaff9f9794ff48413eff5f5651effffff9effffff9effffff9effffff9effffff9effffff8effffff8effffff8effffff8effffff8effffff8effffff8effffff7effffff7effffff7effffff7effffff7effffff7ff161311ff100e0ceffffff9effffffaeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffff9effffff9effffff8effffff8effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff8effffff8effffff8effffff9effffff9effffff9effffff9effffff9effffffaeffffffafc504b46ff352d28ff352e29ff362f2bff332e27ff302a23effffffceffffffceffffffdeffffffeeffffffeefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffff1e1a17f3cdcccbefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffffeff534f4aff322f2cffb1aba7ffaeaba8ff493e36ff473e36f1ebeae8f2ecece9ff979390ff897e78ff615550ff3c342fff352e29ff312b26effafaf7effffffbeffffffbeffffffbeffffffbeffffffaeffffffaeffffff9effffff9effffff9effffff9ff151311ff191613ff151310ff181513ff181513ff171512ff191614ff191715ff191715ff191614ff1a1815ff1a1816ff191613ff1a1816ff1d1a18ff1c1917ff1e1b18ff1e1b19ff1b1816ff1e1b19ff201e1bff201d1af2221e1cba534e49e358544dc754504ae2565149ad4f4941c64f4740fc51493fab4c443cc1595148ff80766ac8847c72c5504b45af706458ceafaba6c4ada9a28596918afcaea89fce9b9690b493908bcfd1cac9f5d9d3cdd9d4cec8edcec8c2fbcec7c1ef474039a32d271faaa4a297f1aba9a0d8928f878757504a4f332c277b221d1856120e0bbd0f0b09920f0b08bb1a141042231c18b82e2822ff221e1cff1b1815ff1c1a18ff1b1916ff1a1815ff1a1715ff171513ff181614ff181513ff181613ff181513ff161412ff171512ff161412ff161411ff161311ff161412ff161311ff141210ff151311ff141210ff161311effffff2effffff2effffff2effffff3effffff4effffff3effffff3effffff3effffff5effffff5ff1f1a15ff1f1a16ff1f1b17ff221d19ff25201cff98938effaca5a0effffff7ff2e251fff2d251eff3e342dffb0aba6ff7e7873ff292623ffa4978feffffff9effffff9effffff9effffff9effffff9effffff8effffff8effffff9effffff9effffff8effffff8effffff8effffff7effffff7effffff7effffff7effffff7ff171411ff110f0deffffff9effffffaeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffff9effffff9effffff8effffff8effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff8effffff8effffff8effffff9effffff9effffff9effffff9effffffaeffffffaeffffffaeffffffaff332c26ff352f2aff332d29ff342e28fa716c67effffffceffffffdeffffffdeffffffeeffffffeefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffff1e1b18f3cdcccbefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffffffd88827dff2d2b28ff78726dffb8b2acff4e4137ff4f4238ff4e4238f0f1f0edff9c9895ff837973ff6f645eff49403aff352d29ff332c28ff322c29effffffceffffffbeffffffbeffffffbeffffffbeffffffaeffffffaeffffff9effffff9effffff9effffff9ff151411ff181512ff151310ff181512ff181513ff181614ff191715ff1a1715ff191614ff1a1715ff1a1815ff1a1816ff1b1714ff1b1916ff1d1a17ff201d1aff1d1a18ff1e1b18ff1a1816ff1d1b18ff201d1ad524211da249453fca504c45e6534f48c3514c44a84b463f9446413afc554e45c649443b9c504a42fb6e655afc837c71cc635c55b8665b51d8aca8a3f0b0aca6c8a4a09aa3938e88d69a958fd99d9a95bd979692a7c1b6b76eafa6a6c8cac4bfa9bdb8b3ffd5cfc9facbc4bdeb443e369f322b239a9b998ed8a1a098c987847c684f4942e23b342eb6221c18f115100df6100c09a10f0b08cc18130f54211b17b328221dff1f1c1aff1d1a18ff1c1917ff1b1916ff1b1815ff1a1916ff181614ff181513ff181513ff171512ff181513ff181513ff171412ff171412ff171412ff181512ff161311ff151210ff141210ff141210ff171512effffff2effffff2effffff2effffff3effffff3effffff3effffff4effffff5effffff5effffff5f0f1f1e7ff211b16ff1f1a16ff1e1a16ff241f1aff2b2520ffa7a29ceffffff7ff30271fff2a211aff3e362effb8b4aeffa9a29fff4c4743ff5a534df6e0ddd5effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff7effffff7effffff7effffff7effffff7ff161411ff13100eeffffff9effffffaeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffff9effffff9effffff8effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff8effffff8effffff9effffff9effffff9effffffaeffffffaeffffffaeffffffaeffffffaff342d27ff332d28ff322d28ff342e28fa726d69effffffceffffffdeffffffeeffffffeeffffffeefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffff1e1a17f3cdcbcaefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffffff4dad8d7ff56514dff35322fffb8b4afffb5ada8ff473930ff483b30ff493c32effffffeff94908cff82766fff574c47ff362f2aff352e2aff322c29effffffceffffffceffffffbeffffffbeffffffbeffffffbeffffffaeffffffaeffffff9effffff9effffff9effffff9ff141311ff1a1614ff151310ff171512ff181613ff181614ff191714ff1b1816ff1b1816ff1a1715ff191715ff1b1816ff1a1715ff1b1816ff1d1a17ff1e1b19ff1d1a18ff1e1b19ff1e1b18ff201e1ac4231f1c7e3c3832c94b463fb549443ecd4c4841ef534c45aa46423bf7514a42b848423bbd4e4840b15c554de47770679e534e46a260554c8e9f9a95d6a8a49fd9a7a19dfca9a49d8c84807ac9989590af96948ef3aeaca5ffded5d56baea5a3e7d3cbcaddcac4c097aea9a4f5c7c1be749f9991c32f2923cd373027d2a5a299e89e9d94cd838079cb57514ac1322c27d8201b17d9110d0af5100c09de0f0b09e617120e621d18154e1f1915ff1e1a19ff1e1b18ff1d1a17ff191715ff1a1714ff191614ff191715ff171513ff181513ff161411ff161311ff181513ff161412ff181613ff171512ff171512ff151210ff151311ff151210ff181412effffff2effffff2effffff2effffff3effffff4effffff4effffff4effffff5effffff5effffff5effffff5f78c8a83ff201b17ff201b17ff231e1aff26211cffa9a49dfac7c4beff342c24ff271f18ff3d352effbab4b0ffbbb4b1ff958d89ff2c2825ffa3978feffffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff8effffff8effffff9effffff9effffff7effffff7effffff7effffff7effffff7ff171411ff110f0deffffff9effffffaeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffaeffffffaeffffffbeffffffbeffffffaeffffffaeffffff9effffff9effffff8effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffffaeffffffaeffffffaeffffffaeffffffaff332c26ff342e29ff352f2aff332d28fa726e69effffffceffffffdeffffffeeffffffeefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffff1f1b18f3cccbc9efffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffff746f6bff2c2a27ff7e7a74ffb9b3afffb5afaaff40342cff40342cff40352cfda7a4a1ff8f847fff685c57ff403732ff362e2aff322c28f4c0bdbaeffffffceffffffceffffffbeffffffbeffffffbeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaff171512ff181512ff161311ff181513ff171513ff181614ff1a1715ff191715ff1a1816ff1a1715ff1a1815ff1b1816ff1b1815ff1d1a17ff1d1a18ff1d1a18ff1c1917ff1d1b18ff1f1c19ff1f1c197637332daf3f3b35d246423cb0433f38fb4d4740dd49443ef74f4941d947423bba4d474095544e47df6d675e9d322e29af736458959c9690b69e9a9498938f8afea6a09bf29f9a93b2908d87a793918cf2aca9a3f4afafa7ffe2dad7e7cec8c7e0cec7c7fad2ccccfedad3cfe9cdc6c2d2b6afabc3aca69dbc3a342de1302a23fba6a59cbf8d8b82f2807d76ff524d46ec2e2925df1d1814d5100c09e20f0b08ca0f0b08d616120e861b1714f71d1a18ff1d1a18ff1f1b19ff1d1a18ff1a1715ff181614ff181513ff191614ff181513ff161411ff181513ff171412ff171513ff171412ff171512ff191614ff161311ff151210ff161311ff181512effffff2effffff2effffff2effffff3effffff4effffff5effffff5effffff5effffff5effffff6effffff6effffff6ff201c18ff221d19ff1f1b17ff251f1bff27221dffaea8a3ff38312bff332d25ff443d37ffb3aea8ffb4afabffb8afabff55504bff504944f3eeebe4effffff9effffff9effffff9effffff9effffff9effffff9effffff8effffff8effffff9effffff9effffff7effffff7effffff7effffff7effffff7ff171411ff12100eeffffff9effffffaeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffaeffffffaeffffffbeffffffbeffffffaeffffffaeffffff9effffff9effffff8effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffffaeffffffaeffffffaeffffffaeffffffaeffffffaff322b26ff342e29ff352f2aff36302cfa726e6beffffffdeffffffeeffffffeeffffffeefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffff1d1a16f3cdcbcaefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffffff3e4e3e2ff55514dff3b3938ffbbb6b1ffb8b3aeffaca9a4ff403730ff3f372fff413831ff807876ff766b65ff4e443eff352e29ff342e2afe433d3aeffffffceffffffceffffffceffffffbeffffffbeffffffbeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaff1a1714ff191613ff151210ff171512ff171513ff171413ff1a1715ff171513ff1a1715ff181614ff1a1815ff1a1715ff1a1714ff1c1916ff1d1a18ff1b1916ff1d1a18ff1e1b19ff1e1b186e35312bc83d3833db433e37b13e3a34bd423d37f448423cc3454039c1423d37b149433da04f4a43d7635d557d292621cf39332d8399938cb59a958e95938c87de98928bd4948f8af99e9b9698898582988e8c86daa4a39dffc8c1bbefd6cbc8e5c6bebee5ccc4c5f9d0c9c9f6ccc7c6ffd8d2cffbc6bebb979c9691cda69f98e2413a33dc322a22a789887fad7f7e76df6e6c65f245413bf1292420a3171310cb0f0b09e90f0b09cd100c09e0191411731c1814ec1e1b19ff1c1a18ff1b1816ff1c1917ff171513ff181613ff171412ff171512ff171412ff1a1614ff171412ff161412ff181513ff171412ff171412ff151310ff161311ff141210ff191512effffff2effffff2effffff2effffff4effffff5effffff5effffff5effffff5effffff6effffff6effffff6effffff7effffff7ff1f1b17ff1f1b18ff211d19ff221d1aff332e2aff88847eff3b3731ff4a4540ffafaba4ffaea8a4ffbfb8b3ff98928eff312c29ff9d8f86effffffaeffffffaeffffff9effffff9effffff9effffff9effffff8effffff8effffff8effffff9effffff7effffff7effffff7effffff7effffff7ff161311ff11100deffffff9effffffaeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffaeffffffaeffffffbeffffffbeffffffbeffffffaeffffffaeffffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffffaeffffffaeffffffbeffffffaeffffffaeffffffaeffffff9ff362f29ff37302bff38312dff36302bfa6e6a66effffffdeffffffeeffffffeeffffffeefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffff1e1b17f3cdcbcaefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffff7b7571ff2b2927ff8c8884ffbab6b2ffb3b0adffaeaaa7ff3e3834ff3d3833ff898580ff847d77ff5c524cff362e29ff312a26ff2e2824effffffdeffffffceffffffceffffffceffffffceffffffbeffffffbeffffffbeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaff181613ff191613ff161411ff171512ff161412ff171512ff171412ff161412ff191614ff191614ff191715ff1a1715ff1c1917ff1d1916ff1c1917ff1d1a17ff1c1917ff1e1b195536312be53e3934de403b35d63e3a34b93c3831eb453f38e2443e37c33f3a34ab433e38a949453f98534e489639332bba554e46c1a49d96a196908a8e8c847dbd8f8881c08d8883e89e9a95ef9e9b96d195938fdaa1a09bf1c2bcb5f0c5bfb6aaa5988fffe1d7d5eacbc0c1fed2cac9facbc5c2d3bfb8b6c8b7b0acd2afaaa5ecaca7a1dea19c93a22f292294322a23f896948b84706f68d5605d57fc3e3a35f725201cb617130fc8100c09ec110d0af0120d0aa81712104f1e1915ea1e1a18ff1b1816ff1b1916ff191715ff191715ff171513ff171513ff171412ff191613ff191614ff171413ff161412ff171412ff171412ff161310ff171412ff161311ff181512effffff3effffff3effffff3effffff5effffff5effffff6effffff6effffff6effffff6effffff7effffff7effffff7effffff7ff1e1916ff1c1815ff1c1916ff1c1816ff1c1815ffa6a19cffa19a96ffaca7a2ffaca59fffb1aaa5ffb5afabffb8b2adff645d59ff473f39fcc8bcb5effffffaeffffffaeffffffaeffffffaeffffffaeffffff9effffff8effffff8effffff8effffff7effffff7effffff6effffff6effffff6ff171411ff110f0deffffff9effffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffaeffffffbeffffffaeffffffbeffffffbeffffffbeffffffbeffffffbeffffffaeffffffaeffffffaeffffff9effffffaeffffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffffaeffffffaeffffffaeffffffbeffffffbeffffffbeffffffaeffffff9ff3a322cff39322dff37302bff352e2afa6d6965effffffdeffffffdeffffffdeffffffeefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffff1d1916f3cccbcaefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffff4e4a46ff3f3c39ffb9b6b2ffb7b4b0ffb0afadffb0aeaaffb1aca7ffa4a2a0ff89827cff6c655dff3f3832ff2e2823ff2c2722f3cfcecbeffffffdeffffffceffffffceffffffceffffffceffffffbeffffffbeffffffbeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaff181512ff1a1613ff161311ff161411ff171412ff171513ff161311ff161411ff191715ff191613ff1a1715ff1c1917ff1c1917ff1b1816ff1c1917ff1d1a17ff1b191739322e28d63e3933dc413c36e3403b35d03d3933d2403b35d8413c35d03e3a33b53f3b35bb45413bbd504c468f413932873e38329497928a8e8e867fa48a827d807e7772e4948f87b9908c87ec9a9994f9a4a39ebf96958ffeccc5bff6c3bcb5fab4aba19a837266ffcec2b8f8cdc2bfd2beb4b0ffd7cfcdffe1dbd6f6c8c2bee8b8b2adfeb8b2aba4928c86fea5a097ac706c648e2b231de085837a7d605f59e456534de935302cf1221d19f1191410dd110c09fa120e0ae0120d0aa117130f1e1c1713f71d1a18ff1c1917ff1b1816ff181614ff191714ff171513ff171412ff1a1715ff191614ff181613ff171412ff161412ff171511ff171412ff151311ff161311ff191513effffff3effffff3effffff4effffff5effffff6effffff6effffff6effffff6effffff7effffff7effffff7effffff7effffff8effffff7ff1d1815ff1d1915ff1d1916ff1b1714ff1b1714ff9e9893ffaca6a2ffada7a0ffafa9a4ffb2aea9ffb4ada8ffa89e9cff322d29ff8c8177effffffaeffffffaeffffffaeffffffaeffffffaeffffff9effffff8effffff8effffff8effffff7effffff7effffff6effffff6effffff6ff181412ff12100eeffffff9effffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffbeffffffaeffffffbeffffffbeffffffbeffffffbeffffffbeffffffaeffffffaeffffffaeffffffaeffffffaeffffffaeffffff9effffff9effffff9effffff9effffff9effffff9effffff9effffff9effffffaeffffffaeffffffaeffffffbeffffffbeffffffbeffffffbeffffff9ff372f29ff362e28ff322d28ff342d27fa6c6863effffffdeffffffdeffffffdeffffffeefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffff1c1814f3cccbc9efffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffff686360ff272523ff928d88ffb8b4b0ffb4b1adffaeacaaffb2aeabffb2aca9ff92908dff78706aff504942ff2c2622ff2c2622ff292420effffffeeffffffeeffffffdeffffffdeffffffceffffffceffffffceffffffbeffffffbeffffffbeffffffaeffffffaeffffffaeffffffaeffffffaff171412ff191612ff151310ff161411ff151311ff161412ff151310ff171513ff181614ff1a1815ff1b1816ff1c1917ff1c1917ff1d1a17ff1e1b18ff1c19165435312baa3b3631b9403c35df423c36ce3e3a34d1403b35b53e3932ba38342f8636322e8a3e3a348a44413ba33f3730512f2b278f938e8788867e768d8079728e7c746fc38d8881bc8d8883e393928effa4a29df7a4a39fd7b8b3abd9b6aea6bc9f968df29b91847f7030115b692a0d5e672b0e5a672b0d766d31125b682c0f5663270e53682b0e5e6b2e0f636b2f0f63682d0f586a2d0e50672b0d4a65290d4c662b0e4c642a0f57652b0f4e62280f5260270e4d5d250d515e260e485f270d4a5d260e425c260e515d270f5459240f4956230d4e58250f3e54230d3451210c2d4e1e0a3b55240e5958271152592710615c2a125d5c2a114f55240e615c2a12665d2c123f52230d4350210d4552240e55552610565927106a642e14475b281047592710525926103354210c545f2b115f632e135c612c13676630145c632e135c602b124f5b28105a5d281167622e1564602c13675f2a135f5e2a13535b29115d602b1361602b1358602b12525c2711525f2a117e6830175b642e135c693114796e3618876e34195f642e1471652f1660612c137c65301871632e166c652f166f68301770693117726931165a652d1356632c13475e290f6c66321656652f134d642e124b632d1156662f1444622c1153662f135868311558642e135f6530156366301562653015485e2910696d351770713818686e3416656e35156b71371951662f1449632d125c6c3616687037178b773d1b6e6d35166d6b34166b6933158b6f3a1a6d69331563642e145f6731146a6b3515736d3616716b3415676b341458632e11545f2c10575d2c11545a2a115d5a2b11595427105450250e584f240e5250240e4d50240d514f240d454d220d4e4c210d5c4e220f514e220e5251230f454e220e404e220d31471d0b3d4c210d584e2310554f230f645226115e5326104b4e210d635628116c582912424f210c434c1f0c4950220e5851240f5651230f775a2a124b4f220e494e220e534e220f34481d0b585326106056281166562811635729115e5627105c53250f4c4d200d6151230f675426106052240f6852240f5e50230e534e220d5d51230f5851230f5350230e514e210e5251230e6c5627105b54250f5657270f5c54260f7d5728125651240e6d5526115b51230e7656271271552611635525106555251067562610785827115753230e5654240e444f210c6f5728115653250e4651230c4751220c4f53240d4052220c4a56260e4f57260e4e55240e5457260e5758270f5a57270f4050210b5a5c2a0f665e2b10605c29105b5b270f5e5c29114e5827104356250f515f2d10535f2c107564301369612d115e602c0f60602c107a65321464612d11585d290f545d290f58602c0f66622e1066612d1061602b0f5059270d4d55240d4e55250d4b57260e565a280f5759270f4c57260d5758260e4c58250d4b59260e5059280f4256250d4051200c5956240e4d54230e4953220e4350210d3c50200c2f4a1d0b354e1f0c5053230f5255240f5b5726105d58260f4f53220d5a54250e5f53240e414c1f0b3c471b09454a1c0a50481d0b4e471c0b5f6d2f0f546b2d0f5c6b2d0f596b2c0f63703211736e3213656a2e115d6c2e105d6d2f11666b2e1051662b0e53692d0f58692d0f4763280e4563290e5262280e61672d11796b30126f6a2f124d60280e495e260d5e642b114a5f280f435b260e4b5b260f5f5d28105f5a26104d56230d4054220d3b55240d3750200b3751210c4f5726105e5c2a13585828114b57260f5356260f595a28115a5a28104b58270f3b50210c4254250e4453230d495a270f515d291055622d124359270f4c58250f3453210c59602b115a622d115d642e1357612b113b5b280f595d2912555b28115e5e2a135c5f2c135d5f2b13545b2711555f2a12535c2911535c2811585d281267632d14545c271059602b1271642e1558612b1259652e124e642d1256632b1253602a1265642d147f68321871622e155d5d2a1363632e1567662f156b6831175e652e1455632d135a65301561632e147968321752632e135c652f1454642e1356622d123b5e2a112f5a260e55643015445f2b11415e2a1057652f1457642f145d6c3615596d3515596d3515616d3416546931145c6a321448612c125b6f3815626f39165e6b3415696b35165f6632146d68341563653114736b3617856b371872673215686732146d6a35167a6833175c632f126164301362612e124e58281051552710615528106c5a2c13825d2f14765c2e135553260f5652250f6456291152522710484e240e5951250f6b5326126f522611534e220e494d210e464f230e3f481e0c40481f0d584d231068522713605025114e4d220e5e5125105a5225106254261055532610424c200d474f220e4f4f210e4f52240f605426105a562810494f230e534f230f3c4a1f0c5f56281160572911605628115e5628113d4f220d5951230f5b50230f635325115b5326105e542610564f210e5752240f5651240f5550220e5b52230f645626105550210e5a54250f6f582812625525105f5929105055260f5954250f5d55261063562611805b2b156e5526115451230f62572711665827116c592912595626105455250f5858271162562610745a29125256270f635727115253250f5152240e3c50230d2e4e200b4e5527104252230d3c52230c5257270f5457270f5b5e2e1156602d11575e2c105a5b2a104f5a28105359280f4253240e556230115d64311258612d1161622e1158602d10636430125b632d116c6833137867321465622d1258622d1160642f1266612d12515d2a0f5a602c105d5e2b104655250e4854240e5c58270f675e2c1175612e126c612e124d57260e4b57250e5b5b28104c58270f4055240d5b58260f61592510635825104a52210d4451220c3d50210c394d1f0b3b4e1f0b4e52220e625928115754240e4c53230d5452230d5151220d584f210d464e200c3c481c0a3e491d0a46481c0a42461b093c66290c3e62260b4767290c4c672a0c4864290d536b2f0f5b6a2e0f626a2e0f54692c0e666e321053682c0e62682c0f4b63280d4d64290e4c63280d4864290e4161270c5463290f6e672c106a652b114e61290e4e62290f5e632a104e5d270e4259250d495a260e5e5b270f5258250e4857240e3c54220c515b28104154230e4056240e5557250f55582810625c2b126d5e2d13655d2b124b56250f4653240e3f4e1f0c4e5727104e54230e585b2811495a260f4659260e595f2b11545b281044582710655e2b1257602b106c642f135c642e13515d29103d57240d585c29115a5c29114f5d2a114e5b2810565d291160602c14555d2912525c2911545d2911535a27104c5c27104f5e29125b622b1256652e13495f290f52632c114c5d270f59652f14445e291161622d14655e2a135c5c2a12615d2a137066301658622d1455602b124a5f2a1154632c124e602c116868321662642e1358642e12425d29103e5b270f2c59250d154f20092b55240d375c2a103e5e2b10455f2a104d612b115e632d1346622d124c6a32124b6631125967301352632e12435f2c104c6530126268341452602c113f57270e525e2d11535d2d11505b2b105a602f126b6231136b6231135c602e116e653212655f2d116e602e13605a2b114f53260f5451250f5550250f484d220d5351240e775a2c1279592c135b542810585529106155281066542811544f240e4e4f230e71532712564c210e554b200e43471d0b4b4a200d49471e0c3d461e0c564b210f5d4b220f5f4d2410695227116a5327115a50230e4a4a1f0d43471c0b4c4c200d4e4c200d544d200e4d4c200d4e4e220d5553260f5651240f5250240f585023105c54260f615326105b5628105153240e394b200b575125105c50230e4c4e220d544f230d524e220d544e220d5350230f504f220e5350230e504f210d4a52210d4a53230e4950210d5458270f4953230d4d56260d5052220e555829104251230e5453240f5f52230f5353250f4c4f200c6e5929115657270f4f54240f4d54230e4f54240e4d54260f5d5929105f5828105557270f3e4f210c3c4e200c314c1e0a22491d0916461b082f4d200b364f220c4050220c4050220c5853230e414f200b4156260c4859280d5358280e4554240c3d52230c445a290e4f5d2b0f555a280e3855240c4a5c2a0e465a280d4c5e2a0e4d602c0f57612d0f5a612d1056612d0f5e632f0f5b5f2b0f5f602c105b5f2b0f475a270d4d59270e4f57260e4656250d4657250d5d5c2a106d5c2911625a270f4f58270e4c57260e655b2a114c56260e4956250e5658260e4f54230d5353220e4851210d404f1f0b4b51210c394f200c4d54240e5a5525105755250f665827106b5b29106256260f414a1c0a3d471b0a41491c0a4d4c1f0c4e481c0a4e471c0a49461c0a3bb04f1646b8541a3ebb581a3ab6541843b2541a4eb95a1e4fbb5a1c54c15c1f59c55e1f5ac45c2150c0591c5bc55f2048ba521a5bc15a1e49b7511953c05d2258c05c1f53c15a1d3fbf561b46c3581d3dc4591b44c75a1e48ca602045b74f194dab491753b04c184fb04b1749b6511b43b8531c3bb04c1943b5521e43b8531d43b14e1b3dad4b1b3faa491a4ab6521e46bd591e3aae4d1b31af4d1b39a7471b3ba4441839ae4e1b39ae4a1a38ae481735ba511b3bb74d1937b74c183dbb511b2cb650193bb84e1a42ba531b3cb34d1a42a345163f7d3412405b260e427d3514359f411634ad481a32a8451742b7511d48c0562032b34a173cb149193da745163da3431743a142173ea445193aa342163aa8451745b1471841b34b1746b1491848c6561d4aea6d224bfa71254dff7b2745ff842845ff822840ff892c3fff852a32ff7d2944ff822d42ff792643ff7e293aff762635ff76242bff70203aff82272bff742228ff792613ee611d18f768202af86b2135ec661e41ef682043e866214efd792443f4742250f075223ee8701e44ee751f44f77e2340e8782542db6e2243ca611c3dcb601b39c257183cc75b1b3acd631b3bc9601b41c15b1c4dc262214fb7591c53af531b57af541b55ac4f1a4eab4f1953ac501a46a64a185ca94f1a479c461657a04e1d62ad522064b2562354a850204da34c1b449f491945a34b1b4cae541e4aa14618549f44175ca74a1b58a247194aa44b1a52a74e1d3d9c441843a44a1c4daa501e44a34a1c459e441a49a3491d4fb1531e4cbc59203eb4501e37b6511d40af4b1e3fb0491b3fbc531d40bc4f1c39bc4e1b3cc4561f3bc3521d3dc9531d3cd05a1f33d75e1f40dd5f2146e5672548eb6a253fe45e213ce5602130da571d3feb652333e75e1d32ed652330ed601e40ff6f2542ff7a2b38ff70233aff70253fff6d2541ff6e2843ff70273eff7a2d3bff6a233bff6d2445ff6f2443ff6f214af3652149e566224bd15c1d4eb74f1a4aa845144b9f3f13489b3e1344983c123f913912328a3510468f3a13428c39113e903c13388e3a123484361134773311477636143795421624ae4a1712a7421420ae461532b94c1838ba4d1747c5541c49c3541d52d7631e49da651f53de681e40da641c46df691d3be5702043e5712349e56f2343da651e3cdf681d38d55e1b3ada601b3adf661c3ee3681c45dd641e4de56d2152e36c2256e2672057e5682051d75e1d4fd15d1c4fcd591d48cb571a5ecf5b1d4ac9591c55cd5e2053ca591c46c9561948c8571b40bf511744bd531941b74f1949b7501945a2401351a2401354aa461653a7451542a6461651a6481943983f1540963f154f954016418a39144c8434124c853714508e3e144b8b3c143a7f3412367d3312437a3213427c33134d863a165a8439174c79331457a2491847a2481756a249184da54b184da84c1853a64b1849a549175cb0531c7cb75a226fb1531f63a94d1d69a94e1d5aa54b1b63a2491b67a24a1b5ea34b1d5aa84e1c62b0531e60ac501d54a84d1b4fa4481852a54c1c53a74d1b5ba64a1c4ea044185fa74a1b50a0441757a64a1a5cac4f1d54a84c1e53a3481b55a0471b5ba74d1d61a54b1e53a0461a5fa2491d62a94f1e59ab511c55a64b1c4e9f481c549c451b4b9943194f9c431859a1471b449e431852a3481b52a6491c4ea64a1b51a64a1b4ca4471955a94d1c57a54a1d57a3481a4e9d441849913c1744913b16529841183d8b371258903c18559840186199421a4a903e17478e3b154e943e174c9941194e9c411a4d9c4119519e43194b9b3f174b9c401757a4471a509e421858a94d1d5daa4f1e5ca74b1b6ab2592168af612465ae63265eaf692859ae66274eab5e244aaa5c234da95d2347a8591f45aa5c203eaa591d54b067235cb0682650af67234db0652330a9511a2ba8511a40ab5b2049ad612142ae62205aaf66265db269245cb56d2459b3692358b569235db76d245eb66e2556b2672252b1642251b05c1f59b05e1e4bae561c57ae571d53b05d204dae581d56b05c1e4ead591d55ad591e75b2602470af552068ae56206dad562168a34c1c5b9f4b1d72a14c1f629e491c5b9f491b67ac64275ba8672668a962244fa64e1b4d9844175399461960a04b1b4e8f3c165e96421858943f165b9a43195a9f481a4b9a44185697431a52954219619b471b699c491e54903e1960944119649e491d5ea24c1c5aa4491b539b431a549c441c48953d1650973e185ba0461c4c9b411854a1471c57a5491d50a5481c51a74d1c4ba5491a53a74c1b55a74d1e5ca74f1e53a64d1b4fa54b1c44a3451956a6531d4da54d1a54a44e1f5ca6542161a756214ea4521e47a3511d4ca4511c4ba3521e4ba4511e4da3501d4fa6582151a65a2047a4561e58a75b2055a5521d4da74b1b65a6491b5ca84c1b6ba84d1d68a4481a69a0461b699f451b55963f184f9440173b85341250903c174c923f1747913d1546913e15499540165ba24b1b589d461957a74e1a318f3b121f84330f39923f16459c47174ea24b194d9d461858a54c1a5aac501a53aa511a5aab571d57aa551b5eae5e1e52ab561b53ac571d56ab561d54ab541c4eaa501a4da94e1a55ab531c4cab501a4cac521b4ca74d184aa94d1962b25a1f78b15e2469af551f63a94f1e6aa74d1c52a24a1a68a44b1c5ca2491a5ca34c1d5ba54d1c5fa84f1c64a64c1b4e9d48194b9a4317539d471b549c481a51944018558f3d1663924018528b3a145b8f3e1757914017588d3e1853883a155b873a155f8d3f185984381661843916618038166381391656803814537b3514507a3616547b3515547e37175b8339185c833a184c6f2d115876320e3e66280c4c692a0d576e2f0f516f300e546f300e5c6e2f0f6a7031107b75341273713212676d2d0f686e30125b6a2e115f672c1151652c104c652c1055662c1063692f12616a2e115a642b0f495f280e58632b1051612b0f5260290f556029105f622a106161291060652d11706b32145b602a105e5f280f6a632c1268622c126b612c145557240e615d2912625d2912655d2a13565a27104d55250f665d2b133e53230d59592812575b2a114b5c29104e5e2b115d612e144a5c270f5e632f135a5e2a115e5f2b125b612c125e622d1261642f14515a27105a5b28124e5927103952220d4253220e565927105c5b2912505625104d5726105f5c29125e5f2b135b5d291161602b136a612b145c5f2a12525e28105c5e28115f602a1274673016696831156d652c14696a31155f672f145c632c1355602a115360291162642d13565e2812565d28106c632d1466632d134d602a11736c34166269321457652d11536c32134a652c1143662e114b662f1151662f12586e34135e662e14676e3515677137146c743a1669773b176b7a3d176b773c166c703614626d3513576c35135c6b351248612c104d5f2b1056642f11566732115667311253663111706a34147b6d36157e6b3516746833156865301364632f14645f2d13575e2c11505c2b115a5c2c12675e2d136a5e2c136f5d2c124553250e5356270f605b2b115053240e5c54260f61562710665626106158270f735f2d136559291163562610665525106b5526116f562812594f230f685426116b542511655526115852240f444f210d655728124b52240f575326105055261053572810575929115e5a2a12535827105d5b2a115b5928105f5a2911625b2a12605b2b11625c2a115f5828105754240f58562510434e200c434f200d5755240f605827114c53230f4b52220e5e572611625726105b56250f6059261168582610665827115256240e5956250f5a53230e655b28116b5e2b13785e2a136f5e2a12655c29115b5826105e5827105555250f5355240e565626105652230e65562610695928114c56250e6d5f2c12685d2b125c5a280f585d2a0f4257250d4257260e4b5a290e515b280f5b622e11585a280f675d2a116c632f1165632e106665311266673212666732116b6530115f602b104d5c290e53612d0f4d5d2b0e4357260c535f2b0f57632e0f4d622c0f51642e0f69693212706c33127a6c34146d672f1260622c1069642e135c5e29105a5e2a104f5d290f4b5c280f61612c1264642d1268622c114558250d505b270f62632e134e5b260e5c5c270f5a5e291068612b125f5c270f6a622c1267602b115b5a260f635b260f6c5d2811725e2a135f582610615725105c56230e5d56250f5953230e434d1f0b514d200d5e51240e424c1f0c4a4e200c504c200c564c200c5b783411566d2d0f607131113f6b2c0d4c70300f56703211496d2e0f6572321279733314667031137676371673743414706f3215556a2f12686f33146870351582723617666d32147d7134166b6a2f145a662d1251632a0f58652c11686931146466301460652d126c6c311553683014436029104561290f475f280f51672f1254622b125c622c14585c271174643017706430176c632f1567602d13625a29126c5c2b143b52240f3a50220e3d57250e3250210d51602e135c612e155f612c1467632e14625f2b1368642e146e693216666832156a6832165b642e14575e2b13535b29124a5826115d5b2712695d2b14605a2a136a5829145e58281266582713635b29134655250f7e622e178367311975683118545d291267602b1458612a137f6d331a726f35195b682e135a682f155a682f1563662e1564662e15626a30165d672f155b652f1661652e1562652e1560642d1463683015676d3317526730145c693015587236164a7338155f743818696d331776733919636c3316706f3619686d3418897d411e837f431e737d3f1b7c80421b6b7e40196e7a3d1975773d1b8078401d6e723a185a6833156b6b35175568321454693314646c36164d6732136c6c3417876f391a766e371981733c1c7d70391b8a6f391c656532177d6b391b72673618856a381b76653519796533188566351a69613017635d2c1466612f1579623116665b2b136a5e2c147d633117726230175b5a29122f50220c4c592711565a2912675b2a13665a2a1460552712855f2f18886130198765321977602f16695a2914705b2a155a5728133d4e220e435526103c55250f535d2c13575c2b137b653219726431176e602e15726430177566331776643217726331166c602e16615b29136e5d2c16575929135d592712795f2c16565928126e5d2b16615b291365592712685e2a134a57250f8d632f186d5f2c1570612d1557582711725c2a145b58261184642f187d67321865622d14645f2b14605e2b13695d2a135e592712675f2c14675f2c1455582712655c2913605b2a13655c2a13625d2a1372632f15525e2b115e5e2a12565f2c125a67321354632f126b622d1479683316635d291267612d13655e2b137e6b3516716b3616736d3616746e371674713a17766e36156b663114796c3717746b36165b63301366632e135a6630134f652e1157662f1245652f10646a3114716b321581713819766f3818746b3417846d341759622d12726b35187a6a34177b6d3718766832176f6730157c6b331763612e1463612c135f612c1268632e145a5e2a1265612d137b662f1565632d14535b27102753210b50602a11485b270f5e602b124958260f5459261072602c146c5c2a126e602d13735d2b124f53230d5950220e6051240f36491e0b3a4a1d0b394c200b3d4a1e0b5474311044712f0f57733211466d2e0e2b682b0c3065290b3864280c566d2e0f606d2e105c6b2e0f696d2e10586b2d0f686f3313666e32135b6b2f125e6e3212616d3011626d301156682e105d682e103c62290d3b5d260c345d260c3860280e46632b0f415f270e4861290f3d5f270d3a5b250d385b250d3f5c270e4c5f280f4e5f28104e5d260f5e602a116d632d146e612c1369602c13595c2911785f2d15565726104252230f384f210d3f54230e495826103b56250e4859260e5b5d291174632f155b5e2a11585d29115b5f2b1165642f145a602d12565d2911535b28105058250f4855220e5259260f5957261057542510575324104d50220e454f210e5f5626105f5525105f5827114c5b271047592610495b2710565c28114c5a2510666a31155c6a2f135e652c1265682e1464652c1359632b1254632a1159652c1362652c145561291253622a11506029114a5f280f59662e11576d351353682f114a6a30104d73361255773814556f32135a6b2f12626f3413586931135c6a311450632c115f6e351466743915607538155a743714527237143e662d0f4b6e351345673112576b3614476833125b6934144b632f112e5f2b0d335f2a0e3b5e2a0e58673011626730135e662f12696831145a652f116b693416676531155d602f136062311361612f1265602e13595d2c115d5e2d113d58280e3c55260d3553250c3756250d4658280e4354240e4a57260f3f55250e3b52230d3952230d4254250e4d55260f5154250f5051230d5f5526106f5a2a13705929126a5a2a125c5a28117d5f2d15565826104451230f3b4e200d4052220e4a5726103c56250e4b59260f5e5d2a1175622f155d5d2b125a5a28105d5b2a11675e2c125b5a281057572610555725105255230e4952210d5356240f5a57261158582611575726104c54230e4553220e625c2810605927105f5926114f5926104754230e4955240e565725104f54230f69612d145f602b12605d2911655d291266592711595826105558250f5a5a2711645927115857251055592711535927104c57250f5d5f2b105864301055602b0f4d602b0e4e642e0f56642e1059622c115b5f291065642e11595e2b105d5e2a105359260e62622e1166673212626932125966301151642f113e5a270d4b632e10455e2a0f56632f1145612d0f5a6530124a622c102f5e290c325c270c3b5d280d58662e1062662e115d652e1168652e125a642d106a67311565652f135d632d125f652f125f642d1065652e1259612c105c612b103e5c280e3d5a260d3558250d385a260d465c280f4459250e495b270f4059260e3955230c3855230d4257250e4d5a2710525a270f5157240e5f5b28106e602c13705e2b13685c2a125957270f78582911534f210d404b1f0c37481c0a3c4b1d0a454c1f0c36491d0a5b753210587632103a6d2e0e2166280b32672a0c34672a0c40692c0d3f662a0d5d6e2f10576b2e105d692c0f50682b0e536a2d0f5e692d10636a2f115b6b2f105a6d3010596c2f105a6a2f1145642b0f3f61290e4460290e48642b0f4061290e4060280e53632a104d61280f3a5a230c2e58220b4a622b114b622a1053612a10576029113e59240d4356240e70652d1470642d1465612c13665f2b135e5e2b12545927104252220e3e51200d4457250f565c2912425827104957250f5b5e2c125e5c291168643014545b2810545b27105a5f2b12595e2a11535a271059592610585926104c54230e4e58250f4a57260e4955250d4a52220e5555250f50552410555a281050592710555b28114d5d2a11455a250f645f2b13655f2b13555c281165652e1451622a105c682e13716f33168a71351962692f1463692e1469662e1559632b1260642b124e612911566029114f652d116673391566763a16847a3e1a5875391463793b16627f3e17587839145a7438145c723714567238144e693113396029103c622b0f55723815557337145e763a155d743814355f290d39642d0f4f6d3513606f37155e6c361437602e0f225a280c345d2a0e365f2b0f42612e103f5e2b0f5f6831135a6630125f632e1252612d1155632f1261622d1264612e125b602e125b612e115a602e115b5f2d114559290f4057280e4456270e4958280f4054250e3f52230d5356260f4f55240f3b50200c2e4d1f0b4d5828114e58281054582810595526113c4f210d454e210d725b2a13735c2b13685d2a12675d2b13605c2a12545827104350210e404e200d4654240f575a28124457260f4a58250f5e5e2c12605c28116d643014545927105456250f5b5a28115a5a27105457240f5a56240f5a56240f4d51210e5055230e4c56240e4a56240e4b53220e5656240f54582510575c2910525a2710575a28104d59270f4756230e665b2811655b28125759261068602b13535c27105d602a1174652e148e662f17625d2911655e2911695b281258572510605726104f57250f5a572610525d2a106a68341367683313896d37165b67311264683212626b3413596831115d6932125e683112596731114e5d2a0f3955230c3b57250c57663011566630115d6832115b652f113655240b3a5b270d4e632e10606631115e673112305e2b0d215a260b345b280d365d290e415f2b0e3d5d280e5e662f125a642e1160632d1154612b1056652e1163652d1164652e125b642e115c652e1159642e105a632d10445c280e425b280e455b280e4a5e2a0f415a270e3f58250d545c2810505a260f3c54210c2f50210b515d2a114f5c2910555d29105e5c29113f54230c4552210d715f2b13715f2b12675e2a11655b28115b57260f5051220d3f4a1d0b3d491c0a414c1f0c514f210d404a1e0b366b2a0c2467280a26692a0b2967290b3568290b3c692a0d3a6a2c0c2c60250a4f6c2f0e526b2f0f56692d1051692d104c6a2e0f4f662c0f686c311263692e11616b2e103963280d2e5e260d295d270d305d250c3d60290e42632a0e4562290f4461280e62672d1260662c124d612810305a230c375f270d57652c1152632c1059632b12525f29115e5f29115e612a1266662e1366642e13645f2b1348562510575b28115558261148572510555925104455230e3a54220d4d56240e5b5b2811645e2a126a622e1456572510595b2711555c28105f5f2b12555c2810545b28105558250f5257250f4f56240f4657250e5057250f4955240e5159260f505b2811585f2c13545e2b12565f2b12545f2c1363602b13836631188d663119625e2a1359612b1350612b1156642c1260672e1363662c135e662c126c6d33166a652d1567652d1450612911445e261052622b11656e35156470361462763a16577235154f7638145b7a3b167084431a5d793c176474391768763c18526f36135971381542612a113d632c105171381467783d1760783c165470351343682e10586f35135271361439662f10255e2a0d275a2a0d2a592a0d385b290e3b5e2a0f3b5f2c0f2f58270d516531125766321358632f1252612d114b612f114d5f2c1067643114625e2c11605f2c113657260c2e54250c2854240c3051220b3b53250d4153250d4553250d4351230d615728115c5627104c53240f2f4e210c3652230d57592a11575a2a115c592912535526105e5526116158281268602c1368602d13645b2a134852240f59582711565525104752220e595424104551210e3951210c4e56240e5c5b2811675f2a126e632f13585625105a56251056572611625e2a12585c2710575a27115555230f5254230e4f53220e4753220d5155230e4b53220d5257250f505927105a5e2b13565b2910585c2811565c2911655c291183612e1592663017635d29125b602b12535f2a115a5f2910625f2a11635d2711605c27106c622c136b5a2712685826115153230f4652220d5657271169623013656430126467321356612c11526630115d693313737239175f6a3413666a33146d6c3615536530105a642f114256240d3e58260d54663010686b34135e69321151622d10435c280d59652f1152673011385f2a0d235b270b295d2a0d2a5b280c3b5c280e3b5c290e3b5e2a0e2f58250c51642e1058662f1157622c1054632d114d642e1051632d106968321363632d1161642d11335a260c2e58250c2a57240c3256230b3c59260d415a270e495b280f4359260e65602b13605e2a124d58260f3153220c3858250d5a5e2b115a5f2b115c5d2a12545a27105d592610625c291169612c1267602b1161592810444f210d5552220e5250210d434c1d0b534c1e0c41491c0a33461b09476e2c0d396d2c0c396e2d0d396d2e0d396a2b0c3a65280b3f6a2b0e34682b0c617435125a7032115a6c2e10536a2d0f48682c0f4d672d105e672c105f6e301045672b0e2960260b1d5c230a225d250b41622a0f365e260d3961290e4260270e5663291053642a1058642b114e622a104561290e4b642b104161290f415d260e4d612a1052622a115961291264652c136a632b135d612a12515c2911685e2b1354582510585a2610575b2810525824104656240f4654230d5c5624105f5c2811655c29136b5d2a1265592611625c2912605d2a13675d2b1353592710605c29125059260f5c5f2b124c56240f4856240e4e5928114e58260f535d2a11585f2b1358602b13525d291158602a1154612c125e5f2b1264622c145c602a125860291368632c1357632c135d682e13666a3014726c31166d6a3015696b311563652e135c642e1351612b11595f29114f632c115d6d3313576e321362733714767f401a667e3f18747d3d17727b3c1771783b1770783d17536f3613416a31113d672f114a632c1151662f12516c3413527037134e6f36134c6f351235642c0e41672f10426b3311496730113d622f0f395f2d0f3a602e0f3a5f2b0e3a5c280d3f602c1036602c0f646b36155d6933145d66301254632e1148612c104d602d115c5f2b115e632f11445a280e2755230b1d5121092052220a4056260e3651230c3954260d4152230d5454240e5256260f575626104e55250f4455250d4958280f4257270f4053240e4e582811565929125c582812675d2a136b5c2913605c2911535a2811675a29135254240f575625105657250f5254230f4552220e4854220d5f572410605c2811665b28126c5c28126857251163582712635a2812685d2a14555b2710625b28125156240f5d5c28124c54220f4855220e4f5826104f57240f555b28115a5d2a12595e2a12545b27105a5d2810565e29105d5b28106a5d2a135a5b27105a5c26116b5f2a125b5f2a1260612b126a602c1274612c1371602b136a612c13645d2a115d5b2a11545726105b562510525a281060612e1258612c1064632e11786c36166a6c3414766d3414776c3514726a3414756d361559663011435f2b0f3e5b280e4c59260e535c291054632e1052652f1051662f104c642e0f355a270c425e2a0e43622d0f4a602b0f41602c0f3b602b0e395f2b0e3a5c290d3c59260d3e5d290f385e2a0e676a34145e68311261652e1257642d1049622b104f612b115d622c1162673012455d280e2757230a1c5320092255230b4259260f3854230d3d5a270e4558250e585a2710575d29115a5c2912525a28114859260e4a5c290f455a280f3e54230d505b280f565b28115f5a2711685e2a126b5b2711615b271054592610655625105050200c5350200d534f200c4d4a1c0b41471c0a45471c0a4e702e0f3168270b426d2c0e3c6e2f0e436d2e0e3e67290d446c2d0f3e6d2e0e406a2c0e566e2f10647133115b6b2e1045672a0e3f65280d45682b0f576d3010496d2f0f3362280c205f260b295f250b325f260c3c5e250c445e260d4460270f4f5d250e5e652a1059652b114d62290f4160270e51662c114f632b113c5d260e7169311562692f145d5e271169622a13555f28105c612a1163622d135c5d29124f57250f605c2911625e2a135a5b26105f5d29124957240f4b54220f5d5a2712685d2913695c29135154230f605b2812615a2812595a28115a5927105358260f515a2710535b28104f59260f515a271051582610515a2810635f2c136f612c1566622d15585e291271632e1562612c13575f2a1258602a12686a331657652c135663291153642c1257672d1258672d125e6a2f13646a30155b622a114b5d29103d59260e3957230d545e28105b683014596b31134d682c115f6d3014767d3e19747e3e18717739165e672d11647036143e632c0f3a662f10436831112b612b0e3d612b10425d2910405d2a0f566b351445652f10506a33122b5f2a0d4b6a34113c67300f4c652f10315c280d44612d103c632f1043642f103d602a0f44632e113e632e0f40612d0f53642e11626a33135a66301245612b103e5d290f445f2b1056612e11475f2d103357260c2054240b2954230b3253230c3c53230c4352240d4254240e4f53220e5c58250f5756260f4954230e4054230d4f5c2910525b2a113f55250e70602e15635e2d145c552510685a28125458260f5d5c2810635f2c125a5a28114f55230e605a2711605b28115b5825105e5b29124956240f4c55230f5d5a2712695b28126b5a28124f52220f60582711615826115a5927115c5b271154582510515725105459260f5058240f505a26105259250f4f5a260f625f2a1273612c1469612c145a5d281172632d1466602b13595b28115359260f6b622e14585c2711585b2610575c29115a5e29115a5c28105f5d2911675e2b125d5a27104c58260f4157250e3e53230d575826105f602c125b5f2a114f59250e615d2911786a3315776c341475693213625e2910676530124058270d3d5b290e455c2b0f2d56250c4057260d4658260e4659280f5966311246602b0e51632e102c5a260c506530103a5f2b0e4c5f2b0f3257250c485e2b0f3c5d2b0f465e2b0f3d59260e46602d113f602c0f415f2b0f50602b10636731125c642d11475f280f405c270e46602a0f58632e1148612b0f3358250c2155220b2a54220b3554230c3f54230d4756240e4758260f5457240f615d28115c5d29114c59260f4256240e505d2910555c2a114256250e70602d14635f2b135e55230f6b5b28125557250e5d59260f655b29115854230e4e4f1f0c5d51220e5c4f210d574a1d0c584b1f0c44451b0a53753110416b2a0d4d702e0f3d6d2f0e3366280c416b2d0e426e301046713110576f2f0f586f3111506b2d0f50682c0f52692b0f486b2d0f456a2b0e406a2d0f516b2e1144662b0e4a672b10375f250c365f250c3a62280d4960260e465e260e625f271060652c115c642b104f62290f54632a1043622a0f50642d134c5c260f625f28123656220c56602a115c6029124b5e270f585d280f525c28105358260f525624104f57240e635d2a12615c2912535725104254220e4c53220f4a53230f565b2a124853220f655826126b5828125f5727115c5625105355240e585827115256250f5656240f4e55230d4a53220d4a51210d4953220d5358260f715f2b14675e2a135b5c2911525b2810555b27104d5b2710515c27106b662e144f6229105361291068672d145c642b1263652c1260672d1262642c1367662e144a57250e485a280f4e5f29104459250e4d612a105f692e1257682e12556a2f125e7335146074371452632b0f4e5c250d616f361354683012496a321229602a0e456730113e5f2a0f455b260f4e5e2b104c632f104b602c0f546934102c642f0d456832104f6a331152663011405e290e4c632d103e632e0f3361290e41662e104266301144652f1055642e10586630124e632c104e642d104f632c1044622c10435f2a0f3d5e2b0f52602d11425b290e485b29103555230b3455230c3857260e4a56250e4557250e6158250f5c5c28105859260e4c57240d525b270f405d280f4c5e2c134a572510605927123350210c555a29115d5c2912485b260e565c270f505c28105059260f5157240f4c57240e615e2911615e2912535c27114259240f4c5825104b582510585e2b134954230f675b28136b5b2913605a29125e5a2711555b2610595b281251582610575a26104f5a250f4c59240f4b57230f4b59240f575e281175642e156b602b135e602b1253602a11575f2911505c28105459260f6e602b13525b270f565b261070602c14625d2912655c2a11635e2a12665c291269612c13525927104d602b1151602a124859250f515e281064612a11575c270f595d291061642e1164662f11555b260f5559240e68673212585e2b1050602d102a55250c475c2b0f4257260e4b58260f555c2b1050602c104e5e2a0f5867311030612c0d4c6631115366311155612e11445a280e505e2a103f5c2b0f3457250d435e2b1043612e1147632e1156622d105b642f1251612b1051612b10525e2910465f2a0f475f290f3e5e280e56612c10455b270e4b5b270f3754210b3654220c3c58260e4f57250f4b59260f685c271164612b125e5d2911525b270f585b2810405b270f4e5c2a124c57250f64592611364f200c58592710635c29114858240d5957250e5256250e5051210c504f1f0c4b4d1e0b5d50220d5d4c200d4e481d0c3e451a0a597b351245722f0f3b6f2e0e2c692b0c3e692c0e3d63280d4d6c2e0f4e6c2f0f58703010566d3011556a2e104f692c1053692e113c652b0f40662c0f46682f123863290e3c622a0f3d5b250d2e57210b2456220a415c260e435b270f5e612b106d632c1169632c1163612b114d5b250e465a250d5c5d29115458250f5053230e4e54230e47511f0c5c57250e5956240e4f54230d4b52220d5152230e5952230e534e1f0d5050210d5150210e4d4f200c454c1e0c464b1d0b4e4c1e0c4e4a1e0c4b481e0d544a1f0d5d4c200d56471d0c4e451c0b4f461c0b4a451b0a46451b0a4a451b0b46451a0a404219084a43190950471c0b4d461b09524b1e0a5a4c1f0b5d4d1f0c524c1f0b454a1d0a4a4b1d0a484a1d09454b1d0a474e1f0b4d51210c4c51200b5954230d5f54210c5154220c6b59260e5556240d5154240c4952220c394b1c094051200b3f4e1f0a4d54220c4e55230c625a250e575c270e425d280e58612b0e5158240c4054210b475b250b445e270d485f270e425c260c385a250c355a250c485f290e405d270d445f2a0d44602a0d4b622b0e365f290b44642e0e4f68300f53662f0f40612a0d38622a0d2a602a0c3a612b0e3a5d260c49652c0f4d632c0e52652d0f52632d104f61290e4962290e4f612a0f365e280d3b5e290d40612c0f345c270c385d280d3b57220d2c521f0a205320083d57230c3e58240d545e280e6561290f6161280f5d60290f435c240c425e260d56632b105160280f4f5b26104a5a260f4257220d595f2911566029104d6029104b5e28104f5f2910585f2911545c26104a5c270f505e28114d5e280f475c260f475c250f4e602811505f27114b5d2811575f291262622b135c5d2711535c2610525e27114e5d27104b5c260f4f5b27114b5b25104458230e4e592310515d2811545e271058622b1164632c1266632c1359632b114c612810516129104f5f260f4d5d260f555f281053602810555e281064612b12676029115a5f291074632c135d602a115c612a105560290f4158220d455c260e4757230d5c5e270f575c270f6d602a1164612c114a5e290f62622d115b5b260f4959250e505e290f4a5f2a0f54612b104b5d280f3e5a270e3e59270e525f2b114a5e2a0f4f5f2b104d612c0f55632e103d602b0e4b663010586932125d683213415f2b0f3f602b0f2d5c290d3f5e2b0f3f5a270e4c622d1054632d1057642e1158632f125a612c11515f2a0f57602b103b5a270e3f5a270d455d2b103959260c3d5c280e4157230d31531f0b25521f094358240e4259250e5c602a116d642c126b632b1166622b114659240d475a250d5a5f2a11575d2710585a27104f58250f4755220d5c5a26105c5b270f4f59250e4f56240d5056230d5956230d5652210d4a50200c504f210d4d4d1f0b444a1d0b43491c0a54723110777a36132e692d0d365e250b4663290d3e5d240b425d250c5461280e5063290e5a652b0f56632b0f355b260c2d59250c3359250d3156230c425b270f2a55220b3158260d3d53210c304f200c3550210a3c53220d2d4d1e094b56240e5055230d6258250f5b55230d5f55230e6052220e4e50220d6151220e6150230e644d210e584a1e0c4b4a1f0b5b4a1f0c45461c0a414219094042190947441a094a451b0a5b491e0d4c451d0b4b431b0a43411a0a47401809493f1709483d17094d3b17094f3d1809493e190a4e3b160852371408593614073e341206423613074135120640351206333210053e35120637331005463814063e3814054c3915064f3c1707543b1607513a16064f3a1606553c17074f3d1607604019084f421a084a4219084341180741401707424219073a40180750451c0943451b093441170843461b083a4319073c451a073f451a0737461b07454a1d094d4c1e0a4b4d1f09564f1f0a474e1f0933481a083a4d1d09384f1f09314d1d09364f1e09354e1d093c54200a3d55210a3e56210b3158220a4059230a475a240b2e542209375c280c335c280c445f2a0c6a672e0e32622a0c335d250b3e5c250b3d5a240b3258210a4a5a240d4b5e270e505f280e5160280d3559230b325a240b2257210a2b59210a355c240c335e260c255a240b405b240c28511d093b5b270f3b59230b29541e08395c250c485c240d545f250d5465290e5464290f5d662a104a63280f59652a105d662c1164632b11516028105d652c114f642b104562290f425c240e3c5b240e425d260e4e5f260f4f632a1157652d133d5e270e3c5c250e465e27104660260f4d6328114d62271054662b124f652c134d60271061642a1351602711506028114b602710475f25104e6128123c59210d415a230e4758220e4f6128104960270f57632b115e642a115f662c1265682c126d682d125d662b125e652a1161652a1161682c1161672d115a6229104d60291054612910485a240d5562291063652c11415a230d4756220e545d250e4459230c4e5c250d465b260d475d270d5f642c1178652e13645b28105e5d28103b55220c475a260e465b260f4159250e3d58250e465d280e465d280f525e280f475a260e445e290f405b270e51602b103c5b280d3b5f2b0e45632d1040642e10696c3313576b33122f602b0e415c270e475d280f3c5a250d4f5b270f525f291153602a0f5a612c10475b270e3c5a270d2252210a3254220c3454220d445b280e2354210a405a260e2e511e0a3658250e3956220b3156210b3958220c545d260f565d250e5f6329105a5d250e675f2810585a250e5a5e271063612a116d622b125c5b26106c5f2a114657250d5357230d4152200b3f4f1d0b4652200c4a521f0b4b54220d65572711424f210c424d1e0a444d1e0c5e612a0d74662e0f53622b0e3e52200a5357230b48521f094d54220c4d54220b5957240c4e57250c4d56240b364f1f092d4f210b1e481b071b481a082e4b1d0a1d4a1c08384f200a434e1f0c37481b092e471b083d4a1b09414a1c0a3f4a1c094d4a1c096b51210d6d4f210d6e4f200d5a491d0b4d471c0a624a1e0c704c210d744c210d56451c0a3f4019093d3f1808373d16083b3f170740411808414118084e441a09454119083a3f1808444018094a40190a453f1809483f18094c3d1608483b1608503e1809413b150734381406303613062f35130638371306373613063e37130642391407363512064b3a1507463714064e3c1608503b1607513d1707533f18085740180855411908503f18074d3f18085a4219095d441a0947451a0847461b084a461b09394218074a43190849471c09604d210c45491e0a4d4b1e094f471b0941471b0849491c094a481c083b481c085a4d1f0a5550200b484d1e0a5650200b3f4f1f0a3e4d1d0940501e0a36521f0a3a56230b4555220b3c55210a3f54210a4559240c435b250c4e60280d59642a0e5f652c0f22521f073f5a250a55602a0e4c642d0e6e6c3311627034123c5f270d50622a0e4c5e260c4f60290e445d260d5f652c1049642c1050642b104062290e2e5c270d2b5b240c1c5821092a5c240c255d240b33632b0e4060270f375a210b2c58210a3659220a4360260e345c230b465f250d61682a1066682b11716d30145563290f4a63280e5a652a116d6c2f13766e321561652a124261270f4060270e385d240c3d5d250d3f5d250e436228104d642b1051632b1145632b11385f260e53652c12486229124a6127105a662b124660260f536329114d6328103c5d240d345c230d325a220c365b240d3e5c230e48602610445f250f445d230f4a6126104b5d250f53602811586129115a622a1066672d1365682d13676a2e13666a2e145e672c1264662b12766a2d1455662b11606a2e125c672c1257602711545f27105d642b12716c32156c662e1451632a0f575d2710455a250e505d260e6a622a10515d260e5c602910766d32165b5f2810625f291060612b125e5f29114c5c260f475b260f455d290f50602b104f612b114d60291058612a10505f291067672f13626830136c6a31143b59250d3d5d290e7e6e35165b693113757036167e753a1949652e1152602a1165642d1357612a105060291063662e1454632b115c652d1256662e113e5c270e335a250c1d511f092c56220d375b250e245a240b3e5c250d3e56200c3856210b3655210b465b240e3f58220c4f5d250e636228106f642b117c662d14655f2710595d260f5a5e271073672d137e6a30157a652c14525d260f4156220c4156220c3e53200b3f511e0b4358230d4a58220c5a5b250f515b27103d54220d4d56220e4b57240f805729106553240c825d2b105c50220c534b1d0a4e471b0850491d0a54491d0a624d200b564c1e0a3d461a083b451a0737461b0839471c092b4218074d491d0b34491e0a32461b0938471b0945451a0a2a4117084543180961491d0b42451a0958461b09764c1f0c60431a0a744a1f0d5c451b0a464018096e451d0c78461e0d82471f0d72431c0b4c3c1709533e1809433a1609483f190a3f3f17073c3f17073f3e1708343914063e3c1609363c1709393e190a453d1709423b160856411a0b553f180a58411a0b4a3f190a323914073939150735371507373713073f3b1709423a1508503d1709453b1709503d1709543f180951421a0a55421b0a70451d0c6f481e0c67471d0b60471d0b51461b0a49451a094e461c0a52461c0b4d491e0b604e210c48491c0a544a1d0b624c200c7c53250f7b52240f6451220e5752220d775626104952240c394d200a3b4a1d0a464b1e0a5850210c6956260f5f53240f64592810344e1f0a4556240c4057230c3256230b3e5b250c5b612b10425c270d4f5c270e535e29104e632b0f265d260b295b250a6e6c3213305b270d3a5a250c5e652f117b723a18626c3313817a3e185a692f125a642b105260280e4e622a1059652b10656a2f145b692e1144632a0f3d60290e3e612a103461290f265d240c4d682d13396b301237662c103c672b104a632810305c230d425f250f636b2f15416429105b692d127b74351866692c147871351a606a2e144763280f6c6b3016797134188577381a7973341855682c135a6b2f1547642b114c662c1441642a1042652a1145642a11395d250e44612912345f270f43652c134a632a12476027105b682d155c632a1360672e1452682e14355e250e3e5f260f3a5c250f3c59230e426229124964271256682a134d6529125b692c145a672c135c692f155f682f157e6e34198273371b7a71351a73703318616d301656692c13566a2d135d682c1357692e137a72341852652b1163692e157a6e3318a77a3d209771371b756c3217706d32169071361a696c331448622b104c5f280f586029116b682f14857236196f693016786e3417425c270f5e672e144f632c12405d2a114f602c12626631164b642d125c682e136f6d34185a68301437602a0f2257240a7f7137183a5e290f445e290f656931168b783d1d78723617987e411d6a6d331664652c135a622a115a652c1362672d13746d32176c6c301551642c114560280f4d622a103c5e270e2857220b59652c1340682d123d632a103d61280f485e26103457220d4058220e6b652c144a6028105d622910806c30156d632a127f69301765622a12485b230d6b62291379692e148a703317886d30175c5f27115d5e28124357230e4f5a26103f59230d455d250e415b240e37541f0c4559240f3256210c455c2610475b25105c491f0a644b200b634d210b5e4a1f0a55461c0955441b0955431a0951431a0857441b0964451c0953461c0941431b0857461d0947431b093f421a0852451c0940441b0835431a083d421a08373f17072b3b15073c3f170849401808404019084e3f180964421a0a6d451c0a56401909433c15083939150732351307503b17095f3d190a75411b0b5d3d1809443a17082f361407313714063a3b1707323a1607383b16073238150733381406303815072b381508323714073c3614074b391509493915084b3915084a3a170845391508393714073d37150837351307323614073d3916084d3a160949391608493c1709573d17095640190a523f19095e3f1a0a5d411b0a65431c0b4e421a0944431a09424219084243190847441b0a3c441c0948451c093f441b094d451c0a58461d0b5a491e0b504b1f0b6e51240e684f220d6c4f220d6451240e42481d0942481d09524b1f0b4d4b1f0b584c200c4d4c200b36471c0929491d09284c1e093350200a2e5121092b5322091f4c1c073754220b3657240b3f58260c4d5a270d2f59250a465e270c3b5a260b3b58250b3a58250b57612d0f58652f105a6630106368311154612b0e475b260c545c260d545e280e465d260c5461290e61632c0f345e280c4d632d0f51612b0e41612a0e4261290d46652c0f3b652c0f36622a0e325d260d2c5a220b365b250d405b240d3f5c250d3d60270d5462290f6a692e135260280e58622a10485c250e2d57220b475b240e555f271064672e135a6129104c622a10345a240d335b250d2e5b240c3660280e325c250d3259230d325a250d3057220c2b59230c2c5a250e3255210d3f59240f4b58220e4356200c4c5b2610455c250f445a240e4457230e4856230f33511f0c3a58240f3f5a230e4d5d25104d5f271058612911505e2710515e28105a5f291170642e146c652d135c642b124c642a104460270f455f260e485f260e4460280f4c632b104a6029104f5f290f5d6029115f632c1370672f156a6630147e6731157d652e1481693115545f2a104b5b270e555b260f515b270f6b622c1361612b134e5a260e3d56240d25501f093553220c3b55240d3d56260d3251220c3153240c485f2a10435e2a0f5e602b113f58260d485c290e5d5d2a10515d2a0f505b280f56602c106e6530136c662f126c68311369622d12565b280f5b5a270f655b2711465a250d665f2a116f612b1254602a0f445c270d5e602a104e5d280e435b260d56612a10455e270d385c270e4059240c3354210b3953200c4054230c4e56230d4458240d505a250e6c5e271072632b115959250e4c55220d37501f0a324e1c0a5458230e605c26107a642b13565b250e4157230d2b501e0a3854210c3454210b3456220c3456220c3154200b3353200b2e54200b2e55210b2d521e0a3b57210d2f3e17064e431c086b49200a714a210a7b4a210b6f48200a5e431c095b401a084c3f1908523e19084d3e1907533e1a08493c18073a3a17064a3e1a084c3e1a08413b18073d3f1a08353b18072a3a1807323816073e381607363413063e3514073134130639361507353414064a3715075a3816074c371507443614064e3715084234140735311306343313063d3515073034130625321305283112052f3515063c3816073d3716073235140632361507282f110630321307302f11053b3313063b3011062f2d0f05332e1005302d0f05373011063a3313063f321306363212062e311105292e10052f3313063f34130641341407383313063c341306533919085f3818095e39190957391707553b1808543c19094439160742391607523b180836391607443816074e381707513b18085b401b0956421d094f421c0958431d0a3c3f19073e411a0832401a082d3d180747401b0943401b0945411c09363f1a08393f190839421c09203e1807233f19072f451d093849200a394a200a354a200a344a1f0925471c08254a1e084a54250c4553230a344e2009294d1f09374e220a595b2c0e625c2c0e6d5e2f106f6030105e5f3011585b2a0e4f5b2a0e4c59270d4256250c4d5a290e515c2a0e3655230a4159270b4a5c2a0e415a280d3357270b375a290d2f5a280c2056270c3554240c3751210c324e200b3750210c2e50210b3854230c3b56230b4f59250c5158240d4f5a270f4757250d4957250e3e56230d3a54220c3a57250e4359260f2552220a2552220a2b55240c395b290f415d290e3a5b270d3157250d2c55240d2d52220c3553230d3352230c5052230d33481b092c481a0931461a09394a1c0b3d4e200c464f210c414d1f0b424b1e0c26451a09334a1c0a3f50220d364f1f0a4351210b3e50210b4f54250e66582a105d5527105d54240d6159270f5d5b27104f5a26104b54230e4c56240e4254220d4556230d5b59260f5d572710655a29115a5b2a11625928115a582a114954250e4f52240e4b52240d314c1f0b4952250e565326105753250f5753250e3e4d200b4b4d200c30491e0a29461c0a33471f0b454b220d434a210c444b220d424b220c3848200b28451c09474d230d564e230d534d230c33481f0a3549200a514e230d76592c11825b2e12875b2d1378592b116454270f6251250f584e230d534e220d584e230d5c50240e514d220d444b200b544f230d574f230d4a4c210c464f230c3b4b200b314b210b2e471d0a44481f0c3742190944431b0b304119093f471c0b41491e0a544d200c5c4c1e0c574d1f0c4e4a1e0b514c200d4d4a1f0c3c481d0b384a1d0a474f210d324b1d0a2b4c1e09304c1e0a324d200b4151220c4051210b3850200b3751210c29491b09324e1f0b384e1f0b4754220d41501e0b334c1b0a37511d0a5540190855421a08483e17074c42190765481e0962471e095f451d0859441c0861411a0954401a0853401a08473d1807483f19074c401b083b3b1807403d19073c3b17073f3f1a084f421d0939401c082e3e1b081a35130521341305233211053a3512062f3414073035130641371607563816074d37150760381608613b180844361507423314074d311307272e11054a3414073a3414062f331306323313053f371606443b1808483917073c35140633361506313414072b3011053e331306443414073f311206332f100536301105322e1005342f10062d2e10053a30110648321106292f110543341307443313063f3413074c361507453413064537160753381607513a1a084d391707543c1808483a1606453b1707483a17084d3c1a095d3d1a09433a17083a38170755391608463b1707453c1607443c1607353f1908483e1807423f1908443e1808293b16063e401c0940401c094b431f0b413f1a08313e1907304119072a401a072b401a0739461e094f471f0a3c481f0a364a1f0932491d082c4b1f09274b1f093450220a4654240b4d56270e4c4f220b4a4f220b4253240b5058270c695f2d0f535e2d0d5d612f0e4f5a290e5157270d565c2a0e4656270c3d56260b475a280c415b280c3959270b375a270c3253230a45632f0e3b612f102d5d2a0e2358280c1f51220b234b1d09284b1e0a384f200c2a4d1e0a3353210a4c58240b4e5b260c485b250c5d602a0f4a5a260d3c59250e4458230d2851200a3457230c515c280f3458240c2d57230b4358250c375c260c50622c10445c280d355d280d365c280f2852200a3452220c3a54230c4a55240d3f4e1e0b3b4e200d394b1d0a384d1e0c2d4a1c09414d1d0b424e1f0c2f471b09334c1d0a4a54220d4255200c515a260f4256230b4358250c5158250d4e58280f4d59290e685d2c11485a260d4d5e2910505b2710505c2910585e2910535e2810445a250d595b270f5e59260f5757250f4b56240e4356240e615c2b115355250f675727103a51230c4255260e535728105058280f555b2a113c4e1f0b3c53220c3851200b354f220b3d4f210c574f240d4c51250e3f4e220c414e220c3f4e220d2d4a1f0a3a4e230c4d51250d5c542810584e220d5c52250f4b4e220c5855250d775e2d12645b2b10725c2c105d58280f6756270f6055270f5753250e494e220c5051240d5153250d404d210b4450230c404b1f0b4b54260d5155270e3552250d2c4e230c1e431b0924401908283f170848451b0a34431b0a35461d0b484a1f0b5a50210c4f4d1f0b6a4f210d654d210e444b1f0b494a1e0c47471d0b2c451b095d4e210e3b4b1e0b334c1d093c4c1f0a414f210b5655250e5153230d3c4f1f0a3a50200b2c491c09334b1d0a414f200b4e52220d434b1c0a34491a0a3d4f1d0a3758210c634a200b4e471d0961481f0a5c481f0b4f441c0a4a441c0a6b4c230e804b220d66451e0b68441e0b7248210d60431d0c5d431e0b55451f0b54461f0b54441e0b49401c0a46401c0a674a220d5a47200c4c451f0b2e3f1b081d391607233715072c371508303a180a433c1a0a593e1b0c623f1c0b693f1b0b66401c0c63401c0b77431e0d543d1a0a623b190b4539180a563b190b75431e0d443c190a553f1c0b4a3d1a0a503f1b0a6d46200e4f401b0b493f1b0b343917082b361508373414084b3917095238170a3c3515094d35150948341409453314093c3313074b3615094d37150943371609503a170a4d3a170a553a180b603f1b0b523c190a593d190b5e3e1c0b593f1c0c63431f0c6c431f0d433e1b0a493e1b0a5c401d0b59411d0d55421e0d423f1b0b453d1a095c3f1b0c573f1a0b60401b0c64421c0c51411a0a5f411b0b4f40190a41411a09343c17083e3d18094946200c4a46200b5847200c47441d0b3a471f0a3c461f0b31471e09424b210b414a210b4449200c35431a0a36471d0a324b200b3a4e220c5153260e5f5628105e582a104853260e5c55280f5555290f4952260e4454260e686031157b6232155f5b2c11625b2c126e6232155c5c2c125a5e2e134f602f12506330124f612f124b5d2c12435b2b11616b361657673413486633132b5c2c0f1c53250d2050220c274f210e32552813445a2b1455612e156467311668662f156569321761683116736c351953642f1563632e1643612c1254642d15736f381a42642d13546934164a653015536a32156d753b1b506d3216496b341733622c102b5d28103d5b271149622c1253622c15405e29134b5e2813445d2612495d27123d5a240f4d5e28124f5d2713465f291358662d154e662c145b692f1667703419566a2f155a6b3016646e3518607137196b743a1974763b1b466a3115526e34186470361a6371361b6070371a4b692f1550672f156e6d331a67683018726b341b796e351c5c672f166e69311862672e164c622b123e5b26104b5f2912596c35175c6f35166f713718586b3114496b311348682f123c632b1052673113506530145463301443592711435d2b113d602d1249642f1361693517716d3618716e3718546730146d6934176468331656632f134e642e137a733a1b90763d1d686832166d683317826d381a6764311668653217576430145c65311456632f13545e2d13475a2911676833165c653114495f2e112a54260d1d4a1f0b1e451c0a27461c0b364d23104b502511525125116b552812695426116a5426126551251173532712514b210e604b210f43481e0c50481e0d6e502510404b1f0c504e230e494a210d524a210d675226104d4e210d454b200d2f431a09283e18083b41180941441b0a4b431b0b3e41190a444118093c43190a46451a0b82c46b3384d476397dd6783b77d0753980c56a3773c2663377bc633272a8572c809a50277f8d492344753817587b3f1b647b3f1e3f58290f3a3c180737311507503d1c0a513f1c0a5e301a0d6a17120e98140f0b92100b0893150f0b5e19130f661e1814a227221d8d2f2923a62d2924b72c29257e2b28247d2d29245d2b2621712b27228f3c3731a0433d38dd2b26216124201e85211c19861914119d130e0a9e130e0ab915100bb815110cb816120db717130f9216120f6615110e5a181411611d1a1670221f1b8c26221fa0282420bb2b2622bc2d2823dc302b26b8302b25bf312b25fb36302add362f29f839322cfd3a332cfd3b332cfc3b342df13a332dca39322bc238312aa9373029fc403931ff443b33ff332c25ff1c1814ff1d1914ff302a25ff474440ff181614ff161411ff151310ff181513ff171411ff1b1815ff1b1815bd413831b8453b33c6453c34bd433932af413931d3433a33b2403931ca423a34cd423b36cf423c36ed4a423aff4c433ce34b4139f04e443ae2483f36c9433a31d2423931ca413931db433b35b03f38318b3c352db040382fbb40382fb23e362ead41392fa13e362d9039332a8c3832295e332c2476332d259b362f27be3c342bca3a322ab1373028cb3a342bbe3c352db13b342cb03c342c97383129662e292262302a237a373029a23b342cba3f372fcd3f362eff302b28ff34302cff39342fc0423931ee443b33e9423931ff453c34ff453c34ff463b33ff443a32ff443b33d4413831f2443b33b83f372efe443c33f9423931fe403830ff3f3830e53e352eda3a322bd73a322bda3a332bd33a332bd039322ad339322ada39322bca383029602f2822a9342c26b5372f28c3372f28b4362e27a4352e27d339312ab0372f27b9372f28bc372f28ce39312af03e352cf63c342cd4383028da383028c5352e26bb342d25b7332c24b8332c24cb352d26a1322b24ff1a1816ff181614ff181615ff181614ff1b1816ff1b1917ff1b1816ff2e2a27ff282421ff282421ff282421c3302923b52d2722a52c2621c62f2924c1312b26c3332d27c4332d27a2302b25722a25205f28231f642c2621782d2722872f2924a42f2924b02f2924b32f2924dd322c26bc312a25c3302a25fb332d27f2322c26fc332c27ec302a24f0302923f9322c26f0332d27db342e29c0342f29d434302aff37322dcf2d29248b27231fad2a27228c2b2722db3a332ca169646076514a478c413b36ae332e2a932f2a275d2c2623ae312c27812f2a25872f2b266c2e2924a3352f2a84342d28bf6c5d4f6d31282142201a143d16110d50411d0b49431f0c4946200c6b1e0f075855250d5a471f0d67471e0e47471e0d515023105f612c1657703018587f391c5b8b411f5f97482361a34f2563af582a70a9592b65813e1c703e1d0d7630170b6aaf5b286c62331681d97b3f69c86e3495dc7e4371c2663177c46a3364b8622f87b9673351994d214586411b4b83441e62894720456e35163d5a29104d4019084e220e05543e1c0a5c401e0b6a3d1c0b6018120e83130e0b8f100b076d120d095815100c841d17138c27211c892e2823bb2e2b26d22e2b265c2a2622692c28237e2c2823832c2824a93c3933d6433e38eb29241f7225221f5b1f1b17771914109525201c8e231e1b81231f1b77231f1b77221e1aa5241f1b82221e1a79211d197e221d19b726211ca725211cb326221d9027221eb82b2621f32e2924fd2f2a25df2c2722de2c2823eb2f2a239e2824209d2925207a28231e7c292520682a2520a62c2721bc2c2722a62c2621a72d2722bf2e2823bc2f2924ff1b1814ff1a1712ff1f1a14ff28241eff191716ff151210ff151210ff171512ff1c1815ff171412ff201d19b92f2924f9332d27ff352e28ff37302afc352f29fd352e28e5322c26d6312b25d9322c26f4342e27d1322c26ca322c25d5332d26b0322d25d7342e26e5332d26ee342e27db332d26f8332e27ff353028b2302b24ec363028c4332d26c93731297e302a2483312b2491322c25aa332d26982f2923c7322c25d0352e28d53730298a322c259e342d27a9373029ab3630297d36302899352e27b2352f28b9332e27862f2a2498332d26ab342f28cd36302ad9342f29ff302a27ff312c29ff37312dff3c352efe3a342dff3e3730ec3b352dbe36302ac738322bb139322bae3a332c8b37312adf3e362fdc3b342dd43c332cae39322bf03d352df03f372ee53d352dcc3c342ce940372efc423930ff463d34fe423a31ff433b32d33e362fa23a332c9b372f29b33b322bdb3c342efa423932fe423931ff463c35ee423931f3423831f3423831e03f362fd83f362fe43f362fac3a322bc53d362db13b332cbb3d362ecc3f382fe33d362eeb403830e53d362efc1a1815ff161412ff231e1bff211d1aff181614ff191715ff1b1916ff26221fff292420ff27231fff292420bd332d26b1342d266e312b238f332d2581322c2498352e267e342d2571322c248a302a23962f2923812d2821722c2621952e2822b2312a24a82f2923ab2f2923892e2822e8312c25df302a24ee2f2924b62b2621d72e2923aa2e2721a12d26207c2b241f6b2c241e702e27207f2f2720882a241e8b28221d9925201c9926221eb32a2622ae2b2722d136302aab66625e78504a46593b3430c0332e2a952f2a265b292421382924207f2f2a24692e28248e302b27b0352f2a98362f2aa03a322b922f28214d1f18142a130e0b623f1c0a3e3f1c094845200b5d451e0b4b60280d5a47200e64471f0e5c49200f534d23105556271355632c155475361a57823c1d66924622679d4e2764a8532769aa572870914823826031177d522812634e230f7d3318098328140867743e1a70cb6f3685d67b3e91da7c4178c4683364b95d2c51ac552768ac5a28639e54276f9952295e9551275b7d411e56683215655a2c12633e1a09592410064d3d1b0a533e1c0a563e1b0a4a18120e52130e0a650f0a0759100b086c16100c5e1b1511ba28211cb7312b25a92b2722962c29257d2a2723822d2924912e2a25542c28239839352fa15b534b79251f1b5f26231f6d201b178425201b87241f1b8d221e1a92221e1a8d231e1b99221e1a88211e1992211d19b4231f1aa925201b9d25201baa26211ddf2a2621a62a2520e62c2723d82c2722da2b2622c12a2621ad2b2621af2b27219f2a25207927221e8729241f8d29241fa42b2621ba2c2722a42b2621b02d2823b92d2722c92f2925ab2e2822ff191612ff181511ff211c18ff282420ff161311ff161311ff141210ff2e2822ff2e2721ff191613ff1f1b18d2302a24d1312a25ef342d27de322c26e1332d27e4332c26e1332d26d9332c26e8332d268a2e2822ff39322aff383129e7363028f3362f28df322c25a82e2822e3322d26d5322c25cc322c26db332d26df322c25be302b24c0332d26e6362f28bf352f27b6383129e23a342ce238312ba3342d2779332c256f322b247d332c2580352d2676332d2692342e2792352e28a1352f29c2352f29b7332e27b1322d27d1342e28d7362f29ba342e28c6342e27ff2d2824ff2d2824ff2e2925f838322be037312ac5353029bb37312aa936312aa1352e2883322c2681352e289b37302a90372f2ab63a332dc13b332dc23a322be23d352ec63c342da63c332bf1433a31f5413830f0423a31f1403830f9433b33ae3a332cb93d352ec43e362eb139312bd13d342ede3d352edf3f362edf413830e1413931db413830db413830f6433a32cc3e362ec93e362ec13d352da83b342cff433b32eb413930ec433b32ca3e372fc13c352d9d38312ad43c352dff1a1815ff161412ff2f2923ff29241fff1a1715ff1a1816ff1b1816ff27221eff2a2420ff292320db2e282379332b2560332c246e332c2480352e257f352e268b352e2699342e26a2342e2694312b25902f2a238d2e2822ac302a24bb322c2599312b24a9322c25c3332d26cb342e27bf322c25d0312b25d22f2a24ae2d2722932d2721ad302a24a03029237b2d26207f2e261f8f2f2821a5312923ac2f27219f29231f8825201cc0292521ca2b2722cb2e2925a9686460624c4844b13f3a36b4312d29ad312c28982d27243c272320742c272190302b25a5312c2785312b269b362f29ae6f5e51942f26216d1e18144322130b54401c0a5a401c0a5c3c1b0a5f602a0f674c220e5f48210f624a22105b441d0d5a451f0e604e24125455251255662e165e783b1d55863f1e5e91442272a2512975a35128685328127c5f301979622f166859291273542712932b1307833016097e3419097cc86f36698e4e2591db7c3d80d1723794d67c4162b45e2e5bb15c2865b05f29649e54294089451d56804321606e3719615e2e13635429115d441e0b5338160754391a0a463d1b0b523e1b0a311f130c3c130e0a43100b074a0f0a076c15100c831c161288241e19b52f2924be312c27ce2e2a25a62d29259c2d2a25872f2b26822e29259438332d99544c45b728231e742a26218127221d8b25211c8b231f1b62211d1975211d1962201c188e221e1aa2221e19a4231e1ac325211dd627221dfd2a2520ef2b2621dd2d2722fb2f2a24fe2f2925e82c2823f62f2924e62f2a248829241f9429241fb62b2621ae2a2520d32c2722e42d2822ec2e2924d52d2823f2312b26fe322c27fd312b27de302a25e924201cff191512ff1b1613ff1f1a17ff1d1a17ff161311ff151311ff362d26ff382f27ff13110fa42d2722872d2722872c2721ca312b24de332d26e9332d26c0312b24d9332d27b6312b24aa302a23b6322c25af322b24872e2822b3332c25d9342e26f6362f28b4312b24ba312b24bd312b23bd312b24a0302a23a4302a24ba322c25ff39322aff3f372f95342e2787332d2666312b259d352e27bd37302988332c2581332c257a332c269d373029aa362f29bb36302998332d278a332c268a312b25ad322c26b3312b26c0312c27fd38322be836302af83a332cff302925ff2f2a25ff2f2a25ff3b352ef339332de43a332ce03b352ea1352f2893322c26aa342e28be38312bca39322cdb3c342ee73e3831d03e3630ed443c35fe463e37fb463e37f3473f37e4443d35f8494037f74b4238d9453c34da453c35ef473d36ce433b33bc423a32d7443b33aa3e362eab3e362f833a342d963d362eda443b32e1453c33dd433a32bd3f372fe9433a32a13d342cab3c342cb13f362ea53e362d953d352db7433931e1443c33ef473e35c2403830b040382fce302a23ff211d1aff3f3731ff342e28ff191715ff1b1816ff25221fff26221eff27221eff26211e9d3b332cb13e352e753831298b3a332a8f3d352ca13f372ea63c352c8239322a7638312a72372f2885352f28af37312ac93a332bbf39322ce43e362ffb413931ff413830f8413831f4413931ff423931f53d352ff73c352ed639322c93382f2993382f28b239312ab3393029a7382f27c83a312ae43b322aca352e28da342e28c9292622c1332d289f67625d96524d498f3a3632932f2a27d5322d29ba2e292661282420602e292384312a25a9322d279e332d28c639332c9c382f2a852a221d6c1c16125429150b59411c0a62431e0b7334170a635a260e6735180a5b461f0e5747200e4f441d0c5b441e0e6446200f4a471f0e4a562511566d3218687e3d1f497e391b6f964a2754954721735127126e44220f50612d145e5c29115853240f604f230f7a210e05932711077b2913078831180983562c14717a401d95d97a3c8ecf733b67b75f2e62bd672f59b75e285fa656284d944c253978391669723d1f6261301568552a125f4f260f674b250e5b3816074a3c1a0a4e3d1a09533e1b095c361a0c4b15100c40100c08480e0a0666130e0a4d19130fb0251f1ac92e2823ac2d2823a52e2a249e2c2823702c28237e2e2a25a6302b26a2342f28cf5049408824201b53221d19a928231e9b25201c95231e1a861f1b17851f1c1898201c18a2211d1a82211c18a2221d19c324201ced27221db626211db6292520cd2a2622c22b2722ca2a2521ab2a2420c229241fcc2b2520c82b25208927221ea728231e9b29241fc82b2620c52a2622cf2c2722dc2d2823cf2c2722c72e2822bf2e2822c52f2923ff1b1814ff1b1814ff1c1815ff1f1b18ff161311ff141110ff382e26ff372c24ff1b1714922d2720882d2720952d27209f2d2721c7312a24a72e2821972e2721a82f2822b22e2922c5312b23d2322b24a32f2923a3302a23bc302a23b4322b25ab312b25672c26215f2a251f7f2d28219a2f29229f302a23a12f2a24802d27228a2f292292312b2488312a24ac312b259e2f2a249b322b26a3342c26a7332d269d342d26b2332d26512f28226b2f2923a4322b2596312b25a9312b26792c2721bc312b25b2302a24c9322c279f2f2a24b3352f29d5352e28ff322c28ff322c28ff332d29fb3f3730ed3d352df03d352ded3e362ea336312acc39322bd63a322cdc3c352deb403831ef403933eb423c35f649403aff4d453dff514840ff524940ff50463ece4d4339de4c4239cd4b4139fa52483ff84e443cbb493f37d24a4138b6463e35b7463e36a2423931cd4b4138d4483f37df494037ea4c4239f54c4239d4453c34eb483e37bf403831e0423a32df443b32eb473d34d7453b33d1483e35f64c4339e54a4038af433b32b6463c336e3c342cd7332c25ff37312bff49413adc3b322cff1a1715ff1f1c1bff241f1dff211c19ff211c19c93b332dd0433b32de4a40379140372fe0483e358e3f372e763d352db8443b32d4463d34d8463c34c4403830a23c352eda413932d3433a339f3b332cbb403830ff4a4039da463d36e7473e35d5473e36d2473e36ec463c34cb3f3630bd40362fc73e352ec340362fb53f352e943e332c7f3a312adc403730c23d342dbf3b332dcc3b332ee8463d36b468635fb4524c486b36322e902d2927b52e2a278b2c2723552924207c2f2a2476302a24832e2823bb342e2898372e2874372f298a27201b621a1410633f1d0c60421d0b5c441e0b65200f065956230c503f190a49421d0c52461e0d6a47200f5d47200f4a401b0c52411d0d41451c0d445a27125b74371a6a7f3d20638840216c5a2c175b682f155c6f33165a663015585d2b134f5527115e3f1c0c4f431b0b86180a048f1f0d0578210e05812611069b2d150992321709a0cd733c93cb723b89c168366fb45f2f6ac3692e6bb6612c55964b215486441f6c773c1b6a6533186a582d146d532a13634c250e5045200b4b3815064f271006483c1a094d3c1a095b391a0b4016100c5a120d097f0f0a0759120d0a6519130fa0241d19ad2c2620b2312b259e2c2823a62c2822782e2925a0302c26a72f2b257f2b262198312c258b221e19a6241f1b9f24201cb928231ec828231eb626211cc627221c7a25201baf29231eb92c2521df2f2924b22d27225a28221eb62f2924c9302a25fb312b26c12a25209927211de52e2722f92e2721ff302923e3302924e9342c26c7352e28e438312bce38312ce038312bec38322bfa38312bca362f29b3342d26e0372f29bf352d27ff1a1714ff191713ff1f1a17ff1d1a16ff151211bd362e26ff362d26ff1d1815aa342c25bc352d25d4362e26ab332c24b8342b24be332b24ab332b24af332c25e8393128f93e352bd93b3329dd3c332ad53a332ac53b3229cc3b332a98362f27b939322ba638322ab339312a9f38322a85373029d43b352dc739322bca37312b85302a25d1352e28ea342d28e7332d27d5342d27ce362f29d138302adc39322be43c342d51302924bf3d352ec23d352eb93b332dbd3c332dad352e28d5352d28c63029246b25201bab2c2621e9342c26f8372e28ff322c28ff332d29ff302b27ff7c7167ff7f736bfe81766eff85796fff8d8076f98a7f75ef92857bfd9c8f83ff9e9082ff93877aff8d8074ff8e8174ff938477ff8a7b6eff877a6cfe867a6bff928577fe8c8072ff928677ffaa9a89ffab9d8cfeac9d8ce8a49685fcac9d8af1a69886bf958976bf998c7cdba29381e4a39583fcb1a08ee8a39282eea19282cb9d8e7ed49e8e80ffaf9e8dffaa9986ff918271fe827465f7736659e7726559e971655aa7655a50d76b5f54cc62564bd73f3730ff494138ff484139ff171513ff191715ff231f1dff201c19ff1d1a17ff241f1cff816e62cf726158fd7b695ef2746558ff736558dc655b4f704e463eb45b5249c860564df6695e55e471645ad575695dde817265c9877768ce867568dc8a796cf88f7f72d98373665861554abc706458d96e6256fe716457cc61564ba95a4e45fb6e6055ff6c6054ff6e6357f06c6055e0685c50c165594eca66594ed16c5e53f2726457ce6f6a64af544e4999393430502a2623982c28258d2e29245427231f802d2823612d27226f2e2722ad342d28eb3c352e93322b258d241e195817120e69451f0c5e421e0c6b46200d852b15096c3c1a0a673f1b0b48421d0b4a471f0c46441d0c66451f0f66462110463f1b0c55431f0e4450230f4e622c144f6f3419758944256434170b631e0e0652612c135d5f2a12635b28124d52230e72231007682e14084c481e0b71190903721e0d056a1d0c046d1c0b045b1f0d0594271207932d14088d30170a7e84482484bc643781c66f3683ba643287b86732568d48205c7a3d1c5c6834176a5a2e1561502711594a220d473f1c0a52411f0b5c3d1a0958280f055c3e1b0a4d3c1a09563b1a0a4c19130e5c140e0a700f0b076c120d097219130fae231d18c92b251f852d2721b72c2824932c28237e2d2925622b27238026231ea924201bb526211b9826211ba525211caf25211ca824201bb025201bbd26211bc929231ecf2b251fc22c2621b12b2520e2302924b12d2622992c2622e9302a25da2e2722c72c26218d26211dab2b241e56251f1aae2b241f982d26219b2f28237b2f2924692f29248c312c26ba362f2ae737312cf438312be3373029e3362f28f938302ad4362e28c827221dff1a1713ff1d1915ff231f1bff161412c92b251fff383129ff3a332bbe362e26d1372f27d0372e27f4393128ed382f27e9372e26dd362e269b322a23c3382f27d53a3128db3b3229da3b3329d53c342bb3383128ce3d352c9f3831299f3a332ba03a342ca739332cb63c352e983b342dc03c362fb438322cb037312bcd36302bd136302aef37302afc38302abd322c26c3332d27bc332c26d2362e28c2372f29c439322bb83b342dc33c342ec03d352fe13f3730d33a332dc1352e28ae2f2823b52a241fe42f2822ea302923d92f2923ff2f2a26ff2e2925ff2d2724ff5d554ccf504943b9504842fa60554ee662584ffe6b6157eb695f56ee6a6056c25e544bb0594f45ca584d43e55a4f45ff60544aff605449ff5d5247ff605449ff64594dff685e52e060574cc962584df06b6155a761574c9a5f5449c86a5f52ca655a4fc3645a4ed76a5f51f5726658da6c6153fe756859f8736556fa746657e6706253c76a5c4fe8716354ef6e6151ea64584aeb5e5346e45a4f42c7564c41e35c5247a9524a40aa544941b252473fc838302aff403831ff423932ff181614ff1d1917ff211d1aff201c18ff1e1a17e963544aee66574cb35b4e44ca5e5045a554473db852473dc64f463de7534941b44d443db84d443cdc524840d9544b42d4594d44cf5e5146b45e5045b65b4f44c85d5045bc5b4e43ee5e5247b251463c9c4b4138f050463de94d423acb493f369441372f95453a316d40362eae483e3788443b349a443b337540372e7142382f95463d34d04f443bd25c5551a83a3430992e2926812c2824852c2823662b26217e2e28237e2e28245b2d262289322925c539302a902d26217e201a164f1f130c64441f0b5c451f0b793f1e0c6b51230d6d2c14096d401d0c563d190a43411c0b54471f0c59431c0d64431e0e61441e0e4f421c0c504a200f515d2b15596b30186c642f195a622c1463642e165e612c145c5c28125053220e52441c0c5a36180a3d421909463f1a095953260f5151240e74190903731a0a045c190a0393180b047e1b0b049e241007872811077e2d140880974f298fb9663773b565308fb6673469a35828547d3e1c5c6e381a5e5f3015565127104c4a230d3a401b0a463d1b094d3f1d0a463919085c311206563d1b0a4f3b1a09663e1c0a551b151058150f0b73110c08b0140e0a9f1a140f9b211b16be2a241c9b2e2822a32c28249d2d29254e2a26227126221fa825201b81231e199a25201b8925201b5f211d196b211d189a231e19ca26201ba526211b9027211c9929241eaa2a2520932a2420c12e2824e8302a26c02c2722a72a24207a27211c6a251f1b8f26211caf29231eb92b25209b2b2521862c262295302b27ab312d28d636312ddd36302cde37302be637302bd8362e28ba342c26ac322a249c31292391302923ff1b1713ff1c1714ff1f1b17ff26221efa161411ff322d26ff302a23f33c332afc393129f3393028ed382f279331282183302821602d261e8130282183322a2281332a224d302820a2362e26c93a3229cb3a3229d73c342be63f372eeb403830ae3a332c9839322c7d38322b6539322b933d362f8e3a332da93a332e93362f2a71322c2781312a25d9362e29b7332c27a2312a24b4312a24b9322b25d4373029c839332ba93b332bcb3d3630af3a332da53a332eb038322cd8362f2af6342d27f4302924f12e2822df2d2621ff312a24ff282421ff2b2622ff28241ffd473e38bf423a34953c3530b9423b35773c352f9a40393392403833943f3833a33f37308e3d352db33e362ee540382ffe413930fd3e362ef13d352de840382fd0403830df443c33863c362ea03d362ee7453d35d0423a32ba3f372fab3f372f863c342b67393129c941392ff6483f34fd494035fd483f34bb41372ea140362c6a3b32289a3e352a953e342a993e342a4c362d24ae3f362cc742392fc4423a30db443c33f0473f36e5473e36b2443a32bc322a24ff3c352eff39332cff191614ff1e1a17ff201c18ff1f1b17bd31292491463a33e250433ba8493d35aa4a3d34af443a32b2413830ce413931c13e372fbf3f3730ac3d352f8c3a322c933a322b9439312adb40362dc13e342cb73d332b9c382f28c23b322a9d372f28bf362f29f1352e28c82f29239b2c2620792a231d6727211c8c29231eae2d2721b52d28237f2a24208228231e932b241fb42d2620d0312923de322a25b8433d39ab2f2a27b4302a26a82f2a269828241f862d2822912f292584322b26692f2823b9382f296728211d5f1c1713451d110b4d401c0952421e0a61291307494f200b473b1809573a180a493d1a0a5c411c0b4845200c55411b0c6a441c0e6b47200f52441d0d624f2310535325126c6b341c703f1e106733180b585f2b1367602c15745c2a145d51220f5c2d1308582f130850441a0954471d0c6d562711505725104d69321456572710743116096e1708034b190a03691f0d0582190a048a1f0d057a240f06652a11066a291408704c28128cb1633089a85c2d6f9954264e763c195a6734164853260e5c4e261047421c0b53401c0b553e1c0a393a1a092d3d1d095c3815066d2e1407653f1d0a583c1b096030170b5616100c79130e0a86130d09a51a140fbb221b159c27211aa92f2821782c2824652926226d26231f7b231e1b94241f1b7e231f1a87241f1ba425211d9b25201cc328221ed128221dbc28221ef62e2822c02d27228028231fb82d2823b52d2824ae2c2723b12c26227727211db429231ec72a241fb929231f46231d19d12c2622a62b2622c32f2a26de35302cba342e2bd336302bdd37302be236302be7362f29c4332c27a7312a258d322a25692e2622b0332c26bf342c27ff1b1713ff1c1814ff231f1bff151311ff352f2bff302a26e6352d26e2352d25c5342c25ac312a22cb312a23e1342d26f6352e27722b251f91302923b0342c25a6342d259d342d25b5362f27eb3a332afd3d352db1373028f33e362ed03b342dc93d362ec43f372f903e362f62383028ad3b342db13a332da939322ca538312bc13a312bb9383029e43a322bb0362f28b4352e29a2322c26ce38312aa6352e2898352e2896362e275b302a256f322c27b537302bee38312bc0322c267f2a241fcd2f2923c22e2822bf2c2621ff292522ff2a2622ff302c26c9463f386f3b342e893b3531b93e3832ac3e3731ae3e37328438322d6a342f2ab83d3731bc3d3630d0403730e940372fdb3e352ef43d352ddc3a322bcc3e362fb4403730613b332cc6443b34d5443b34f0473e36843c342ce8443b33d4413830ee443b32f3443b32fa443b32b33d352db63e352dc63e362dba3d352ce841382fd340372e85382f27cd40382fda42392fb440372e9b3e352cb441382fdf443b32fd494036b2413930f0473e36c9433a31d7312a24ff3e3732ff3d3631ff1d1a17ff201c18ff231e1aff251f1bbc453b32a64339309d42372fbf4439308e3e342d963c332c9c39312ac43d352e9738302a9938312a6c332c2791362f2ab73a332cb53a332bd73b332cbb3a312ac53c332cdb3e342c95372e27ca3a312ac6352d28a52f2924a32d2722842a231fa62a231ebe2c251fb92c25204b26201bb42c2622aa2c2621bd2b2520d62d2520c12d2520d22f2722e5322a25b83c3733cc332e2ad4322c288d2d2722982e2923b3302a269b322c2680332a25b73a312b6827201c671c1612523a19093c3c1a09413f1c087a1f10074855220c403715084c37160842381709583c190a67431e0d53401b0b61411b0c61441d0d5d451e0e604c220f67562714966b351f685225134e51221053552511565624106d5525125e4e210e4c431b0b53411a0a47451a09634d240f5057291057612d1352632d14447634154f6d32145a5d2a115b4e230e611e0c04551d0b036e1f0c04611609035d1a0a0468200e0550240f05602912066e63331889934f26899651265e82411d577038165a613014635529115a451f0c59421f0c453c1a084a3e1c0a333d1c0a253d1c08613b18076a220e05643c1b0a543a19085b2d180d6318120d9c15100ba7150f0a9f1a140f881f19149426201a7e2c261f7f2a27218d2926219c26211db227211daf27211dc229241fa527221ea127211dbd27221ecc29231fd52b2520b6292420b32a2421ae2a25218b2a24208f2a2521902a25218429231f8428221e9b28221eb92a241fc92a2520da2c2621b12a2420c02e2924ac302b27c637322dfb3b3530fc3a342fe839322dd937302bf938312bff3a322cdc362e28e2372f29ae322b26c4342d27d0332c27fa1e1916ff1a1713ff1d1815ff201d19ff1a1816ff151311762c251fa32f2821d3342c25c4332b24c5322b25a0302a23d0332c26c3312b259f2f29239f2f2923bf342d25883029229b332c25a4332c2596342c25ae362f28ce38312ac038312ab237312aab3a332b963b332c8838312a9f3b332cbe3b332db939312b93362f298d373029b03a312bc53a322b5c312a2497352f2a7b312c2785302a259d322c27812f282395312a25be352f29b1362f2add3a332def38322bd9342e28ee352f28d7332d26872c2722de322c26ff2a2622ff2d2823ff2e2a2479433c36d848403acd443c36b43d363074352f2ad2403732a63c342faa3a332ed43f3731bf3e3630cd3f3731e83f3731e33c352eec3b332de13a332cd83e3630b2413831573c332cb2443b34c9443c33f8494037ff4a4037f3473d35db423931a73d332bb73b332bdd3e352db73b322add40372ec33c342ccb3e352ea63b332be040372fcc3e362ea43b332ca03b342bc440382f9a3f362da742382fc0443b319d423830bc443c34cd433a32c13e362fcd2c2621ff211f1dff161312ff1e1b18ff231d19ff231e1aaa39322a8f393129933b322aa43b332b9638302963322c2566312b245e2f292387332c268d342d2783332c26b238302abe39312a84352d26e43b332ce63c332cd33a312aaf362e27a1362e27a5372f2891342c2696312a25952e2823812b2520902c25208d2a241eb12c251fb22c2620d12d2721b42c2621bc2c26219e2b241fc42d2721fc302822f6322a25d5312a24cb3e3935e936312cba302a259a2e2823b9312b26ab332d28a4362e2896362c2765251e1a4f18130f523518094b3b1b0a343b1908502c13074552210c583918094c381608453917093d381708303715074f3e1b0b503f1a0b63421c0c5d441d0d5849210f6052251278371a0d5e411d0f575023104c4f210f574f2210644e21105a3d1a0b693115094b411a0a632d1509705227115b5526105d622e146d6e36185a7135195390451c4e833e1a456d32135e622e135d51240f523c180a4c260e0547260e043d200c0443160803601d0c0456220e0563291006724e26136b562c13557f3f1a4c703516576330136b5a2d13604b230e41411d094d401d0a463d1b09393b1a09373e1d0a353d1d0940371807502b110651391908513b1a09663c1a093d17110c7516100b7e140f0ab91b1510a7201a158926201a7f2a241e85292520ae28231faf29221ee42c2521cb2a2320bb28231fc629231fb628221eb628221f6c25201c8e28221faf2a2521bd2c2623af2b2723a02b2622c52d2723c32c26228028221ec62b241fd72b2521f72e2823e52c2723f52f2926d4302a279d312b27e9393430d839332edc39312cea38302bfc39322cff3a332dff3b332df838312ba0322b25c9342c279d312a24bb342c26b8332c25ff1d1915ff1d1915ff1b1814ff1c1815ff13100e4c28221c6c2c251e97302921a02f2922792e2821c0322c25ad2f2923a8302a249a2e28227d2c26216729231e7c2d2721ab312a24db332c26eb362f28ce332c26eb362e28c3332c26dc38312abb3730299838302ad03a332bd93c332cc739312ac6383029ba383029b939322bd53c342db539312b66352e27a13b332ea038312cbd37302bca332d27d9312a24d6342d26c3332d26c1342e27d4363029e037312aed38312ad7342f28d1342d27d3342e28b2302a24ff292521ff2b2622ff2b26237d4a423bb84b433bc7463e37cc3f3831e8403831b33b332db33b332dad3b332ebc3e3731ef423933eb413933973a312be03d352ff93e3630ff3e3630cf3f362ff4473d35c2453c34b9453b33cf463c33e3463c34dd453b33f6473d34e441372fd13e342d78352c255f322a2386362d26b13a322bb63c342c69362e27cc40372fc13d352db63e362eab3d342d8a3a322b6e373029853d342db4423931db443b33ef493f37d8443c33ee423a32c63a322aed2b2620ff12110fff1b1815ff201b18ff201b18f22d2721db352e26c5342d25bb342d26e5372f27b2312b24702d2720bd352e27bf352e26b6352e27c4362e27df393029d9383029c9372f28d3372f28d0372f29b8352e2789322a2494332b26ab352d27ca38302aa9332c2697302923b42f2923ac2e2823882b2520bf2e2620d42e2721f4312923dd2e2822e62f2924cd2d27218429221de82d2620d62d2620eb302822e3312a24d33f3a34bd2c2723852e2823b6322c279b322b27a2382e298d342b2557211b174115100d5d3d1c09493919093b3819083f491e0b5e411c0b6d39170a473615084838160837371507283313063e3514085a3d190b3a3b160854441d0d4f451d0c5c4b200f723a1b0e643f1d0e694e23115c4d210f5a4b200f5b471d0d5e451d0c4e4019094031130749461e0b6150250f65582a11646733156a6f371869773a1c5e7d3e1d5598462054974a1f5a8d441d637b3c1a5b662f13575627115646200d3d1f0c04343012053a3112064a150803601a0a04671f0d0558240f065f2c1308466831144b72371547612c1157582810705127105946200c4c401d0b3e3c1a093a3c1a09363b1a09373c1b082d3c1c082b381a07473313055c3216086c3e1b0a703d1c0b641a140f7317120d6f140f0ba91b1510a2201a1571231e187828221ca028241f932a2320b82d2623cc312a26cf312b27ac2f2824b93029268e2e28239c302a259e312b2785302a267f302a268e322d289a332d29c536302b712e2824d7352e29e5342d28fe362e29ff37302ae8352e2af237312d4a2c2623bd39332fe03f3834ea423b36fe413a35f03e3631fc3f3831eb3d352ff83f3731ff403831fc403731c53a312baa382f2977332b246e332c25712f2821ff1c1815ff1b1713ff1c1814ff1513104e2f28219f362e28dd3c342be53b332bba39322ad03b332ca338302b89332c2767302924442c26206730292287312a24f139312bff3b332dff3e362fff413831ef3b342ddc3b332dea3d352ff0423932fd473d35de403830e3423830f6433a30c53c342cdf3f362ecf3f362fec453a32a63e352e833b342dba413a33d1443c35d13f3730d03a322cfd3a322bde38302ad437302acf38322bc437312bce38322c80322c2798352e29c738322cd23a332dc839332cff231e1cff221e1bff24201d794b433cd1504740da4c443df04a413ae2453d36eb453d38d8443b359d413933f0463d37fa4a413aef483f38fc483f39f3453c35ff483f38ff4b413bff4f443dec4f443bec53463ebe4b4037a4463c33ae473d336f3e352c753e352d7e3f352d913e352d51352d2637352d2660372e28ea443a31d8433931ca443b33c2463d34ab4339328d3e362f793e352e4b3a322a623e352d8c413830f84e443cff50473eff53493fff554a42f74b4239e1433b33e72f2923ff171412ff181412ff181512ff191613e83d362dda3b342ced3d362ee13d362dcf3d352eae3a322ba337312a9d3630299938302aa939312bb13a322cc13b332dac3a322cb33a322bc13c332dc43c342d9e39312b67352e28ab3c332da83c342ea43c342e983a322c9838302aaa37302a75312a25d5372f29eb372f29ef372e27ff39312adf362e28df362f2a4c29231fac312a24ee352d26e5372e27fd40362fe8473c34c1322c27f0342e298d30292565302823b539302b82312722471e181433120e0b3b3617074c3c1b0953241007485d290e6437180a683b190a613b1a0a3736160937361507353614073d361508543a180a4f3e190a533c170a50431b0c66491f0f57441f0f63411d0f6b4c22116549200f5d491f0e6631150a5f371709423e17085d471f0c5d4d230d5c552910585a2c147d67361867733c197e8145206581411e6e8e4a2251a45223559b4a20629b4d22648c46207082411d61683116525827105e4a200e553316093331130536200d044d1f0d05501609034f1c0b044b230e0541240d04485428104e5e2c12505a290f6b552b11604a230d4f421e0b57421f0c443c1b0948401f0b3d3d1c0a343a1908283919081d3a1a0766361607653718095d3b1a08603c1a095223150c7e19140f6316110d4c17120d931f1a1570241e18a029231dbb241f1acd25201ae627211bdb26201bbb251f1a92241f1a91241f1a9626201cb129231ea828221ec92b252068251f1bab2a231f8228211d6227211db12c2620d82d2722fc302923f22f2923d52d2822e7312a24c5302923962d2620f2342d27c2322b25fa362e29fd372f2af6362e29eb362e29ff39312be0352d28ad322a24c4342b259e302822ac322a2398302922c1342d26ed221d19ff1a1713ff1a1714ff1d191670342c2586342c24c03a3129a7372f2786322b24b639312ab839312986332c254d2e26206031292252302822c93c342bf8403830ff413830e13d352d75332b24d93d352deb3e362ee53e362efc423a31df3f362eec3e352ed73c342da1362f2ac638312bb536302ae139322bb139322bac39312b953b342dc5433a33b6423a32ad423a33823e3730a9413a32c7443b34953e352e773b332c983d352d8d3c332c9c3b332b993c332cb93f362fdf433a33d9433931ff26221fff25211dff27221ef14b4138dd4c423bfc50473ff34f463ee64b443dd94c443c9b453d36dc4c443c81473e37dc504740ff504840f64d443cf64c423be34a413af84f453dfc50463ee94f453db4493f36a4463b33c44b4137c4483f368c443b3196473d33a7493f368a453c3388453a327f443a318d42382fb7473d34a2443a3297433931b4453c339741372e8c3d332c3a332a235c362e2761393028dc453b32fb473e35ee453b32bc3f362d913c3229f9453b31e241362efd322b24ff191614ff1b1714ff1b1714ce302924c6382f29b3372f28cd3b322ad53a312abe393029ab372f289c352d26a5342b25d1372f278f312922bc342b24e7372d26d8362d25c3332b247b2c26208e2f2721812f272195302822cb332b25ce342b25b5322a23c03129239b2e26214f2b231e912f2720bc302822e8312a23d9302822d92e2822bb2c2621c72e26217826201bc02a231fbd29221ea927201bf129221ecc27201cfb362f2a9c3029258e332b26c53c322d7f2d24203d1b1512422c150a4e391808433b1a083f2c13073f56250d513918095d391809643a18095c3b1b0c3f39180a363615084638170a3a371507523b17094d3a17086e411a0c8a2b140b722a130a65441f0f6f482110744821105c411c0d603d1a0c57411a0b523f1909814f26106b51280f72572b11545b2e125e5e2f155e6834176b7a3f1c7988482272834120738b47243f97481f599f4d2277a755287b9d4e2687924a25707d3c1d5e683015635a2a124c4a1f0c4d3e1a093f381607383917074135160656170903511b0c044c1f0d0456250f055e2510066249230f66582b113947200b42441f0a49401d0a423d1c0a44401e0a3e3f1d0a3a3c1b0a3b3c1c092d3b1b08363c1b0953381807632b12065d3b1a09493919084c27160c5519140f6117130f9e1b1611951f1a1595241f19ce26201aab241f199f241f19af251f1ab1251f1979231d1983251f1a8526201ba52a241ea329231ebd2c25207b27211cad2a241f7c28221dda2e2721fc312a23ff332c26ee2f2922e22d2721c92d2621ef332b25ed352d27dc352d27c7332c25d4342c26ed372f29f83b322cff3c332dff3f362fff3b322cc9342c26ce342c26ea352d27f7372e29fe362f29f8362e29e2352e29c2352d27ff1b1713ff1b1713ff1c1814fd17141196362e26c63c332be73f352db0382f28a0362e279d352d267f322a236e302922602f272079322a23a3372f27e13d352cd73b332bdf3e352dc73b332bdb3e362edd3e362eef413930f541382fd840372fff433a32e53c342dd03c342dc338312bcb37312bab352f29a53b332da13f37309d473d34a04a4038bf50463cc251463ddf554a40e454493ff4534a3fd94d433abd473f369f453c35a3453c34ae453c34d54c423ac74c4239dc51463e9b4a3f37ff221e1cff24201cff241f1cce564b42f35c524af85f544cea5b544cd959514bd55a514aa6544a43b4554c44cd584f47d9594f46f45e534beb5b5149ec5d524bff61564fff665b52b2554b44f75e524ac7584c43df594e46ed5c5046d7554c43e15a4f44c15449409951463ba352473d714a3f35a954483db053473dbc56493fc7574a408b4e42389a4c413889453b338940373066383029613931296b3d342bc2463c33ea493f36d9443b32bd423930d0433930ce433930c6413830ff191513ff1d1916ff1c1815ff221e1aef3f352dd23b322ab9393029d33a312aaa382f28b03a3028a6382e28a3372e2798342c25d23830289d332a22b9342b24c1362d25c0352c25bb332b2490302822742e2620842e2620a23229239f302822bd332a24a0302821ac302822752c241fa02f2821ee352c25ff372e26fa352c25da322a24b12f2722ca312a24e5332c26bd2f2822b12d2721af2c2520ef2f2721da2f2621f5302722ff342e29842f2823cd3c332e4f28201b401a14113e281308593b1a09503b1a095a3f1d0c543417094d3414084f3818094f3a18095b3b190a4a38170a4f3917094e3917092d3514074e381608563a1709433a15087a3c1b0f7a401d0f83441f107b431e106f451f10682e140a622a1208473f19096f3d1d0c754e250e7b52291188592f155053281054592c12525f2e13606b3518687d411c73884722858f4c287d934c25539c4a224b9b4b1f5c9a4c237da15329a0a3572d8e924a275677381951662e1458592710504e220e5a421d0b4d3918092f3817063c3b18074c2e1406401609034c1a0a0357200d0451240f05784d2710544c250e32421d094a401e0a4b3e1d094c411e0a45401f0a333d1c093e3d1d092f3a1a083d3d1c094e401e0a553418085b2f13064538170847371808473519095e1b1611661a1511a21d1813b6221c179a241d189f231d1888221c17c826201ad028211ba626201a7d251f1a8728221d7b29221e8a2a231e8c2b241fba2d26205f28211cc42f2721dc2f2821e2302923ec312a23ff332b24ff332b248729231dff362d27b62f2924d6352d27d1342d26ec372e28ff3f352efd3d332c93332a24ff3d332cb53229246d2b241eac3028225e29211c9d2d2621ca312a25c3322b26e2352e29c7352e28c3372f28b1302822a12e2620d3342c25ca3d342cee3f362dfa423930ba39302a9e372f28df3d342cd13a322ace383028e1383029e93a312985322a2368302820a9352d257b322b23a33830298a373028ae3a322bc23e352cae3e352bc83f362dd83d352dce3a322ac9362f28b937302ac838312baf37302baf3f3730ac473d36a250443c8f54473ec45c5044c55d5145cc5f5246bd5a4f44af554a40c352473fb54e453c84493f378b4a403886493f38bf544a41bd574c43c65c50478e554941d14d443cb34b413aff564b42ff726459ff74695ff26e645be86b625ad8696059f271665fdb6b615ad2695e57aa625850f26d6057ef6f6259da6f635aff7a6f67ff786d66f86f645d735b504ac0645750bc63564de2655a51d261574fd361554edd63584fd062564cbc5f5448a35c4f438f584b3f94584c40a7584c41e266594ceb685b4fbb61554ca2584d43f15b5146c74e443cc8453d35e0483f37e94a40388340372f6b3c332ca4413730763a322ba740372f6d3b322ba242382fb1393028c33a3029db392f29b13c322ad13c322adc3d332cae372e28b9372f28da3b312bb9392f2997342c2699352c277f332a24aa362c25ed392f27bb342c24ba342b24a5332a22ef392f26a432292387302821722d251f8e3027218c302821bc342b2485302720a732292290312821c8352c24de362d25ce352c25fd392f27fe382f267f2f2620e1362e27c0342c27b0312a25be312a24cc322923f6352c25fc372e27cb302721812a24209c2e282471231d19551913103f361708533919094b391808614b210c413e1a086038180a553a1a0a4a3717095439180a5339180a53381709583b180a3d371608523916085a3a1709462a11065a261008753e1c0e6d3f1c0e80441f1073441f0f6238170b51381608802912087a4a230d7d4c250e7e5128107551281080582e1368572d12625f3116646a37186b763e1c76804321788b482382924c257a944d2564a04d2760a04f2576a15027699b4f2580994c28999c512b58803c1a3d6b2f124f652d126f5e2b136651250f62441e0d543d1a0a2e220f052a35150540381707561508035b190b044c1c0b0348210e0459200d05392610053c3e1c09493e1c0a4d3f1f0b4a3e1e0a403d1c09293819072e3a1a08433e1d0948401f0944401e0a433f1e094d3514065d381908533a19093f381708421b1611781e19148b1f1914cb27211bcb2b241efc332c24e2332c25be322a22642d251db4322a22ea372e27c9352c25c3362d26b8342d26ae342c25eb3b322bd83a3029f23d332cf33e342df73e352dfc40362ffd41372f79332922cc3b322bfc403630fc40362fe73b322bfc3f352ffd3e342cfd41362ffe40352d7d322822fb3c322aa7332b23fc3d332be1372e28cb342b25d7352d279f312923de372e27dc372f27933128219b312922a8312922bb332b24ed383028f8383028f33730279b302822fb3a332ae6362e27d9372f28b3322b249d322a23d0382f287c322922522e261f86342b24813129227e2f2821732d251f782d261f672d262085302922b9362f2892352e26ec3d352daf38302ad63d352db53a312ac33e342d903b312aa1393029a6372f29a8352e29d939312cd73a312b93352b25b3382f288d352c26da3c322bb63a312b8e38302968342c268639302a75382f2a943d352e813d352e9c3f37315f3b332dbf463c34d8483e35d24b3f37f353473dfd584e44f35d5249a74f463ef25a4f49bc514843c1534943dc554c45f5584e48fd645951fd60554d684b403afb5d524b9850453eaf554b41ab584c438954493fd866594fd8695d51fb796a5ef374665aec6f6255c8675a4e9c5e5247a75b5249c262564df8696057fd655c53fd60564eba4e453efc524a42e44d443dc3494039bc473d35a9473c34e051453c7c463b325843382e6e473b327e453a3185453a317640362d934238307a3c332bb44238309f40362ec242382fe0423930d7423830d8433a31d8443b33923b322b66352c25dd413730cf3f362fc740362fd941362ffb453b33db403630e03f3630db3f3730bb3b332de64038318f382f29aa38302aab38302abf3a322cc439312bcc39312b71312a24ee3c342ef33d342efc3c342fef3a322de539312ce739312cf439312b782d2520f0362f29fa38302be0352e29e5362e2af3362f2afd342e29fd302b27e3282421741c18154617120e4a371908333617076d34180962612c1144341407313212065238180a553817092c34150731331407463715083e3918093a371608343615073a37150740331409423716095f3b190c593d190b70441e0e842a140a651a0b05573e18097848220d6d47220e7b49220d714c250e7b5128107552281080592e147b5b301667603115766f3b1c617a401c8c854723808a472484954f28869a5429519a482074a250287aa252296f9a4d2580a0542a89984f296c8b45215e803e1e6073371a806e361a685b2a13594d220e62431e0c513d1a0a543d1a0b32311406392911054b261006511609033e190a03371d0b0436210d04333618083f3c1a094b3f1d0a493e1d0951411f0b453f1e09393b1b08453e1d09473f1f0a48401f09443e1d09443c1c084e3014074f2b12063c3c1909543d1a0a83181410921f1a156a201a1460211a156f231c1779241e186d251f1954251e1868251e1956241e1855251e195627201a34251e195f29221d642b231e762d251f752c241f872e2621762d251f8c2e272198302723662c241f5e2c241e6b2c2520642b241f5e2b241f5a2a231e582a221e5629221e682b241f6e2b241f5a29221d9529231d9729211d4a29211c5529211c4f28211b4527201b4b27201b5b29221d5a28221c6028221d5f28221c6328211c5d27211b6628211c7d2a231e802a241e7f29231d8629221d7f28221c8a2a231d822a231d6929211b54272019452720184927201942272019552720196126201958251e186627211b6a29231d772c2520bd27211dc02b2621a42d28236b2a241f662b251f702e2721562e261f5d2e2620632f282267322a256a332b264e3028226b312822793128228932292289332b2393352c24483229225a342b246d352c2578362d267d372e277c39302a7339302a7e3a312a803b322b973c332c893d332b9140362fad453c35ac483e37784239337c423a3585423a357941393483423934734139347f42393489433b3694453d3893443c375640373174473d3751453a3361483e3676493f376e473c355f433931a54a4139a4403830a2473d356e53483e6951463d624d443b694c433b8249413b7e443c357d3e3530873d342e7c3b322c813c332b823c332b753c312957392f2744382e2642382e2641362d2548362d245b372e265a362c255f342b255e332b2469342b2583352c2693362d267231292283342c2671332b2582352c267d342c2569332a249c362f299b38302a6b3129227232292350302721673128236c3229237a322a248a332b258f342c255c312822632f27216a2c25205f2b241e622c241f552c241e5e2b251f6a2d2621732d26217c2c25218b2d26228f2d27228f2c2621972c25218d2b24206428211e5a26201c6227211d6026201d5b221e1b5b1f1c19551c1916911815128d18130f473718074f381a085e1b0d06624e220d4c341508242e11052d3112065d3b1a0a3a3516082e331407303515075039180a4a39180a30381607322f1307362b11075e3d1a0c623e190c603e1a0d6e3f1b0d6b2b12085b3e190a4f3f1a0a6c46200d71451f0c7448210c6a48210c724d250e76522810825a2f1476582c14845d31188b69381b676e38196f7b401d6d83442077934f258f9c552a889a51284a95441e5c994a217fa4542b62964a236e984b257d974d26708c46226283401e6e7f3f1e7e783d1e7368321863572811614c220e48411c0a5a3f1c0b5b3e1b0a5136160835341506452811062d1408021d14070224190a03261f0c0343291206422c1306463e1c0954411f0b473e1e0a4b3d1c0a543e1d0a5a41200a4c3f1e0a473d1d09413b1b084f3b1b0852331607332c11054a441e0b7633190cff221d19ff1a1613ff1e1915ff1e1915ff1e1814ff1c1713ff1b1613ff1b1714ff1d1815ff1d1815ff1f1a16ff201b17ff201b17ff231d18ff231d18ff211c18ff221c18ff231d19ff211c18ff201b17ff201c18ff231e1aff25201cff28231fff2b2520ff2c2621ff2e2723ff2e2723ff2c2621ff2b2520ff191512ff2b251fff29221dff2e2722ff2d251fff302821ff2e2620ff2e2720ff2e2720ff312922ff2f2721ff2e2620ff2a231eff2b241eff2c251fff2e2621ff302822ff302923ff332b25ff312a24ff322a24ff312923ff312a24ff322b25ff332b24ff352c26ff342d26ff352d27ff312a24ff2e2722ff2a2520ff2c2722ff302b25ff221d19ff2c2723ff332f2bff2d2824ff312c27ff292521ff231f1cff241f1cff25201dff25201dff231f1cff201c19ff201c19ff211d1aff221e1aff23201cff201d1aff1e1b19ff1c1917ff1e1a18ff1d1a18ff1b1816ff1c1917ff1e1b19ff1e1b19ff1f1b19ff201d1bff201d1bff221f1cff231f1cff221f1bff221e1bff221e1bff221f1cff23201cff23201dff221e1bff231f1cff23201dff221f1cff24201dff24201dff25211eff25211eff25211eff2c2724ff3b3632ff292521ff3c3732ff312c27ff453f38ff38302bff3c352fff403933ff3c3530ff3a332fff38312dff362f2bff342d29ff362f2bff37302bff37302bff37302bff36302aff342d29ff342d29ff332c27ff2f2822ff2c2621ff2d2722ff302924ff302924ff302924ff312a24ff302924ff322a25ff342c27ff362f2aff5b5149ff857a6fff272320ff26221eff2c2723ff483e38ff312a24ff2a2420ff25201cff241f1bff231f1aff231f1aff25201cff231f1bff241f1bff241f1bff231e1aff231e19ff211d18ff221e19ff211d19ff211d19ff201b17ff1f1a17ff1e1916ff1f1a16ff241e1aff27211dff27201cff251e1aff201b17ff1c1714ff201b18ff302b26ff221d19ff151311e91e1713573919084c3b1a094c411c09543114074a311307423314073a34150752381809283213073637180932371708433716084238170945361709232d110737381609623d1a0d75431e0e8130150b75401a0c563d17084939180966431d0c6b431e0c65451f0c6b46200d6c4a220d734c240f735228107e582d146e592d149363341a7a663519686f37197e8245227e8b4922959c572c8a9e5629839951275a95452059984721759c4d2776994c276e984a2471944a255c863f1c65813e1c617c3c1c6a763a1c5f6d34175b5f2b12464f210d53481f0d5a421c0b63431d0b75431e0d81411d0c1b2f1104262f1205231a0a03291306022d180903461f0c0448240e054f3f1e0b55401e0a443b1b09583d1c0a533d1d0a6242210b5041200a513e1d0a423b1b08593c1c094538190847361808403616076a371b0dff241f1bff1b1714ff1c1713ff1c1612ff1c1512ff1a1612ff1c1714ff1e1915ff1e1914ff1f1915ff201b16ff201a16ff211c17ff231d19ff231d18ff231d19ff231d19ff221d19ff221d18ff201b18ff211d19ff241f1aff25201cff27211dff28221eff2a2420ff2d2622ff2b2520ff28231fff27221dff171311ff28221dff2b251fff28221eff251f1aff2a231dff2c241fff2a231eff2b241eff2b241eff2b231eff2a231dff28221cff29221dff2a221dff2b241eff2c251fff2d2620ff2d2620ff2d2620ff2d2621ff2b241fff2a251fff2d2520ff2d2620ff2e2721ff2e2721ff312923ff2e2721ff2d2722ff2f2924ff302b25ff332d27ff2a241fff322d28ff38332fff312b28ff3b352fff302b27ff292320ff26221eff292521ff2b2622ff292520ff2a2522ff2c2623ff2c2724ff2e2925ff302a27ff2c2724ff292422ff272321ff272320ff272320ff26211fff262321ff292522ff2a2523ff2a2623ff2b2623ff2d2825ff332d29ff342e2aff322d28ff312c27ff322d28ff342e2aff342e2aff332d2aff332e2aff322e29ff312b26ff332e2aff342e2aff35302bff342e29ff352e2aff352f2aff39332fff443d39ff282421ff423d37ff3c3731ff5a5148ff433b35ff463d38ff49413cff433c36ff443c37ff433b36ff3d3731ff3c3530ff3c3530ff3d3631ff3b3530ff3c3530ff3a342eff3a332eff3a332eff37302aff342d28ff312a25ff312b26ff322b26ff312a25ff312a24ff2f2823ff302924ff332c27ff332c27ff322b26ff443c34ff5b4f47ff211e1bff2c2622ff312b27ff443c35ff302823ff2c2521ff25201dff25201cff231f1aff231e1aff25201cff241f1bff241f1bff241f1bff231f1aff221e19ff221e19ff221d19ff211d18ff221d19ff201c18ff1f1b16ff201b17ff201b18ff231e1aff27201cff28211dff251f1aff231d19ff211b18ff28221eff463f38ff211c17ff1a1815e9231c176256260e5e321507592f1207493013075032140741341407313515074d371709313616082b3515082634140633361608573a1a0c263113073f39170a4d3e190a6b431c0d6c411b0b553f1809611d0d06363d1a0955411b0a6345200d6b45200b54441d0b6448200d6f4c230e664c220e73532a1276582c13665b2e157d623218746834188b7d43208e8547236a89472085924d267c964e2579602d14713e1a0a5e89411e5493462065984b24709b4e2767904620688a4420617f3c1d5c773919536e3317576a321649632d12565928116651261053441d0b5a431e0c70441e0d70441e0d533f1b0a452c1307393415053b3315063d180a0346180903401c0b0343230d0448331608493f1e0a4e3d1c0a533e1e0a6841200b6041210b543f1e0a503d1d09663d1e0b4c3a1a0942351707943b1c0d87321b0fff29221eff1f1b18ff221c17ff211b16ff201914ff201a16ff221c18ff211c17ff231d18ff261e19ff261f19ff261f1aff27201aff29221cff2a231dff29221dff29221dff28221dff28221dff28231eff2a231eff2b2420ff2a251fff2b2621ff2c2621ff2e2823ff2f2924ff2e2923ff2f2924ff2b2621ff24201bff2c2520ff332b25ff352d26ff26201aff302822ff302822ff2f2821ff2f2721ff2f2721ff302821ff2f2721ff2f2720ff2f2721ff302720ff2f2721ff302822ff312922ff322a22ff312923ff2f2822ff2e2721ff302923ff312822ff312923ff322a23ff302923ff322b24ff342c25ff362f28ff3c352dff3c352eff3c352eff3b322bff3b332bff514a44ff3f3934ff3b3530ff3b3530ff37312bff38332dff3c3631ff3a352fff3d3732ff413a35ff433b34ff433c36ff433c37ff453d38ff423c37ff3f3935ff3d3733ff3d3734ff3d3734ff3d3834ff3e3934ff423a37ff403b36ff423c38ff3d3733ff403a35ff47423cff4c463eff514942ff4c463fff4c463fff4d473fff4a433dff48403aff453f38ff463f39ff4b433eff4f4742ff504942ff524943ff514943ff534a44ff554b45ff5a5149ff635952ff292421ff675f58ff595047ff74695eff675d55ff665c55ff665c55ff635b53ff635952ff5d544cff59514aff585049ff574f46ff534b45ff514943ff514841ff4f4640ff4f4640ff4e453fff4c433dff484039ff463e37ff433b34ff423933ff403731ff3f362fff3d352eff3d352fff3e362fff3d352eff3f352eff3f362fff423931ff352f2aff443b34ff453c35ff50463fff3d352fff37302aff302a24ff2f2924ff2d2722ff2e2823ff2f2924ff2f2923ff2e2823ff2d2822ff2b2620ff2a251fff2a251fff2a251eff2a251fff29241eff28231eff29231eff27211cff29241eff2d2520ff2d2521ff2e2722ff2e2721ff2d2520ff2d2520ff3f352eff6d6157ff332c25ff1e1b17ce3e2b20644c200d68321407523113064a311306443012064335150736341407383616083936150836351507352a11065c2711094a39180b4e3c190b66421d0d64401b0c6142190b623f190a563b1b0b353f1c0b4a401b0b5f421d0b67431e0c5a441d0b6b49220d5f471f0c654c230e604e250e6b54291262562a12745b2e1682653518776d371a7475391b657c3e1b6086431e7b82421f6b6e30126f3417095f5c2811584f210e6253250f5c994b235f9749226f9449236b8944216a82401e5c7738196473381b586a321757662f1445592710454e220e5c481f0e5e461f0d6a47210e63431d0c65431d0b513b1809613a1a0b452b1206342e1205542e13063e150802451b0a033f200d0449220f0551341809563e1d0a5f3f1e0a66401f0b513f1d0a523e1d09543c1c0948391a0841371808373315067c37190aff2a231fff2d2723ff251e19ff231d18ff231b17ff221b17ff221c18ff221c18ff231d18ff261f19ff261e19ff261e19ff28201aff29211cff29221cff29221dff28221cff27211cff28221dff29231eff2a231eff2b241fff2a241fff29231fff29241fff2b2520ff2d2622ff2b2521ff2c2621ff2a2520ff241f1bff28221dff302823ff2d2621ff211b17ff342c24ff322a23ff312922ff302822ff302821ff2f2721ff2f2721ff2f2721ff2f2821ff2f2721ff2f2821ff302922ff312922ff312922ff322a23ff2e2720ff2e2721ff2f2822ff312a24ff312923ff312923ff312a24ff342d26ff362e27ff373029ff3c342dff3d362fff3a332cff3c332bff3b332bff554e48ff453e39ff2f2924ff352e28ff322d27ff352f29ff38332dff3c3731ff413b35ff47403aff4a423cff4d463fff514941ff534b43ff534b44ff534b43ff4e4741ff4e4741ff4f4741ff504842ff524a44ff554d47ff58504aff58504aff49423eff4e4642ff534a46ff524a46ff59524bff564f49ff58514cff5c534dff605854ff59514cff58504aff605852ff69605aff6a6059ff6c625cff6b625dff6d655fff746b64ff7a6f67ff7c7268ff7a7167ff2e2824ff736e65ff5d544bff56504bff786f68ff797068ff766f67ff726a62ff6e655dff6b6259ff675f57ff645c54ff605850ff5c544eff5b544dff595049ff584f48ff574e46ff534b44ff514841ff4f453eff4c423bff493f38ff453b34ff433a33ff3f3730ff3f3630ff3e3630ff3c342eff3c322cff3c332cff3a312bff251f1bff3c342fff463d36ff332d27ff50453eff3f3731ff39312bff342d27ff332c27ff312a26ff322b26ff332c27ff322b26ff312b25ff302a24ff2e2822ff2d2721ff2e2721ff2d2821ff2b2520ff2b251fff2c2620ff2c2620ff2a241fff2c2621ff302924ff302924ff322b26ff302923ff2f2722ff302722ff52473fff5d544cff2a2521ff23201c65562611613114075a311307513113064e3214073f311307493515074436160829341407533b190a412711072f2b11074739170a6d3f1c0e74431e0f6d3a190b6e3e190a712e140950411d0b383e1a0a373e1c0b43401c0a5f431e0c6047210c5f451e0b6649220d544a210c584c230d614e250f6e51271061522611815f31178369371a67612d166772381a6a7b3d1a59612a0f4f3f1b09583c1a0b663f1c0d4e2810065562291252562410754c2110634e220e70954923648a452165803f1d4e733617586c33175d673017676a3318545e2b13354d210c3f481f0b5548200d6948210f63441d0b62421c0b613f1b0b5439180845341507403315084032140552261005651b0c04651a0b044f1e0c045d240f0663361a0a593c1c0a623f1e0b553e1d0a4f3e1d094f3c1b094a38180847361707483617086e3c1b0bd2302017ff26201bff1a1714ff241d18ff16120fff15110dff16110eff16120eff16120eff16130eff17130fff17130fff171410ff181410ff181410ff181410ff191511ff191511ff191511ff191512ff1a1612ff1a1612ff1b1612ff1a1612ff1a1612ff1b1713ff1b1714ff1b1714ff1c1714ff1b1713ff29231fff181411ff2f2822ff342c26ff1e1915ff372e27ff221d17ff1f1914ff1e1914ff1e1914ff1d1915ff1d1914ff1d1814ff1d1914ff1d1914ff1d1914ff1d1915ff1d1915ff1e1915ff1f1915ff1d1915ff1c1915ff1d1915ff1e1915ff1e1915ff1e1915ff1e1915ff1f1a16ff201b17ff1f1b16ff201c17ff201c17ff3a332cff383029ff3a322bff5c544eff453e39ff2f2924ff231f1bff24201cff25211dff25221eff27231fff27231fff282420ff282521ff292621ff2b2722ff2c2723ff2b2824ff2c2823ff2c2824ff2c2925ff2e2a26ff2f2b27ff302c28ff312e2aff332f2bff35302cff34302cff36312dff37332fff393531ff3b3632ff3b3632ff3c3733ff3e3834ff3e3935ff342f2aff35312cff36312cff37322dff3b3731ff3f3a34ff403f3aff403f3bff3f3e3bff393631ff37332eff746b61ff2a2521ff7c7770ff5e544bff4c4642ff7b726aff433f3aff413c37ff3f3a35ff3c3934ff3b3732ff3a3631ff393530ff38332eff37322dff36312dff35302bff332f2aff322d29ff312c28ff302b27ff2e2a25ff2d2824ff2c2722ff2a2621ff2a2420ff28241fff27231fff26221eff26211eff26211dff231f1cff39302bff312c27ff5f544eff463d37ff28231fff483d36ff231e1aff221d19ff221d19ff221d19ff221d19ff1f1c18ff1e1b18ff201c19ff201b18ff201b18ff1e1b18ff1e1a17ff1e1a16ff1e1a16ff1d1916ff1d1916ff1c1915ff1c1915ff1d1915ff1d1915ff1d1915ff1c1915ff1d1916ff1c1815ff1c1815ea1b1714ff61574eff26201cff24201dff312c275849200d512f13074d2f120655321408442f12064c331508513616083f3415085f2c13088628130a76431e0e5d3f1b0c513d1a0b752210085b281107643c180960421f0b52421f0c423f1c0a3a3d19093a401e0c4c411d0b51431e0b5a431d0b54451d0a5749200b5b4a210c614a220e5a4a220d584d250f62552a125c542512676230166f6b351976532610555a250c6436190c5b3c1b0c5a3c1a0c5a3d1b0c843d1c0e5a1909035b10060277632c155155230f674c200d5468301548793717437034154f69311448642e1352622d145e602c135e58291343491f0c42471f0c3d411c0b47401b0a70441e0c60401b0b543d1a0a533817094b3717094c36160854371806483617065e281106571609034d1a0a03561f0d0567231006613e1f0b573c1b094e3c1b094e3d1d095c3c1c09443718074c361808433315076a421e0cff27201bff2c2723ff251e19ff181512ff13100cff13100cff14100cff14100dff14100dff14110dff15110eff15120eff16120eff16120eff16120eff17130fff17130fff17130fff171310ff181410ff181510ff191510ff191510ff191511ff191512ff191512ff191612ff191612ff1a1612ff1c1815ff231e1aff2c2520ff342d26ff26201bff372e26ff1d1914ff1c1713ff1c1713ff1c1713ff1c1713ff1c1713ff1c1713ff1c1813ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1b1814ff1c1814ff1c1814ff1c1814ff1c1915ff1c1915ff1d1915ff1d1916ff2b2520ff362f28ff39312bff5e5650ff2e2925ff332e28ff221f1aff231f1bff24201cff24211dff25221eff25221eff25221eff26221fff26231fff26231fff27231fff282420ff282521ff292622ff2a2722ff2b2723ff2c2825ff2d2a25ff2f2b26ff302b28ff322e2aff332f2bff34302cff37332fff38342fff383430ff393531ff3a3632ff3a3733ff3b3834ff3b3a36ff3b3b37ff3b3b36ff3b3b37ff3b3b37ff3b3b38ff3b3b39ff3b3b39ff3b3b39ff33302bff322e29ff6b6159ff3e3934ff7e7974ff63594fff56504cff474440ff3b3732ff383430ff37342fff36322eff35312dff34312cff33302bff332e2aff322e29ff312d28ff302b27ff2f2a26ff2e2925ff2c2924ff2b2823ff2a2622ff292521ff292420ff28231fff27231fff26221eff25211dff25201cff25201cff231f1bff25211dff3a312cff38322cff4a423dff433b36ff4c423bff221f1bff201c19ff201c19ff201c19ff201c18ff201c18ff1f1b18ff1f1b18ff1f1b17ff1e1b17ff1e1b17ff1d1a16ff1d1a16ff1c1916ff1c1915ff1c1815ff1b1815ff1b1814ff1b1714ff1b1714ff1b1714ff1b1714ff1a1613ff1a1613ff191613ff191512e712100eff6b6259ff332b26ff211e1a75452213462d1206462e1206523013074d3013074933140753351607553818097b2612098031160b76431d0d6e421c0c6a401b0c7a33160a663d180a66411c0b7648230d53411e0b4f411d0b56411c0a383e1b0a4a411d0b5a431e0b59421d0a45421b0a8249200d72481f0c5d49210d5648200d5a4b230e5e4e2510595227106c5a2c14724a210f4d58230c5c391a0c5938190b5f391a0b5e3b1c0c5c3c1b0c583c1b0c8c7c3d207f45200f63210d05711006024018090363612a1470612b1562481e0c545e2d1451693216506a331749642f144a5927124b552610695428125a4c230f38431c0a3a3e190964421c0b6d421c0b603f1b0a503a18094d3817095439180a5c3817095e33160852381707553919084f170a0366180a045b1e0c045e230f055b381a0956391909593d1d09573c1c09583c1c084d3819084a3618086e4a240ff828201aff241f1bff1f1a16ff211d18ff13100cff13100cff13100cff14100cff14100dff14100dff14110dff15110eff15120eff16120eff16130fff17130fff17130fff171310ff171310ff171410ff181410ff181411ff191511ff191511ff191512ff1a1612ff1a1612ff191612ff1a1612ff1a1612ff241f1bff2e2822ff332b25ff2a241eff322b25e8110e0cff1c1713ff1c1714ff1c1714ff1c1713ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1815ff1c1814ff1c1814ff1c1914ff1c1915ff1c1915ff1d1915ff1d1916ff1d1916ff1c1815ff2b241fff362f2aff5f5750ff443c36ff39322cff201d1aff231f1bff24201cff25211dff25221dff25221eff26221eff26221fff26231fff26231fff272420ff282521ff292522ff2a2722ff2b2723ff2b2824ff2c2925ff2e2a26ff2f2b27ff302d28ff322f2bff34302cff35312dff37332fff383430ff393531ff3a3631ff3b3732ff3b3834ff3b3834ff3b3a35ff3b3b37ff3b3b36ff3b3b38ff3b3b38ff3b3b39ff3b3b3bff3b3b3bff3b3b3aff322e2aff322d29ff686158ff3e3833ff817b74ff695f56ff413d3bff3b3b3bff3b3834ff3a3632ff393531ff383430ff37332fff36322eff35312dff35302bff342f2aff332e29ff322d28ff302c27ff2f2b26ff2e2a26ff2d2925ff2b2823ff2b2722ff2a2521ff292420ff28231fff28231fff26221dff26211dff25211dff241f1bff1a1613ff352e29ff3d3631ff403934ff39332eff453d36ff211d1aff201d19ff211c19ff211c19ff201c19ff201c19ff201c18ff1f1b18ff1f1b17ff1f1b17ff1e1b17ff1d1a17ff1d1a16ff1d1a16ff1c1916ff1c1915ff1c1815ff1b1815ff1b1814ff1b1814ff1b1714ff1b1713ff1a1713ff1a1613ff1a1613f91a1713f84e463fff1b1916ff292421ff2925216d421f0e522e12074b2f1307412f12064d33140754391808572e13077634170b72441e0e75451e0d65431c0c8734170a683715087340190b5644200a6848230c6244200c5a431f0b70441f0c64411d0b423f1b0957401c0a5e411c0b59411c0b6c431d0b54461d0a5f49210d53461f0c4c46200c5c47210d504b220e6a57271169401a0a7336180a743b1b0c56351709603a190c5d3a190b593a1b0c623b1b0c573a190b8f934928838c45257a5b2a156730150959190a034f18090355311409896d34196e5e29134a2e12064b632d1355663116435c2911505729125a5427124249200d734d2510333e190856401c0a6b411c0b533d1a095a3c1a095c3c1a0a4f371709603a180a6d3a180a523716085926110552341506602d13066d170903561b0b0349220d044b2c1306533c1b09593c1c09503a1a085e3c1c094a3719084f44200d89442412ff251e19ff221e1bff241c17ff161311ff13100cff13100cff14100cff14100cff14100dff14110dff15110eff15110eff16120eff16120fff17130fff17130fff171310ff171310ff171310ff171410ff181410ff181411ff191511ff191511ff1a1612ff1a1612ff1a1612ff1a1612ff1a1611ff2c2521ff231e19ff312a24ff211c17ff2f2924f9110f0dff1b1713ff1b1713ff1c1714ff1c1714ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1815ff1c1815ff1c1915ff1d1915ff1d1915ff1d1915ff1d1915ff1d1915ff1d1916ff1d1916ff1d1916ff1d1916ff1d1915ff37302aff615852ff4e463fff39332eff211e1aff231f1cff24211dff25221dff25221eff25221eff26221eff26221fff26231fff272420ff282421ff282521ff292621ff2a2722ff2b2823ff2b2824ff2d2925ff2e2a26ff2f2b27ff312d29ff332f2cff34302cff35322eff37332fff383530ff393531ff3a3631ff3b3733ff3b3834ff3b3935ff3b3a36ff3b3b37ff3b3b37ff3b3b38ff3b3b39ff3b3b3bff3b3b3bff3b3b3bff3b3b3bff312e29ff312d29ff635b53ff38332eff817a74ff786e65ff68615aff3b3b3bff3b3935ff3b3834ff3b3632ff3a3531ff383430ff37332fff36322dff36322cff36312cff34302bff332f2aff322e29ff312d28ff2f2b27ff2e2a26ff2e2925ff2d2823ff2b2622ff2a2521ff292520ff28241fff28231fff27221eff26221dff231f1bff28221eff302a26ff4e4640ff423a35ff24211eff413833ff201d19ff201c19ff211c19ff201c19ff201c19ff201c19ff1f1c18ff1f1b17ff1f1b17ff1f1b17ff1e1b17ff1d1a16ff1d1a16ff1c1916ff1c1915ff1c1915ff1c1815ff1b1815ff1b1814ff1b1714ff1b1714ff1a1713ff1a1713ff1a1613ff1a1613d50d0c0bff675c55ff342d27ff1e1a17b639241a56331609492e12064b2f12063f2f1306593516086a271107622f150959421c0c63431c0c62461d0c5d38160951411908683115086746220c804d260e5546210c66431e0c6c431f0d61421f0c61411d0c533f1c0a5d411d0c5e411d0c49401b0954411b0a45451d0a5d47200c5c461f0d5c47200c5a3d1b0b554e200b623f1b0b74381a0c74391a0c753a1a0c523516095838190b5b3b190b653e1c0c5339190b5b3b1a0b67864020808e4524838d42236c6e321968491f0f6537170a6e36170a532b110651351609535724105a56261143331305455c2a124c5929125b552812474b210d3f461e0b7448220f67451f0c5d3f1b0a77411d0b513c1a095e3b190a6139190a523917096b3b190b6239180a573617084a3516083f2e12054d210e04451307024b1a0a045c220f05652a1206563c1b09573a1a09573819094a371908443416076e542911ff27201bff241f1bff1e1814ff161311ff13100cff13100cff13100cff13100cff14100dff14110dff15110eff15110eff16120eff16120eff16130fff16130fff171310ff171310ff171310ff181410ff181410ff181411ff181411ff191511ff191512ff1a1612ff1a1612ff191512ff191511ff2a241eff221d18ff312923ff251f1bff191411fe342e2aff1b1713ff1b1713ff1b1713ff1c1714ff1c1814ff1c1714ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1815ff1c1815ff1c1814ff1c1815ff1c1915ff1d1915ff1d1915ff1d1916ff1d1916ff1d1916ff1d1916ff1d1916ff1d1916ff37302aff36302aff58514bff4c443eff262320ff282420ff231f1cff24201dff25221dff25221eff25221eff25221eff26221eff26231fff272320ff282421ff282521ff292622ff2a2723ff2b2823ff2c2924ff2d2925ff2e2b26ff302c28ff322d29ff34302cff35312dff36322eff38342fff383530ff3a3531ff3b3732ff3b3833ff3b3935ff3b3935ff3b3a36ff3b3b37ff3b3b38ff3b3b39ff3b3b3aff3b3b3bff3b3b3bff3b3b3bff3b3b3bff302d29e5171513ff5f5751ff79726bff79736dff8a817aff756c65ff3b3b3bff3b3b37ff3b3a35ff3b3833ff3b3632ff393531ff383430ff38332fff37322eff36322dff36312dff34302bff332f2bff322e2aff302d28ff2f2c28ff2f2b26ff2e2925ff2c2723ff2b2722ff2a2622ff292521ff282420ff28231fff26221eff221e1bff3d3530ff302a26ff4f4741ff463e39ff1f1c19ff312b26ff201c19ff201c19ff201c19ff201c19ff201c19ff201c19ff1f1b18ff1f1b17ff1f1b17ff1e1b17ff1e1b17ff1d1a16ff1d1a16ff1c1916ff1c1915ff1c1915ff1c1815ff1b1814ff1b1814ff1b1714ff1b1713ff1a1713ff1a1613ff1a1613ff191612ef1f1b18ff342f2bff2c2723ff211d19813f1e0e452d1206512e1307462f1306463112066d3d1c0d5f3d1a0b63411b0b81441e0e653d1b0b5f49200b8e491f0c62411e0a5745200a4f48230c5546200a6c441f0c6c421e0c69431f0c5f401c0a5d411d0b4e3d1a09513e1a0a583f1b0a55411c0a55411b0a44401a094c421b0a57461e0b655d270f6c3e1a0a7336190b6b35170a6a37170a6736170a6738180b683b190b603d1b0c65411f0e6c401d0e50481d0a4a5e230b5e87411f5a843b1b758c40206f883f1f848a4323796731186b57251254421a0b5b31140853210d0551421c0d5e542310403a190944270f055a5528124d4e230e3a441d0a4d441e0b7746200d5c401b0a67401d0b7b421f0c7a411e0c5838180a4e391809573817096537170a4d351608523416096536170a4f301406372a11044327100554190a035c200d05612610065e2f15075337190945361708423417077f562b13e135251bff241d18ff1b1814ff342d27ff14110dff13100cff13100cff13100cff14100dff14110dff14110dff15110eff16120eff16120eff16130fff16130fff16130fff16130fff171310ff171410ff181411ff181411ff181410ff181411ff191511ff191512ff191612ff191511ff191512ff191512ff1b1713ff2d2620ff372e28ff2c241fff39322cfb1a1612ff1b1713ff1b1713ff1b1714ff1c1814ff1c1714ff1c1714ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1815ff1c1815ff1d1915ff1d1915ff1d1915ff1d1916ff1d1916ff1d1916ff1d1916ff1d1916ff2e2823ff36302aff58504aff544c45ff2f2b26ff2a2623ff231f1bff24211cff25221eff25221eff25211dff25221eff26221fff26231fff272420ff282420ff282521ff292622ff2a2623ff2b2824ff2c2924ff2d2a25ff2e2b26ff2f2c28ff312d29ff332f2bff34302cff36322eff37342fff383530ff3a3531ff3b3832ff3b3834ff3b3935ff3b3a35ff3b3a36ff3b3b36ff3b3b38ff3b3b3aff3b3b3bff3b3b3bff3b3b3bff3b3b3bff3b3b3bff312e2ae0181513ff5c544eff7a726cff69625bff9b928aff736d66ff3b3b3bff3b3b38ff3b3b37ff3b3934ff3b3833ff3a3632ff3a3531ff393430ff38332fff37332fff37322fff35312dff34312cff332f2bff322e2aff302d29ff2f2c28ff2f2b26ff2d2925ff2c2824ff2b2823ff2b2622ff2a2521ff292521ff26221eff24211dff3d3631ff453c36ff4d453fff48403bff2e2925ff231e1bff201c19ff201c19ff201c19ff201c19ff1f1c18ff1f1c18ff1f1c18ff1f1b17ff1e1b17ff1e1b17ff1e1a17ff1d1a16ff1d1916ff1c1915ff1c1915ff1c1815ff1b1815ff1b1814ff1b1814ff1b1714ff1a1713ff1a1713ff1a1613ff191613ee1a1714ff544a43ff27221dff1e1a17e53428207b3e1d0d452d1106472d11065c2b110761271108613f1b0c81431e0e84461f0e54421b0973441c0b73331709423a180758421e0a6c45200c5b451f0a323d180871421d0b6b431e0c62421d0b65411d0b5e401c0a523f1b0a5a401b0a50401c0a46411b095d421c0b54401b0a6d56240f724b1f0c352c11064e3014086632160a6e36180a7b391a0b6538180b673b190b6c401c0d69431d0d5b481d0b545c230c4f5a230c4b59220b59853f1e4f803c1c61843e1e5f863d1c84853f218e8644246b74371a4b56240f56491e0d543a170a592e1208552b110746401a0b42471e0d4a3d180a443a180843451e0b774a241064431e0c7c45200d61401c0c5b3c1a09633e1b0a6a3e1c0c533a190a493716085136160853341608573416086a37180a483214075c30140850281105512d1306591c0c045d1c0b0450341809523a1c0b4b36180840331606483115077b5a2d13ff261f1aff2a2520ff201b15ff171412ff130f0cff13100cff13100cff13100cff14100dff14110dff15110eff15110eff16120eff16120fff16130fff16130fff16130fff171310ff171310ff1d1915ff171410ff171410ff181411ff181511ff191512ff191511ff191511ff191511ff191512ff2d2720ff2d251fff332b25ff29231dff37302bfd151210ff1b1713ff1b1713ff1b1713ff1c1714ff1b1714ff1b1714ff1b1714ff1b1714ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1915ff1d1915ff1d1915ff1d1915ff1d1915ff1d1915ff1d1916ff1d1a16ff38302aff362f2aff38302aff514943ff36302cff211e1aff221f1bff23201cff24211dff24211dff24211dff3c352fff272420ff26231fff272420ff282421ff282521ff292622ff2a2723ff2b2824ff2c2925ff2d2a25ff2e2b26ff2f2c27ff312d28ff332f2bff34312cff36322eff38342fff393530ff3a3631ff3b3733ff3b3834ff3b3934ff3b3a35ff3b3b36ff3b3b37ff3b3b37ff3e3e3bff3d3d3bff3b3b3bff3b3b3bff3b3b3bff3b3b39ff2f2c28f31d1a17ff1e1a18ff7a726bff6b645dffa89e97ff716a64ff3b3b3aff3b3b39ff3b3b38ff3b3a35ff3b3834ff3b3833ff3a3632ff3a3632ff3a3531ff383430ff38332fff37322eff35322dff34302cff33302bff322f2aff312d28ff302c28ff2f2b26ff2e2a25ff2c2824ff2b2723ff2b2622ff292521ff26221eff211d1aff3d3732ff403731ff48403bff48413cff5e534bff221e1aff211d19ff201c19ff1f1c18ff1f1c18ff1f1c18ff1f1c18ff1f1c18ff1e1b17ff29241fff1e1a17ff1d1a16ff1d1a16ff1d1916ff1c1915ff1c1915ff1c1815ff1b1814ff1b1714ff1b1714ff1b1714ff1a1613ff1a1613ff191613ff181512ee0f0d0cff574e48ff312a25ff1c18159c452311412b1105572f13074b30130765441e0f6b401c0d7b411c0d6f421b0c69371609633d190a4c371708553a19084c3d1b085d44200b51431f0a523f1b09393c180865411c0b66411c0a68411c0b5e401b0a573f1b0a51401b0a49431f0c3f3f1b094e411c0a83431f0d4c381607522b12074e301408423014074a311407533214085f3316096e38180b703c1a0c7f421e0e594f1f0b5658210b5f5a230d5b58210cba31180eff1613106b8943217c884423577034186078371a79813b1e818541226e73361b7770371c4d5a27114e491f0d5c461d0d533f1a0b5536160924240d043e3d190a5938170a5e2610067048220e7546200e76441f0d61401e0c593b190a603c1b0b683b1909613b190a523918095a371709513314073b31130659351608433415075735160858321408683316095931150868391b0b593d1c0b5c47200d4f361909413317084632160786592d14ff28211bff1f1b17ff181512ff2e2823ff130f0cff130f0cff130f0cff13100cff13100dff14100dff15110eff15110eff15120eff16120eff16120fff16130fff16130fff16130fff171310ff211c18ff171310ff171310ff171410ff181411ff191511ff191511ff191511ff191511ff191512ff2e2721ff27211cff302822ff1f1a16ff211c18ea171512ff1a1713ff1b1713ff1b1713ff1b1713ff1b1713ff1b1713ff1b1713ff1b1714ff1b1714ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1914ff1d1915ff1c1915ff1d1915ff1d1915ff1d1915ff1d1916ff1d1a16ff37302aff27231eff38302aff544c45ff2b2724ff39342fff221f1bff221f1cff23201cff24211dff24211dff3b352eff272320ff26231fff272420ff282521ff282521ff292622ff2a2723ff2b2824ff2c2825ff2d2a25ff2e2b26ff2f2c27ff312d28ff332f2bff34302cff36322eff37332fff383430ff393531ff3b3732ff3b3833ff3b3934ff3b3a35ff3b3b36ff3b3b37ff3b3b38ff403f3bff3e3e3cff3b3b3bff3b3b3bff3b3b3bff3b3b37ff2f2b26ff221e1aff2c2724ff716b65ff6c655fff6c6661ff6d6762ff3b3b3bff3b3b39ff3b3b37ff3b3b36ff3b3935ff3b3834ff3b3733ff3b3732ff3a3632ff393531ff393430ff383430ff37332eff35322dff34312cff33302bff322e29ff312d28ff302c27ff2f2b26ff2e2a25ff2d2824ff2c2723ff2b2622ff24201dff2f2b27ff403a34ff4a423dff4b453fff1b1916ff4a413bff221e1bff211d1aff201c19ff1f1c18ff1f1c18ff1f1c18ff1f1b18ff1f1b17ff1e1a17ff302a24ff1d1a16ff1d1916ff1d1916ff1c1916ff1c1915ff1c1815ff1b1815ff1b1814ff1b1714ff1a1714ff1a1713ff1a1613ff191613ff191612ff191512ff3f362fff211d1aff221e1aff2b26227f411f0e4f2c11064b2e1307543315099f4e25159f4b241373451e0f62401b0c5538170857371709503818094d3917085f421e0a5c431f0a2b3a18064a3d1a095e3f1b0a68441e0b6d401b0a633f1b095e411c0a53411d0b4f421e0b5b48230b512e140853441b0859311509622f1409542d12085e3014095d3114094b2f13082f2c1106523215097238190c684b1d0b665a220d675a210c6059220cd328170fff161310ff161310ff15120f6d803e205c76361a5555250f5d582710756b331889844424686f3419705b2a1459572712645d2a14464b1e0d4c4b200c5b431c0c592b130856140803510e05015a38170a4f34140873461d0b54421d0b72401d0c613d1b0b4e391909673b1a0b7d3e1c0c5339180969371709643617093f3113075d3416084c3616085635160868331508613314076d35180a7a391b0b673f1d0c6648230f5c46200d46311507413116075c37190979522812ff271f19ff27221dff29221cff15110fff130f0cff130f0cff13100cff13100cff14100dff14100dff15110eff15110eff15110eff16120fff16120fff16120fff16130fff161310ff221d18ff161310ff161310ff171310ff181410ff181511ff191511ff191511ff191511ff191511ff1b1613ff1a1613ff2e261fff3b322bff231d18ff292320ff1a1613ff1a1713ff1b1713ff1b1713ff1b1713ff1b1713ff1b1713ff1b1713ff1b1713ff1b1714ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1814ff1c1915ff1c1915ff1d1915ff1d1915ff1d1915ff1d1916ff1d1916ff342e28ff352e28ff38302aff564f48ff302b27ff453f38ff221f1bff221f1bff23201cff23211dff24211dff3c362fff262320ff26231fff272420ff282421ff282521ff282522ff2a2623ff2b2824ff2c2824ff2d2925ff2d2a26ff2f2b27ff312d28ff332f2bff35312dff35322dff37332fff383430ff393531ff3a3632ff3b3733ff3b3934ff3b3a35ff3b3b37ff3b3b38ff3b3b38ff403e3bff3e3e3bff3b3b3bff3b3b3bff3b3b3bff3b3933ff2d2925ee3e3934ff2f2a27ff6e6861ff6f665eff6b6661ff726b66ff3b3b3aff3b3b39ff3b3b38ff3b3b37ff3b3a36ff3b3935ff3b3834ff3b3834ff3b3733ff3b3632ff3a3532ff393530ff38342fff37332fff36322eff35312dff342f2bff332e2aff312d28ff302c28ff2f2b26ff2e2925ff2d2824ff2b2723ff231f1cff3d3732ff2b2521ff5a534eff514a45ff211e1bff25211dff221e1bff221e1aff211d19ff201c19ff1f1c18ff1f1b18ff1e1b17ff1e1a17ff1e1a17ff2f2923ff1d1916ff1d1916ff1d1916ff1c1915ff1c1915ff1c1815ff1b1814ff1b1714ff1b1714ff1a1713ff1a1613ff191613ff191612ff181411dd0f0d0cff665b54ff352e28ff1c18158a4121107f3d1e0e512d13075d2f13076448200f924d2513864721117b441f0f693a1a0c5f361608543717095e3a1909513e1b0950421e0961421e0a403c1a09423d1a085e3f1b096f411c0b72411d0b58411d0a423c1a0853411d0a5b441f0c7b2712086c29120875391a0c6c37180b5d3115095a2f140861311409593013085c321509553115095036140860511e0a5f55210d5d531f0b943e1a0dff161310ff161310ff161310ff15130fff15120f686c321b303113053e3113063836150644481e0b4552230c755828135d3d180a603213086b431c0d585927104952220e625025115a411d0c672b13094d180a04460f05023f1b0a0446371609873c1b0c673e1c0c5b3b1a0a603b1a0a5d3b1b0b563a19095939190a573718094e32140741311307613617095f37180948301306633415085c3113076035180a73391a0a6d411f0d6a48220e5e4d230f4c3116084c3015065d321607845a2d14ff28201bff211d19ff1e1914ff1d1917ff14100dff14100dff14100dff15110dff14110dff15110eff15120eff16120fff17120fff17130fff17130fff181310ff181310ff181410ff221d18ff181411ff171411ff171410ff181511ff191512ff191512ff191512ff1a1612ff191611ff181511ff27211cff29231dff322b24ff27201bff3c342ff9191612ff1b1814ff1b1814ff1c1814ff1c1814ff1d1814ff1d1814fe1e1a15ff1d1814ff1d1815ff1d1915ff1d1915ff1d1915ff1d1915ff1c1915ff1d1915ff1d1915ff1d1915ff1d1915ff1d1a16ff1d1a16ff1e1a16ff1e1a16ff1f1b17ff1f1b17fa1b1714ff342d27ff37302aff58514bff342f2bff35302bff25211dff25211dff25221eff26221fff27241fff3c362fff292521ff282520ff292522ff2a2622ff2b2723ff2b2823ff2c2924ff2e2a25ff2f2b26ff2f2b27ff302c28ff322e29ff35312cff38342fff3a3530ff3a3631ff3b3732ff3c3833ff3d3934ff3f3a35ff3f3b36ff403c38ff403e39ff403f3bff403f3bff403f3bff42403dff444240ff41403fff41403fff403f3fff3f3b36ff322e2aff423c37ff2f2a26ff6e6862ff7a7168ff686460ff706862ff3f3f3eff3f3f3eff3f3e3aff3e3e39ff3e3d38ff3e3d38ff3e3d37ff3e3c37ff3e3b35ff3e3b36ff3e3a35ff3c3833ff3b3733ff3b3732ff3a3631ff3a3632ff39352eff36322dff35312bff342f2aff332f29ff322e28ff312c28ff2e2924ff23201cff413934ff3c342fff544f4aff524d47ff3b3530ff26221eff25211dff25201cff241f1bff231e1bff211d1aff211d19ff201c18ff201b18ff1f1b17ff312a24ff1e1a17ff1d1a17ff1d1a17ff1d1a16ff1d1916ff1c1915ff1c1915ff1c1815ff1b1815ff1b1814ff1b1714ff1a1713ff191613ff191512ff201b18ff3d3632ff312b25ff231e1b8f4422105b2d12074a2f1408693316098b512614934e2514a14d251483421d0f6b3c1b0c643818095b3717086d3c1a09413b1808523e1c09593e1c0a493d1b0955401c0a5d401b0a6d401d0a4e3f1c093c3b19083e3b1909665627106e54260f77421f0f603e1b0c5e3f1c0c5c3c1a0b6239180b5e3215097334160a6934160a5e3f19095d4e1d0b594d1c0a544c1b0aa733180dff161310ff161310ff161310ff16130fff16130fff15130fff1e18156f6a321a3730120537301406373013062b2c1005372d1105623012074f270e04691d090254280e05513a17085750220e4e56250f6b5124114c3e1a0a6234170a50200d05491d0c053a250e054d291006563a190a553c1b0b4b3b1b0a5f3b1b0b593a19095839190a6339190a4d331508443415075e3718095e331407482b1106562c1106532f1207462d11065f3f1b0b5f421e0c714c240f5f4e230f573b1b0c4e3016075f3015085f44200de435251bff221b17ff1f1a17ff2f2822ff1b1612ff1b1611ff1b1612ff1c1712ff1c1713ff1e1914ff1f1a14ff201a16ff211b16ff211c17ff211b17ff211b17ff221c17ff221c17ff211c17ff231e19ff231e18ff241e18ff251f1aff25201aff27211bff28221cff28221bff27221bff28221bff2a231fff251f1bff2f2822ff29221cff332d28da100e0bff2a251fff2a241eff2a251fff2c261fff2d2720ff2c2620ff2c2620ff2d2721ff2c2620ff2c2720ff2c2721ff2c2621ff2d2721ff2d2722ff2d2821ff2e2822ff2f2822ff2e2822ff2f2823ff2f2823ff302924ff312924ff302a24ff312a24ff403830ff28221dff373029ff58514bff2d2825ff36312cff38322bff37312bff38322bff39322dff3a332dff443c33ff39332cff3a342eff3c352fff3e3731ff403a34ff413b34ff433c36ff453e37ff474039ff474039ff49413aff4c453dff514a41ff554d46ff574f47ff544d46ff564f47ff585149ff5a524bff5c544cff5d564eff605850ff605a52ff625d54ff625e55ff625e55ff524f48ff635e57ff635f59ff635f5bff625e5aff5d554eff524b44ff48413bff2f2a26ff726d65ff847971ff43403fff5c5855ff5c5855ff5b5754ff59554dff55524cff55524bff58544dff58534cff57524aff56514aff555049ff524d47ff514b45ff504944ff4f4942ff4e4842ff4e4841ff4d4640ff4a443eff47413bff45403aff453f39ff443e38ff423c37ff3c3630ff2a2623ff423a35ff342e29ff524b46ff322e2bff554c45ff37302bff36302aff342e28ff322c27ff312b27ff312b26ff2e2924ff2c2722ff2c2722ff2c2722ff322b25ff2a2521ff2a2520ff292420ff28241fff28241fff27221dff28221dff27221dff26211cff25201bff241f1aff231e1aff241e1af61b1714ff584e47ff201c19ff1d1916be39261a7f442210582e13084f2f1408784c2311815227129e522815904c251475441e0f673f1c0b63391909683f1d0a5f3d1a093f3b1807453b18085b3e1c0a63401d0a463d1b09503f1c0a4a3c1b095c3e1c0a33391909293a19083a431d0a664c23106e4c2311704f2411674b210f5c441d0c66401b0c7a3a1a0c5a42190952491a09584b1c0a534a1b09d9281b13ff1e1a16ff1e1a16ff1e1a16ff1e1a15ff1e1915ff1d1916ff1e1916ff1b1713ff1f1a164e56210cff1c16124b30150747311306312f1205323113053c2b110538200b03491b0a034b1808026e270f06653817095d50230f5357271161411c0c6936170b6537180b502e1308463616084936170a41220d0548200d05553c1a0a59391909563818096639190a6938190a51351608423315074a351607523013075a28100651230d05552810064f2d11064a3a1909754a220e7b512611755327115851240f452d13065b2f1407462e13066a562912ff221b17ff28231eff211b16ff120f0eff1d1813ff1e1814ff1f1914ff201a15ff201b15ff221c16ff241e18ff251f19ff261f19ff26201aff27201aff28211bff2a221dff211b17ff2a241dff2b241dff2b251fff2c251fff2d251fff2e2721ff2e2821ff2f2821ff2f2821ff2e2720ff181410ff1c1714ff2c2520ff221d18ff26201cdb13100eff312a23ff312a23ff312a23ff332c25ff342d26ff352e27ff2c251fff342e26ff352e27ff352e27ff342d26ff332d26ff342e27ff362f29ff362f28ff373029ff37302aff38302aff39312aff3a322bff3a322bff39312bff372f29ff363029ff383029ff342d27ff362f29ff59514aff423c36ff35302aff3f3730ff3c352eff3f3730ff403831ff423a32ff483f37ff403932ff463e36ff494038ff4a423aff4c443cff4e463dff4e473eff50483fff554c43ff564d44ff564e45ff594f46ff5b534aff5f564fff5f554dff5d554dff615850ff615850ff645a52ff665c54ff695f57ff6b6259ff6d655bff70685fff716a60ff706960ff57534cff6d6760ff716b67ff716a66ff6e6864ff6c625aff625750ff564d46ff2d2824ff7e7670ff8e8278ff3f3c3aff67615eff66615dff65605dff646057ff635e56ff635e57ff635e57ff645d55ff635c54ff625c54ff5e5951ff5c5750ff5a544dff5b544dff58524bff564f48ff554f48ff565048ff554e47ff524c45ff4b453eff504943ff4f4840ff4d463fff443e38ff1d1a18ff1a1714ff2c2723ff534c46ff3d3933ff3f3834ff403934ff3f3933ff3f3832ff3d3631ff3c3630ff3b352fff3b342eff39322dff36302aff342d28ff342d26ff322c27ff312c26ff302a25ff2f2924ff2e2923ff2e2823ff2e2822ff2d2822ff2c2621ff2a241fff29231fff28231eff28221eef0a0908ff685d57ff332c25ff1d19168b492411532c12074f2b11064b32150890582b1582572914a7592c18794b22128b4a22127a411d0b66391a095e3d1b0a5d3c1a09463917075e3c1909453c19085b3f1c0a473d1c0a4d3c1b0a533b1b0a5f3d1b0a473e1b09433e1b0b9a5b2d18945a2c16795628136156251069572511694c210f57451b0a5c4c1c0a50481a09544b1d0aa3371d11ff241f1aff241e1aff241e1aff231e19ff231e19ff221e19ff231e19ff231e19ff241e19ff1b1612ff28221d4e57200aaf0201012a0d0a082b0f0c097e261208372e1105342d1105382c12053b2810043e200c044d1c0b03562d1207503e1a0a464f210d54401b0b5f2e1208712e14095236170b623a1a0b40361709312f12073e3113078a6729104f3918093d351507593617086f391a0b523416094b321507463215074b30130642230d05401b0a0354200d054f291006402a1006705527106d5728106a5a2a12745c2c136734180a582f14065c2e140663502610ff221d18ff1f1a16ff1d1915ff201c182913100d29120f0c2c120f0c30130f0c29130f0c2c130f0c2e13100c2814100d2914100d2b15110e3115120e2c15120e3415120eff211c162815120f2615120f2615120f2916130fff251f1a2517131024171410261714102d1714112a1714107a171411ff14110eff28231eff2c2621ff1f1915ff2a231f29191612271916122b1a1612281a1613291a16132b1a17139c201b172a1a17132d1b17132d1a1713291a1713281a17132b1a1713321a17132b1a1713341b17132c1b1713291b1713271c1814261c1814291b17142b1c1814261c1814241c1915ff443b32ff322a25ff36302aff5a534cff3d3631ff36312b2924201c2a211e1a2a221f1b2924201d2725211d9f3b342d4b27231f2b25221e3026231f2c26231f2e26221f2e272520282825212d2927222c2c28242b2c2925362d2a262d2f2b2629312d2926332f2b2734302c2b35322d2a36332f2537332f253834302d3935312c3a37322c3b3732283b38342b3b39342a3b3a356243423cff4f4c46453e3e3b2a3b3b3b293b3b3b2a3b3b3b2e3935312f302b28ff635951ff1f1c1aff847c75ff91887fff847c76293b3b3b2c3b3a382f3b39362e3a39342b3a3934283a3934253a3834273a37332a3a36312a3a3732233a3733233935312738342f2d3835302b3835302b36332f2a36322d2736322d2936322d2934302b9e3a353029312d29262e2b272b2e2b273c211e1aff3a332eff1e1a17ff67625cff5a544fff423b352d2623202925221f2924211e2c231f1c32221e1a2b211e1aff37312b2d1e1b17291d1a16271c1916261c1915ff352e272b1c1915291c1815241b1815241b18152a1b1714291b1714281a17142a1a1713261a16132a191512291815112817141135181511ff332d28ff272320ff37312def2e262087462110502a1106562d13075e46200d6c502411714f241179502512864f24127b49200c613e1b095f391909623f1d0a4a3a19084a3817084b3c1a082c3918073f3b19083a3b19083a3a1a094a3b1a09563f1c0b6b48221090572b167e592a15875d2c1778612e16615c29136b572411674d1e0b5b491c0a56491c0a4d3b1a0c2a16120f2916120f2a16130f2616130f281613102916120fee1a1612ff26201b2915120f2c15120f88171310ff2c241fff1a16123a57210afc000000f6000000f6000000f6000000f0000000ba1106012e321305392d1205302b1105392d1205392d110541361506413d1908523b1809622810067d230e06552a11075136170a3e3516082c2f12072f2e12068257220d573e1a0a4a3616084e351608563516095e3516095c3315083f2f1307482f12063e2a0f053e3414074b431d0c3e240e054c2b1106754c230e955e2e15755b2c13795b2c136a552711552d12065b2e1307692f1507694f2510ff1d1813ff221c18ff201b17ff161310ff16120fff15110fff16120fff17120fff17130fff191410ff1a1511ff1a1612ff1a1512ff1b1613ff1b1713ff1b1714ff1c1714ff1c1714ff1c1714ff1e1915ff1d1915ff1e1916ff1f1a17ff1e1a16ff1e1916ff1e1916ff1e1a16ff221d19ff13100dff29231fff302924ff251f1aff28211dff231d18fe221d18fa1f1a16f8191512f415110eef15110eed17120ff216110efe15120fff17130ffe1a1512f71f1a16f427211dea2d2621ee2c2621f72d2621fe2c2621fe2d2721fe2c2621f72d2722f32d2721ec2c2520ef2c2621fc2e2722ff2e2722ff201b18ff342e29ff5c564eff3d3731ff2f2a26ff403a33ff302b27ff302a25ff2a2420ff2b2521ff2c2621ff302a25ff352f29ff39342fff3a3630ff3d3733ff3e3933ff3c3732ff37322eff36312dff35312cff34302cff332f2cff36312eff38322ef4403a37f4413b38fc403b37fe443d3bfc443e3bf645403cf647423ef547423ef54a4541f74a4541fe504b48fe4c4642fc4d4744f54f4946f34f4a46f34f4a47f4514c48ff514c48ff564f49ff5f554dff736b62ff837c76ff948a7fff807773ff645d5aff625b58ff5f5a55ff5f5a55ff5e5754ff5b5451ff5a5450ff5b5550ff5c5550ff57524dff57514dff56504cff56504aff57504bff57514cff59524dff5b534fff57504cff564e4aff534c47ff4f4a45ff4b4642ff4a453fff4b443eff4b423cff50463eff1c1816ff67625dff655f5aff5f5651ff403b37ff3a3430ff36302bff312b26fc2e2823f828231ef3231e1af8211c18ff201b17ff1e1a16fb1f1a16f9201a16f4201b17ef211c18ed201b17f61f1916ff1e1915ff1e1915ff1f1b17f9221d19f6231e1bec221e1af0231e19fc241f1aff2f2722ff62574eff332c27ff1f1b198f3e23156434180a4f2810054e2d13067452261177512612824f251353471e0d67481f0f80441d0b663b19098830160a8333170a65381709313716073b3a18083d3d1a084b3e1b093a3918083b3b1909503d1b09814a24117c4b2310765a2b1674592915795e2c17735b29145d50200d684b1d0b58461a095f461a0a8f37190eff1b1613ff1a1613ff1a1612ff1b1613ff1a1612ff1a1613ff1a1512ff1a1612ff1a1613ff1a1613ff1b1713ff1e1916ff201b17ff3028223f58220bff000000ff000000ff000000ff000000ff000000ff000000ff000000f8020100272e1105312d11053f311305402f12053929100439220c033c1808035b16080373220e0642280f063d33150833301307312b1106352f13069c5826106e3b1a0a543717084d341608513316084d3316083f2f13063c2c11063b210d04362e1106433d18094a200d054c2a1105482d11067c592b127d6030158a5e301674592b13532e1407482b12064a2b1105614e250fff1f1a16ff26211cff221d1aff1f1a16ff1e1915ff1e1915ff1e1914ff1f1914ff201a15ff201a16ff221c17ff211c17ff211d18ff221d18ff241e19ff241e19ff251e1aff251f1bff261f1bff261f1bff26201bff27211cff27211dff28221dff27211dff28211dff28221dff28221dff27211dff26201bff2c2621ff29221cff221f1aff2a2520ff2b2620ff2b2520ff2b2621ff2a2520ff2b2620ff2e2722ff2d2822ff1c1713ff1f1a15ff231d18ff29231eff312a24ff39312aff373029ff362f29ff373029ff372f29ff39312bff3b332dff39312bff362f2aff362e28ff372f29ff372f29ff352e27ff342e29ff38312bff4e4641ff322c27ff37312cff38312dff38332dff38332dff38332dff3a342fff3d3731ff413b35ff443d37ff464038ff463f39ff49423bff4b443dff4c453fff4c4641ff4e4743ff514a46ff544d49ff544d49ff544d49ff58514cff5b534eff5b534fff5e5652ff5f5753ff605955ff655f59ff66615aff665f5bff706863ff6a645eff6e6662ff6d6661ff726a66ff756d68ff746c67ff736c66ff6d6861ff6b625aff5a5148ff726861ff776f69ff948980ff8b827dff897f7bff877e78ff867d78ff847b77ff7e7571ff7b736fff7a716dff79716cff7a726cff767069ff746c67ff716a64ff706a63ff706862ff6f6761ff716863ff6e655fff6b625dff685f59ff635b56ff5e5852ff59534eff5c554fff5f554eff5f534bff4b423bff1f1b18ff645e59ff6c645dff49423cff4c453fff4c443eff4b433dff4c443dff48413aff3f3a33ff3c352fff39332eff29241fff2a241fff2b2520ff2c2621ff2d2722ff2e2823ff2c2621ff2b2520ff2b2520ff2b2520ff2d2722ff2e2822ff2e2824ff2d2723ff2e2722ff2d2620ff50453cff423c36ff36312dff282420804d251259281006432810054b33150797562a16ad5b2f18865125137f4d231260441d0b763f1b0a773618097231160a66351709624e210c2d371707513e1b0a53401d09453d1b093f3b190861411d0a62401c0b7447200e7c552713815c2d176f562714895e2e186b5727136f491c0b544218085f42190a803b1a0dff28221dff28221dff28221dff28221dff27211cff27211cff251f1bff26211cff26201bff251f1bff241f1aff231d19ff201b17ff191511ff3d342c47582009ff000000f5000000f00c0a09ff14110eff15110efd15120eff15120eff16120fff171310ff171410663014085135150644321405412e120531220c03331908023c16070253200c044c2d12072d3013072a250e0535240e055643190a71411e0d53361708483517085d35160858321508433013073c2e110643260f05462b1006413514084c441d0d4c2c13065130140778562a126e582c1282572c16885a2e16774e2511562c1306612d1307602d1307773d1f0fff1c1612ff1b1714ff211c17f6191511ff221c16ff241c17ff241d17ff231c17ff241d17ff231d17ff241e18ff241e18ff251e18ff261f19ff261f19ff1f1b16ff221c18ff201c17ff231e1aff231d1aff231f1aff231e1aff231e1aff231f1aff231f1aff24201bff26221cff28221eff0c0a08ff29231eff312923ff1f1a16f8100e0bff26211dff2a251fff2a2520ff2a2520ff2a2521ff2c2622ff2c2722ff2b2621ff2c2621ff2c2621ff2c2622ff2c2622ff2c2622ff2b2520ff2c2622ff2b2621ff2b2621ff2a2520ff2a2621ff2b2621ff2c2722ff2d2823ff2c2722ff423a30ff312b24ff312b26ff37302bff4d4641ff2f2a26ca161211ff3a332cff3c352dff3c362fff3e3730ff4a4138ff3d3730ff3b352fff3a352fff39342eff38332eff3a342eff3b352fff3b3530ff3c3731ff3c3631ff413b34ff453e38ff47413aff4b453fff4d4740ff4d4741ff4e4842ff4f4942ff4f4943ff4e4741ff4e4841ff504943ff524b44ff554f47ff58524bff544e47ff554f48ff756d64ff7a7269ff787269ff706a60ff595048ff4b433dff312b27ff736a63ff746e67ff868078ff867c77ff4f4d4bff53504dff54514dff53504cff514e4bff514f4bff524f4bff524e49ff4f4741ff4c443eff4a453eff4b443eff49443dff48423dff48423dff48423cff48423bff464039ff453f38ff413b35ff433c36ff453e38ff433d37ff39332efe1f1b18ff28231fff292622ff6d6661ff4e4741ff4c4743ff3c3530ff3b3530ff3c3530ff39332dff38312cff352f2aff342d29ff312a25ff2c2721ff2f2924ff2e2923ff3a332dff302a24ff302924ff2f2823ff2d2822ff2d2722ff2d2721ff2d2721ff2b2520ff2a241eff2a231eff28221df0211d19ff5a4f46ff1e1b18ff24211dd83a2d266f421f0e4b27100547270f054d481f0d8b542814a6582c18774b22125e421d0d643d1a0a6d3818088e30170a5b3115085c3415095949200c413c1a0856411d094b3e1c094d3e1c09373b19085e431d0a9c4f261376481f0d78582a157f5a2c178b5d2d176d5829146a4d1e0c5f481b0b5545190a58461a0aff201b17ff201b17ff201b17ff201b16ff201b16ff201b16ff201b16ff201b16ff201b16ff201b16ff1f1a16fa1d1814f6100d0bff1f1a16ff342c25ff201c174a5b230cff000000ff000000ec000000ff16120eff120f0cff0f0c0aff0f0c0aff0f0c0aff0f0c0aff0f0c09ff0f0c09ff0f0c09ac210f0845361406473413064c33120547301105542c100555301207543315082d220c0429190a03361f0d0478461e0e6539190a5d3516085234160849311407453014074f3215074d2f1306682610067537170a7248220e6b3f1e0c472c1206602e13078e592d15855a301776542a147b542a15552c1307502a1106532a1206534b220eff1e1815ff26211dff251e19f90f0c0bff100d0aff100d0aff100d0aff100d0aff100d0bff110e0bff110e0bff120f0cff120f0cff120f0cff13100cff1e1a15ff13100dff1e1915ff1c1814ff14110eff221d18ff15120fff15120fff16120fff161310ff16130fff16130fff161310ff0f0d0bff26201cff2e2722ff221c18fc25211cff100d0bff191511ff191511ff221d18ff231e1aff191612ff191612ff191612ff191612ff191612ff191612ff191612ff191613ff1a1613ff1a1613ff1a1613ff1a1613ff1a1713ff1a1613ff1a1613ff1a1713ff1a1613ff2a2520ff423931ff302a24ff312a24ff362f2aff4e4741ff221e1cff211e1aff1d1916ff1e1b17ff1f1c18ff201c19ff3e362fff24201cff332e29ff23201cff24211dff25221eff26221fff272320ff282420ff292522ff2a2622ff2b2824ff2d2a25ff2f2c27ff312e29ff322f2bff332f2bff34302cff35312cff35312dff36322eff38342fff383530ff3a3631ff3b3733ff3b3834ff55504bff55514cff403f3cff3b3b39ff3b3b3aff3b3b37ff2c2824ff302b27ff352f29ff7f766eff78716aff8b847dff817872ff4d4b4aff3b3b39ff3b3b39ff3b3b39ff3b3b39ff3b3b39ff3b3b38ff3b3b37ff3b3b37ff3b3b37ff3b3b37ff3b3a36ff3b3935ff3b3935ff3b3835ff3b3834ff3b3734ff3b3733ff3c3833ff4c453fff383530ff373430ff36332eff231f1bff413833ff141110ff6b645eff726c64ff5a534bff34302cff2a2622ff282522ff282420ff26221fff25211dff221f1bff433b34ff211c18ff2a2420ff1d1a16ff1b1714ff3b342dff1a1714ff1a1714ff1a1613ff191613ff191613ff191512ff181512ff181512ff171411ff171311ff161310e80c0b0aff5f554dff2a2521ff201d1a7155271151261006532810064a2810055e4b210f735126116d4e25116d442010623c1a0b793618095f301407832f150a7034180a515c290e5b3d1c09513d1a094e3f1c095a3e1c0a503e1c09493d1a086c461f0b6f4b230f7c5629156854271372562814665527136152210e7c52230f664b1f0d654b1d0cfb15110eff14110eff14110eff14110eff14100eff14100eff13110eff13100eff13100eff13100eff171410ff221c18fc090706ff1f1915ff251f1aff312a24ff1d19154258200bff000000ff000000ff000000e8010100ff120f0cff0e0c0aff0f0c0aff0f0c0aff0f0c09ff0e0c09ff0e0c09ff0e0c09ff0e0c09ff0e0c09972410075c451a094c431808604219095a4118084c2a1005501f0c04531206023813070272401d0c7f43200e483617084f3316085c3516094f311408633315086233160858281006873819099048240e92542b15452c1106642e1308775127118c552a1583582c1576542a14593b1b0b622a12065f2a1206593a190acb2f1d14ff1c1713ff221e1afd1c1814ff0f0c0aff0f0c0aff0f0c0aff100d0aff100d0aff100d0bff100d0bff110e0bff110e0bff120f0cff120f0cff1d1915ff13100dff13100dff15110eff1f1a16ff201b17ff14110eff15120fff15120fff16120fff16120fff16120fff16130fff27211dff27211dff2b2520ff3f342cff27231dff0c0a08ff181411ff181511ff181511ff211d19ff221d19ff191512ff191512ff191512ff191512ff191512ff191612ff191612ff191613ff191613ff191613ff1a1613ff1a1713ff1a1713ff1a1713ff1a1713ff1a1613ff191613ff423931ff28231eff13100eff302a24ff524a44ff282521fe37302cff1c1916ff1e1a17ff1f1b17ff201c19ff3c352dff23201bff342f29ff23201cff24211dff25211eff25221fff26231fff272320ff282421ff2a2622ff2b2823ff2d2925ff2e2b27ff302d28ff322e2aff332f2bff33302bff34302cff35312dff36322eff38342fff383531ff3a3631ff3b3733ff3b3834ff59544eff55524dff40403cff3b3b39ff3b3b3aff3b3a35ff2c2824e2221e1bff39322dff827971ff706961ffa29a92ff988f89ff4c4a48ff3b3b39ff3b3b38ff3b3b38ff3b3b38ff3b3b38ff3b3b37ff3b3b37ff3b3b37ff3b3b37ff3b3b37ff3b3a36ff3b3a36ff3b3a36ff3b3935ff3b3835ff3b3835ff3b3833ff46403bff413c37ff393531ff383531ff35322dff1f1c18ff423a35ff1b1715ff67625bff6a655dff564f47ff312d29ff302b27ff292522ff282420ff27231fff25211dff231f1cff2e2822ff2c2722ff1b1714ff1a1714ff1a1714ff3d362fff191613ff191613ff191613ff191613ff191512ff181512ff181512ff171411ff161310ff161310ff161310fb25211fff1f1b18ff1f1c1aff312e29544c220e4d2610055c27100553431b0b624a210f684a221064441f0f5f38190c623316085f2e1306852d15097f31170a7935190a4f562710513a1808523c1a085a3d1b095c3e1c09333b190759421c0a88532913784d241064522612665326126d5427135d5223106353210e5e4f210e75502310b82d170eff13100eff13100eff13100eff13100eff13100eff13100dff13100dff13100dff13100dff12100dff171310d2090807ff171310ff171310ff352d27ff1c1714ff161310535f250cff000000ff000000ff000000d9000000ea0c0907ff18110dff18110dff18110dff18110dff19110dff19110dff19120eff19110dff19110dff19120eff19120e5f4a1c0a5c441808594117086d491c0b71371a0c69371a0c6336180b6136190b8e422010533a1a0a533618094b321508453014074e31140755321508472e13064f271106853f1d0b68421d0d562e12075e2b12076c34160a9b532913985d301884592c1570542912682a1306522810065d2a1206534a230eff1d1814ff39312bff362f28d20a0807ff19130fff19120eff1b130fff1c130fff1d1410ff1d1510ff1d1410ff1d1510ff1e1611ff1e1511ff1d1915ff1f1611ff1f1611ff201712ff211813ff201813ff201812ff201813e11d1814ff221913ff211913ff221914ff221a14ff26201cff191511ff2a241fff342b24ff231e1afa0e0a08ff221a16ff231c17ff251c17ff251d18ff241d18ff251d18ff251d18ff251d18ff271e19ff281f1aff29201aff29201aff281f1aff29201aff29201aff2b211bff2a211bff2a211bff2a211bff2b211bff2b211cff2c211cff443b32ff312822ff312924ff312b25ff534b45ff302b26fe38312dff2d241eff30251fff322721ff352822ff453b33ff372c25ff3b2e28ff3b2e28ff3c2f29ff3b2f28ff3b302aee2b2622ff3e322cff3e322cff40342dff45372fff483a32ff4d3d35ff504038ff51423bff53443dff53443dff55463fff56473fff594a41ff5a4b42ff574a43ff564a42ff5e5048ff66564dff675850ff534c46ff695b54ff6a5b55ff695c56ff695a51ff5a4840da221e1aff3d3630ff837b73ff7a7168ff807a75ff54524fff584e4aff594f49ff594f47ff5e524aff62544cff54514bff5f534bff5e524aff5c5048ff5c4f48ff5b4e47ff594d45ff584c45ff584c45ff584b44ff564b43ff574b43ff564a42ff554841ff54473fff53463fff52463fff493d36d9090907ff38312dff181513ff635d57ff615a55ff5c534bff453933ff473933ff40342eff41332dff3f322bff3c2f29ff392d28ff332822ff2e241dff2e231dff2d231dff2c211dff3e3630ff2a211cff29201bff28201bff271f19ff271d18ff251c18ff251c18ff241c17ff231b16ff231b16f214110eff64574fff2c2622ff1f1c1ab955301d5f2610065427100652281006764d241168482210734821116c3e1d0e4f3015095a2e1306602f14067f2f15096e311609755b2b1256391908593919085b3c1b09573b1b09483a1a083d401c0952461e0a5b4b220e554d210f5c4f241168512512544e210f5e56240f5952210d5e4f200d554c1f0dff1b1410ff1b1411ff1b1411ff1a1411ff1a1411ff1a1410ff1a1410ff1a1310ff1a1310ff1a1310ff1a1310ff191310f70a0907ff1b1714ff2b241eff1e1916ff1c1714ff1c1714425e220cff000000ff000000ff000000ff000000e2000000ff1c1410ff1b130fff1b120eff1d130fff1d140fff1d150fff1e150fff1e140fff1f1510ff1f1510ff1f15103d431506764f1f0c5845180958451909503215094f34160a6035170b6235180b6a3d1d0d6e3f1e0e5b3a1a0a553618094131140746311406453215064a2f1306772c13078436170a83411e0c804721116b2b11075b2911068547210e6b4f250f61532711895b2e168b361a0c6429120657271005544a220ef7211a16ff251f1bff2e2722eb120f0dff201712ff211711ff221711ff231812ff231912ff241913ff231913ff231913ff231913ff241913ff1c1813ff251b15ff261c15ff271c16ff281d17ff281d17ff281d17fe241b16ff221d19ff281d17ff291e18ff291e17ff2a1e18ff2b1f19ff181411ff29231eff2d2620ff201b16ef0d0b09ff271d17ff2c221cff2d221cff2d231cff2d231dff2e231dff2e241dff2f241dff2f231dff2f241eff30241eff31251eff31251fff31261fff32261fff322720ff332821ff332721ff322721ff342921ff372b23ff382b24ff443a32ef1c1612ff352c26ff312a24ff58514bff3a342fff3a342eff3a2e26ff3b2d26ff3f2f27ff42322aff4a3e36ff43342dff4a3931ff4d3b32ff4c3c33ff4c3c33ff4b3b34ff332e28ff4c3d35ff4d3e35ff504037ff53433bff5a453dff5f4940ff634c43ff665048ff69524aff69544bff6b564dff6e594fff725d52ff766156ff746158ff716057ff7e6a5fff846f63ff867166ff61564eff847067ff897468ff867468ff877166ff7a6459ff2a2521ff322c28ff837b74ff837a71ffb1a8a3ff545150ff6a5d56ff6c5e55ff6e5f56ff79675cff857064ff5f5b54ff847165ff816e63ff7c6a60ff7a675cff766359ff726157ff715f55ff6f5e54ff6d5c52ff695950ff69584fff69584eff67564cff65544aff635249ff625249ff53433ad30d0c0aff302b27ff4c4742ff746c66ff6d635bff4f453fff56463eff56463dff53433bff4f3f38ff4b3d35ff493a33ff453730ff3d2f28ff3b2d26ff392c25ff382b24ff372a23ff3e3630ff332721ff312620ff30251fff2e231eff2d221dff2b211bff2a201bff291f1aff281f1aff271f19e9121110ff443d37ff26211dff2926227d4f261163250f055626100579411f0f84512715754a231281472212603a1a0c4c2e1407662d1407802d1408752f15098534180b665528104332150748361707493617084e3a1a09453a1a095d44200c8b572c166e54281160502311605124116d522612695426125856230e5d56220e63552310c7301a11ff1d1512ff1d1512ff1c1512ff1d1512ff1d1512ff1e1612ff1e1611ff1e1511ff1d1511ff1e1511ff1d1511e9080706ff1f1a16ff130f0dff241e1aff1c1815ff1c1713ff1c14103661250cff000000ff000000ff000000ff000000f9000000d3060404ff1e1511ff1d1510ff1f1610ff1f1610ff1f1611ff1f1611ff1f1511ff1f1511ff201511ff201611ff2016116c501f0b684e1f0c53481a095d491c0b6435180b73381b0d6735190c75381a0d8643211052381809503718085e3819086a3819096a381a0943311507682d13076b2710075230130771411e0e5a2a110667281006583415095e471f0d80582c157d582c1599542a14632a130769281206602d140744401c0aff1a1613ff322b26ff332d27ff241a15ff241913ff261b14ff261b14ff271b15ff271c16ff281d16ff281d16ff281d16ff281d16ff1a1612ff291e17ff2a1e18ff2b1f19ff2c211aff2c211aff2d211afe291f18ff241f1aff2d211bff2d211bff2d221bff2f231cff2f231cff1d1814ff27211dff312a24ff342b24fb1d1915ff281e18ff322820ff332820ff342821ff362a23ff372a23ff372a23ff392c24ff3a2c24ff392b24ff392c25ff3b2d26ff3b2d26ff3a2d26ff3b2f27ff3b2e27ff3c2f27ff3b2f27ff3b2f27ff3d3028ff3f3229ff41332aff463b32ff41322aff15120fff2f2822ff5a534cff39332fff403933ff46372eff46362eff48372eff4c3a32ff4f423aff4d3d34ff564339ff58443aff59453bff59463cff55433aff3f3931ff52423aff55443bff59473dff5c4a40ff624d44ff675248ff6a544aff715950ff755d54ff785f55ff796157ff7e675cff7e685eff7d685dff846f63ff8a7469ff8e786bff8f796cff967d72ff675b54ff937d72ff968174ff988375ff8e786bff7c665cff4f453cff302b27ff877e78ff887e75ffc2b9b2ff42413fff71635aff726359ff73635aff78675dff7e6b61ff605b54ff957f72ff978073ff947c71ff927a6dff8d7669ff856f63ff816c60ff7c685eff756359ff6f5f54ff6e5e52ff6c5b51ff6a5a50ff67574eff65554dff65544cff4e3e36fd322d2aff14120fff6f6862ff827a73ff6c635aff5a4a42ff594941ff5a4941ff58483fff53423bff4e3e37ff4b3d35ff473932ff3e2f29ff3c2e28ff3c2e27ff392d26ff3a2c26ff403731ff352823ff332721ff322721ff312620ff2f241eff2d231dff2c221cff2a211bff2a201bf8231c18ff413934ff1d1b18ff201d1ac03f2c216433170a4d230e055226100599542a1794522915894c2514734220106b391b0d472c12065e2a12068e2d14099333170b8f401e0d603a1a0a433115065c36180843341607473718074b3d1b0a50441e0c82552a1475532713695125126851241283572a17605e271167612912595a26115c5a2510ff201814ff201814ff1f1813ff201813ff201813ff201813ff221914ff221914ff221914ff231914ff221813e8140f0cf414110eff0f0c0aff191411ff1c1714ff1c1815ff1f1713ff2017123a5d240cff150e0bff000000ff000000ff000000ff000000e2000000ff201712ff1f1611ff201611ff201611ff1f1511ff1e1511ff1f1511ff1f1511ff1f1610ff1f1611ff1f1711d0311b10634e1f0c5d4c1e0b654c1d0b563c180a7a391a0d6135180b6935180c87421f1084482411623a1b0a60391a0961381a095d391b0967361a09602d14074b250f05602f130757361609844a26135e2711065f250e055c401c0b8a5529138e5c2e16975c2f17742b1409642611065e26100589522a12ff1d1815ff2c2621ff39312bd3090706ff251a14ff271b14ff281c15ff281c15ff291d16ff291d17ff291d17ff2a1e17ff291e17ff191612ff2a1e17ff2b1f18ff2c2019ff2c2019ff2d211aff2d211aff2e211af71f1a15ff2e221bff2e221bff2f241cff31241dff31251dff1c1815ff221d19ff2d2722ff2f2720ff29231ef31f1713ff332821ff342922ff372a23ff392b25ff3b2c25ff3c2e26ff3d2d26ff3d2d26ff3d2d26ff3d2d26ff3e2f27ff3e2f27ff3e2f27ff3e3028ff403229ff3e3028ff3e3028ff3e3027ff3e3128ff41332aff42332aff453b32ff43332bff2f2924ff302823ff5a524dff302a26ff433b36ff4c3b33ff4a3930ff4b3930ff503d33ff52443cff534238ff5d473dff5e483eff614a3fff634c41ff5b473dff3f3932ff514238ff56453cff5b483eff5a483fff604c42ff6b544aff6d584dff775e53ff7d6257ff7e6459ff80665cff816a5eff79655aff746157ff877064ff8c7366ff8a7367ff8e776aff947b6eff685a52ff967d72ff9a8377ff978477ff877065ff705e53ff50463eff201d1aff807973ff867c73ffa79d98ff4e4a45ff726258ff746359ff736359ff726359ff75645aff5d5650ff977e72ff967d71ff937b6eff91796cff8e7568ff866e61ff806c5fff7a685cff746559ff6f5f54ff6c5c52ff695b52ff685950ff67574dff65544bff615249ff483931ff37322eff2a2521ff756e67ff8d847dff5f5a55ff5b4b43ff574740ff594942ff57473fff52433cff4e3f37ff453730ff3f302aff3d2f28ff3a2d27ff3c2e26ff3a2c25ff392b25ff413932ff342822ff332721ff332721ff31261fff2e221dff2d221cff2b221cff29201bff29201ae00b0b0aff443a33ff352d27ff201d1b7b48221052230f0554240f055b321508834f2613724a231274462211773e1d0e5d3215084d2a12067b2b13089931160a8733170a8746210e4d301406443015075133170841331507433717076a47230c87542b1661522611946232197e5628166b5528146d632b1366682e1567662e1668622a13ff231915ff231915ff221915ff221a15ff231914ff231a15ff231a15ff251b15ff251a15ff251a15ff241a15ff241a15eb090806ff181411ff171210ff181411ff1a1613ff1f1915ff211813ff211813435a230bff191410ff030302ff000000ff000000ff000000ff000000d7000000ff1d1813ff1b1612ff1c1712ff1c1812ff1e1813ff1e1813ff1e1813ff1f1914ff1e1914ff1f1913ff201a146b4d1f0c5f4c1f0c5f4a1d0a644c1e0c7c381a0d6735180b80391b0e7237190c5e421f0c673f1e0a643b1c095c38190863381a0a66361a0972301708712411065f240e067435160a683f1d0e3f210d05602610065e39190a7a4a220e85582b14955e30177e391c0d6924100650230f0556391a0a8d341c0fff1b1714ff2a241ffc28231eff261b14ff281a14ff291b15ff291b15ff291b15ff291d17ff291e17ff291d16ff2a1d16ff211c17ff231d18ff241e18ff241f19ff241e18ff27211aff261f19ff26201aff27211bff29221cff29221dff2a231dff2a231dff2a231dff201b16ff1b1713ff2a241fff231d19ff27211cea14110eff2f2721ff302923ff302823ff312922ff322a23ff352c25ff352c25ff362e26ff362e26ff382f27ff383028ff3a322aff3c332bff3e352cff3f352dff3f362dff3f372eff40372fff433930ff443a31ff443931ff453b32ff413027ff2f2823ff2e2722ff3b342fff47403aff443c37ff4d3b32ff49362cff4a382eff4e3a30ff51433aff554c44ff584e46ff5a5148ff5a5249ff564e46ff554d46ff534a44ff564e46ff5a5149ff5c534bff60574dff645a51ff665c53ff655c52ff615850ff615850ff625850ff635a52ff675d55ff675e55ff70675dff716a61ff706860ff766f65ff7a756bff7d756cff7e766cff876f64ff897467ff847365ff786358ff705b50ff4b423bff5d5650ff706a65ff7d736bffb6ada6ff4b4540ff8f877eff90877eff8f877eff8e877dff888178ff8c867eff888178ff817a72ff77716aff77716aff757169ff827c73ff8c857dff91887fff8d857cff8a837aff888178ff878077ff8c837aff887e76ff7e766dff6e655de1201c19ff39332fff322d28ff756e67ff4f4945ff5d5854ff605750ff5f574fff5a524bff5c534cff5b534bff585048ff48403aff443c36ff443c35ff433b34ff453d36ff453c35ff433a34ff423a33ff382923ff372a22ff382922ff372821ff352720ff34261fff32251fff30251eff30241ef51b1816ff1a1614ff221d1aea3129237b421f0e502410064d240f0554471f0d6e4a22116b46211069411f0f77381a0d642b120657250f058f34180baf361b0ca93f1e0e70371809553015074f3015073d311507483617074d3a1a0862441e0b6d4f261181582a1580582b15825729157d58291563682c1362672e1465652c145a642b13ff221c17ff231d19ff231d18ff221d18ff241e19ff241e19ff251e1aff25201aff27211cff251f1aff27201bde080606ff181411ff0d0b08ff171310ff171411ff231d18ff251f1bff241e1aff231e194b55210bff140e0bff140e0bff000000ff000000ff000000ff000000fb000000dd090706ff17110dff16110dff17110dff17110dff17110dff18120dff18120eff14100eff14100dff19120edc26150e634b1e0c574b1e0b52461b0a873d1c0f7d371a0d6737190c73391a0c5b3f1e0c8146230f603d1c0a513517075534180869331808562e15077727130768240f0663321408693d1c0d793d1e0f51220d0540230d04613f1c0b77502711885a2d15995d2f176424100655230f054e210e046b411e0dff1a1512ff413832ff332d27fa140e0bff241712ff261812ff261913ff261913ff261813ff261812ff241913ff241912ff191511ff1e1713ff191511ff211813ff231914ff241a14ff241a15ff241a15ff241a14f81c1814ff251b15ff261c16ff271d17ff291d18ff231b15ff130f0dff26211cff29231eff1d1815e30f0c0aff251c17ff24201bff1f1b17ff2d221cff2e221cff2e221cff2e221cff2e221cff2e221dff2f221dff2f231dff2e231cff2d221cff2e231dff2f231dff2e231dff2e231dff2f231eff30241eff31251fff26221dff453a32ff3a2920ff2d2823ff2c2621ff39332eff453e3aff423a35e01f1814ff412d25ff422f26ff433027ff4c3e36ff3a2e28ff342e29ff42342bff40322bff3f322aff3f332be6322d28ff42352dff43352eff453730ff483932ff4a3c34ff4c3f37ff504239ff54433cff57453eff54453dff51433cff51443dff53463eff574840ff5d4c43ff604f46ff625148ff645249ff4c4741ff4f453eff705c53ff69574eff6b594fff624d44ff5e4a40ff4b4139ff58514cff65605aff7a716bffaca29cff47403bff524d47ff5a4e47ff5b4e46ff5a4d45fc4b4640f6574d46ff605149ff5d4f48ff5d4f47ff5d4f47ff5c4e46ff584d46ff554d45ff564d46ff594f47ff594f46ff584e46ff564c44ff564b43ff45413dff4e4a44ff463a33d9110f0dff1f1c19ff383330ff7e766fff625a55ff544b47ff4c4039ff4b4039ff4a3f38ff493d37ff483c36ff443731ff322621ff312520ff30251fff30251fff25201cff292420ff2d231dff453d35ff34251fff34251eff35251eff36261eff35251eff33241eff32241dff32231ddf1b1512ff2f2923ff322b25ff1e1a1879411e0e5f29120745220e054b250f057d512713945229155b421d0d86401f10692e15096f28110764251006ae3b1e0fa6351a0d8445200d642f1507422d12064b3016075933160850371808583d1b09834e281271522812815d2d17865e2e18906030197b753a1c636f31165b6b31165d662d14f1271a15ff1a1512ff191511ff1a1612ff221914ff221914ff211814ff211813ff211813ff201713ff201713fe201712ec120f0dff14100eff191411ff161310ff15120fff1e1612ff1e1612ff1e1612ff19141142521f08ff110e0bff0c0a08ff010101ff000000ff000000ff000000ff000000ca000000ff0f0c0aff0c0a08ff0c0a08ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0d0b08ff0e0c09ff14110eff120e0c6a4c1f0d53461b0a4d4319094d451a0972391a0d9e3d1e10953c1d0f783a1c0e6b3f1d0c663c1c0a3f321507342f1306442b1206442c1307682a130853230f06613718095c3e1c0c511f0d06441f0c044e230e05433315077e4b251185572c1574562a134b210f0556210e05381f0d03503b1a0ab120140eff161310ff322c26fd0d0b09ff0d0a08ff0d0a08ff0d0a08ff0d0b09ff0d0b09ff0e0b09ff0e0b09ff0e0c09ff191511ff0f0c0aff100d0aff1b1713ff16130fff201b16ff110e0bff110e0bff110f0cff120f0cff120f0cff12100cff13100dff13100dff13100dff161310ff221e1aff28231eff1d1814ff1d1915ff14120fff14120fff231f1bff151310ff161310ff161310ff161310ff161310ff161310ff161310ff161310ff161310ff161310ff161310ff161310ff161310ff161310ff161310ff161310ff171411ff181512ff443a31ff171410ff2c2621ff2a2520ff3a3530ff423d38ff181614db12110eff1a1714ff1b1714ff1b1815ff3a332eff201c19ff302b26ff1f1c18ff201d1aff211e1aff221f1bff221f1cff23201dff24211dff25221eff26231fff282521ff292522ff2b2724ff2c2825ff2d2a26ff2e2b27ff2f2c28ff302d29ff322e2bff332f2bff35312dff35312dff36332eff37342fff5c554fff5c564fff413d38ff3b3833ff3b3834ff2a2622fd25231fff4a4039ff4f4944ff615c57ff888078ffa69d97ff3d3935ff504b46ff393632ff3a3733ff3a3733ff3b3834ff3b3834ff3b3935ff3b3935ff3b3935ff3b3a35ff3b3a35ff3b3a35ff3b3a35ff3b3a35ff3b3a35ff3b3a35ff3b3935ff3b3935ff413f3aff4f4b45ff3b3a36ff24211ef225211eff1f1b19ff756f69ff878077ff5c5753ff3a3834ff34322eff33312dff32302cff302e2bff2f2d29ff262320ff191613ff191613ff443b34ff24201bff231f1bff181512ff171411ff494038ff161311ff161310ff161310ff151210ff14120fff14110eff14110eff13100ef50a0909ff221d19ff423932ff2b28257246200f54220e0552230f057e4e24128d562b17784f26138f4c2614733f1e0f642d13066527100671220f05a83a1d0eb5331a0c7a2e1509552d14074f2d14074a30150744321507523a1a087044210b8c4e27128d653319785f2f16885d2d18765b2b1562753417546c2e1453662b134b62280fff181310ff1a1612ff110f0cff100e0cff100e0cff100e0bff100d0bff100d0bff100d0bff0f0d0aff0f0c0ae10a0807ff191512ff16110eff1e1915ff161310ff201b17ff0e0c0aff16120fff16120fff1915123a4f1d08ff0f0d0aff110e0bff110e0bff000000ff000000ff000000ff000000ff000000ce000000ff0d0b09ff0c0a08ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0d0b08ff0d0a08ff0d0a08ff0d0a08ff120f0c65461b0a4f43190a4d431a095b441b0a863b1c0f873c1c0f853b1c0e693c1b0c4a3a190b51341608472e1306532d130739281005682b130770271107481909033b1a0a03341b0a03351d0a0353230e0572261106643c1b0b55451f0d605126117c572c1457210e054f200d04572711066f31170aff171310ff39322cff2b2520f90b0907ff0c0a08ff0d0a08ff0d0a08ff0d0b09ff0d0b09ff0d0b09ff0e0b09ff181410ff0e0c09ff0f0c0aff0f0c0aff191412ff16120fff100d0bff100d0bff100e0bff110e0cff110f0cff120f0cff120f0cff12100cff13100dff201a17ff1f1b17ff27221eff231d18ff28221dff181512ff14110fff14120fff221e19ff171411ff161310ff161310ff161310ff151310ff161310ff151310ff151310ff161310ff161310ff161310ff161310ff161310ff161310ff161310ff161310ff161310ff443930ff1a1613ff2c2621ff342c26ff28231eff443f39ff1b1917ff1d1a18ff191613ff1a1714ff1b1815ff3a332dff1f1b18ff302a26ff1e1b17ff1f1c19ff201d1aff211e1aff221f1bff23201cff23201dff24211eff26221fff272421ff282521ff2a2723ff2b2824ff2c2925ff2d2a26ff2e2b27ff2f2c28ff312d29ff322f2bff33302bff34302cff35322dff3d3833ff57524bff56504aff403c37ff3a3732ff3b3833ff292621fe26231fff3a332dff68615cff635c55ff847c74ff706a67ff3e3a36ff383632ff393632ff393632ff393732ff3a3733ff3a3833ff3b3834ff3b3834ff3b3935ff3b3935ff3b3935ff3b3935ff3b3935ff3b3935ff3b3935ff3b3935ff3b3935ff403d39ff4c4943ff3b3935ff3a3732ff1d1a18ff342e2aff3e3832ff756e68ff817973ff5e5954ff35322fff34322eff34312eff32302cff312e2aff2f2d2aff1f1c19ff191613ff1d1916ff27221eff181512ff181512ff171411ff171411ff4a4039ff161310ff161310ff151210ff15120fff14110fff13110eff13100eff13100dff39312bff241e1bff201d1a72331b0e663c1c0b4d220e056d230f057f5529167353271482552a157a4a24127a3c1d0e652c130660240f056d1a0c04731308026c180a0354291106582b1307562e1507553317085b3a1a095d401d0a97512a148f512812745b2c154551220f404e200e5e6a301662743316556c2f15536a2f15ff181410ff100e0bff100e0bff100d0bff100d0bff100d0bff100d0bff100d0bff0f0d0aff0f0c0aff0e0c0ad6090806ff241f19ff110d0bff1d1915ff161210ff1a1612ff15110eff15110eff0e0c0aff0e0c09ff0e0c0a384e1d07ff0b0907ff0b0907ff0b0907ff110e0bff000000ff000000ff000000ff000000c6000000df0b0907ff16110eff16120eff17120fff17130fff18130fff18140fff191410ff1a1411ff1a1511ff19151155431908554219094f4119094f4119097b3a1b0e703a1b0d793a1b0c803b1b0e88421e0d57351809572e14074a2911064f291106742b13076f2913077126110752200d04361e0c04411f0c0459210d046c230f054030130763421e0d764f25117b562a136b231006501f0d045d1f0d0443341708ff1b1613ff26211dff2a2520db080706ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0d0b08ff191511ff0d0b09ff0e0b09ff0e0b09ff0f0c0aff1e1914ff171310ff211c17ff221d18ff241e19ff251f19ff26201aff261f1aff26201aff27211bff241e19ff14100eff25201bff201a16ff2b251fd6060504ff2d2620ff2e2620ff312922ff201c17ff302922ff302922ff302922ff302922ff302822ff302922ff322b24ff342d26ff352d26ff352e26ff372f27ff382f28ff393129ff3b312aff3b322aff3c342cff332b24ff221d19ff0e0c0aff2e2722ff28231eff49423dff1f1d1af62c2724ff191613ff191613ff1a1714ff2c2723ff1d1a17ff3b342eff39322cff4f463dff50483fff554c42ff554d44ff595148ff584f46ff5d544bff61584eff60584eff5c554cff5f564eff625a52ff655d54ff6a6158ff6b6259ff70665eff766b63ff746b63ff716860ff6e655dff676057ff4a453eff7d756bff5a534cff3d3934ff383531ff3b3833ff26221dff26231fff3d3630ff66605aff676059ff6c6967ff89817aff3d3a36ff7a726aff807971ff877f77ff898178ff8a827aff847d75ff8c837bff928980ff898177ff79726aff706861ff726a62ff726c62ff726b62ff726a61ff736b63ff736b64ff4a4742ff716962ff6f6860ff6b6259f137312cff342e29ff4f4741ff78726dff7c746eff6c6661ff675f56ff645c54ff635b53ff615951ff60584fff5d554cff4a423aff493f37ff27221eff443b35ff171412ff171411ff171411ff161310ff362f29ff161310ff15120fff14120fff14110fff14110eff13100eff13100de8100e0eff2c2621ff2d2721ff24211e8656291364220f0560220e04833b1c0c79562a14745228138a50281575411f0f6030140768291106612510056c1d0d046d1c0c045b2510055f2a1206672c130756301508593619096b3f1d0c6546200d835028108b5e2e187b5b2b16915f30196e582914527c36165373311659703318795f2c14ff251e19ff241e19ff231d19ff241e19ff241e19ff241e19ff241e19ff221c17ff211b17ff211b16ff201a16f50c0a09ff161210ff201a16ff181411ff171310ff1d1814ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0d0b09384f1c07ff0b0907ff0b0907ff0b0907ff14100dff070605ff000000ff000000ff000000ff000000d1000000ff0e0c0aff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08f80e0a0862441b0a64431b0a6f421a0a6f411c0c69391a0d813b1b0e70391a0c673b1b0c7e421f0d542e130843291106682a1207712c1408592912075226100662230f0637200e053f200d0456220e0567210d055d250f053a32140859401d0d9f582c168450271258200e04471e0c04512c1407682c150aff161210ff25201cfc161310ff0e0c0aff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0d0a08ff0d0b09ff0d0b09ff0d0b09ff0e0b09ff1f1a15ff0f0c0aff0f0c0aff0f0c0aff0f0d0aff100d0bff100d0bff100e0bff110e0bff110e0cff110e0cff15120fff221d18ff231e19ff372f28d1060504ff15120fff14110eff14110eff14110fff14110fff14120fff15120fff15120fff14120fff14120fff15120fff14120fff14120fff14120fff15120fff15120fff15120fff15120fff15120fff151210ff151210ff151310ff3a312aff1d1915ff2b2521ff453f3aff23201ef22a2623ff181512ff181613ff191613ff1a1714ff1b1815ff1c1916ff1d1916ff1d1a17ff1e1b18ff1f1c18ff201d19ff211e1aff221f1bff23201cff23201cff25221eff26231fff272420ff282521ff2a2622ff2b2824ff2c2925ff2e2a27ff2f2b28ff302c28ff302d29ff322e2aff332f2bff34312cff49453fff504b44ff373430ff373430ff36332fff25211de2080707ff413b34ff655f5aff6a635cffb6ada5ff67625eff373530ff373531ff383531ff383531ff383531ff393632ff393732ff3a3733ff3a3833ff3b3834ff3b3834ff3b3834ff3b3834ff3b3834ff3b3834ff3b3834ff3b3835ff3b3835ff3b3835ff3b3835ff3b3935ff2f2c28e11a1917ff1f1b18ff39332dff867f7bff6a615cff393838ff373532ff373531ff35332fff34312eff33302cff292623ff181513ff181512ff181512ff483e36ff171411ff171411ff161310ff161310ff161310ff15120fff14110fff14110fff13110eff13100eff13100dff12100dff1d1a19ff28231fff201e1bc1271e19895e2d1662210e0451210e04b465351d8f5d3018815329148a4a25137e381b0d5c2710055a2610056927120664210e0465230f0554281105682b1307602e1607573317096e3c1c0b6f48230d7a4f2612765529137d5b2b15795d2e17875e2f18819b4c2655813918647e381a757c391dff100d0bff0f0c0aff0f0c0aff0f0c0aff0f0c0aff0f0c0aff0e0c0aff0e0c0aff0e0c09ff0d0b09ff0d0b09dd090806ff181512ff14110eff231d18ff161210ff191511ff1d1814ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0d0b09374e1e08ff0a0907ff0a0907ff0b0907ff13100dff0e0c09ff000000ff000000ff000000ff000000ff000000dc040303ff0c0b09ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08b02a130a70431b0b6240190a59411a095d34170b6e38190c7a3b1c0d8b3d1d0e633c1b0a63341709612c13076b291106662a120765281107692610065d230f054d220e0545220e055d210d0564210e056f210e055b2d1308613b1a0b52421c0b6a4b220f4e1f0d04581f0d045d1e0d03502d1508ff191512ff332c27ff2a2520d0080706ff0b0908ff0c0908ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0d0b09ff1e1915ff0e0c09ff0e0c0aff0f0c0aff0f0c0aff0f0d0aff0f0d0aff100d0bff100d0bff100d0bff100e0bff1e1916ff211d18ff211c18ff191511fd403830ff161310ff13100dff13100eff13100eff13110eff14110eff14110fff14110fff14110fff14110fff14120fff14110fff14110fff14110fff14120fff14120fff14120fff15120fff15120fff15120fff15120fff15120fff393128ff1e1a17ff29241fff4b453fff221f1dff2f2a27ff181512ff181512ff191613ff191613ff1a1714ff1b1815ff1c1916ff1d1a16ff1e1b17ff1f1b18ff201c19ff201d1aff211e1aff221f1bff221f1cff24211dff25221eff26231fff272421ff282522ff2a2723ff2c2825ff2c2926ff2d2a26ff2f2b28ff2f2c28ff302d29ff322f2aff33302cff49443eff514b44ff36332fff363430ff36332eff25211df50b0a09ff221e1bff65605cff756d64ffb3aba3ff4d4843ff363330ff363430ff373330ff373430ff373530ff383531ff383632ff393632ff393632ff3a3733ff3a3833ff3a3733ff3a3833ff3a3733ff393734ff393734ff3a3833ff3a3834ff3b3834ff3b3935ff3b3834ff26211de824201eff1f1a17ff7b7977ff928d8bff837c75ff393734ff373431ff383532ff353330ff35322fff34312dff231f1dff181512ff181512ff171412ff483f37ff171411ff161310ff161310ff161310ff15120fff14110fff13110eff13100eff13100eff12100dff12100dfb151211ff302a24ff322b25ff201e1b5f441f0d6627110666200e0474261207b268371e915e2f189d572e18ad4926144e27100552240f055f25100669261106542510066f2d15076a2c1408572c1306522d14066936190a79411f0d874e2610714c2510765a2a15955e2e19865e2f18825c2d185c90401c5e86391a6c863c1deb1e120cff0f0c0aff0f0c0aff0f0c0aff0e0c0aff0e0c0aff0e0c0aff0e0c0aff0e0c09ff0d0b09ff0d0b09f10b0a08fb1c1814ff120f0cff201b17ff15110fff1c1714ff12100dff1e1814ff0c0a09ff0c0a08ff0c0a08ff0c0a08ff0c0a082f4f1e07ff0a0807ff0a0907ff0a0907ff130f0dff0e0b09ff0b0907ff000000ff000000ff000000ff000000dc000000f30c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a085d40190a6a421a0a583f1809573d18095e37190c6f3a1b0d903f1f10803e1e0e773e1d0d49311608642c13076a291206712912075e250f05662410054a210d055d220e0553220e055b210e055a1f0c0453240f055e3216096a3f1d0d5646200d5732170a521d0c03581e0c036c32170acf291a11ff1d1916ff231d19c8080606ff0e0b09ff0b0907ff0c0908ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff1f1a15ff0d0b09ff0e0c09ff0e0c0aff0e0c0aff0e0c0aff0f0c0aff0f0c0aff0f0d0aff0f0d0bff100d0bff1c1714ff161310ff1e1a16ff1f1a15ff3e362fff181411ff12100dff13100dff13100dff13100eff13110eff14110eff14110eff14110eff14110eff14110eff14110eff14110eff14110fff14110fff14110fff14110fff14120fff15120fff15120fff15120fff15120fff373028ff2a2520ff28241fff46413bff1f1c1aff38322eff181513ff171512ff181512ff191613ff191713ff1b1815ff1b1815ff1c1916ff1d1a17ff1e1b17ff1f1c18ff201d19ff201e1aff211e1bff221f1bff23201cff25211eff25221fff272420ff282521ff292622ff2a2724ff2c2825ff2c2926ff2d2a26ff2f2b28ff2f2c28ff302d29ff322f2bff47423cff4e4841ff35322dff36332fff34312cff24201cff0f0d0cff2a2622ff615c57ff6b635dff8e8681ff534f4bff35322fff35332fff363330ff363430ff373430ff373530ff383531ff383632ff383632ff393732ff393733ff393733ff393733ff383633ff383633ff393733ff3a3733ff3a3733ff3a3834ff3b3a35ff3b3935fe1c1916ff352f2bff241f1bff74706dff8f8783ff8b847fff383632ff373531ff363431ff35322fff35322fff34312eff1b1816ff181512ff171411ff171411ff494038ff161310ff161310ff151310ff15120fff14110fff13110eff13100eff13100eff12100dff12100dff120f0dfa1c1a19ff27221eff1b1816ff2c2825595426106d200d05661f0d048f5e2e16ab6a371db468361d8c552a15894321105728110560240f055c240f056b25110662281106772d1507562a1206552b1306622f16084c35180967411f0c7d5028136a5025115e5326126355271362552713609243206095421d5d92401f5a8f401eff0f0c0aff0e0c09ff0e0c09ff0e0c09ff0e0c09ff0e0b09ff0e0b09ff0e0b09ff0d0b09ff0d0b09ff0c0a09ff0c0a08ff16120fff201a16ff171310ff15110fff0f0d0bff12100dff1e1915ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a0847522009ff0a0806ff0a0807ff0a0807ff0a0907ff0a0907ff0b0907ff070605ff000000ff000000ff000000ff000000d9000000ff0d0b09ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08d8170d085d3e18095a3e1809593a16086a3b1c0d743c1d0e6b3c1d0d843c1d0e4d3918095c37190a512d13064d2810056c2a130757240f055c230e054d210d0554280f065a1f0b046c230f0665200e0564200d043d270f055236180a59401d0c6a4b2410401c0b03521d0c03541d0c047a2e170aff161210ff2b2522fe26211cff12100dff0a0907ff0b0907ff0b0907ff0b0908ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a09ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0e0b09ff0e0c0aff0e0c0aff0f0c0aff0f0d0aff14100eff1d1915ff1c1814ff403931e50a0908ff120f0dff12100dff12100dff12100dff13100dff13100dff13100dff13100dff13100dff13110eff13110eff13110eff14110eff13110eff13110eff14110eff14110fff14110fff14120fff15120fff15120fff15120fff2a241fff28231eff3e3934ff35302cff36302dff191613ff171512ff181512ff181613ff191613ff191714ff1a1815ff1b1916ff1c1916ff1d1a17ff1e1b18ff1f1c19ff1f1c19ff201d1aff201e1aff221f1cff23201dff24221eff25231fff262420ff282521ff292622ff2a2723ff2b2824ff2b2825ff2d2a26ff2e2b27ff2f2c28ff302d29ff312f2aff32302cff33312cff33302cff302c28ff221e1aff413b36ff27231fff5f5954ff665d57ffa69e98ff393735ff35322eff35322eff35332fff36342fff363430ff373430ff373531ff383531ff383531ff383532ff383632ff383632ff383632ff383632ff383632ff393733ff3a3733ff3a3834ff3a3834ff3b3935ff383531fe191614ff36312dff231e1aff7b7570ff817a71ff64615fff3a3834ff383532ff363431ff35322fff35322eff2f2c28ff181513ff171411ff171411ff161411ff161311ff161310ff161310ff15120fff14120fff13110eff13110eff13100eff13100eff12100dff120f0dfe12100dff2c2824ff2a2521ff1d1a177c371e1156351709671e0d046d210e05ae63331ca564331ba866341b7a4f25126c391a0b652811066c261107812f1609692b130755281206682b1307642c1307672e1508532e1407433417086b421f0d6847210f705628146e572a156f592a1653662d144a97401b559a431e5e9b4520af46200eff0e0c09ff0e0b09ff0e0b09ff0e0b09ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0c0a09ff0c0a08f6090806ff1b1613ff17120fff251f1aff14110eff16120fff0c0a08ff0c0a08ff0c0908ff0b0908ff0c0a08ff0c0a08ff0c0a08ff0c0a0835582209ff0a0806ff0a0806ff0a0806ff0a0807ff0a0907ff0a0907ff0a0907ff000000ff000000ff000000ff000000ff000000d2000000ff0c0a08ff0c0a08ff0b0908ff0b0908ff0b0908ff0b0908ff0b0908ff0b0908ff0b0907ff0b0908593b16096a3e190a5336140864401b0a67391a0b5d3a1a0c883b1c0f693a1b0d53401c0c4b2e1407482811065a28120644240e045d230f054b210d04612b1106bc28110865220e0557200d045b1f0d0449220d05452d13075539190a4b441e0c602210064d1e0d034b1c0b035237190afe181411ff1c1814ff1f1a16de080606ff0b0a08ff0b0907ff0b0907ff0b0907ff0b0908ff0b0908ff0b0908ff0b0908ff0c0908ff0c0908ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a09ff0c0a09ff0d0b09ff0d0b09ff0d0b09ff0e0c09ff0e0c0aff0f0c0aff0c0907ff1d1915ff1b1713ff14110ef60d0b09ff13110eff110f0dff110f0dff120f0dff120f0dff120f0dff12100dff13100dff13100dff13100dff13100eff13100eff13110eff13110eff13110eff13110eff14110eff14110eff14110fff14110fff15120fff15120fff2c2721ff26211dff3d3833ff39332eff36302cff191713ff171411ff171412ff181512ff191613ff191713ff1a1714ff1b1815ff1c1916ff1c1a16ff1d1b17ff1e1b18ff1f1c19ff1f1d19ff201e1aff211f1bff221f1cff24211dff25221eff25231fff272420ff282521ff282522ff292623ff2b2824ff2c2925ff2d2a26ff2f2b28ff2f2d29ff312e2aff322f2bff32302cff32302cff2f2b27ff221e1bff403b36ff423d38ff58534dff655c56ffa19994ff373531ff34322eff34322eff35322eff35332fff36332fff36342fff373530ff383531ff383531ff383531ff383532ff383532ff383532ff383532ff383632ff393632ff393733ff3a3834ff3b3834ff3b3935ff312d2ae60d0d0cff24211dff595654ff8b8683ff847c74ff3b3b3aff3a3734ff3a3734ff383633ff373532ff353330ff26231fff171412ff171411ff161311ff161311ff161310ff151210ff15120fff14110fff14110fff13100eff13100eff13100eff13100eff12100dff110f0cec1b1918ff2a241fff332b25ff1e1c194d4e220e481c0c046d251006732f16097b592c1580592b158f552b1695462211642e14065f230f05b9371d0e84301609762d1508452811065e2a11065a2c1306522c12066c2f160852351708a84b28159151291571582a156b572a1676592b1653a84f2165ad52245aa44d246aa94d26ff0e0b09ff0e0b09ff0d0b09ff0d0b09ff0d0b09ff0c0b09ff0c0b09ff0c0a09ff0c0a09ff0c0a08ff0b0908ff100e0bff13100dff201b16ff14100eff13100eff0c0a08ff0b0907ff0b0907ff0b0907ff0c0907ff0c0a08ff0c0908ff0c0908ff0c09084a713216ff090706ff090806ff090806ff0a0806ff0a0806ff0a0806ff0a0807ff0a0907ff000000ff000000ff000000ff000000e8000000ff0e0c09ff0c0a08ff0b0a08ff0b0908ff0b0908ff0b0908ff0b0907ff0b0907ff0b0907ff0b0907f10f0a07643a1809633716085f3514076539190b8a3c1d0f8c3b1c0f5e37190b453f1a09423115074d2811065c2710052e220e0448220e054a230f054d2c12066f3416097d220f0669210e06521f0d045f200e05472710064c33160966421e0d634a220e3e1d0c03401c0b0344210e059f321b0eff130f0dff120f0dfc161310ff0f0d0aff0a0907ff0a0907ff0b0907ff0b0907ff0b0908ff0b0908ff0b0908ff0b0908ff0b0908ff0b0908ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0d0b09ff0d0b09ff0d0b09ff0e0c09ff191511ff1b1714ff181512ff231d18fb25211cff14120fff100e0cff110f0cff110f0cff110f0cff110f0cff120f0dff120f0dff12100dff12100dff13100dff13100dff13100dff13100dff13100dff13100eff13110eff13110eff14110eff14110eff14110eff14120fff2d2722ff14110fff3d3731ff37322cff37312eee14110fff161411ff171411ff171512ff181513ff191613ff191714ff1a1815ff1b1815ff1c1916ff1c1916ff1d1a17ff1d1b18ff1f1c19ff1f1d19ff201e1aff221f1cff23201cff23211dff25221eff25231fff272421ff282522ff292622ff2a2724ff2b2825ff2c2925ff2e2a27ff2e2c28ff2f2d29ff312e2aff322f2aff322f2bff2d2925ff221e1bff413c37ff3f3934ff564e48ff625b55ff9b948fff35322fff33302dff34312eff34312eff35332fff36332fff36342fff373430ff363430ff363430ff373431ff373431ff363431ff363431ff373431ff373531ff383633ff393733ff3a3733ff3a3834ff3b3834ff272421ff373330ff141210ff797a79ff999693ff7f7772ff3b3a37ff3a3835ff3a3834ff383633ff383633ff363532ff1d1a16ff161411ff161311ff161311ff161310ff151210ff14120fff14120fff14110fff13110eff13100eff13100eff13100eff12100dff110f0cff110f0cff201d1cff28231fff1d1916ff322e2a6750251146230e05622e1307915d2f17895b2d169e5a2e17b3512a167a36190c5b220e055b2711066b2d14085f2b13085a27110653271106552911065e2c1307572c13078030170980391b0b8f46241166572a15715c2d16786131178d68351a52a0451d62ad50235eaa4c24ff0e0b09ff0d0b09ff0d0b09ff0d0b09ff0d0b08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0b0908f80a0807ff15120fff181411ff1a1713ff13100eff100d0bff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0c09085d803a19ff090706ff090706ff090806ff090806ff090806ff0a0806ff0a0806ff0a0807ff030302ff000000ff000000ff000000ff000000ef010101ff0c0b09ff0c0a08ff0b0908ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907623a1809623615095c311307623515088f3c1d0f903c1d105636170a633e1d0c6248200e512b1306572610052a210d0443210e0553220f0540210e045f3316086a24100676220f06551f0c045e210e0544200d04522e1307653c1c0c7349220f511e0d042e1b0a024d1c0b03924d2511ff15120fff110f0dff211c18fa0f0d0bff0a0907ff0a0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0908ff0b0908ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0d0b09ff0d0b09ff0d0b09ff120f0dff171411ff1a1613ff2a221cff2b251ffa110f0cff0f0d0bff100d0bff100e0cff100e0cff100e0cff110f0cff110f0cff110f0cff120f0dff120f0dff120f0dff12100dff12100dff12100dff13100dff13100eff13110eff13110eff13110eff14110eff14110eff1e1916ff2b2520ff211c18ff39332eff1d1b19ec141310ff161311ff161411ff171412ff171512ff181513ff191613ff191714ff1a1714ff1b1815ff1c1916ff1c1a17ff1d1a17ff1e1b18ff1f1c19ff1f1c19ff211e1aff221f1cff22201cff23211dff24221eff25221fff262420ff282522ff292622ff2a2723ff2b2825ff2d2926ff2d2b27ff2f2c28ff2f2d29ff302d29ff302d29ff292521ff201d19ff433d38ff2f2a26ff564d44ff625a56ff857e7aff32302cff33302dff33312dff34312dff34322eff35332fff35332fff363430ff363430ff363430ff363430ff363430ff363431ff363431ff363431ff373531ff383533ff393633ff393633ff3a3734ff3a3733ff1d1a17ff302b27ff1e1b18ff737371ff8f8b88ff827e79ff3b3935ff3b3834ff3a3734ff373532ff373532ff34312eff171411ff161411ff161311ff161310ff151210ff151210ff14120fff14110fff14110fff13100eff13100eff13100eff120f0dff110f0cff110f0cf1181513ff2e2721ff332b26ff1c1a185f4d220f511f0d045d2c1306673d1c0b775b2b157a5f2e17935a2e17954c2512462911055b210e055e2c1407562a1207542911064a25100638250f05642a1206712b1207662d14084e2c1407713b1e0d724e25126d582c179061321a835f301861ad51245caa4d235fb4522864bd592cff0d0b09ff0d0b09ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0b0908e5080706ff1f1915ff100d0bff1c1814ff13100eff13100dff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907858440218654250eff090706ff090706ff090706ff090806ff090806ff090806ff110d0bff0f0d0aff000000ff000000ff000000ff000000fb000000eb070605ff0c0a08ff0c0a08ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907f70d09076a39170a6b361709573011068f3b1d0f5f35180b6335180b4a33160a714b230f583115085629120732220e0440210e0560220f0656220e0454230e046b3b1b0b621f0c054f1f0d04581f0d04541f0d04582811076735190a64411e0c5946200d431c0c03441b0b036a34180ae5261911ff2b2621ff161310fa0e0c0aff0c0a08ff0a0807ff0a0907ff0a0907ff0a0907ff0a0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff130f0dff14100eff0b0908ff0b0908ff0c0a08ff0c0a08ff0c0a09ff0d0b09ff0e0c09ff1a1613ff29221dff241f1afb110e0cff0f0d0bff0f0d0bff0f0d0bff100e0cff100e0cff100e0cff100e0cff110e0cff110f0cff110f0cff120f0dff1b1713ff191512ff12100dff12100dff12100dff13110eff13110eff13110eff13110eff13110eff181411ff29241fff211d18ff352f2aff211e1cff1a1714ff151310ff161311ff161411ff171412ff181513ff181513ff181613ff191714ff1a1815ff1b1916ff2e2924ff1d1a17ff1d1b17ff1e1b18ff1f1c19ff1f1d19ff211e1bff211f1cff22201dff24211eff3e3731ff252320ff272421ff282522ff292623ff2a2723ff2b2925ff2c2a26ff2d2b27ff2f2c28ff302c29ff302d29ff26221eff201d19ff453e39ff554d44ff564e47ff5d5753ff857f7aff32302cff32302cff33302dff34312dff34322eff35322fff413e38ff403c37ff363330ff363330ff353330ff353330ff353330ff353330ff363430ff363430ff383531ff393632ff393633ff393734ff383530ff1a1715ff2e2924ff211c1aff73706bffc1b5aaff404040ff3b3936ff3b3835ff3a3734ff413e3bff3c3936ff2b2824ff171411ff161311ff161311ff151210ff151210ff14120fff14110fff14110fff13100eff13100eff13100eff12100dff110f0cff110f0cff110e0ced1a1715ff28221dff28221eff292522604f231059200d0560321608805a2c157a5b2c1582623017865d2e168c4523103d220e044d1b0b04512710065927110741260f0551251006572711064e2711055d2b13074d2e14075b371b0b7e43231073592d18665426126f562813785c2d1659b3502264bd592a5cbb5327ff0d0a09ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0908ff0c0908ff0b0908ff0b0908ff0f0c0aff100d0bff16120fff120f0dff14100dff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b090769723317727e3c1cf0140c08ff0c0907ff0c0a07ff0c0a07ff0c0a08ff0c0a08ff100d0bff0e0b09ff0d0a09ff000000ff000000ff000000ff000000e3000000ff110e0bff0d0b09ff0e0b09ff0e0b09ff0e0b09ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0d0b0986291208563113085c3012076830130874381a0d483114084732150946331509634b210e5c2d140755261105532410055d220e0556200d044e1609035c2710066f240f0767200e06541d0c04561f0d0469210e05672d14095e38190a6b46210d4a1c0c043c1b0b03411c0b035e471f0dff120f0dff14100eff1e1a16fc13100eff0d0a08ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0e0b09ff0e0c09ff0e0c09ff0e0b09ff0e0b09ff0e0c09ff0e0c09ff120f0dff0e0c09ff0e0c0aff0f0c0aff0f0d0aff100d0bff14110eff110e0cff13110eff1a1613ff1b1814ff1f1a16f00d0b09ff171411ff161311ff181411ff181411ff171411ff171411ff181411ff191512ff1a1612ff1b1713ff1b1714ff1d1815ff1b1714ff1b1715ff1b1715ff1c1814ff1c1814ff1c1815ff1c1915ff1c1815ff1d1915ff1f1b16ff27211cff221e1aff352f2aff25211ef0181513ff1f1c18ff201c18ff221d1aff231f1bff24201cff25221eff25221eff26221eff28241fff292521ff2f2924ff2f2a25ff322e28ff342f29ff36302bff36312cff36312cff332f2aff312e29ff322e29ff3c3631ff37332eff3d3834ff433d37ff46413bff48433eff4c4640ff4d4943ff514c46ff544f49ff565149ff57514bff433e39ff37332fff48413bff5b5249ff574f48ff5d5751ff7c7671ff4c4843ff4e4a46ff58524cff5d5650ff57524aff4c4741ff524d47ff544f49ff4c4741ff4a4641ff48453fff46433fff47433fff595450ff605b55ff615c56ff635d57ff615c56ff605b55ff57524cff433e38f4131110ff2d2924ff403d38ff7d7c75ff9c9187ff454443ff45433fff45413dff413e39ff413f3bff44413cff272420ff1e1916ff1d1815ff1d1815ff1c1815ff1c1714ff1b1713ff1a1613ff191512ff191512ff191511ff191411ff181411ff171310ff15120fff15120ffc322a24ff2d2822ff1c19177a331c11491f0d04491f0e0467321708775b2d15805e2d165f552811754d2411463015073d1c0c03642310065926100653240f06552711065c261107612711065d2a120757331608643b1b0a6d44230f755429146e572914845e2e168c6533184ca8451c54b450245cc1582971a4481eff110d0bff100d0bff100d0aff100d0aff0f0d0aff0f0d0aff0f0d0aff0f0c0bff0f0c0aff0e0c0afc080706ff13100dff15110eff191512ff13100dff110e0cff0d0a08ff0d0a08ff0d0a08ff0d0a08ff0d0a08ff0d0a08ff0d0a08ff0d0a08ff0d0a09ff0d0a09ff0d0b096e6c33175e6c3215647135179c411e0dff0f0c0aff100d0aff100d0bff100d0bff110e0bff100d0aff110e0bff060504ff000000ff000000ff000000ff000000e4000000ff13100cff120f0cff120f0cff120f0cff120f0cff120e0cff120f0cff120f0cff110e0cff110f0c573114085b3213085d2c10067d34170a7135180c4b321509483215096f4e230e663a1a0b472610053c220e054c200d05461f0d043a16080355200c04673b1a0a69210e0648190a03541d0b04561d0c044b240f055d32160963401d0c643a1b0b471c0c034b1c0b0361451f0dff14110fff1f1b17ff1c1714db090706ff13100dff13100dff13100dff13100dff13100dff14100dff15110eff14110eff15110eff14110eff14110eff15120eff16120fff13100dff16120fff16120fff161310ff171411ff181411ff211c19ff1a1512ff171410ff181512ff171411ff27201bff1c1814ff231e1aff1f1b17ff201c18ff211c18ff201c18ff211c18ff211c18ff221d19ff241f1aff25201bff26201bff1d1915ff26211cff26201cff27221dff28221eff2a241fff2a251fff2a251fff2a251eff2a241eff27221dff2a241fff241f1bff312c27ff171513eb181513ff292420ff2a2520ff2e2924ff322c26ff342e28ff352f29ff36312aff39322cff38322bff37312bff302a25ff443d36ff4d463dff50483fff514941ff595147ff5b524aff4a443dff3e3933ff3c3832ff3a342fff423c37ff48433cff544e47ff645c54ff6c655dff736b63ff776f66ff7a7369ff837a71ff847b71ff81796fff6c655dff605a52ff49413bff5b5249ff57504aff58514cff837e7aff79726bff827b73ffa0968bffa99d8fff81786eff5d5750ff615b53ff655f57ff5b564fff56514bff524d47ff4e4a45ff544f48ff817a71ff9f978cffa2998fffa2988fff9b9288ff968e84ff756e66ff48423bf82b2925ff151210ff73716cff88847dff7c746fff534f4aff524e48ff514b46ff4c4742ff433f3bff4b4741ff29241fff28221eff27211dff27221eff26211dff241f1aff231e1aff231e1aff221d19ff211c18ff201c17ff1e1a16ff1f1a16ff1d1a15ff1c1814f31d1915ff241f1aff3a312bff211e1b4e4e210e451e0c0450200d047f4d25118c5c2e17795529138a5229147841200f4125100545190b03572611075c2610065a291207582712065925100666291307753318095f3d1b0a7147230f83532c158f6231197f5e2e1660592a125291441b50b750215ecd5e2a62c65a2eff15110eff14110eff15110dff15110dff14100dff14100dff14100dff14100dff130f0dff130f0deb0f0c0aff1d1713ff100d0bff181410ff130f0dff110e0cff130f0cff120e0bff120e0bff120e0bff120e0bff120e0bff120e0bff120e0bff120e0cff120f0cff130f0cff130e0d757037186f6b33175b652d124c6a2f136273381b376c3113376a2c0d7c683011ff110e0bff0e0c0aff0e0c09ff0f0c09ff000000ff000000ff000000ff000000ee000000ff14100dff110d0bff100d0bff100d0bff0f0d0bff0f0d0bff100d0bff0f0d0bff0f0d0aff0f0d0adb180f0a4e301307542b100656290f056735180c4e32160a5134170a6237180b624d220e4f29120639230f0544200d053b1e0d0438190a0345130702665727116d230f066b210e075a1b0a04581f0d043a1d0c03582b13075b38190a5c46200d391c0b03411c0b03562511065e45200dff110e0cff15110ff8181411ff14110eff0f0d0bff0f0c0aff0f0c0aff100d0aff100d0aff100d0aff100d0aff100d0aff0f0d0bff100d0aff100d0aff100d0bff15110eff100e0bff100e0cff110e0cff120f0cff120f0cff13100dff13100dff15120eff0f0c0aff181411ff302822ff2b251ffd1c1814ff161311ff171411ff181411ff181411ff181411ff181411ff181512ff191613ff1a1613ff1b1714ff1e1a15ff1c1814ff1c1814ff1c1814ff1e1915ff1f1a17ff1e1b17ff1f1b17ff1f1b17ff1e1b17ff1e1b17ff27211dff231f1bff2b2722ff181615ff1f1c19ff1e1b17ff1f1c18ff201d19ff211d1aff231f1bff231f1cff24201cff25211cff25211dff25211dff342e29ff292520ff2b2723ff2c2823ff2d2925ff302b27ff332e2aff2e2a26ff2b2824ff2d2924ff403a34ff2f2c27ff302d29ff36322dff3a3632ff3d3934ff3f3a36ff413d38ff433e39ff44403aff45413bff47423cff39342fd812100fff161312ff574f46ff524b45ff554d48ff56534fff4e4944ff504c47ff56514bff57524bff4b4741ff44413bff524d48ff57524cff44413bff423e3aff403d38ff3f3b38ff49453fff504b46ff54504bff55504dff55504cff544f4bff534e49ff4c4843ff2e2925fe302d28ff211d1aff72706bffb4aca1ff6f6a65ff47433fff484440ff45413dff423e3aff45423dff3f3b35ff211d19ff1f1b18ff1f1b17ff1e1a16ff1d1916ff1d1915ff1c1815ff1c1814ff1b1814ff1b1713ff1a1512ff191512ff191512ff171410ff171310ef211d1aff211d1aff1a1614c12b1f1865552813571f0e0559200d04955d2f179d63331a9d5d30189d50281464361a0b5423100659200e065d271207662712074f261106612611064a2510055d2b13076f391a0a55441e0b82572d15a763331b9b66351981623217635a2a1346bc4f1f50c2552353ba4d25a17f3b1fff110e0bff110e0bff120e0bff110e0bff110e0bff100e0bff100e0bff100e0bff100e0bff110d0bef0a0807ff110e0cff17130fff130f0dff120f0dff130f0dff15110eff100d0bff0f0d0bff100d0bff100d0bff100d0bff100d0bff110d0bff110d0bff110d0bff110d0bff110d0b596a3215455f280f53652d11646d32174d6d3013507638163a7233123d6e30124f70321441682c104a703110ee120b07f80d0806ff000000ff000000ff000000ff000000cd000000ff0c0907ff0a0806ff0a0806ff0a0806ff090806ff090806ff090806ff090806ff090806ff0908064c3314085a30130754290e058d33170b5435180b433316096f36190c5949200c5437190a31220e0436200d04361f0d04391b0b0350180a03711509045813080367180a05531b0a034a1f0c044c1c0c044f251005512e1408583d1b0b572711074b241004661f0d04614e240eff120f0dff14110eff1a1613e0090806ff090706ff090706ff090806ff090806ff090806ff090806ff090806ff090806ff090706ff090706ff090806ff090806ff17130fff0a0806ff0a0807ff0a0807ff0a0907ff0a0907ff0b0907ff0b0907ff0c0a08ff100d0bff171411ff29221dff211c18f914110eff0d0b09ff0d0b09ff0e0c0aff0e0c0aff0e0c0aff0e0c0aff0e0c0aff0e0c0aff0f0d0bff0f0d0bff1f1a16ff100e0cff110f0cff110f0cff120f0cff120f0dff12100dff12100dff12100dff12100dff12100dff27211dff221e1aff2a2622ff1d1a18ff302a26ff14110fff141210ff151310ff151311ff161311ff161411ff171512ff181512ff181613ff191713ff38322dff1a1815ff1b1816ff1b1916ff1c1917ff1d1a17ff1e1b18ff1e1c19ff1f1c19ff201e1bff4c453fff211f1cff22201dff24211eff25221fff252320ff272421ff282623ff2a2824ff2b2925ff2c2a26ff2d2b27ff1f1c18c90c0b09ff0e0c0aff5c534aff514943ff97908aff393632ff312f2bff312f2cff31302cff32302cff33312dff34312dff494540ff4e4a45ff36332fff35322fff33322eff34322eff34322eff35332fff353330ff363431ff373531ff373532ff383532ff373432ec12100eff312c27ff292521ff73716cffb9ada1ff3a3834ff3a3835ff3a3734ff373532ff353431ff45423eff2e2b27ff151310ff151210ff14120fff14110fff13110eff13110eff13100eff13100eff12100dff110f0cff110f0cff110e0cff100e0cff100e0bf913100eff2a241fff3e352fff171411643c1d0e471e0c04431e0c047e301709965d31199760331a9b5f3118994e28145231160751231005561e0e05541b0c044a170a034d230f056828120634250f04592c1307633b1a0a674d2511635126107c592b1565552612815c2d175679371849c7542359cc5c2956c45829ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907f50b0908ff191511ff0f0c0aff171410ff110e0bff0f0c0aff130f0dff16120fff0a0806ff0a0806ff0a0807ff0a0806ff0a0807ff0a0806ff0a0807ff0a0907ff0b0907ff0b0907ff0b09076068311465662f145a632c1261733816466f3113467636145379381640703112687233165a6b2f14776d33174d612a10505c28104655240c584e1f0ab5210d04ff000000fe000000d7030202ff090806ff090806ff090806ff090806ff090806ff090806ff090806ff090806ff090706c4180b064b351407402b100551270e056d391a0c72391b0d793a1b0d883b1d0e4e451f0c2f2811053c220e04331f0d04311f0c043d1c0b044417090365170a035b1a0b04561c0b044f200d04501e0c04481b0b045028110762371a0a6b48230f4c2a120654220e05683c1c0b8430180cff1e1a16ff14110edf090705ff0b0907ff090706ff090706ff090706ff090806ff090806ff090806ff090706ff090706ff090706ff090706ff090806ff191512ff090806ff090806ff0a0807ff0a0807ff0a0907ff0a0907ff0b0907ff0b0907ff0e0b0aff181411ff1b1613ff231d18dd080706ff0d0b09ff0d0b09ff0d0b09ff0e0c09ff0e0c0aff0e0c0aff0e0c0aff0e0c0aff0e0c0aff0f0d0bff201b17ff100e0cff100e0cff110e0cff110f0cff110f0cff110f0cff120f0dff120f0dff12100dff12100dff27221eff231e1aff2f2a25ff191614ff2f2a25ff14110eff14120fff141210ff151310ff161310ff161411ff161412ff171512ff181613ff191613ff3f3833ff1a1714ff1b1815ff1b1816ff1c1916ff1c1917ff1d1a17ff1d1b18ff1e1c19ff1f1d19ff524b45ff211f1cff221f1cff23211dff24211eff25221fff262420ff282622ff292723ff2a2824ff2b2926ff2c2a26ff1f1c18ff1f1c18ff100e0dff585047ff544c45ff8d867fff35322fff312f2bff312f2bff31302cff32302cff33312dff34312dff4d4943ff54504bff35332fff34322fff33322eff34322eff34322fff35322fff353330ff363331ff373431ff373531ff373531ff33302de9151412ff24201dff42403cff7f7c76ff90877fff393633ff393633ff383532ff34322fff34322fff45423dff24211eff15120fff14120fff14110fff14110fff13100eff12100eff12100eff12100dff110f0cff110f0cff110e0cff100e0cff100d0bff100d0be11e1b19ff241e1aff211d1afa241f1b75582a1452200e0560200d049d582e1784572d1684562c15815027127a401f0e562d15075e261206501e0e0442180a0342180a036a261106722913075d271106522d140767411e0b80532a145f5225115c5124116653251279592b163fc64f1b46d15b2444c65527906d2d0eff0a0806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0807ff0a0807ff0a0807fe0a0807f00f0d0bff0e0b09ff171410ff100d0aff100d0bff0a0806ff120f0cff191410ff0a0806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0807ff0a0807ff0a0807ff0a0907ff0a08075b77371777793a1d556d31155b713415476f301243733312547636145e783716527031135f6c30144d652b11485d270f4f55250e444e220d474c200c5b4a1f0c57481f0b4b461d0a722d1105cf1d0f09ff0e0a08ff0e0b09ff0d0a09ff0d0a08ff0c0908ff0c0908ff0c0a08ff0c0a08ff0c0a084a381608603415073c270e04732d1408a83f2011a13e20118e3c1d0f723a1b0c4b33170938240e043a1f0d04381f0c04441f0c043c1e0c04621f0d05551e0c045d1f0d04421f0d04411f0d045a1a0b0450200d05532b1207763b1c0c4a31150849230e044b1d0c0358431c0cff110e0dff14100dfe191512f40e0c0aff0e0c0aff0e0c0aff0e0c0aff0e0c0aff0e0c0aff0e0c0aff0e0c0aff0f0c0aff0f0c0aff0e0c0aff0f0c0aff1a1612ff0e0c0aff0e0c0aff0f0d0bff100d0bff110e0cff110e0cff110e0cff14100dff13100dff161310ff15110fff1d1713ff2c2620ff171411ff171411ff171410ff171410ff171411ff181411ff181511ff191612ff1a1612ff1b1714ff211c18ff1c1814ff1c1915ff1d1a15ff1d1915ff1e1a16ff1e1a16ff1e1a16ff1e1b16ff1f1b17ff1f1b16ff241f1bff211d19ff322d28ff1b1816ff2e2925ff211d19ff211e19ff211e1aff221f1aff24201bff25211cff23201cff221e1bff24211dff2a2521ff47403aff2d2824ff302b26ff302b27ff312d28ff342f2bff37332dff332f2aff302c27ff302c27ff544d46ff332f2bff34302bff36312dff393630ff3e3a35ff423e38ff423e39ff433f3aff45403bff47433dff47433eff393530f739342eff181513ff534b43ff564e47ff8a847eff484440ff484540ff4b4742ff514e48ff55504aff4f4a45ff48443fff655f58ff6f6962ff57534dff504c47ff4b4843ff494540ff48443fff484440ff4d4a44ff55514bff59544eff58534dff58534dff48443ee71d1b18ff1a1714ff7c7872ff847e7aff746f6bff44403bff43403bff423e3bff3e3c37ff3e3b37ff433f39ff2a2622ff1f1b17ff1f1b17ff1e1a16ff1e1a16ff1d1816ff1b1714ff1b1614ff1a1613ff1a1612ff191512ff191412ff181411ff181411ff181310f928231fff231e1bff1915135e32160a6e44210e5c210e0562210f0593512a157b4b2511914b2713763c1e0d55301708642814066028130650220f05421d0c0448220f05572510055b281206522c1306593819096c49230f684c240f54502410535023105d53261157d7632940d4592243d55d2348d05c2aff0f0c0aff0f0c0aff0f0c0aff0f0c0aff100c0aff0f0c0aff0f0c0aff0f0c0aff0f0c0aff100c0aee090806ff100d0bff1a1512ff13100dff120f0cff100d0bff0f0c0aff120f0cff1b1612ff0f0c0aff0f0c0aff0e0b09ff0e0b09ff0e0c09ff0f0c09ff0f0c0aff0f0c0aff0e0b09ff0d0a08ff0d0a086d8b431e6e8b441e5c803b196b823f1c66783719557334154b71331353743414526f33136f6f331659662e134a5c27104651210c544c220e5149200c6f49200d50411a0a4d401b0a423b1809453515073f2f12073d2f12064a461b07ff13100dff13100dff13100dff13100cff13100cff14100dfd13100c3a2e110634280f053c220c0499402110953f20107e3a1c0d8a3e1f0f532b13074426100550210e053f200d04381e0b0439200d0451200d0455200d0460200d045e220e054b1e0c0449220e05501b0b045b2611077a34180b6c3e1c0d46200d04431d0c045c461f0dc01a100bff1f1a17ff191511eb080605ff151210ff16120fff161310ff171411ff181411ff171411ff181411ff191512ff191512ff191512ff191512ff1d1714ff181512ff191512ff191512ff191613ff1a1714ff1b1815ff1b1814ff1c1815ff1c1815ff0f0c0aff161210ff181411ff322b26ff1d1a16ff1d1a16ff1d1a16ff1e1a17ff1e1a17ff1e1a16ff1e1a16ff1f1b17ff1f1b18ff211d19ff231e1aff221e1bff23201bff24201bff24201cff26221dff27221eff28221eff27221dff26211eff27221eff27221eff25201cff1e1a17ff211d1aff282420ff272320ff27241fff2b2622ff2c2823ff2e2a25ff312c27ff2e2a25ff2a2723ff2b2722ff2d2925ff4f4741ff2f2a26ff312c27ff312c28ff312d28ff35302cff38332eff35302bff322e29ff342f2aff58514aff36322dff38342fff3a3631ff3d3933ff403c37ff47423cff4c4741ff4f4b44ff524e47ff534e48ff534e47ff413b36f23a3631ff1c1817ff4f4942ff574f49ff8e8782ff4e4844ff4e4844ff4f4b45ff514c47ff514c48ff4b4741ff46423cff6c6660ff7b756dff58534fff544f4bff4d4a45ff47433eff46423dff45413cff4a4641ff544f4aff5b5650ff5b5650ff5c5751ff48423bff322f2bff1b1715ff79726effa89e97ff56524eff4b4641ff4b4742ff494540ff47433eff47433eff3b3731ff332d28ff28231eff27231eff27211dff26211dff25201cff241f1cff231e1bff231e1aff231d1aff221d19ff211d19ff211d19ff211c18d224201eff27211cff26211cff1e1c196d5b2c135e220f0555220f05754b241077472210894020106b36190b762d160a55281306532a1406522812064d25110644220f0541240f055a2711066e2c14086335180965441f0c8c552b14454d210f424a1e0d504d210f4c4d210f36d0552035dd5e2538d75b25df3c2112ff14110fff14110fff14110fff14110fff14110eff14110eff14110eff14110eff14110ed70a0806fe29221dff0e0c0aff2a231fff100d0aff1e1915ff15120fff15120fff120f0cff1f1915ff14120fff14120fff14120fff15120fff15120fff15120fff16120fff15120fff15120fff15110eff15110e517836146b8b411a4f80381465853f1c56733416526d32154b6b3113546e3314576b311352662d124d6129104c5d28104251220d4d4a1f0c5b4b210d6a4c210e4b431b0a4c411c0a493b1809433515073c3013064e311408462d12074e2a10063528100541361506a3200e06ce170b05ff0a0807ff0a0807542a11063c270e054b240e057b271007923f200fa2422311a2442311582811076229130850220e052f210e042d1e0c03361e0c034f1f0c045b220e0556220e0469220e05471f0d03552710055d190a046f220f068030170a8e3f1f0f57271106521f0d0556271107783a1b0bff100d0bff14110efc1a1613ff090806ff090806ff090806ff090807ff090807ff090807ff090807ff090807ff0a0807ff0a0807ff0a0807ff1e1915ff0a0807ff0a0807ff0a0907ff0a0907ff0b0907ff0b0907ff0c0908ff0c0a08ff0c0a08ff080706ff15120fff16130fff322a24da090806ff0e0c0aff0e0c0aff0e0c0aff0f0c0aff0f0c0aff0f0d0aff0f0d0bff100e0bff100e0cff27211cff110e0cff110f0dff120f0dff120f0cff12100eff13100eff13110eff13110eff14110eff14110eff1e1a16ff0e0b09ff201c18ff1f1d1aff191614fc181512ff161310ff171411ff171411ff181612ff181512ff191613ff191714ff1a1715ff1b1816ff504842ff1c1917ff1d1a17ff1e1a18ff1e1b19ff1f1c19ff201d1aff201d1aff201e1bff211f1cff5f5750ff24211eff26231fff262420ff272420ff282522ff282623ff292724ff2b2925ff2d2a26ff2e2b28ff302d29ff26221eff3b3530ff171413ff4e4843ff554e48ff88807eff383531ff393633ff383732ff383631ff383531ff373430ff363430ff64605aff706b65ff393734ff393733ff3a3733ff393733ff393632ff393631ff383532ff383633ff393633ff3b3934ff3c3935f61c1a16ff2b2623ff1d1a16ff79716effb8ada0ff383431ff3b3835ff3a3735ff383633ff383632ff373532ff302b26ff26231fff161311ff151210ff15120fff14120fff14110fff14110eff13100eff12100dff120f0dff120f0cff120e0cff110e0bff110e0bf41f1b19ff1f1b17ff191613da3328216b421e0e50220f054c220f05744d26117642200f7a34190c7e2b1509562a1307522e1506582e1507492b1407452611054b230f055726110658271106572c1407653c1b0b86532813745427114f4e22104c4f23105f5125123dab461c35d8581f46e7642a54df652bff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ef0d0b09ff0f0c0aff231d19ff0f0d0aff13100dff0a0807ff0a0807ff0a0907ff120f0cff241d18ff0a0907ff0a0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907705c2a1271622c1363632e1378652e144c602a0f4156240d4353240d3c56240d425a260d4b6029104b612a1160612b114953230e554b210d5e4a200d4d491f0b4c441c0a483f1a09493c1909443616083930120653301408532e14084b2b12074f2810063b2b11053c3113063b2f1206323113064236150690281208622b11074d230d056d240f05963f2010974121109743231198452410673117093e220e0534200d04261d0a03431f0c0445200d0447230e044e210c035f1e0c045f220e054d281105593316086a1e0e05872c1509963b1d0d8e3f1f0e54200d05471c0b03704b230ff812100cff130f0dff29231ef9110e0bff110e0bff110e0bff120e0bff120e0bff120f0cff120f0dff13100dff13100dff13100dff13100dff201b17ff13100eff14110eff15110eff16120fff16130fff161310ff171310ff181411ff181411ff110e0cff161310ff181411ff110e0ce5110e0cff1c1914ff1c1914ff1c1814ff1d1815ff1d1814ff1d1814ff1f1b17ff211c17ff211c17ff2a241fff221d18ff221d18ff221e18ff231d19ff25201bff27211cff27211dff27221dff27221cff27221cff231e1aff2a241fff1f1b17ff211e1cff1b1715ff302924ff2f2923ff312a24ff322b25ff342e27ff373029ff3a332cff3b342fff3c3630ff3e3731ff504841ff453e37ff4a423bff4a423cff4a433cff514942ff544c45ff49423bff3e3933ff49433cff625a52ff625951ff675e54ff5f574fff4f4842ff45413bff47423dff48443eff49453fff4e4943ff655e57ff7a7267ff716a61ff4a433cff2f2b29ff4b4541ff4f4945ff2e2b29ff88857cff86837bff8c8980ff9b948aff988e84ff706962ff534f49ff918981ffb8aea3ffa59c90ffa49a8fffa39a8effa0968bff867f75ff615c55ff504d47ff514d48ff58544fff79746bff988e83e02d2a26ff1c1816ff625b58ff7a726fffa0988fff57524dff4c4945ff4d4945ff4c4843ff4c4742ff48433dff2a2520ff342e2aff28231eff26211cff25201cff26201bff241f1bff221d18ff211c18ff201a16ff1f1a16ff1f1916ff1e1915ff1d1914ff1d1814fe2c2621ff312b26ff1a1816593115093f220f0550231005523e1c0b6549220f7940200f7d341a0c892e170b512c14074b3116075f29120755271106452611064b2510066728130762271206672c140777401e0d7a4b23105e5023104d4e2210484d200f5e51251152e25d264ce760286fff843bff120e0cff130f0cff130f0cff120f0cff120f0cff130f0cff130f0cff130f0cff130f0cff130f0ce90b0807ff120f0dff181310ff191511ff0f0c09ff120e0cff120e0bff120e0bff120f0bff120f0cff241e18ff120f0bff120e0bff120e0cff120e0cff120e0cff120e0cff120e0cff120e0cff120f0cff120f0cff120f0c2f3d1505363f1705414018064e441c08423f1a08383b1807523b1a0a573a1909653b190a573a1a0a4d3f190946491c0a5154240d474f200b4a4c200c504a200c4d451d0b423f19094b3b18095239170845311307473113083e2c1207572c12065629110638270f05432a1106452b1106472d1206332c1105462c13064a291106372911053f270f04411b0b03873e1e0e8f402010994222107a3e1f0d572f15092e200c032d1e0b03301e0c04421e0c044f26100559270f05621e0c0459230e05282810042a3114066a2510067f2c14086434170a693f1c0c55240f054d1b0b035432170956221006ff110f0cff1f1b16e40a0908ff090706ff090706ff090706ff090806ff090806ff090806ff090807ff090807ff090807ff090807ff1f1a16ff0a0807ff0a0807ff0a0807ff0a0807ff0a0807ff0a0907ff0a0907ff0a0907ff0b0907ff090706ff0f0d0bff1c1814ff1a1613f21d1915ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0d0c0aff0d0c0aff0e0c0aff0e0c0aff29231eff0f0d0bff0f0d0bff100d0bff110e0cff110e0cff110f0cff110f0cff110f0dff120f0dff120f0dff12100dff2b2520ff211c18ff25221fff1e1a18ff1b1915ff14110fff151210ff151310ff161311ff171411ff181412ff181512ff181613ff191613ff4e4640ff1a1815ff1b1816ff1b1916ff1c1a17ff1c1a17ff1d1a18ff1e1b18ff1e1b18ff1f1d19ff675d55ff221f1cff23201cff23211eff24221fff25231fff262420ff272522ff292723ff2a2824ff2c2925ff2b2723ff221f1bff443e39ff48433eff4a443fff504a45ff393732ff34312dff34312eff34322eff35332eff35322fff34322eff34322eff69645eff746e68ff363431ff363431ff363431ff363531ff363431ff363431ff363330ff363330ff363431ff383633ff2e2b28e112110fff13110fff706965ff857d79ff6c6763ff373532ff373432ff363431ff353431ff353431ff2a2723ff2a2621ff24211dff14110fff13110eff13110eff13100eff12100dff120f0dff110f0cff110e0cff110e0cff100e0cff100d0bff100d0bf8221f1dff231e1aff1b1815ff28242152210d0631210e0537220f044949200c5f48220f793f1f0e7534190b5f2b1408412c13065f2b13075126100659271106452711063e2510055e2611066b291207562a1207833c1c0d6d3e1c0c5651230f454b1f0d424c200e3dcf552129dd552023d252218ad37333ff0a0807ff0a0807ff0a0807ff0a0807ff0a0907ff0a0907ff0a0907ff0a0907ff0a0907f90a0806fc100d0bff0d0b09ff221d18ff100d0aff171310ff0a0807ff0a0807ff0a0907ff0a0907ff120f0dff261e19ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907463a14054b3b1506483d1606483b1506453b1505433c1505443d1605443c15054c3c160649250e04592b1107493615074b441b094e4e200d645c29116958260f4d481c0a393e1707553d1909493a17084c3816084835160851311508553014085c2e13073c2a11063b281005432910054929100545260f054d2610054e220f053f210d044c220e0463220d054d200d04371e0b03392a11057b3d1f0d4b3a1b0b3a240e04301f0c04301e0c03331e0c034b250f055a2710045f1d0b0351200c04422a1105392911056432170a6c3417096a3d1b0c573f1c0c652b1308521b0b03481b0a0337291106ff120f0dff100d0bff26211cff080605ff080605ff080605ff080605ff080605ff080605ff080705ff080705ff080706ff080706ff080706ff110f0dff110e0bff080705ff080705ff090706ff090706ff090706ff090806ff090806ff0a0807ff060505ff171410ff1c1713ff120f0dff0d0b09ff0b0908ff0b0908ff0c0a08ff0c0a08ff0c0a09ff0c0b09ff0d0b09ff0d0b09ff0f0d0bff171411ff100d0bff0f0c0aff0f0d0bff100d0bff100d0bff100e0bff100e0cff100e0cff110e0cff110e0cff201c18ff221d19ff292724ff23211fdd0b0a09ff13100eff13110fff14120fff151210ff151310ff151310ff161311ff161412ff171512ff24201dff181613ff191714ff191714ff1a1814ff1a1815ff1b1916ff1c1916ff1c1a17ff1d1b18ff2c2825ff1f1c19ff201d1aff211f1cff221f1dff23201dff24221fff252320ff272421ff282623ff282623ff25231fff1f1c19ff3d3935ff4c4641ff4f4a44ff4f4b46ff34322eff2f2d2aff2f2e2bff2f2e2bff302e2bff312f2bff31302cff31302cff433f3bff32302cff32302dff32302dff32302cff32312dff33312eff33312eff34322fff34322fff34322fff35332fff221f1cff292522ff151210ff716966ff57534fff534f4bff353330ff353330ff353330ff34332fff3c3934ff25211dff1e1917ff13100eff12100dff12100dff110f0dff110f0cff110e0cff100e0cff100e0bff100d0bff0f0d0bff0f0c0aff0f0c0aff0e0c0afe241f1cff1b1916ff1816135e2912074725110641271306503919097a4f25117243200e6237190b7930170a6b2b14073d2811063f240e0547240e05482c15074e261106482711065a2912075e2912075e2b130888351a0c474c210f4d4e2210424b200e3e4c1e0d26e25b1f38f0632c44e76830ff090706ff090706ff090706ff090706ff090706ff090806ff090806ff090806ff090806ff090806f40b0907ff0f0d0aff1f1a16ff0e0c0aff15110fff090806ff130f0cff120f0cff110e0bff110e0cff090806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0806ff070504ff070504ff070504ff0706049c230e05712f1205473b1505473a150543391405413914054239140545391405453814054739140655491d0a685a260f4a50210c3b441a094a401a09583b1809453a160745381607443414073c32140741321507432f1206412e1206432b11055428100641240e044b2510054b230f053c220d045624100552220e054b210d0448200c043c1d0b033a230d044b34160861391b0c301e0c03271e0b033c1f0c0433220e04582810054d250f04471d0b044a2810063a210e043b2510056d3f1b0b834b23117e512611804b2210551b0a034f1a0a0338190a04551a0c05ff15120fff15120fe0070605ff080605ff080605ff080605ff080605ff080605ff080605ff080705ff080705ff080706ff080706ff080706ff080705ff080705ff080705ff080706ff090706ff090706ff090706ff090806ff090806ff100d0bff15110eff191512ff120f0cea0b0907ff0b0908ff0b0908ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a09ff0d0b09ff0d0b09ff0d0c0aff0e0c0aff0f0c0aff0f0c0aff0f0d0bff100d0bff100e0bff100e0cff100e0cff110e0cff110e0cff211d19ff201b17ff2a2725ff13110fff161311ff13100eff13110fff14120fff151210ff151310ff151310ff161311ff161411ff171512ff181513ff181613ff191714ff191714ff1a1714ff1a1815ff1b1916ff1c1916ff1c1a17ff1d1a17ff1d1b18ff1e1c19ff1f1d1aff201e1bff221f1dff23201dff24221fff252320ff272421ff282522ff282623ff24211eff1f1c19ff3d3834ff45403cff504a43ff625c58fd2e2c28ff2f2d29ff302e2aff302e2aff302e2bff312f2bff312f2bff322f2cff312f2cff312f2cff312f2cff312f2cff32302cff32302dff32302dff33302dff33312dff33312eff34322eff373430ff1d1a17ff282522ff13100fff69635fff69645fff383632ff35332fff35332fff34322fff34322fff32302dff13110fff13100eff13100eff12100dff120f0dff110f0cff110f0cff100e0cff100d0bff0f0d0bff0f0c0aff0f0c0aff0f0c0aff0e0c0afc100d0bff26201cff2c2520ff1e1b1959210e06492612054d32170877552912774b2310613a1a0b4f2a11064f2a1207582a13074226100653250f055d2610064c27110659291207502b13064a2c12065c2b1307732e160a802f160a4f5125114d4f23104b50251037e9642823e7582028e760279f853e20ff090706ff090706ff090706ff090706ff090806ff090806ff090806ff090806ff0a0807ea070605ff1c1813ff110f0cff14100eff0e0b0aff0c0907ff0a0806ff0a0806ff090806ff090806ff090806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0806ff090806ff090806ff090806ff090806ff0a0806ff0a0806ff0a0806ff0a0806ff0a0807cf160c07d0150b063b381405383612043a351204393411043e351204383411043b33110445341205523312064e270f054b280f064d280f0642270f053f270f05442810053f2a10053e2b100447260f0548240e0540220d044d240f0546230e0456240f055326100650250f054e220d044b200c043f1f0c0450260f055036190a33240f052f1f0c04371f0c03311f0c0355250f054d260f04391b0a034b240f052f1b0b03341c0b047e49230f78451f0d834c2411944e25126f220e06491a09034b1a0a0332160903ff0f0d0bff0f0d0bfd13100eff0a0806ff0a0907ff0a0907ff0b0907ff0b0908ff0b0908ff0b0908ff0b0908ff0b0a08ff0b0a08ff0b0907ff0a0907ff0a0907ff0b0907ff0b0907ff0b0907ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff1e1915ff14110eff16120fff211b17f30f0d0aff0d0b09ff0d0b09ff0d0b09ff0e0c0aff0e0c0aff0e0c0aff0e0c0aff0f0d0aff0f0d0aff0f0d0bff100d0bff100e0bff100e0bff110e0bff110f0cff110f0cff120f0cff120f0cff12100dff12100dff201c19ff211c18ff2d2926ff161412ff2c2621ff151210ff151310ff161311ff161411ff171512ff171512ff181613ff191614ff1a1714ff1a1715ff1b1815ff1c1916ff1c1a16ff1d1a17ff1e1b18ff1e1c18ff1f1c19ff201d1aff211e1aff211e1bff211e1bff211f1cff22201dff24211fff25221fff262320ff272421ff272522ff282622ff292723ff221f1cf3151311ff2e2a27ff45403bff534e47ff615b56ff35332fff36342fff373530ff383631ff393733ff393833ff393934ff393935ff393834ff393834ff393734ff393834ff3a3734ff3a3834ff3a3835ff3a3935ff3a3935ff3a3935ff3a3a35ff383531f4110f0dff3c3733ff3a3632ff68625dff67625eff3a3936ff393935ff393935ff393835ff393835ff2f2c28ff151210ff151210ff151210ff14120fff13110eff13100eff12100eff12100dff110f0cff110f0cff110e0cff100e0cff100e0cff12100dff141110ff1b1714ff181513dc2c252042210e053b2712054c3d1d09755b2d146f4d2510633c1c0c4b2e1508522c1307642c15085c2610065d261006622c1508482a12064d2c1306502e14075a3116084d2c13077330160a5b502311595024114d4e220f545124112fd1502139de592758e26631ff0e0b09ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0b0907ff0b0907ff0b0908ff0b0907ff14110eff0e0c09ff211b16ff0f0c0aff110e0cff0e0b09ff0d0b09ff0d0a08ff0d0a08ff0d0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0908ff0c0908ff0c0907ff0b0907ff0b0907ff0b0907ff0c0a08ff0c0a08ff0d0a08ff0d0a08ff0d0b09ff0d0b08ff0d0b08ff0d0b09ff0e0c09ff0f0c09ff0e0c09ff0d0b08ff0d0b09ff0d0b09ff0d0b09ff0e0b094d341305443111043d3010043b3010043a2f0f043930100439301004383010043e2e1005411b0a03421b0a03471d0b03561d0b034a1d0b033c210c0342240e0446240e044b230e04432710054b2b1106532810054b230d0457230e0549200c0448200d043a2d13082e210d04391e0c033b1f0c0450220e0459210d044d220e044e1f0c05542d1407401b0b03371c0c046a421b0c974a231180451f0f7a3c1a0d531c0b033a19090247170903f9161310ff171411ff1e1915ff100d0aff120f0cff120f0cff120f0cff120f0cff120f0cff13100dff13100dff13100cff13100cff120f0cff110e0bff110e0bff110f0cff120f0cff120f0cff130f0cff130f0cff13100cff12100cff1a1612ff100d0bff191511ff251f1af6181411ff15120eff15120eff15120eff16120fff16120fff16130fff161310ff16130fff171310ff171410ff181410ff181411ff181411ff191511ff191512ff191612ff1a1613ff1a1613ff1a1713ff1b1713ff26211dff25201bff2f2b28ff191715ff39322cff1e1a16ff1f1b17ff1f1c17ff1f1c18ff211d19ff221e1aff221e1aff231f1bff25211cff26221eff272420ff282520ff2a2621ff2a2622ff2c2722ff2d2925ff302b27ff332e29ff36312bff35312dff35312dff35312dff37332fff393530ff3b3632ff3b3834ff3b3a35ff3b3b36ff3b3b38ff3b3b3aff2e2a25f21f1c19ff3c3530ff45403bff564f48ff877f78ff3b3b3bff3b3b3bff3b3b3bff3b3b3bff3b3b3bff3b3b3bff3b3b3bff3b3b3bff3b3b3bff3b3b3bff3b3b3bff3b3b3bff3b3b3bff3b3b3bff3b3b3bff3b3b3bff3b3b3bff3b3b3bff3b3b3bff3b3b3bf511100eff1d1a18ff7d7570ff7a746effb2aba6ff3b3b3bff3b3b3bff3b3b3bff3b3b3bff3b3b3bff3b3b3bff2e2b26ff25211dff24211cff24211dff25201cff24201bff221e1aff221e1aff211d19ff211d19ff211d19ff211d19ff211c18ff211c18ff171511ff2b2621ff1c191758210e06412410054229130560582b10705529126a4a230f543a1a0b6534180a582e1508612d160855250f0570261006472a1207552c13066030150757341808523215086c371a0c5c35180a58512511545225115655271155ac4d234abe50235fe16833c162331cff181410ff16120eff16120eff16120eff15110dff15110dff15110dff15110dff15120ef30e0b09ff1d1914ff1a1511ff1b1612ff1b1611ff191410ff191410ff181410ff181410ff181410ff181410ff181310ff181310ff171310ff171310ff17130fff16120fff16120fff16120eff15110eff15110dff14110dff14100dff14100dff14100dff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000841d0a025f240c033f2a0e03432a0f044c2b0f04512c0f04522c1004502c0f044e240d0351260f044a28100548250f0543220d0445220d03503214064e311305552e12064f2910054e29110546220d04362c120731220e04311d0b03311f0c044f210e0455200d043a210d044b1d0c0450271107351a0b03371c0c045c38170a70421d0d78451e0e6e431d0e4b1b0a0336190902621b0b04ac211711ff211c18ff211c18ff211c18ff201b17ff1f1915ff1f1915ff1f1a15ff1f1a16ff1e1915ff1f1a16ff201b16ff221d17ff241e18ff231d18ff221c17ff211b16ff211b17ff27211cff2b241eff28221cff28211cff27211bff28221cff27211cff26201bff362e26ff342b24ff352c25ff332b24ff2f2721ff2f2721ff2f2721ff302822ff312a23ff322b24ff332c25ff322b24ff332c25ff342d26ff362e27ff39312aff393029ff383029ff362f29ff332d27ff352f28ff373029ff38312aff3b332cff3f3731ff342d29ff403731ff3f3630ff3c352fff39332dff38332eff3c3631ff403a34ff403a34ff433c36ff463f39ff49423bff4c453fff4b443eff49423dff4a433eff4c453fff524b44ff564e48ff574f49ff5a514bff5a524cff37332eff34302cff35312cff37332eff3b3731ff403b35ff443f39ff4a443eff514b43ff464039ff46403aff534b44ff696157ff756e66ff82776dffa0978fff9d968eff9e978effa69d94ffa9a098ffaba29bffa9a098ffa59c94ffa69f95ffafa69dffb2a9a0ffbbb1aaffbbb1a9ffb9b0a7ffb9b0a9ffb8afaaffc1b7b1ffc3b9b2ffc0b6afffc3b8b0ffcdc0b8ffd3c7c0ffcbc0bcffd1c7bdff77716bff867b71ff847a71ff837970ff837970ff857b72ff847a71ff82786eff7c7266ff60564cff433a32ff3a342dff38312bff36302aff38302aff3b332dff3a312bff393029ff362d28ff312a24ff39322cff413933ff413933ff463e37ff36312c4d1f0c0545261105412913056053291190542c146e42200e6534170a5e2e15075f3016086e2e14085f2b1308692a1408402c1206482f1407593216085b391a0969411e0c6d401d0d76592b157a592b15685729145a5b2a145d82391b6bb7582e76df6735ff2d231dff2f251fff2d241eff29211bff29201bff2a211bff2a221cff29221cff27211bff28211bff28201aff28211aff201a15ff2b241eff27211dff29221eff2a231fff2a231fff2a231fff2a231fff2a231fff28221dff28221dff28221dff28221dff27211cff28211dff28211dff27211cff28211cff261f1aff251f1aff251e1aff241e19ff261f1aff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000c20f0501c10d05014e270d0353250d0352240d034a240c033f240c0343250c0342240d034d280f04692c12076629100641250e0445250e044c260e053c1f0c034a271106321e0b04321e0c034b210d044f200d04411d0b0344240f053a250f05442e1408401d0c043d220e05623f1a0c6c401c0e6c411b0e6538170b431a0a034e1b0b04b4231912ff201b17ff0f0c0aff0f0d0bff100d0bff100d0bff100d0bff100e0cff120f0cff13100dff120f0dff13100eff14110eff13100eff14100eff15110fff14110fff15110fff15120fff14110eff13100dff15110eff16120fff1a1612ff201b17ff28221cff14110fff13100eff14120fff14100eff120f0dff110f0dff120f0eff15120fff161210ff161210ff181412ff191512ff191513ff1a1613ff1e1916ff211c18ff211c18ff211d19ff211c18ff221d19ff241e1aff25201cff28221eff3a322bff494039ff3c3630ff2f2b26ff322c28ff322d28ff342e29ff36312bff3a342eff3d3730ff3f3932ff3e3832ff443e37ff49413aff48413aff49423bff453e37ff3a342eff322d28ff2c2823ff26221eff26211eff282420ff292420ff2a2621ff2a2522ff292521ff2c2724ff2e2a26ff322c29ff322d29ff332d29ff312c29ff302b28ff312c27ff2d2823ff25201cff7a736dff85796fff5e5753ff615955ff5e5753ff625c57ff645e59ff635d57ff66605aff66615aff615b56ff67615bff6b635dff67615aff69615bff6c635eff6a625cff6d655fff6c645eff767069ff797570ff7e7974ff837e79ff928c87ff88817bffd4c9bfff7a7169ff847d77ff696561ff5f5b58ff5e5a57ff5e5a57ff605c59ff5e5a57ff5a5552ff3a332eff211c17ff1b1613ff1a1512ff1a1512ff1a1612ff1a1612ff17120fff14100dff140f0cff16110eff1c1612ff201b16ff261f19ff302722ff36312c3a230f05432912055d45220c71572c12804f27116a39190b7734180a392d13064a2f15076634170a59331709482d1407412f14073e2d13065a33170880401f0ca0552b168a542813645426126f56281468572a137571351c5994422057be582ed4472616ff1f1915ff1c1713ff17120fff16120fff15110fff15110fff15110fff15110eff15110fff16120fff1b1613ff261e1aff231d19ff2d251fff2a231dff2c251fff2c251fff2b241eff2a231dff2a221dff28211cff231e19ff231c18ff231d18ff26201aff231d18ff221c18ff231c17ff211c18ff211c17ff211c17ff211c17ff201b16ff201a16ff1e1814ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000f60201009f15070245240c03431f0a02471f0a03491f0b03431e0a02441d0902411d0a02481d0a0338170903321709025626100640220e044d210e0457230f045e210e0436220e0435250e045a2d14084e1f0d053c1c0b035c401a0b5f3e1b0c5f3d1a0c70401d0f3a1f0b03461b0a039c211611ff221c17ff13110fff1a1614ff191613ff1b1714ff1b1714ff1c1815ff1c1814ff1c1815ff1d1916ff201b17ff1f1a17ff1e1a17ff1e1a17ff1e1b17ff1f1b18ff211d19ff25201cff221e1aff221e1aff221d1aff221e1aff231f1bff27201bff28221dff2b2620ff15120fff1b1815ff1e1b17ff1c1916ff1c1915ff1c1916ff1c1816ff1d1916ff1d1916ff1d1916ff1e1a16ff1c1816ff1d1916ff1d1916ff1d1916ff1e1a16ff1e1b17ff1d1916ff1f1a17ff1e1a17ff1e1916ff1a1714ff342c26ff322b26ff3b352eff231f1cff201c1aff201d1aff221f1cff211d1bff201d1aff1e1b18ff1f1c19ff1e1b19ff221f1cff221e1dff262220ff282321ff272321ff25221fff25211fff2a2624ff272321ff292523ff2a2725ff2c2826ff2f2b29ff2e2a27ff2c2927ff2e2b29ff2f2c2aff322e2bff312f2bff312f2cff2e2b29ff2e2a27ff2f2c28ff1c1918ff12100eff26221dff6b6059ff26211dff2f2925ff322c28ff38322eff38332fff3a3532ff3a3531ff3c3633ff3a3533ff3f3937ff3c3735ff413c38ff3f3a37ff3d3936ff3d3835ff3f3b37ff48423eff433f39ff45403cff46413dff48433fff4e4742ff443f3affb5aaa0ff675f57ff191513ff292420ff2b2622ff292421ff2b2621ff2b2723ff2b2624ff2c2824ff2d2724ff292421ff24201cff211c19ff201c18ff201b18ff201b18ff201c18ff201c17ff1f1a17ff1f1b18ff1e1a18ff1e1a18ff1c1916ff453d37ff2c27232a240f04553217077a5a2f14875c30166749230e653d1d0b372a1005362d13065e33180a773d1f0e5e391b0b442f1407483015074730150751321508613f1c0b8a5025115a51231163592b13705c2d13685a2a1463833c1d64a94e2747c2592aff251f1bff241f1aff231e1aff241f1aff241f1bff25201bff29221eff26201cff251f1bff231e1aff241e1aff25201bff1e1915ff2a231eff2c241eff27201bff1b1713ff1b1714ff1a1512ff191511ff1a1612ff1a1613ff1c1714ff1c1714ff1b1613ff1b1613ff1a1512ff191512ff1a1512ff1a1612ff1b1613ff1b1612ff1a1511ff1b1612ff1a1613ff1e1a16ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff0000005a1f0b0546190a0444160903703e1e0d57381a0a6c3e1e0c763a1c0c5a2711074d25100554230f0554230f0453220e0465190b035d180b04631e0d05511f0d04591f0d045d1f0d0578200f056e3a1a0d712e140a4f271006441d0b04431c0b04f61e1914ff090807ff151210ff191613ff1a1714ff191513ff1a1613ff1b1714ff1b1714ff1d1915ff1f1a17ff1f1b17ff1e1a17ff1e1a17ff1e1a17ff1d1a16ff1e1a17ff211c19ff211c19ff211d19ff211d19ff221e1aff211d19ff201c18f21d1915ff1f1b17ff120f0dff1d1916ff221f1bff201d1aff211d1aff231f1bff1f1c19ff1e1b18ff201c1aff201c19ff201c19ff201c19ff211d1aff1f1b18ff1f1b17ff1f1b18ff211d19ff211d19ff1f1b17ff1e1a17ff1e1a17ff1d1916ff100e0cff211d18ff231f1bff2f2a27ff24201dff201c1aff1f1c19ff211d1aff1f1b19ff1d1918ff1d1a18ff1e1b17ff201d1aff221e1cff221f1cff24201eff23201dff211e1cff211e1cff23201eff262321ff262321ff2a2724ff2d2826ff2a2724ff2b2724ff2c2927ff2f2c29ff2e2926ff312c29ff302c29ff2f2b28ff2e2a28ff302c29ff2d2926ff181615ff0b0908ff13110eff3f3833ff2c2825ff33302cff36322fff34302eff36322fff383431ff36322fff383431ff3a3632ff3d3735ff3b3633ff3c3734ff3c3835ff393532ff383431ff3d3936ff3e3935ff423d39ff443f3bff48423eff47423dff47403bff161311ff403d39e639332dd549423aff35302cff2f2a27ff302b28ff332f2cff2f2b29ff302c2aff322e2aff302c29ff2b2723ff282420ff27221eff25201dff24201cff25201cff25201cff241f1cff221e1aff201d1aff201d1aff201c1aff1e1a18ff201c1857281208472b1306633c1c09864d29127a4b25117b42210e6a35190b412d1306382f14064c30150753321707412f1607412e1407392c13063f2e14073f301306603f1d0d784e2512575829126f6130167b6131165f6a2e175895422045b85324ff211c18ff201b17ff201b17ff211c18ff1f1b17ff201b17ff221d19ff231e1aff221d19ff241f1aff251f1bff231e19ff211c17ff241d18ff1f1a16ff191511ff201b17ff201b17ff1f1a16ff1f1a17ff201b17ff1f1a17ff201b18ff211b18ff201b18ff201b18ff201b17ff1f1a16ff1f1a16ff1e1915ff201b17ff201c17ff1f1a16ff1e1916ff1d1915ff1f1b17ff231d19ff000000c70d0a08b40c0a07a50b0907a40b0907a40b09079c0a08069c0a0907a10b0a07a90d0a08a60c0a08a90c0a08b00d0b08b50e0b09b60e0c09af0d0b09b40f0c09b40f0c09ac0d0b08a70b0a07af0d0b0890090806ff000000ff000000ff000000c20d0b09a60c0a07a90c0a07ac0c0a08b00d0a08af0d0b08b50e0b09aa0d0a08b80e0b09c10f0d0ac00f0c097a1f0f07491e0b0433180803562310065c391a0b683e1f0c6a3d1e0c702c1408532711064f230f055c241005622310055f1c0c0357160903431b0b0353200d05531f0c04591f0d046a1b0b057a2511087b371a0d5f2d130a311d0a034b200d0637210c04ff1d1915ff1e1a16d21d1915d11e1a16a9191512a8181511a91915119f1815119f1a1612a51b1713b01c1914ac1c1813ad1c1814b51e1915b91e1a15bb1e1a16b21e1a16b91f1b16b81f1b17b11d1915ac1c1915b41e1b169c120f0cc90d0b0975110f0dff211d188d14110e8513110f90151210941513108e0c0b0a8b0c0b0a8d0c0a0a8c0c0a0a8b0c0b0a8c0d0b0a8c0c0b0a8b0d0b0a8d0c0a098b0c0a098c0c0a098c0d0b098c0d0b098d0c0b098b0d0b0a8c0d0b0a8a0d0b0aff191614ff211d1aff28231f8f1917158a1513118c12100f8d12100f8b12100f8c110f0e8d100e0d8a100f0e8c110f0e8e11100e9012100f8d12100f8a12100f8e110f0e8c100e0d8b100f0e8c100f0e8d110f0f8c110f0f8c1311108b1311108b12110f8c12100f8d1311108d1413118c1513128b1412108d151312921412118b1312118a1412118d1211108c0d0c0bff171411ff28231fff36302d8c161513891816148e1916158e171614901917168c1816148b1917168d1918168d1918168c1a18178c1a18178c1b18188d1a18168b1816158c1918178a1b19188c1c1a188b1c1a188b1e1c1a8e2a27239b2b2723f2201c19ff413d3ad433302c6d2b2824d1686159b34f4942b04d4842b3514e47b452504ab958534eaa4f4944b8514c47b834302bb2292520b527231eb3231f1bb6241f1bb3231e1aac231e19aa221d19a6211d18ad221e19a9221e1adc2c2621931b1714ff1d1917bd281d184d3114094e2d13066845210c8c4f2b147a4d27128a30180b4d2610063f2b12063a2e1406492f140754301508482e14074a2d13073e2d1306423115074a371709533f1b0b425324103c51240d635d2d146f68351854853a1d34ad481f3ce46623ac26201ab429211bb829221bb728211baf26201ab229221bb12b231ca926201aa3251f19a928221b94241d17d327201aff1a1611ff26201ba81f1a159d1e19149e1d1814a01d1814a31d1813a21d1914a7201a159b1c1712a51e1813ab1f1915aa1e1914aa1e1814a91d1814ac1d1914a81c1812a21c1712a01b16129e1a1611a21b16129f1b1712b41f1a14ca241d18ff211c17c714110d4c130f0b3a14100b5818150f4715120e4816130e4917130e4a16130e5b1915104e1815104416130e5518140f521814105c1915106b1b17115f1916116c1c1813591a16115d191510571915104416130e4b16130f35130f0bc41a1410c3211b153814110d6219151054171510631a16115117140f5116130f5c1a1611641a16116e1b1812751d1913731c1812831d191342200b04491d0b0440190903683a1c0c673d1e0d6a3e1e0d6a3c1d0d7e2d160956241005582410045e230f045b200e04571d0d04481d0c03481f0c044f200d0452210e0475200e0683220f078b381b0d9031180c561f0c044e210e0640220d058815120fc1211d18541814103719151069211d175d1f1b155c1f1b155d201c1661211d176c241f195a201c165f211d1763211d1660211c177525211a7e27231b68221e177e26221b6b231f1970241f187526201a60201c168d100e0bbc0d0b094e0e0c0a5d13100e230e0c0a290d0b09350f0d0b2b0d0c0b4112100e8a221d1764211d176c221f187425201a66231f197226211b7525211a892a261e7c27241d9a2d2821912c2720762b251d702a241c752a241d7b2c27207c2c27204e231e18c02a231edf332a24461f1a15752b27206c2a251e6628241c772d2a217e312b226d2e2a2174312b227c332e258c39342a813631288a3a342b813b352c75332d24753630275b332e2793372e27e552463e4b322d2678443e3472423d336f453f357e49433988504a40864f4a3f93585347995953499156514792615a4f85635a4e815d564a7d5f574b8b6660568a5d584ea74b433dc5665b548f5b534b5f5d574c72645f55796f695d746c685c7a6b645686737063756b655a89736e629b808073a5848173967c7a6e957d7b6f8b7a756877726e60796b685d4a4f4942e893877c4f1b18152d14121041191613501b1814401816134c100e0b6b332e29c57e7970c867615c849d9e926a908f827b96988c88a1a39686a1a296a2aeb2a28b5654498239352d963d382f8637322b8038322961322c246d352f2670312c2464302a2274352f277a353027502b261eaf322923c224201c23200b034437170b462c13067141200e8e4d2913874e29146a2f160a59291006522d13073d2d130655311507653317094f2d1307462d13073e2d13074b35180961431f0e5a5428105a5a2c14555527115a582a1343682a145bb04d2645e5602a4933261b572e261d532d261e65322b2268332b2262322a2266332c23512f271f5730281f492d251d432b241c4029231b41261f18b73429226b281f1930241f184d2b251d4c2a261d4e2c261e4429241c4426211a4c2d271f4c2a241d5b2d281f5b2e2920602d271e612d271e582a241d592b251d4927211948282119532720194a2620185127211a5228221a37221c1582271f19c81f1915c9120f0c3413100c5217140f571915104b17140e4716130e581915104b17140f591916105119150f4f1815104e181510611b17115c1b1711671b17125d1a1611671c18136f1d19135d1a1611561915114616140f4f1814103a14110d7218140f5a14100c5a1a17116b1a1712611a16116b1b17125a1815105718150f5418150f681b18126d1c1812721c18136f1c18127c1d1a146a1b171245210c05301f0b0359261005613d1d0c5c3b1c0c613c1d0c7d3117086a2c1407592711054d230f044e210e0455220f045c220f045623100559210e04421f0c048e261108762711088d32180c8e2f160b5e1d0c044f210e064c200c059c17130f9e1c17133d191510571c181368211d1862211d1659201b157225201961221e1869231f185e211d166a2420195d211d177625211a7426221b7a27231c63221e187826231c8128231d6f24201a7425201a61211d189d110e0ccd0e0c0a500f0c0a6013100e1e0c0a082e0e0c0a47120f0d741715124612100f70201b167825211b8227221b7926221b7926221b6a231f197b26221b882a251e7225221b8b2a2720872b261f752b261e7e2d281f852c27207e2d2821782c2721732c27204e191511501f1a156327221b792d2821752d2820752c27207b302b237e312b2373302b2275322c248b38322888352f275f151312791a19176f1d1b19761f1d1b5f2f2e2c5d1b1a18621a1918651f1f1d671e1d1b571d1b1971272523742c2b2a732f2f2e77302f2e814c473d86504c429558524888544f458b6962567f6e675c76676258836f6a6088766f647e7870634e585247a5675e554f5e584f847f7c736e6f6c6471807a6e848f897b71756f62818680757d827f73818382769299998c999e9c8f8b9796898f9a9c90808c8d82758b8b7f6f80807468827f7377736e654b1a17152d14110f4f191513451815122012100d57100e0c7336312bcb847c72d3706a65879fa2947494988a829da0927c95998b8aa5a89a9eadaea08f7472667f4642388838342b793430287b36302864322d25743530286f302b2476332e2679342e2674332e2569312b234027221ac525201c39250f05493a170a4a2c1306613d1d0d7d4724117349251061361b0b4c2a12063f2c1206352d1306543216085a321709462f1407442d1307292b11054f37190a53411d0c726030166b5e2d16795d2e1760602e15488c3a1b30c14e1e3f9d4923572f281f502e271d65342c2167362f235f322b2163332c225f332c2263322c23582f2921452a241c472a251d4229241c4029221b5628211a3f1f19144e2d2920552d2920582e2920522c271f4c2b261e4828231c4529241d4f2b261e5a2e271f562c271f5a2c261e5a2b261f4f29231c552b251d4a29231b4f2a231b512620195729231c5327211a4e2721194926201833221c15bc1e1814c70f0d0a4916120e581815105a1815105017140f4e17140f5e1916105118140f631a16115b1916105318150f571916115b1a16115c1a16116b1d18125e1a16115a1b17125419151153181510531815104b181510551815104315120e8417120f7d17130f671b1813731c1914681b18136d1b1712611a1611691a17125b191510711c1813621a1610701c1812661b1712721d19136e1b171265250e063c250d05372a100552391b0b51391b0b55391b0b4d3719097c281307692f16075a2a13065524100551230f045a23100551230f056723100455200d04602a1207782f16097833160a8e3d1b0d601c0a037825100857200d059b16120fb71d1814561d19145d1e1a146c211e1768211d1762201c167926211a6a221e187625201a6b231f197024201a67221f186c2420197525211a7e28241d67221e186924201a63221f1862211e186e231f1965221e18a212100dbc0f0c0a500e0c0a6313100e210c0a08320e0b0a2a0c0b09280d0b0a5114120f89241f1a7825211b8828241e7a26211b8328231d6c2320198429241d8229241d6924201a8b2b2720912c28207429251d812c271f862c2720762a251f742a261f792e2820541a16125c221d17772c261e872e2a227e2d2821752a261f83312b2388322d257924211b78171613761a18156f1b19175d1c1a18741e1e1c721f1e1d6d201f1e563635335b232220742322217d2b2a29732827245725242180312f2d6c2b2a2a7e2e2e2e8a3e3d3b61363432703a3b397b40413f79414340824f4b448269625680645f5379656057816f6a617c706b60585d564cb8736a5f646b665b8b867f738175736a7d827d728d928e8072746e628d8a857b8286827981878378919795899ba0a0968f96978c758183797c87887e7587877c7889887b738c897ca68c847f381613114117151272201c186b201c182212100d57100e0c723c352fdc897f76cb6d6863849d9e927d9d9f9296adafa3859a9d9098b2b2a68ea4a39595aaab9e816a665a7e3f3a327c342f2877342f2770332e267c363129702f2b24672e292278332e2672322d256e312c234828231cca25211d3f2c110655401c0d502b1306603e1f0d834d27137d442310653a1c0c422d1206372d13062f2c1206513216084f3217093b2f1407372d1206333014075c3c1d0d5b4e24105e572812615c2c157e5f2f176e75331b3aa8431c3cf86a2e63322b215930281f5830291f5e322b2067352d2361332c2364322c2252302a214c2d271e4c2c261e4529241c4a2d281f462a251d4a2c251e581f1a1560241d185b302b225b302b225c302b23502b251e522e2820532b261f4a2a251e572d271f532c241d542c261e532b261e522b251e5228231b542a241c502a231b532a231b542520194b252019512620194c251f194e26201838221c15bd1d1813c813100d5217130f5c1915105f1916105217140f5218140f5e1916114e18140f5f191611541815104f17140f561916115c1a16115a191611641b18125d1a1611651a17115e1a16115c1a1711521815104d181510631b17124e18140fa21a151192191410661b18136a1b1812631a17126a1b1712651a1611631a16115417140f701c18136b1b17126f1c1812671b1712751c1813741c1812701d1712612b11084f3314086e421d0c4f391b0b4b37190a4836190b56220f0684301709612e14074b26110652230f04542310055c231005692310055e200d049f31180c9d33190c95371a0c7239190b681d0b0465230f065b200d058816120fb71d1813601f1b15611f1b1574221f186b211d1769211d177725211a67231e1870241f1960211d176a241f1965221e187224201a7024211b7626221c64211e187925211b6e24201a6e24201a6a231f196a231f199e14110ee2110e0c440d0c0a5b12100e210c0a08330f0c0a390e0c0a390f0d0b4512100d9125201a7525201a7d27221c8a29241d7b26221c7324201a8528231d8d29251e7225211b8c2b2520922c27207028231c792a261e872d28217a2a261f732a251f7f2c2821471c18136c29231c732b251e7e2c2821802c2720701c1915811a1814771a1715711b1917861f1c1977201e1b3614120f4a1e1b18711f1e1d762524227529282768403e3d742b2a287f302f2d852f2e2d7432312f612a282574323231793534347d35353444312f2d742e2c2a2e1d1c1a7f41403f7b46474676474946744e4f4f7c504f4e86696358776a655b84746f65585b554b845f594e74746e6191827d717e7670657b7f7b718b938d82747771678b878274898a84778e8e8a7f8c949489949d9c8f999f9f958d9293898b9092877b8c8b7f7687847886969487d5a4998f3e1815132e13121038161210341512102212100e50110e0c813f3b35dc827d75ca6f6b64859d9f9384a0a1968ea7aaa17c94988a96adafa29cadad9f93a8a99e8796968b957e796d8335302874332e27622d292271312d266d2e2a236a2f2a236d302b2476322d2574322c23592e2720c9211e1a482f12065c47200e4c2c1406663d1e0d794925118d482613583a1b0b462e1407392c13062d2d12065031150849321608332e13063a2f14072f351708453f1c0b775e2f187a5f2e176f5f2f1674612f1771a54e295ef674386761482d5c312920532f281f58312a2160332b2264342d245e322c2262322c235b2f2920562f292056302a224229241c4c2e2820542f29215631292069211c1770261f1959302b22542e292159302a224e2b261f542e28214f2a261f4628231c552c261e592c261e522c251e532b251e532a241d5529231c5029231b462520184b262119512520194b2520184a231e184d241e185026201841251f18ca241e193714100c5317130f5618140f571915105117140f4f17140f601a16114c16130e611a16115b191610581916105d1b17115e19161155191510641c1812611b1712701c1813611b1712611a17125e1a16114817140f691c18135318140fae1b1611a01a1511621b1712671b1712611a17126d1b1813661a1712631916115f1915106b1c1813731c1812741c1812671a1711771c18136e1b1712751c181258240f065a2710064c2b11064433170948371a0b4136190a4137190a511b0b04642f14074f250f054e230f055e2310055c2310055b220f0561210e048b2d150a4e291207502b12076d34160a591b0a0361220e064e1e0b049d1b16134e1b171165201b155a1d191368221d1769211d1764201d177826211a66221e177324201968221f187726221b6e24201a732320196c2420197727231c66241f198528241e7125211b7325211a7d27221b64221e1881191612df110e0b530f0e0c6112100d230c0a092d0c0b09330d0b092b0d0a0845110f0c83231e187725211b7a26221b8728241d8328241d7525211b8b29251e942b261f7626221c8b2b261f8d2c27207828241d7a2a251e872c2720832b2720812b26208c2f292255231e195f27231b722a251d6c141210771a1714731c19167f1f1c1879211e1b75201e1b8423201d802825226823211d7c282724802c2b288a32302d983633307337353373333230903b3937a0413e3a863f3d3974302c28703b3a388b4443417f4341408448474558383634794a4a49834e4d4d794848488250504f7d5454557157595a735354568658585a97665e547d564f46374e473d76756f60817f786a7874706283857f738f918d80787c766a76807d6f878c877b8689867b8d939285939d998a949d9c8f889594898d959588889895897e8a887c7f908d80e7aba0943b1714123b151310501a1714561d19161c110f0c5611100d7d393631ec7d7a718b908f828da5a89b84a2a6978ea6aa9e889b9d918dacada1a4b3b4a69bb2b1a386a1a0949c8c857a7f35302979343029622e2a236f312c246e302c2473322c246f302a236c302b2374312b24542a241d8a1d1a16472d120662512511412b1205703d1e0d76482410874624117f3f1f0f3f2b11063d2d130647301507593216084f341809352f1307423618094b3e1c0d946131198c63321a8b65351a8367361959692d1762ab4f274de66e3162322a2064342d225e342c2260342d2362322b2261352d235d342d236838302664352e2457322b225b312c224c2c261e482d271f58312b225a30292172241d187a28211a56302a22522e2820542f2920502c271f562f2a224e2a251f4d29241d502c261e5d2c261e582c261f542c251e552a241d5228221c5429231b462520184b2520195126211a5227211a4a221d1747231e17502520193b221d16741e19144316120d5417130e5318140f5a1915105217140f5518140f651a16115418140f541815104e181510531915105d1b17115e1a16115d1a1610651c1712601b17126d1d1913631b1712671b1812651c1812501915105d1a16115218140fc21d1812991a1510611a17126d1c18125e1a1611741c18136b1b18126c1b171260191611761c1813771c1813811e19136c1b1711781d19136c1b1712711c1812731c1812651e0c06571d0c054b1e0c044b381b0c4d371b0c4335180a68221007652a130858230f054d220e055c230f045f2310055a210e04591f0d04782912086e2b1309582b1208522c12084a1b0a0367220e064c1f0c04aa1b17134b1b1812611e1a14581d19136c221e176a211d176c221d177d26211a6d231f1864221e1856211e187125211b6d24201a7025211b7225201a7527221b61221f197f29241e7225211b7826221c882a251e6e24201a6c242019b80f0d0a530f0d0b6b13110d1c0b0a083a0f0c0b330e0c0a320e0c0a41110e0c9426211a6f24201a6c2420198028241d7e28231d7626221c8528241e8e2b261f7827231c912b2720922d28207d29251e822a251f7c29251f822b26207f2b2620842e2821441e1a156b1a1814771c1916751d1a1777201d1a7d24201d7f26231f8c2824217a2523207c282522832d2a279534302c9a33302d98353230933a3733af49454093413d386e3533308a3b393795413f3b7b3e3b366e272420c2696563be726e68ab5e5a589c575451a0615e5ca263615fa863615f9561605f936765658d6566657e5e5f5f86606060805d5e5d76656766705658595247443c7a736d5f8b847e6f7d77736587878273898e897b7f817d708e8b887a91908d818286857976878579899592848f98968a87949386969d9b8e8f9c988e8e918e8484928f82d7a3988d3e1816132a15120f3a171411431915131b110e0c6913120f7334312cdb767169869fa0958ea7a89c8aa6a79898afb0a48a9e9f949bb3b5a8a9b7b9aba7bdbcac88a5a3959da39e91866661567438342c6b302c2570312d256c2f2b2376322c257a312c2580332d257d332c2571302a224d1d1914522a1206755b2b15372a1205683b1c0c7945231075432210863f20103f2b1206402d1306442e1306593216095134180a493316083e3618094a401d0d865f3118a265351c9a66361b835e30186f73341c649f4a265d493122532f281f54322c2259342c225d332c2361352e246a372e245d342c226537302562362f2559322c225f332d23503129204f3029204b2d271e5b3029207e251f197427201a54302a22552f2921522e2820542d27205a2f2922542c26204d2a241d572d271f602d271f5d2d271f572c261e552b241d4f28221b5029231b4d27211a4a26211a4f2620195528221b51241e1854261f18572620194d2620187a1a16123814110c5517130e5518140f591915105418140f5c1915105d1915105618140f611a161159191610581915105c191611561916114d1915105f1b17115c1a16116a1c1913691c1913691c19136a1c18135c1a17126b1c18124e17130eb61c1611aa1c1712651c1812661b1711541815106d1c1813611a16116c1b1712611a1611741c1813701b17127c1e1913711c18127c1d1913741c1812771c1813761d1913761e0f087c1c0c066d1a0b054d30160a3f33170a3f34170a452f150967210f074d210d044e210e045b220f0571220f056d200e04511c0b04942a13096f2a12095e2a1208742f14094e1b09035f220e0656220d057f171310451a1711631f1a155a1d19146c221d176f221e1874231f1974241f1972241f197225211a64221e197625221c6a231f1a67231f196024201a7026211b5f211e187b27231d7827231c7c28241d8d2a251e7e27231c7926221bbf0f0d0b56110f0c5a12100d250c0b09370f0c0b320e0c0a350e0c0a43110e0c86231e1868221e197925221b7826221c7b26221c7727231c8629251e8c2a251e7727231c902c2720922e2821802a261f872b27207729241e792a251f7b2a262071201c19791c1a177a1e1b187b211e1b7b23201d8025232081262422952c29259a302d2897312d2995322e2a87332e2b85312e2b5a282725452a27254d2c2a26512e2b28301f1e1b442a2823583634305732322e48302e2c33292825462d2b293a2c2b293f302e2c432d2c296d312f2e934c4b49b9696664bc797673b07472709e71706ead797775997372719f767472806c6b6b7b65666681646766705a5d5e84817c6f8379756784868173919690808985867897918e8093928f82888a887d8089887c8d95958689969487889393848f99998a909a988d888d8c8084908e80e5a9a092541e1b19531b1916521b1816561d1a162012100d6414120f632f2c28c96f6b627987867a87a2a3977a9d9e9098b2b1a68aa0a39896b0b1a4a0b0b1a2a0bbbaaa90aba99ba4b9b6a794a39f92865e584e713b362d73322e25632d29216e2f2a237c322d2578322b2477312b23662e28214a1b181256291105755a2a14342c1206593a1b0b6442210e6742220f653f1f0e462e1307512f14084f301407513014075834170a4c3618095b3c1c0c57401c0c9f61331b9d64351ba16a391d7975361c7193432561a84c2967342c225e332b225f332b225e322b225d322b2259332c2357362e2457332c2264362f255f352e245e342e246036302653312a2159322b23532f2921562f281f76251e18802a231c5a332c24502d2820482c261f4e2c261f512e2821542d27204d2a251e552c271f5c2d271f592d261f5a2d271f592b241d5529231c552a241c4e28221a4c27211a48241f184e252019522520194f251e1852261f1845261f1872191410a0100d0a5117130e56181510601a16105117130f5d191510631a161159191610671b18125c1916105c1a16115c1a1611531916104e17140f5d1a16115a191611641c1913691c18136c1d19146d1c19135d1b17126c1c18124f17130ebe1d1712a21b1611621b1712611a16115d1915116b1b1712621a1611691b1712641a1611771d18136e1b17127d1e1913701c18127b1d1913721c1712771d18127c1d1913671a16118d200f07731e0d0659210f06403417093a3217092d30140753220f0655210e044a1f0d0455220e0468210e04621f0c04461d0b04912b13098e2d150b58291107502a1107541e0b046f2610074f2810067a14110d981c18135e1e1a145a1d1a1472221e1869211d17772420197d26211b7625211a7926231c64211e187c27231d6f24211b64231f195f211e186f25201b5d211d187427231c7a26221c7d28241e902b271f8028241da6110f0cae0f0d0b4a0f0d0a5813100d200d0b09370f0d0b320e0c0a290e0c0a5514120f9025201a7624211a8429241d902b271f8628241d7f28241d8d2a261f8c2a251e7827231c922e28218b2c2721882c27218c2d2821912f29217a2a261e7c1d1a17701f1c197b1d1a178124211e7b26231f8f2a27238d2825228d2a2724942d2926912f2c287e302d2a36221f1c8b36312d8036332fb046433ea9413d3aa645413d92413d3975423e3a8637352e9c494642a145433f9447443f7236332f873f3c3b844745438c4e4c498e53504d8d52504d6f4a48453c3532305b3836358f4f4d4ba1726f6db07b7976b884817daf858281967a7977a67f7c7c9c7e7d7c928e8c8c716f6e73745c595a857d786b8f928f8180817f74959490838b908b808b8c897f848e8c7f8d9593868d9b998c90918f8382918e82879a968c8a9492868b969588d2a1968c571e1b18431815133d171411401815122414120f5c1513106a2e2c29c569655eab676459829c9c937b9a988d95afafa28fa4a5989bb2b3a59badaea0a1bab8a98da9a899a4bcbaaa94aaa79a96b0ae9f8056514573312d255529251e71302a237e322d2576312b24722f2a22562c261ed2362e274b2910055f512410392e14065b3c1d0c6d472410694925117344231047331507533115075a331608563316095b371a0a4d3517096e411f0f87572d16845b2f177a5d301785b05d2b8dc85d3571d66638728f53346c372f2465362f2567352d2361352e245f352d2456332c2359332b2357322c2260342e245a342e245e332d236237302756312b225d352e2454302a215730292079251e187928221b5a322c224b2c261f502d271f4e2c261f522e2821532c2720502b261e572d271f592c261e5a2d261f592d271f582b241d5329221b532a241c5128221a4b2620193d211c165126201a542620194e251f1851251f1842251e17d6281f19950f0d0a4f16130e5017140f611a16105318140f52181510611a1611591916106f1b18135f1a16115c1916115e1b16125319161151181510651b17125b1a1611691c18136a1c1813641c19136a1c181356191611661c18125117140fc11e1813a71b161156191510681a161261191611701b1712621a16116e1b1712661b1712791d19136b1b17127b1d18136f1b17127a1d1913721c18127a1e1913811e1a14721c1812671f0d06852310087125100751371a0b3d3317094335180a7a26120849200d044a1f0c0451210d045a200d0462200d04431d0c046f291208892d140a552911084d2b110744200b046a260f0653270f057813100d981b16125b1e1a14551d191473231e186c211d176b231f187b26211b7525211a8227231c69231f1a7a27231d6e25211b60221e1966221f197526221c5c211e187b27231d7926221c7426221c8d2b261f7726221ba5110f0cc7100e0c470f0d0b56120f0d240d0b09350e0d0b350e0c0a300e0c0a5213110e8825201a7d27231c8128241d8b2b261e8829241e7f27231c8d29251e8f2a251e7827231c8f2b2720912d28217f2b261f852d28218529251e751c191779211e1a711b18143114120f892926219a2a26229c2d2a25b0332e2a8a2925225826232069292620b63b3732a23a3733ae3d3936bd443e3bbf4a4541b9494440b7494541a046423e77423e398b3f3c38994a4642ad4b47448f4844407a3c3936a3504c498e4f4b4995524f4d9b5654529d5c59559f5d5b59975f5d5c94625f5c684f4d4b4138373479373735b37c7b77c18f8b88a784807fae868483967f7d7c4645433e325e5a5478737678716a6b709484807485858275958f8d7e929492848e8f8e81889290839aa19e91919f9d909298968985928f837a908e838088887b81908f81d6a0998c511d1a17541d1916561d1a165d1d1b171f12100e521412107134302dd86e6a63b86e665f859d9c927b9b998e98b0b0a38fa7a89d9ab9bbad97afb0a19eb7b5a78aa7a4979cb6b2a593aca99c96b6b3a4825953477b342f27682e2a236b2f2a2374302b24732f2a23712e2922562a251dd12a251f42271005504a1f0d332e1306603c1c0c69462110784d27135543200e4736160850321508503417084a3317084c35180a43351508844320109c5a3018a861331c7d5e32175ce0682d78fe7b417bff9350548446236a372f256c362f256a372f2664362e255f352e2553322b235c342d245c342d235f362f255d342e245e332d235a352e2554312b2255332b2250302a21593029217c261f197c28221b4a2d271f512d2720552e2820502c261f512e2720552d271f512c271f582e2820572d271f592c251e562c251f552b251e5329231c552b251d5429231b5128221b4d2620194c2621194e2520194b241f184e251f183f241d17d4251f19b6120f0c4616120d4a16130f5c1915105117140f5218151062191611531815106b1c1813601a1711581a1611601b17125d1a171254191611631b17125c1a1712701c1813641b1712601b1712631d1813591b1712691c18135518140fb41d1712ac1b1712631a1611711c1813671b17127e1e19146d1b17126e1b17126a1c18127b1e1a146f1c17127c1d1913711c18127d1d1813671b17127a1d19147b1d1913751d18135b1d0c0554200d056d251008753e1e0e6c3c1d0e6c3c1d0d6d26110749210e0554200d04411f0c044d1f0c043e1c0b043f1d0c04812b1308922e150a892f160b622e1308431f0c0466250f064e270f0660100e0ba11b1713521c18134e1b17136f221d176a211d176a221e187b26211a6d2420197d27231c6b24201a7627221c6f25211b6f25211b6924201a7226211b5d211e187f27231d7124201b6f25211b822a251e7b28231caa13100ecd100d0b440e0c0a4f12100d1e0c0b093e100e0c3a0f0d0b270e0c0a4d14110e7d221d197626211b8329241e892a251e8d29251e7926221b7e27231c922c261f7226221b912d2921932e29227e2a261f7b24201c6d1c191783201e1b8223211e541d1b197625221e9e2e2a25af2f2b25ad312c285826231f84302c28a83a3630cb403a35b13f3a35b4403c37ae403b37a83d3834933e3a35b746423db847433fa747433fb458524c8c423e39aa504b48a94f4a478f4844416f3b3834b24d4845964f4b499b534f4d9d5552509b5956559f62605d9f625f5e9f65626095656260a66966648c5f5d5a4f3b3a3860434241a4817e7dc394908fbd959291918585835c57595991868788827b7b7f787e818686807c708e8e8a7c89908d8091908e82919895889ba19f919ba3a093979c9a8d879896898997958a798584797687857ac8978f88511c1916341613113a171411321512101a100e0d551514127431302ed269645f915e585598aeab9f8aa4a4969ab3b2a696aeafa19cb9bbac9bb2b1a2a0b9b8ab8aa6a5989fb8b5aa84a4a29895b3b1a5848f887c895e564976312b22702f2a2277302b247e322c24742e28215429231cd829221d3828100551461d0c3d2d1306713f1e0e804b2511885129155a431e0c49361708533316084e341709423216084430150945351709613f1c0d8a552d17a963361c9d62361b4dea622a4cff77396cff9553548b492462362e2567362f2667372f265f372f2660372f265d352e245d362e255d352e246439312662352e2458322b2259352e244e322b2258352e2553322b235e322b2374251e198029221c56302a2159302a2159302a225a3029215b302a21562e2820552f2921592e2921582d271f5a2d261f592d261e552a241d4c29221b562a241d4e28211b5328221a55272119502721194f251f195126201a4f241f183f231e17d4241e19c716120e4a16120d4a17140f551915105218140f551814106319161155191510691b17125f1a17115d1a1711621b17125e1b1712591a16116c1d1913641c1812721e1914641c1812621b17125a1b171257191611671c18125518140fbf1d1813a41b1612661b1712761d1913661a17127d1e1a146a1b1711731c1812661b17117d1d1913731c1812801e1913741b1712781c1813721c1712721d18137a1d1813701c1813671e0d055e200d0572251007773f1f0f6f3d1e0f984423116f2913083e200d0453210e0552220e04431e0c04301c0b03411d0b03752d1409702d14099232170c622f14094b1f0c047127100743240e058412100da31b16125a1d19144f1c191366211c176b211c176e231e187d26211a7025201a7b26211b6a221f1a7b27231d7224211b7324211b6f25211b7c27231d6523201a8129241e7125221b7125211b7528231d7626221ca414110ecb100e0c530f0d0b5a12100e2c0f0d0b9a1b18148c1b171343120f0c4f14110f7b211d197224201b8829241e8929251e7f28231d7826221c8729251e902b261f7326231c952d29218f2e29217c2a271f4c16141178221f1c7d24211f832824228e2a26239d2d2924c0342e2859221f1d7e2a2521b33a352fbb3a3631af3b3631cb423c37bd403c36b3413c37b2403c38752b2927a745403bae44403cb148433fb4494540a84d4742843f3a38a8504b48a04d48469d4b47446a3e3b38914c48459a4f4b4992514e4c9252504f60353535a775706d9b5d5a5a8b5a5957a8676563ad6f6c69ad76726f966967659268656338322f2e884d4d4bd8a6a3a2d5aaa8a7c7aaa9a7b09e9e9e948b8c8e788c8b8d6c33312c938e897b8d938f83868c897d979c9a8c98a09e909da6a4978896928884989689969d9a8f75868277808f8c81dda49a904b1b18154e1a1714511c1915501c19152512100e5e1716136d34312ee6746d68b7746f6992b1ac9e85a5a2919fb6b7a88fa6a6979eb7b7a7a0b1b3a4a2bbbcae8da7a69a9fb4b4a892aaaa9f8baeaea292b8b2a58a7b706177312a2174302b247e322c258d352f27742f2920622e271ed728221d362910044f441d0b322c12056a3f1e0d7a45210f7a431f0e633c1a0b44321307443216083f32150849351809463417093a3717086f46210f81532a15955e3219a464371a60ff80405dff894278ffa15954914c236738302666362e25693831276138302663372f2560372f26653a3227623930276b3c3329633830265a342d235b352e2446302a2054322c2351322c225d332c237a261f197b29231c5a312b225b312b2256302a2158312a2158312a21592f2921522d271f5b2e281f5b2d271f5c2e271f5a2c251f542b241d532a231c4f2a241d4f27211a4f28221a5427221a5027211a532620195a28221b4f251f1849282119d5241e18cd120f0c5516120e5518140f601916115218140f5b1915106119161156191510641b17125b1a16115c1a1611621a1711621b171258191611691c18135e1b1712741d19146a1c1813651c1813651c18134e1815105e1b17124816120eab1b1611a11a1511691c1812761d1913631a17127a1e19136e1b1712781c18125f1a1611701b17126b1b1711741d1812701c1812811d1914741c18137b1d1813791d1913721d18134f1b0a04501e0c0472251108733e1e0e7a401f0f7d432210692c150841220f042e1e0c033e200d0446210e043c200d0451200d04702c1208712c14096d3015096631150969200c046626100746230d059214100dbd1c1813671f1b155d1e1a1574231e186b211d1776241f197a25211a7024201a7625211b64211e197d27231d7224201a7525211b6f25211b7727231d5e211e198028241e7726231d7526221c872a251f6724201a9c14110ed5110e0c57100e0c6614110f210e0d0b48110f0d360e0c0a2a0e0c095716131087231f1a7024211a8b29251e8a2a251e872a251e7a26221c8b2a251e952d28207727231c932e29228e2e2921741b19165e1b19166c1e1b187f26232094292623b0302b288a2d2a2652221f1cbd3a342fbf39332eb93a352fbf3b3631ac3b3631af3e3934c8433e38b53f3b36b2413b375f23201e7235322eb245423dbe4b4641ab47433fa74e4844813f3c39974f4a469e4a43408f48434052282624914c4846934d4a488d4f4c498753504d8a4947478b5b57569e5a58568c585656b2666362a2696665a7716d6ca8706e6ca2706c6ba274706f8561615f4b393937c79e9c9abca2a09fccacaba9c4aeacac5a74737259807f80737573708d847d71848b867a8f9895878c9a988a94a09d908b9490867a8e8d81899491876d807d727f8f8c81e1a39a90491b18153c1714113f1714113615130f2913110e701917157e373430eb78726dc0756e6a90aea89a8ba5a494a5b8b9a8869fa0908fa9a99c98acac9e93b3b3a58ba8a89ca7bdbdb094acada196b1b1a491b8b3a68e877c6d7740382e6d2f29237c322b2580332c24763029215d2c261cce26201c422a100560471f0c322d1206693e1e0d74401e0d74422110563415084b3114075234170934311307413718094a3c1b0b3d3c180862481f0e5a4e2511915f34199160341a50ff783c50ff82447bffa964559458276738302662372f2662372f2560382f266638302664383027643931275e383026633931276839312760372f255e362f254f312b214b302a214b302a20502f281f6e231d187827201b5c322c245a312b2259312b2256312a215b322b225c2f2a214e2d271f512b251e552c261e552d271f592e281f582c261e552a241c562a231c4e27211a5128221a5327211a4d262119512620195327211a5026201946262017ce231d17c8110f0b5216120d5a19150f561915105317130f5d191510631a16115218140f641b17115e1a1611541915115c1a1611651b17125c1a17126f1d1913671c1812761e1a146a1d1913641d1913751e1a1450191611631b17124515120eba1d18139a191511621b1712761d1913681b17127e1d18136a1b1712731c1813661a1611701b1712721d1813771d18126e1c1812821e1a14741d1913791d1913771d1913751c1812471b0b044c1f0c056925100871401f0e663e1e0d553a1b0c732f15084c230f05351f0c043d210d044e220f0549220f0447220e045e2911075d31160a4f2d12076a35170a67210d046d29110747230e058f14100dc01c171365201b1565201c166c211d186c211d17782420197b25211a6d231f197425211a67211e197325221b6c23201a7726211c7326221b7d28241d6824201a8529251e7727231d7327231d9b2d28216924211ba515120ee3110f0c5b100e0c5d13110e290f0d0b5215110e5315110f4714110e4c14110e7d221d197424211b8128231d8e2a251f882a251e7726211c8b2a251e972d28217427231c942e2922771b1816821f1d197a2624215f19161374262320c337322d5723211d792b2723b036312cc139342ecc3d3731af38332dc13d3732c33e3a34b4403a36cd433e38c1443f3bbe443f3b5a282523a248433fa0433e3bac4a4542b44c4743aa4f49447c474240a7514c489b45413e753f3b375221201e9d4c4846934b4846914e4c496542413d945a5754814e4d4b9a595756925956569c5e5b5a985f5c5c9d63605f8b615e5ca4757070b07b7878aa7877749a767573443c3b37a4797775e9bab6b46372716fa5a9a6a2929b9998839290957c7b7b76978680728f96938483929084829593868d959386859a958b9ca09d92838b897f86949085cf9a958b461a18154d1c1815541c1916521c19162714110f731b181579363432f87d7772c06c666290a6a195849c9c909db4b4a490a2a3958ea9a89b9eb4b1a693b3b3a488a8a698a4bdbdaf90aaab9f90adada190b9b6aa97b7b0a1848a82746e312c257f342e267c322c236e2f28204b262119cf26221d4a2f130660461e0c332e1306663e1d0c68391a0b653f2010573214073c2f120643311407443718093d3e1b0a44411c0a3c421d0a80532813645228126a572d1576592d164cff82404eff854770ffa8635b955c2a62372f2562372f256739312759362e2560393026653a3127673c3328633a32276b3d3429683a32275e383026593830275a332d244d322b234e312a224b2d261e74251e197026201b57332c245b322b235b322c23572e282057302a2159302a21512d281f522d271f5b302821542d271f58302920572c261e522a231d5229231c4d28221b5329231b502721194d2620195328211a502821194c2520183a241d17c7221c16c213100d5417130e621815105e1a15115717130f5e181510611915105418140f691b17125b1a16115a19161159191511661b1812591916116b1d1813691d19136d1d1813681d1813601d1913751e1a1451191611651c18134e17130fc41e18139c1a1611591a1611721c18136d1c18137f1e1913631a16116d1b1712661a1611771c1813701b17127f1d19136c1b1712811e1a14711c1913801d19137b1d1913741c181260210f065b220e066a2610089345241191432310663b1d0d6e30150847200d04421f0c0445200d0446210e044f230f0557210e05512810074b31160956291207793b1a0b65200c046a2911074f230d058715120ebb1e1a15661e19146c201c1674221d1872211d1878231f197725201a6f2420197926221c65221f1a7926221c68231f197826221c6f25211b7827231d6924211b7c28241e7426221c6e27231d9b2c27216c25201b9d161310e3110f0c62100e0c5513100d210e0c0b3d110e0c3c100e0c270e0c0a4e16130f8a241f1a7b26231c8529251e8c2b261f862a251e7c27231c902c27208f2b27207a27231d621b1916751f1c198323201d8d2724218c2824205a221e1c3a1a1815972e2925a8322d29b437312cc63b3530cb3b363073272320852e2b28be3f3a36cb463f3bc1443e3abd46403dc84b464194423e3ac9544d499a44403ba6474341b24c4844a047423e673734318a42403d873f3d3a703936334a23211f9244403f8944414088464341562b2a29744a4746804b49478a504f4d93575454975c5a5a975e5b5962444141b57d79768f696765aa747271b37e7d79b380807c8d73716e594b494651322f2d94928c8acdbfbab6bbb4b2af958c8d8f788081847073716e96938f809a9c9a8c859391838c939183889693878c9a988c7b87847b85949087d4a1978e4c1b1916371613113d171412341413102813110f5e1715127f3a3633f47c756fbf6a656093aba5977997958696adae9f8c9fa09397b0b0a399acad9e9db6b6a884a4a397a3bcbdb08eacada098b1b2a692b8b8a898b8b4a6818e897b72332d2680332d2586342d2577312a215f2d261dbf28221e4f371707774a220e412f1406653e1c0d693d1d0d673f200f46361609363416083c3113073837170843431f0b4b451f0c44461f0b694f2511805a2f1778582e17805b2e1866ff9f5764ff9b5676ffa6625795592761373025663a3127633a31275f3830265c372e26683b3329633b3228603931276d3f362b613931275d372f25563831275a332d244e322b2450332c2355312a227b261f197126211b4c312a2257312a225e322c2359302a21502f281f552f2920512d281f582f2921582d27205a2e2820562d271f592d261f512a241d582a241d4d27221a5329231b4e2621194f27211a552721195728221a5028211946272019b727201ac2120f0b5217130e5e181510611a16115818140f5b191510661a15115518150f681a1712621b1712581915115c1a1611621b1712551a1611621c1812651c18126d1e1914701d1913551a1712691c18134b1815105b1a161152171410cb1f1813a11a1611601b17116f1c18126d1b18127d1e19136c1b1712701c1813651a16117a1d1913751d1913811e1913721c1812821f1b146f1c18137c1d1913811d1a13791c19135d230f075e2510075e2711079846251195432310843e1f0f6f2f14084a1e0c04481f0c0458200c044a200d0456240f057a180a04521f0d054e30170a522911078039190b4b1f0c04672911074d260f0584181410b61f1a15641e1a14681f1b1677231e1973221e1875231f197d26211a7124201a7925211b6d23201a7826221c6a23201a7225211b6b24211b6e26221c6523201a7a28241e7d27231d6124201b8429241e6524201aa9191612d4120f0d5a100e0c5f14120f2e100e0c5f1713105a16130f5c1713104d1513109927221c8428241e8c2a251f8c2a251e8228231d7e28231d872a261f88231f19561614124c1916137d24201d89282522a12b28247c2925215522201c702926226222201db0342f2ac138332dd33c3731c33b3630b83c3631aa38332f74312d2abc423c38b4423d39bf47413ec1494340b64a4440732f2d2a9144403b9d403d3a933e3b388e3b38365634322e853f3c397a3c3a387a3a393662242220823c3a38803b3938733e3b3a6029272861413f3d8b41403e7f474643874d4c4b9557555486565453633a38386752504f9b646261a0696766a3706f6ca17b7a779d7d7b784d5353515046423d99706d69dabeb6b2ceb4b1ada19091907982817e4556544d73787c7ca19895878b99978893999587909d9b8e8f9c9a8e818c8a7f81939186dca69e905e1f1c19571d19175b1d1a179428221e2712100e611b18156d393732f6847e77b06d67638fa7a49786a2a09297b1afa18ca2a1949ab0afa39fb7b5a8a0b7b5a888a3a296a0bebdaf89abaa9e96b0b0a297bbbaaa99b8b4a78a938d7f75352f277d322c247d312a22753029205d2a231bd22d27214b3c19096d4a210e3c2e13066b3f1e0e663d1e0e6d4322115c421f0e60411e0e4b361608453a1a094d431f0b46451e0c45451f0b604c231181592e17845e331b885f32196affa35b68ffa45967ffa05757964e26643a3127653930266b3c34295f3831275c383027633b3329603c33295a393127693c342a60393228633830264b342d2451312b2249322b22483029205b342c237e261f197728221c52312b2255312a225d322c2359302a215a312b2256302a21512d281f5b302a215c3029225d2f2821592d271f582d261f502a241e582b241d5128231b5529241b522621195129231b5227211a502620195026201944251e17c12b241eb2110e0b4e16120d5316120e601915105417140f5518140f611915105518140f6a1b17125e1a1611551916115c1916115c1a161153191510581a16115a1a1611661d1813771e1914591c1813721d1913521915106e1d19134e17130fbf1d1712a41b1611621b17116b1c1812671b1712831e1a146f1c1813741c1813621a1611791d1913751d1913831e1914731d1913871f1a156f1c1712831e1913801e1a14741c1813642511085e26100759271107a7442512a24323118a3f21107633170a52200d054c1f0d0466220e055c1f0d0446250f05741207036e33180a6530160a692c14086326110758210d04692a1207592b11068d161310b01c18145f1d1914581c191476221e1870211d186e221e187824201a71231f197b25211b6b24201b7225211b69231f196a231f196924201a6223201a5b211e197326231d8327241d6725221c952a261f7024211bb41b1713c1110f0c620f0d0b5f13110e1d0d0b0a3b110f0c34100e0b2c0f0e0b4c13110ea229241e8529241e8d2b261f892a251e7c27231c7926221c7f29241d7a1d1b1872201d19621817146b24211d89282421902925205e211f1c982e2925a2302c27722924208d2b2623bd39332ed33d3731bf3c3630b73d383261272422cc4a433eb6443e39cf4a433ebb46403db845403dc046413e5c23212064312d2c84343130853432308d35333142252422683432307232302f7033312e6b2422207f3a38367e3836356c363433683431306336343382413e3d8042403f7f454542894e4c4c5d3e3d3d885c5a597e5554539865636296676564a3706f6d99747372484f4e4d966a6b66907b7877684e4d49a98b8683a1908a82a9928c855e60605d907a7a7b7c8c8f906f8d9196898882748699918598a09c8d909d988a7d8a887b86949285e2a69e96561d1a1735151411381614112e1513102a13110f6b1b1815773a3533e7807a74a665605a95a9aa9d8aa2a1949ab1b0a288a09e9296afada19fb6b3a79fb7b4a889a6a499a4bebcaf88a7a59998b3afa096bfb9aa93b3aea2858e887a73322d247a312b2281322b227430281f4b261f17da322b25573c1909834d241051331607623e1d0d6842200e70472311604623106048210f48401d0c4f3f1d0a4e46200c3a451f0b37411c0a464a210e68562a1465582c15675a2c166effab5f67ff9e5663ff9e5559954e27673a312767393127643c33295c3931275c3830265d3a3227603b33284f362f255d3a32285a373026683931274e372f2558332c2350322c2257352e2456332b2276241f197728231c56322d2354312b225a322c235c312b225e332d2458302a22502e2820592f29205c312a225c2f2820592f29215a2d271f4e29231c5b2b241d502a231c5129231b502621194f27221a4f272119532721194d2620183c231d16ce2a221d38110e0a5015110c4f15120d6518140f5617130f5a18140f6119151057191510661b1712611b17125b1a1611611a17115f1b171156191611641b17125b1a1611691d1913661c18135f1d1913731d19135c1b17126e1d19134e17140fbd1e1813a31a1511661b1812761d1913671b17127f1d1913701d19136e1c1812641b17127a1d1914721d19137f1e1a14711c1813831e1a146f1c1812821e19137d1d1913731b1812642711085a26100763281107623a1d0da13f2011903e200f62321509441e0c04421e0b0353200e0450200e04701e0c058511070363311709612e1509642c130854270f065e220e046b2b13094b2a10068b1614105015120e601d1914561b18137a221d1871211d1875221f1978231f197424201a7625211b6d24201a7b27221c7024201a6c25201a6b24201a7225211b5a211e187727241d7126221c6e27221d972b27207b26221c8c161410b0120f0c590f0d0b5e14110f270f0d0b591613104b14110e541714105f1613108f26201b7a27231c8429241d912c27208a29251e7b27231c771c1a17711f1c1a72211f1c882523206c1c1a1861201d194c1f1c19972c2924be332e29d83c36319a322d289736312b9e332e2ab939342fcd3f3a33d4433c36d0443e396a25232180322e2bbc453f3bbd443f3b953834319c3a36346a2f2d2978353230742d2b2a742d2c2a88302e2b3a22221f642e2c2a6832312e732d2b276a2625247a36343177353331582c2b2965383634783433327d3b3837783a393782413e3d7642403f7d434140604a47457f52505095605d5d90625f5f98666664635755568669676699757374ad8a8788b4938f905f44423f876c67625a544f4a8f70706ebfb4b5b3a6aaacad84979b9d73807f7d77837d718998938687999487818b897d82918f83c4988e83561c1816431916144d1b1815401816142f151311771c1a166335322fd079736d946f6b6090a5a59987a4a29691aba99b8ca1a09495b2b0a59ab1afa499b3b0a584a4a1979eb9b7aa85a5a49495b2b0a08eb5b0a291aeab9e858b84776c302a217b3029217e322a21732f281f57282119b02a2620463a190890522711523617086543200e6447220e724b26115745200f715127126e4d251149421c0a4f47200b4f49210d4857260d6073381a3d52250f3e4f27104f5529126dffa85c65ff9c536effac5a57904925683d342a623a3328693e352b603a3228633b3329613c3428613c3429593730265d3a32285b3831285a383026573a312857352e2458362f2559342e2454332a2375261f197628221b59332d245a322d2258322b225a312b225d342d2453302921512f292159312a225c312a22592f2820572f2920572d271f4d29231c562b251d4e28221b5027221b4e2521194c26201950272019502721194c2621183c241e169d221c173f130f0b5015110c4f16120d5116120e4e16120e5618140f6919151056181510681a1712601a17115d191611611b1712651b17125a191611701c18125e1a16116a1c1812671d1913671d19146a1d1914521915116c1c18134f18140fbd1e1813b41c1813611b17127a1e1a136c1d1913801e1a146b1b1812721d19136a1b17127f1f1a14701c18137e1e1914751c1813851e1a14741d19137f1e19136e1c1711661a1611652812096828110767281207953d20106635190b82391c0d613115094a1e0c043e1e0c04471f0d04311f0e0464240f05801c0c05682f14086c2f1509622d13076429110753220e045a29110749260e05aa1a161249191510601d1913541c191467201c1767201c1770221e198124211a7124201a7825211b6a23201a7c26221c7025211b7626221c7025211b8027231d5e211e187826231c7326231c7527231d882a261f6e24201b7625221bb715120f58100e0b6415110e210e0c0a3e100e0c330e0c0a2c0e0c0968181411591f1a1553201d176926211b842c261e7b28231c731c191679211e1a7c201e1a7f24211e92272420ba322e28391312106a221f199d2a2620b5342f2bc73a332fc83e3832d6423c359436312dcc3d3632d8433d37d9453e38c2413a359034302c8b342f2c8736312e9d35322e752f2d2a8834302e752f2c2a66262422772c2a286b2b2927742b29274d2a29266135312f4e363330482b28245e2b292769302e2d6e333130602b2a285e28272488312f2f64302e2e7135323276302d2c5e2a282764403e3b804645447c4c4b4a945a5756925e5c5b60464747795e5c5d946f6d6faa837f82c79d9a9bb28d8a8979646160342e2c288c413e3afbcdc8c4d8bebfbdcabcbbba909295947b9698997e635f537c948e847f979182848f8c7f738d887ccaa2948c7a24201b2b151311331512102d13110f2e1512107c1e1b186d3b3734cc7f777294a3a39692acada0809c9b8f98b0afa191a3a1959bb6b3a596acaa9e98b3b0a589a3a1969db9b7aa8ba8a89a8fafae9d7eaaa69580a5a094798881746b312a216f302a2175302920752f281f6c2e261d571f1a1437341507544a200c5037180956401e0c5644200d674a24115147200d79542814734e261144451e0a5249220c4f49210d486c31106a984c253a5928103f4f2510465329116affa65977ffb25f73ffb35d59974f27683e342a643b33286a3e362b623b3328623e352a693f362b663f362a643a3328613a33285c3831275b3931275e3b332953352e254f342d2454342d2455342b2473271f1a832c251e55322c235c332d235e362f255b322c2258332c2357322c23553029215d322b2259302921583029215a2e2820582e271f502b251d552b251d452721194827211a472520194c262019482620184a2620184e27211949282118871a151039130f0b5316110d5616120e5a18130f5517130e5618140f681a161054181410671a17125f19161158191510611b1712611c18125c191611711d19135e1a1611711d19136c1d19136b1e1a146e1e1a14591b1712681c181351181410c81f1913af1d1813691c1813801f1b146d1c1812821e1a14661b17126c1b17126c1c1812781d1914721d18137e1d1913741c1813861f1b15741d1913791e18126e1b17116f1b1711652913096327110862251007a33d201094381c0f7a35190d5b3014094c1e0c04481c0b03381d0c032f1e0c03582611067d2812085830150961311508592d13084927100646200c04592a110740210c047e24170f46181410621e1a155e1d19146f211d1770211d176f221e187f25221b6f231f197725211b69231f197726221c6f25201b7326221c7225211b8028241e5e211e198128241e7927231d7b28241e8b2b261f7526221b72231f19bf17131063110f0c6214110e34100e0b5515110e4c14110d4d14110e6a181511ea3028227c1f1a15b1261f1ab725201abf25201c731d1a17771c1915771f1d19922724209a2b27235b211f1c8c2c282467211d1a84282420be35302bc739332eb539342ed2413a34b93b352f4c211e1bdc453e38dc49423bc2403a35a83c3733512421206e2c28258b2d2a28832b2826742a28266d292825542422205f2c2927913a37337b2523226424222059292726692f2d2b4e1f1d1c7934312f773634327d44403d633e3b394e2e2d2c6c2d2c2b712e2d2c77302e2e592c2b296b36363369363533743b38387b403f3f874f4e4d674f4d4b5c4e4c4b806666648f6e6c6fa78582839a7c78787462605d42413e3a764b4a49554c4845c07a7570dfccc8c5d0bcbcb82b605f5c3b625e5b6f8f9296c5968b7fb089817bb1867e73aa7d776c89867b716d201c1939161412411815133b1915122a13110f681b1816793e3a35bf7a746d9279766a92a6a79b7a98978c90a7a49892a4a29592afad9f99afada098b0ada189a3a095a0bbb8ac8aaaa7998cb0aa9a7ca8a39388aba6987b8b83756c322c2378332c227b322b217430281f6f2f271e39271c1464271207554c220e46331507463c1a0b5744200d40401c0b5a49220f70502612825025134b451d0a5149210c45431d0b3d71311077c3653143642f13404e2410455027116effa95b69ffa7566fffa85b5897572b643d3429613b3328663e352a5f3b3229623e342a6440372b6a40362b653c342a623b342a643b3329603a3228643e362a54362f255638302650342d2358352d247a28201a802c261e5f37302662352f2561352f245a312b2256322c235330292156302a2158312a225a312a21592f28205e312921592f2820512c251d512c241c4627211a4d28221b4926211a4b27211a4e2822194e2822194e2821194c282119721a1510a50f0c0a4a14110c5315120d5816130e5616130e5b17140e691b16105a1815106c1a1611621a16115b1a16115e1a1711611b17125b1a1611651c1812601b17116e1d1913651d1913731e1a146c1d19134f1915106b1e191355191510c51f1914b51d1813721e1a1484201b166f1d19137c1e19146c1c1812681c1812671b17126e1d19136f1c1812751c1813741d19147d1e1a14741d1913701d1812701c1711731c18126f2b14095d2611076525100792381c0e81371b0d5631170a623116094d1f0d04571f0d04401e0c04301d0c033d261006672d14086232170968331709482d13075b271107531f0c044011070367180d07621d0f08a11c17135c1c19135d1e1a156d211d1771211d1776221f198327231d7825211b7b25211b6d23201a7a27231c6f25211b7227221c7026211b7226221c5e211e187f28241e6f27221c8129251e8d2a251f6a23201ab2191511b91814114c100e0b5813110e230e0c09370f0d0a380f0d0b2c0f0d0a601713104d1c17137226221b7327221c7a28241d7b1b1916591a18152d14120e8d26231f9b2825218a2c2825882b2723ad312d28b3332e2a80282521862c2823b135302bd03e3932c63e3832ca413a349436312b4b211d1bcb413c35cf453f39a236322e852f2b285223201d6222201d5f242221752e2a288d312d2b6f22211f7423201f6f2422216522201f6d211f1f5a1d1c1b6c1c1b1a50181716651e1d1c6820201e77222120722523226d2725247a3937365b393837682d2c2c6a2928275f2c2c2b6b323130753533327a3a39377343413f58444241845a595786636261906562629368666692646361573d3d3a8c5a5857916d6b6b9f8986854f3e3b37fbd0cac7dacfcec96f7f7d782c5958537f9ea0a67c7a787384918b7c7e8c87784b726c61bb90857b581c1a162812100f301412102e14110f2712100e571b181573383531c380766cab857e748ca3a3947e9b998d8aa6a3968699998b83a4a49593a7a7988da8a69786a4a29491adac9e85a7a5957fa7a3927ca8a3928bacaa997f8c857467312b2275312c2271322a21763129205f2d241cb92c221a6e2f1f145123140b39301307563f1e0d53421d0c4d421d0d3f451e0c53461e0d6749210f49421b0a43431c0a383f1a0943692d10659d4d24425f2d134c562a144852281272fcae5e68ffa5536bffac585a995f316c3f372b673c3429693f372b5f3d352a603e352a623f372b6841382d5b3c3328663f362a613d3429593b3228653c352a55362e2451362f2554362e255e362e267828211c832c261e62383127643730276238302659322c2257332d2351302a22502e292051302a2159302a21532e271f5b312a22522d271f4e2b251c4b2b251c4628221a4f29241b4c272119472720184b272119492721194e27211947282018e32c251eae120e0b5015110c5215120d5e17130e5114110d4c15110d5b18140e5216130f661a1611591815105b191510521915105d1a1611551915105a1b16114c1a1510601c17125f1c1712711e19136b1c1913581a1611721e191458191511d01f1a15b61e19136d1d19137f1f1b156d1c191387201b156a1c1812711c1812671b1712761d1914701c1913791d1913661b1712711d19136c1c18127b1d1913771c18126f1b181165281309562510075c230f068f381d0d5b30160b6331170b502a1107391b0a03501e0c044b1e0c04411c0c034d271107322910067434190b7633180a612d140845250f0550210e05422310076e24130a63201006991a1712621c19135b1d1a1474211e186b1f1c17621f1b1671221e1870231f197524201b63221e197726221c5e211e196d23201a6923201a6624201a4c201d176c25211c6925211b7e27241d8829241e7326221baf1b1713ab171411520f0d0b5913110e2a0f0e0b4613110e4312100d3a110f0c5215120f8e27211b7b28231c7f29241d7b26211b7f1e1c198b221f1c8223201c9b292522a92b272361221f1bc4322e29d036312cc837322dc536312da6342f2a822d2925a236312cd7423c35c93f3a34c3403a34b23e3933642724209b322f2c93302d2a7e2c2927732f2a278937322e7023221f7d211f1d8724212076211f1e661e1d1c701c1b1a77141413be060606e9010101f4010101f8010101dc0606056c161514761a1a18711d1d1c7b1d1c1b7f22201f6f252322713535334d3a37356d2f2e2d6f302e2d8332302f7c38373645343230784644427e514f4e8f59565675524f4f67504d4c5b39373584575554916f6e6ca0858483a78e8e8db68b87845533302ef0e1dcd8e2d0cdc9cbc7c5c3a0abaaac7e92969c848c84757a8c8778768f897a99847d744b1a17142a13110e351613113416141121110e0d5e1b19155c35312bc87d756ca17d766d93a8a9977d99988a93a8a698869a9a8b8ea7a79792a8a8978faba9997597938685a5a4957da4a29189aca89783a9a49284a5a48e73847e6b69332c226f322b226e32291f7a342a205c2d241baf291e1767281b148137251b302d1206443b1a0b57441f0d5747210f41481f0c704f241159481f0d3d3f180839411b0940451e0b4659260d65783b1c515f2d1450582c144854291266cf8a455cff9d525aff9d4f588d4b25653d3529633c3429623e362a5f3d342a523931275f3c3429613d3529523a31264f3b3226543a3127543a3127653c342a53352e245638302659383026603730277d28211c842f27205e373026603730265e372f265c332d2358332d2357302a22502e292057312b2257302a21542f28204e2e27204b2b251d4a2b251c512c261d472821194b282319442520184c29211848272118462720175028211947282118bc272019b415110d4b14100c5916120d6217130e5415120d5116130d6118140e5718140f58181510561815105217140f5018140f531915114e18140f5a1a16104e18150f531a16115a1b17126b1d1913691c1813581a16116c1d1913521814107c17130e931a1511601b17126a1c1812641b1712831f1a14731d19136f1d1813681b1812701c18136d1d1913771d1913661c17126d1d1813621b1611761d18127c1e1913691d17106a281209722611087d3a1d0e5b2f160a532d150a562f160a44270f063b1b0a03491c0b04671f0d05531d0c045a2a1208603417097b351a0b5b311609522d14085727110756220f05442711075e1e100861200f06a01a1511591b1713631d1a1479221d186f201c1668201d17742320197424201a66231f1960221e196b23201a5e211d185f211d1962221e1965221f194f1e1b165e221f1a6423201b7825221c8729251e7426221bbc1c1713be181411540f0d0a5f14110f230e0c0a2f0e0d0a310f0d0a290d0b095f1613107f221e197e27231c832a251e711a181574201d1a86221f1c8724211e95272321541e1c19b1322d29c835312bdf3a3530de3b3530e23e3832e7423c35dd463f3954252220aa3b3631c5423c37b23b36319e37332e8d312e294d1e1c1a7a2b272558262320882b28257b22201e701f1d1b721b1b1a76191816c8010101ec010101b8010101e4010101e7010101ef010101f5010101d8010101f60101014b0c0c0b3e211f1ef104040376121110751b1a19721f1d1d79201e1d7522201f8354524e6431302e77323130382827255d333130763f3d3c7345444366484543443c3a385f424140875e5c5d846866679f777575a2817e7ea88f8e8eb0929290a9797673c7797472f2dad7d3e5d4d0cdabb1b1b08396999e848c867f7e8d877a79928b7ed5a49a8f5c1e1a17200f0e0c29110f0d27120f0e2211100e6e1e1b1771393731e6847d74b2857e7492a8a89787a2a19291acaa9b8b9f9e9086a3a1928da8a6978aaaa8977599958680a5a193729b958483a9a39288b6af9c83a8a493808e857269352c216a352b207a362c215b2d251b3f251e16e324201c5a341c0f613a221444321508483f1d0b5747200d4e49210f484c230e6c502310634e220f41431a0844421c0a3e431d0b444d220c6f603219575a2d14575b2e134f592c134c823c1b71ffb0607affb46459ed823c6a40372b52393126603f372b573a322752383126543a3228593c3328543931265439312749362f254f372f256039322854362e255839302657362f255b362f2651231b166a29211c54342c2351332b2259352e245a332c235f362f2556332c2452302a2252302a2158312b22532f29204f2f281f472b251d432a221a4f2c251c4c2b241b4b2a231a4e28221a49282119452822194e2821183a231d1531211a14bf251f18bb15110d3f120e0a4d15100c5917130e4d15120d4916120d5a18140f4715120d4916130e4e17130f4916130e4817140f4c18140f4817140f5b1a17114f1a1510591a17115a1b17115b1c1812601c1812551a1711651d19134217120ea41c16126d17120e4718141051191510541a16117c201b146b1d18136c1d1812651c18126e1e1913681b1712721c18126c1c1812781e1913641b17116a1c18127b1e19136b27130a6226110872261108572b1308602f160a492d14086631170a5e271007401b0a03411b0a04501d0b044d1b0a03652e14095735170a422f1508442d1308432b13074e29120751220e05441a0d064c1a0d06601e0d06c01d18134e181510521b171270211c16651f1c165d1f1c166d231f195e211d1755201c175a201d1860221f19561f1c1757211d185a211e186723201a4f1f1c176523201a6723201a6724201b7727221b7225211ab71c1713ca191612540f0d0b5613100e260e0c0b2c0e0c0a33100e0c4d15130f5a15130f8a25201a8028241d782d29247a1f1c1978211e1b78221f1c8e272321892b2723822a2521c3342e2aae322d29c436312ccc38332dd03c3630dc403a34de453e38cd413b35692825218a35302b9736322d90312e29762b28256025221f5e23201d701f1d1b681e1d1b711c1a1975171716990a090866201e1d72262524a0010101e3010101f3010101f4010101fb010101fb010101ff010101e5010101561c1a1a5c1e1d1d5b201f1f42211e1d3f1d1b1aa00c0b0b701b1918671e1c1b6d201e1d772b2927584845425a2c2b296f3433326e3938366f403f3d443432306b403d3c926a66658f66656495706e6e8e727171a07d7c7dab8b8a89b4989794a58d8d8c40373533f2dddbd8dfcecccbdad2d2d197a6a9ab7893959d867d766a80968f81be968c87501b17142713100e2c14110f2d14120f20110f0d621d1b16793b3a34dc817b74a67a746e8cacaa977d9e998c87a7a19384a3a19281a9a69688a29f9183a59f8f7b9f9a8b88a7a497729a9485749e998a82b3ad9b7ca7a38f808f85716a372d226d352b206f372c21512d251b8f2f251ce224201c5e2d1a101d28170c472612074a421f0c5a49230f524f25105c52271094623018735828113b451b0847451d0b5249200c4949200c77562b166f5e30165d5f31155f5f2f15575d2d1363ffa6566effa95c62ffa85a563b322649372f24563c34294d3831264c3831274d393127503a3228573c3529523b32274f3730254f373024533931284d352d23553930264f362f25483229218f33292143221a153e2f281f3e2e271f4b332c2357352d2456342c2352332b224d312b224f322b2254312a214f2e271e513129204f2e271f452b231c482b241c4a2b241c462a231a4b2a231a49292219482821184628201835221c1458211914c3261f19be120f0ca517120e9719130f6e120e0a72130f0b6f130f0b6a120f0b6c130f0b69130f0b66130f0b5d120f0b6514100c6f15110d6915110d6714100d7917130e6f15120e7616130f7817130e7016120f6f16130f5415110d7f191310751a1511941b1511881b16116a15120e85191510901a1511991a1612881814108518140f8218140f7e17130e7c16120e8418140f8418130f8517130f8317130f8e18140f662512096525110855220e065e2e160a5d31180a5130170971341a0c73271008431c0a04551c0b0465200d054c1c0b046a2e15095a37190b3f32160948311608352c13063d2811065a1e10092e190a034d1a0d06461b0c0597181410c6211c16b7231d178d1d18138f1d1914881d1914831c1914851d1915811d19157e1e1915711c1814791e1a1586201b17801f1b167b1e1a1690221d18851f1c178e201d1890221d1889211d1789211d17a61b1713dc1a161269100f0c5512100d1e0d0b0a230c0a09270d0b08270e0c09601714108725201a7725221b7a1b191781201d1a8723201d8d26231fa92f2a264d1f1c19b5312c28bc302c28a42c282481282420d139332ecf3c3730ce3f3933de453f39df48413bc83e3833842d292649221f1c6c282522682926236b25221f5c1b1917521b1918641a181767151413601816169122201f9a21201f8f272524d8010101e6010101f6010101fa010101fe010101ff010101ff01010198151515601d1c1b721f1d1e5b1f1e1e60211f205b2220203e21201f6d1413126e1615146f1c1a19481918175d211f1e745855506531302e6b35343152211f1d813533317a423f3e8b625e5e8c62615f8869696885716f708673707196838281b89d9c9bac939291918a8988ae63615ef8e3e0dde1d7d4d3b3bebebf7d9c9fa77c6d685e7b8e8a80c19b8e87461916133013110f2c12100e23100e0c1f100e0c581c1815853d3c36f48b867c916c6962cbaea799d7b7aea2c0aba199baa79f92b4a79f92ae9f988aa99d968ab4a99f92b5a99c91b2a49d91afa49d90bdafa695b2aba192b68c80709731271e882c241b832e251cc53e312643221b14d1241f1b47331a0d0f2c14084e2f190c563c1d0c554c230f4a4f250e5353270f555527117d5a2a1340451b0946441d0b44461f0b46471f0c69522914645d2e1467633217686533177165341967ffa8565fff9d4d58ff984f733129216f302820682f271e5f2e261e653128206f32292169312821632f261f75332a206b2e271f6e2e271f6f2f271f662e261e652e261f562e251da441342b592e241da73e32285327211a5a27211a702c241e762d251e7c2c251e6e2a221c6b28211a6728221a64251f185f231d1766251e1862251d1762221c1661221c1667231c1661221b156a221c166c211c1561201a145e211a147f2b221a501f1812b3261f1ab013100ca418130e31110e0a5f17130e5715110d4f15110c4c15110d4f16120d5617120e4715120d4114120d5917140f5d1915105417140f641a1711631b17115d1b17125b1a16105c1a16105a1a16114e1915104919140f3b13100cac1e1712ab1f1a143a16120e681b17125c1b1712731d1a14771d19136c1d1813721d19136a1c1711661c1811691b1812631c18127f1d1914661b1712771c18127f1d19126c2512095d230f075d230f07642d160a5831180a5f32180a6033190b52230e063a1d0b044e1f0c04611f0c04481d0b04552d14094e37190a393114073f2f1307442e14085f26140b572712083e180a035e1a0e07471b0c04ba1b1612bf221c163114120d76201c1673201c16641e1a155d1e1a156b211d1767211d17531d1a15551e1b1668211e186a221f1968221f1a7324211b6c231f1a6c24211c69221f1968221f196b24201a6a252019b51c1914da191612480f0d0b5914110e290f0d0b230d0b092c0e0d0a280f0d0b5b1613109126221c7a25221b721b191782211d1b8223201e932925219b2c28258f2a2622aa2f2a27bb332d299e2d282575211e1cbe332e2a8a2d2a24cb3e3832cb433c37c03f3934bd3b3531ba38332fa32e2b27421e1c1a8c2b27235a1a1817671817155e141312ff463d356d1e1d1c751f1e1e761f1e1d9e1f1e1e98222121de010101fe010101ff010101ff010101ff010101ff010101f20101014f171515931f1d1d9d212020b623232384222222652221225a2322235e2524253d262422cc3d363069181615681e1c1b651f1d1c513b38345a1f1c1a6d383635763c3a38783f3d3b7f4f4b4b8c62606084696763504444449a7774756d747273aa8f8c8cb2999796b49f9d9c4a3e3d3ae6d7d5d1e0d6d4d2bbbdbdbf8fa0a2a675898b9686938f85cb9c918b531b18152e13100e2913110f23100f0d210f0d0b671f1c18793a3630e3847e7395736c6488a2a29192a2a0918aa8a19291a6a2937b9e998a7da29d8b7da3a08f739c9a8999afaa9b769c978988a9a09192b1a99784a8a18f7c8a7e6d69372c2171372d22542e251c472a2219bf3a2c24d925211d45331b0d0d2e1407333015075941201061381c0b484b210d4e4e230f635126136d4f251343461d0b47451d0b45441d0a46461f0b6b522814655e2f157068361866623117636331165bff924757ff8e4747ff85405b3b3327593b32274e382f2546362e245c3b33285c3c34295b3c342a5e3d352a653f362b563a332851352e245637302549342b224f392f253b30271f5031281f97372c247530261f2c2a221a4f322a214e342d2456342d245f342c2352332b2255322a214d3029204c30291f4a2d271e472d271e532d251e442a231c532d251d4f2a231b4b2a231a4a29221a452720184928211937231d152720191388271e18c32b251eb313100c36110d0a4b14100c5416120d4e15110c4d15110d5716120e5016120d5918140f4d16130e4716130d601815105e1916114e17140f5a1a1611511916105e1b18125d1b1711651c1813641d19135a1b1711661d19134217130e891b16116017120e621d18137d201b155c1c18126f1d1913681c18136a1c1813601b17127c1f1b156c1d1913791d1913701c1913721d1913681b17127b1d1812761d18125f23110855220e064f200d065d2d150a6632190a6431180a5b31170a3b210d05381d0b04421d0b04441b0a033e1b0a04532b13086e381a0c5338190a5a220f066324130c602913094f261107501309055e1b0e08511b0c05a618141044171410531a16116a1f1b15681f1b15661e1b156c201c1669211d1768211e18551f1c165f211d186d221f196d24211b6222201a6623201a511e1c166924211b68231f197125211b7e2a241d7426211aa91b1713cd191511550f0d0b5813100e240e0c09260e0c0a35110f0c4213110e4915120f9025201a701d1b18761e1c1973201e1b8d2623208e26221f4b1e1b18a52e2a26c836312cc135302bc936302cb8342e2959201d1aaf35302b7e2a2622b13c3731bf3c37339f342f2b8b2c2925852a27247b2a2722651816144d12111065131211ee37312b7e1f1e1e871e1d1d941f1e1e7c1d1d1c961c1c1c8b1f1e1ef5010101ff010101ff010101ff010101ff010101ff010101cf06060666181818841d1c1c601e1d1dc9242324aa2322238c24242476242324681e1d1cff4b423aff534a42b335302b5b151312451311109436322f5c302f2d723433327a3d3a397b43413f6b42403f594442427b545352645959595c5a5a5aa07c7b7ca08684849c888a87aa9a99977c80817e95717070e5d4d3d3e7d7d5d4a9aeafae8095969c8a938f84e0a398934c181513381412102e13100e23100e0d1f0f0c0b5d1e1b176c3a362fdd827b709e75716a789c988c7798948784a29f917b9a988991aeae9d89adaa998ba9a9997b9d9c8c7ea5a292749a938485a59e8d7faaa190819e9585808578666f3b3024753a2f23763b2f2466362b207131261cd726211c49341b0d133014072f3216074e411e0d5f40211266341c0e5251250f554f25116a4e26124546200b4a471f0b46451d0b43431c0b6d512813635d2e1468683517716432175e62301559ff934854ff8a4446ff803e5f3e3529573c3428563e34294d3b32266240362b6042392d583f362b523a3328583c3529533b3328533830255a3b32284f393025563a31265038302549342c226f32292043251d17543831255f39312750362f254c322b2255342d244f312b224a312a2159342e2355342e2354302a2153312a204a2d261e472b241c512c251d492b231b4c2a231a4e2b241b4b29221a4b2821194a29221940261f173a201913cf2e251ea4110e0a4f14100b5514110c5e17130e5615120d5316120e5e17130f5216120d611915105918150f4917130d6219151060191611561815105e19161156191610601b1812671d1912711e1a13651e1913541b1711691e1a134917130ea81c1712a51d1812691e1913761f1b156a1e19137a1f1a156d1c1913731d19136a1c18127e1e1b15791f1b147f1e1913751d1913871f1b157b1e1a147d1c1812811d19136623110860220f0757210d06552b140885321a0c6d2f170b6b31180b58230f06371b0a03401b0a03391d0b03331a09036b2913097633180b5a200e056f2c170c6726130a5928110855211008501209054a1b0d07501b0c048e16130f641c18135e1a171275201c1673201c166f201d1775221e186d211d1770221f1965211e1862221e1870221e196f24201a6a23201a6b23201a551f1c166a24201a7225201a7b26221c7d2a241d6d25201ab0191612c3191511570e0c0a6316130f280f0d0b290f0d0b31110f0c32110f0c4413110e9b27211b74191714781e1c197e23201d8526231f9026231f81292520cf352f2ad637322dd339332ec937322cd43b3530d43e3732c53f39336d272421a7322f2b6826231f852e2a27882a27245e26221f731917156818161573141312a20c0b0a82161515811d1c1c811c1b1b6c1b1b1b6c1b1b1b931b1b1a871c1c1cc9141414ff010101ff010101ff010101fc010101ff010101c7060606d81a1a1ade1e1e1e9b201f20c5222222a9232223b4272627dd0b0b0bff332e28ff4e473fff514841ed504e496412110f64181715681e1c1b8555514e663c3a396b35333251312f2e5f39363566403d3d5f484746785d5c5c9c706f6f997c7a7995817f7ea08c8b8ac8a3a2a0bea4a2a150302e2bdecdcbc8f3e3e1dccec8c7c48099989c7a818280e9a69b95561b18153214110f2c12100e23110f0d210f0d0c631d1b187136322de07d776e8b69675f7fa19b8f7f9b988c90a8a698849d9b8c8faaa89998b3ae9d8da8a4947e9e9a8b97b6b2a389a7a19186a39c8c87aca493857c6e5d6c3f332768352c217b3a2f247b3a2f2471372c214b2c231adc2e2a243c351a0c0f2c12062e32150753411e0d6e3c22144742221153361f126d552c164e49231046441e0b51471f0c4a451d0b40451d0b634e2411605e2d145d5d2c146b622f166e6532185eff904759ff934c50ff8d456541382c5e3e352b6342392c4f3c3227653f372c6442392e62413a2e573b34295b3d352a553b33285b3c3328653d352a4e393026523a31275239312652342c2266262019752e261e593930265a3730265c38302750332c2359352e2556312b2250312b2258332c235d362e245630292059312b2257302a21542e271e532c241c4e2b241b4d2b241b4b2922194828221a5029221a4d29221a4b2720183d251e16d62e261f35110e0a4a130f0a5615110c5e17130e5715110d5616130e6317140f4f15120d631915105918140f5217140f5d1814105b1916105418150f621a161156181510601b17115d1a1610691d19126b1e19135c1c1812661e19134e17140fcd211b15a51c17125f1c18127c1f1b156d1e1914731e1a146f1d1914761d1914681c18137c1f1a14751e1a148f201b15721d19138b1f1b157b1d19137a1c1812811d19135b22100855220f0755220e067b2d150a792f160b682f160a622e160a56240f06351d0a03421c0a033a1c0a03451b0a0378170b0569170c06972f1c115b2b13094e2a12074c2a12072c200d052d1409033f180c06491b0c053f16130e5c1a17125f1b181276201c1775201c1672211d1778221e1869201d1771211e18631f1c166d231f196d201d1867221e1868221f196d231f1a541e1c176b23201a68221e187325201a8429251e7626221b6f231f19cc1a1713550e0c0b6614120f230f0c0a34100e0c39120f0c4c14110e4f16130f9326221d771a18167a1f1d1a8524211e9b2a25227324221fa02e2925ae312c27b5332e2ad539322de33d3630d23b3530d13d3732dd413a35ee4a413bb139332e4f201e1b61201e1c7c272422b538332d721917166016141377121110c8020202d70201015e171616801a1a1a6b1918185e1818188a181818b31919198a252525ff010101ff010101fe010101fd020101ff020101ba0f0f0fa9181818b51b1b1cae1e1e1e8b1f1f1f8d222222dc050505ff231f1cff4d443eff312c27ff010101efdbdcd2d40504046b1615136c1c1a187d23211f7b625d5b5c2b2a274f201e1d4f2e2b2a72403d3c7d504d4c825b5b598865646495747271ad83807fbc949291bda9a6a7b5a69f9d7159534de8dddbd6ecdad8d5cfcdcac9879a9a9c738b8e91d09d8f87711f1c18451714124a16141228110f0d2b110f0d771f1d1a7535322df47e7a728f9b93897b9e9a8f7e9e9b8f91aaa698839d998c8caaa59793aba6989db6aea07da29c8c9bb6afa087a3a19181a29c8d8bb0a8988e7b6d5c743a302471372d2278382e237e3a2f237c3a30246d372c202924180f3932190c0d2e1205303315064c401e0d703d2316524424145f4e2b189c4a2e20533a1b0d4d461e0b4a451e0c4d461e0b49471e0b665226126d5f2e15796532187f68361a836b361b50ff8b4056ff91455aff98495f3f362a633f372b5f3f372a573e362a643e372c5d3f372c5e40382d5a3c342a5c3d352b563a3327533830255f3d352951372f265a3c33294f39312656362e24792a241c742b251d51362f255d3730275d382f2750332c245a362f2656322b2350312b2258332c225b352c235f332a2259322b215a312921522d271e522c261d4e2b241c522c251c512b241c4f29231b4d2821195029221a5229221a4f2b231a7e1e181336110e0a5415110b6016120d6217130d5815110c5816130e5f17130e5115120d5a17140e5718140f5118140f5f181510591815105217140f621916115c1916115a1a16105b1a16115b1a16116a1d1813561a1711751f1b1556191510ad1d18139d1b17126b1d191483201c16691d19137d1e1a14721d1a147a1d1a146a1d1913861f1b15761e1b1491201b15721d1913891f1b157d1e1914911f1a14871e1a13622411095c220f0653220e067a2e160b8831190c432a13083f2812075f2510074c1f0c044e1d0b04411b09033d1b0903622310079123140c7e301a0f6626130a402510073d271006281e0c05261609035d1a0e08511a0b044015130e681c18136a1c19137d201c1776201b1673211d1774221e186d1f1c1667201d17601f1c166c231f1970211e1864201d1865211e196f23201b5c201c1767221f1965211e1865221f198328241d7125211b7d27231cd51d19156d110e0d72171410210f0d0b270f0c0a31110e0c240f0d0b4513110e69252320751c1a17731f1d1a8425221fac2d292558211e1ab1302c26b4322d28b6332e2abf36302cc437312cd43b3530d43e3832d5423a35d5473f39c03e3732aa342f2c812825235b221f1c721a1817711715146a141311be080807d9010101ba0201019d0c0c0c871717178a1818176e1717176d1615158b1616166d191819e5020202ff010101f3010101ff020101ff020201bc0f0f0fb4171717b61a1a1ba41d1c1d9a202020a8080808ff27221eff4e453ffb0a090887010101ec010101efdbdcd2ce21211f760c0b0a76191817721e1d1c70413f3e53343532732f2f2e7d36343380413e3d7f4c48477f56545389636261936e6d6c9b7776759e848181b5a7a3a4b1a39f9ebb87817c8a53524fe3d5d1cfdbcfcbc9bfbbb8b882949697c19087816c1e1b1728100e0c2f12100e20100e0c1f0f0d0b691a191682393631ec7f776f86a39f9485a19d92809e9d8f96adab9c84a09c8f9bb0ac9e92aeab9ca6b8b1a37c9e988b9ab6af9f8ba8a19396b0a8988dafa89a947f7160753b30247c3b3024803b3024803c3024803e32269140332736231a126c2b1b110e2b12062a3215064e401e0d5b4623116a4626155b4f28145b452414504c210e6748200d46441d0a46451d0a3f471d0a6252261170612f16686230168568351b8b6c371c59ff974757ff93445dff9b4d6040372b583f362a5f40372b563f372a643f372c5b3f362b5d3f382c5a3c342a623f372d50383026503730265539312751373025553a32285c3b3329603a32276927211b722c251e5d383127623932285a37302755312b235c3730275a332d2450322c235f342d245a342d2464322b2259312a2158312921562e28205f2f2820532c261d572d261d532d261c562d251d522a231b512b231b542c241b6631271e791b161139110e0a5415110c5d15120d5d16120d5715110c5716120d6417130f5116120d5d18140f601915105818150f621915105b1915105618140f621a17115f1a17116b1c1912611b17115b1a1611621c1812521a16116a1e19144c181410b61e1813951b1612651c18137b1f1b156c1d19147e1e1b15741e1a157e1e1b156b1c1913841f1b15811f1b15811f1b15741d18138a201b167d1e1a148e1f1a158c1e1a145f2210085b230f064d220e06612c1509642e17096230180a542c1409602611073f1b0903591d0b04491c0a03491b0a0372230f079d22150da9281b134b241108432510065a2812074a230f06391509037a1c110b631b0d065514110d651b1712651c1813771f1b15751f1b1572201c177c211e186b1f1c176c211d186d211d177424201a73221f196a221e196b221e186e23201a5f211d187625211c6a221f1965221e187926211b68231f1985181511dc1d1a165c100e0c6114120f29100e0c4013110e4213100e5215120f4613110e71151311811e1b187d221f1c9c2a25229f2925226f23201caa2e2a24b5322c27c7352f2bd13a342eda3c352fc73a342fd6403933e1463e38c340393498352f2c902e29267d282522a0302b27701917156f1614137e0e0d0cd5030302e001010199010101f1010101a00909098c14141466141514811414157b1313138a14141492242424f9010101fe010101ff010101ff01010188101011a41616168d1818188f1c1c1caa1d1c1dfc2d2824ff6d6157ff0b0a09ff020101cb010101ff010101efdcdcd3a086857fa50f0e0d76141312761c1a19731f1e1c6b5d58567233323164312f2e653734347a4441417c514f4e8d636261906a68689a7573719b7d7a7bb095928fbea6a19fb49c979942292624c2bebabad9cac6c5ccc3bfbf86949697a58c888475201d19711c19163914110f2b110f0d1e0e0d0b5e1c19167636332ff5878277858b867a83a09c9083a1a09398aead9d86a09e9097b0ac9e9eb4afa18fafa99b7da0978a9ab5af9f8aaaa19194b1a89792b1aa9a8a7b6d5c743b30247c3b3025743b3024863f33277f3e3125723c2f24871d17134435190b102f14061b2c12055844200e564c240f6350271273582c1665482616484d200d50461d0b42431c0a50471e0b44461d0a69542811725f2f1566602e166e6330187065321851ff8d414bff904252ff8e446342392c5c3f362a69453b2d5c41382b6441382c5e41382d6441392d583b34296642382e5d3d352a563a3328543932274d372f254e38302654393127543831256d27211b6c2c251f563730275a3630255d38312757332d245e3831285b342d2453332d245e342d2462352e2459322b225a332b225c322a22552f28205e302820562c261d522c251c512a241b572d251d4b2a221a552d241c542c231b502d241b8e211d17b7130f0c4c14100c6116120d6216120d5715110d5916120e6517130e5315120d6517140f5f18140f5d18140f60181510581815105118140f611a1711621a17116d1b1912641b1812681c1912691c191350191611741f1a1454191511c2201a14921b1611631b1813731e1a14691d191489201c16721d1a147f1e1a15701d1914821f1b167d1e1b158f201c16751d191390211d16771d1a1496201c15921f1a155722100759230f064a220e05492913083f2a1407462a1408422913076c291108501c0b04481b0a03551d0b04491c0a0370210f068025130a7528160d3d230e0632220e055026110742220f06451409047519100b571c0b05a31814105d1a17126b1c18137c201b16741f1c1674211d177e211e176f1f1c1775211d176b211d177b2320196e201d1865201d1765211d186d231f1960211d187a26221c6e24211b7224211b8427241d6b232019b11a1713d61f1b16620f0e0b6815131023100d0b38110f0d3d110f0c280e0d0a4d14110e6d1b18162c14110e77221f1c9b2c2723882925229e2d2824b3302b25a02d28237e25221f76221e1c7328241fb038322dd8413a35d2413a35ca3e3732b336312c8c2926236827231f7c1a1816871a181676131210bf090807c1020202ee0201018c010101f0010101eb010101b206060665111111811111118c1010108f10111066151515ff010101ff010101ff010101f5010101a21111118f16151692181718a3202121fa272320ff665b55f40a0808f6010101ea010101b51919186a222120732524225c22201e40211f1b690d0c0c771919177c1e1c1b7e4745426838373675312f2e7e3734347c3d3b3a804b4a48836261607163626153524e4e64595758cbb7b0adbea19b9ab59f999c58504d4bdfcdc9c7e9d5cecd5973726f3f66655f6c67686b711f1d192d110e0c3713110f2d11100e1e0e0c0b5e1c19167a36342ef0888177a5817b718da5a1907e9b998c9aafac9d89a19d8e91ada99999aeaa999bb4ae9d7e9e97889bb3ad9c81a29b8c99b2aa9999b8af9b898170607340342a773e33288c46382d814033287f3e322557342a1fd52b25203835190a092910042d3215074b431f0d5e4f261056522710755c30176e4a27163e471d0b4a481f0c5c4b220d584c220d48481f0c7e5027126f5e2d15545d2c146f6330177866331953ff90424cff8b3e53ff93426642392c6240372a69453b2e6341382c623f372c5b3f362b5d40372c573d342967433a2e623f372c583c342a603d362a5137302650383127583932285b3a3128722b221c6b2d251e5336302556363025573730265c352f265b3730275e352f2657342d245b352d2462352e2561342d235b342c235d322b22512f282063312a21582e271e522e261d4f2c251c512b241b592e251c532c241b542b241b4729221ac7302822a8100e0b4813100b5e16120d6016120d5a15110d5415120d6116120e5915120d6c19150f5d18140f5f17140f5f1815105a1915105018140f5f1a171158191610691b1813681c19136c1d19136e1d19135b1a1611771e1a1458191511c3201b159f1d1813721e1a14751d1a14691d19148a201b16741e1a157e1e1a15731d191484201c16781f1b1593211d167e1e1a148f201d16741d18138b1f1a14861e1a14602310086725100756230f06472812073f2913072d2710052d2711065d281006481b0a03501c0b04651d0b045d1d0b047c1f0f086e22110a9226191232200d0528200d0551240f064d220e06361609037a1d100a481a0c04a316130f551915106a1c1812791f1b1578201b156b1f1b1578211d1678211d167e231f1868201c16812420196f201d1769211e1863201d186c221f19571f1c167425221c7024211b7624211b8628241d7524211aaa1a1612c31d1915570e0d0b5a14120f270f0d0b52161411601714114f14110e4a13110e621b18163114120f72201d1a8f2824205c24201da9302c26b2302c26b9312c267024201c591b18167726231fd4403934d33f39335b1f1c196426221f852a262266201e1b862c2825741917157116151374100f0ecf040403ca020202d4020101e0010101ed010101d3010101f30101018b010101930c0c0c840d0d0d6d0d0d0d540d0d0d7d222222ff231e1bff231f1cff2a2520960f0f10861313149b19191aff25211fff5b534dfc070606f201010136191817421e1d1c732120207e2323238d27262586262423712322215418181671161514781c1a19702b2927593735356f2d2b2b522d2c2952363331603f3e3c915d5d5a83626161655453555a504e4f7b706f6e938a8688b9a09a9a8f858282b4837e7ce3cac6c55e7e7e7b536765606d80858b5f1c19164d181512541a17144a17151228110f0d631c19166e373430dd857e74a078756f8fa6a19080a09e8f97aca89a899e9b8c93afab9a94b0aa989eb7af9f87a59d8e9bb3ac9b7f9d938590aba39389b0a8938e817260743f3329743e33298143372c854135288641332664362b20d02a25205b301b1009291105203014064946210d554e250f665529127d63341b4a45231240471e0c4f48200c4e4a200c5850250d41451c0b734b2410695c2b15545d2b13615e2d14695f2d1767ff9e5151ff92465aff9b466e463c2e69453b2d67443b2e6841382c6240382c5d41382e5c41382c573d35295d40372c5e3f362b5c3e362c623e372b54383228573932275c3a3228623b3329742b241e73302820613b342957373026583831275d352e255c3831285d352e2656322c235c352e245e362e2463352e2464362f245e322b22502e271e5d302820532e271e552e261e512c241c522c241c552d251c552c241b5a2e261d512c241bc02d2620bf120f0c43130f0b5114100c6515120d6315120d5915120d6817130e5d16120e6918140f6418140f5c17130f64181510611915104e17140f571915105518140f6b1b1812621b18126e1d1a13731d1a14651b1812771d1a145a191511dc211c16b11e19146a1d1913711d19136e1d19148e201c16781f1b157f1f1a15751d1914881f1b15791f1b1593211d16801e1a148b1f1b157a1e19138d1f1b159b1f1b156e2411096825110766251007532812083a28120743291207462a1408652b1107661d0b045b1c0a04571c0b04541c0b047b1f0f086f2010089622171134210d0535210d0552240f064f1f0e073817090367190f0949190b05b1181410511815105b1915117f1e1a14821f1b15741f1b1582221e177c211d177a221d1771211c177a221e1875211e1872211e1862201d1763211d17541d1a157524201a6b221f1a7825211b8e29251e7e24211bb9191611c41d1815580f0d0b6115120f220f0d0b3a120f0c4413100e31100e0b57151310791b1916761d1b187c221f1c9726221e4b1d1a179f2c2822ab2e2924bd322d27bc332e29b4342f2ac13a342dbc3a3530822d28255b221f1c55201d1b531e1c197627241f9a292521711917157616141361131212481c1a18c0030303d9010101dc010101f0010101ec010101d901010182010101bb0101018c050505490909098a0b0b0b7f0e0e0eb60e0e0eff0d0d0dff0f0f0fff1111116d1211127b202021ff524b46e5090808de070707741d1d1d6b21201f642120207e2322229b2625258527262593272524842726245c2423216a10100f6d18171677211f1e604c49486f2a292958222120502726255b343331654a4947755a5958876968689a7471719b7b797aad8e8b8bba9e99989f8c898b72312e2cdac8c6c6bcafadad767d818275858a8f7f221e1b3112100e32110e0c3511100e2e110f0d6b1c191671393530db857e75b183817891a5a09088a39e9198aeaa9a8ea3a09197b0ab9b94b0ab999cb3ac9b88a39b8b94afa89783a49a8a91aca494a0b8ad999e8473607a3e31277f3e32278542362b88423529904234285c34291eee2d272148331a0d0e291206333819084d4a240e5b4f26106b582c128368381b4645221238471d0b5d49200d4a481f0b6351250e54481e0b8e522613625a2a1349582811545e2b15595f2e1665ffa05356ff984a7affa95772493e306643392c71473d2e6441392d6741392d65423a2e5a40382d503b32275b3f35295e3e352b573c342a6440382c5a3b34285e3b34295d393228663c342a832c241e803128215838312754342e245f38312761352e25623a32295f362f265a352e255d352d245f372e2562352e2463362d245c322b215430281f5b302820602f271e5f2f271f552d251d582c251d572d251d582d251c602e261d4c2b231ad42f2720c3120f0c45120f0b49120f0b6416130e5715110c5b16130e6517130f5515120d6617140f6118140f5a16130e63181410611815105317140f631a16115e1916116e1c19136a1c19136e1e1913701e1a14631c18126f1c19135b191611dd211c179e1d18135d1b1712721e1a14711d1a1490201c16771f1b157b1e1a15771e1a1591211d177b1e1a158f201c167e1e1a1486201b15761e19148e201c168d1f1b1562231008662510076225100755281207562a13085a2a1409532b15086e2c12085c1d0b04441b0a04561b0a04561a0a036a1f0e075f200e06a825191346220e0647220d0548230e05431f0c053914090430130a0648190a04b0181410571915104f18140f7b1e1a15731e1a1575201c167c201c176f1e1b1576211d176c201b1678221d1771201c1671201c17661f1c176f211e185e1e1b157824201b7223201a7724201a8929241d7f25211ab71b1713ce1e1a167b100e0c5f15120f2c110e0d5f181410611613105e1512105a151211801b1917791f1c1a7c221f1c9325221e561f1b18a02a2621a92d2923c3322d27c4332e28c936312bcc38332dd13e3831d5403934c13a342fad332e2b842825226f2823207e1b1817741816147013110f701817163f171614581a191747252422c7020101e2010101d1010101da0101018d010101b2010100c80101019801010181070707ff070707ff0c0b0cff101010ff121212ff151515ff151515ed141414ff2926228e191918661e1e1d7a2121218223222171232322a12625248c2525259527272786272525912927275c242321601210106e171515711c1b1a8b5856546c2d2c2c6e302e2e69343231733b3939724b49487e5c595a93706c6f98787575a3807d7da2838080b6969392aa948e8e562a2725cdc2bfbdbcb0afb08c99999b798a8f938525211c4a19161242161310491714113613100e601a18157e3d3a35e1888177b3837f7895a9a59484a4a09193aba79893a8a595a1b9b4a393b0a99797b0a798849f98888fada6967fa0998990b1a8978eb2a9948b7e6e5b7a4032267f4132258543362a874033278940332767372c21ec2f29234e331b0e17271208373618085951281064582c11705f3215826c3b1b71542d178c592c1754491f0b4e481f0b634f240e46481e0a764f231062582813565b2a13515b2913575e2a1455ff944973ffad5a55ff924468443b2e6341382c6c453b2e6341382b6643392d6241382c6042382d5c3f362b6442392d613f372c5c3e362b6541382c563c33285f3e352a55383026673e342a842d251f722f27204f362f2555383026613a332962362f255f3a32295d362f265d373027653730265f372f245f352d2463362e2458332c22523029205d322b22572f281f5330281f562e271e572e261d562c241c582c251c5c2d261d552d251dcc2e2620ba120f0b5f15110c5615110c6516130e5514110c5a15120d6a17130f5415110d6b17140f5f17140f5c17140f5e18140f621915105c1815106a1b1712651a1711701c19136c1c18136b1d1913731e1a14661c18127a1f1a15631a1712e1221d17c21f1a156b1d191483201c16741e1a1493221e177b1f1b15841f1b15741e1a148d201c167f1f1b158b201c167a1e1a147a1f1a14791e1914861e1a158c1f1a14612311087b27120872261107692912086d2c150a632a1409682a140a672b1108571e0b04451b0a04521a0a04501a0a046a1f0e07641f0f074a1f110a31200d054b200d053e1f0d05391d0c052916080332150a05431a0b04a216130f6f1b16115f1916117e1e1a156f1c1913761e1a1484201c16701e1b157d1f1c166b1f1b157b221e186b1f1b1672201c166f201d1776221f19641e1b167a23201a75231f1a75231f198c29241d8425211bbb1b1813da1d1915590e0d0a5c14120f25100d0b3e110f0d4e14110f2e100e0c730f0e0d6d181614751d1b198e25211e8e24211d6f231f1b9a2a2622a32b2722b1302b25b1302b26cb35302acd38322de1403932d13d3631c537322dae302c288d272320421b19166f1b18176d1716146d1a1818591817165018171655181716621919185a1a1a18952827259d6c6a67f2010101ce010101d6010101ff010101ff221d19ff040303ff080808ff0d0d0dff131313ff161616ff191919ff181818ff171617ea151515811e1e1d93222221872625249b2626258d262625a0282826ca2b2a29bf2b2b2ba72b2a29872827276d27252457100f0e691514136a1b1817a0403c39592c2b2a72302f2e76373634703a38397c4d4c4b8f605b5a8f6866669a7672739b7975769e84818198878585928a858247353330c0b8b6b5b7b1b1b18a9497996f8a8e9277221e1a3413100e31110f0d3613110f2a110f0d621c1a177036332eee8a8379a57f7a7595b0aa9a87a5a1929caea99a8ca5a09198b2ad9b98b1aa9892aea69680a29a8980a49d8d80a1988888a79e8e8baca28e887c6c5980423427884233277d4132269645372a833f332768392d22e7302a2444351b0d112b13073c3617086f49261357562c1076603216706737196b532a15625c2a105b481f0c4c491f0c594f240e524c200c755325115b5a281257612e14445927114d5b281369ffa24f78ffb05a68ff9f5266443a2e6842392c6a453b2e65433a2d6143392c6342392c69463b2f6142382d6f453b306240382d5f3f362c6441382d583d3428643f372b5d3e35297141392e862e251f8a332b23573a32285f3c3329643c3329623a3228623b332962362f265a37302660362f25633830265e352e245f382e2551312a21533129205a302a20552f271e5230281f5a30281f602f271e532c241c612f271e5a2d251d542d261dcd302922b6110e0b5a14100c6215120d6a16120d5a14110c6015120d7017130e5d16120d6a17140f6318140f6117140f6318140f5c18150f5118140f6c1b1711661a1611711d1a14701c1913701d1913741f1a14641c1712751e1a1454181510c9201a15b41e1915661e1a1485201d16711e1a148c211d167b1f1b1584201c16701e1a1487201c15801e1b158e201b167e1e1a1488211c16761e19148f1f1a14861e1b144e221007592611074e2410066a271208552510075f2711085b2711074a260f06331b0a03461a0a035d19090341190903531c0c05501c0d075e1f120c341e0c04451e0c05301e0b043c1d0c053717080242180b064e1b0c05aa16120e6c1a16116c1a1611821d1a14761c19137d1d19148c201c167d1f1b157c1f1c16711f1b1683221e18731f1b16691e1b16631f1c1679221f19641e1b157b24201a7a23201a7a231f198b27231c7e25201ab71b1814d81c19145b0e0d0b6014110e2f110e0c59161310651614104d14110f5016120f5a1211106b21201d64211e1b9c2925213313110f5c1d1b188924201d9429242191282421a52c2724b72f2b27c939332ec536312cb1322d29922a26228424211e73221e1c67191715661614125c1b1b1b44181715721a19186f1a1918641918174a191817731818179b19191881191917cf232322851a1a1a86090909e1090909ff030303ff090908ff0f0f0fff171717ff1c1c1cff201f20ff1b1b1bff161616ff141515a3212120732221204a21212045222120642726256c2826258a282727a72b2a29932a29286b272525712725253d24211f71141312701d1a19742826246a2e2d2b7c312f2d803735337c3b3a397643414070524f4d7c5a575676545354796662626c585655635f5d5a595957533e262422b3aba7a67e7071707278787a4d5b5c5e7d23201c46181613491815125118151324100e0d571c19167235322de48b837ab0807b758caaa29487a49f919ab3ac9c88a29d8d96b1ab9997ada79692aea59483a39b8b8fb1a8977ca098888faaa18f84aea38e8c7f6e5c7640332778403427894336299146392b8641342773403226e6302b2650371d0e0f2b130736351708514a250f4f522810505d2f125b613216504d25125554240f48471d0b4c4a1f0c4e4e220e4e4f210c7b5c2b156c5f2d165c622e1559612d156568321754ff9f4a51ff96454eff8e4072473d2f6641392c6d473d2f69443a2e68443a2e5f42382c5e443a2e6443392d6d453c3068453b306240372c6842392d583c3329623f362a5c3f362a5e3c3328782c241e80312822553c3429623d342a623c33285d393127623b332961393127583830266139302661372f255e352d2363382f2558352c2350312a205f312a215330291f5631281f522e261e552f271e592d251c5e30281f5b2d251c5d30281ecb302922ae100d0a6014100c6d15120e6f17130e5113100b6315120d6a17130e5a15120d6517130e6a18140f5a17130e6518140f6219151058181410711b1712671a1611731d1a13711d1913731d1914721e1a145b1b1711741d1a145117140fbe1d1914ac1c1813681e1a1481201c15741e1a159e221e177b1f1b1585201b166f1d1914811f1b15811e1b1595201c16791e1a1487201b15861e1a158e1e1a14891e1914662411096d26110756240f065d2510076b261109702813097029130954281007561c0b044f1a0a03511a0a0449190903701e0e075a1f0d07361a0c06481d0c05371b0a04301c0a04471e0d052f15080255170c064a190b04a514110e721a1611781a1611871e1a146a1a17127f1d1914841f1b15771e1a14771e1b15781e1b157b201d17731e1b1673201c166c1f1c177d221f19651f1b167f25201a7b241f197f2420198c27221c74241f19b31a1713ca1d1a15570d0b0a5c13100e250f0d0b3c12100d3d110f0d36100f0c4f15120f6b1212106a1a18155e1c1916691e1b17521b181579201c198326221ea72e2924ca332d289b2b27227f292420862c27239e332e29932b26228124201d671d1a17611b191650161413631a19185c212223761b1a19711a1918851c1b1a6e1a19186b1a19189f1a1918ac18181795151514ab1313137b13131280111111b40d0d0cff030303ff090809ff111111ff171717ff1b1b1bff1f1f1fff202020ff191919ff151516bb262626aa232221962c2b2ab0100f0fbc0f0f0eb60c0c0ca60d0c0cb60f0e0ebd85857f6422201f622422214e2421216b10100e50181716511f1e1c3b302e2c4725232143292724483633315f4a4846564541415e504e4d725c5b587d6c6666897975729a83817b867672683f3c393584938f91a6a09e9b969695955d79797b5f1c1a162912100d2d12100d2e12100e200f0d0c5b1c19166736322ee0867f769e74726a9dafa69887a49f929ab1aa9d86a19b8c8daca49299ada79697afa8977fa098898eafa4948ba59d8f8ea8a08f84aa9f8d8b7f6f5c7d3e3327773d3226894235288342352888423427713c3024e62f29254d371e0f0d2b130638411d084b4a240e4752270f53592c12595e2f155a5029147650291541451d0a4a4a200c4b4b200d4a50240e665d2c156b65301758622d1558622d166f6d341b63ff9d4d55ff90434cff8b3c6d473c2f6041382c72473d2f63453a2e6a473c2f66453b2e68463c3067433a2f71493e3169453b306442382d6a43392e583d342a5a3e35295b3d34285c3c3328732a231c7c302821583d33295f3c3329623d352a68393227643c3429623a322856372f265c372e246638302661352f245f3730255a352c235c322a225d312a215530291f56312a1f592d261e542d261d5a2d261c562e261d5d2d251c5a2e261dcd2e2721ad110e0a6013100b6815110d6515120d5614110c6716130e6a16130e5e15120d7017130f6216130f5815120e6217140f631814105d17140f6f1a17116a1a1711731d1913701d1913761d1a14791e1a15601b1712771e1a144f17140fc11d1914a21b1712641c1813821f1b15721e1a1486201c16751d1a157f1e1b15711d1a14891f1b16791e1a15881f1b15741c1914861e1a15801d1914841d1914801d19135d2310086025100754240f066c26110866241008602510075d25110867281108551b0a034f1a0903511a0a04591a0a04601d0d065a2110082d170a044d1b0b044a1a0a043a1c0b04471e0d053615080388110d094f180b04a515110e77191510751916117a1b1813711b1712841d1a14841e1b157f1e1a14811f1b156c1c1913761e1b16721e1a15711e1b15731f1c177d221f196a201c167e231f197a221f19802320199328231d7d24201aa7191612cc1e1915540d0b095912100d30100e0c741915114a13100e5714110f5214120f801816147c1c1a177a211e1a7b23201b6b1e1b18ac23201cb82d2823b42d2824c8302c27c1302c27c9342f29d135302aba302b26ad2b27238f23211d791d1b18581a1816641715136d1b1919582c2d2e5b1a1919781b1a1a711a1a19961c1b1a7e1a1919b51a1a1994181817a9161615a3131312711111107a101010ff000000ff010101ff080808ff101010ff151616ff181818ff1d1d1dff1e1e1eff181718ff131313ff141211fb020201fc010101ff010101ff010101ff010101e6010101ff010101efdcddd3e00c0b0bc6030302ba0807075c0f0e0d651a191761201f1d4742403f702c2b2a6a2b2b29753d3a39764a49488054535286615f5d94706f6d987c78799e8581829d888486968b87864f393938b392908db8aaa7a7868e8c8e728181855f1d1a1730161310421815134c1a161323100e0d571a18156036322cda877c739577716885a59d907d9d978b93aca69987a29b8b95afa9978fa9a3928caaa2917899928289aaa191839d9686829e97877aa89d8b9681715e7f403427793f33278a44362a814234287b3e32265e382d22df2d292451391f0f132f16072e3c1a074f47220e52572a10575f3012555d2e156a4d29163f53230d4f4e240d464a200c4c4d220d4b54260f6164321861642f1662663017626530166568301754ff8d4352ff883b55ff8f3f71473d2f6d443a2e6e483d305e41382c6844392d67453a2e6e483e3168443b2f754a3f3267433a2f6342382e6b443b2e5d3f362a5e40362a5c3d342a573a3126742a231d75302721543a32285f3c3329603e352a593831275e3b33295e3a31275838302561383026613930265c352e245a362e2459342b2258302920562f2820502f281f5d322a20592e271e562f271e5b2f261e552d251d532b231b4b2b231bc62d261faf100d0a53120f0b5c14110c6114110d5e14110d6314120d6416130e5e15120d6e17140f6016130e5615120e6416130f6017140f5916130e6f19161167191510781c18136e1c1812711d1914741d19145f1a1611741c18135317140fbf1d1914ab1c18135f1b1712731d1a14721d1914841f1a15771c1914831d1a156e1b1813861f1b16731d1913861f1a15751c18138b1f1b167b1c18138a1d1914821c18135c22100863241006702611075d220f0758210f075b220f074c220f065f2711083e190903601a0a044a1a0a034c1a0a03581d0d054c1f0e073311080446190a04491a0a04421e0d053c1c0b053c15080371130b074a170a04a214100d6618140f67181510741a17117b1b18127f1b18127c1e1a147e1d1a147f1f1a15681b1813721d1a15731c1a156e1e1a156f1e1b167b211d18691e1b1581221f1977211e187b221f198f26211b7e231f18a6191611bc191612750e0c0a5913100e1f0e0c0a3f100e0c3e100f0c2d0f0d0b3f100f0c78181614741c1a177e201d1a9224211d711e1b18ab25221eaa2b2622ac2d2824b32d2924b82f2b25c3312e28db36312acf332d28ba2b27238b211e1b821e1b186a1a18164f1413114f1a191968363838761a1919711b1a19851c1b1b991c1c1a921a19199019191889171716a61414139e111111770a0a098c010101fd0a0907ff000000ff050505ff0d0d0dff111111ff141414ff181818ff181818ff141414ff0f0f0fd42d2d2ec4100f10fe010101df010000ff010101ff010101b2010101ff010101a71e1d1ce90b0b0ae00403035e0a0a093e0b0b0960181715681f1e1c463b39346c2a29276d2f2f2d6a3938377e484645864b4a49855452509378706f9a797676ad8c8789b6908c8cb6938e8d59343432d4c7c1c0c4bcb6b79b9593957c83868a5e1e1a17210e0d0b3211100d3513110f24110f0d571a181466332f2bd77f746ba87b777085a49b8d819c968a96aca799849d978890ada69587a39c8a8baaa08e779991818faca5947d9a948588a1998a7aa69b88957f705e7c3f332781423628854336297d403427753d312560362c21dc2d2924573b2110132c1408403f1c08584c250f4a50250e55592b12555a2d15634a28175154250f4d53280d494f240c4950240e3f54260d7068351b5a6630155c6a3215656b3317686a32185dff90466aff96496eff9c4d74493e306c483c2f6b483d305d42382d69433a2e63453a2e69463c2f66433a2e71483d316b443c306340372d6543392d5c3d342a5e40362a5a3c33295d3c3228732b241e7b3229214e38312757393126613d342957393127603c33296139312757372e245e382f265b382f255c362e245c352e245c342c23543029205b3029214e2e271e5d322b21582e271e5d30291f572e261e522d251c502b231b4e2b231bc32a231eba110e0b5c120f0b5913100c6b14110d6113100d6614110d6a16120e5a14120d6b16130e6216120e5915120e5a15120e6217130f5c16130f6919151066181510701b1712681a17116e1b1712741c19135b191611741c19135a171410ba1c1713af1c1813601a1712711d19146d1c1813821d1914721c18147f1e1a156e1b1813811e1a14771c19138c1e1a15721b181296201b16771c1812851c18138b1d18136f24110875251107732611075a210f0751200e0755210f0756210e066e2711084c1b0a035e1b0a03561a0a03481909032e160903531f0e0736110803551a0b0551190a04491a0b044b1d0d053c15080346130a0649170a04a313100d6f18140f6517140f7f1b17127f1b1712821b1712821d19137b1d19137c1d1a146c1c1813761d1914671b1813701d1a14711e1b1575201c16641d1a1479211e1871201c1777211e188d24201a74211e1896171410ad181511500c0b095b12100d2d110e0c4d13110f44110f0d35100e0b41120f0c6a161412771d1a1781231f1b7f221f1b5c1a1815951d1a17a526231faf2c2824b02b2622a42a2722c02f2b25c3302b26b22c272278201d195319171551171513781e1b18691c19186f1615136e2d2e2f6c2221204b1312125c181616861717179c121211bf0c0c0cf2020201fc020101fc010101fa010101e5010101db010101f5020202ff010101ff080808ff0e0e0eff111111ff111111ff111111ff0e0e0ebe1b1c1ca02c2c2dba2e2e2fc92e2e2fd72f2e2ef7141414ff010101d5010101fc010101b4111111df0d0d0ccb040303710c0b0a62100f0e631d1b1758332f2a3a35342f4a2524215f302f2c67393837694442405b45423f7554504f896e6c6c98757474867471719a817d7d8f8482814f464542969c9790bfb7b4b18a91929172898b8d541b18153015120f401714114017131122100e0c561b18145c2e2a26c6746d65b079726d839e97897a98948793b0aa99849d988888a8a18f8ca6a08e8eaba18f739790819bb1a9997a9a928285a09a8988aca08c8b7d6d5a793e332677403428804034277d403326743e312553362a20c52b2622403b1e0e122d1508383f1c085148220e4a51250e535628124a5229153f442212545023105f582c0f4955290e4f55280e3b54260d6265331865662f17585e2a1457612d166867311765ff944671ff9e4f63ff9746714a3f3169443b2e6b473c306443382d5f41382d66453b2e6d483d316042382c6e463c3065433a2f5e40372d6241372b5b3d34295b3e352b593d342a623d342a702b231d7d32292151383127543932285e3d342a56362f265c3a32285e3b3328573730255c3930265e3830265f362e2458362e2463352d24523128205a312b215731292056312920572e271e552f271e552e251d522c241c502b231a462a221ab729221dbb100d0a57110e0b5b120f0b6514110d5e13100c5f14110d6615110d5914110d6d16130e5f15120e5f14120d6116130f6217140f5f16130f7119161166181510721a16116a1915106f1b1712751b18135d191611771d191458171410b21b17128f181410661a17127b1d19146d1a1712831c1914781c19147d1d1914701b18137b1d1914771c1813831e19147a1c1812871d1914751a17127f1b18137e1b17127f24120884261107822611084b1f0d05441d0c056c210f0776210f08842711095a1e0b04591b0a034c1909034e18090331180903421d0d064a1309054e1a0b05571a0a04521b0b054c1b0c053b1509039a130d0942160903a212100c6816120e6315120e781916117a1a16117b1916117e1b1712771b18137e1d1913691b1713781d19146e1c1814741e1b15741e1b167c201c17651d1a157f221e18721f1b1677211d188d24211a78211f18a4181410be1a16124e0c0a086213110e200e0c0a350f0d0a330f0d0b33100e0b40110f0c4212110f641a1815521a1714621e1b184013110e73161411691c1a1670211e1a5c1b181560201c19621f1b19611e1c199e231f1bb0231f1cc524201da824211e5f181614741e1c1a621a171576292a2a84383839ff1c1a19e1050504c8020202cc020201f80202029a020202f8020101fa010101f6020101e70101016f151515651a1a1aff000000ff010101ff060606ff090909ff0a0a0aff090909c31d1d1e9e2c2c2da82c2c2ec43130316e2b2b2bea313131e1303030a52c2b2cc821201fa2040303e2111010bb121211b80404036b0d0c0b6c1311106b141311741f1c1b5b2b2a296f2d2c2b7131302f7d3a3835553c3a3856464442464b4a47605a58567969666567626261565d5a59615f5f5c4025242277807c777a7f7a76607a7a795a7f8382541c191626100e0c3012100e3513110f23100e0d5d1b191566302b25c3766c62b67b736f849f998a7d9d97898faca696839e998982a6a08e8ba8a19085a79e8c7a9b94838aa9a2917698918180a09a8877a198867f77695777413528734135288144372a7c4235287040332655372c20cd2b2621413a1e0e0f2f170a2d3d1a073f46200c4f51250e4253250f545428144b4623134c56250e51582c0e4253260c5858290f3956260d5d64321753612c145c5e2a164e5a28145d602d167fffa35487ffa65774ffa2506e493e316a463c306a493d316543392e64443a2f68483e3170493f3267443b2f6e483d3268433a2f5e3f362c66443a2e5a3d352a5e41382d5d40372c6240362c6a2b231d672e251e573a33285b3b332a5c3b332958373027603c34295d3a322757373026563830265f39312759372e245f3830255a352d244e30282056322b215030281f502f271e552e261d532c251c552d251d512c241c4e2b241b46292219b0241e19c70f0d0a52100e0a5a120f0b5d130f0b5b130f0b6613110d6b14110d5a13100d7015130e6715120e5f15120d6515130f6216130f6416130f6e1815106316140f73191611701816116b191611741a1713581815106b1a17125116130fba1c1813a71a161267191712761b18136c191712801c1914781c19137a1b1813761b1813821c1813771c1812841d19136f1a17128c1d19147e1a1712851b17127d1a1611802411088a2511089d281309551f0d06641f0d0668200f07541d0c069a2711095a210c055c1c0a03471809033d1708023d190a04451e0d062e100803561a0b0550180b0450190b044f190b053b140803301108033f150903b413100c6114110d6115120e721714107719151182191611831b1713761a1712811c1813721a17127b1c1914701c1813711d1a14791e1b16791f1c17621c19147c211d17781f1b1673201c178a221f19731f1d17a4171410c01a16124e0b0a086213100e2c0e0d0b41120f0d310f0d0a200c0a097a0b0a0973191715791b181690211d1aca2d2823811f1b18981d1a17a6221e1bb0282520b627241fc52a2521cf2d2822e5302b25d8292520c925211eb4221f1c9723201d691e1b187a1f1c1b731f1d1c6a252525623c3e40ff2d2b28d40f0e0de0030302cb030202e2020101f3030202d2020202f3020101ff020101a62020208b1b1c1b781a1b1b8e1b1b1cff000000fe000000ff010101fe020202fc010101ed010101790d0d0dc52f2f31a9303031cb313132ee303131e3303030f73130309a2c2b2b912a2828df141414ca0d0d0c95070605700f0f0e7213121077161413762d2b2a5f252423742a29287731302f7a3e3d3b7f4c48478a5a565698686565825f5e5c936b6968a17a7574b2898684b08e8b8741383632b19a9997a9a7a5a59e92919383938f8e551d19151e110f0d6a201b1873201c19200f0e0d5d1a181465362f2acf7b7067a8736d68809d9888809d998a8da9a495879f9b8d8aa9a39389a59f8e87a89d8b70958d7d8eaaa290819f978683a49c89789e958484786b5972413527744135287b433729844437297b4235285a392d21d62e28233a3a1d0e0d271207283a18073d451f0c4a4e240e4752260f3b50240f484824124a53240f555b2c0f455c2c0e575d2c1038592a0e616533194c5e2b13525a28147264311a6d63301982ffac5997ffb26277ffa454704a3f336c463c3072493f3366453b2f67463c3069483e31744b413466443a2f6c473d3268443a2f6540372e6242392e593c34295a3f372c533b33295d3e352a702d251f77322a23563b3428573b33295d3c342a57373127623c35295c3932285a3831275e3931275f3a30255b382f2457372f245e352d2357312a2158332a214f2e271e542e281e542c251c552c251c522c261c562c251c562c251d4c2a221ab82a231ecf0e0c0951110e0a58110f0a62120f0b5d120f0b6113100c6713110d5f13100d7115120e6915120e5f14110d6814120e6715130f6015120e6c1815106216130f74181510791a17126c1916116f191612611815116e1917124b14110dd11d1913be1c181366191612821c191466181611811b18136f191612771b1713771b1813821c1813761a1712811c181274191612831b18137f1a1712881a17117c18161178231108882511089327120874210f07521d0c05571d0d06561d0d067325100762210d05591b0a04501708034315080248190a044f1e0e063912080350170904461509044216090349190a05281207023411070346140804b0110f0b5f14110d6015120e77171410771714107c1916117d1916117c1a1712801b1813741a17127a1b1813741b1813791d1a14731c1914761e1b16611b18137e1f1c1680201d17751f1c1683221f1878201d179b171411c51a1612490b09085a12100e1c0c0b09330e0d0a35100e0c320f0d0b4f0d0b0a6e110f0d6c19171584201d1a9926231e6017151292161412a51e1b18b726221fc727231fbc28231fdd2d2823d22d2823d0292521d127231fae221f1ca525211e7c231f1c7b1d1a18791d1b1968232322743d3f42e83d3b39ff272725fc0a0909d2030202c7020201e2020202ca020202d60606069a1f1f20801b1c1b841b1c1c8b1c1c1c79151616dd0101019d000000962a2a297c28282686282828ff010101fc010101b0212122c12f2e30bb2d2e2fe1313031da2f2f2fff3333336d28272763262323a52a29298c211f1e610b0a097612100f741311107a17161480413d3c6b2d2b2a712b2a297b333230783d3c3a7f4e4b4b91625f5f8f666563916866658f686665936e6c6b8a70706d856d6b693e262523bda1a09ca69d9e9f818283866d7f8187561c19152c12100e3313110f3614131120100e0d541a17146a3b3631cf7a7069a26b6862809d98887695908389a4a0928ca5a09188a7a4928aa6a28e83a69c897599918083a69f8d81a0998683a19b87769a948480776a58724135286f3f33277c4336297f4336287f433628643b2f22d42e292433381c0d06220f051d3918062d3f1c0a414e240e3a50240e3953250f424823124150220d5c5d2d0f4a5c2a0f3954250d134c200a3e5c2b125a632e155b612d165b602b157265311a70ff994c97ffb05e83ffab55764b40336d453c30774b413468453b2f6b453c306d473d316e473e3263453b3069463b306843392e6b433a306141392e573c342a5e40382d563c352a553a31277f2f27208a362d26573d3529613e3529593b3428573630265a3932285a3831275d3b33295c3932275f3a322759382f245b38302558352d2359322b225a332b214f2d271e522f281e522c251d512b241c532b251c542b241b592c251c532a2319c6342c25300d0b0853110e0a56110e0a5c120f0b5c120f0b6113100c6f14110d5e13100c7315120e6b14110d5e13110d6714120e6715120e5914110d6916140f6116130e71181510721815106c1815107118151162171510781917125715120ece1b1713b61916116f1a1712801b181364181511841b18136e191612781a17126e181611801a1712711916118b1b1712771916118d1b18137b191611851a1711821915117e2211088e24110894261208651f0d064c1b0b05551c0c055d1c0c0594271209631d0b0452190903511608033b1307023f180904661c0f08341509044313080328100602301508023f170904280f0602591109054b1208033d0e0c096113100c5e13100c7115130e7517140f7c181510881916127a191611831a171276181611791a1812711a17127b1b18136c1b1813731c1a15601a1813791f1c17781f1c16741e1b1686211e1878201d177b1c1a14c01815105c0c0a095d110f0d270f0d0b390f0d0b2b0e0c09260d0c0a4812100e6f0f0e0c77181614841e1c189723211d59161411a5171513ac1e1b18bd24201dbb24201dce292520be26231fd02b2622e62c2823c425221e6f1816146c1a18168f24211ea425221f731b1a187a2725237c35363766444748ff41403ced252322f1080706c5030202db03020289171716971e1e1e751b1b1b611b1b1b5f1b1b1c741c1c1cfc010101bf01010195000000772626256b27272699282828f0050505fd010101fa010101ac232424b02c2d2dac2d2d2dce2e2d2eff33333393292828c62c2b2b8b262525792523236c0e0c0c6c1312117a1412116e161413573c3b3a5d21201f4f27262555302f2d6d3b3b38794b4948875a585889626160846262609069676696716f6d8e747270876e6c695432312eb3a4a2a1a59796988a8385877b8485895a1e1a172a14111032141210361514111b0e0d0b661b1915743a3630d2776f6880756f60839d978774928e8187a19c8d809a968886a39f8e83a09b898da79e8c7a9992828ea9a3917c9d9684819f9a867b9b958584776a5a623b312456372c218246392b8445392a824437287641352637271a103e3a1d0e091d0d04253c190736451f0c3f4e230e3d50240d354f220e5a4c27164b52240e505b2c0e545e2b0f3b5b280e1d50220b4a5e2d1455612d14485c27126f642e1871652f1989ff9f5380ff9b4f8cffad59744a40336e463c30774a403364443b2f6b463c306c463c316a483e3161443b2f69473d3166443a2f6642392e6041392d5b3e362b61433a2f6140382c633f362b7d2f272084332c245f40372b603e362a583b33285b3831275838312759373026553730275c3831265c39302560382f25613a312660362e2457322a215b322a21532e281e542e271e4728221940272018572c251c592d261c5a2b241b582d251c771b17124b100d0955100d0952100e0a5f110e0b58110e0a5a110f0b6c12100c5d110f0b6e13110d6b13110d6613100c6d14110e6714110e5e14110d6615120e6515130e6c16130f701614106c16140f771715106a17140f7e1917126615130fad171310a61714105f171410701816116a181611821a171167171410671714106a1715107c1916127a1815118519161175171410791815107517140f7c1714107f17140f8422100894251108a0271209641f0e06661c0c06671c0d065b1b0b059327120a51190903571809034b1508023e12060242180a04641a100a2b14080339110703321107023914080345150a042d0f060260190d073d11070251110e0b6112100c5912100c7215120e7015130f7016130f83191611781815107c18151177181611821b18137a191712781a1712701b18136f1c181462191712741d1a15761e1b16741e1b168d23201982221f1881211e18b3171410550b0a086712100d220e0c0a2d0e0c0a230c0b095112100e5014110f6d0e0d0b6312110e831c1a1790211e1b521412109b131110af1c1917b3201c19c024201db824211d961f1c18631714128a1c1a17b7221f1b5f13121183211e1b9b25221f6c0c0b0a781b18168a252321702828287b44474ae74f4b48ff494844d61917179d1b1a19801c1c1c8e1c1c1c681c1c1c691c1c1c831f1f1f721d1d1d711a1a1afe010101ff010101d2000000b3282828b72a2a29b32a2a2aa4262626f6010101e7010101e801010187050505af2a2a2ad32e2d2ed82f2e2f782726266a2624244f22201f51211f1e70110f0e7c1513127f1513127e1a1817522a282764232321451919176a2b29286b403e3c644a494870595755765c5a5887646362966a69689f716f6c907473717d6f6c6981444240a59c9b9a9e969695554748477c7e7d7e541c18154317151224110f0d27110f0e1f100e0c6f1d1b175e35312bce7770687d9d97897e9992826789857673948f7f7893918384a29f8f8da6a08f85a59b8a77968e7d7da19887769890807a9b948276948e7c7f736859583a302557382d2278413629724034276b3e3324643b2f2223281a0e36391d0d13221209243a180630421c0a414e230d4e56280f3b52240f5d4a26163d4e200c3856280c515e2d0f4b632e0f4359270e4b5e2e145a612d155d632d1662662f1866652f1882ff974e8dffa55993ffad5971493e326a463b307a4b41346f483e3272473e326d463d316f493f3360443a2e6e473f3164433b2e63433a2e63423b2f5f40382e6a463d316241392d72443c2f6a2a231c77322921513b3327563b34295a3e362a5a393126533830264c342d23523630265c383227613a32265c372f245e372f2455332c215230282056312920512c261c522d251c4027201741251f175028231a4d2822184a2620174f2922198619140f390d0b0855100d094d0f0d09480f0c084d0f0d0949100e0a5b110f0b54110f0b5e110f0c6112100c6a13100c6713110d6a14120e5d12100c6113110d5413110d6215130e6b16140f6414120e721614105d15130e701615105f14120e9114110e9316120f5e1614106a1714105f16140f701714105f16130f751815106416140f791815117b181511821815116f15130f7b17140f6c15120e8017140f8016130f862211089625110884231007791f0f07691c0d066c1c0d06701b0c066d2812094d18090343160802411407024c11060251180b055c1c0f083d180a043b1107033811070240120803391609032a0d050243170c06390f07034b0f0d0a64120f0c56110f0b5812100c6113110d5e13110d6d16130f6f17130f6b16130f6a171410871b1813751916127e1a18136f1917126919171253171511691b1813711c1a146a1c1a1487221f19721f1c167d13110ec7181410560c0b08530f0c0a2d0d0b09300e0c0a230c0b09200c0a0843110f0d5e0a090856100e0b77181714991e1c185e17151292110f0e9f1916147a19161464141210c4221d1aab201d196d171513771b1916f92a2622d827231fd92c2824b0292521770e0c0b861d1b18821d1b197523232385393b3c461715145d1a18177b1b1a195b1b1a19561d1c1b711c1b1b651c1c1c7a1e1d1d8a1e1e1e8d1e1e1ea6020101d7010101f5010101a203030398272625d72b2a29b62a2a29aa2a2a2ae2010100c4010100bd010101b9020101bd1f1e1ebc2a2a2aee2e2d2eeb2c2c2ca22525256522212068191a196612110f76141210751a18166e3534336a272525822a29287d2b2a297231302e5a3735345e2d2d2c70474646956664628f726f6dab8884819e726f6e99747370715e5d59885f5d5b91878988435a59575d65605f705856544f1c18152e13110f2a13100f2f1613111f100d0b661c1a175f33302cc97971677a736d616d8f8778618a847584a39c8c75948d7f80a29b8b8ba7a09184a69e8d6f958d7d7ea298886f948c7c799c9582789e9684757266546b44392c623e33276a403528623a3023623a2f2257372b2079251a13433b1f0e1921140a2d3e190725431e0a3c4e240e515528113b5729104f4e26133e4d200d3f51220d4c58270e4c5f2a0f4058250c5a612e1469683218776d341b6b6a311b6668311a93ff9c547cff994d87ff9e5168493e305a41382c6d4a3f3273493f326d463e3171493f336c473e325d42392e5d433b2e593f372c60423a2e583e372c5a3f372d5e423a2f583e372b6d433a2e582a201a682f261e4f3b3227523b3227543c34294d362e244e383026593a31264f362e2459383126623a32275b362f2458362e2355322a204d2e271e572f291e532c251c4c2822194e282219492620174926211743241e1544231d1445251e168c211c16a7080705310c0a07500f0d0952100d0955100d0a4b0f0d0a520f0d0a4e100e0a60110f0b5b120f0b6612100c6713110d6513110d5a12100c6614120d5512100c6213110d5f14120d5e14120e6314120e4d12100c5a13110d3e100e0b8a13100d65110e0b5514110e5c14120e5213110d7117140f691614106816130f5c14120e741714107016130f7616130f6d15130f7915130f6b13110d7615120e7e15120e7c2010088a23100890231008791f0e07761d0d06661b0c06711b0c066b2d1409471508024e1508024a1307024411060249190b04581c0e06401509033b0f0602321106023e11070234140803300a040250150b06410e09056b100d085618130c591f170f3e110d08640f0c074e130f085417120a5d1b150d681e180f5e1f1810851a171374171511781917126e1816116f1917125416140f691a171264191712651b1813761e1b16601a1813aa14120ea41613106916110b6a1a150d681c160e501c170f78241d134717130d3a100d0b72090807220a08067115131088181513811f1c19750e0c0b9b15131298191714611311106e151310a71f1b17c924201cd827231ef029241fd125211eb726221eb22724209926231f91181513721b18167a2321207512110f662a2b2c40161513521816155d191818741d1c1b891f1e1e791e1d1d6e1e1e1d781e1d1d980e0e0edb010101eb020101f2020101b4141413bf292928bc2a2a29a2292828b22b2a2bb2101010be020101b9030303bb0f0f0fed191919a3232323bd292829b2272627722221215c1f1e1e7212100f6b1412107a1614136d23211e4a28272573272625662726256b2d2c2b823837357e444343864d4b4b734d4b4b604848465c3f3e3e6c5351508966646389666463402f2d2ba0797777978d8e8e5d70707064706d6a9a7f787042191613471815123f1613103013100f1e0f0d0b601c1a17612e2b28b36c655d997b756b6d8e86786d8f897b789992836a8d86787a9e9789809d9787759e95856e958d7d7d9e96886e8f897b71999180769a92827d776b5a6744392c613e33275a3a302457362d2152362c20853b2e22e1362f2a2c3c1d0c1325130a293f1b083848220d344f250d4654280f515e2f135e572b163a53200c4356270c4758280d5d642f11565d290f5d622c1256642d155f6a31186d6e341c736e351d76ff884882ff8d4d85ff9c4f5f443a2e5c42382c66483d3070493f326d483e326b493f336b493e335d433a2f5f433a2e573f372b553d362a563e362b4f3b342a4c3933294938312746372e246c3329223d271f194838302647362f2548352e244e372f25563a322851372f2447332c22563730265a372f2551342d2258352d23543029204c2a241c502c261c5228221a522822194c2620184b241f173f211c133c1e19123c1e1a12461c1610cf332a229e080705730e0b09290a08063f0d0b08420e0b08330d0b08350c0a072c0b0907360d0b08390e0b083f0e0c093d0e0c093e0f0d0a3a0e0c093f100e0a390e0c0942100d0a420f0d0a45100e0b400f0e0a380e0d09370e0d0a660f0d0a5c100c0a9714100d53100d0b370f0d0a38100d0a44110e0b3e100d0b46100e0b370f0d0a49110f0b3b0f0d0a370e0c093f0f0c09460f0d0a460f0d09470f0d0a52110e0a6c1e0e077c210f078a210f08791d0d07791c0d06781b0d06691b0c066b2d1408481307024612060249100602450f050244190b04601c0e074a1609043f120702320e0501370f0602361308031d0a04015f19130c6e1e170e4d1b150d62241c1394241d1450221a1079271f1470292014662920157a1f1910311a150d6c261f1454110e0b3f0f0b074113100934110e094e110e0933130f0a2f0c0905360f0b0673130f095615120b571a150d561b150d561f180f691b160d70241d1274251e1265201a13822821154b1e18103b0f0d0b7a0f0d0b800f0e0c7f1513117513120f9b1b181575110f0e9d110f0e9e161412ab1b1816b31b1815c7201d19c7221e1acf231f1bdd24201ce5272320d1282420e12b272288201d1a74141210871e1b19781a18166e1715136f17161520060505481716144b191716571b1a188b1f1e1e7c1f1e1e7e201f1f9b1f1f1fb9020202d2020201ae020201b80202018a181817af282726d4292a29aa292929a429292792282827b70e0e0ee9181817f91f1f1ee6201f1fd81e1d1dae25242562212021591f1e1f66171716681311106b171614721c1b1a702c2b2a67252323712726257f2c2a2a6f2d2b2a7c363434783f3e3f7e4a494991565454945f5c5c8f5b5959895b585989615f5f7e5b5959351c1b1aa286858592848284837a7a7d80757677b78379714b1b18152d13100d3314110f3115131121110f0d551b18166a332f2cc06e68618f6f67604c736a5f416c63584e767063406a63574c767163436d66593c6c64554370685b4979706349766f6047756d5f4c7f76674a5a4f403f352b2049382d23553a2f2447342a1f67372b1f7434281fdd332e2825381b0c161f120932411d0a484222103550250c48592a0f4a603012576030173255230d455a2a0d515e2d0e5d64301155642e0f63662e12646a3017646c321a6d70361d7c763b2061ff7c3c78ff874773ff86443430282038342b223f38302542382f2642382f2540372f2540382f25413930263b342c233e372f253d362f233f352d2436312a2136302921322f291f8841352b4e2f251d8c3e3128342821192a2a231b2e2c251c322d251d322d251d352c251c2b272119362b251c2d2621182a241e162e231d1531221c1532201c1435211c1436201b13321e19112d1d1811341c17113c1d1811331b170f451b160f6c1d1610ca2d26209e0706059b0b0907a00b0907a20b09079f0b0907a50b09079c0b0907870a0807900b0907890b0907960b0907b30d0b09a90d0a089f0c0a08ae0d0b09a50d0a09a70d0b09a50d0b099d0d0b09b80e0c0a990d0b09a00d0b09940d0b09ba0f0c0a9d0d0b09ae0e0c0ab90f0c0ac90f0d0bbd0f0d0bb50f0c0ac5100d0bb80f0c0ab80e0c0abd0f0c0a940d0b09d3100d0ba50e0b09b60e0c09b10d0b09bd0e0b09791d0d066a1f0e06711f0d06721c0c06781b0c066e1a0c0652190a056a2e15084611060240110602440f0602430e0501581c0d054b1d0e077b150b063d130803380f0602381107023114080316090401731e180f79221a106a1e19106c251e1378241c1360231b11652820146828201474282015401e18102f1b150d62231d13561c160e4d20190f5b241d123a20190f6a251d1248211b104b241d1156241d126a251e146b261f1456241c1277231c1254221b116b221c126f231c1252211a0f471b150e80282116511e1910340d0b0a730d0b09780d0c0a7912110f7711100e8b0e0d0b4a151311940f0d0ca812100ea7171513b5181513c61c1916c41d1a17c9201d19d2221f1af1292420dd282320891e1b18511514119226221e8b1815127e1b18166b1917156713110f672a2b2a35100e0e401817154b1a1818701f1e1d8c212020aa212121ff3e3d3cff282826ff1a1919ff111010f50c0c0b551f1e1d7e2525238b2624239c272626a62828277f272627ff272726fe272625b6262525f01c1c1bd8191818791c1c1c581e1e1e530e0e0d590f0e0d751613126e191716731e1d1c4122221f6d2524224f2726246a2a29277e312f2e783936377b403f3f8449464789514f4f835552537f5554547b5857568e625f5f79625f607e4d4c4a9182848386787a7a757273767c6e7272c27e7169461b1815571c1916491915131f100e0c1f0f0d0b551c1a1772383530c6716a637257524fc96f6661c06c6460ce746967c26e6562bd6d6460c570676298645a56d67a6f699c675a54b46e6460b26a615cba706560a34f433da5332921aa322821a33127209f2e251da42f251da42d241ce8342e28293d1e0c1d26160b3a3c1c0b2e44200e3348220c3851250d435c2d1249582a153e57240f425a2a0c4e602e0f5d6934134c662e0f5f713614646d3318847338207e73391f6270361b6cff814167ff7d3d71ff8341963027209f302721942f2620a1312822bc352b25b3342b24a3302822b0322923a2302721a1302721a02f2720932d241fac3128218c2b231e902c241f8127221ca32e2620892a221d8f2a221c9b2b231da52b231d9829211b9227201a9f29211c94241e1994241d1897221c17751e1813a9211b16841c16118e1b16118919140f9019140f7715110d7a15110d7e15110c7b15100b7813100b7a14100b7c14100bd029231bc70807053a090806420a0806770d0b08690c0907560b0907430b09076b0d0b084f0c0a08530c0a084a0c0a07520b0a085f0d0b09390b0907740f0c0a6c0e0b093a0c0a08610f0c0a6a0f0d0a4a0d0b09450c0a097e0f0d0b580d0b09230908064a0d0b094b0d0b097d100e0b670f0c0a4c0d0b09730f0d0a860f0d0b780f0d0a6e0f0d0b84100d0b5d0d0b084d0c0a07690d0b09580c0a08560c0907750e0b09691c0d06681e0d067e1f0e07741a0c056f1a0c065e190b05661a0c0657281107431006023d0f0502390e05013a0d050153190b05651d10086e150b05411208023f0f06023e1107023313080310070201711f190f7a241c126a251e1467271f1473241c1359241c115c292014602a2115632a21153d221a10401d170e62271f145f261e1359261e1250271e13402019104e1e180f601d18103e1d170e50231c1280251e1459231b1268261e1376261f1464261e1373241d1285241d1274231c125d201a11732820154c1f1911420f0d0c80080706700a090872110f0d7e100e0c8d0e0d0b871f1c1a900f0d0ca40c0b0abf100f0eca151311ba181413bf191614bf1b1815e7211d19c1201d197015131094201c1986211e1aa827231f8b1d1a179d1c191668181614501513116d1412106c0b0b094c181718601a19196f1d1c1c9a201f1ffa615f5dfe595756fb474545fd484646ff4b4949ff4b49495d1f1e1d7522212097252423a3272625672423229e282727ca292928f1242321d41e1d1ba1151413c3232221540404034d0f0e0e65100f0e5c1211105c1715146f1b1a19512523226a2726246d292826511a1918793432306d3332327d3b393a89444342864a48488f52505195535050995a575797615f5e83605e5d383a3936a1807e7e907e7d7f8277787b7c7373755b595857934c464168231f1d3d1815132f13110f2b1412101b0e0d0b5f1f1d1a6d3c3834ca746c669967625d62615b525e6c645b8b776f668b716a63626c655f7c776e6660696158545b534b6e675d55606057505061574f647469616251473f8a3b31285630271f392920194e2c231b542c231b442b221ae4332d283541200d16201209333a1c0c3644210f444822104053270e495e2f13565d32186a5b2c163054240b3658270d5d6b3411496a311065733819596a30176268301a7371371e7674392077ff834573ff83427aff8444503027204c3026205f372c235c362c244f3029226f393128472f272069372d26723a2f2749342a22442e261f63352b2359362c243329211b69332b246032282228251e18442d251e392c231c542d261f592f271f683129205028211b6d2b241d802e27204c241e185f231d174c1f1a13461b1711581c1610591a16103214100c4e18140e4b16130d6e1a150f4115120c32130f0a3c14100a4214100b30130f0ad028211ac8080705440a08064e0b09078a0d0b09850d0a085b0b09064b0b0806480b0907980f0c0a780d0b095f0b09075a0c0a07650d0b083b0b0a079c0f0d0a8b0e0c0a630d0b0998110e0c930f0d0b580d0b095c0d0b0996100e0c880f0d0b3a0c0a087b0f0d0b580f0c0a94120f0ca6120f0c5a0d0b097c0f0d0bb3110e0c740e0c0a760f0d0b9e110e0c920f0d0a660d0b08960f0d0a5b0c0a08540b0907970e0c0a791c0d06881f0f07871f0e077a1a0c0668180b0559180a044617090470261006460d05024f0d0501350c04013a0b04014b170b057920100958160a04451107023b0d05012b0e05012a100602150602016e20191075231b115c261f1466241d136f211b125f261e125e2920145f2921146b2a211546221a11331c160d612821155d271f13612820145e28201443221b11882820166c282015662820146c2a2216692921156328201468282015692820145f271f136b231d1270251e136a241d1258221c117b261e144b1e181047100e0c95080705680706057d100e0c7f12100e880f0e0ce3282420640b0a08b8090807ba0b0a09a30d0c0abc12100ec7151310aa1513106b100e0cd91d1a175511100ec628241fe3312c26ce2e2924aa292521701714124812100f691c1a175f1816145712100f6e131110ac4e4f4f621a1a1a884f4f4fff5e5c59ff5b5a56ff5f5c58ff585755ff525150bb3a3938731f1f1d8e2221207020201f6c21211f47221f1e71242322f6262625b01b1a19e3222220732a2a2a6d2b2e2f690e0d0c4d1312106d15131160181715581d1c1a691e1e1c7221201f702726246c2928266e2a28275a232221702c2c2b9d58555477454343884a4848844a484887504e4e925856569e615e5e905e5d5b482c2c2b87717070877474747c7273767765696c3a423d358c4a443e4e1e1b186f221e1a581c1916321412101c0f0d0b70221e1a8246413ccc7c736c9c5f5a567c69635d54716862b98a7f7690736a646270696190837b739b81766e736e645ca9877b706a686159546962587d7e766ca162574da741362d70382e26422b221b7330271f7c3228205b2f251cd92f2924283b1c0b16281308373e1d0c2348200b29471f0b374e230e585d2d1439522913314b230e3759280c395b290c586830103f6c35125a763a1a50672f166a70371d5d6e341b7c753a218bff8e4d8fff91506cfd763c3129201a863b31288e3f352b833c32284c322a217d3d332b4a332b23823930289840352d803e332a61312a2384382f266f3b3029412c241e7c392e279d3f342c412e262077372e273e322820603229218d372e2594382f274f28211b8e2d251e8a2d261f4f211c1668211c167a221c15691d1812851f1912641a150f2f13100b6117140e7b18140e891a160e5a16120c40130f095b130f0a6114110b3f13100acc241e18ca080605500b0907520a0907900d0b09880d0a08640b09075d0c0907650d0b08910f0c097e0d0b086c0c0a087f0d0c09740d0b09370b09078f0f0d0a900e0c0a5e0d0b0992100d0a900e0c0a630c0b08640c0a08b9100e0b830e0c0a400c0a088b0f0d0a650e0c0aa7120f0c9c110e0b650e0c09760f0d0b9d0f0d0b830f0d0a770f0d0aa3100d0ba50f0c0a760d0b09800c0a08560b0907520b0907a10d0a087c1d0e0696201008891f0f07831a0c0655180a055d190b054516090372240f064c0d0501420c05013f0c0501271a0b0541160b044f210f06471308033c1007022e0b0401240d050128100602180603017e20191072221b1067272013672820146a281f1466292014642b2215652a2115692b22153b1f190f2d1c150c5a261e13682920145f29201457271f1358231c116e2b22166b2b2316662a2215692b2216652921156628201487272015672720147027201468231c1261271e1365271f1461251d128f271f15561e191050110f0d9406050445060504750d0c0b7f100f0d8a0f0d0c8d1513114d0d0c0b9b0c0a09af080707b20b0909bd0d0c0b920d0c0a800d0c0b9413110e8713110fd6201d19e928231eed322d27d4332d27b028242072171613420e0d0b6c1c1a18531715135b1614127519161579181513ca666665a15d5e608257585898525253ff5e5c5aff4a4645ff413d3a5f191817661d1c1c601d1c1a77201f1e922322217323222174242222aa2120205c3435356d3335366c292b2c6d1615156c161513691918164c161513691d1c1b661f1e1c431d1c1b4a0d0c0b8e2725237b2b2927792b29287c2f2f2e6f313030551d1d1c944946467355504f814846458d504e4e8d595756905f5e5c5842413e802f2e2d8e73717283707173706b6d6f70636568424b433c9e4c4541561e1b183f171513461b18162a13110f1e110f0c6d211c198043403ce0837b75a257524f8a6f6a6451776f68a38379729d7d766b65766e649382766db3887c7487766c648f7a706965696058536e645d877c746aa367594eb6493b318a42362e452d251d85362d24a43c31275531271ed32a2520273c1d0c0b28110521401c0821431d0a29491f0b3a4f250d5d552d174e532d19314824114c5f321a475f2b0e4c672f1051723a156180431e5f6d351b696e351a666c321b8e773c248fff955083ff894979ff7f43432e251e803c31299540352c9843372e6a362e269540362c4c342b237f3b31299340352d773f342b5c30272088382f27873c3229462b241d943a3028973e332a4830281f863b31284c3229226a322a2286362d24a73b32294b29221c812a231c9a2e271e4d1f1b146c1d18118f1e19127a1b17116f19150f5e18140d2f13100b6516120d8019140d911b160f7518140e47130f0a6815110b8117130d4014100ac2201c15be080705560a08066b0b0907ae0e0c09920d0b08680c0a07420b0806790d0b088c0e0c097c0d0b095f0b0907750c0b086f0d0b08310a0907920f0d0a800e0c09580c0b09b1110e0c940f0d0a680c0a086a0c0a08910e0c0a8a0e0d0a580d0b08900f0d0a6f0e0c099d100e0b95100d0b600e0c0a93100e0b93100d0b620e0c09670e0c0aaa100e0ba20f0d0a710b0a08830c0a08610b0907720b0a08a30d0a098b1e0e0789200f07791d0d0779190b0661180b055b170a0452170a0478271107550d0602430c05013d10060293150f0b3c160a03a11c140e3a0f0804380f06022c0b0401250c04012b0e0602260703017b241c117020190f62292014692a2115672b2216612c22156d2c2316762b22166a2b22153a1f190f2b1b150c5c1b17105f2921148229211556271f134e231c12632921156a2a22166b2b2216692b22166929211562261f1367271f1466261f136e271f1462221b1167271f1462261e1362241d1370251e145a1e1910420f0d0b860504035c0706057409090770100e0d7a0f0e0c7f0a0908d11b181683131210b0080707b109080882090707800b0a095a0a0a089a110f0cce151210d91a1715e9221e1aea2c27229e1e1b189d28251fbc312c269225231f6d08070650171513771c191764181614681816138132302fa4494746c9626263ae5e616292555758794a4c4d7746484753191817481b1917541c1b1a5f1d1b1b4b1c1b194c1d1b19551e1c1b67323435712f31337726272777191918741918166b1c1b19651b1a195e2725235b1919174d2d2c296d2d2b2a56282624480c0c0b8422211f792d2c2b732f2e2e783231317433323254282827783030309e6663618c504f4e86514f4f7b4f4e4d43292824886a68678e706f6e806d6d6e7968696d834d473f4e4c463f9447403c611f1b18591f1c185b1f1c19551d1a172213100e571c19158146413ddf807873a45c575385716c656980776f98887c757c776d6457796e649e8f867cb08a807881736b62917b706a736f6760717c726c858b7e78a46e5f55bc4d3e348242342c52342a238e392e26b140342a65362b22c129231e343e1f0e0b34170627451e082b48200b3a4e230d4457280f2849220e72442f241f3c201049351e133d6530154d6831104d6e3512708447205d6f351a5d6a30187e753a2187763c2289ff8f4c83ff874879ff7c425130281f7c3d322a8f42362d823f342c62352c248b43372d46342a227e3e32298a3f342c7a41352d71352c258b3f332a8d40342c482c251e78382e269b40352b66372d23863d312855312a22642f282081332a23963a31285e28221b7928211a73272018411d1811741d19128f1d19127219150f791a150f6c19150e4215110c6a19140e811a150e9d1d17106f19140e5115110b7316120b8c18140d4f16120bb4231c16c409080645090706740c0907c40f0c0a850c0a08610b09075c0a0806940d0b09930d0b098a0c0b08600b0a087a0c0a087a0d0b093f0a09069b0f0d0a860c0b08610c0b08b2100e0b900e0c0a6d0c0a08800e0b09b20f0d0a860e0c095d0c0a088d0e0c0a640d0b09930f0d0ba5100d0b620d0b0993100d0baa100e0b800e0c09660e0c0ac10f0d0ba60e0c0a670b0907910d0b08560a0807620a0807980c0a087c1d0d068a1f0e077e1d0d066b180b0566170a0579180b0570170a0473230f05480d05014f0c05016719100a480904012f160a03ad1c140d311107033b1006022e0a04012b0c0501330d0702340a06017c251d12761f180f69291f13652a2114662a2114632a20146a2b2215652a2115682a2115391e180e281b150c5319150e61292114672b22155e28201450231c116529201462282014662921156728211568282015692820146b27201463251e136b251e13692019106c271f1468271f1461271f1471261e144f1e1810440e0d0a770404034c0605047d070605790f0e0d73100f0d830e0d0bae1311105411100e9b080706a9080706aa090807a10a0807b40d0c0bac0d0c0bc513110fd4171412e31c19168a1a1715a9282520d5312d28ce322f29aa2c2824711715137619171593181514811c1a18761c19177e23211f862c2a2899363533a3434140b04d4d4ca65152538836363745100f0f2712100f2e100f0e280d0d0c5529292a7430313272282a2969212121751e1d1d6e18171671191817771d1b1a78201f1d6f22201f681817163a1f1e1c6b2b29276c2d2d2b6e2e2e2c5d302e2c512724227c2e2d2c863331318a35343380353434863a3a3a7f3c3b3d5e3837368b4b494a7f484748603d3c397943423f8b6a6767876b6969826b6a697f67686a74554e46574c463f83433b36661e1b182e12100e3b151311311613122313110f60211d1a7b48443edb817a7399625e598a77716969817871b19389809b7e766d55766e65ae90877cb592877f6f6c645da1887d7464706760627970687f8a7f77a5706258bb5042388744372e4d342b2482392e269e3e32287e382e24cf2c2620313f200e0b36180627461f083b4d230d3855280d4056270e2a4e230d55432a1c3a362216363b1d0f4839211441622b0e456931104c763a177174391e7870361d7b74391f7a73381f75ff7c4174ff7d436dfd773d63332b23823c312aa144392f8842372d68372e259a473b3051322a22813d32299a42372e8141372e71352e25873e342b9944392f56332a228f3b31299742362c67372e24833b30284a30261f613028218e332b238f362d245f251f198b2721199a262018441a1610821b1710941d18115e16130d851c17105e18140e3914110c6518140e821a150ea11d18106f1a150e4c15110b6916110b7d18130d5b16120cbe221c16a8080705420907056a0b09078e0d0a087d0b09076e0a0906610a0806840c0b08890c0a087e0c0a08710b0907840c0a086c0c0a084c0b0907a70f0c0a840d0b095c0b0a08a40f0d0a890d0b09780c0a08820d0b09950e0c09890d0b09550c0a08870e0b09510b0908bc100d0ba10e0c0a530c0a08830e0c099e0f0c0a7d0c0a08640c0a089f0e0c09a10d0b096d0a0907900c0a08610a0807780a0907b90c0a087d1d0e0780200e07771e0d0663180b055f170a045a1609044b15090477281106590e060245170d07330f06021d0a04012c150a035c190f083b13080344100702340f080234100a02300f06021e06030178211a10812019106f2c2315712c2315692d2315642a2114632921146a2b22156a2a22154d251d1258261e134018130c682a22156f2c231572241e134a211b106d271f13682921156529211570292115682921156227201468271f1363251e1365231c12601d170f61251c1260261d1360251d1383251e14581c170f47100e0c650404033d0505037e060604760e0d0b7911100e7a100f0d80100f0ecf1513116a0b0a09a7080706b3080707b8090807b5090808b9090807bf100e0dce141110880f0e0d7d171412cd272420d234302adc332f2a8925221f4e0d0d0bbb292622841816149e282624861f1c1a7e1c1a187e1e1c1a8d23211f80252322812928268b302f2d6c1917165e12110f67363433883d3e3d5423232273141210671412106b1514136a1918177c1e1c1a811d1c1b711e1d1b7521201e79222120451b1a19692828267a31302f4825242271312f2e6f31302f7c312f2e80312f2d491d1c1b8131302e7e30302f7d35343485393839873d3c3d86444243884a484a734745473824211f805f5d5d80605d5d7562606072656364975f595678635b555749423b76423a365a1b18152d141210571e1a17501d1a17231412106c201c1a7e45403bdf8179728e5c5752746e68605d7d766ca78c83799779706a5672686192898176ab8e837b7c7269619f8c7f7772746a63727c726b9b8a7d73a9706158974b3f368e44382f4a342a238d3b3027a241342a7a362c21df342d272e41200e0e3c1a07334c230a51582c10505c2f103e56270f3e4f26114935271d19291a0f3845200f25441f0e62482d1e466e3311627e411c6e72371b7570351d7e763b207d783b2073ff773f6afe763d76fb763c59332a227d3c32299443382ea146393070392f268743362e5e382e268c3e332a9441362d7b40352c6a352d267f3d332aa8483c3157342b2377382f279941352c5f352c237f392f26392c241d742d251f8c2e261f772d261e54211c1582221c1596211c154218130e7119150f8b1c17117218140e811c17106c1a150f4515110c7518140d861b150e811c170f6d1a150d4b15110b7217120b7f18140d5315110bd2241d173a080705470907056c0a08068c0d0a08950b09076b090806570a0705830c0a07840c0a087b0b09085f0b0907790b0a076a0c0a08450a08069d0e0c09820c0b085b0b0907aa0f0d0a8f0e0b095e0c0a086e0d0a08a90e0c09840c0b08400a09077f0d0b08510b0908b90f0c0a9f0e0c0a550c0a087e0d0b099f0e0c0a840b0a08680c0a08b30e0c0a9e0d0a08640907068e0b09085e090806570907068b0a0807831e0e07842110086a1e0d0671190b056416090452150903591509037d3a190a55160a0449180c06240a04011b0a040133170a03b71e140e3d12080339110b02270903012c0c0501310f060227070301681f180f7f1f1810762d2415712c23156f2a22156d2b21146e2c22156c2b2215702a22156f2a211569271f142a1310096e2921147d292215642720144c211a107029211473292115612820145b271f147626201568261f145f261e134b1f180f51221b11641e170f68231c1265241d12471c160e71251d1364241d12440e0c0a3a0504036d070604800706059c090806740f0e0c710f0e0c860f0e0c930f0e0d681d1a179f090806a2080706ad080707b9080807a9080706ad0e0d0c671311107c110f0db113110fe11e1b18d82b2722d1302c2659151311ed35302bc92f2b27ad2b28259728252268191715a2110f0e861f1c1a8d1e1b19731b1a177b1d1b19701918166818161563110f0e701f1d1b651d1a19541614127417151466181614721917167b1b1918701b1a197b201e1c741c1b19541313136621201e75302f2d7c3433317b363433803b3a38622d2c2b713331307c2c2b2a7a2a2b2b752a2a2a4921201f7e2e2e2c8433333289383738863939398b414141824040414a2f2f2d7e403e3c7359575784615f5f87636161725b5c5d965b534c685e554e524c463f223531295a1a1714331513113d1614123c1a16141f110f0e79221f1b6a3d3733cc79726ab579706877716b65577a7269a3898178a27a716b59766c66a9968d85a890857a6d6e655d9f8d8077737269625873696372867870c178695e9e4b3f368344383050332921813b3027a142352a71342a202d2a1b103d4e260f0e3c19073451270a455b2f1034572b0d3c5d2d0f384d26103d39231732291d154244200f3a4121112b441f0d47642f146d82431d7973371d7470351d7776391f877b3e247eff7e4366fc763d70fa723a57302820783b30289442372d8741362d66362d258a43382f59372e26843e332b9342362e7d41352d6f382e27823e342b7a42372d4d352b238b3c3329953e342b492f261f78362d243b2a231c7329221b882b231b7b2c241c511e19127e1d19129f1f1a134618140e801c1810881c18105816120d841b17106c19150f3313100b5e18130d991c170f881c170f6d1a150e5215110b6817120c821a150e4b14100a7a1915114a08070557090705580a08067b0b0907820b09076b0908064e0807057b0b09077a0b0a077f0b0907540b0907670b0907720b0a08520b09079d0e0c098d0d0b096a0b0908890e0c099b0d0b09660c0a08760c0a08af0e0c09750c0a08470a0906910d0b09620a0907ba0e0c09920d0b09640b09078c0d0b09ac0e0c097b0c0a08560b0908b20d0b099c0c0a086b0908068c0a0907640a08064a0807058c0a0806671d0c0677210f0772200e0772190b055e15090466160a044d180a042a1b0c055a120a062f0c0501220b0501250b040135170b0432170f022d130b022c0f0602250903012b0c05012c0f0602280703016b20180f6620180f71231c137a261e1380261f1495261f148a29211571282015742920156c2820146a2820153416120b6d211a106d261f14541f191049201a1072261f156c28201563271f1461261f1365261f1364251e125d251d13501f191054221c115f1f191061221c125a221b1277211b138928201561231b12400e0d0b470605037008060596090705840908067e0e0c0b7d12100e73100f0d850b0a089a14110f440b0a09960807069b070706a1080706af0807075f110f0eb813110fb30d0c0bc00f0d0cc5151311d01f1b188f201d1acd2e2a25e936322dcf332e2ab9312d2971211e1d8925211f9323201e6a1a181693151412931e1b1989201d1b821c1a186d1816145d151312671c1a18651a18174612100f731a18167c1c1a18781d1c1a701818176c0d0e0e5d24221f63272524682625236025242269302f2c893836348b3d3b3a8c413f3e733a3835662d2c298b2d2b2974262626742627276d2627264b21201f6e2c2b2b7932313281363637843b3b3b6b3838395e2827258b585555805b5858825b58597f5d5b5c634e49459259524b89665d5666544d4532413b33561613113b1613114f1b1815541f1b192313111076231e1b6b3f3a35b9766e669d78736b856d686167827873b2918880937b746d4d706861aa918980a88c837a7371685e9c877d74777a71694e6f675e7784786bbc77695db04d41387442372f51362b24863b3128a03f332976392d22342d1e123d4e270f0d3d1907344b220a39592c0e3b5c2d0e456433122f51280f3747231222351b0e3549200d42432312364e2510504b2d1e4fa1522d44662e156d70351c7476391e857c3d2271fc733d7aff7c4277fd7a3c532f261e713a2e279c44362e7840352c58342b239943372f66382f28863d332b9f4439308941362e5b362d258e41362d8b45393050342b248f3e332a853c32285030281f8b382f264926211974251f1981251f18a329221a5d1d18128e1e1912951f1a123b17140e801b1710881c18105d18130d851c1710721b17102c13100b6018140d951c170f941c17106319140d5117120c6d17130c7e18140d5b17120c8d17130f3708060450090805510a0806bd0d0b09870b0907690907054d0907056b0a09078c0c0a08750b0a085d0b0907560b0907600b0a08470a0806af0e0c0a830d0b096c0b0a08970f0d0a950d0b09660b0a085b0b0a07a80d0b09810d0b09540a09077d0c0a08500a0907cb0e0c0a9e0c0b08610a09079e0c0a088e0c0a08820b0a08610b09079a0c0a08910b09075f090705950b09076209080656090706990908066e200f077a2310085a1f0e0660180b055e160a044117090322241107691f1109780a06042c0c0501210a04011e0b05013b322106521a0e0833100703250e05022e090401300c05012c0f0602360f0b0595201911881f180f6f251d1268241d126c251e1370261f1371261f1477271f14752820156a2820156a292015361a150d2616110a2318120b2a17120b351a140d6219140d59231c123f2922183829221b382821193127211a41241f175e211c1264231d1264231c1364231c1365231c126f231b1385272015551f18103c0d0c0a6b0605046c0706049d0907067f09080687090806580e0d0b2f0b0a086c0d0c0a80060504c1302a265c0b0a0990080706a312100f5209070791080706b30a0908bf0c0a09b40c0a09ba110f0d8912100f8e1d1a18e82c2823d8332e2ad837322d7f24211e7823201e9c2d2826a2302b29942c28257e24221f73201e1a880b0a0959050504720d0b0b801412115b1816146a1615135c1816156e0b0a095b1413125011100e641d1b197a1d1c1b892e2c29852f2d2b9b35323058252422813d3b378a3e3c3a92403d3c8f3835349432302f5d32302e69211f1e922827278226262678242425742625255a2424225e2525246c2f2f2f673332333421201e8b53535487575455544a48452d3c393472545556695950498959534d655a534c534d463e7c443e384d12100f250f0d0c3d151211391714122313110f641f1b197d463f38a9716a61b27a746c8269655e7b7a736c99867b75a180787153716962958a80799d887c766a6a6259a990857d797c736a57786e658580756db778685dac51433a6a41363052372d268d3e332a963d322863352a20622e1f153d4d260f0e3d1a0724461f083454280e3359280d3d613010364923103543241419381b0d3f50230d3254230c2f52250f4c4a2a1b428c441e516738205a5f2d15656e331a837b3d2278ff7d4167fe7a3e61f47036482d251d7f3b30289042362d8443372e4f332b24803e332c5c372e25953e342c974438308d42372e65372e268c42362e8945392f44352b238a3d322a8941352b62332b2178332a2138261f1880251f188b251f179e261f176b1a150f7d1c17109c201b144018140d731b16107e1b17105b17130d901e1912731c17103214110b6817130d911d1710921e18115a18140d5317130c7117140d7a17130d4715110b891f1914b30c0a074508070549090806900c0a087c0b0907700a080657090705750b0a089c0d0b097f0c0a08560a0907620b0a084d0a090734090806a20e0c0a880d0b09610b0a08ae0f0e0b980e0c0a710c0b09440a0806a80e0c0a720b0a083f080706770c0a08530a0907be0e0c0aa90d0b09620a0907950b0a088b0b0a087c0b09075d0a08079a0c0a08950b0a08500806057009080653090706430806057e08070673221008712310076d2311085d190b0550160904641e1009321f0e0541200f063e0d0602320e0602250a05012a0e0703262114036a1c0f09330d0703310e060230090401330c050138100a03370d09056a1d170f741e180f72241d126a241d1264241d1269251d1268241d1275261e136e2820146627201471292015301b150d2f1d160d331d170e4b1c170e3d1c170e301b150d57241c122b2b241d2b2a241d2c27211a2b26211b40251f1765221c136b241e13681f18105f231c125f231b1163221b1295261f154c1d170e4c0f0d0b680504035b070604830807057008070678090706850b0a08360b0a09680f0e0c740b0a0986070606851c191668100e0d3309080762070605950a0908ac0b0a09a80b0a09b40c0b0a9a0c0b0a62191715cf1d1917e01d1a17d127231fe5322d29a42622208d292521dc39332fa5312d29b4322e2a962825225d1e1c188129262288252320831f1c1a521715138814131189211e1b6d1e1c199323211e942b2825952c292682292724852d2a2795322f2c8635312f903a37339d3f3c386a272624693432308932302f87252424891e1d1ca31c1c1c431a1a19731717188c212121742323247b2625257c242525742625235a26252234242423773f3e3c83504f4e754f4f4f32433f3d524e4c4aac47403b855951488a5b544e5f57504a4a443f3889443c384b100e0c200e0c0b3b151211581d19161d110f0e59201c197d433e39a86d645b955b544c8768635d78746d68948077709b7e766e536e665f948a7e78a48980775d625b527f7971666671675e497067606a7d726aba77695ea94c41388943393249332b25903c32299b3e342a5731281ea93c2b1f3b4e270f103a19091e411b081e481f0a3a59280e365a290e25481f0c2e462110412f2016723e281c2754220c59432a1d634c2f2166975d3f376734194a82421c5b8e45235670331980ff824468ff7c3f70ff7c3e512e27209040352c9e4639307d40352b58352d2568382f28473129218d3e342ca2463b328440362e7739302992443a3194463c32352d251f923f342c843b31284c2b241d732f28203f251f187b221d1799231e16a1221d166919150f7a1c181199201b144117140e731b1610861d18115116130c6d1a160f6219150f2913100b5916130d931b17108f1c18106719150f4915120c7517130d8019140e4014100ac5332b24a707060437080605500a0806b60d0b09660a0806710a090755090806640b0907880c0a08670b0908570a09074c0a0907440a0907220807067d0d0b0a840d0b0a530b0a08960e0d0b8d0e0c0a680b0a08620a09079d0d0c0a4a0908072c0807067d0c0b095e0b0908a00e0c0a8c0c0a094e0a0907690a0907870b0a086f0a09085e0908077e0a0907910b0908520706056d0908064e0807054707060580090706701f0f0859210f065b2310075f180b069e231710331d0d042c1d0d043f211205351f1504341d1204261a10032f0d070228160a023e140b06380f0703260e050139160e021c0904011d0d0501310b07035a1f180f78231b116a241d1267231c1168241d1269251e1267251d1269261e1269271f1463271f1369271f142a18130c301b160d381c160d7e1e19113d1d170e2c1a140c5d251d132c2a241d2e2a241d2c29241c2e28231b4926201861221c1265251d136e211b1068221c1261211a1167211b116f2820144a1e180f3a0d0b0a7b0605043f0705044a0706046f0807057a080705910908067b0e0d0b7912110f730f0e0c850a0908a30807064b171513510d0c0a88090807a80a09089c0a0908a70b0a09940a090859131210ba110f0dcd100e0ccb110f0dcd1614116f13120f821b1816ff37322ddd38322ec136312ddb3a342f902825217825231fa12a2823a82a27238e272421531e1c1aad2a2622c22c28247c201c1a9725221fba35302c9d312e2b682624226f2f2c29ad3c3935953a37349e3e3a37b848433f66292726a4323030791c1c1b801b1a1a84181717831414159c3e3d3f7c2a292a7219191a811d1d1d8222222274252526612726241e1d1c1a7a322f2d804746457a4b4a4c754b4b4b74505050634848475b403c3641423c365c4b453f504d47413b3e383289433c38380b0a09360d0c0a49110f0d4f1713121f12100e65211e1b6d403b359b675e5790544d477166635b4f6f6963998379738f7a726b51665e597c7d756da889807763675d56827d756c646e655d506c635a7180736caa73665ba651453d8543393256342c25883c322971362d246e32281fbb3b2c223d4824100e411c091b421c081549200b295a290e2a5b280d335c2a10314723111236180a3b4b24103c5b280e3f592910614b2f2042b1592a376e34163a763617467d452876bb754f6eda703b57ed753a59fe7d3a3e412e23803a3128823c3129803c332a4630282257372d25322e261f723a312a97423930723e352d6a362e278c42393097433931482e28218e3f362c55332b2236271f197f3129214a231e1770231d17821e191377211d154c1a16107d1e19128b201b144616130d5f1916108b1d19124f17130d6e1a17105e19150f2c13100b5d18140e891b17108b1d19116318140e5116120c6e17130d5b16120c4914100ac9261f19650807055a0806055f090806700a0907720a09076a090807700a0807690b0907600b0907540a0907540a0907480a0806420a0806640b0a07680b0a08790b0a08630b0a086d0c0b09660c0a08530b09075b0b0a07590b09075b0b0907590b0907670b0a08650b0a08660b0a08620b0908650b09086e0b0907650a0907640a09076f0a08077a0a09076c0a080768090806650907066b0907067309070661140c07681f140d402111093b211008821c130d26150a04341c0e042f2015033b1f10053f0c06033b0c050142221705330b050136170a0243150c0630191003270e07012d0904012a0a0401260f0602320c08044e1b150d7d211a1165211b11441a160d3b1b150c68241c1262231c1169251d126a251d1368271f1369282014301a140c2b1a140c2e1c160d751d17103f1d170e361b150d5d251d13552821185128211758271f1558251e145a211b11401c170f3717130c53201a1053221a10491e170e55241c1171241d12461b160d3f0d0b09890706047c080605770807057e0807057e080705870807068d090806740f0e0d6f100f0e700e0d0c4b0b0b09600e0d0bb01816135d0f0e0c990a0908910a0908960908074c0d0c0aac0e0c0ac70d0b09cd0d0c0abc0d0c0aa80c0a08c50e0d0a96110f0de51a1614ec1f1b19f92c2723fb38322c591b18165a1c1916ec3a342ddd37322cc2312d297725221ec3322d29d0322e298d2a2623952c2925d1423c37ae3934319434312ec747423db13f3b36ae3c3836a936333295252323931d1d1d700d0d0d901b1b1a7f1515157a13141479121313741313149926252553161617651717177d1d1d1e6c1f2020361f1f1f6a3634335a2e2b2970403f3f744e4d4f6c464748724f5153773e3a347647423a7247413a6147423b72504a4376534e478a413d38420a0908260b0a0830100e0c5a1b171420120f0d70231f1b76423c36b1665e569d5851497a746c63837c736a77776d6479796f67827d756c8d81786e7f7d736a7c7b716771796e647a7c71697f7a71687e776d637c5f544a6339302961352d26592c241f5830282071312920732f261ed83a30284049220e14491f0929441d09244e220c2d56260e305b280e34632e113a5a2a14133b19093054230c2d5b270d3e5c2a11355a2a1351964e2a3b69321422642d1045572f1a8f8558407b95654b44ed834c48fa8c4f47f9ac6c6c3229215b2f271f5c3028204e2d261f452b241e652f27206630292277332b25612f282167322b2461352d244e312a2251322a2250312921502f271e512b241c57262019541f1a14561c1812531a1610541a16105b1b1610541a15105419150f5c1915106218150f5b18150f5717140e5218130d5617130e5d16130d5815120d5d17140d5416120d5215120c4b13100b4514100b5513100b5913100ac61f1a143f0706048003020152030200590302005a030200480302005704020061030200c00202018103020162030200520302008b03020175030200760302005603020089030201530302005e0302015e0302004a0302005b04020066030201c5020201870302015f030200520302008a0302016e0302017c0302015a03020089030201580302005e030200610302004a0302005e0402005e030200cc0302016c110a053a261207422513076920130b391f1007332e1f06331c10033a1d0e054e241207460c07034c0c0501421a12043a231706361b100547171004321007033a0f06022c070301310a04013d0e07025f0c0a06451a140c68221b116b221b1162221b1167231c116a221b1168231c1169241c1167231c1166261f1369271f142b19140c2019130b2a1a150d2f1c170e401c170f2816120b26130f095e1d170f6f1e18106d251d13631d170f5f1b160e501c170e42221b114f1d180f3419140d2c19140c441e180e76282014401a150d380c0a08530504034305040364060504590605045c0605044e06050454060504640807068112100e3f0d0d0b640e0d0c750908077a0a0908b21513115c0d0d0c7a0d0c09500d0b0a98141110ac0c0a09c10d0b09c10d0c09c50d0c0a5e07060565080706cc100e0cde100e0cd3110e0dd6161411e625211c661715137323201ce237312bea38322df03a342f992d2824cd37322ddc3a342fc13c362f6f201c1ad2433d37b838332fc13f3b36a332302d942a27259d24222184141313851312127f131212550c0c0c84121213641010116c0f101078111212761313147a1a1b1ba94240404a1a1a1b5c1f1f20381c1d1d77393a3a803d3c3b773e3c3b75393735662726256e5353544a2d2a264e302e295733302b5b33302a5438342f5c3a36313f3c37326838332d3d070605260908062a0d0c0a3613100e21110f0d64201c1885433e38b5635b56954d484471625a536d635a54645e56507c6b635b776a625a6e665d5766635a546f686058716b625984726a606f675e5871685e578c5e524b8340362e8c3e342d723028226b3028215e2d241c8430271fe3382e263a49210d13431e092e461e093d4f250e3258270d305a290d436731154a67331a16471f0c2e56240d2e5d280d2f5c260c335d2a133f924823316830132a672e1132642d12be8365544dc1643057ff8e4b7ade916343e7824674312921632e261f672e261f70322922683129226e322b2380362e2676332c25632f292264302a2371352d2369342c2467342b2563322a225f2f271f5f2a231c6a251e18601d1812641c17125f1a17115e1a16105b1915105317130e6319150f6018140f5c17140e5416130e5e17130e6017140e6e19150f5c15120d6016130d6d19140e6417130d6b16130d5915110b5514100b49130f0a6714110bd4211c163b0605043804040343050404400504043e0504043a040403370404033b04040347050504480606054406050444060504430605043d050504410605043c05050445050504490505044505040441050404410504044005040443050504450504043d050404350404033b040403420404043c0404033d04040338040403490404033d0404033c0403033d04030335030303400403034a0403034b05040442140c062a2a14062d291306322c1d05591e1306351a0b03371a0b033e1d0d0557241208430d0702440c05014a21180760281c08391e110462170d07501008042c0e0602570a0704670b09066a0b0906580d0a074420180f7a251d136b231c115820190f62241b1162241c115c241c1160251c1178211b10521d180e3e1c160e4b211a104214100a3b130f093b140f09641e170e551d170e58231c115a231c1360211b1272231c1385342c1e8e262016cd2820169f282119451d180f351a140d381b150e5d241d127a261e134c2019103d0c0a083c0605044f070604660807056a0807057d0807066e0807068e080706660707058a09080670100f0d7412110f7e0f0d0c7d0a0908740807069a221e1b2912100e83100e0d940c0a09ac0c0a08bf0c0b09bc0c0b099e0b0a08c00d0b09870b0907ce0e0c0ac20d0b0ac80e0c0acc0e0c0acb0d0b09f3100e0bb1100e0ce3181511ee1e1a17e826221f84211c1ace332e29d62f2b26d52a27225f0b0a08d4282420ae25221ea91d1b185e0f0e0d961b19188810101083100f0f810f0e0e83100f0f730d0e0e6208080884151515770f1010771011117b1213136f1314147a1f1f1f5e1c1c1c2c1c1d1d65252525742f2f2f773a3939734240416d4241417e262320743d39346d3c37327249433c6e3d3a35704b453f7148413c7a5650495f48423b323e38314006060520080706290d0c0a431613101a0f0d0b5e1e19178c413d37bb6660598048443f2f403b3432474139414f49423a4e48412d453f382c4a423b334e463f2c453e38384d473f3148433a2d4b453d32504941344239313c322a223d2f27213327201b3628201a36251e172f231b15cf322a213f45200e11421d0a35471f094954270f3c5a280e37612c0f685a3420485e301a1f4f240e2c56230c2759250d2f622c0e4d5a2e1964a5532c4b6e34172c6b3010356d331447934f2c3cc9692c36ff853031f7783032fc793039241f1a3924201a30251f1a31241e194729231d3528221b3b27221c3c28231c3e28221c3729231d3f2b251f3b2a231e3027211c3a2b251e2e251f192c1f1a153a1c18123217140f3116130e3416130e2e14110c2f14100c3b15120e3815120d29120f0b27120f0b2e13100c27110e0a3213100b2f120f0b25110e0a2f13100b2d120f0a32120f0a31110f0a2c110e092f110e0a31110f0a26100d08c1221c15340706053607060531070605270605052806050531060605340605053c06060539070605350606052b060505310606052e0605052b0605052e06060533060505320605053306060534070605330606052b0505042f06050534060505300605053306050536060505320605052d060505300605053306050537050504330505042905040426050404310505042f0505043e05050438060505370605043c170d063a2c1b0738221604412513065d291509381a0b033b1a0b0454200f06672613084b0c06035a1c1407571a13064f140d044c140c045e120b078b120f0b88100d09610a08063f0807053a0907054c0f0c0860221a117d261e1349201a0f4f221b114c221b1190231c13982c261c9e272319d7252218f0343125e93f392c5d231d12301b150d3018130b301a140c69241e12d632281ffe43382aff433327ff463528ff44382cff473d31ff3d392aff5e5f4aff6149376c241d125f231c1160211b11601f19115c1f191051211a11410d0a09460706045e0807055e070605660806055d070605650806055a0806056008070565080705710807057a0d0c0b741311107811100f6b070606461b1a1885221f1b580c0b09940b0908ae0b0a08b70c0b09960b09086e08070656080605b60c0b09c30d0b09ce0e0c0ac50d0b0acf0e0c0a8b0a09079c0a0907d20d0b09d50d0b09e00d0a0adb0c0a0a77070505e5040303ca0a0907d10e0c0b56050403b60d0c0aa80e0c0c890c0b0a4f060605ac12110f7b0909097e0a0a0a7e0a0a0a780b0b0c800d0d0e6a0d0d0d6f0d0d0e760f0f107e101011711010116e121212621c1c1d2f141513702524214e1d1d1d7b3535367f413f40744342426a23201d6227231e57312d2752322e2944332f2a4a35312b473d38325d433d386549433d714e48414a453e3857090807420a0908320d0b0a3a120f0e1b0e0c0b68201c1987403b37c0686159884f484270615a536d6e675f8e797169816d645d55665e5682786f677c766c61565d544b7a786d6263686058586d655d8180766f8b62554d974b3e377640352f522e27217f372d2596392e258931271ed23028204345200e113f1b0830421b0849562810435b290f47662f11436b33155163341d1e4a23102b54240d2e5e270d3b622c0f395b2f174b9e4d244d72381a417637163c6f33146c9c583247cf692d48ff8b3b38f4732e3fff80326e30292378342d266b322b24512c262064342c26412b241e64312b246f372f2959362f28472f2923743a332b7b3c342d392d262058362f266e3930264626201966241f193f1d1914681e1b157c211d167d211d17631b1812701e1a147e201b144618140f611a1610631c18114315120d661c17115b1a16103315120d631916106c1916107b1e19125d1b17114e16120d6516130d7118140e5f15110bbb1e19132a070606310707063507070631070606410807062f0706062f0706062f07060632070606320706063007060632070706310706062f070606350707063307070632080706330807062f0706063b07060636070606310706063207060634070606330706062f070606350707063006060520050504230605042c060505310606053606060530060605430706062d0605052f0605053007060531100c053a271b0546321a094431180943291407542a1509411c0d04411a0c04481f0e055c25120737100a02350e07025a171005650c09056f090705690a0806760e0b08530d0b074a0908052e050403200403023d130e067b211a1067251e1299332f24fe363226ff3f3c2eff423f31ff424236ff3b3629ff3a3528ff3c392cff37312756211b11391d170e4a20190f5f241c11882a2117ff49362bff454c3cff524f3cff5b5b4cff496143ff4f5040ff474a3cff4b4937ff5e433267241d13541c170f571e18105d1f191059211b125a1f1910470d0b096f0706055c080605570807055d0807056b0907065e0807057f090806610907056d09070674090806760907066d0e0d0c7b1412114c0e0d0c7d0c0b0a920605059426221e561512109b0b0a08aa0c0a099f0b0a08a40b0908ac0c0a09b70c0b09ba0c0b09cb0d0b0ab50d0b09c20d0b0a6608070560070605a80b0a08c60c0b09d10c0a09ca0b09098a010000c6020101c6060504b406050458040303a30807079b0706067d0606055f0504047e0807076b0707077a0808087e0a0909810a0a0a740c0c0c760d0d0d690d0c0d7a101010771011116f1011115f1212122d1f1f1d7c1f1f1f7a2020205b2d2c2b5b3534336e40403f62211f1c6124211e682b282463302c286d38342f5b38332f543c373263443f39774f494382544d477a554f489b453f3b4907060533070706200a090833100e0c1f0f0d0b631f1b187a3e3832ad655d558a4f4a457e6d64598c746a607b73695e8c776d6280786d627d7d71676c73695e6870665b6a74695d73746b606e736a608e84786f78564c435e302821492c241e3c211b154c271f196e2d231b762b221acf31281f4f4b2310133e1a082f421b084657280f405b280e42612b10496f3616576c381d1c49220f6f492919325f280d295d270c476030174b9c4d254472371b487b3a184b76391858aa572b4cd96e334aff8f3c3ffe7c2e3cff81324e2b241e522c251e6d2e271f502a231d472a241d3c29231c452c251e3e28221c432b251e56312a22522f2821523029225a342c2553312a23552f28205d27221b66201c165e1e1913511e1913561e1a14541c1812601c1812571c1812601b1711591b1710571c17114c1916104b19150e4a19150f5218150f4e18150f611916105f1916105918150f4716130d38120f0a3e13100a5914110b56120f0ac01f1913370908082f0808074309080830080807320908073209080736090808340908072f09080731090807340808073208080734090807330908073109080734090808330807073e0808072e080707330807073908070737080807380808073308080738080807350807072b0706062f070706320707062e07060634070706310807063a070706360807063107070630080706340a0906312d1f052d19120535201008453c1f0b47371c0a4b2e170943281308361a0b0335190b0334291a0538160e04450c06023d0b06023b291d06410c09054b0605032a0504023c080704350504033205040327050403380c0904320c0a0769221b1061251d13ff343025ff393529ff463f34ff85ad97ff88b09dff696a69ff5c5b51ff645a4fff3f3a2d55221a1152221a1063221b1063241c11a22b2218ff533f31ff49553cff61624cff5e5f4dff539879ff585844ff585040ff504538ff573e2f65251e136f1d170f6d221c1279231d126a221b1255211a10440c0b099e0806053b0605042e05040336050503370504033a0604033d0505033d060504350504033a050503360505033a0504033e0a08077913110f730a0a097e07060588070706c22e2924450f0e0c9512100e9c0b0908aa0c0a09a70c0b09ba0e0c0ac30c0b09b00c0a09b50d0b09c40d0b098609080757070605a90b0a08bd0b0a08b40909078c060505a9040303c4040303b1050403b305040362040302a807060689060605820605057b0505057e050505610808077c0808087a0909098c0b0b0b6b0a0a0b6d0c0c0d720e0d0e740e0f0f6f0f101056121212531c1c1b83262625761c1b1b772423236e323130573a393739131211301313113718161336191614311d1a1732201d1a3625211e402925223f2c2824402e2c284934312c3f34302bac423c395005050449080706260a09072d0f0d0c23100e0c681d1a187c3a342fa86158527c4a47407b6b655d95746b638a736b61646c635a5f6b62595e6a6259626c645b646d645c5b6b635a6a786d62586c655a6070685e675a5147754239307541372e6032292266342a227c342b227830271ed03a322b584c2510163f1c0a313e1a073d54250e445e290f4a652e114f6d34164b5b301a1a4c220c3c4c220f385d270e2f60290e3a612e152e883d19376b3114326c2f135078391855a352284fd66d334bff953f41ff843437ff823363332c245e322b2464342d2568362e2670342d2667352e2668352e276e352f2770352e2776362f2856322c245d352e2663352e275b37302858322c235b2a241d5e211d175a201c1558201c155b211c16631f1c15761f1b156f1d1a14501c18124c1b17114b1a16114e1a1711501a16114b191610551c1811471916104f1a17114d191610561a1711561a17104917130d4c17130d5e17140e5e17130dc41e1a14320a0909310b09082f0a0908310a0908330b0a09340a0a09300a09082e0a0908310a0908330a0909330a0909350a0909350a0909350a090934090808360908082d08080833090808340908083309080834090808330908082e0908083409080834090807310908072a0807072c0807072e080707320908073c08080735090807300908072e090807310a09072a2619043c19130631090807330a09084527160c47391d0b41351b0a522d160953231207351c0d04351e1304491a0e07641e120b8f14110e8c0f0d0b3a2f2106400e0b064b0706042f040403330504043406050439050403280807052d0c090430100c066d251d126c251f13ff383829ff454c36ff6a715aff828c73ff7c7d66ff757464ff625f52ff514a3dff3432275d221b12431c160f7014100a4b1e170e962b2118ff55382cff493f34ff514234ff4e4034ff4c4031ff483f31e3473e2ec23830235920191065261e134b1a140d511e180f501f19106e241d13502019103d0b0a087607050438070604510806054c08070565090706760908067809080677090806670907062f07060466080705540806046f0a09076e100f0d6a110f0e720d0c0a770908078a0807069a17151374201c1959090806920c0a089a0b0a08a40c0a09c20c0b09a90c0b09a40c0b09b10c0b0974090806a40b0a08b10b0a08ba0b0a08ac0a09087e080806c1070706b704040395040303a70404045b0403039a0504049b050504830505047f06050558040404640606067a080808820a0909870a0b0b7e0a0a0b710a0a0b700d0d0d530d0d0d331313128629292877181918711e1e1e6f222221773432326d3938377b3d3c3a8722211e541b19187f2927247b23221f682d29256d2b2725823f3935933e3936583f39358147413d664b464055403a35953c36334f0504042e060504270a0908280e0d0a1d0f0d0c7c1e1a17803b3531c0605b5736403b352c3c37322b453f393249413a384741392f453f38454f4a4245524c45464f474048514c44414e4840404f4a4044514c434a47403852372f283b312921452b231e522a231c5627201a5e221c17a32c1d144b4b220f16411c0a33401a084b56271048602a0f47652e10506c34165161331b1c53240d274e1f0a345b270e2b5c270e3c5c2d1730853f1c2c622b122c6b2e1148743516439e4f243ed0662b51ff8f3c47ff853644fe80314627221c3b25211b3926211b32241f1a3726201c2d231e193926201c4026211c4226221d3926211c4026221c4728231d3426201b3e28241e3625201a291d18133018150f3215120e2c15120d3014120d2814110d2915120e2c15120d3214120d2c120f0b3e14120d3c15120d3914110d4014110d3b14110d3412100c3c14110d3d15120d3f15120d2e14110c3a13100b44130f0b4612100b4a120f0aa21814102d0b0a0a2c0b0a0a330c0b0a310b0b0a2e0c0a09310b0b0a340b0a0a380b0b0a370b0b0a330b0b0a330b0b0a340b0a093b0b0a0a410b0a0a370b0a0a330b0a0a380b0a0a360b0a0a340a0a09360a0a09340a0a09320a0a09300a09092c0909082d0a09082e0a0908310a0a082e090908380a0a09390a0909290908082f0a09082e0a09083b1f17062b2117032f0f0c082d0a0908340a0a085f1c19144929190f3e2f1709452c15084b281408481d12055c130f09621714105715120e8d1c1813a01915109b0f0d0a392f2007470d0a0634070605310706053007060531110c04260807053c0b0802220d0903330f0b0668231c1259201a10ff363429ff454736ff474634ffa4848aff755e61ff4e483bff4a4337ff413c2fff34312753221a119118130cff18131058221b116a231c1293221c14a42f271b89211b1076231c124d211a104d17120b6f2019107228201362251d124820190f3816110a3f16110a4f110e08630f0b07400b0805430d0b096b0605045e0807056608070670090806720908066e0a08067b090706670a080782090806720807058d0908066d0907069b0a090737070605720f0e0c6a0f0e0c490c0a09720a0a08880807066808070696221f1c6b1c1a185816131196151311b40d0b0aa00c0a09a50c0a099a0b0a08a60c0a09b10c0a09ae0b0a08b50b0a08a80a0907730808068e060605b4040403a5050404a30505045e0403039a0504049b05050490050504830606055c06060678070707770707077b080808720a0a0a7d0a0b0b510a0a0b38191816792a2826841b1a197a1918186e1d1d1c511f1f1d3d19181777373533892826267516141378201f1c571b19177d2926247122201e632b27247e2e2a288b3c3834953b3733603c38348d48423d6f4e4741583e3934933c37344a060505450807063b0c0a08200c0b0a190c0b0a6b1c19168b3d3733c0605954a6736c636c5e5a524e6e655b937b706a816a615a475a534a7b766d64a087796f64655d51947a736a7b6e665e566e655e787b726b99635a50a1463d3569322b25602f272380332a24953329216c282019942a1b12514b240f14371a0c333e1a074154240d495f2a0f42602b10426830134b602f181a53240e344f200b2e54210c35592710595a321e398b411d2d612b1230652b113a703113409d4d2538ce632948ff88363dff7a2e3cfb7d306b322a2367332a24572c2721472a26205a322c252e2a241e53302a2464332c264c2b251f432c26207e38302a7a3630294a2d2721873b332d7a3a32294327201a7b28221b301a1711611e1a1484221e1767211d164d1e1a1477201c16781f1b153c17140e5e1c18127c211c15541a1711781e1a146f1e1a14311815105f1c1813711d19137d1e1a144d1b16115117130e6216130e6f17130e4221180b4c34250b3b0c0c0c3e0d0c0b430d0d0c4b0e0d0c430d0c0c3e0c0c0b3d0d0c0c420d0c0b370c0b0a3a0c0b0a450e0d0c340c0b0b3d0c0c0b410c0b0b3f0c0b0b440d0c0b4b0d0c0c420c0b0b3f0c0b0b3b0b0b0a3d0c0b0a3d0b0b0a3f0c0b0a3e0b0b0a370c0a0a360b0a09400d0c0a3b0d0c0b3c0b0b0a3e0c0b0a3f0b0b0a390c0a0a3854390a3d100d09420c0b0a4a0c0b0b470c0b0b3d0b0b0a822f2822b4342e27a129231d962d251a44160f0475201b17681c18134613100d59130f0c6b17130e9116130f790c0b092c221704430e0c073e0908073c090807290a0a082608070626070501150403014f080603370a07046e241d13531f1911ff39362bff444939ff464432ff504938fd484331f93a372ba43f3a2944130e093a18130c551f180e632019115220191058201911741d170e4a1f180f71261e1382241d1289201a10771b150e7b17120b69110d096e0d0b06560907043b0b0906380b0805480f0c083b140f0b72261f135b1c160d440c0b0963060504550807058e0a0807850b0907800a08077d0b09078f090807800a08077d090806800907068909080654090706910a08062f0606048d0908066f0d0c0b4c0c0b0825090806770f0e0c740b0a088308070681070606bc2b27238b201e1b390b0a08810d0b0a9c0d0b09a40c0a09a30c0a09a50c0a09990b09089a0909079a0909076105050470050404b6050504a3060505900505046204030396060505a306060598060505850606067e0706077206060676070707680a0a0a4d0f0e0e480f0e0e80292725831b1a19881a1919721b1b1a7521201f702b2a28531f1d1b4f34302e8121201f7417161356151413861e1d1b6b191816902826247d211f1d622926236c2a25226734302c91383330793f3a369646403c744b45407e443e39a8423b3745060505380706052d0a0907180b0a08240e0c0a621f1c1981393532c6605c55b35f584f5f5c574f4b655e57a27970688f6c635d58635a53ae847b728a766d6575675f55a17c756b7e6f665f7e756c6566786f669b665b5393443b3465332c266a312a2477312921a1332a2266281f19d9322c27494d240f18341f113c411b084455260f395a280d3f602a0f3e642e125465321a215b290f2e4b1f0b3058230c3a5c28103b5e2e152e87401c306830132260280f386d3114409e4d2444d4682c41ff8b3243ff7a3338fd7c2e78332d2681352f2980362f28492a251f70352e2846322b24843a322a8b3a332c56332c26582f29249239332c8a3a332c4c2d28227f39322c8e3c332d5f2a241f8829231d361d1913641f1b1584221e1758201d16471c191380201d1684211c16491a1611801e1b146d1e1a14631c181283201c16701f1b154b1a1712551d1913721e1a14701f1a14471a17115817130e5b15120d7416130e3d4d340cf52d26206d654e1c497154153f7f5b143a8a6113547e58172e6d4914457553184c76541865694d1b3e74521239704e124473521443725114586548173a6545125b6f4f164b755213566d4d153e66481267664919585d42174c634612405b401041593c0d40412d0c46362508331c1408320d0b0a290c0b0a250b0a092e0c0b0a54241c0e34171007310c0b0a310c0b0a350c0b0a330c0b0a651e1a14bc39332cb7312b252f2a1c05bb2d28228427231d9228241e6b1d19146a13100c600d0b0a370a0908370a0908360b0a082b160f0235100c0843171109240a09072a100b05110b0702150705012907040244070401420e0b067a2b23177129211574453d2d531f191054231d135a241e14521f1910471d170e421f180e5e221c115b211a105815100b5e1d170f4216110b60110d096f100d08730d0a075e0d0a06660b080636100b08380f0b083f110d093d100c093b100c094b150f0a41120d0939110c094b140f0b38140f0a66241d12521c160e430c0a088b080605580907068b0a0807a30a09087d0908068f0a0907860908067e0a08078e0908076b080705840908065f0807069d090806340706049c0a08073707060482090806780f0e0c8412100e78110f0d72100f0d7d0d0b0a810808077e090808970b0a09bf2d2925581b1916431311108f1a1815a51916139c12100e8e0a090891090807470505046e060605960606058d0605057e0b0a08610707058207070687060505900706057f0a0909650807073d0d0c0b3f1412106a1b19188821201e7511100f73151413751b1a19741f1e1e79272725712c2a297e2d2a297623222099181615630f0d0c8a1a18176f1513127b1d1c19701918168c26242282221f1d802c28267f2a27247b39322e9f3c363372403b3787423d39764b4540574039358f3a34314005050445070605430b09082e0e0c0a260f0d0b63211c1a893a3632c3605c55994e4a446b5f58514c635b54a37a706a8e675f595f645c56977b71699c796f6970625c54b4857d7358665c544a675e557d736d64a6655c53a9463c3569342d27502d262081302821a1302720bd2d261ed839322d4d4d240e1d321b0e36431c0852562911545e2b104a622d11476b32153d5f2e151b53240b434c210f2c56230b3259250f415d2f184f8547284c69341b27632b10316b2e1138974a2248d86f3242ff84323afa722d34fa7a2f72312a2483332d2778342d274129231e70332c26482d27217c37312a8a37302a7e352f2a712e282475322d2782362f2a4329231e8237312b7d3630284426211b7725201a3c1a17116c1d1a1485201c165d201b154c1d191382211d1781201c164e1b1812761f1b157b211c16551a17128f231e18501f1a142a1a16105c1a1611771b1712781f1a144a1b17114114100b64100d087016130d61281c0bba231e1938100e0d340e0d0d320e0d0d350e0d0d310e0d0c330e0d0c76221908320d0d0c340e0d0d350f0e0d330e0d0d320e0d0d340e0d0d330e0d0c300e0d0c340e0d0c2f0e0d0c300d0d0c2d0d0c0b2e0d0c0b310e0d0c340e0d0c2f0e0c0b3c0e0d0c310e0d0c31110e0b30150e059c1d1509320e0d0d370f0e0d350f0e0d852f210b280d0c0b320d0c0b380e0d0c350d0c0b340c0b0b650d0a093d2c1f0b6f241d127925221c8b26231db3332e27781b181531090807310b0a09340c0a0a310b0a09300b0a09320b0a0929181003571c130660221909280e0903200806021608060244060401420603013a09040247120e097e2a2217842c24185a1d170e68241c116c261e1278211b107b1c160e6818120b6b140f09630d0a06480f0c076314100b59120e0a5718120d5617120d34100c093b110d0937100c0940120d0a3f120d0a43130e0b41120e0a42120d0a35100b0842130d0a360f0b0837100b083e110c0836120e0a62241d134d1a140d400c0b089108070547080705940a0807820a080776090806910a0907940a0807670a08077e09080744080705970a08073e0706058d0a090730060504980a0807330705048a0908077d090706810908066f0f0d0c7612100e7c12100e7b110f0e78100f0e77100f0d8512110f891b1915a01f1c19bb28242188292521591e1b19421715134113120f2412110d4d110f0d570d0c0a680a09084c1816133113100d3913110f38100f0d420c0b09741715128c221f1c7b1311107111100f7e1514127c1816157f1d1b198024222074242321752423227928262477232220691312106d12110e771816146a141310891d1a1866151412761d1b175e1917157725221f6d211e1a68272421732926236d332e2b8537322e6a3f383388433d377346403a553c36308837312d4c0605043105050433090807280d0c0a24100e0b65201d197a38342fb35c58529a4c4844765e58504e615a5299746a6487665e5853605852aa7f756d9d7b706a72615b54a680756e796a615a756d645d866d655cc3635850c0493f388138302a5e2f27228d3027219c2d251e69251e18d239312c4e4d240e113618074c401d0b4c582910525b2a0f58642e13556f35164c5f3119255e2a114e4323123357250d2f5b250d30602c1531793a1c366730142e692e12356c2f12449c4f274ed16a3039ff7f2f51ff7d332ee46c2a78312a258b342d286e312b24612f29237a372f29513029237d362f2a84352f297e342e296c302b2688352f2982362e294328231e813530296c312b243d241f1a71231f1a391a17115c1d191482201d1772211e174d1e1a1478211d177f211e18441c181382221d177d231d185e1d191386251f196d221c17421b1712621c18138a211c1687221d16561d19134f15110c6c110d086d15110c4b130f0a8b281d0f36100f0f36100f0f340f0e0d310f0e0d41100f0e230d0c0c572419063b100f0e36100f0e320f0e0d350f0e0d360f0e0e2c0e0d0c2b0e0d0c2f0f0d0c330f0e0c340f0e0d300e0e0d2f0f0e0d330f0e0d330f0e0d45100f0e2f0e0e0c33100e0d310f0e0c330f0e0c32100e0d991a13092e0f0e0d320f0e0e37100e0e6336250b330f0d0d39100e0d360f0d0d350e0d0c340c0b0a2e191203450c0b0a21090807340b0a09390b0a09360c0b0a320d0b0a340c0b0a370c0b0a2d0b0a092b0a0a092f0b0a09330c0b0968191205270c09051b150f03190f0a0313080502450b050246050201440604014e0604013e0a08055514100967100c08670d0a064108060434110e08712b2316722b2317742d2418742c2317782921157a2820144717120d4f17120e4e18110d4c16100c2a0f0b0835100c09340f0b08310f0b08300e0b0836110d0a3a120d0a39110c09330f0b083a110c0938100b0836100b0839100c0835130e0a5d231c124d18140c410b0a088707060549080705870a0806770a08076a090806660a0807860a080759090807820a080741080705940a0807550908069c0a0907430706058109080630070504830908066d090807870706059d070605c20b0908770f0d0c7b110f0d7211100e71100f0d781312107612110e7d11100e7a0f0e0c760f0e0c7d100f0d851313109317151368201e1c63161411671614127411100e6c110f0e440b0a098e100f0d83141311871715127b110f0e871512107a161411711a18156d1b191780201e1b7c21201d7d23221f6e1e1d1b7d1c1b197b110f0eab1412103f0d0c0a5113100e8d1a18156c13100f791b18155c161412751c1b18611917157523201d701e1c195d231f1d7125221f6b2e2b2784322d2a6136312d893c3733563b36314939342f7b342e294e05050444080706520c0b09310f0d0c28100e0c6e1f1b187a342f2ba356514baa514f49755c544c655b544da9746b6494675f584e5e544eaa7a706997756c656c605751a0776e666f685f58616a6159674c443cb1483f37a6453b346b362e28532b2620a3312922982a221b67221b15f03e3530504e250f113b1a0942431c094e572810545d2a1053632d115a6e3417656a381e2c652e12374c220e2b59260d325d270e2c622d1333803c1a4d75391a2e6c2f112f682d1040964c2546c562284aff843551ff7d3034e46c2b752d272288342c276e312b255b2c262172342d27452e282282362f298236302a5e322c27552c282389342e2967332c27472b26218436302a883630295b2a251f7624201a381a1713651f1a1581201d176b231f185c1c191388231f18892420193e1d181385221d1778231e18531d191380231e1865231d17331d1812521b17127e1f1b1576221d164c1d18124615110b78120d076e14100a49140f0ad4211a123511100e35100f0e2b0e0e0d290e0d0d35100f0e32100f0e4524190533100f0e35100f0e34100f0e33100f0d2e0f0e0d300f0e0d320f0f0d36100f0e36100f0f340f0f0d340f0f0e30100f0e37100f0e30100f0e32100f0e31100e0d33110f0e34100f0e2d100f0e2e100f0e551d140536110f0e39110f0f34100f0e532e1f0934110f0e2c0f0e0c2c0e0d0c352b1d0532100e0a280c0b0b310e0c0c340e0d0c340e0d0c310d0c0b330d0c0b320c0b0a340d0b0b2e0c0b0a320d0c0a2f0c0b0a340f0d0856291e0a472419071c1b1204170f0a03210b0702620a06023209050242050201420604013e0804014718140c7230281b6c342b1d762e2519782820147a2e2619752c2417692921155928201456281f1350221c11461f190f37130e0a48150f0c44150f0b4716100b280e0a082d0f0a08340f0b0934100c0836100c09300f0a0839110c09340f0b0836100b083c110c0934100b08310e0a07350e0a072c0f0b0870231c124f18130b470b0a08860806053c080705540806054f080705660907064d0807056c09070663090706790907063b0806057f090806470807054d08070519060504650807052e060504810908065f090806790706059b080705b00a09075d070605990605047e0c0b09730e0d0c7611100e7112100e79141210570e0d0b62100f0d6f1413116f1312117411100e581412115d12100f7413111078141210711513114912100f7d100e0d75110f0e75141210721413105c14131070181612851d1a177b1d1a186f1c1a187c19171688121110890a0907a80f0d0b4d0e0d0ba2151211540f0e0c5512110f701715125512100e6718161351151211651c19165718161365201e1b531c1a163e1e1a18571e1c1a52292421742e2a264a2f2a2766362f2b4b36302b3a322c2779312c284906050431070605380b0a0927100e0c230e0d0b661c19168935302db756514aa74f4a456b534a4355524b4586625952865d564f45564f47ac756b64996f65605f524d4789675e597c635a54526158516d483f38ab453d35913e362f69322a255127211d8528221c98261f1963211b14df342c26434d240e0e3b1a08473c1b0a4c57280f59602c10425a270f546a3317676d3a212c632f123053230c355d270d1f58230b3a5f2e17438d431e44793c19447434152d672d114194492351ca662e5eff903c66ff873a3df1732b6d2e28228d332d27602c2722592b26206a302a243f29241e7e322c279537312b71322c275c302925a23b332e65312b263727221d7f362f2882352e295228221d6c26201a421c17136a1e1b1588221e1860211c16551c18136f211b157f231f18381c181384221e177b241f194e1c181374221d1772221d17321c1812531b17117b1e1a1368211c15491c18134315100b60120e096614100c48130f09c21f19132e100f0e2b100f0f3411101036121110391111103211100f672419073111100f3411100f3211100e2e100f0e3111100e351111103611100f3712100f3411100f3011100f3511100f31110f0f3511100e3712100f3311100f3011100f2f10100e28100f0e29100f0e3211100f3d301f063312100f3712100f3612100f54291b0732130f0b2e1711093a150f04360f0e0d2a0e0d0c320f0e0d35100e0d390f0e0d310d0d0b350d0c0c340e0d0c300e0c0b330e0d0b300d0c0b300e0d0b34161209270b0a084223170718120d04150f0a032a110b036a0e08045a090502370805023b07030134080301390703013f1e1a1152241e145828201550221b12521e180f561c170e5d2019105c221a1054231b105e231c105d231b10401e180e39140e0a43140e0a43140e0b41140f0b260e0a08310f0b0838100c0935100c0938100b092f0e0a0740100c0979100d0a300e0a0894110d0aa00f0c09960e0b0991100d0a300f0c0869231c114f16110b460c0a081b0605033a0706052b0504032f060504250504031c0504032505040322050403270504042d060504390605042c060504320605041f05040336060504290605043a0706044d080705800a090792070605bd0b0908650706059c0606053e0706043d070604510807067b0c0b09780e0c0b410b0908310c0a087c12100e7713110f6e11100e5a1a1916671412107c14120f731412107015131160141210781614126a1513117514131138100e0c64100f0c420f0d0b7f141311550e0c0a410a0807370a0807b10a09084d080706b40e0c0b6c100f0da5151311290c0a092a0e0d0b31100e0c280f0e0c2a100f0d230f0e0c2813100e2612100e31171512291412102315131123161412211b18152a1e1b1720221f1b2e24211d2a27241f2d2a262118221e194906050431070605540d0c0a3a0f0d0c270f0d0c631d1a17792c2925ac4a46409f4c464278524b464d534c47895d564f6f554d493e4b453e976a615c8e685e594d4b443e7862595064574f4a3d5048416e473d389b403730873b332c602d272148241e1a7d28211c91251e18681f1913dc2f272131431e0b0f3d1b0a333b190851592a114e5d2a0f59622d124c6b32145a69361b1c60290e2852210a2b58220a2f63290e29642c12539448224a773919527a38184c733517639e542c8ebf764956ff923b52ff8a363eec722c6129251f792f28226a2f29223d241f1b5e2b26213a28231d79312b2591362f2a492c26214729241f712f2924602c26223d241f1b702f2a2479332d2645241f1b6e26201b2a191510651e1b167c231e1983231f194d1f1b1672211d176a211d17321b171178221e1873231e193d1b161160211c165c1f1a152218140f531c181271211c1564221d173f1915103c130f0a5a14100b69120d094c110c07c61e181134131211361312113412121030121110301211103112111058261b0629110f0e25100f0d3012100f3512110f301211102b11100f36131211351412113613111030121010351312102d12100f26110f0f28110f0f2e12100f3112111034131210381412113213110f2c11100f44332107391e160a2e11100e3212100f5d32250a4e1710054414110d2b0f0f0d2c100f0d3511100e36110f0e340f0e0d2f0f0d0c2f0f0e0c310f0e0d330f0e0c280d0c0b260d0d0b3e14110c280f0d0a250c0b0a18231805311b130512120c034c1e150636100b03360d0703400906022e0a0401310704012106040134090402481d18115b1f1a11461f191158201910571f190f501f180e5220190f55211a0f53231c1058221b0f65221b10481e180f3c14100b4414100c42140e0a5217120d270e0a08330f0b0838110c0936100b09330f0b088e0f0d0a640f0c097d0e0c092c0d0a078b0e0b09b10f0c09ba110d0a900f0c092a0e0a0763221b104f14100a4c0c0a084d0605044c060504500706044a0705044b0605044006050457070605540706053e0605043e0605043f0605042e050403400605044906050448060504500706054c070604710908066d09080690080705a30a0907620706059f070605620806056608060568080605630706055f0706055b07060565090706770b0a08740a0908720c0b095012110f63090807352030481b2a4064780908067209080666131211790d0b0b730b090976090707660908066e0908066c0908065c0907065f0a0806610a0907ab0a09075e080706ba0f0d0c6a0f0d0ba712100f68110f0d62120f0e5e110f0e6b1412105f1312106d171413671715136e19171566191715581716144e171512611c19187324211e73282421782e29257e312c29612d2824542b262261322e2a6f070605290605043e0a09082e0e0c0b2e120f0e5a1c18157f282421a3423d39a347433e6e4e48435b534c476d534c455b4e47403946403a705d544e65574f484648423c63564f46514f463f354c453d4e3d342d883c332d6e352d273b25201b32211b176a261f19662019134519140fe02c251f3745200c0b3518082e3e19084c592a10585c2a104e622e115a6231164a5f30181751220b3352230c2a5c240b2c642a0e24642d124b934921457638183e7333143a71341470aa5c306fd7703752ff8a3550ff7f3140dc692a48231f195926201b5029231d39241f1a592a252030231e1a5629241f6a2d26214128221c36231e195f2925204b27221d39211e19672e2721602c262144231e19461f1a161c1915114d1d19155f1f1a158524201a56201c165b1f1b155a211d16311a161159211c1752201b16361a1612541d19134d1f1a142118140f3f18140e63211b1550221c162c14100c28130f0a4c130f0a4a0f0b0731110d07cb1e1913351e1a122f1e1910361d1811361c1812351916103b1d170c5b261b095b32250c351b17122d1c18102b1c1810371d1911341d1812391d1912341a1610351c1811331b1810321c18102b1b1710301c1710371b17103b1d1912371d1911371b17122a1b170f2f1a160f361d181156563e114f1e170b351312103012100f54231a074015110a3612100f3d1311103411100e3211100e30100f0e2f100e0d34110f0e34110f0e32110f0d33100e0d300f0e0d50281f0b260e0c0a331d150711130d041a120c0419130d044b19110567201607390f0a03320d060226090402300b050137060200330604013f0703013f1e1a12591f1b124d201a11562119104920190f411f180e4c20190f5120190f5e20190e511f180e58221a103e1e180e32140f0a3f140f0b3f140e0a5519120d280e0a072e0e0a07340f0b08330f0b082e0d0a07a50f0c0a740f0d094d0b0906330f0b082e0e0a073a0d0a072c0d09073a120e09441a150d481e170d4d130f09240403031b040302250504031f0403021b0404022605040322050403200504032c0605031f0504031d0604033a0706041d060403200605042c0706051f0605041f070504300806051d070504220706052c08060520080605210806053a0908062108070524080705260806051e080605250907052b0907061a0806041e080605200806051c090706280b0a08270b0908230c0908270b0a08230b0907230b0908380d0b0a240b0908220b09072f0c0a09220a0908250c0a092b0c0a091f0b0907240b0a08290d0b08210c0b08250d0c092c0e0c0a230d0b09290f0d0b250d0c0a220d0c0a3b13110f230e0c0b210f0d0c2d12100d25100e0c1e0f0e0c2e13110f20100f0d2412100e341512102112100e1f12110f3e17151321131110211513112a151311211412101e1513121f0505044e0b0a085712100d2d12100e5d1b17147423201eac3a363399413e3956383430633e3b365c3f39345b413c37533f393454413b3653403b35453d3832493f38334c4039354c413a366938312c81332c266f2c26204e201c175d201b16541c1713661c161273221b168214110d50301d12162519101f38160641582b0f3656260d435b280f455d2d14495c2f191751220b4052240f295f280c2a61290e3b6931164193441f44793918337232113773341348994e225dcc672f43ff813346f8782c3fde682a451d1915501e1b17551f1b1737191613481e1915521f1b17421d19154e1f1a16511f1a16401c1814471d1916491c19163f1b1815451d19143e1c18153e1a1613511a1613501714104216130f3e16130f47171410521916124f1a1612501a171248181510491a1612491916113917140f3f15110d4017130f4216130f4714110e591915114c1a161136100e0a3e0f0c093b0f0c084d100d08430f0b07ca1c17102b46340e5b372c15393f30102f3e2d0e3434250d5d543e13684f3812482b1f0e2838290d313c2c0f393a2b0f3535270f39392a0f3a392a0e2e38290d4331260f3935280e3536290e3535270e2a37270c2a37270d4f2e25113a32270e3833260e2b38280b2b2f200d502d2311653e2c0c4c1e170a37131210461615137731240d2a110f0e3212100e3111100e3512100f3111100e3311100e2f100f0d32100f0e3d11100f35100f0e3918140d38181308230e0d0a3c1f16051b1c1405171b120526160e04590d090352160f03841a1409380f0903370d09033b0a0502390905023c070301340704015e0704023b14110c4c201b113d1f19103c20170e381f170d401f170d4b1f190e50211a0f56231b10511e160d5821190f59231c1134140f0a3b130e0a39120e0a38120d09260d09072a0d0a072f0e0a082c0e0a07260d0906270f0c083315100b401a150e461c160e2a15110a1f110d071c0c09061f0b0705290f0b0857231b1049120e0826040303260403032204030229050403250404031f0403032705040323050302270504032b060504200504031f050403240504031e0504032406050425060504210604032b06050423060504220605043208070525070605220706042f0806052307050423070605290706051f07050424080605290807051f0706042409070527090705220806052808070527080706220807052a09080625090706240807062909070620080605210807052b090807250807062509080727090807210908072a0b0907240a0807220a09072a0b0908200a0908220b0908300d0b09260c0b09220c0b0a260d0b0a1d0c0a09230e0c0a250e0c0b200e0c0a240e0d0c280f0e0c220f0e0c25100f0d28100f0d24110f0d2b1311102812100e2312100f2b1512102213110f201312102b17151224151310271512102813110e2a110f0d551916136b1f1d1a9932302c8b423d38452b2724452f2b283f322c2940312e2a3d312d2a342f29262b2c262238332d2939362f2c473b3431473a34304e2c2622421e19163d1b1714451b1713491815124e1713105115110e6d231d177d2a221b42221a13801a14102038160729471f0b3c51240c3452230d3d5b29103f582c161a52230b2854230c275d260b2663290d2e652e144a964822618545214f7f3c1941773817419d502352c9642c46ff7c3056ff7d343fd96a2d2c14110e2d14120f3416131035161311331613102e16120f31171210391814123f1a16123b19151234171210301512102d15120f2d16131032171410401814113a1512103f15120e4216130f3e14110e3814110e3814110e3515110e3513100d31110f0b2b100d0a230f0c092c110e0b30120f0c391714103816130f3b15110e3315120e2f16120e35110e0b38100d0a370d0906390c09062a0b0805c01b1711341514133a17151433161413351614132c1413122b171310572f220a2e15131231161412371513123c16151434161413371615132e1414123014131234151412351514132b1313112312100f2f1412113415131238151412331413112f13121031141211321413113514131170291d0b331311103312110f2811100f512a1d08311311103112111039141211321211103112100f2c110f0e3712110f3a12100f3312100f48211a0d2a13100c5f1b150c1b110c051a130d0513120c044d181006410c07035d0d08035c160f046b1b1308290c08023f0d06033909060242090602350805013b070301820504023b0e0c07511f1a113c1e180f1f14100a25130f092214100a401d170d52201a0f56211a0f5d1e180e4d1d170e5a201a102e130e0930110c082e110c082e120e093514100b3e19140e351b150e3116120c24110d09240f0b08290e0a07350f0b08310e0a07310e0a07300d09062f0d0907280b0806270f0b0755211a0f43100c07be0c0907bd0d0a07bd0d0a07be0d0a07be0d0a07bf0e0b08be0f0b08be0f0b09be0f0c08be0e0b08be0e0b09bf100c0abe100c0abd110d0abd110d0abf110e0abe110d09bd110d0abe130e0bbd130f0bbf140f0bbf14100cbe15100cbd15100dbd16110dbd15110dbf17120dbe17110dbe17120ebe18130ebd19130fbe18130fbf18130ebd17130ebe19140fbe19140fbf191510bf181410be181410be1a1511bd1a1411bf16110ebe191410bf1b1611be191510bd1a1511bd1b1712bf191410be1d1714be1d1814be1e1a16bd1f1a16be201b16bf211c17bd201c17be221e19be241f1abe24201ac027211cbd27221bbe241f1abe26211cbe28231ebe2b251fbf2c2621be2d2721bd2d2821bd2e2721bf2e2720be332c25bd372f28be362f29bd3a332cbe3b332dbd3f3730be3f362fbd3f3730be443c35bd463d35bf473e378b2a2522a4312d29be4b433abd4a4239be4c443cbf4d463ebe4e463ebd4d453dbe4f4740bf4f4840bf514a41bd4f483fbf413b36bd504841bf504840be4e463ebe3e362fbf221d18be1c1713be221c17c01b1612d21f19135732271d61241d1677271f19932c231d4236190a1d3b190827481e09374d25113d552b161d4d220e2452240c245823092c682c0e3b643018469447204a7d3e1b417c3a174a7d3d19799354326bd16e335cff7c3559fd7d3241d6672cbd272019be271f18be272019bd2a221bbe2d241dbe2e251ebe312820bf302820be322920be30271fbe322821be332a23be332a22bf312a22be342b23bd342b23be342b23bf332a22bf2e2720be352d25bf332a22be332b23be332b23be322a22be322a23be312921bd2a231cbd312921bf342b23be302820bd251f1abe241f195e1b171361171410ef312b2605314d7905314d7905314d7905314d794639292a35171514311615132c16141329151312271412112e161413622116072c151311371614133c1716143c1715143517151329141311271412112f1513112e1513112e1513112d15131132171412341514132e1412112f1412113114131138151413321513122c1312102412110f3b24180534141311321413103114121051261a07381412113013110f2d12100f2f13110f2e12110f3512110f3312100f3412110f3c261b08240f0d0b3f31210814201506141a120511140e0456190c0566120b05440b0603670e09034a1911056e1e14073a0f0a033c0b05022e0806023c090401730704016806040267060403450c0a056d1e190f4d1e18101c130f092c16120c391a160e391d170e311c160e3b1e170e3c1f170e481f190f411d170e471f180f2a18130c24120e0928100b081e0c0907250c0906270c0907290c09062b0d09072e0e0a072e0e0907330e0a07330e0a07350e0a07300d0907300d0906280b0805280e0a07571e180f430e0a077b050504ff110d0aff110d0aff110d0aff120d0aff130f0bff130e0aff140f0bff130f0bff14100cff140f0bff16110cff17120dff16110cff18120dff18120eff16110cff16110cff19130eff1a140eff18120eff1b1510ff1b1510ff1c1611ff1b1510ff1d1711ff1e1812ff1e1712ff1d1712ff1d1712ff1e1812ff1e1812ff1e1712ff1e1812ff1f1812ff201a14ff201a14ff1f1a14ff201a15ff201a14ff1f1914ff1d1712ff1d1712ff221c16ff221b16ff231c16ff231d17ff241e18ff231d17ff27201aff27201bff28211cff28221cff2b241eff2b241eff2c261fff2f2821ff312a23ff302922ff312b23ff342c25ff332b24ff352e26ff383028ff3b332aff3e362dff413830ff3a3129ff3c322bff433a31ff453b31ff443b33ff494138ff4c423aff50463cff4f463dff554a40ff584e44ff5c5248ff5a5047ff5c5247ff5e5449ff61554bff62574cff625649ff63584aff685c50ff6a5f55ff685e54ff6a6056ff6b6257ff6b6156ff6a6156ff5c544bff655a52ff70655bff6d6258ff72665aff473d34ff27211cff231d17ff201914ff1f19139b1c1712492a231c7030261e9528201a841b151026401d0c224c200b44562a151752220c2b4e220d2157230a26622a0d346c32165aa251255581401e3d7938154b7f3d1961a45a3181d1733a58ff80345cff7f3240de692bff332920ff342a22ff332a21ff3a3026ff3b3126ff3b3027ff3b3026ff3d3228ff42352aff41352bff3e3228ff403328ff40352aff45382eff473a30ff46392fff45392fff45392fff43382eff3f352bff41362dff483c32ff483c32ff4c4034ff453a2fff473c31ff463b30ff382e25ff43372cff392f25ff3f352dff42372dff43382eff382f26240e0c0a28100e0cff3e332a05314d7905314d793a37282a28151412301715142f17151335181715341816143016151371221808291514132f1514132e16141334171513341615133215141231161413351715122f161412331715132d1513113617151334171413321715143016151232161512351615122e1413113b15141238161512352719052e1412102e141210371412116b2519062f1412112f13111036131210341312102811100e1d100e0c2e0c0a093c130f0a230e0d0b302b1d07181912061b161005210906033f150f054b150d0494140d08560c08034c100a03451b1306572015053c0e0a022e0904014f0905028a07050366050403420604013a060401400e0b066818140c4c1c160d451e180f51211b114b221c124f211b114f231c124f241c114a211a1046211a10461e180f2d100c083c110c0837110c0832100b081b0a0705220b0806220b0806230c0806240c0806290d0907330e0a07350e0a07370f0b08300d0907310d0907320d09072f0b08062c0d0a07621e170f440d0a06b80c0b09ff100d09ff110d0aff120e0bff120e0aff130f0bff130f0bff120f0bff120e0bff130f0bff140f0cff16110dff17110dff17110dff16110cff17120dff16110cff19130eff1a140fff1b1510ff1a150fff1a150fff1b1510ff1c1610ff1c1610ff1c1611ff1e1812ff1e1812ff1f1813ff1e1711ff1f1812ff1f1812ff1e1711ff1f1812ff1e1812ff201a14ff201b14ff211b14ff211b15ff211b15ff211b15ff1f1914ff1f1914ff221c16ff211b16ff221c17ff231d17ff241e18ff251f1aff251f19ff28211cff2a231dff2b241eff29231dff2b241fff2e2822ff2e2722ff302923ff302923ff332c25ff302a23ff302a24ff322b25ff373029ff3d352cff3a322aff393229ff3e362cff3a3129ff41382fff4a4036ff4a4137ff473e35ff4a4238ff4f463bff52493fff50473dff544b41ff574d43ff5c5349ff5d544aff5c5348ff60564aff605549ff5f5549ff60554aff61564bff6a5f54ff6b6057ff6e635aff6e6359ff70665bff70665aff72675cff635b50ff70675bff6d6357ff6b6256ff645b52ff625a4fff655d53ff2e2721ff251d18ff201a15ab251e18973b312782362c258b352b2274201a146324160e2f4524133a362d242a4a200b225523091c5a250b2c682f12569b4e234a7a3a19427e3b16437b3b1866ad5c2d69d16f3157fe7c355bfe7b323edc6627ff322920ff342a21ff362d24ff372d23ff382d24ff3b2f25ff3e3329ff3e332aff40352bff3f3329ff403429ff413529ff403429ff42362aff463a2eff473b30ff483d32ff493e33ff4a3e34ff483d31ff4b3e33ff3e352cff463b32ff493d33ff483d33ff473d32ff463c30ff483d32ff443a30ff3a3026ff443b30ff42382eff3b3127ff392f27ff41392fff453c3230100e0b36120f0cff40362dff3e352b30191716341a1816351917152d171614451917152d1615135a21170731161514321715143618161432171513301715132d1614133417161433171514351816143017151334171513331815132c1614123617161337171513321614122e1513123c1716143216151330161413502d1e07301512113715131235161412442317053415131235151311381412112f1412102d13110f361d150a2711100d2f1f180c20281b0726241906171e14063b1a0f0636130a0339140c0432130d05b7140d05360e09024f0e090346130d04911b130758100a028c0c0802860907046a0906025305040330050402550805013c100c075f1a140d5318140c551b150d501d170e381e180e3c1e180f3d1e180e4620190e4421190e4420190e381d160e30110c0839120d0936110c0934100c091d0a0705200a07051b0806041d0a0705420b08064c0d0a07370e0a073a0f0b08310d0907300c0906270b07052c0b0806270b08052c0d0a07551d160d460d0a06ff100c09ff110e0aff110d0aff100d09ff100c09ff100c0aff100d0aff110d0aff140f0cff130f0bff140f0bff15100cff17110dff19140eff18120dff17120dff17120dff18120eff19130fff1a140fff1b1510ff1a150fff1c1610ff1b1510ff1b1510ff1c1711ff1f1813ff201a14ff211a14ff201912ff1f1812ff201913ff1f1812ff1f1812ff1e1812ff211a14ff201a14ff201a14ff221b15ff221c16ff231d16ff211a15ff221b16ff221c16ff221d17ff231c17ff241e18ff241e18ff251f19ff251f1aff28211cff29231dff2c2620ff29221cff2c2620ff2d2620ff2a241eff2a241eff28231fff29241fff2b2620ff332c27ff302a23ff332c25ff362e27ff3a332aff40372eff3f372eff3d342cff3d352dff3f372fff423b32ff453c33ff4c4339ff494138ff51473dff50473cff51483eff554a40ff5e534aff62574eff655b50ff63584cff655a4cff665b4eff665b4eff63584cff62574cff6f6256ff6e6357ff6f6459ff74695dff756b5fff776d61ff746c5eff6a6057ff6f645aff6a6055ff695f54ff645a51ff60574eff61574eff5b5349ff433b33ff28211cff201a15fc241d1879342b24662e261f662f261e5f261e17781d17114324150c15491e081c5c270a316930134c8f471f547a3d1c467f3b173e7a39155ba2552880b56c3f69ed7c3e4ff7742e3dd36126ff30281fff332a21ff322a21ff382e24ff382e25ff392f25ff392f25ff3f342bff43372eff45392fff44382dff46392dff45382cff463a2eff43362bff44382cff4a3d32ff4a3e32ff4b3e33ff4d4035ff4d4136ff4f4237ff4b4135ff473c33ff4d4236ff483e32ff483d32ff483c31ff44392fff453a31ff3e342aff3b3228ff483e32ff4a4035ff443b31ff3c332bff41362df53a3128280e0b09671714103a1c1a172c171614401917153b1a1816301716143118161465281c08311816153919171634191714301715132e1715133217161334171614321917143518171437191715351816143117151332161513331614122f141311481917152c15151233161412351614123a171513442f1f07381614123a171513301413114a24190637151312351513122913110f2c13110f3e2418072912110f3b3424091e120e06290e0b0617100b044f150b046a140d063a180b032f140c0448130c0464160d0630100b033c0e09024e130d039b191208470e0a0353080602790a08034c080603f10805023b0a0601ff07060442110d086e19140d4c1410094617120a4618120a3e18120b421c160c441e170d3e1e170d431e160c441f170d381d170e2d100c0838120d0a35120e0a3b14100b220b0806240b0806520a0806750d0b086c0c0a07420d0a07350e0a073a0f0b082c0b08052b0b0806250a07052d0b0806300b0906300e0b08571d170d440f0c07ff110d0aff100c09ff100d09ff100c09ff100d0aff100d0aff15100dff16110dff15110dff16110dff15100cff18130eff18130eff19140fff1a1510ff19140fff1a140fff1c1611ff1c1611ff1c1611ff1c1611ff1c1611ff1b1510ff1a1510ff1b1610ff1f1913ff1f1813ff211a14ff221b15ff211a14ff211a15ff211b15ff201914ff1f1813ff1f1813ff211a14ff211b15ff221c16ff231c16ff221c16ff221c16ff201b15ff211b17ff241e18ff27201aff27211bff27201aff27201bff26201aff2a231dff2b241eff2c2620ff2d2620ff2b251fff2c251fff29221dff27221cff2a231dff28231eff29241eff362f28ff39312aff363029ff373029ff372f29ff3f362dff3f372fff423a32ff463d35ff443c33ff453d35ff4d443bff4b433aff4d443cff524940ff50463dff4f453dff4f463dff52493fff5f554aff60554aff675d52ff665a4fff685e52ff6c6053ff6c6156ff6b5e53ff685b4fff6b6054ff716658ff73685bff746a5fff786d5fff786d5fff776d61ff695f55ff6e635aff71655bff76695fff71675cff70655bff6c6157ff665d53ff6c6358ff6a6258ff443c34ff251e18ff1e191375352b2349372d23553b3026702820196d1a15104e29180e2158260a34692f11418c451c527b3f1c3c753919357a3714469e522553bd5d265bfe803650f6742d3ddd6b29ff393027ff372e26ff372e25ff3b3128ff3a2f26ff392f27ff372e25ff3c3127ff44392eff463a2fff4a3e33ff493b31ff4a3e33ff4c3f33ff4b3f33ff4a3d31ff483b2fff493e33ff4e4035ff4f4236ff504338ff514539ff53473aff50453aff443a31ff4c4037ff51453bff54463cff504439ff4e4238ff4d4136ff483d33ff41372eff433a30ff4d4338ff4b4137ff473c33ff463c31ff362d25ee2e28203a1817153d1a18162f1917142f1816152f181615341918154f2b1e073018161431191815351918152e1816143118161434181615381917163318171433191715371917163715131235110f0d350e0c0a34110f0d341513103618161334171512341715133817151435171413392e1f07371714143516141339161413522d1f063315131132151210351d180f2a14121028100e0c40261a081b241806241f1506201810055811090353130d046f160e052f170a03361810064e170b05a9140e04460a0603450f090251120c03921c14093e100a0267050403ff080602ff07050252090501ff070604ff0706043f110e085a18130c461410094416110946161009401510093c1b140b3d1c150c471f180d411e170d441d160d371b170e2e110d094915120d3c14100b3e15110c270c0907270c0806600f0d0a77110e0b730e0c09470d0a07360f0b07370f0b082a0c08062d0d09062a0d090636110d094918130c5d211a10581e180f65100c08ff120e0aff100d0aff110d0aff130f0bff120e0bff110d0aff120e0bff16120dff16120eff16110dff120e0bff15110dff16110dff17120eff18130eff1a1410ff1b1611ff1b1510ff1c1712ff1b1510ff1a1410ff1a1510ff1b1511ff1c1611ff1b1611ff1b1510ff191410ff1a1410ff1a1511ff1e1813ff1f1914ff1e1813ff1f1914ff1f1813ff211b15ff201a15ff211b15ff211a15ff211b16ff201a15ff201b16ff241e18ff201a15ff221c17ff231d18ff231d18ff28211cff25201bff26211cff29231dff28221dff26211cff27221dff2b2520ff2b2520ff2a251fff28221eff2b2520ff2d2721ff2b2521ff2a2520ff2d2722ff38312bff352f29ff342e28ff2f2a25ff352f29ff3a332dff3a342eff3f3831ff443d36ff474039ff484139ff4c443cff484139ff4a413aff4c443bff4c443bff514840ff51483fff504840ff4e463eff51463eff574e45ff5f564cff62584eff645a51ff665d53ff685d53ff6f655aff6d6358ff6c6458ff6b6156ff6d6258ff6a6056ff6b6259ff5d564dff685e53ff6b5d55ff695f55ff645b51ff6c6258ff655c54ff655d55ff645a51ff605851ff554f47ff5a524aff27221dff1d1814943a2f253c2d261d532b241c6f2a231b552f1b0e306530135087451e4f7b3f1b44683a1f4e7c3c1855a251245ac2612654fa782d50ea6f2a40f0742dff3a3229ff393129ff383029ff382f27ff362d25ff372d26ff3a3028ff392f27ff393027ff3d3229ff3d342aff3d332aff3e342bff43382eff453b31ff453a30ff463b32ff463c32ff483c32ff493e35ff493e33ff493e35ff493d34ff4a3d34ff463c33ff494037ff42382fff4b3f35ff4c4036ff4c4036ff473c32ff493e35ff493e35ff4a4036ff393028ff3d342bff3d352cff483e35ff473e33ff3f382f2b181614321917152f19171531191715341a181631191715562c1f0832181715301816152c17151432191614321716142f171613341816143618161436171514381513102f110f0d3112100e3f1513112f1614122e16151234181513371716133317151230161512331715134e352408331715132f161412321614127f2c200c37161411372d200a2414121039241a0d21271a071218110412100b0538170e05551e150a571408035f170f0564180f07301a12054c110a0352130d0553100904560a0603720f0a0381150e05911f160a680d0902ff090704ff080603690a0702ff090705ff080705e20806053c0f0c075416110a4f120e0844130f084a130e0846150f094718120a441b140b491e170d431d160d451d160d411a150d8e060504a30d0a074614100b4615110b2c0d0907330d0907500d09073a0d0a072a0e0a073c120e09561c160d561f180f561e180e561b150da416120cb519140eff120e0bff130f0bff130f0cff14100cff14100cff14100cff14100cff14100cff130f0cff15110dff16110eff17130eff18130fff18120eff18130eff1a1410ff1b1611ff1b1611ff1c1611ff1a1510ff1d1712ff1f1914ff201a14ff1e1812ff1e1812ff1f1813ff1e1812ff201914ff1f1913ff1f1914ff211a15ff211b15ff211b14ff211a14ff201a15ff201914ff1f1913ff1e1813ff1f1914ff1f1914ff221b16ff211b15ff201914ff201a15ff231d18ff251f19ff1c1814ff241e19ff231e18ff26201aff28221cff29231dff2a241eff2d2620ff2f2822ff2c2520ff2d2621ff302923ff312b24ff312b25ff302924ff322c26ff322b26ff2f2a25ff302b26ff352e2aff39332dff3c352fff3c352fff3d352eff3f3831ff443d35ff484037ff484139ff484039ff4c453dff524941ff574e46ff574f46ff554c41ff574e44ff564d44ff584f45ff5b5248ff5c5249ff60564cff655950ff685d53ff695d52ff655951ff6a5e55ff6a5d53ff6b6055ff675c52ff685d53ff6b6156ff73675dff706458ff6e6257ff72685cff766b60ff5a514aff62584fff72655cff6d6257ff73675dff746a5fff73695eff776d61ff746b61ff73695fff6b5f55ff70675bff6d6257ff3e362fbe2b251d4b2f29204f362e23432620196329211a6670462c4c7b3e1d437d4016477d3e1850a150235dc161265cf7783158e36e293ff0742eff473c33ff40372eff433a31ff453a32ff453b32ff42372eff43382eff43372eff42382fff453a31ff453a30ff473b32ff4c3f34ff4c3f35ff504237ff4e4035ff4e4237ff4c3f35ff4d4035ff4b3f34ff4d4136ff4a3f35ff51453aff52463aff4e4138ff504338ff55483dff53463cff3f372fff50433aff4c4237ff4e4339ff53483dff53483cff53473cff52473cff463c33ff3f352cff3e342aff483d33321a1816341b19162c1917152e1a18162e1a1816311a181674251a0a331a1816351a181637191715361917153818171538181715301715143317161332171412351815124618161441181615351816143118161433181614381a17153518161532171513341715133a1816147332240c321614122f1614122e15131157322208351c160a3013110e3507050312140d0515191105241811054f140e04501610065b170f075d1309036c140f05582011073818110656110c03750f0b04a70a0703ac100b0589130e072d0f0b03982118098e0e0903ff0907023d0b0701ff0a0805ff0a0805ff0a0805f60a07053c0b09064f15100a47130f0839110d072c0f0c06200d0a053f150f084a19130a541c150c481e160d391b150c521f180f2e120d093a17120c5615100b5f120e0a3f17120c561d170f66241c1163231c1168231b11c71a140edf17120dff130f0cff120e0bff120f0bff130f0cff130f0cff130f0cff130f0cff130f0cff15110cff16110dff15100dff120e0bff130f0cff16110dff18130fff19140fff19140fff1b1511ff1c1712ff1d1712ff1d1712ff1e1812ff1d1712ff1d1812ff1e1812ff1e1813ff1f1913ff1f1913ff1f1913ff211b15ff201a14ff201914ff1f1913ff201a14ff221b15ff231c16ff231c16ff231c16ff211a14ff1f1914ff201a14ff1f1914ff201a15ff211a15ff1f1914ff211b15ff231c17ff231c16ff231d17ff241d18ff241e18ff231d18ff261f1aff26201aff28211cff2a231dff29231eff28221dff29231eff2b241fff2e2721ff2e2721ff2e2721ff2f2823ff302923ff352e28ff363029ff2f2924ff2f2924ff322b26ff3a332cff3e3730ff3f3830ff443d35ff474038ff4c433bff4b443bff4e453dff4e463eff4e463eff4f4840ff534b42ff554d44ff574e45ff574e45ff5c5449ff5d5348ff5d544aff5e5449ff62574dff655b50ff6b6155ff72665aff6e6358ff6e6358ff675d53ff6e6358ff6a5f54ff6c6156ff71665bff675d52ff6d6357ff766b5fff72665aff74675bff74685cff74695eff60564eff73665aff766b5fff75685eff796d62ff776c62ff6e645bff70675cff6f655aff73685cff6f655aff6c6257ff655d53ff665d54f82e261e553a32286651463b6c66594a8d8270607854483e387237163d773a164c954e234ab45b245dec783457d96a2843f1752d74665748ff4f443bff4c4036ff4a4035ff483e34ff493e34ff473c32ff473c32ff4a3e34ff4a3e34ff4a3e34ff4b3f34ff4e4137ff52453aff55483cff56483bff56483cff4e4136ff514539ff524539ff514438ff52453aff51453aff4f4238ff584a3fff56483eff57483eff55483dff56483dff514539ff52463cff55483cff54483dff55483dff584c3fff51463cff52473cff53473bff54473cff463c322b1917152d191715361b1917311b1916311a1815321a171650241907311a1816361b1817381c1918391b1918371a1916371a1917381917163619171531191716451a1816321816153719181636181614311816143618161533181614341716143418151335181614361716134933230a3b1912092c161412352c2109931b140972281e0b4f0b080212281a06162016051d1f1506ff150e045c140e06571510074b170f07340e07024410070262150a0475080603760d0b05740c0a05c9150f04cc0e0a0561100b0447110b038f1d15098a0f0a05cf0c0905ff0b0806ff0a0805ff0c0906ff0b0906ff0b0906410c0a065a15100949130f08290d0906170b08041a0c0905461510094c16110a461610094919130b52231c104c251e13722d2417772d24177629211484241d126a1f180fff110e0bff120f0cff120f0bff15110dff15110dff15110dff14100cff14100dff15110dff15110dff15110dff15110dff15110dff17120eff17130fff191410ff18130fff18130fff18130eff17120dff18130eff1b1510ff1c1611ff1d1611ff1d1712ff1d1712ff1d1712ff1e1712ff1e1812ff201913ff201913ff201914ff201914ff1f1913ff201914ff211a14ff201a14ff221b15ff211a15ff221b16ff221c16ff231c16ff221c16ff221c16ff1f1914ff1f1914ff1e1813ff211b15ff211b15ff1d1712ff231d17ff241d18ff241d18ff262019ff251f19ff241e18ff221c17ff221c17ff27201bff27211cff29231dff2b241eff2b251fff2a241eff2d2621ff312a24ff332b25ff322c25ff332d27ff362f28ff38312aff39322bff3d352eff3b332cff39322bff3b342dff38312aff3d352dff433a32ff453d36ff473f37ff494139ff4a423aff4a433cff4d453dff4e463fff534a41ff544b42ff564e45ff574f45ff564d43ff595146ff5f554aff5f554aff62584dff62584fff675d53ff6a5f56ff6c6158ff6f645aff706558ff6a5f54ff665c52ff63594eff6c6256ff6d6257ff695f54ff766a5fff786c61ff76695eff7e7163ff796e61ff73675dff6c6056ff61574fff72675bff746a5dff756c60ff796e63ff796f65ff6f655bff73685fff797065ff7f756aff7b7166ff7c7268ff797167ff7b7066ff332a2263473c33664e4439868072638c70605473665949755c534760573a28597d42213c88421b317f391638853a125a5f5243ae5e5246ff51473fff51463cff4d4237ff4c4238ff4b4036ff493e32ff473e33ff4b4034ff4c4034ff4e4236ff4c3f35ff4e4237ff514539ff53473bff56493eff55463aff534539ff4e4237ff4d4236ff51443aff52463bff53473bff584a3fff584b3fff574b3eff5c4e40ff5a4d40ff56493fff52453bff473c33ff55483dff574b3fff564a3eff584c40ff564a40ff4d4239ff50453bff564b40824f4327425b471b475d481c5f56441f44594318484b381361251d0e3f412e0b55261d0e5d3729127642341954503b1b45553f1a4e57401b4a513d1b8e423826624a391e683e321c494a3818464c3917474938184a382b173f4131155944341852483617514636174b523b134b261c0b3a241b0c331d160a5038290b3b52390f1821160522130e0514150e053f181006ff171008ff06040376100c068e0f0b0588191107971a11057f110c058a110d06830e0b085a0f0b06770e0a07e318110bff0f0a05980e0a044b100b02931b140a8f0f0a04ff0c0906ff0c0906ff0c0906ff0c0906ff0c0a07ff0d0a07420e0c07571510094e120e0839110e0738130e08471510095616110a4e17120a721b150d6c1b150c691f180f961e1811ff15110eff161310ff17130eff14100dff13100dff15110eff130f0cff16120eff18140dff211803ff211803ff211803ff1e1604ff211804ff221905ff211904ff211804ff211804ff231803ff241a04ff241a03ff251a04ff261b04ff251a03ff261a03ff281c04ff281d04ff291d04ff2a1e05ff2a1f05ff2b1f05ff2b1f04ff2c1f05ff2c2005ff2c2005ff2c2005ff2d2105ff2d2105ff2f2206ff2f2206ff2e2205ff2f2306ff2f2306ff302407ff302306ff312407ff312407ff312407ff312407ff302305ff312406ff312406ff312406ff312306ff312406ff302305ff332606ff352806ff382a07ff372906ff382a06ff392a06ff382905ff3d2d07ff3d2f07ff3f3108ff423308ff423308ff443407ff463508ff49380aff4b3a0bff4d3c0cff4e3e0bff503e0aff53420cff523f08ff57440cff574409ff5a460bff5b480cff5a4508ff5d4708ff604b0aff644f0dff65510dff68530eff6b5610ff6d5810ff6c570dff6f580dff715c0fff725c0eff755f0eff7a6310ff7d6610ff806911ff836b12ff866c10ff8a7012ff8d7213ff8f7515ff927715ff977c17ff9b8019ff9f8318ff74695dff6c6156ff72685cff706458ff716558ff6c6256ff6f6459ff6b5f55ff756a5eff796c60ff7b6e62ff796d62ff796b5dff706558ff6a6055ff776d61ff7d7166ff807568ff83776cff817569ff7e7368ff7a7067ff877b71ff877d71ff8c7f75ff8a7e73ff80766bff857a6eff776d63f0786b5fd4706053886152466f605144865f524693766b618c7f7468978a8073969280729dbc997d6687735eba5e5144ff554b42ff4e453bff4d433aff4a4037ff473d34ff4b4035ff4b4036ff4c4135ff4e4236ff4c4034ff504437ff504336ff524639ff52453aff574a3eff584a3eff594b3fff57493eff56483bff584b3fff584a3dff594a3eff54483cff55493dff51463aff574b3fff5a4c40ff5b4e41ff5a4e41ff594b3dff514538ff4f4539ff5a4d41ff5c4f43ff5e5144ff605347ff5e5044ff5d4f443e5f45176656431f5f5c461d47553e194a694d174e6a4d175f71521a425b4317495f47194f5c451a335039133c563d163c503a175357401b4a523d1942523c16495c4316445a43154a5d4517545b44194c5742194b6046184f5e4618415f431644553d1663513d1b6848361570694c195b6d4d163d8159171b281d0e4542301219120d05121f1405b4150f04ff171107ff140f07690806049c1711099d110d07a6100d099a110d088d150f05b7130e0689110e0a93120e06ff0c0906ff0c0804ff0c08059a0e0a044c201707701e1508940f0b05ff0c0906ff0d0a07ff0e0a08ff0f0b08ff0f0c09ff0e0b0842120e085a140f0a5916110a6f18130b6618120b5c17110ace130f0ae9110d0aff110e0aff13100cff191612ff191511ff181410ff16130fff16130fff13100dff181411ff15110dff18140fff181410ff241b04ff1b150dff181410ff17130fff17130eff191410ff1a1510ff191410ff19140fff19140fff1a1510ff1a1510ff1b1510ff1a1510ff1b1610ff1b1611ff1b1610ff1c1611ff1e1813ff1f1813ff1c1611ff1f1913ff1e1813ff1e1812ff1e1813ff201a14ff1f1914ff211b15ff211a14ff201a14ff211b15ff201a14ff1f1913ff1f1913ff221b15ff231c16ff241d17ff241e17ff221c16ff241d17ff231d16ff251e17ff251e18ff231c17ff231d17ff231c16ff241d18ff241e18ff251f19ff28211bff28201aff261f19ff251e19ff28211bff221d18ff2b241eff2a241eff2d2620ff2f2822ff302923ff2f2822ff312a24ff332c26ff362f28ff352f28ff3a332cff3a332bff3b342cff3c352dff403831ff403830ff433a31ff413831ff403931ff453d34ff433b32ff494037ff4d443cff4c433bff4b413aff4e463eff4c443cff4f463eff544a42ff574d45ff554d44ff584e46ff5a5146ff5a5046ff5d544aff5d5449ff5a5146ff60554aff695e51ff6f655aff72685cff786d61ff9f8315ffa28618ff796d5eff7b6f61ff7c7061ff726659ff74695eff74695dff796d61ff807367ff7f7367ff84786aff817467ff7c6f60ff756a5dff7b6e60ff73695dff827669ff817467ff84796cff85786dff82766cff81756bff83766dff80766aff8b8175ff8d8276ff908578ff8b8175ff8f8073ff8f7f72ff948477ff6d5d50e77d6c5e7f67584d97907f72c3d0b7a5c8d8bda8b7cbb19db2b89e898b9e8774616d5e4fff675b4fff5c5146ff594e43ff584d42ff574a3fff53473cff52463bff4f4339ff4e4237ff4d4237ff4c4136ff493e33ff514438ff55483dff5b4d41ff5c4f43ff5d4e43ff5b4e42ff5e4f42ff5f5041ff5f5245ff5c4e41ff564a3eff584c40ff584d41ff5e5145ff645549ff635448ff635548ff5e5144ff5c4f42ff584c40ff52473cff594d42ff5f5146ff5f5146ff615348ff625549333a2b14163b2c10226c4b1224241c131f3c2e1622715219262720143c4735161f7151151f271f114a533d191e614714181d1610164f38131f553c13141815102a543d14113729101a241b1018593e101748331022291f102859401316251d0b1f251c0e3a5940102730220e1e1a140b375b3e1326241c0d395b40121a14100911241806f8160f05ff170f05ff161007ff130e07fc08060457160e046d0d0907581e15094f0b080666150f06ee161007ff171006ff110c03ff0e0a05ff0b0805ff0c09064e140d0444140d03801c14083c1b1406ff0e0b07ff0f0c08ff0f0c09ff100c09ff100d09ff110d0afa120e0afd110d0afa120e0aff120e0bff120f0bff120f0bff120f0bff130f0bff120f0cff1d1814ff1c1814ff191511ff1a1612ff171410ff16120fff161310ff171310ff16120eff191511ff261c04ff261d05ff1b1612ff2c2119ff33291fff2e251cff2b231bff2c241cff2c231bff2c241cff2b221aff2f251cff2d241bff30251dff32281eff31271dff32291eff33291fff33281fff342a20ff382d21ff372c21ff3a2f23ff3d3024ff3a2e24ff3b2f25ff392e24ff372c23ff382d24ff3a2f25ff3a2f24ff3b3025ff3a2f25ff3a2f25ff382c23ff3b3026ff3d3127ff3c3026ff40342aff43362cff40332aff42362bff3f3229ff3b3027ff332a21ff372d24ff45372dff4e3f34ff46392fff45392fff483c32ff473c31ff473c31ff4c3f34ff53473bff54483bff54473aff645445ff5c4e42ff5d5044ff635448ff5f5246ff615347ff5c5044ff66594cff635649ff6a5c4dff79695aff867566ff8b7a6aff968572ff807162ff827364ff77695cff716458ff8c7c6dff948474ff8f8071ff958576ff8f8072ff948576ffae9b89ffbaa795ffad9d8bffbdab98ffafa08dffbba995ffd6c2adffd7c4afffe1cdb6fffae4ccffc1b19effa79887ffaa9b89ffcab8a6fffbebd3fffffeeaff8a7868ff756b5fffa48818ff87785aff7b6e5fff827665ff7b7062ff7b6f62ff7e7365ff827769ff887b6eff827669ff887c6eff827669ff837667ff7d7163ff776d5fff837566ff71695fff82776bff867a6cff85796aff867a6bff877a6fff897c6fff877a6dff8b7e72ff948778ff8b8174ff92857aff8e8377ff97877aff978779ff948476ff998a7aff705f50fce1c7b07e9683706e98806f7fab927f6492816e4a7a6b5866615445ff7b6b5dff736658ff685c4eff635547ff605345ff5e5144ff5b4e42ff5a4d41ff57493eff514638ff55483bff53473cff524539ff4f4236ff55473bff5b4d41ff605145ff5c4e43ff5c4f42ff605143ff635446ff625345ff645547ff5e5144ff645546ff615346ff66574bff67584bff625548ff685a4dff625447ff5c4f42ff605346ff5c4f42ff4e443aff584e43ff625548ff65564820694c12193f301117211b1016583f1078493b1f28241e121c6449141c3f2e111a3a29101a6a49151d3929121b2d23101d5a4014251f19102530240f16583f0e1f1f180d1f4835111a543b0f191b170c434c38163c483515201f170e1c4a350d2049340c15151209203d2a0c1d3f2a0c1c1913091d432e0c191812075f221706ff18120aff090705ff100d07ff120d06ff1b1407ff211809ff120c04ff181108ff171107ff0a0805ff161005ff0d0a07ff110d04ff0f0b05ff120c05ff100b04a4170f03801811068520170787221809ff0f0c08ff100d09ff100d09ff100d09ff120e0aff130f0bff14100cff140f0bff130f0bff130f0bff14100bff130f0bff130f0bff14100bff15110cff1c1713ff1d1915ff1d1814ff1c1713ff1a1612ff191511ff191511ff1b1612ff191510ff1b1712ff1d170eff271d05ff1c1712ff1e1813ff1f1812ff1c1610ff1c1610ff1f1812ff1d1711ff1d1711ff1c1610ff1b1610ff1d1711ff201913ff221b13ff211a12ff231c14ff221b14ff231c14ff221b14ff231c14ff241c14ff251d15ff271e17ff251d16ff241c15ff251d16ff231b15ff241c16ff231c16ff241d16ff241d16ff261e17ff271f18ff261f18ff271f18ff251e17ff272019ff272019ff261f18ff271f19ff282019ff261e17ff271f19ff271f19ff261e18ff271f19ff282019ff2a221aff2c231cff2b231bff2b231cff2f261fff2e261eff312820ff342b22ff332a21ff352c23ff312b22ff302921ff312a21ff382f26ff372f26ff362d25ff3b322aff3a3028ff3d3329ff3d342bff42382eff463c31ff473e34ff4c4136ff443a31ff3e362dff40382fff413830ff463c34ff4b4239ff4c4338ff4e443aff52483eff554a3fff584d42ff5c5246ff534a40ff5b5247ff5b5145ff5a5144ff60564aff675b4dff5d5246ff695d51ff665b4fff65594dff685c4fff695f52ff6c6256ff807364ff7b6b5cff6f6456ff8b7843ffab8f1cff817464ff807364ff7f7367ff807266ff817365ff7e7163ff7d7261ff7c6f60ff847869ff85796dff837668ff817467ff807468ff786c5fff71685cff736a5eff877c6fff857b6eff887b6fff867a6fff8e8072ff8a7f73ff908278ff81776bff80756aff9b8e82ff9a8d82ff9a8c7fff9b8c7eff9b8c7eff9b8b7cff958677ff998876ff93836eff796756ff756554ff706051ff706152ff706153ff857565ff796c5fff77695cff706255ff66594aff5d5044ff615447ff615447ff615446ff5b5043ff584c3fff5b4f40ff594d3fff57493bff55483bff514539ff574a3dff5a4d40ff5b4d40ff635346ff655546ff675748ff645445ff655648ff625447ff655648ff625446ff625346ff605245ff625447ff66584cff645648ff605346ff64564aff5e5043ff5b4e43ff554a3fff605246423f301434543d102e5d430f2d412f10494836152f563e11353e2d10325139112750370f293c2a0d2e4f370e2f4e360e2c3e2b0d284f360c2d49340d2b422f0e2d553a0f5e3f3016413728122b5a3d0f2c49310d2c46300d3060401045473211363f2b0c2d4c330c2a3422093b291c09372c1d07311a11035e2b1d09ff161008ff1c1409ff080604ff150f08ff181206ff0a0806ff171005ff171006ff171107ff181106ff0d0a05ff0b0806ff0f0b06ff0c0a07ff100c06ff120d0691191005ff100c09ff100d09ff100c09ff110d0aff110e0aff100d09ff100d09ff110e0aff130f0aff130f0bff14100bff14100bff14100cff14100cff14100cff14100bff130f0bff14100cff1a1611ff1f1a15ff1e1914ff1f1a15ff1e1915ff1a1612ff1b1713ff1e1914ff19140fff1e1814ff1e1814ff2b2005ff221b0eff1b1612ff1b1610ff1d1712ff1d1711ff1f1913ff1e1812ff1d1711ff1d1711ff1d1812ff1c1611ff1f1912ff211a13ff201913ff211a13ff221b13ff211a13ff1f1812ff201912ff211913ff211b14ff231c15ff231c15ff221a14ff221b15ff241c16ff221b15ff221b15ff241d17ff241d17ff251e18ff271f18ff271f18ff272019ff272019ff261f19ff261f19ff261e18ff271f18ff271f18ff271f18ff271f19ff272019ff282019ff282119ff2a211aff2a211aff2b221bff2b241cff2d251eff2d251eff2f271fff312820ff302820ff332c23ff342c24ff332b23ff332c23ff322a23ff322922ff393127ff3c3329ff3c3329ff3c3229ff3a3128ff3a3228ff3c332aff3d332bff40362dff41392fff463c32ff453a31ff42382fff463c33ff463d33ff473d34ff4a4036ff4d4339ff51473dff52483eff554b40ff594f44ff595044ff595045ff5a5045ff5b5145ff594f44ff595043ff625649ff63574bff665b51ff695e52ff695e51ff706357ff736659ff726456ff756859ff736555ff645748ff706558ffa88c1effab8c1bff7e7262ff7b6f60ff807367ff7e7165ff7f7164ff827465ff7b6e62ff7a6e63ff817368ff827667ff85776aff857668ff85776aff7d7066ff6c6159ff867a6eff8e8275ff8f8274ff8c8073ff908476ff8d8173ff918679ff908378ff8e8377ff9b8e82ff988b7fff9a8c80ff988b7affa19383ffa39483ffa19181ffa79789ff9c8d7cff9c8b79ff998977ff938371ff8a7c6cff847768ff827567ff817367ff76695dff76695bff6e6154ff615548ff5c5144ff594e42ff55493cff594d40ff594e41ff554a3eff5a4d40ff5b4d40ff57493dff54473aff53473aff574b3eff594c3fff594b3eff5a4c3fff625444ff645445ff645645ff615344ff645548ff645648ff645649ff635446ff615446ff605246ff635549ff655749ff66584aff655549ff69594cff5f5146ff54483e414c350c4a51370e6b4d361159553b0f57573d116c583d1258563c10554f361059593d0f5b5c3d0e645b3d1163583c104f51360d5750350d4d452f0c44412d0b503d2b0c5e45300f5e422e0e5947310d53442f0d6148320f6c4833105846300f5a3c2a0d633b2a0d6047310d4e2b1c09572218098521180949312208ff110d07ff160f07ff0b0806ff211706ff0a0705ff171109ff0a0806ff120d07ff0f0b05ff160f06ff1a1105ff130c03ff0f0b06ff0e0b08ff150f0791181106fe100c09ff100d09ff100c09ff100d0aff110e0aff120e0aff120e0aff120f0aff130f0bff14100bff130f0bff15110cff14100bff14100bff14110cff14100cff13100cff13100cff191510ff211c17ff201c17ff201c17ff1f1a16ff1c1713ff181511ff1e1914ff1a1510ff1c1813ff201a15ff2d2106ff2d2105ff1b1611ff1c1611ff1a1510ff1c1611ff211a15ff211b15ff201913ff1d1812ff1e1811ff201913ff1e1812ff221b14ff201a13ff201a13ff211b14ff201912ff211912ff1e1811ff201913ff211a14ff221c15ff251e17ff241d16ff211a14ff231b15ff221b15ff221b15ff241d17ff251e17ff261f18ff272019ff282019ff272019ff271f19ff272019ff261f18ff241d16ff251e17ff271f18ff272019ff28201aff272019ff261e18ff28211aff282119ff2a221aff282119ff2a221bff2b231cff2b231cff2d251dff30271fff30271fff342b23ff332b23ff342c24ff312a22ff312921ff362d24ff342c23ff3a3128ff372f26ff3b3329ff3d342aff3c332aff3e342aff393128ff3c332aff40362dff41382fff483d33ff483e34ff433930ff453b31ff463c33ff463c33ff4c4138ff4c4238ff4e443bff534a3fff564c41ff574e43ff584e44ff5a5045ff5d5348ff564d42ff5a4f42ff5c5144ff64594dff665a4fff63584cff675c50ff6c6054ff716456ff746657ff706152ff786a5aff746757ff615647ff625648ff736759ffac8a14ff947e3cff7a6d5eff7e7164ff7b6f61ff7b6e60ff7e7163ff7d7063ff74685cff786d5fff776c60ff7e7267ff807468ff847a6eff83766aff7f7266ff6c645aff81756aff8d8174ff95897cff92877aff8e8276ff8c8072ff887e70ff8e8071ff958a7dff9a8d80ffa09283ff9e9080ff9d8f81ffa09382ffa19281ff9c8c7cff9c8d7cff9b8b7affa59580ff9e8e7aff90806eff867969ff807265ff86796bff837568ff7b7062ff786d5eff6f6154ff5f5346ff534a3fff52483dff4e4439ff4e4437ff564b40ff584c40ff574a3dff55493dff54463bff54473aff57493cff5a4c40ff5c4f42ff5f5043ff5b4d3fff5d4f41ff5f5042ff625344ff635445ff635446ff615345ff605345ff625445ff625345ff594d42ff5e4f44ff5b4e43ff605347ff635648ff65584bff64564aff1d1509ff4c3718ff1f1508ff533e1cff231a0dff161109ff191209ff433015ff191107ff3f2e16ff1c150aff140f08ff150f08ff3d2c11ff211709ff403015ff261d0fff16110aff18120aff37280fff281b0bff3b2a0fff302410ff17110aff181208ff2d200bff2f210e4349350c5b4634104a2b1e074f2c1e09ff181108ff251c0eff1e1508ff0c0904ff151008ff1e1609ff0b0805ff161108ff0e0b06ff0b0906ff0c0906ff130e05ff120c06ff100b05b2181206ff110e0aff110d0aff110e09ff120e0aff14100bff130f0aff14100bff120e0aff110e0aff120e0aff13100bff14100cff16120dff16110cff15100cff17120dff15110cff14100cff15110dff15110dff17130eff17120eff16110dff16120dff120f0bff16110dff18130eff19140fff1a1611ff221b0fff2d2205ff1d1813ff1f1913ff1c1611ff211a14ff241d16ff231c16ff231c15ff201a14ff211b15ff221b14ff221b14ff211a13ff231c15ff231c15ff211a13ff231b14ff221c14ff201a13ff221b14ff221b14ff241d16ff241d16ff241d16ff231c15ff231b15ff251d17ff241d16ff251e17ff261e17ff272019ff29211aff302820ff282018ff282119ff261f18ff282018ff292119ff282019ff261e18ff272019ff29211aff282019ff28201aff29211bff2b231bff2a221aff2c251dff28211aff302820ff2b231cff2f271fff2e251eff30271fff332a21ff332a21ff332b23ff342c24ff342c24ff372f26ff393028ff362e25ff3a3128ff3d332aff3d342bff3b3229ff3f362cff40372dff3e362cff42382eff43392fff463c31ff4a4035ff453b30ff443b31ff493e34ff4b4138ff493f36ff4c4238ff51463cff564b41ff554a3fff544b40ff564d41ff5b5246ff564d42ff5e5447ff5e5346ff605447ff5e5245ff62574bff665b4fff695d51ff695e52ff6f6457ff766a5aff736657ff7a6e5eff746757ff7d7362ff776c5dff675a4cff726859ff73634dffa88110ff726554ff78695cff817566ff7a6d5fff766b5eff766b5fff7e7165ff71675aff786b5dff807465ff817363ff847a6cff807467ff7f7569ff73695eff766b63ff83796dff8b7f74ff8e8276ff918679ff8f8476ff978a7bff918577ff968979ff998c7eff97887dff9d8f7fff9f9084ff9e9284ff9b8f81ffa09282ff9c8b78ffa19181ffa08f7cff9f8e79ff958571ff8f7d6eff8b7b6cff938273ff948272ff8a7b6cff7c6d61ff76685bff786a5dff6e6153ff605448ff574c40ff544a3eff52473cff574b3fff54493dff554a3eff574a3eff55483bff56483cff57483cff57483cff5a4c40ff5f5143ff5b4d40ff5d4f42ff55483cff54483bff5d4f41ff615244ff67584aff605245ff5c4f42ff615347ff615348ff574b40ff5f5143ff655649ff635445ff67594cff382915ff251d10ff0a0805ff171006ff42331fff19130aff2d2210ff332613ff0a0806ff0e0b06ff3d2e18ff1a130aff241b0cff41321cff0b0907ff0d0a06ff42341cff1d160aff271e0dff47371dff0b0906ff0b0906ff4b3a1eff1e170cff231a0bff41321bff0b090650503c0e5d4d3a0f4b2d1f074f33240aff1c1509ff0c0906ff1e1609ff231907ff140f08ff150f08ff0c0a07ff1a1306ff0e0b07ff1b1408ff0f0c08ff140f05ff130e064a1f1607ff120e0aff130e0aff130f0aff130f0bff14100cff14100bff130f0bff15110cff13100bff14100cff15100cff15100cff15110dff17120dff16120dff16110dff16110dff17120dff16120eff201a15ff201b15ff1c1813ff1d1913ff1f1a15ff1a1612ff1e1914ff1f1914ff1a1510ff1b1610ff1b1611ff2e2205ff241d11ff221c16ff241d16ff272018ff261f17ff261f18ff251e16ff221c14ff241e16ff251e17ff231c15ff211a13ff211a14ff211b14ff231c15ff221b15ff221c15ff221c15ff211a14ff221b15ff231c15ff251e16ff251e16ff231c16ff261e18ff241d17ff251e17ff251e17ff3e342cff5d5247ff62574aff665a4dff665a4eff2b241cff2a231aff29211aff2a221aff282018ff292119ff292119ff282019ff2b221bff29211aff272019ff2c241dff2d251dff2b241cff2d251dff2e261dff7c6f60ff817364ff5b4f42ff312820ff332b22ff352c23ff393026ff393027ff372f26ff372f25ff393027ff3b3027ff3a3026ff383027ff3a3129ff3d342bff3c342bff3e362cff40372dff3d352bff40372dff41382eff463c31ff473e34ff463d32ff4a4037ff4c4339ff494036ff4b4037ff4c4238ff50453bff574c41ff5b4f43ff5a5044ff61574aff5f5547ff5b5043ff605549ff605447ff5f5548ff61574aff63584cff6a5f52ff685d50ff6a5f52ff6e6256ff7c6e61ff726759ff73695bff7c6f61ff7e7363ff887b6aff766654ff726452ff7a6f62ffa08226ffb18d14ff74685bff786d60ff7a6d62ff7e7164ff7f7263ff7d6f64ff776a60ff75695dff776b5eff7a6e60ff847668ff7e7367ff7a7063ff807368ff766c62ff7b6f65ff8d8070ff93887aff928577ff978a79ff938677ff938677ff998b7cff9f9283ff9a8e7fff9a8a7dff928577ffa19485ffa39789ffa09485ff9c8f7fff9e8f7fffaa9b88ff9d8e7cff9d8e7bff9a8a79ff8e8070ff908273ff938576ff8e7d6fff87776bff857668ff7a6d5eff75675aff6f6255ff65594cff5b5146ff5b5044ff5a4d42ff554a3eff53483cff52473cff584b3eff5a4c3fff56493dff594a3dff584a3dff5a4c3fff635446ff5f4f41ff615244ff5d4f41ff5a4c40ff5b4d42ff5c4e41ff625447ff615348ff635549ff625448ff615448ff5d5044ff5c5043ff605345ff5d5143ff130f08ff20190eff0a0806ff0e0b06ff2d2415ff4b391cff1b150bff2c2112ff0c0a07ff0d0a07ff332714ff493619ff1e160cff42341cff0b0807ff0b0906ff3b2e19ff4c3a1aff312612ff483920ff0b0907ff0b0906ff493a1dff352812ff312411ff45351cff0c09074e4e390e564b3710432c1e074f34240aff0c0907ff0e0b07ff0d0b06ff161109ff161008ff1f170bff201709ff130e05ff181207ff181206ff100d09ff130e05481c1405ff130f0bff120f0aff14100cff14100cff14100cff130f0bff130f0bff13100bff140f0bff14100bff14100cff17120eff16120dff16110dff16110dff16110dff17120eff16120dff17130fff221c17ff231d18ff231e18ff211d17ff221d17ff1d1814ff1a1612ff18130fff191410ff1c1712ff1f1a15ff362909ff342705ff221c16ff18140fff231c15ff2b231bff282019ff271f18ff261f18ff272018ff261f18ff241e16ff261f17ff241d15ff231c15ff241c16ff221c15ff251e17ff272018ff241c16ff241d16ff241d16ff251e17ff261e17ff251d17ff251d17ff41382fff4f453bff5a4f43ff5c5045ff5f5348ff605549ff62564aff655a4eff675c4fff2b231bff2b221bff2a221aff2c231bff292119ff2b221aff29211aff292119ff2b231bff2a231cff29221bff2b241cff2d251dff2e261eff2e261eff2f261eff786b5cff7f7161ff7e7060ff7e7162ff796b5dff372f26ff362e25ff393027ff393027ff3c342aff3c332aff3b3228ff3f352cff3d3329ff3c3329ff3e362cff3d342bff433a31ff493e34ff453b31ff473d33ff453d32ff473f34ff4a4035ff483f34ff493f35ff4a4137ff4a4137ff4e4439ff50453cff544a40ff574d43ff594f43ff5f5549ff65594cff62564aff61554aff605448ff685b50ff615649ff675b4dff665b4eff695c4fff6d6054ff726759ff736659ff756759ff796c5dff7c7061ff7f7262ff827362ff887966ff837462ff615444ff6d6050ff685e51ffac8411ffa18226ff706458ff817465ff7a6d63ff7b6d63ff786b60ff75695dff7c7165ff786d60ff807164ff776a5fff7d7265ff796f62ff7e7367ff80766aff71655bff71695eff80766bff8b8173ff918678ff8f867aff9e9084ff97897dff9a8e7fff97897dff857b70ff9e8f82ffa79a8bffab9e8effa49589ff9a8e7fff8d8071ff988b7aff978a7affa89986ff9e8c7cff968674ff897b6cff908272ff958678ff98887bff8a7c71ff8c7c70ff7a6c5eff78685aff746456ff716356ff685a4eff65584aff635548ff5c4e43ff584c41ff55493eff52473aff56493dff5b4d3fff5a4d3fff5a4d3fff605143ff5a4d40ff605043ff5a4c3fff54473bff55483cff5a4d41ff5a4c40ff615345ff625347ff625448ff605347ff635548ff5f5246ff605346ff625346ff5d4a25ff3a2d17ff0a0805ff2e200aff5b482bff352a19ff514021ff4a3a1fff0b0907ff1a1309ff544222ff352917ff4a3a20ff5e4b28ff0a0806ff130f08ff584624ff332918ff42341cff534224ff0b0906ff0f0c07ff514122ff312715ff3c2f19ff4d3d1dff0c09074247330f474f380f472e20079f281f0fff0c0907ff201809ff0e0b08ff161108ff1f170aff0f0c09ff181105ff150f05ff171107ff181005ff120e08471d1505ff100d09ff110d09ff110d09ff110d0aff110d0aff120e0aff14100cff120e0aff120f0bff130f0bff120f0bff130f0bff140f0bff130f0bff130f0bff13100cff14100cff15100cff15110dff19140fff1a1510ff1a1510ff1b1611ff191511ff17130fff110d0bff1d1813ff1e1813ff201b16ff211c17ff2c210cff2d2005ff201b16ff221c15ff261e17ff2b231bff2b221aff282119ff272019ff272019ff251e17ff231d16ff261f17ff272018ff261f17ff261f17ff231d16ff261f18ff272019ff221b15ff241d17ff241d16ff241d16ff271f18ff3c332aff564b41ff594e43ff5b5045ff5a4f44ff5b4f44ff5b5146ff594f44ff5d5348ff61564bff61574bff2d241cff282019ff29211aff2b231bff2a221aff2a221aff2b231bff292119ff282019ff29221bff2a221bff2a231bff282119ff29211aff2a231cff2e261eff706356ff776b5dff7b6e60ff7b6e5fff7b6e60ff817365ff8a7b6bff887b6bff3b3329ff3a3128ff3c342bff383027ff393127ff3e342aff3f362cff3e342bff41372dff3e352cff473d32ff493f34ff433a31ff433b31ff473e33ff473e34ff4a4035ff4c4136ff4d4338ff50463aff50463aff53493dff4f453cff564c42ff53483fff5b5045ff5e5348ff5e5247ff61554aff5a4f44ff5f5449ff665a4dff675b4cff675b4dff695d4fff6b5f51ff63574aff6c5f52ff6f6356ff6e6252ff6b5f51ff706456ff73695cff7e7162ff867769ff86796aff7e7264ff635748ff625a4fff957725ffad8414ff6d6257ff6c6158ff6f6359ff6b5f55ff655b51ff60564fff635952ff665b53ff6c5f56ff6c6259ff6d6158ff706359ff70665eff6e665dff73695eff6f675eff94897cff84786cff98897dff8a7f78ff94897eff7c7164ff8f8578ff7c756aff7d7265ff897e73ff82766aff8a7f71ff84776dff8c8072ff8e8279ff807567ff81786bff7d7265ff8a7c6fff847769ff948476ff9d8d7eff908172ff8b7c6fff796f64ff86796cff6a6259ff655a53ff63584fff62564cff5a4f47ff594c44ff564c43ff594c42ff4f453bff4d4338ff4e4239ff4c4138ff51463bff4a4036ff4b3f36ff4c4035ff4b4137ff483e34ff51453aff53483bff554a3eff51463cff53473cff594c41ff584c41ff5b4e43ff584b41ff54483dff4c413aff4f433bff51453dff140f08ff5c4416ff6f552aff5f4519ff100c06ff0d0a07ff0f0c07ff4d360fff634b25ff5f471bff120e08ff100c08ff110d08ff43310dff644e27ff594218ff140f08ff0f0c07ff100c08ff36270eff5e4822ff58431bff100d07ff100d08ff100d08ff281d0aff56421d3f4a330e414b360f453122087a32230cff1e1508ff1b1409ff130f0bff2c200dff130f0bff15100aff100c09ff141008ff130e08ff140f064f211705ff16110dff16120dff16110dff17120eff17130eff18130eff19140fff1a140eff1a140fff18140fff18130eff1a150fff18130eff17120dff17120dff19140eff1a150fff19140fff1a1610ff221c16ff29241dff29231cff29221bff1e1813ff1c1612ff1d1712ff241d18ff1e1914ff1d1914ff1d1814ff1f1a15ff352605ff31250cff261f19ff31271eff2d241cff2f261eff2b231bff2b241cff2a221bff272019ff251f18ff272018ff261e17ff292019ff282119ff272018ff29221aff272018ff272018ff271f19ff271f18ff352d25ff52493eff54493fff554a40ff574c42ff594e43ff5d5146ff5a4e42ff5b5045ff5e5348ff5d5247ff5f5447ff5c5145ff5f5548ff2a221aff2a221bff2b231cff2a221bff2a231bff2a231bff2b241cff2b231bff2a221bff2c241dff2b231bff2c241dff2a221bff2a221aff2c241cff352d24ff74685aff74685bff7a6c60ff7d6f60ff7e7062ff827465ff897b6cff897a6aff8e7f6fff3e342aff3a3129ff393129ff3d332bff3d3329ff41372dff42392fff453b30ff43392fff443a2fff493f35ff453c32ff494136ff483f35ff484035ff4a4136ff4c4338ff50453aff4f453aff53483dff52473bff54493dff5b4f44ff594d43ff5b4f43ff584e43ff5a4f43ff5e5448ff5e5548ff62584cff62584aff665b4dff6a5f4fff6b5f51ff6d6153ff6d6052ff74685aff736757ff776c5dff746658ff75685aff746759ff796c5dff7f7464ff7c7160ff7d7163ff6e6153ff6f5e4eff837667ffbb991dffbc9a1aff7f7367ff8b7e71ff7c7063ff766a5eff71695eff7f7265ff837669ff7f7468ff877a70ff86796dff8a7d70ff908375ff96897dff96897cff92867aff7b7165ff887c71ff726a60ff72695fff746b63ff7c7066ff897e70ff9e9083ff9d9083ffa29489ffa79a8bffa39687ff978d7fffa6998bffa5988affa79a8affa79787ffa79886ffaa9b8affad9f90ff9d8f7fff978978ffa29382ff908374ff9b8e7eff968979ff978879ff948677ff85786bff796c60ff77695dff7a6c5fff726559ff706357ff6a5d50ff5f5245ff54493eff53473cff52473dff574a3fff5c4f43ff5d4f44ff5c4e43ff605245ff605345ff645748ff625547ff6a5c4dff68594cff695a4dff66594dff65584bff695b4eff615349ff5b4d43ff5a4e43ff605448ff0e0b08ff3b2c11ff463211ff4b3a1bff110e0aff100d0aff110e0aff271e0cff422d0fff503c1bff120f0aff110e0aff100d09ff1d170cff432e0fff473516ff110d0aff120e0aff110e0aff18120aff412e0fff453212ff130f0aff110d09ff110d09ff140f0aff402f104e4835115c4b3811443122075b33250aff23190bff20180cff161009ff151008ff140f09ff1e1708ff15100cff181209ff130f0954211706ff15110cff17120dff19140fff18130eff19140eff17120dff16110dff19130eff1a140fff1b1610ff1b1510ff1c1610ff1c1610ff1a150fff1a1510ff1b1610ff1a150fff1b1510ff19140fff1f1a14ff2d261eff29231dff262019ff241e19ff2a231dff231d18ff261f1aff29231cff2e261fff2c251eff28221cff3a2c07ff392a06ff27201bff282118ff2d251cff2e261eff2e261eff2d251dff2b231bff28211aff2a231bff282119ff272018ff2a221aff292119ff261f18ff29221aff292119ff292119ff282019ff342c23ff51473cff51483dff52483dff51463bff554a3fff574c41ff564a40ff594e43ff5b5044ff5c5047ff5f5449ff61564aff594f43ff5c5145ff3b3128ff2a221bff2a211aff2c231cff2d241cff2c241cff2a231bff2c241cff2b231bff2d251dff2e251dff2a221aff2b231bff2c241cff2c241cff2d251eff736659ff75695cff7a6d5fff77695bff7d7060ff7d7060ff817263ff86776aff8a7a6cff43392fff3c332aff3a3129ff3d342bff3d342bff3d342aff43382eff42382eff3f362cff453c31ff473d32ff473e34ff463d33ff4a4036ff4a4035ff4b4236ff4c4136ff4b4034ff4e4439ff50463cff50453bff564a3eff594d40ff5a4e43ff5d5246ff61564aff584d41ff5d5145ff5f5446ff62584aff615549ff675c4fff6c6053ff6f6456ff695e50ff706454ff706454ff766a5bff7a6d5fff756757ff746859ff776b5cff75695aff766b5cff817464ff7f7364ff84786aff766758ff5e5042ff7e7161ff7e7164ffc19e20ffb69a33ff8e7f73ff948778ff8d8174ff877b6eff8b7f71ff908575ff887b6cff86796dff86786dff8a7f72ff928679ff9f9183ffa09286ff9b8f83ff9b8e82ff726761ff84786cff9c9082ffa19387ff9b8e81ff9c9082ff8d8174ff968a7cff95897eff9d9186ffa79687ffafa092ff9c9081ff8f8374ff9e9283ffa09083ffa89a89ffa69886ffaa9d8bffa7988affa79888ff968778ffae9d8bff9c8a7bff978778ff938275ff86776aff88796cff827468ff7d7063ff726458ff746559ff7e6e61ff73675cff695c50ff5c5044ff574b41ff594b41ff574a3eff54493dff54483cff5b4e42ff5b4e42ff635548ff67594bff67594aff645647ff5e5043ff665749ff685a4dff6d5f50ff716254ff726256ff736457ff706153ff6e6052ff56421bff402f0dff110e0aff3f2d0eff4c3a1bff5a4725ff4d3b1aff48330dff130f0bff37290cff55411eff4b3a1eff46371cff332814ff120f0bff231a09ff49381aff4e3c1fff4e3d1fff483610ff120f0aff1b1509ff403010ff4d3c1fff473717ff473512ff14100a594a37104f4b380f4630210769332409ff18130aff1a1308ff231b0cff261b08ff181109ff1a130aff15100cff1c1306411e1405ff16110cff17120dff19140fff19140eff1a140eff19140eff1a140fff1d1610ff1c1610ff1c1711ff1c1610ff1a150fff1b1610ff1d1711ff1c1610ff1d1711ff1b1610ff1c1610ff1c1611ff1c1712ff251f19ff2a231cff302821ff322b23ff302821ff2a231dff251f1aff2a241dff2d261fff2a231dff29221cff292219ff3d2e08ff2a231cff201a14ff2a221aff2d241cff2e261eff2c241cff2b241bff2b231cff2c241cff2c241cff2d251cff2a231aff2b231bff292119ff2a2119ff2a221aff261f17ff292018ff2b231bff2a221aff2a211aff271f17ff271f18ff50453aff4f4439ff554a3fff574b40ff574d43ff594e44ff5a4f45ff5e5248ff5b4e44ff5a4e44ff5b5045ff2b221bff2c231cff2a221bff2c241cff2a221bff2b231bff2b231bff2d251dff2d251dff2c241dff2d241cff2b231bff2c241cff2c241cff2e251dff3d332bff74685bff74695bff75685aff706254ff736658ff7f7162ff827362ff837565ff473e34ff3a3329ff3b3229ff3c3329ff3c332aff42382fff42382fff443a2fff483d31ff443a2eff463c31ff463c32ff453b32ff483e34ff4c4236ff4f4439ff4d4338ff4d4338ff4b4136ff4d4338ff4d4337ff52473bff564b3eff574c41ff584e41ff5d5245ff5f5247ff5d5046ff5a4f44ff5e5347ff62564aff675c4eff655a4dff6a5f52ff6a5f51ff6d6153ff6e6255ff766b5cff776b5dff7a6e5fff7a6d5fff746857ff75695aff756858ff7d6f5eff827667ff867a6bff867a6bff746859ff655949ff534539ff8a7b6affa28e53ffc6a523ff94856dff8a7e6fff8e8273ff918376ff998a7aff918272ff8f8171ff897d6fff897c71ff867a6dff887a6eff97897affa49485ffa89b8dffa19487ffa39689ff6f675eff9b8f81ff9d9082ffa99b8aff9e9183ff998d81ffa39688ffaa9b8effa89a8dffa89a8effb3a290ffb5a696ffa7988affa39487ffb6a797ffb5a494ffa39586ffa89b8bffae9f91ffb1a08fffa29282ff9d8c7bffa89783ffa2917fff9f8e7fff9b8b7bff958476ff938576ff918277ff908274ff8a7a6bff867768ff938374ff7a6c5eff706355ff716254ff67594bff655648ff5d5043ff5d4f43ff5c4e43ff605247ff5d5044ff65574aff6b5c4fff6b5b4eff6a5b4cff66574aff685a4dff726151ff756555ff776859ff6e6051ff726455ff716354ff241c0eff261e0eff13100bff19130bff312513ff4b3c22ff2a2110ff2e2210ff14100cff16110bff382912ff42331aff281f10ff403118ff15110cff15100bff352a15ff44371fff352b17ff403319ff130f0bff130f0bff413317ff403217ff433316ff413214ff17120d584b380f5d4b380e472e1f076132230aff18120bff18130dff181209ff1c140aff191208ff1d1509ff1c1609481d1305ff19140eff19130eff1a150fff1a150fff19130eff1b150fff1c1610ff1c1610ff1c1610ff1e1711ff1c1610ff1d1710ff1e1811ff1d1711ff1b150fff1c1610ff1a140fff1d1711ff1b1711ff1d1813ff2a231dff302922ff322a23ff362e26ff322a23ff302821ff221d18ff2c261fff2b241dff29221bff2a231cff2a241dff3f3008ff362a13ff28211aff221b14ff2c231bff31281fff312820ff2e251dff2c241cff2e261eff2c241bff2c241cff292119ff292219ff2a231aff28211aff272019ff272119ff282119ff29211aff282018ff292119ff271f17ff271f17ff271f18ff261e17ff362d24ff51453bff50453cff53483eff564b41ff584d43ff574c42ff5b5045ff594e43ff41382fff282019ff29211aff29211aff2c231cff2c231bff2c231bff2d251dff2d241cff2f261dff30271eff2d251cff2d251cff2d261dff30271fff2f271fff76695cff776a5cff7b6f60ff7b6e5eff796b5cff75685bff786b5dff817464ff52483dff3d352cff3a3229ff3d342bff41372eff40352bff44392fff3f342bff41372dff453b30ff443a2fff40372eff463d32ff473e34ff463d33ff4a4035ff4c4237ff493f36ff4a4036ff4a4136ff4c4237ff4d4337ff4e4438ff4f4439ff52463cff584c42ff564b41ff574c42ff5b5146ff5d5247ff5c5245ff5c5145ff5d5446ff615749ff6c6052ff6a5f52ff706456ff736758ff746659ff7e7060ff807262ff7d705eff7d715fff7d7060ff807361ff827563ff8c7e6cff8b7e6dff8b8070ff887c6bff796c5cff534639ff675a4dff91816fffc3a329ffccab26ff8a7d6bff938676ff908172ff908375ff8d7e6dff8f8171ff877a6cff897c6fff938679ff948579ff918377ff9e9082ffa09284ffb2a297ffa19484ffa39384ff7c7469ff9e9384ff938577ff918373ff988b7bffa59788ffa69889ffab9c8dffa39584ff9b8c7bffaf9f8fffaea090ffb1a394ffb1a294ffbaab9cffb8a89affaa9b8dffad9d8fffa89888ffafa190ffaa9a88ffac9b86ffa59683ff9c8b7affa08f7eff948473ff978678ff9c8c7cff978878ff998a7aff998879ff928272ff867767ff7e6f61ff7e6f60ff7e6e5fff766555ff6f5f50ff67574aff635446ff5d4e42ff615246ff655649ff615347ff655649ff6b5c4eff706051ff685a4bff6c5c4eff736252ff756757ff776859ff736453ff766755ff302616ff261e10ff13100bff1a150cff3b2e1aff423316ff3b2d15ff302412ff18140fff19140eff403218ff352915ff302512ff493718ff17120dff17120cff3a2d17ff362911ff362a13ff382e16ff140f0bff15100bff413219ff342712ff322712ff403217ff16110c474b370c6947350f3f2d1e07682e210aff1a140fff291f0fff19130dff1a130bff1f1709ff15100a591b1305ff1a150fff1b1510ff19140fff1b150fff1b150fff1c1610ff1c1610ff1a150fff1d1711ff1e1812ff1f1912ff1f1912ff1e1812ff1f1811ff1c160fff1b1610ff1c1610ff1c1710ff1f1911ff1e1711ff29221aff322a23ff302922ff322b24ff332b23ff302921ff2a231dff2b251eff2a231cff2b241dff2e261eff28211aff3e2f0aff3d2d08ff29221bff2b231bff292119ff2f251dff312820ff312920ff2e261eff2f281fff2e261dff2e251dff2d241cff2d241cff2d251cff2a221aff282119ff261f18ff282119ff2b231bff2d251cff2b231bff282118ff292219ff292119ff282018ff251e17ff282019ff4a4037ff54483fff54483eff52473cff564a40ff584c41ff574d42ff5a5044ff2b221bff292119ff2b221aff2a221bff2d241cff2d241dff2b221bff2d251dff2e251dff2e251dff2e251dff30271fff312920ff2e261fff2e261fff6e6255ff74685aff75685bff7b6e60ff7b6c5eff7d6e5eff786b5cff7f7162ff4d4439ff373027ff3d342bff3f362dff3c3229ff43392fff41372dff443a2fff44392fff453a31ff483e34ff463d32ff443c32ff40382eff463d33ff4d4338ff50463bff4f453bff4e4338ff4e453aff4e433aff4e443aff4c4238ff52483dff54493eff53473dff554a3eff52483cff584c42ff5b5145ff5b5145ff605549ff64594cff635749ff675b4dff685c4eff706455ff726658ff706355ff786c5dff7c6f60ff7d7060ff7b6f5fff857968ff877967ff827564ff7f7361ff877969ff8b7f6eff8e8170ff928676ff8a7c6cff716455ff4b3f35ff756758ff8e816fffcba923ffc1a335ff968978ff998a7cff998878ff988877ff897b6bff8c7e6dff837567ff908273ff908475ff877a6eff96887aff9d8e80ff9b8b7dffaa9d8eff9d9083ff9e9082ff998e7fff95887aff918373ffa39584ff9a8b7aff998978ffa89a89ffa39585ffa99c8cffb0a090ffb0a190ffa99b8cffb0a193ffc6b6a7ffbdae9fffb7a899ffbaab9affbbac9bffb7a897ffb7a798ffb9a793ffb09e89ffa69582ffa08f7dff9c8c7bff928372ff938273ff948374ff918070ff938372ff8f7e6dff8a7866ff8a7968ff837364ff7d6e5fff7e6f5eff786857ff746453ff6d5d4eff635446ff5d4f43ff655548ff67584bff6a594cff67584aff66574aff6a5a4cff6d5e4fff706051ff705f50ff736352ff776858ff776656ff56421cff6d562dff17120dff69501dff503e1aff4e3e1fff4f3e1dff604d2aff19140eff503b16ff493717ff503e1bff4f3d1dff73582cff17120dff322714ff47381aff47381aff433417ff59451fff17120cff271d0eff4a391bff43351bff403216ff533f1aff1c150d3a49320d514b360e532e1f0858302109ff271e0dff20180aff18130dff2b2110ff1a140daf1e160bff1c1510ff1c1610ff1b150fff1c1610ff1b1510ff1c1610ff1b1610ff1c1610ff1c1711ff1f1912ff1e1812ff1f1912ff1e1912ff211b13ff1e1811ff1d1610ff1d1710ff1d1811ff201a13ff241e17ff2c251eff352d25ff312a22ff342d26ff342c25ff302921ff312a22ff2d261fff2b241eff2c251eff2d261fff2b241cff352913ff423107ff28211aff2a221bff312820ff342a21ff332920ff342a21ff322920ff2f271fff2e271eff2d261dff2e261eff2f261dff2e251dff2b231aff2a2219ff2b231bff2b231bff2b231bff2b221aff2c231bff2b221aff2b231bff2a2119ff292119ff282018ff251e16ff272018ff292019ff54493fff554a3fff574c41ff574b40ff594e43ff5c5045ff3c3229ff2b231bff282019ff2a221aff2c241cff2c241cff2c241cff2e261dff2e251dff30271fff2e261dff2f271eff30271fff312820ff302820ff53493eff6d6154ff706456ff766a5cff796b5dff776a5cff786b5dff7c6f60ff493e35ff372e26ff3a3027ff3e352bff3f362cff3f352cff3f352bff443a30ff42382eff453b31ff483d33ff87796aff6d6152ff433a30ff463d32ff473e33ff483e33ff4c4237ff4f443aff4b4238ff4e443aff4e443aff4c4138ff4e443aff4e4439ff564b40ff53483dff594e42ff574c40ff594d42ff584d43ff5f5447ff62574aff64594bff65584bff63584aff6c6052ff6e6254ff6f6254ff756859ff766a5bff7d7061ff827565ff7f7263ff857868ff837666ff887a69ff857867ff867968ff867966ff887a67ff9a8d7aff887b69ff8c8071ff695c4cff625446ff84776aff8b7c5cffcdac24ff938574ff988979ff968879ff9a8c7bff8c7d6cff7c7063ff887a6cff887c6cff988b7bff9e9080ff938679ff958a7dff95897bff9e9284ffa6988aff9c8f81ffa99a89ff998b7eff9a8e7fff9c8e7effa19282ffa49584ffa49581ffa59581ff9c8c7bffa29480ffad9e8cffad9d8bffbaab9affc1b09dffbbac9bffb6a898ffc1b1a0ffc2b19dffbfaf9affbead98ffb8a995ffbaa996ffb2a08affa79581ffa5927eff9a8976ff988872ff9f8d7aff9b8a77ff9f8e79ff948471ff8e7e6bff857662ff867562ff837360ff827260ff796958ff78695aff706050ff6e5f4fff635548ff635548ff655649ff6d5d4fff6c5d4fff6b5c4dff615347ff68584aff695a4cff6f6051ff6e5d4fff706051ff6c5e50ff16120dff34270fff735a2eff35260eff18130eff17130dff18130dff251b0cff684d23ff3e2c10ff17120dff18130eff18130eff1d160cff5f4723ff3e3015ff19140eff17120dff16110cff18130bff554121ff423217ff18120dff18130dff17120dff1a140eff4b3716414c350c4a49330d41291b0848312209ff1a130aff1f170cff1a140ee7201608961f170aff1c1610ff1b1510ff1d1711ff1e1711ff1d1711ff1d1711ff1c1610ff1d1711ff1d1812ff1e1812ff1f1912ff201a13ff211b14ff201913ff1f1911ff1d1711ff1f1912ff1f1912ff29221aff332b23ff383028ff3a322aff3a322aff3a3229ff372f27ff342c24ff302920ff302922ff28221bff29231cff2c251dff2a231cff2c241cff433307ff2e2517ff27211aff282018ff32281fff372d23ff362d23ff322920ff322820ff312920ff302820ff2c251eff2f271eff2e261eff2e261eff2d251dff2c241bff2d241cff2d241cff2b231bff2d241cff292119ff2a2119ff292019ff2a221aff292119ff2b221aff282119ff282018ff2b231bff43392fff5b4f43ff594d42ff5a4d42ff5a4e43ff594e42ff2b231bff2a221aff2a211aff2d241cff2e251dff2f261eff2d241cff2f261dff30271fff2e261dff2e251dff2f261eff322920ff30271fff392e25ff706355ff6e6255ff716557ff746658ff746659ff776a5cff7a6c5dff473c32ff3c3229ff3b3128ff3e342aff41372eff41372dff41372dff453b31ff433a30ff42392fff463c32ff483e33ff998a7bff978777ff5a4f44ff473d33ff4b4035ff4d4237ff4e4339ff4a4037ff4c4238ff4b4137ff51473dff4e443aff544a3fff53483dff50453bff5a4e43ff5e5146ff615348ff5e5146ff615448ff5f5447ff615649ff665b4eff665b4dff675d4eff706355ff77675aff786a5eff74675aff7c6e5fff817465ff817464ff7d7061ff807364ff887968ff817563ff897968ff897b69ff8a7d6cff8f816fff91806eff8e7e6dff8f806eff7a6b5aff4a3f33ff6c5d4dff8c7e6effc7a821ffcdaa1fff938575ff998b7cff988979ff988979ff948575ff897d6eff897a69ff938576ffa69785ff9f9180ffa39788ffada092ffaea090ffaea191ffb0a393ffa89a8bff998d7eff938778ff8c8072ff928677ff9d8e7dff968878ffa1917fff9c8e7cffa59482ff9f907effa39381ffaa9b89ffb6a594ffb6a48fffb1a08fffb5a392ffb8a895ffbdae99ffc0b19bffb6a490ffb0a18cffbaa995ffbea993ffb19f8affb3a08bffad9b87ff9a8976ffa1907cff968574ff9e8c78ff998974ff93826eff907e6aff887663ff847462ff837362ff80715fff7f6f5fff786958ff726253ff6f6051ff736353ff6b5c4eff6f5f50ff736254ff6b5c50ff695a4cff67594bff6e5f50ff736353ff705f50ff6c5d4fff2e2518ff5d451aff34270eff624b20ff2f2619ff241e16ff282117ff5a4418ff34250dff483411ff2b2317ff251f17ff261f16ff4e3b16ff2c210cff4b3816ff2b2216ff201a13ff221b14ff3d2e13ff2e220bff3b290eff2d2317ff231d15ff272017ff3e2f16ff392b0e3e48340d3f4c360d372c1d074d2f200aff1d160bff291f0ebd291d0c9a291f0fff271f18ff261e17ff221b14ff221c15ff221b14ff201913ff1f1812ff1f1912ff231c14ff231c14ff201912ff211b13ff211b13ff221b13ff201a12ff251e16ff322a20ff30271eff382f26ff3c332aff3b342cff3c352cff3b342cff3a3229ff383027ff372f26ff332b23ff332a23ff2e261fff2e261fff2e261dff2e261eff2d251dff453308ff433307ff28221bff272018ff30271eff382e24ff362d23ff342b22ff322920ff342a22ff322921ff30281fff302820ff2d251dff2f271fff2e261eff2e251dff2f261dff2e251dff2d241cff2d241cff2b231bff29211aff292119ff29211aff2b221aff2b221bff2a221aff2b231bff2b231bff2d241cff2c231bff594e43ff5a4f44ff564b41ff594d42ff31281fff2b231bff2b231bff2c231bff2d241cff2f261dff2e251dff2d241cff2e251dff30271fff30271fff2e261fff30271fff30271fff312820ff6a5e51ff6b5e51ff716457ff796b5cff77695aff786b5dff786a5cff43382eff3d332aff3c3127ff3e3329ff3f342bff40352cff43392fff43382eff443b30ff443a31ff443a30ff463b32ff473c31ff4e4339ff948576ff948676ff4d4336ff4d4337ff4d4237ff4d4238ff4b4036ff4b4137ff4d4338ff4f463cff53493eff544a3fff53483eff584d42ff5b4e43ff605348ff615347ff615448ff63574bff5f5449ff675a4dff685d4fff685d4fff695f50ff716557ff74685bff796c5eff796c5eff776a5cff7e7162ff877868ff817364ff7f7365ff857867ff827665ff867a6aff8a7d6cff887b6aff958775ff988877ff93836fff938472ff918371ff807160ff6b5b4cff7e7061ff827668ffcea71cffaf9646ff908273ff9c8d7dffa2917fff988b78ff988976ffa59983ff918374ffa19280ffa49585ffa99b8cffaea292ffbeaea1ffae9e8effafa191ffa6998aff9f9283ffa29586ffa09283ff9a8b7bff9b8d7bffa3937fffa79784ffa4947fffa1917dffa39381ffa39381ffa79887ffb09f8cffaa9984ffac9c89ffac9c88ffae9f8cffb5a592ffc4b4a0ffbead98ffb6a58fffb6a590ffb7a894ffae9e89ffae9b85ffb09c85ffaa9884ff9a8875ff968573ff907f6eff9a8875ff978673ff9c8a77ff91806cff857360ff8b7b69ff8b7b69ff867665ff80705eff7d6d5cff7b6b5bff766658ff716254ff685949ff6d5e4dff706050ff6a5c4dff6e5f50ff6d5e4fff6d5d4fff6c5d4fff6c5d4eff503d18ff322714ff322b22ff362914ff4e3c1aff392d1aff453415ff2d210dff2d261fff302719ff463413ff322817ff332814ff372a10ff2f281fff292118ff382b14ff2c2315ff302613ff322610ff2b241dff2b241bff372a14ff302617ff2f2514ff3c2d11ff28221a3d48320c30442d0c3c2c1e07762e200cff261d0eb42f2314ab2d2214ff30281fff322920ff272019ff261f19ff292119ff251e17ff221c15ff221a13ff251d15ff241d15ff231c15ff221b14ff231c15ff332a22ff3d342aff383127ff383027ff3b3329ff3e352bff3d352cff373028ff3b332aff3a312aff3b332bff3c332bff3a3229ff393029ff332b24ff302821ff322b22ff312921ff2f271eff2e261eff3c2e0fff443307ff2a231cff2c241cff261f18ff30281fff332b22ff332a21ff312820ff312820ff322820ff31271fff322920ff332a21ff2e261eff2d251dff2f261dff2b231aff2f261dff2e261dff2c241cff2a221bff30261eff2b221aff2b231bff2a221aff2d251cff2c231bff2d241cff2b231bff2b231bff2c231bff2b231bff393027ff615449ff594d43ff50453aff29211aff2a221aff2b231cff2a211aff2d241cff2d241cff2c231bff2b221aff2b231bff2c241cff2e261eff30271fff30271fff30271fff6d6154ff6a5e50ff6d5f52ff706255ff726557ff726455ff75685aff41372eff3c3229ff3e332aff3d3229ff3d332aff3d3329ff3e342aff3f352cff3e342aff42382eff42372dff473c31ff4b4034ff453c31ff473e33ff65584cff908070ff4f4439ff4e4338ff4c4237ff4b4137ff50453cff56493dff4f4439ff4e4339ff574c40ff574d42ff554b3fff594e42ff5b5045ff5d5246ff5f5347ff64564aff6a5c50ff695c4fff65594cff62574bff6a5e52ff62584dff6e6256ff6c6053ff75685bff706457ff6f6255ff786c5dff7a6c5eff7f7262ff827564ff847767ff847766ff887a68ff847864ff877866ff8e7f6dff928572ff8b7c6aff918471ff948776ff8b7c6aff645445ff716152ff887a6bffb39b4bffd4b327ff9d8f7fff9e8e7dffa99886ffa0907fffa29483ff9b8e7bff978a78ff9e8e7bffa99987ffa59787ffa69888ffaa9c8cffae9f92ffb3a596ffbbad9effb7aa9bffb8a89bff9c8f82ffac9d8effae9f8cffac9d8cffa59481ffa69582ffa59684ffa49484ffa79786ffad9d8affa99a88ffa99886ffa99787ffb6a391ffae9f8bffafa08effc0b1a0ffbcab99ffb2a190ffb8a794ffbbaa96ffb0a08cffbea993ffb7a28cffb8a38cffb3a08affa49280ff938371ff938371ffa18e79ff9c8b76ff978572ff92826dff84725eff8f7e69ff877765ff857463ff7e6f5dff806f60ff7d6d5dff796858ff716253ff6d6051ff6e5f4fff706151ff726253ff766757ff756655ff6e6051ff695b4eff2d251aff342a1bff302921ff2f281eff44361dff564323ff2c2418ff372a15ff2f2820ff30291fff40331aff554321ff31281bff3d2f16ff2b241cff29211aff3a2e19ff4c3a1aff3d2f19ff3b2e18ff29221bff2b251cff3c2f1aff3c2f19ff352913ff453415ff2c251d2f432d0b4147310e4c291c08792b1f0cd72f2619a02c2112ff2f271eff30281fff292119ff282019ff28211aff261f18ff221b14ff221b14ff231b14ff201913ff221b15ff241c15ff3a3129ff413930ff443a31ff41372dff3e362cff3d342bff3e352cff3e352cff3e352cff3c342bff3c342bff3c342bff3b332bff3b332bff3a3129ff312921ff362d24ff383027ff362d24ff342b22ff2f271fff2c251dff473508ff40310cff2e271eff30271dff322920ff352c23ff332b21ff332b22ff332a22ff312920ff2f261eff2f261fff30271fff2f271fff2e261dff30271fff2b241bff2d251cff2e261dff2d251cff2c231cff2c241cff2d241dff2a221aff2d251cff2e251dff2d241cff2b221aff2b231bff2b231bff2a221aff2b231bff2a221bff2d241cff584c40ff5d5145ff2b231bff2c231bff29211aff29211aff29221aff2e251dff2c241bff2e261dff2d251dff2d251cff2c241cff2d251dff30271fff302820ff5f5245ff6e6052ff6e6051ff736455ff716454ff746756ff736758ff393025ff3b3127ff3d3329ff3c3329ff3f352cff3d3329ff3d332aff40362cff41372dff42382fff41372eff40362cff43382fff463b30ff473d32ff443a30ff4a4035ff867a6bff8d7f71ff4c4237ff4c4137ff51453cff51463cff54483eff51463aff52463cff5a4e43ff5a4f42ff574d40ff574d41ff5a5044ff5c5042ff5f5347ff605347ff685a4fff685a4dff6c5e51ff6b5d50ff6b5e51ff665a4eff675b4fff695d50ff796c5eff756859ff7a6c5fff7b6d60ff7e7062ff7b6e5fff827565ff857767ff847868ff827260ff8d7e6bff8f7f6cff948571ff948570ff9a8b75ff988c79ff988a77ff968978ff887869ff6e604fff726252ff908172ffd2ae24ffd6b325ffa39381ffa39382ffa19180ffa49684ff9e9181ffa1937eff9f917effa19180ffa39482ffae9e8cffa79887ffa99a89ffaf9f93ffb3a596ffb6a899ffb9ab9cffb5a492ffa19686ffb1a48fffb1a290ffb8a896ffa99987ffaa9b89ffa79886ffa79786ffad9b87ffb3a18dffb4a18dffab9883ffa79682ffae9d8cffb2a391ffbbab95ffcab9a7ffc0af9dffbbaa96ffb9a996ffb9a891ffbdaa98ffc3ad98ffc2aa95ffc3ac94ffc5b19bffb8a290ffa3907bff978370ff9f8d78ff9d8b78ff9c8a76ff91816fff857360ff897863ff897764ff847361ff796958ff806e5eff7c6b5dff7b6a59ff6e5f4dff706152ff756657ff6e5e50ff6f6051ff756756ff766657ff706152ff4e3d1fff382e1cff29231cff322816ff4f3e1cff382e1fff3f3219ff3f3014ff2f281fff2e261bff473718ff392e1dff3f311aff433418ff28211aff292219ff48391bff352c1dff3d311cff413218ff262019ff272119ff423217ff30271aff362a1aff3b2d13ff2b241c4b46300f5344301055271b08522e1f0aff2f271fff302820ff2d251dff261f18ff271f17ff241c15ff221b14ff231b14ff241b14ff241c15ff30271eff40362cff3f362bff443a30ff463c31ff443b30ff3f362dff3e352bff40362dff3b3329ff3e362cff3e352cff3d342cff3a322aff3b332bff393129ff342e25ff3a332aff3b332aff352c24ff362d24ff372e26ff332b23ff2f271fff2e261fff473408ff453408ff2f271eff2b231cff382e24ff352c22ff352c22ff342b22ff352d23ff322a21ff332a22ff312920ff30281fff2d251dff2f261fff2e261eff2d251eff2d251dff2b241cff2c241cff2d251dff2a221bff2b231cff2a221aff2c241cff2e261dff2e261dff2d241cff2c241cff2b231bff2b231bff2b231bff2d241cff2c231bff2f251dff54483dff41362dff2e251cff2e241cff2e251cff2c231bff2c241cff2e251dff2c241cff2d251cff2e261dff2c251cff2d251cff31281fff31281fff53483bff695c4eff695c50ff695d50ff6b5f52ff6f6254ff6e6254ff362d23ff382e24ff332b22ff3b3127ff3d3228ff3f3428ff40352bff3c3329ff3e352bff706456ff483e33ff42382eff453b31ff453b30ff42382dff40362cff443a30ff473c33ff463c33ff8c7e71ff4b4137ff4f4339ff4e433aff4d4138ff51463cff4d4338ff574c41ff554a3fff5c5045ff5a4e43ff5a4f43ff5b5044ff5e5245ff605346ff64584bff6c5e51ff6d5e52ff6b5d50ff716254ff716454ff726556ff756757ff685c4eff77695cff796a5dff796c5dff7d6e61ff7f7364ff7c6f61ff7e7062ff887a69ff847664ff867867ff8b7d6cff897b6aff8a7c6cff8e826fff958775ff998b79ff978773ff938573ff837666ff706050ff645444ff948373ff9a8979ffd5b022ffcaac3fff9f8e7cffa39381ffad9c8affab9c8bff9b8f7cffa39480ffa89985ff998b78ffa89987ffab9b8affad9e8dffb3a494ffb9aa9bffb2a596ffa79a8affb9a99cffbeaf9fffa19381ffb9aa94ffbaab96ffb3a390ffa59784ffa79784ffa79582ffa89783ffaf9e89ffaf9e89ffaa9987ffab9882ffb1a08bffb9ab97ffc4b5a2ffbdad97ffc0b09bffbeac98ffb6a591ffb8a690ffbaa992ffb9a895ffc9b59effccb69dffc8b39cffcab59fffc1ad96ffad9984ff9b8773ffa5927dff9b8b79ff948473ff92836fff8e7c69ff8a7964ff8c7b67ff847461ff726454ff716152ff736354ff736253ff736252ff746556ff736457ff6a5c4dff726253ff736354ff776858ff302614ff56421aff453822ff604717ff2e2514ff33291aff2f2517ff493410ff433521ff503b16ff2a2010ff2d2415ff2f2516ff4a3711ff493b23ff58421aff2d2311ff322819ff2f2517ff3e2d0fff4b3a22ff4f3a17ff2a1f0dff2e2418ff2e2415ff3e2e10ff5643214a422e0d46402d0e55261a08532c1e09ff352c23ff312920ff282119ff241d16ff221b13ff211a13ff221a13ff251d15ff362c23ff41372dff42382eff463b30ff453b31ff43392fff40362cff3e362cff3c3329ff3a3027ff393128ff3e342bff3f362dff3f372dff3d342bff3b332aff3b332bff3d342cff3d362cff3a3229ff342d24ff362d25ff372e24ff312922ff302721ff2d261fff42330fff493709ff2e251cff2c251dff2c241dff332a21ff352c22ff342c23ff352e25ff372e24ff352d24ff342c22ff342b22ff342a22ff302820ff2e261eff2d251dff2e261eff2f271fff2c251dff2b241cff2b231bff2b231bff2b231bff2d251dff2c241cff2a221aff2b231bff2c241cff2b231bff2b231bff2c231bff2b231bff2c231bff2a211aff2d231cff3b3128ff2d241cff2e251cff2f261dff2f251dff2f251dff2e251cff2d241cff2d251cff2d251cff31281fff30271eff2f261eff30271eff3d3328ff695d4eff675b4dff675a4eff6b6054ff6d6155ff6d6154ff372e25ff393027ff392f25ff372e24ff3b3227ff3d3328ff3e3328ff3d3329ff3b3329ff695e51ff494035ff463c32ff483e33ff483d32ff4a3e33ff473c31ff463b31ff473c32ff483d33ff443a30ff574c41ff87786aff4a3f36ff4f443bff4b4036ff4f4339ff53483eff574c42ff51463bff564b40ff5a4f43ff5a4f42ff594e42ff5e5245ff625548ff625549ff625549ff64574cff6d5f53ff716357ff6f6255ff77695bff7a6b5cff7b6c5fff7a6b5eff7b6d5fff75685bff7c6f60ff837566ff847665ff7f7263ff887a69ff827665ff887b6aff887a69ff897a6aff8d7f6eff938575ff958775ff9d8f7aff9d8b76ff9b8a75ff918271ff877967ff6a5b4bff655647ff968778ffad944bffd5b01fffa9956dffa69485ffa39483ffa39482ff9b8d7cff9a8b79ff958775ff998a77ff9a8c7affad9b8bffac9c8cffb4a595ffac9c8bffb2a494ffb4a596ffb6a698ffbaac9cffb7a998ffb4a391ffb8a792ffb7a791ffa69784ffa49382ffa09080ffac9b88ffae9c88ffa99884ffaa9a87ffb09f8bffb3a08affb7a58effbfae99ffb3a38effb3a28effbead99ffc4b29effc2b19dffc0af9bffbeac97ffc1ad98ffc3b099ffc0ac92ffbaa692ffb29c87ffab9582ffa38e7cff9e8c79ff9c8975ff9d8a75ff968470ff998774ff978470ff927f6aff8e7d69ff897866ff80705fff766554ff746252ff6d5c4eff6e5e4fff6f604fff706252ff6e5f50ff706151ff7364545a33250d653b2c0d6d43310f5d3e2d0c5b3e2d0b633d2d0c633d2c0d5a39290c5c3e2c0d583d2c0c67412e0d833b2b1066412f0e663f2e0e6f4030116343300f5a422f0d55412e0d54412e0d4e402c0d222e1c0a4d44300e47402d0b49412e0b523e2c0c69422f0f64402d0f413d2a0d4b48320f68251a092d201808ff231c15ff251e16ff261e17ff251e16ff231c15ff282019ff423930ff473f36ff494036ff43392fff473d32ff463c32ff42382fff40372dff41382fff3e352bff3b3229ff3b3228ff3f362bff40362cff3f362cff3d352cff3d352bff3e362dff3f372eff3f372eff393128ff2e2820ff352d24ff312921ff332c23ff2f2820ff2c251eff2e2720ff4a3809ff3b2e15ff2d261eff2f271eff31291fff372d23ff352d23ff342c24ff322b23ff342c23ff352c23ff362d23ff322920ff30271fff2e261eff2f261fff2e251eff2d251eff2b241cff2d261eff2e261eff2c241cff2e261eff2d241dff2f261eff2c241cff2c231bff2a231bff2b231bff2e251cff2f261dff2e251cff2c231bff292119ff2a221bff2d241cff2c231bff2c231bff2d241cff30271eff2e241cff2e251cff2d241cff2d241cff2c241cff2d251dff30271eff2c241cff2d251dff2d251dff62574aff625749ff65594cff63574bff6c6054ff6f6457ff382f26ff382f26ff362d24ff382f25ff3d3228ff3e342aff3f352aff3e342aff3d342aff6e6054ff7d6e60ff3f362dff40372cff43392fff473c31ff4a3f34ff483d33ff463c32ff453c31ff463d32ff483e34ff483f34ff76685bff5e5349ff51463cff4e4338ff53483eff54493eff584e42ff53493eff564b40ff584e42ff5c5044ff625647ff675a4dff67594bff635649ff5e5246ff63584dff6a5d51ff6b5d50ff6c6054ff73675aff7c6f60ff76695aff7b6e5fff7a6c60ff796c5dff7a6e5eff7f7363ff857868ff7c7063ff7e7262ff7d7062ff847767ff817663ff857867ff847565ff938573ff988978ff978876ff968874ff928571ff958874ff9c8c7aff827260ff6a5b4aff857462ff96897affdab829ffdcb624ffa08f7dffa1907fff9e8e7dff9f8f7dff9f8f7eff9e8e7dff9c8d7aff9e8e7bffa29180ffae9f8bffb8a694ffb7a897ffb3a391ffbaab9bffbeae9fffc1b3a4ffb7a796ffbaa996ffb6a390ffaa9883ffb1a28cffa69584ffa59482ffa49583ffab9987ffac9b88ffad9b87ffab9b89ffa99784ffb39f8affb2a08cffbca994ffc0ae9bffbcab98ffc2af9cffcebba7ffd2bfabffc9b6a2ffc5b39fffc2af9affc8b6a0ffc4b09bffbba792ffb6a08cffac9983ffa1917cffac9781ffa28f79ff9e8b76ffa2907aff9c8b76ffa08f78ff93806cff988572ff8e7c6cff897867ff706051ff756454ff756355ff7f6e5dff746455ff756557ff6d5f51ff786856ff383028ff342c25ff332b23ff352d25ff302821ff322a21ff312922ff322b24ff302922ff29231dff2d261fff2e261eff31281fff322a20ff312a20ff322a20ff322920ff322920ff312820ff352d24ff2f261dff30281fff322b21ff322a22ff332b21ff342d23ff332c234e432f0e4c46320f3131240a3d342609ff251d16ff281f17ff3a3127ff453c33ff443c33ff443b32ff453c33ff453c33ff453c31ff443b30ff41382eff433930ff42382fff40372dff3b322aff3c332aff3f362dff3b322aff3f362dff3d342bff3e352bff3c342aff3d352bff3e362dff3d352cff393028ff362e26ff342c24ff322a22ff312921ff332b23ff302921ff2f2821ff4b3909ff493609ff2c251eff2e251dff30281fff342c22ff372e24ff372e25ff372e25ff372f25ff382f26ff382e25ff352c23ff332a22ff30271fff2e261eff2e251eff2d251eff2e251eff2e261eff30281fff2d251cff2f271eff332a21ff2d241cff2d241cff2c231bff2d241cff2c241cff2e251cff2c241cff2b231bff2e251dff292119ff2a2119ff2a2119ff2c231bff2e241cff2f251dff2f251dff2d231bff30261dff2e251cff2e251dff2f251dff2e251dff2e261dff2e261eff2d251cff31281fff64574aff63574aff665a4dff665b4eff6c5f51ff685c4fff382f26ff382e26ff352c23ff382f25ff3d3429ff3f352aff3e3429ff3f352bff41372dff736558ff7f7162ff42382dff42382eff453b30ff493e33ff4b4034ff4c4135ff4d4237ff453a32ff483e34ff463c31ff473d32ff483e34ff4d443aff908475ff50453aff50453aff574d41ff5d5145ff54493eff544a3fff554a3fff594f44ff5d5145ff62564aff65584cff64584bff63584aff625648ff625547ff65594cff685c4eff6c5f51ff746659ff78695bff796b5cff7d6e5fff786b5eff786c5fff7c6f61ff837666ff827364ff7f7362ff817565ff7c6f5fff8b7d6dff8c7d6eff8d7e6eff938574ff928472ff988977ff9b8c79ff958574ff948571ff9d8e79ffa39480ff9e8d7aff766757ff584b3dff978877ff988978ffdab423ffdcb723ffa29281ff9a8977ffa08e7dffa59585ff9d8f7dff948375ff9c8d7dffa99988ffa89887ffab9c8bffaa9b8bffb8a793ffb0a08effb8a898ffbcad9effc0b2a1ffb4a391ffb3a493ffac9c89ffad9a87ffa19281ffac9c8bffa69682ffaa9a87ffb1a08cffac9b88ff9e8f7effb3a08cffb4a28dffb2a08cffbcaa93ffc6b3a0ffd3c0abffbbaa97ffc8b5a0ffd0beabffd2bfadffcab7a2ffc4b39effc1af9bffccb8a3ffbda592ffb7a38dffbca791ffa99682ff9b8777ff9f8c78ffa3907affa38e7affa5927fffa5937fffa6947fff998672ff968270ff958270ff867462ff7b6a5aff7b6958ff756352ff806e5dff796656ff7b6a5bff776759ff53493eff4e443bff4d4439ff4b4136ff473e33ff453d32ff443c32ff3b342bff3e362dff42382eff42392eff483e33ff483e32ff4b4135ff463d32ff463c32ff42392fff453a30ff433a2fff3f352aff42382dff473c31ff494035ff483d32ff4a3f34ff42392fff3e342a4743300e53503b1345503b0ff52c231aff42382eff483d32ff483d31ff43392eff453c32ff443b32ff433a32ff443a30ff42382eff443a31ff3f352cff41372fff3f362dff3e352cff3d352cff3e362dff3e352dff41382fff3c332aff40362dff3e352bff3d352bff393029ff3b322aff3a3128ff342d25ff332b24ff322a22ff302921ff352d24ff332b23ff322a22ff453612ff4c3c0cff302921ff302a22ff29221bff30281fff393025ff382e24ff372e24ff372e24ff352c22ff362e24ff342c23ff342b22ff322921ff2f271fff2a231bff2e261eff2f271eff2d251cff30271eff30261eff2c241cff2d251dff322920ff2d251cff2d241cff2d251cff2b231bff2a231bff2b231aff2c231bff2d241bff2e251cff2c231aff2b2219ff292119ff2d241bff2e251cff30261dff2f251dff2f261dff30271eff2e251cff2d241cff2e251dff2f261eff2f261eff2e251dff2e261dff605447ff605549ff60554aff63584cff665b4fff584d41ff372e24ff392f25ff372d24ff382e24ff392f24ff3d3328ff3c3328ff3f352bff40362cff776a5cff796c5eff625549ff40362bff42392eff42382eff453b2fff473d32ff463c32ff473c33ff443b32ff463d33ff42382eff463c31ff483d33ff4a4034ff7e7062ff8d7f6fff4f4438ff51473bff5a4e42ff584e41ff584d41ff594e42ff584e41ff564c40ff5c5144ff65584bff625649ff675b4fff64594aff66594aff605549ff6c5f51ff736556ff786a5bff7a6b5cff7a6b5cff7e7060ff7d7060ff7e7162ff827567ff7f7064ff86796cff867768ff7f7363ff7f7261ff817463ff847767ff867868ff877b6cff908271ff948774ff9c8d79ff978874ff9b8a74ff978670ffa0907aff988973ff8a7a67ff645748ff7b6c5bff978876ffc6a739ffdeb823ffb9a261ff978573ff9c8c79ff928275ff9c8d7eff97897aff978879ff9d8f80ff978977ffa89788ffb1a292ffab9b8bffb29f90ffaa998bffb2a391ffb5a494ffb4a492ffae9f8dff998c7bffa79888ffa09180ffa39282ffac9c88ffb7a594ffb4a390ffb9a996ffb8a793ffb5a48fffbfad99ffc0af9bffbdad9affcbb8a2ffd7c4afffd3c0acffc9b7a4ffcebda7ffcdbca7ffd4c2adffc8b6a2ffccbaa6ffc8b5a0ffc6b29dffc3ae96ffb6a18bffb7a38dffae9b86ff978674ff9b8a77ffa28f7aff9d8974ffa3917cffa18e79ffa28f7bff998571ff8d7c6aff827060ff806d5dff7d6c5cff716151ff796756ff7e6d5cff7e6e5dff7b6b5bff4b4036ff473c31ff493f35ff463f35ff423b30ff40392fff3f372fff423b31ff453c32ff423a2fff473d32ff473d31ff4d4237ff4b4035ff4b4034ff483c31ff483e33ff463d31ff41382dff433930ff493e34ff483e34ff463c32ff4a3f34ff473d33ff3d33292a47340f3c4c38116b5b4519f0463c2eff463e32ff493f33ff483d31ff463a2fff473c30ff453b31ff443b32ff42392fff423930ff433a31ff3f372fff403830ff423930ff443a30ff423a30ff423930ff3f372eff453b32ff3f372dff393028ff3c3229ff3e352bff3e342bff3f372dff3e342bff3d342cff332b24ff342c24ff322a22ff342c24ff352d24ff302820ff322b23ff4d3c0bff4b3c0cff322c23ff2b231cff28211aff312920ff393026ff3a3127ff393026ff3b3228ff382f25ff362e24ff352d24ff362e25ff322a21ff2d251dff2d251dff2f271fff312920ff2f261dff2f261dff2d251cff2d251cff2d251dff2e261dff2d251cff2f261eff2b231bff2d241cff2b231bff2d241cff2e251cff2c231aff2c231bff2b231aff2b221aff2a2119ff2b221aff2e251cff2d241cff2f251cff31271dff2e251cff2e251cff2d241cff2d241cff2f251dff2f261eff30281fff63584bff63574bff5c5247ff64594dff695c50ff453b31ff342c24ff362d24ff392f26ff372e25ff382f24ff3a3025ff3e3428ff3e3328ff3e342aff76695cff74685aff74675aff3e352aff42382dff443a2fff44392fff4b4135ff4a4135ff483e33ff4a4035ff4e4338ff483e34ff453b30ff473e32ff4b4137ff4e4439ff4c4236ff918373ff50463aff51463bff54483dff564b40ff574b40ff615548ff594e42ff5e5346ff5f5246ff64584bff665a4cff65584bff65594cff685b4dff675a4dff685a4eff6f6053ff756658ff78695bff796a5bff827262ff7c6d60ff7d6f62ff7d7063ff807164ff857667ff857767ff8c7e6eff8e806fff8b7c6cff837564ff8c7e6cff958471ff877868ff8f8273ff938473ff9a8b77ff988877ff998a77ff998a75ffa4947effa3947fff857462ff6a594aff867664ff9a8c78ffe3bd27ffe3bb24ff9a8a79ff9a8c7affa49483ff9c8f81ffa19487ffa49484ffa89888ffa69989ffa49687ffb3a292ffb1a18fffa39484ffa59584ffb1a08effb7a896ffbaaa98ffc0ae9dffbeae9dffa7998bffb19f8dffa49482ffa99988ffaf9e8dffa99988ffb7a691ffbbaa97ffc2b09cffc3b3a2ffbead9affcbbaa8ffc9b7a3ffc5b39fffc3ae9affcfbfa9ffd0baa6ffd1bda9ffc7b6a1ffd4beaaffd9c4acffdac7b1ffcbbaa4ffc4b09dffbfab96ffbea994ffae9c8affaf9d89ff9b8878ff9c8b7aff9f8c78ff9d8b77ffa89580ffa1907bff9c8c7aff917e6cff8e7c6aff867563ff7e6e5dff7d6d5dff6f5f50ff776659ff786658ff7b6b5dff4c443aff4d453aff484036ff484036ff433a31ff41392fff423a30ff463d32ff4c4136ff4a4035ff4a4035ff4d4338ff4b4136ff4e4338ff493f34ff4d4439ff453c33ff433b31ff42392fff443b31ff473d33ff423930ff42382eff463c32ff453b32ff453b30ff443a2fff453b30ff4b4135ff4a4034ff493f33ff493e33ff493f33ff473c31ff41372dff463c32ff473d33ff433931ff4b4035ff453c32ff463b31ff453b32ff453b32ff453b32ff423930ff3f342bff3d342bff3d332bff40362eff42382fff40362cff40372dff3f362cff3e352cff3a3128ff352d25ff3a3229ff362d24ff332a23ff322923ff332a23ff332b24ff503c0bff4e3c0bff342d25ff322921ff2d241cff312920ff362e25ff383026ff393026ff382f25ff3a3126ff372e24ff332c22ff362d24ff30281fff2e261eff2d251dff2f271eff31281fff30271eff2f261dff2c231bff2b231aff2b231bff2d251dff2b231bff2f261dff2f261dff2f261dff2b231aff2e251cff2a2119ff2a2119ff2d241cff2b221aff2c231bff271f19ff2a2119ff2c231bff2d241cff2e241cff2f251cff2e251cff2e251bff2d241cff2f261dff2f261eff332920ff2f261eff605346ff64574aff63574aff63574aff655a4dff493f35ff342b22ff352c23ff372e26ff3a3127ff393026ff3d3227ff3e342aff3e342aff3f342aff776a5cff7a6d60ff796b5eff3e342aff3e342bff41382eff43392fff443a30ff473e33ff473e33ff4b4135ff4a4034ff4b4036ff463c31ff443a30ff443b30ff4a4035ff4f4439ff4c4237ff87796aff847768ff51463bff53483eff594d41ff55493cff605445ff625446ff615445ff5c4f44ff625549ff5e5246ff645649ff65594eff695b4dff6d5e52ff6b5c51ff65574bff706154ff746659ff736558ff837464ff807262ff867966ff7b6f5fff867769ff8e806fff8e7f6fff877868ff897a6aff8a7d6bff938672ff8f816fff908270ff8e806eff8d7f6eff918372ff9d8e7bff9d8f7dffa2917effa0927fffa29582ffa29480ff8b7c6aff685748ff705f50ff988775ff948371ffe9c027ffeec72dff9f907fff9f9182ffa49484ffa59585ffa39688ffa69888ffafa192ffb1a192ffa79485ffaa9a89ffaf9e8cffaa9987ffb3a28fffb7a693ffb6a490ffbeac99ffbeac9dffafa291ffa79b8affa49686ffaf9e8bffb2a08fffaf9e8effab9b8cffbda999ffb8a590ffc6b5a2ffc2b19dffc1af9bffc0ae9cffc0ad9cffbfae9affcebaa7ffc6b59effc6b09affd1bea9ffd3bfabffd5c1aeffd7c2adffd3bfabffb8a794ffaa9b8affb3a391ffbeab99ffb3a08effaf9d8dff9c8c7eff978778ffb39d8aff9f8c7bff9c8b79ff978675ff9c8c7aff978572ff958270ff8f7c6cff857463ff81705eff6d5e51ff716253ff746657ff4f453bff4e453aff443c33ff433c33ff453d34ff483f35ff4e4338ff554a3eff4d4338ff4e453aff50463bff54493eff54493eff51483dff4d443aff4b4237ff4c4339ff463c33ff483e35ff483e34ff453c32ff483f34ff493f35ff493f34ff463c32ff493e33ff493f34ff4b4035ff463c31ff463d32ff43392eff443a30ff41382eff443a30ff41382eff433a30ff463c32ff473c32ff453b31ff493f34ff4b4137ff4a4035ff42382fff443a30ff40352cff43392eff40372dff40362eff42382fff41372eff40372dff3f352bff3c332aff3b322aff3a3128ff3f362cff382f26ff372e27ff342b25ff312922ff312822ff413319ff4f3d0bff3a2f1fff352c23ff342a22ff352a22ff352c23ff382f25ff382f26ff362d23ff382f25ff362c23ff332b21ff322921ff31281fff30281eff2e251dff312920ff30271eff32291fff30261eff30271eff2e251dff2f261eff33291fff30271eff2d251cff2f271eff2f261dff2d241bff2b221aff30261eff2a221aff2b221bff292119ff292119ff2a211aff2b221aff2d251cff2d241bff2e251dff2d231bff2f251cff2f251cff2f261cff2d241cff2e251cff2e241cff2e251cff51463aff5f5346ff605347ff5d5145ff63584aff3b3027ff332a21ff352c22ff362d24ff362d24ff362d24ff372e25ff372e25ff3a3127ff3d342bff776a5aff746557ff756759ff53473cff3e332aff3e342bff40372dff43392fff42392eff463c30ff463d31ff453b30ff493f34ff463c31ff473d31ff463c31ff493f34ff493f34ff4c4238ff4e4339ff4f4439ff908272ff61564aff5d5144ff5a4e41ff584d40ff5c5043ff5e5243ff5e5344ff5c4f42ff695d50ff615549ff5f5448ff60554aff605448ff675a4eff6d5f52ff736558ff726557ff786b5dff76675bff7c6f61ff837566ff827664ff7f7162ff7f7163ff837566ff837566ff847464ff887969ff8c7e6eff8e8170ff8a7e6eff918272ff8d7f6fff928471ff938573ff978675ff948673ff988877ff958776ff948677ff9e9384ff9f917dff8d7b68ff726251ff725f50ff938475ffd3ae3dffe7bb24ffa39070ffa89685ffa69685ffae9f8effaa9c8effb1a393ffafa090ffab9c8bffaa9a89ffa99785ffa49380ffb09f8dffb5a392ffb19f8fffbcaa98ffbba995ffb8a793ffb3a393ffb4a593ffb3a696ffbead9bffa99a8bffa49586ffad9e8dffa69586ffb9a796ffb6a492ffbeac97ffc4b09bffc0ae97ffc1ae98ffc5b39effc4af98ffc4ae98ffc3ae9cffd7c1afffd3c2b0ffd2bfb0ffddcab9ffcfbdabffc5b5a2ffc1b09effb9a99bffbdac9bffb9a897ffbca996ffa49383ff9f8d7fff9d8d7effa08e7dffab9986ffa2907cff9b8a78ff948574ff9d8b78ff9c8875ff998575ff8c7b6aff887767ff78695aff756757ff463d35ff473e34ff50463cff534a3fff544b3fff554b40ff554b3fff54493eff564b3fff574c40ff574c41ff554b40ff51473cff50463dff4b4137ff4d443aff4c4339ff52483cff4e4338ff4d4439ff4b4238ff4c4237ff4a4036ff4a4036ff4e4337ff4c4236ff4a4034ff4b4136ff494035ff473d33ff473d33ff453b31ff453b31ff443a30ff453b31ff473d33ff493f36ff50453aff4c4138ff483e35ff473d33ff4a3f34ff4a4036ff4a3f35ff4c4137ff4a4036ff4b4137ff473d33ff443b32ff3f362dff3c3329ff40372dff3d342aff3d342bff3d342bff352c25ff342c24ff372f27ff342c25ff332b24ff312922ff4f3b0bff463510ff332a22ff382e26ff392f25ff362c23ff342b22ff352d23ff372e24ff3b3227ff393025ff352c22ff362d23ff332a21ff30271fff2f261eff2f271eff31281fff30281fff31291fff332a20ff2e251dff2e251dff2f261dff32281fff30271eff30271eff2f261dff2f251cff2a2119ff2c241bff2c241bff2b221aff2b221aff2c241bff2b221aff292119ff2c231bff2d241bff2e251cff2c231bff2e241cff30261dff2d231bff2d241cff2c241cff2c231bff2e241bff3b3128ff5c5144ff605347ff5c4f43ff5a4f43ff332a20ff302820ff322a20ff352c23ff362d23ff352d24ff372e26ff362d24ff372e26ff3b3229ff6f6155ff746759ff706255ff76695cff42382dff42372dff3d332aff3b3229ff3f352cff43392fff493f32ff483f33ff493e33ff4b4034ff463b30ff463c30ff473c30ff473c30ff4b4036ff4c4237ff4d4338ff53493dff8a7c6dff8f8273ff554b3eff5a4e41ff5c5043ff5c5144ff5c5043ff5d5041ff564b3dff605447ff62574aff615649ff65594cff6a5d50ff6b5e51ff6d5e52ff746557ff746658ff786a5dff726558ff7b6d60ff837667ff817364ff807264ff7a6d60ff7d6e60ff807060ff7e6f61ff867868ff8a7c6bff837666ff817365ff857868ff887b6cff8f8170ff908271ff968775ff968875ff998a79ff96897aff968a7bffa09182ff998c7cff978776ff6a5a4aff5b4c3eff958675ff918170ffe4b925ffeabc23ffa08f7cffa79786ffb3a291ffb6a797ffb6a798ffaea090ffab9d8cffb2a495ffbaab9cffbdac9cffb7a897ffbbaa99ffbeaf9dffbcab9affb5a491ffae9c89ffbcac99ffb5a594ffbeae9cffa9998aff9e8f7fffaa998affb6a696ffa69989ffac9c8bffac9c8cffab9d8bffb4a28effb5a390ffc3af99ffbfac98ffc7b49dffc8b49effccb8a4ffddcab8ffdfccb8ffd4c3b1ffd2c1afffd3c2aeffccbca9ffc0ae9cffb6a695ffaa9c8dffb2a290ffb5a494ffb5a091ffa69688ffa59585ffae9e8cffb9a591ffb8a58fffb7a592ffb1a08bffa79783ffa99886ffa3927fffa3917fff958372ff907f6eff837364ff51473dff554c41ff5d5346ff574d40ff5a5046ff574e44ff544b3fff574d43ff5a5044ff5b5044ff5e5247ff554c41ff53493fff4f453bff53493fff4f453aff4f453bff544a3fff51463cff4f453bff4d4239ff4f453aff4c4237ff4c4338ff483e34ff494036ff473e34ff443b32ff483e35ff4a3f36ff463c33ff42382fff473e34ff483f35ff473d33ff473d34ff4a4137ff493f35ff473e34ff41382fff42382fff463b31ff4a3f34ff4d4339ff4c4137ff4b4035ff493e33ff473d34ff423931ff40382fff3f372eff443a31ff3d342bff362e26ff3a3128ff3c322aff3c332aff382f26ff372f27ff362e27ff533e0dff503e0eff362d26ff372e25ff352c23ff3b3127ff3c3329ff3b3127ff3c3228ff3a3026ff382f24ff372e23ff352c22ff322a21ff312920ff2f261dff322820ff2f271eff312820ff332a21ff352c22ff362c22ff2d241dff2f261eff30271eff30271eff32281fff31281eff31281fff31281fff2f261dff30271eff2d251cff292119ff2a221aff29211aff2a211aff2c231bff2e241cff2e241cff2f261dff2f241cff30261dff2d241cff2a221aff2b221aff2f251cff2e251dff302820ff5c5146ff605548ff5f5346ff5b5043ff332a21ff31281fff322920ff342a21ff3b3025ff392f25ff362d24ff372e26ff3d332aff3d342bff75685bff75685aff796a5bff736558ff40362bff44392fff453b30ff44392fff453a30ff44392fff483e33ff4a3f33ff494033ff453b2fff4a4033ff453c30ff443a2fff483e31ff493e34ff493e33ff4a3f35ff52473bff5a4e40ff564c40ff948578ff5e5346ff5d5142ff594d41ff5f5244ff615648ff5d5245ff65594cff6b5d51ff695b4fff625549ff625549ff65584bff685a4fff6f5f53ff746558ff75665aff7c6e61ff7c6f61ff807062ff837567ff807163ff7c6e60ff837264ff7e7061ff807565ff85796bff8a7e6dff887b6aff837865ff877a6bff8e816eff8e806fff908172ff998977ff948673ff958774ff938574ff9b8e80ffa39789ffa79a8aff9a8d7dffa69883ff9a8a7aff766757ff776859ff8b7e6fff9b8b79ffedc52bffecc846ffa69583ffb2a191ffbfb0a0ffac9c8dffa69786ff9f8f84ffa09285ffbbac9dffb7a694ffccbbabffbcab9bffbaac9affc1b3a0ffb5a795ffb2a290ffc1b29fffbead9bffbcac9affb5a896ffb8aa98ffc1b19fffc0af9cffaa9a87ffb9a697ffb1a091ffbba89affb1a291ffb1a08fffc3b09cffd0beaaffc9b7a5ffccb8a4ffd4bfacffd9c7b5ffdcc9b4ffd5c2b1ffbdaa9bffcbb9a6ffc7b6a3ffcab7a4ffa9998affad9c8cffb8a895ffae9e8effc0ae9dffbdac9affa39689ffbba898ffc0ae9bffc9b59fffc2ae9bffb8a793ffafa08dffac9b87ffab9b89ffa99686ffa59181ff998876ff978878ff52473cff5b5043ff594e42ff51483eff52483fff51483eff52483eff574d43ff554c41ff584d42ff544a40ff53483dff50453bff50473dff50473cff53483dff51473dff4e453bff52483eff52493fff554c41ff50473cff52483dff51463cff4c4238ff4d4339ff483e35ff4a4037ff4b4137ff493e36ff4b4137ff4a4036ff453c33ff423930ff453b32ff463c33ff473d33ff473e35ff453c34ff423830ff3b332aff3f362dff483d33ff483e34ff473c33ff41372eff3e352dff41382fff403730ff4b4138ff3d342bff40352dff322a23ff372d26ff3d332bff3a3129ff3b3229ff372e27ff362e26ff483a1aff524011ff302922ff312a23ff2f261fff342c24ff3b3228ff40372cff3e342aff3b3127ff382f25ff3a3026ff362d24ff362d23ff332a21ff352b22ff32281fff31281fff322920ff342a20ff322a21ff352c22ff352c22ff362d23ff2e261dff2e251dff32291fff2f261dff2d241bff2f251cff2d241bff30271eff2b231bff2c231bff2a2219ff2a2219ff2a211aff2b221aff2a211aff2b211aff2c231bff2a2119ff2a211aff2d241cff2e241cff30261dff2d231bff2f261dff32291fff5c5145ff5c5247ff615648ff594d41ff30271eff30271eff30281fff322920ff342b21ff362c22ff3a3026ff362d24ff393026ff393026ff6c6052ff726557ff726558ff74675aff44392fff45392fff463b30ff453a30ff43382fff4a3f34ff4a3f34ff483d32ff483d32ff493f33ff4b4134ff4a3f34ff4a4034ff4a3f33ff483e32ff483d33ff4b4035ff4f4437ff51463aff54493dff5a4e41ff9a8a7aff7c6e5fff53493dff5c5143ff584c40ff564b3fff5e5246ff5b4f42ff695b4fff615448ff66584bff615449ff645749ff6b5d50ff6b5d51ff6d5f54ff6d5e55ff73655aff716458ff716559ff7c6e60ff817165ff897b6dff827365ff8c7d6dff908271ff8a7d6cff8a7e6fff948673ff857867ff837565ff857869ff897d6bff8b7e6cff8f816fff948674ff998977ff928272ff9c8d7bff9a8c7bff9c8e7bffa19482ff9e9080ff988c7bff807061ff55483cff81715fffa39183ffd4b64efff1ca2fffa89773ffa89887ffab9c8bffac9c8bffb8a99cffb8ab9dffac9e8fffa09284ffa29485ffb9a897ffcabbabffd1c1b0ffc9b6a4ffbdad9bffc4b4a4ffc9b8a7ffc1b09fffc1afa0ffbfad9effbeaf9dffb6a491ffb8a899ffbead9effc8b8a7ffc3b2a0ffc4b3a3ffc3b3a4ffbeada0ffb5a696ffd1c1afffb5aa9bffc8baaaffd1c0b1ffd8c6b5ffc4b1a5ffd1bfb0ffcfc1adffd4c4b2ffd4c2b2ffcfbfafffc2b19fffd1bdabffb3a695ffb8a999ffb6a495ffad9d93ffbaa99affad9e8dffc2b19fffd1bea8ffcdbda9ffcebaa4ffc3b19fffbfad9cffac9b8affb3a391ffaf9e8cffa59584ffa0907fff443c33ff413a32ff473e35ff453d34ff4a4138ff494138ff484038ff403830ff3f372fff40382fff3e362eff403830ff3d352eff3d362dff3e352dff3e362dff3d352dff3c352dff3a332bff3b332cff413830ff493f36ff4c4137ff483e34ff473d34ff41362fff443a32ff443a32ff423830ff3f362eff41372fff463c34ff473e35ff493e36ff483e36ff483d34ff413830ff443b32ff3b332bff3a322bff3c332bff41382eff453c32ff463b31ff463c33ff473e34ff443a31ff594d44ff5a4e45ff564b41ff4d4339ff3c332bff352e26ff393028ff3e362dff3e352cff342c25ff302821ff372f22ff52400eff51400fff312a22ff2f271eff2e261fff372e25ff3d3329ff3f352bff3f362cff362d24ff382e25ff352b23ff362d23ff392f24ff382f25ff332a20ff342a21ff332a21ff332a20ff32291fff332a21ff352c21ff322920ff352b21ff31281fff31281fff32291fff30271dff33291fff2e251cff2e251dff2e251dff2c241bff2b231aff2b221aff2b221aff2c231bff2c241cff292019ff2c231bff2a211aff2c221aff2e241cff2c231bff2d241cff2b221aff2d241cff2d241dff5c5044ff5a5043ff594c41ff54493dff2d241cff2e251eff30271eff31291fff322a20ff322a20ff332a21ff352c22ff332a21ff393025ff6a5e4fff706354ff716356ff746659ff4d4237ff41362cff3e3329ff3e3329ff44392fff463c31ff473c31ff473c31ff493f34ff483d31ff453b30ff463c31ff4a3f33ff4e4337ff50453aff483d32ff483e33ff4e4438ff504539ff53473bff55483cff594c3fff5b4e42ff67594bff564c3fff5a5042ff5e5445ff5d5244ff64584bff5f5447ff63564aff675b4dff64584aff635749ff66594cff695c4fff6b5f53ff6d6155ff685b52ff72665aff716358ff75675aff7c6c60ff7c6c60ff84766aff7d7062ff867768ff877a6cff938573ff8b7e6cff827263ff857665ff7f7161ff887b6dff847466ff8b7c6bff8b7d6bff8d816fff908372ff928371ff8f816dff9f8e7aff9e907cffa1927effa59685ffa39484ff9c8d7cff7b6c5cff716252ff847567ff7f7469ffddb926ffe1bc27ff9e9082ffa49588ffa9998affa99989ffa6988aff9e9284ff948779ff8f8375ff9b8c7fffa59889ffb4a797ffb3a595ffbeae9effbeb09effbcad9affbbab9bffc1b0a1ffb3a296ffc0afa0ffa6988bff9c9082ffafa191ffbdaf9fffbaab9bff9e9284ffa09385ffa6998cffb3a595ffc3b2a2ffa6998affbdaf9effbbad9effa5998cffb4a697ffa99c8fffaf9f93ffa19589ff9e9386ff9f9385ff988d81ffaea394ffa09488ffa29589ff9e9386ffa09286ffa09186ff928677ff8e8277ff8d8277ff8d8174ff87796cff918374ff8c7e6fff968778ff85776bff827568ff7e7063ff796b5eff4f463bff4e443bff4f453aff51473dff51483eff50463dff4e453bff4e4539ff463d32ff403930ff423930ff3e352dff433931ff3d352dff433a30ff41392fff413930ff433a30ff443a31ff473d34ff51453aff4e4238ff4b4036ff4a3f35ff4a3f34ff4b4036ff4e4239ff4f443bff473c34ff50453cff4d433aff4d433aff4b4137ff483d33ff4a4037ff473c33ff453b31ff443b32ff3e352dff42382fff433930ff473c33ff473c31ff483c32ff473c33ff574a41ff5e5247ff605549ff5a4d43ff5d5146ff5a4f44ff463d34ff3f352dff41382fff41382fff3e352cff372e27ff382f27ff564411ff554412ff3e342cff3d342bff322920ff382e24ff392f23ff3a3025ff3d3428ff3c3227ff3c3227ff3c3127ff372d24ff352d23ff382f24ff332b21ff362c21ff352b22ff322920ff332921ff362c22ff332a21ff342a21ff32291fff342a21ff342a20ff352b20ff352a20ff352920ff32281eff30271eff31281eff2e261dff2d241cff2b231aff2c221aff2b221aff2c231bff2f241cff2d231bff2a211aff2b221bff2c231bff30261eff2e251dff2e251dff2f251dff2e251cff5a4f43ff564b3eff594e41ff504639ff30271eff30261dff2f271eff322920ff322920ff2f271fff2f271fff322a21ff312920ff362c23ff66584aff6b5e50ff6f6152ff746557ff66584cff3c3228ff3d3329ff41362bff3e332aff42372cff41372bff40362bff45392eff473d30ff4a3e32ff4b4033ff4d4135ff4b4034ff493f32ff4c4236ff473c31ff4e4338ff4e4338ff504539ff514539ff53483cff564a3dff584b3eff605547ff5c5144ff605446ff5f5346ff66584bff65574aff5f5245ff625649ff65594bff64584aff685b4eff6c5c4eff675a4dff6b5f53ff716459ff6e5e53ff716257ff716459ff75685bff7f7163ff85776aff7e7062ff817466ff887c6aff8c7f6eff877a68ff857867ff8c816dff91816fff8a7b69ff897c6dff887b6aff938473ff8d7e6dff897c6cff837667ff928573ff908371ff9b8a76ff9e8c76ffa2937fffa89983ffac9c8aff9a8d7aff8e7d6aff645748ff6b5c4bff9d8e80ffa8966efff1ca2efff3cb2fffb6a694ffb1a190ffab9885ffb2a091ffa79788ffa7988aff9a8c7fff97897dffa59687ffad9d8fffc0ae9cffbba897ffbfac9cffb5a596ffc3b0a1ffcab7a8ffc4b1a2ffc9b6a8ffcbb9a9ffa39286ffab9b8effbfae9fffcebfb1ffd8c9baffc3b2a3ffbdab9dffc0aea1ffd1beb0ffdcc9b9ffd7c7b8ffe3d3c0ffd9c5b3ff9b8e80ffcdbcacffddcdbbffd9cabaffd2bfaeffbeb0a3ffbaaa9dffb9ad9effd3c1b3ffc5b5a8ffbaa89bffb2a395ffc3b0a0ffb2a191ffae9d8fffa9978aff95897cff94867aff867a6dff84786cff968877ff968776ff948676ff948676ff978778ff584c41ff554b40ff51473cff544a3fff51473cff50463cff494036ff494035ff473e34ff453c32ff463b32ff483d34ff403730ff443a31ff40372fff453c33ff453c32ff453c33ff493f36ff4c4137ff4a3f35ff4c4136ff4a3f34ff4b4035ff493e34ff4e4338ff4f4339ff473b32ff51453cff52473eff51463cff4f443aff4f453aff4a4037ff4b4137ff473d33ff443a31ff423930ff493f34ff453b32ff4d4237ff483d32ff4a3f34ff584b40ff5b4e43ff615449ff5d5246ff5b4f43ff584d43ff5e5247ff413831ff594f44ff433930ff40362dff41372eff3f352dff41372fff574514ff5c4817ff473920ff342b23ff372d23ff3b3127ff3b3027ff3b3126ff362d24ff3a3127ff372d24ff393025ff3b3127ff393026ff393026ff372f24ff352d22ff332a21ff30271eff312920ff362b22ff342a20ff322920ff31281fff342b20ff362c22ff362c22ff31281fff31281eff342a20ff32281fff31281eff2f251cff2e251dff2d241bff2c231bff2c231aff2d231bff2c221aff2c221aff2b221bff2c221bff2d231bff2c231bff2f261dff2f261eff2f261dff2e251dff5e5246ff5b5044ff5f5448ff4c4035ff2d251cff32291fff31281fff342a20ff322a21ff352c23ff342b23ff342b23ff362d24ff352c23ff615446ff685c4fff6c6051ff756758ff736556ff3e3429ff40352bff3e342aff45392eff40352bff42372dff40362cff42382dff41372cff453a2fff43382eff4b3f33ff4b4033ff4a4034ff4c4136ff4c4237ff4a4035ff4b4136ff473c32ff4b4235ff54483bff534639ff53473bff54483cff584c3fff5c5143ff625649ff5d5246ff5d5145ff645849ff65594bff675a4cff66584bff6a5c50ff6a5c4fff6a5c4fff6c5d4fff6e6053ff6e6053ff6d5e52ff6f6357ff75665aff786a5dff796b5eff847468ff89796dff8a7c6dff897b6bff968776ff8e8170ff9a8c7cff8f7d6bff837663ff8f8170ff8b7d6cff948574ff8f8373ff958777ff918374ff918373ff998b78ff988977ff978772ffa0907cffa39580ffaf9d89ffb2a08bffa79783ff9e8e7bff736555ff675949ff93826dffa28f7dffedcb40fff5d139ffbeaa86ffb2a291ffb1a393ffa8988cffb0a090ffae9e8effa7998affa59686ffb1a090ffae9c8fffc2af9effc1ae9affc5b3a1ffc7b4a3ffc3b09effc8b5a4ffcab8a6ffcdbaa7ffc4b5a3ffcebcacff93877affc0b09fffd5c3b3ffdbc8b7ffd7c4b3ffccbbaaffc9b9a8ffdfcbbbffe5d2c2ffd8c6b4ffc7b4a5ffdccbb8ffe4d3bfffdac9b5ffecdac6ffe0cdbbffe3cfbfffdac8b7ffd5c2b1ffd8c6b3ffd7c3b1ffd3c2afffb7a696ffb8a999ffa8998bffbeac9cffc2ad9bffb4a38fffac9b8bffa59686ff98897affa49584ffa59685ffa99989ffa99988ff9f8f7dff998a7aff574c41ff53483dff554a3eff55493fff51473cff4e4439ff4f453aff4c4337ff483e34ff4a4136ff473e33ff453d32ff453b32ff443b32ff463d33ff443b32ff473d34ff493e35ff4e4339ff4f4439ff504439ff4a3f35ff483e33ff473c33ff483d33ff4e4339ff4c4037ff51453cff4f443aff4f443aff4a4036ff50463bff4e443aff4c4137ff4b4036ff483e34ff483e33ff473c32ff473d33ff4c4237ff4b4035ff53483cff615448ff5f5348ff615548ff5d5146ff615448ff5c5045ff605448ff544a40ff54493fff453a31ff433930ff3f372dff40372eff3f362dff473a26ff5b4816ff574517ff3e342bff3c3228ff3b3026ff3c3126ff3b3126ff392f26ff392f25ff392f24ff352c23ff3a3127ff393126ff3c3227ff3a3026ff3a3026ff382f24ff362d23ff362d23ff362c22ff362c22ff352b21ff322920ff31281fff342a21ff352b21ff342a21ff31281fff32281fff32281eff33291fff31271eff30271dff2f251cff2f251cff2f251cff2f261cff2e241bff2d231bff2d231bff2c221aff2d231bff2e241cff2f251dff2f271eff2f261dff2e251dff4e4439ff574c40ff574c40ff3c3228ff352b21ff362c22ff342b21ff31281eff32281fff342b22ff382e25ff372e25ff362d24ff362e24ff65594cff695c4eff6e6154ff6f6153ff6f6252ff3f3428ff41372bff42382cff43392eff43392eff3e342aff41372bff3e3429ff41372cff43392eff443a2fff42372bff493f33ff483f33ff493f33ff51473aff4c4136ff504439ff4e4237ff514639ff52473aff534739ff534639ff52473bff52483cff53493eff594e42ff5e5347ff605548ff5b5044ff635648ff645848ff6c5f51ff6a5e4eff6b5e50ff6f6152ff716254ff736555ff726453ff726454ff726356ff766759ff756657ff77695bff7c6e61ff817264ff8b7d70ff897c6bff8c7e6eff857a69ff887a6aff8e816fff9a8d7aff9b8c78ff9e917dff8f8370ff877a69ff8e7f6eff998a7aff9a8c7bff9e8f7cff9a8e7cff978a79ff9c8e7affa4927dffa79884ffa89782ffad9c84ffad9c88ffb1a18cffa89985ff8a7966ff736351ff988776ff9b8a7bfff5d035fff7d53bffbba997ffae9e8bffb6a796ffbba999ffb8a695ffb2a291ffb3a393ffb1a091ffaa998affb9a695ffcab7a3ffc5b4a1ffbdac9affc3b09fffc0ae9effd0bcaaffc2af9effd1beacffcdbdaaffd4c2b2ffa29588ffcebfacffd5c0b1ffd6c2b2ffd0c0aeffcabaa8ffd8c6b5ffd4c4b6ffe2d2c3ffe6d4c1ffd7c4b1ffdeccbbffdbc9b8ffdcc9b5ffe2cebcffedd9c8fff0dacaffead7c4ffe5d0beffddcab9ffdfc9b9ffd3c0abffd0bea8ffc7b6a4ffcdbaaaffc4b2a5ffac9e8effb4a395ffbcaa99ffb8a692ffab9a89ffa99987ffaa9a89ffa79684ffaa9a89ffa59585ff554a3eff54493eff54493eff544a3fff51463bff564b3fff51473bff54493eff4e4338ff4c4237ff463c32ff4a3f35ff493e34ff483d34ff463c33ff463b32ff4c4238ff4e4338ff53483dff4d4337ff453c31ff493d33ff483e34ff4c4136ff55493dff52463aff51453bff50443aff54493fff4c4237ff4f443aff50463bff51463bff4d4137ff473d33ff4b4036ff463b31ff473d32ff4d4236ff54473cff615448ff605348ff675b4fff675a4dff63574aff665a4eff62564bff5f5348ff5c5347ff40362eff3d342cff41382fff42392fff41382fff40372eff43382fff5c4a15ff5a4712ff40352dff3e342bff382e25ff3c3228ff3b3127ff3b3026ff382e25ff3a3026ff392e24ff393025ff3e3428ff3c3226ff3a3126ff392f25ff3a3025ff362d22ff362d22ff352b22ff342b21ff362c21ff342b21ff322920ff332a20ff342b21ff332a21ff342a21ff31281fff30261eff30271eff31281fff30261dff31281eff33291fff30271dff2f251cff31271dff2f251cff2d231bff291f18ff2c221bff30261dff30261dff2d241bff2d241bff2c241cff3e352cff554b3fff564b3fff362d24ff2f261dff332920ff342a21ff342b21ff342b21ff322920ff342b22ff352d24ff3a3026ff382f25ff5c5145ff64594cff665a4dff6b5e50ff706255ff41362aff40352bff43392eff41382dff41382dff42392eff3e352aff41362cff44392eff41362bff40372cff453a2fff473b30ff463c30ff4e4337ff4d4236ff473d32ff504538ff504539ff4e4236ff4f4337ff504538ff4f4438ff574b3eff584d40ff52483dff52483dff584c41ff605448ff5e5246ff5c5044ff5d5145ff605347ff625549ff6a5c4dff6c5f50ff776858ff716454ff726352ff77695aff736555ff786958ff6c5d51ff726356ff7f7062ff837466ff7e6f62ff7f7163ff817465ff847768ff807465ff857868ff8b7d6eff8b7d6eff908071ff978776ff9a8b7aff998b79ff918472ff958574ff978b7affa1917effa29280ffa59682ffa29380ffa0917effa59481ffa79883ffb0a08affa29280ffb8a994ffad9b88ff8d7b67ff504134ff7a6958ffaf9e8cffb39f76fff4ce31fff4d444ffb1a190ffb8a796ffbfae9dffb7a796ffb8a696ffb6a595ffb9aa9affb8a593ffb2a08dffbcaa97ffc5b1a0ffc6b29effc1ad9bffd3c1b1ffd8c7b4ffd4c0abffdac6b4ffd5c2b1ffd5c1adffd4c4b2ffb7a897ffcebba9ffdac9b7ffd9c7b4ffe4d2bfffddcbb9ffdecbb9ffdbc8b7ffe4d1beffe6d2c1ffe8d6c3ffe8d3c3ffe8d4c2fff0dacaffe3d0befffbe5d6fff1dbcbffecd6c6fff9e3d5fff7e2d0ffead6c3ffdccbb8ffd5c2afffd8c7b4ffd8c6b3ffdac6b6ffd2beacffc2b09dffbfab9cffb7a592ffb3a18fffad9e8cffaa9988ffa79786ffac9b8aff574c41ff564a40ff56483eff52473cff574a3eff53473cff52473cff54493eff4e4338ff473e34ff483e34ff463c32ff4c4136ff4c4137ff4d4237ff53483dff544a3fff574b3fff51463aff4c4035ff493e33ff483d34ff4e4237ff51453aff52453aff554a3fff564a3fff4f453aff4f4439ff53483eff4e443aff4d4238ff504438ff4b3f32ff4c4136ff443a2fff43392fff4d4236ff615548ff615549ff63574bff665a4eff665a4eff615447ff62574bff5f5348ff5c5146ff695f54ff383028ff423930ff453b31ff463c31ff40372eff40362cff40362cff5a4611ff594611ff42372bff41362dff362d23ff3a3026ff3b3127ff3e3429ff3f352aff3e3429ff3c3126ff3f3529ff3d3328ff3d3328ff3d3227ff3c3227ff3f3429ff392f24ff392e24ff372e23ff352c21ff362d23ff342b21ff342b21ff342b21ff332a20ff332a20ff31281fff332a20ff31281fff30271eff31281fff30271eff30261dff31261dff31271eff30261dff30271dff31271eff2f251cff2f241cff2c231bff2e241cff2f251dff2c231bff2d231bff2e251cff2c241bff51473cff52483dff2d251cff2d251dff2e251dff31281fff2e251dff30271eff342a21ff332a20ff342a21ff342b23ff342c23ff61564aff675b4eff665a4eff675a4dff6a5d4fff44392fff3f342aff41372bff41372cff3f362bff3e362bff40362cff43392eff43392eff43392eff473d32ff493e32ff483d32ff453a2eff4b4034ff4e4337ff4d4235ff514538ff514639ff53463bff53463aff514538ff53473bff514539ff53483dff574c40ff544a3eff554b3fff594e42ff5a4f42ff594e42ff5e5347ff5e5246ff5f5346ff65584bff685b4eff6a5b4dff6d6050ff726557ff726455ff756859ff76695aff78685aff78685aff75665bff7a6c5eff817264ff7a6b5fff7b6d61ff817366ff827566ff7d7163ff877869ff867969ff82786aff887a6aff918372ff887869ff8e806fff968877ff928472ff978775ff978a77ff9a8d7affa69886ffa19381ffa19280ffa3937effa5947fffb8a794ffac9c88ffad9e89ffab9d8aff9f8e7aff7f6e5dff7c6959ff998774ffa79685fff2ce3dfff5d136ffd5bf7affaf9e8effb19f90ffb9a998ffbbab9affb6a493ffb09f8dffb4a392ffa49381ffa99687ffc4b19effbeaa96ffc6b29fffbeac98ffd1bfadffcfbbabffc4b2a2ffd4c2b1ffd8c4b4ffc6b5a4ffe4d4c1ffae9e8fffc7b5a2ffd3bfafffddc8b7ffdecbb8ffd9c4b3ffbfb09effd9c7b3ffdbc6b3ffe9d4c2ffebd4c5ffedd8c6ffefdcccfff5e1cfffe5d0beffe9d4c4fff2d9c7ffebd9c7fff4e0d1ffe8d4c1fff8e2cffff5e1cfffe7d6c1ffdcc8b6ffd9c5b0ffcdbaaaffc8b5a2ffc2af99ffc8b39fffbfa994ffb29f8fffb1a08dffa79582ff9b8a79ff564c40ff5a4d42ff594c40ff594d41ff54493dff55493dff53473cff50453aff4b4035ff4d4338ff4e4338ff4d4238ff4a3f35ff51453aff544a3fff554a3eff564a3eff52463bff4d4237ff50453aff4a3f35ff4a3f35ff50453aff53463aff54483dff554a3eff52473cff4e4339ff53483dff4e4338ff50453aff4b4035ff463a30ff473c31ff40362cff44392fff5f5346ff625649ff66594cff5f5348ff665b4fff665a4eff615549ff5b5045ff605448ff5b4f44ff564c41ff342c25ff443b31ff463d34ff463c32ff453b31ff43382eff42372dff3e3429ff5a4610ff534216ff3b3129ff3c3229ff3b3127ff3a3026ff3c3128ff3e3328ff3d3329ff40362bff41362aff45392dff42372cff3f3529ff3f3428ff3e3328ff392f25ff3b3126ff382f24ff3c3126ff3b3126ff362c23ff332b21ff332a20ff352c22ff362c22ff352b22ff322920ff352b21ff31281fff30261eff32281fff342a20ff342a20ff30271dff32271eff2f261dff2f261dff2e251cff2a221aff2b221aff2b221aff2e231bff32271eff2f251dff2f251cff2e241bff30261dff51463aff2d241cff2d241cff2f261dff30271eff32291fff322920ff352b22ff342b21ff322920ff342b22ff342b23ff574c40ff65594aff625649ff65594bff685b4cff4e4337ff3f352bff393027ff40362bff453b30ff453c31ff42382eff43392eff453a2fff4e4236ff453b30ff473c30ff473c30ff463c31ff4a3f33ff504539ff4d4337ff53493cff524639ff514538ff54473bff55483cff55483bff594d3fff5a4e40ff574c40ff544a3fff52483cff574c40ff5b5042ff5c5145ff5c5144ff5f5346ff615548ff64584aff63574aff695d50ff6e6051ff776656ff716354ff706254ff726658ff6f6457ff746659ff726556ff716455ff7a6b5eff7d6d60ff8a7b6cff857767ff847668ff87796aff837666ff837666ff857767ff857869ff8f8170ff938573ff928572ff958675ff9f8f7bff9d8c79ff978873ff9d8e7cff998a79ff9b8c7affa0917effa0907dffab9983ffa3917affae9e8affaa9c89ffaa9b87ffb0a18effb5a896ffa18f7cff7e6c5aff72604effae9b87ffae9c8cfff5d338fff9d93dffb3a18effb8a897ffb7a797ffb3a290ffbaa998ffb2a08dffa49282ffab9785ffaa9886ffb4a390ffbeab97ffcebaa5ffcebba8ffc5b2a3ffd1bdadffcfbcaaffcab5a1ffd7c3afffd2beaaffd2c0adffe0cdbcffb6a592ffd2c1adffdac8b7ffd5c3b0ffddc8b5ffe1cab5ffd3bfaaffddc8b4ffe1ccb8ffe1cebaffcfbbabffe1cbbaffe5cfbeffecd4c2ffead5c4fffbe5d3fff1dbcdffeedacafff6e0d0fff4ddcefffae8d3fffbe8d8ffe9d6c4ffdfcebbffd5c2b1ffd5c4b0ffd1bba8ffc9b4a1ffbfaa95ffb19e8dffae9d89ffb9a795ffaa9784ff5b4f42ff5a4d41ff574b40ff574b3eff53473cff4e4237ff4b4036ff4b3f35ff53483cff52463cff50453aff52453aff53483dff574b3fff564a3fff51473aff52473cff51463aff50453aff4e4238ff504439ff55493dff52463bff54493eff52473cff53483cff51463cff554a40ff53483eff51453bff4f4337ff493d32ff453a30ff44392fff4e4339ff605547ff64574aff685b4eff67594dff665b4fff655a4eff65584dff63564aff5f5348ff5d5146ff53483eff393029ff3e352cff42382fff433930ff493d32ff463c32ff42392fff40372dff5d4a13ff594712ff3e342bff40352cff352c22ff382f25ff41352bff453a2eff43392eff42382dff3f352bff40352aff42382cff3e3429ff3e3328ff3e3328ff3b3126ff3b3126ff3b3227ff3d3227ff3c3226ff382e23ff342b21ff342c22ff372f24ff362c23ff362c22ff352c22ff332920ff352b21ff32281eff342a20ff342920ff352b21ff332a20ff31271eff2f251cff2e241cff2e241cff2c231bff2c241bff2e241cff2e241cff31261eff31271dff30261dff2f251cff2f251cff2f261dff2d241bff2f251cff2f261dff2f261dff31281fff352c21ff322920ff352b21ff352b21ff362c23ff342b22ff594d42ff625548ff67584aff695b4dff68594bff584b3fff3a3228ff3e342aff3e352aff41372cff453a30ff43392eff42382eff43382eff453a2fff453b2fff493e32ff4a3f33ff4b4135ff493f33ff483d33ff4a3f34ff52463bff53473cff53473aff504437ff514438ff56493dff5a4e41ff594c3fff5f5243ff5a4e40ff53483cff554a3eff5b5143ff5d5245ff5d5245ff5e5347ff5d5144ff65594bff625648ff65594bff6d5f52ff716353ff716354ff746656ff6f6252ff6a5d4fff6e6154ff6c5e53ff6d6052ff786a5aff796b5cff847566ff8c7c6aff877a6aff897b6bff897b69ff867969ff857968ff8d7f6cff8c7e6dff8c7e6eff938372ff918472ff988977ff998975ff9e8d79ff9f8e7bff9c8c79ff9e8f7cff9b8c7cff9c8b78ffa99883ffa5927cff9e8c7bffa99b89ffb0a291ffaa9c8affac9d8bffb6a792ffaa9884ff84715fff59493bff988672ffb5a28dffc3b08efff9d73bffffdb3dffb9a697ffc4b1a2ffb9a899ffbcab98ffbdab99ffb19d8cffab9b87ffaa9886ffa28f7fffb3a390ffc7b4a0ffd1bda8ffd7c5b1ffcbbbaaffd7c5b2ffd4c0afffcab9a5ffcfbdaaffcfbca9ffcebdabffc7b5a5ffb7a797ffd2bfadffcfbaaaffdac7b5ffd8c4b0ffd3bfaaffd5c0acffd8c2abffcebaa5ffcfbdaaffe0c9b6ffdbc7b4ffe5d0c0ffe5d0bfffead4c2ffedd6c6ffead5c4ffe7d1c1ffebd4c3fff2ddcbfff5e0ccffecd7c5ffe6d3c0ffd6c4b3ffc7b5a3ffc1af9effccb7a2ffc5b19cffc2ad9bffb8a38fffb29e8cffaf9b89ff5b4e42ff5b4f42ff54463bff52473cff52473bff4f4439ff57493fff4f4439ff56483cff51463bff50463bff52483cff564a3eff53483cff53473cff51463aff52473bff554a3fff50463cff504539ff50453aff504539ff52473cff574c40ff4d4238ff52463bff53483dff4e443aff4e4238ff51453bff483d33ff43372dff52453bff594c40ff5d5044ff584c40ff65584bff605348ff63574bff695d51ff63574bff62564aff64584bff5f5347ff493e35ff433b31ff3e352dff433930ff473d32ff493e33ff473c32ff443a30ff42382eff56461aff5d4912ff3f342bff41362cff393026ff3a3128ff40362cff3f342aff43382dff40352bff41372cff40362cff40352bff3e342aff42372bff3e3429ff3e3428ff3d3329ff3b3227ff3f3529ff3b3127ff3b3026ff362d24ff382e25ff372f25ff352c22ff342b22ff332a21ff342b21ff322920ff30271eff32281fff372b21ff352a20ff32271eff31271fff30271eff2d231cff2f251dff2d241cff2c221aff2d231bff30261dff2e241cff30271dff2f251cff2f251cff2e241bff2e241cff2d231bff2e241cff2d241cff292119ff30271eff332920ff31281fff31291fff332a21ff362d22ff372e24ff52473bff625548ff635647ff655748ff67594aff645747ff393025ff3a3025ff3d3329ff3f352bff40372cff43392eff41372dff43392eff473c31ff463b30ff41372eff463d31ff453c30ff483e32ff463c32ff483e33ff4c4237ff4d4238ff4d4237ff55493cff52463aff574b3dff574b40ff574d40ff5e5144ff574c40ff594c40ff554a3fff5b4f44ff5b5044ff584d41ff594e42ff594f44ff5d5245ff5d5246ff5b4f43ff625549ff6f6152ff726354ff706151ff6e6152ff6f6354ff6b5c50ff6e6053ff6e6053ff6d5d52ff756559ff807163ff7f7162ff877a69ff867868ff877969ff877969ff867868ff857668ff8a7c6bff847769ff786a5bff8d806eff988978ff938473ff928572ff998a78ff9d8d79ffa4927dff9c8d78ff9b8b7aff9d8c76ffa1917bffa3927bffa2927bffa59681ffa2927dffad9f8dffae9d8affa89c89ffafa08cffa49381ff877563ff8b7764ff9f8b79ffb0a18cffe3c351fff9d83effe9ca53ffbcac9bffbead9cffb8a797ffbfaa9affbba997ffaa9887ffa89583ffa08e80ffc3ae9affcbb6a2ffcebaa7ffd1bea9ffd6c2adffd1beacffdccbbaffd0beaaffd7c3afffe4d1bcffcfbdabffd3c0b0ffbbab9bffd1bcabffd2c0acffd9c5b0ffdac6b2ffdcc9b7ffe2ccb9ffe2ccb6ffe3cfb6ffdfc7b4ffd7c2b0ffe2ceb9ffddc9b5ffddc9b6ffe5d2c1ffefd9c6ffe9d3c4ffebd5c5ffe7d4c3ffead6c3ffe3d0bcfff0e1cdffead4c3ffdfcbb8ffd2bdadffc9b6a3ffc0ac98ffbfac9affc4ae98ffb19d8affb29d89ffad9987ff594a3eff54483cff55493dff52473bff504539ff514539ff4e4237ff4e4338ff4f4338ff52463aff564a3eff54493dff53473cff50463bff554a3fff51463cff574b3fff55493eff52463bff54483eff53473dff574b3fff584c40ff564a3eff54493dff51473bff4d4238ff4d4239ff4e4439ff463c32ff483d34ff574940ff56493eff625548ff615549ff625549ff65594cff605348ff685c50ff61554aff64574bff64574cff63564bff4b4136ff4b4236ff3f362eff423930ff453b32ff463b31ff443930ff44392fff42382eff493d2dff5b4810ff594510ff41362cff3e332aff3c3128ff3f342aff3f362cff41362dff453a30ff43392eff42382dff3f352bff3d342aff42372cff3e3429ff41362bff3d3429ff3d3329ff3e3429ff41372bff40352aff382e25ff3b3026ff392f25ff342c22ff332b22ff332b22ff342c22ff352b22ff352b21ff352a21ff362b22ff372d22ff352b21ff31271eff31281fff31271eff2f251dff2f251cff2d241cff2c231bff2c231aff2f251dff2f251cff2f261dff2e241bff2f251cff2e241cff30261dff2f251cff30261dff2f251cff30271eff2f261cff32281fff332920ff352b21ff352b22ff352c22ff4c4236ff605446ff5e5146ff615547ff65584aff625546ff3a2f25ff393026ff3f362bff42382eff42382dff3e352bff3e352bff3e352bff453b30ff41372dff42372dff443a2fff42392dff443a30ff4c4136ff4b4135ff493e34ff4a3f35ff4b4035ff4d4338ff55493cff514439ff584b40ff584d41ff594c41ff605447ff5c4f42ff64584cff5b4f43ff5e5043ff5c5044ff584c41ff594e42ff5b5044ff625649ff5e5446ff615448ff66594dff6f6354ff776859ff6f6253ff706254ff726456ff726455ff726252ff746557ff726456ff716457ff7a6d5eff827566ff867869ff827566ff8b7d6dff7e7467ff938372ff887a6aff8a7b6bff908171ff8a7c6cff958675ff897c6aff9a8a79ff958472ff9e8f7cff9f907dff9a8d78ff9d8d79ffa5957eff9e8e7cffab9a87ffa6957fffa3917affa59682ffb2a38dffb0a18effae9f8dffa79784ffa49885ffa59784ff917f6dff6c594aff6f5e4effb19e8bffb5a493fffddb3bfffedc3dffb9a898ffb8a796ffbcad9dffb9a698ffc4b09effb2a18effa79686ffab9886ffab9a8bffae9c8bffc8b4a1ffc4b09effd3c1aeffc6b29fffd7c4b3ffd3c1adffd3bfacffdec8b6ffe0cab7ffd4c3afffdac9b6ffa79689ffcab8a7ffd8c4b1ffdbc5b3ffdfc7b4ffdfc8b3ffdac4b0ffe2ccb8ffefd6bfffd8c3aeffdcc7b2ffe6d1bdffedd8c5fff8ebd9fff2dccdffe5d0bfffe2cdbaffead5c2fff5dfcdffeed6c6ffefdac8fffdead7ffe8d6c1ffdcc8b6ffd5c0abffc6b39effbaa796ffbca996ffbea994ffb7a28dffb7a38eff584b3eff584c40ff54483dff54493dff52473aff5a4e41ff574b3eff53473cff564b3eff5a4c41ff55473cff584b3fff584b3fff584c42ff53473cff564b3fff54483dff53473cff564b40ff54483dff594e43ff574b40ff53483eff52473cff54483dff54483dff53483dff52453aff50443aff5b4e43ff5d4f44ff5b4f45ff5c5046ff65574bff63574aff65594dff65594cff65594dff67584dff64574cff64574cff63564aff4b4136ff4c4138ff3b322aff453b32ff473d33ff463c32ff473c32ff443a30ff43392fff453a30ff5d4912ff5d4912ff443930ff41372eff3a3027ff40352cff42372dff44392eff453a30ff463b2fff43392fff43392eff41372dff42382dff43382dff44392dff43382cff41362bff453a2eff44392dff44382eff41352aff3d3228ff3c3227ff392f25ff3b3127ff352d23ff352c23ff362d23ff382d22ff382d22ff382d23ff372c23ff342a21ff342a20ff362b22ff32281fff31271fff2f261dff30261eff2f251dff2c231cff2d241cff2d241bff2f251cff2e241cff2e241cff2f251cff2d231bff2f251cff31271eff32281eff30261dff2f271dff31271eff32281fff362b22ff352a22ff362c23ff4a3f34ff5d5144ff5e5145ff5c4f42ff635548ff65584aff392e24ff393026ff3a3027ff3e3329ff3e352bff41372cff41362bff3e342aff41372dff40362cff453b30ff463c30ff483d32ff473c31ff483d34ff483d33ff4c4035ff4c4137ff4e4337ff4d4136ff4f4439ff56493cff584b3eff5c4f41ff5b4e41ff605346ff5f5347ff625649ff615447ff5d5144ff5f5346ff605345ff635548ff5d5244ff5f5447ff605547ff66584aff695b4cff6b5e50ff6d6154ff6e6053ff706354ff79695bff736355ff746557ff736456ff776759ff79695cff736557ff78695cff7a6e5fff807364ff847667ff847768ff87796aff827466ff877969ff928573ff998b78ff8e816eff91836fff8d7f6dff918271ff9e8d7dff9a8978ffa08f7dff9f8f7cff9b8b76ffa08f7bff988772ffa49582ffab9985ffa6937effa5927dffa69682ffb6a38dffaf9f8dffb0a08bffaf9e89ffa59682ffa18f7bff786755ff6f5c4bffad9983ffb4a08effc1af9fffffde40ffffdf3affbaab9affbbaa9affc6b4a1ffc6b4a3ffc8b5a2ffb4a291ffb6a491ffb5a190ffad9b8affb3a18fffccb8a2ffc6b29fffcbb9a6ffc7b3a3ffdec8b5ffdbc5b2ffd0bdaaffdbc6b2ffdfcab6ffdcc9b7ffe9d7c7ffae9d90ffcdb9aaffd7c3b2ffe5cebaffe2cab9ffd9c3b0ffe3ccb6ffe6cebbffe5cfbaffdec6b4ffdfcbb8ffe8d1bdffddc9b6ffd5c0adffe0cab9ffe4cdbdffe2cbb5fff8e2d0fff1dbc8ffedd8c5fff1dcc9fff3decbffe5cdb8ffdbc8b4ffd6bfabffd1bba8ffc3b09dffc2af9affc3af9bffb7a38eff55483cff574b3eff54493dff53483cff4d4337ff504337ff53483cff5a4f42ff594c41ff5f5144ff5c4e42ff574b40ff55483cff54483dff594c3fff574b40ff584c41ff56493eff51463bff564a3eff584b3fff564a40ff50453aff54483dff54483dff52473bff54493eff685b50ff63554aff605348ff594c43ff64574cff6a5d50ff65574aff63564aff64594cff675a4eff5f5448ff605349ff64564bff605448ff4d4237ff493e35ff42372fff483e33ff443b32ff483d33ff493e33ff463a30ff453b30ff463b30ff604e1bff5f4c16ff4e4026ff41372eff40362cff3e342aff40352bff44382eff42372cff44392eff44392fff42392eff43392eff473b2fff42372cff43382dff42362bff41362aff43382bff43382cff44392dff44382cff403429ff3a2f24ff3a3026ff3d3327ff372e24ff362d24ff372e25ff362d23ff372d23ff392e23ff382d23ff372c23ff362b22ff352b21ff31271eff342a21ff332920ff31281eff30271eff2c221aff2d241bff30271dff2e251cff2e251cff2f251cff2f251cff31271dff32271eff2d241bff2e241bff31271dff342a1fff342a21ff32281eff33281fff342920ff332a20ff453a2fff615347ff5e5246ff615448ff605346ff67594aff3e3228ff3c3228ff3e342aff3c3229ff3f352bff3f352bff43372cff41372cff3d332aff3e342bff41382dff463c31ff473d32ff473c32ff42382eff43382fff453a2fff4b4035ff4a3f34ff4e4337ff514539ff574a3cff514538ff574c3fff55493cff584c3fff594d40ff5c5044ff625649ff625547ff5f5245ff5b4e40ff605245ff675a4aff625648ff625648ff615648ff635648ff675a4bff6d5f50ff706456ff726557ff746658ff786959ff706254ff7a6a5cff796a5aff7a6b5bff7a6d5cff6e5f51ff746758ff807262ff7e7263ff817565ff857768ff88786aff91816fff968674ff8b7e6cff8d7e6eff928370ff998976ff9d8d7cff998a75ff998976ff998978ff9a8b78ff9f8e7bffa3927fffa1907effa3917effa2917cffb19e89ffb4a08affb5a38fffb1a28cffb3a18cffb4a38effb5a38effbda992ffae9e8affa29383ff9e8e7cff897968ff8e7e6cffa89785ffae9d8cfffedc3effffdb3affc6b491ffb4a392ffc1b09effc6b3a2ffc0ae9dffc5b3a1ffb4a391ffbaa794ffbdaa9affb7a694ffd1bfaaffcdbaa6ffd1bea9ffdac5b0ffccb5a2ffdeccb7ffd3bfacffd7c1aeffdcc7b3ffd9c5b1ffe2cfbdffddc8b8ffb5a394ffd2c1aeffd0bdabffe5cebaffeed7c2ffddc8b5ffddc7b3ffe9d4beffe6d1bdffeed8c4ffebd6c3ffecd5c1fff5ddccffe5d0bcffe9d3c0fff0d8c6fffbe2d1fffeebdcfff9e3d4fffde7d4fff2dccafff5e0cdffecd7c3ffdfc9b2ffd2beaaffc2b19effc9b2a0ffccb9a6ffbea895ff5c4f43ff574b3fff574b3fff554a3fff564b3fff574b3fff5c5042ff5b4f43ff5d5043ff5f5244ff594d41ff54483eff564a3eff594c42ff594c40ff584c41ff574b3fff52453aff564a3eff56493eff564a3eff574a3eff54483dff51463bff574b3fff62564aff615448ff625349ff6b5e53ff605248ff605348ff64564bff675b4dff675b4eff685b4fff6c5f52ff6a5e52ff685a4eff65594dff574b41ff50453aff504439ff4f4338ff433a31ff463b32ff463c33ff473d33ff493d33ff443a30ff43392fff43392aff624e15ff5d4a16ff3f342cff41372dff3d3329ff43382dff473b2fff43382eff44382eff43382dff463c30ff42372cff40352aff473b2fff42372cff43372cff41352bff44382cff44382cff42372bff41362aff3b3127ff3d3227ff3c3227ff393026ff392f26ff383025ff362c22ff392f24ff382f24ff3c3226ff3a2f25ff382d23ff342b21ff372c23ff362b22ff31271fff352a20ff342920ff332920ff30271dff2f251dff2e251cff2e251cff2f261cff2f261dff2e251cff31271dff2f261cff30261dff31271dff2f261cff32281eff31271eff352b21ff342a20ff342a20ff342a20ff493d32ff615347ff5b4f43ff5f5347ff635649ff615346ff382e25ff3d3329ff3b3228ff3e342aff3d3229ff3e342aff3e3429ff3f352aff43392eff44392eff3f352bff3e342aff473d32ff473d33ff463d32ff463b30ff453a30ff473c32ff473e32ff4d4237ff53473aff4c3f34ff534538ff524639ff514438ff56493cff54483dff584c40ff594c3fff584c3fff5f5244ff574b3eff5f5445ff5c5144ff615447ff615547ff615345ff64574aff645749ff685b4dff6b5f51ff726455ff6e6153ff78695aff78695bff7f6e5fff796859ff7b6d5eff7b6e5eff7d6d5dff7a6b5eff78685bff796a5dff7a6b5dff837566ff817565ff867868ff8a7e6cff897a69ff968773ff8b7d6cff887b69ff938471ff948675ffa0907dff9c8c7aff938571ffa3937fffa79684ffa39381ff968776ffa59481ffa8957fffa2927effb4a28cffac9982ffb5a58dffb3a18effb6a490ffb6a990ffb3a189ffb8a792ffb5a691ff9b8c7aff7c6f61ff6b6053ff817668ffb29e88ffb3a190ffffe042ffffe447ffb3a291ffb3a190ffc5b19fffcbb9a3ffcbb8a5ffb7a695ffbdac9affc4b2a1ffc3ae9cffc7b4a3ffd2bdaaffceb9a3ffd7c4adffe1cbb8ffe0cebcffe1cebdffd6c0afffdbc6b2ffd4c1aeffd9c2b2ffdfcbb5ffe2cfbdffc7b5a6ffd0baacffe8cfbeffd7c4b2ffe8d5c1ffdec9b7ffe0cbb4ffe6d1bcfff2ddcaffe2ccbcffe7d0bffffbdecafffae0cdfff5dbc7fff1dacafff1dbcafffbe3d3fffdead8fff1ddcbfff4decbfff4dfccffdfc8b5ffdcc5b4ffdcc6b3ffd0beacffc5b09effdbc7b5ffcdb7a3ff605144ff51463aff4e4339ff5b4e44ff5a4d40ff5b4e42ff5b4d41ff5c4e41ff5c4e42ff5b4e42ff5b4f43ff584b40ff5b4e43ff564a40ff5a4d41ff5a4e42ff55483dff5a4d42ff5a4d42ff5a4d42ff594c41ff564a40ff50443aff64574aff67594cff625448ff64554aff62554aff60544aff625448ff6c5e50ff65584bff665a4fff6b5e52ff675a4dff685d51ff63584cff65594dff52473bff4d4338ff493e35ff4e4339ff463c32ff4b4038ff4b4136ff4f4439ff453b31ff463a30ff493e34ff473d32ff624f16ff5e4b13ff3d332bff3f362dff372e24ff41372dff44392eff4a3e33ff473b31ff463b31ff463b30ff43382dff44392eff41362bff42372cff44392eff41362bff3f352aff41362aff403529ff40352aff463a2eff3f3429ff3b3127ff3d3227ff3a3026ff382e25ff372e24ff3a3025ff3a3026ff3a3025ff3a3026ff392f25ff3a3026ff392f25ff372d24ff392d23ff362b22ff342a21ff332920ff33291fff31271eff31271eff2f251dff2c231aff2f261cff2f261cff2f261dff34291fff2e251cff30261dff2e251cff2f251cff31281fff332920ff32281fff342a20ff352a21ff41362cff5a4d41ff615346ff625447ff625448ff64574bff3f352cff383027ff3c332aff393027ff3b3128ff3c3329ff3e342aff3f3429ff41352aff3f352aff42372cff3f352aff40362cff443a2fff463c31ff4a3f35ff483d33ff4b4035ff4e4238ff4c4237ff4c4135ff4e4437ff4f4437ff504337ff524639ff56493dff514539ff50453aff54493dff53473cff554a3fff645648ff5e5144ff5a4f40ff5f5244ff605446ff5f5346ff5f5345ff635748ff665a4cff6b5e4eff706354ff726355ff78695aff7a6a5cff7a6c5dff807160ff7d6e5fff7c6d5eff796c5cff796b5dff7a6b5dff7d6f60ff7c6d5fff756657ff7e6f60ff817564ff847767ff988a77ff877969ff8f816fff8c7d6dff8b7d6dff928573ff978877ff928472ff9a8b79ff9d8e7cffa0917dff9b8c7bffa39382ffa49482ffa79684ffae9c88ffa99884ffae9e89ffb5a490ffab9a88ffb09e8bffb1a08dffb2a18cffb4a188ffb9a48cffb5a48effb4a28fff9b8c7aff796c5fff76695dffa0907effb4a18effd3ba7dffffe143ffffde40ffbdaa99ffc2b09effc0af9fffc2b19effbba895ffb7a490ffc4af9dffcbb9a5ffc2af9effc9b7a1ffd4bfa9ffd2bea8ffd4c1afffe7d1beffdbc6b3ffe5d1bdffdec9b5ffdcc6b4ffe0cab8ffd5c2b0ffd1beadffdecab6ffd3bdafffe1cdbcffdcc8b6ffead6c4ffe6d1bfffdfcbb8ffe6d0bbffe2cebbffe5cfbfffe2ccbbffdbc6b5ffe1cfbefff0d9c7fffbe4d1fff9e2d3fffde4d1fff8e5d4ffedd8c9ffe9d1c1fff2d9c5ffeed9c8ffdfc6b3ffd1bba9ffdecab8ffdec6b5ffdac5b0ffd0bdaaff5a4c40ff5c5043ff5b4f43ff574d40ff5b4e42ff5e5044ff5a4e41ff5b4e42ff5c4e41ff5c4f43ff564a40ff5b4f44ff5a4d43ff5c4e42ff594c41ff584b3fff5a4f43ff594e42ff594c40ff5a4d41ff56493eff5d5144ff6a5d4fff6c5e51ff6d6053ff6b5d50ff675a4eff5c4f46ff64574cff6c5d51ff685b50ff6c5e52ff695d50ff695c50ff675b50ff685d51ff665a4fff51463cff4f4439ff4c4137ff4c4138ff3a312aff493f35ff4d4238ff473c32ff473b32ff41372dff483d33ff443930ff5a4513ff604c15ff493d2aff42382eff3d3229ff3c3126ff43382dff45392eff483c31ff463a30ff473c31ff483c31ff463b30ff43382dff41362aff43392dff41372cff43382dff40362bff3e3428ff3e3429ff3f352aff43382cff3e3228ff3c3026ff3d3328ff3c3127ff3a2f25ff392f25ff3a3025ff392f24ff392f24ff393024ff3c3227ff3b3126ff3a3126ff3a3025ff382d23ff372c22ff352a21ff342a20ff31271eff31271fff32281fff2f251dff2d241bff30271dff30271eff30271dff2f261cff2f261dff30261eff2d241cff2f261dff31271fff322920ff332920ff332920ff3f342aff5a4d41ff584c40ff5d4f43ff645648ff615346ff41362cff372e25ff362e25ff393027ff3a3127ff393127ff3b3228ff41372cff40362bff41362cff3f342aff3e342aff3f352bff40352cff41362dff463b31ff483c31ff4c4036ff493d34ff4c4136ff4b3f35ff4d4237ff53463bff54473bff514437ff504334ff54483bff54483cff55493eff53473dff51473bff52483dff5c5043ff635648ff5a4e40ff615345ff615547ff625749ff615446ff62574aff675a4bff685b4cff6d6050ff726554ff786a5bff7e6e60ff7e6e5fff7e7060ff7f7060ff7f7161ff7b6e5fff796c5dff756759ff7a6d60ff7d6f61ff7d6e5eff7f7060ff847767ff837667ff867968ff897b6bff8a7d6dff8f8172ff8d7e6fff928371ff948674ff968876ff988b79ff998a78ff9f907dff9e907eff9b8d7cffa29080ffa49582ffa59582ffa39381ffa79582ffa59382ffb2a18fffaa9885ffad9c88ffae9d8affc1ae96ffbda993ffbaa791ffbaa993ffb5a691ffa89885ff9e8c7dff9f8e7cffb9a592ffb9a494fff7d749ffffe749ffe5cf6effc9b7a5ffbbaa97ffcdbbaaffc4b09dffd9c5b2ffc8b4a2ffc5b2a1ffcbb8a4ffbba899ffceb9a5ffd8c5b1ffd2c0aeffe8d2beffe0cdb9ffd5c3b0ffe4d0bfffe1cebbffe4d1beffdcc9b6ffdcc6b2ffd8c3b3ffdcc6b6ffd0bfb1ffe1cdbcffefd8c4ffe5d1beffd0bcaaffe1ccb9ffebd6c5ffd9c3b2ffe1ccbafff3dac9ffdcc9b7ffefdac5ffe6d0bbffead4c0fffeead6fff9e3d2ffefd9c7fffde6d3ffe2cdbcffe5d0beffe9d3c0ffdcc5b4ffdec9b7ffddc9b6ffddc6b3ffd9c4b0ff5d5044ff5b4e42ff52463cff5b5043ff5e5045ff5f5246ff594d40ff5c4e42ff594d40ff574b3fff574b3fff5b4d43ff594c40ff5a4d41ff574a3eff5b4e44ff584c41ff5a4d41ff574b3fff5a4e42ff706253ff6a5d50ff6d6052ff6b5c4fff6b5e51ff6b5d4fff685a4eff685a50ff6b5d51ff6c5d52ff6c5d50ff675a4eff63564aff675c4fff62554aff63574bff4f453aff53483dff4e4238ff4c4137ff3e332cff493e35ff4a3f36ff4c4137ff473c33ff453a31ff453c31ff463b31ff473923ff614e15ff614d15ff483b31ff3f362cff3b3228ff41372cff44392dff463a2fff463a30ff473b2fff473b2fff453a2fff41362cff43382cff453a2eff40362bff40362cff3e3429ff40352aff3f352aff42382dff41362bff43382cff3e3428ff3c3127ff3b3126ff3c3126ff3d3228ff392f25ff362c23ff362c23ff382e24ff3a3025ff382f25ff3a3025ff3d3329ff3b3127ff382e23ff372c23ff352b21ff342a21ff32281fff30261eff30261eff2d241bff2f251cff2f261cff2d251bff32281fff31271eff31281eff2d241bff2d241cff2d241cff31271fff32281fff30271eff3c3127ff594c40ff594c40ff5a4d41ff605246ff615446ff463b30ff382f25ff382f25ff382f26ff372e25ff3b3229ff393027ff3d3429ff3b3227ff3e3329ff40352aff3e332aff3f352bff3f352bff41372dff41372dff483d32ff4a3e33ff493d33ff493d32ff4b4035ff4a3e34ff4e4237ff4e4136ff4e4237ff504336ff4f4436ff5b4e40ff50443aff52463cff51453bff52473cff554a3fff5a4f43ff605446ff5d5044ff5b4f41ff5b5043ff605447ff65594cff605446ff615548ff685a4cff65584bff6f6252ff756759ff7a6a5bff857766ff827464ff807262ff7d705fff7a6e5fff7f7263ff7a6c5dff7e7062ff7b6c5fff7a6b5cff796a5aff837463ff857765ff928270ff8a7a6bff8c7d6eff877b6aff897b6cff8c7e6dff918272ff958675ff928472ff998977ff9c8c7aff9f917dffa09280ffad9d89ffa19280ffa99986ff9f907dffa59682ffa99885ffa89885ffad9d89ffb1a18cffa4937effaf9d85ffaf9c85ffb8a48bffb5a38effb5a28effbdab95ffbeac97ffbcaa96ffad9b87ffb29d8cffbcab9cffffe443ffffe241ffc1ae9bffc5b3a2ffb5a390ffbdae9dffc4b3a1ffd7c3adffd5c2adffd0bca6ffb8a896ffc2af9fffe1cab6ffdac6b1ffdfc9b4ffe0cbb6ffddc6b2ffd7c1b0ffd5c0adffdec9b6ffdfccbaffe2cdb7ffe6d0bcffe3cfbdffd0b8a6ffd3c4b4ffe1cec0ffead4c2ffdec9b8ffcfbbaaffd8c4b2ffe4cfbcffc2ab9cffe5d2bdfff2dac7ffeed7c3ffeed6c0ffe6d1befff9e0ccffffeddcfffce6d5fff2dbcbfffbe4d3ffefdac7fff0d9c4ffdac6b3ffdfcab7ffe7d2bcfff3dec8ffe3cdbaff5e5145ff584b40ff5d5043ff5f5245ff5b4e42ff5a4d40ff605245ff5f5346ff5d4f43ff5a4c41ff564a3eff5a4d41ff5d5044ff5c4e42ff5b4e42ff5a4d42ff5a4e42ff5a4e43ff736457ff726356ff6b5d50ff6f6155ff695b4eff685a4dff6c5e4fff6d5f53ff6d5e52ff6a5c50ff6e6055ff695b4fff6a5c4fff66584bff67594eff67594cff605448ff53473dff50453aff4f443aff4e443aff4b4036ff443a32ff4a3f35ff4c4037ff50443aff4d4239ff4e4238ff4e4339ff473c32ff645118ff62511cff463c32ff3f342cff3d342aff473d31ff473d31ff473d31ff483e31ff473b30ff463a2fff453a2fff463b30ff43372cff42372cff40352aff40362bff3e342aff3c3227ff3d3327ff42372bff43382cff42372bff42372bff403529ff3d3328ff3d3227ff3a3025ff3b3025ff382e24ff382e23ff3a3025ff3c3126ff392f25ff3d3328ff3b3127ff3b3227ff392f26ff362c22ff372d23ff342920ff342920ff32271fff2e241cff2e241cff2d231bff2f261cff30261dff30261cff32291fff31281fff31281eff32281eff32281fff2f251dff32281fff332920ff392f25ff5a4d41ff5c4f43ff5b4f42ff5b4e41ff5a4d41ff483d33ff392f25ff372e24ff393026ff382f25ff392f26ff3a3127ff3a3128ff3e3429ff3f352aff3d3328ff3f3429ff3f352bff40362cff42372eff40362dff41372dff44392fff4c4136ff4c4036ff4e4439ff50463aff4c4236ff4f4237ff504438ff504438ff504437ff4f4538ff4f4438ff4f4338ff504439ff4d4237ff4f4439ff594e42ff5e5145ff5d5044ff5e5145ff605344ff5f5347ff64574aff605447ff625749ff635648ff65584bff6b5e4fff756756ff716455ff807162ff7e6f5fff827464ff7f7162ff776b5cff7d6f60ff786b5cff7d6f5fff7d6e5fff7a6c5dff7a6b5cff79695aff817262ff857665ff8a7968ff8e806eff8e8171ff908271ff948574ff978877ff8f7f70ff948575ff948673ff938573ffa0907fffa39481ffa39481ffa39380ff9e8d7cffa0907effaa9a86ffa59682ffa99a85ffa89884ffa99885ffac9c88ffad9c88ffb7a58fffbaa690ffb5a28affbaa68dffbbaa93ffbcaa94ffc2af99ffbfac97ffab9985ffa1907cffbfaa98ffcfba92ffffe546ffffeb49ffcebda9ffd7c6b3ffcebba9ffbaa997ffcbb9a5ffc9b4a3ffd0baa6ffc7b29dffd3bdacffd1bdabffdcc8b6ffd8c5b0ffddc8b5ffdbc7b6ffd7c4b1ffe0cbbbffdec9b6ffe3cebbffead6c4ffebd3bfffeed9c4ffe0ccbbffbfad9dffcab7a9ffe4cebefff8e0cfffedd7c6ffe7d0bbffe5cdbffff9e3d0ffebd4c2fff9dfccffeed7c4ffc4af9dffe8d2befff3dcc8fffde4d0fff3d9c3fff1d9c4fff8e8d6fff8e1cefff3dccafff3ddcafff3dac8ffefd8c4ffe7d1bcffdec7b1ff5b4e40ff5a4d41ff5f5246ff5e5145ff5e5044ff635547ff5d4f43ff5e5044ff5d5044ff5d5045ff5e5147ff5d5045ff5c5043ff5e5145ff574c41ff594d42ff67594cff706154ff716355ff716356ff67584dff716255ff635549ff695b4eff6a5c4fff6c5c51ff6c5d53ff6e6055ff6d5e53ff6a5b50ff65574cff675b4fff62564bff5a4d41ff4e4239ff4f443aff50453bff50443aff4f443bff423a33ff493e35ff493e35ff4d4238ff4a4037ff4e4339ff4d4237ff493e34ff634e16ff624f18ff564729ff3d332aff3c3228ff40362cff473c31ff4a3e33ff41372cff43392dff443a2eff453a2fff42372cff44382cff463a2eff473b2fff3d3429ff40362bff3e3429ff3f3429ff443a2dff453a2eff43382bff43382cff41362aff43382cff42372cff3d3327ff3e3328ff3d3328ff3a3026ff3b3026ff3c3127ff3a3025ff382f25ff3a3127ff393026ff3b3126ff372e24ff362d22ff342a21ff352b21ff342a20ff30261dff30261dff2f251dff30261dff30271eff30261dff30261dff30261dff31271eff34291fff33281fff30261dff342920ff32281fff372d23ff594c41ff5c4f43ff594d41ff5b4e42ff5b4e42ff493e33ff362d24ff392f25ff372e24ff342b22ff382f25ff3b3127ff393026ff382f26ff3a3026ff3a3127ff3a3027ff3d3429ff3e352bff43392fff463c31ff42382eff42372dff42382dff463b31ff4a3e34ff4a3e34ff463c33ff4b4035ff4e4237ff514539ff4b3f33ff4f4438ff53473bff53473bff4e4339ff4d4237ff514639ff53483bff5d5143ff625446ff615345ff605245ff605345ff685b4dff685c4eff645749ff6a5e4eff695d4fff675b4dff6e6052ff736454ff716355ff736558ff7b6d5fff7d6f60ff7c6f60ff766a5bff766a5bff796c5dff7f7365ff7f7061ff796b5cff7d6e5fff837364ff837564ff887a68ff887867ff897b6aff8a7d6dff8d7f6fff908272ff988775ff918372ff978876ff978976ff958775ff9d8e7dffa19180ff9c8e7cffa39481ffa2927fffa29381ffa59582ffaa9883ffa3937fffa1917effac9b89ffae9d89ffae9f8affa4927fffb8a590ffb3a28dffb19e89ffc0af98ffbead97ffcab9a2ffcdbaa3ffbfac98ffb09d8affbaa492ffc0ab99ffffe947ffffe642ffe9d26affc8b5a3ffcfbba9ffd0bcabffd7c5b3ffd2bfacffc7b29fffc2b09effc7b29fffdcc8b8ffccb8a3ffdfcdbcffe6d2baffe5d0bcffcfbaaaffd8c5b3ffd9c6b4ffe5d0bcffd8c4b2ffe5cfbeffeedbc7ffead7c4ffe6d2c0ffbdaa9cffd1bfafffdecab7fff8e6d4fffae2d1fff2decafff0d9c7fff0dac7ffe7d2c3fff3dbc9fff4decdfff0d8c6ffd3bca9ffe5ccb9fff6dac8fffae2cbfffbe1cbffead5c1fffbe4d3ffe7d0bdffd9c3aeffe0ccb8ffe9d1bbffe9d2bdff5d5045ff5d5145ff5f5144ff5e5146ff5e5043ff5d4f42ff5e5143ff5c4e42ff625449ff5e5144ff605248ff5d4f44ff5d5045ff594c41ff66584dff6a5c50ff6d5f52ff6f6052ff6e5f54ff6e6053ff6f5f51ff65584bff625548ff6a5c4fff66594cff65574dff6a5c51ff6a5b50ff706156ff675a4eff685a4dff675a4eff564b40ff52453aff51463bff4f443bff4d4339ff4e4339ff3d342dff4c4239ff4c4237ff4e4439ff4a4037ff493f36ff473d34ff483d34ff56461fff685317ff655015ff41362dff3d322aff332b22ff44392eff4a3e32ff483c30ff493d31ff473d31ff443a2fff443a30ff473c31ff44392dff4a3d31ff3f342aff3f352bff3f352bff483e31ff463a2eff463a2eff443a2dff43382cff43372bff43382cff44392dff403429ff3d3328ff3a3026ff392f25ff392e25ff372d24ff382d24ff392f26ff393026ff352c23ff372d23ff342b21ff362b22ff352b21ff332920ff352b21ff322820ff31271eff2f261dff2f251dff30261dff31281eff30261dff2f261dff31271eff32281eff32281fff32281eff32291fff342a20ff372d23ff54493eff5f5145ff5a4d42ff5c4e43ff5a4d41ff53473cff342b22ff382e25ff393027ff372e24ff372e24ff372e25ff392f26ff3c3228ff3b3128ff3c3329ff3c3328ff3c3329ff42392eff3f362cff433a30ff43392fff443a2fff44392eff43392eff483e32ff4d4035ff4f4338ff4d4136ff514539ff4f4438ff50453aff4f443aff4e4438ff54483cff4e4338ff4d4338ff51453aff5d5345ff5a4e40ff66584bff605245ff655848ff675a4bff615647ff6b5f51ff635849ff605648ff615548ff62564aff65584cff67594dff675a4eff736355ff726557ff706255ff736659ff74685bff776a5cff75685aff726556ff7e7061ff7d6f5fff7e6e60ff7f6f60ff817263ff817365ff837665ff887968ff8a7c6dff8a7c6cff8a7d6cff978977ff938473ff968976ff9b8d7bff9c8e7bff908271ffa09080ffa59787ffa69686ffa39381ffa1927fffa0917dffaa9886ffb8a894ffa89682ffa59681ffa2937fffab9b87ffaf9f8affb1a08bffac9c87ffbcab95ffb4a28bffbcaa96ffbfb09cffc7b5a2ffcdb9a3ffc1af9affc3af9bffa6947fffbea996ffc0ae9bffffe544ffffe641ffc3af9cffcdbaa8ffcdbaa6ffe0cbb9ffcdb9a8ffdfc9b6ffcdbaa7ffd3bda9ffc3b29fffd1baa9ffcfbcacffe8d1bdffe4d1bfffd5c0aeffe1cab8ffe9d4c1ffe9d6c3ffe0c9b7ffe1cdbbffebd7c3ffeed8c7fff3dccbfffbe3d1ffb7a99bffecd5c5ffecd8c8fff5decefff8e2d0ffead5c2ffead4c2fff3dfcbfff4e0cefff7e3cefff0dcc8fff4dec9ffd1bdabfff6dec9ffe9d3bcfff5dbc4fff9e0cafffde3cefffae4d0ffead4c3ffe5cebdffe3cdbbffdec6b2ff5b4e41ff5e5145ff594b40ff625448ff594c40ff5e5044ff5f5245ff5d5144ff615347ff5e5145ff5e5147ff5e5246ff5d5045ff6b5e52ff6b5e52ff695c4fff6c5e51ff685b4fff706253ff695c4fff6b5e51ff67594bff6a5c4eff68594cff67594cff6b5c4fff6b5c50ff6b5c50ff685a4eff65594cff65574cff53463cff51453bff51463bff50453aff4d4238ff4c4037ff463c34ff463d34ff453c32ff463b32ff54483dff4d4239ff4b4036ff493e34ff4a3f35ff68541aff655116ff4a3e35ff4a3e34ff393027ff3c3328ff433a2eff473c30ff4b4033ff473c30ff463b2fff443a2fff473c31ff463b2fff463b2fff44392dff40362bff40362cff43382dff41362aff45392dff453a2dff44392cff3f3528ff403429ff40362aff3f3529ff40352aff3b3227ff393025ff3a3026ff392e25ff392f25ff392e25ff392f25ff392f25ff372d24ff372e23ff372c22ff352b21ff342a21ff342a21ff352b21ff332820ff31281fff30261dff30261dff32291fff30261dff31281eff31271eff32281fff342920ff32281fff32271eff342920ff342b21ff554a3dff574c40ff584b40ff5e5044ff5a4d41ff50453aff342b22ff332b22ff382e25ff382e24ff382e24ff362d23ff392f26ff3b3127ff3a2f26ff3e332aff3e342bff3f362cff3e352bff3e352bff40362cff40362dff42382cff473c31ff463b30ff463b30ff483d32ff493e33ff4b3f34ff52463aff504438ff4f4538ff4e4439ff52473cff514539ff504438ff52463aff4e4338ff51463bff56493eff574a3eff5f5244ff655748ff655748ff5c5143ff5e5244ff625748ff65594bff65584aff63584bff645a4cff685b4fff685b4fff6c5e51ff6d5f52ff726457ff76685bff726658ff75695bff786a5cff77685aff766a5bff7b6d5eff817263ff7e6f5fff807162ff807062ff827465ff8c7d6cff867869ff8d8070ff8d7f71ff938675ff998b7aff958676ff978877ff9b8b7aff978977ff988b79ff968978ff9f907fffa69785ff9e8d7cff9d8e7cffa19281ff9e907cffaf9d89ffaa9884ffa89784ffa49581ffaa9987ffaf9c88ffab9a85ffb5a490ffbcab98ffc2b09dffbdab97ffc0ae99ffc1ac97ffbcaa97ffbfab93ffcdbaa3ffb29f8aff9c8e7cffc1ae9fffe5cd69ffffe342ffffe846ffbdac9dffcab9a6ffd0bcaaffcdbaa7ffd4bfaeffbfab9bffc5af9effc7b29dffc0ae9cffc8b3a0ffd1bda9ffd8c2afffd3bdacffe5cfbfffdac5b3ffd9c5b3ffd9c4b3ffe2cbb9ffe5d0bdffe2ccbaffe6d1c2ffdfccbaffe6cfbbffc6b6a9ffd1bdafffe5d2beffe9d6c1ffedd6c4fff9e0cffff8e0ccfffef1dbfff9e6d1ffeed9c5fff7dfcbfff3dbc7fff6ddc8ffe7ceb9ffead1c0fff3dac4ffecd4c0fff0d9c5fff2d8c4ffe5cfbdffdec6b6ffdcc7b5ff5c4f43ff5e5144ff615347ff5f5044ff5a4c40ff5d5043ff5e5043ff5b4d41ff5e5044ff5d5045ff605348ff706256ff6d5f53ff6a5d50ff6a5c50ff6b5d50ff706253ff615448ff6e6052ff695b4cff6d5e50ff695a4cff6a5c50ff67584cff6d5f54ff6a5c51ff685a4eff6a5c50ff67594dff6c5e52ff56493dff57483dff51453bff4f4339ff51453bff50443aff4a4037ff443c32ff493f35ff4b3f36ff4d4239ff4f433aff51473cff4a3f35ff483d33ff665116ff665117ff524321ff483c32ff3a3128ff3d3429ff42382dff483e31ff493e32ff43392eff473c30ff473c30ff41372cff453a30ff463a2fff43382dff453a2fff40362bff3c3228ff3a3025ff41372bff40352aff40362aff3c3127ff42362aff403528ff43382cff3e3328ff3e3428ff3c3227ff382e25ff382f24ff362d24ff372d23ff372d24ff362c23ff382e24ff392e24ff372d23ff332a20ff332a20ff332920ff342a21ff342a20ff31281fff32281fff31271eff32291fff31271eff33291fff32281fff31271eff31281fff31271eff31281fff33281fff342a21ff574b3fff564b40ff584c3fff584b3fff5b4d41ff54483dff342b22ff352c23ff382f25ff362d24ff372e24ff372d24ff382f25ff393026ff3a3026ff3b3127ff3b3128ff3c3229ff3f342aff41372eff3f362cff40372dff40372dff43392eff42382dff443a2fff443a2fff4b4134ff473c32ff4e4237ff493f35ff4c4137ff4f453aff4d4237ff50443aff4d4136ff524539ff4f4439ff53483cff4f4338ff4f4237ff53473bff5d5044ff5e5145ff5d5142ff5e5143ff635647ff635647ff66594aff665a4aff635649ff605448ff6a5c4fff685a4cff695c4fff6a5c4fff6c5f53ff6a5e51ff75675aff76695bff736658ff736658ff716355ff786b5cff7f7361ff7d6f5fff7d6f5fff7d6d5fff857667ff87796aff8a7c6dff8d7f70ff8f8172ff8d8070ff918675ff918574ff988b7bff978978ff988978ff9d8e7eff998b7cffa29381ff998a78ffa1907effa19180ffa0917fffa0927dffab9a87ffa4937effa99885ffa89785ffaa9b88ffa89a85ffae9e89ffb4a38fffb3a28effb9a894ffbaa995ffc0af9cffb8a58effc1b09affc2af9affbba994ffb6a590ffa49480ffc0ad9dffc3afa1ffffe94affffe745ffeddb65ffc6b4a4ffc6b3a0ffd1bda9ffbca895ffdac8b5ffd1bda7ffcbb7a0ffcdb8a3ffd1bca9ffd2beabffd5c1b0ffd6c0adffdcc5b3ffdccbbbffd7c3b2ffe0ccbaffdac7b8ffdfc7b6ffe0cab8ffe2cdbbffe0cab9ffe6cfbcffdbc6b7ffc6b6a5ffdac3b2ffd9c5b4ffecd4c3fffbebd7fff7e6d0ffead3befff2dbc9fff2dacafff6dfcafff6dfc9fff6dfcafff6dec8ffe1cbb7ffe9d0beffe6d0bdfff3dac3ffe3cbb7ffedd7c3ffdfcbb7ffcab5a3ff615446ff5b4e42ff5c4e42ff5a4d40ff5f5043ff5b4e42ff5c4f43ff5e5044ff5f5145ff6f6155ff6d6054ff6e6053ff695b4eff605348ff65584cff63574aff65584bff6a5c4fff68594cff635649ff685a4dff615447ff605347ff6d5d50ff6f5f54ff6e5f53ff6a5c50ff695b4fff695b4fff574a3eff52453aff51453aff54483eff52463bff50443aff4f4339ff433930ff3f362fff453c34ff4b4139ff4b4037ff494035ff50453aff51463aff4a3e30ff655015ff665015ff443831ff463a30ff362d25ff3d3329ff42382dff4b4033ff45392eff44392eff483d31ff43382eff463b30ff43392eff3f352bff40352bff40362bff3e342aff3b3227ff3e3428ff3d3227ff3f3429ff41362bff41352aff42372bff41362aff42372bff3f352aff3b3127ff372d24ff3a2f26ff392f25ff372d23ff392f25ff372d24ff372d23ff362b21ff352b21ff332920ff30271eff30271eff33291fff332920ff31281eff30271eff332920ff32281fff30271eff31281fff322920ff32281eff33291fff352a20ff332920ff32281fff33281fff584c40ff564a3fff564a3fff584b3eff584b3eff55493dff342b21ff342c24ff332a22ff362d23ff362d23ff382f25ff382f25ff393026ff372e25ff372f26ff3a3127ff3b3127ff3f3328ff3c3227ff3f352bff3f352bff3e352bff40352bff42372dff40352bff43382eff42362dff473c32ff473c32ff4b3f34ff4c4035ff493d32ff504439ff4d4236ff4e4337ff4f4538ff4c4136ff4c4136ff514539ff53473cff514439ff54483bff55493cff5b4e41ff5f5345ff5d5143ff675b4cff645849ff65594aff675b4dff675a4dff5d5146ff62564aff64584bff6a5d4dff665a4eff6c6054ff6e6255ff675c4fff6d6154ff6e6254ff6e6053ff6e6053ff736555ff786a5bff7c6e5fff796c5cff7f7061ff837565ff847667ff827668ff8b8072ff8c7e70ff8f8172ff9c8c7cff978b7bff968777ff998a79ff9e8f7eff988879ff988a79ff998b79ff988977ff9b8c79ff9e8e7dffa49786ffa2927fffa79784ffa2927effac9b88ffa99a85ffae9f8affa79885ffad9d8bffb0a18fffaf9d88ffb5a28affb2a08affbbab95ffbaa996ffbbac96ffbda993ffc2ad99ffbba794ffaf9d8affa69884ffbda898ffccb9a9ffffe849ffffeb49ffc9b69effc4b09effb9a695ffc7af9effc6b2a0ffd9c1acffcdb7a2ffbaa895ffcdb7a3ffcfbba9ffc5af9cffdbc6b1ffdbc4b1ffddc8b9ffe2d0beffdec9b9ffe3ccb8ffecd9c5ffe0cbb7ffe2ccbbffecd6c4ffe3cbb9ffe5cebdffdec8b6ffccbaa8ffcbb9aaffdbc6b5ffe3d0c0ffe9d2c0fff8e3cdfffdedd6fff1ddc7fff0dac4fff2d8c3ffead3beffedd7c3fff6dfc7ffecd5c0ffe1cab7ffe4ccb9ffe2cab6ffe8cfbcffe9d3c0ffebd3c1ff655749ff5b4e42ff615346ff5c4f43ff5f5145ff5e5043ff615347ff6a5b4fff6f6155ff706356ff706256ff6c5e51ff6e5f51ff695c4fff64564aff68594cff67584bff685a4dff5c5044ff65574aff67584bff685a4dff6b5d51ff675a4eff6a5b50ff6b5c50ff65574eff64564bff56483eff52453cff52463dff52463bff4d4238ff50453aff53473cff3d352dff463c33ff493f36ff52473dff4d4238ff493e34ff493e34ff4a3f35ff4c4036ff665014ff654e14ff473b32ff483d33ff392f25ff382f25ff42382dff473d31ff4a3f33ff4b3f33ff463b30ff493d31ff4b4035ff44392eff443a2eff44392fff41372cff43382dff40352aff3d3228ff3c3127ff44382bff3d3328ff41372bff41362aff3f3328ff3f3329ff3e3328ff3c3127ff3b3126ff382e25ff382f25ff382e24ff392f25ff382e24ff382d24ff382d23ff392f24ff372d23ff352b21ff342b21ff31271dff332920ff332920ff30261eff30271fff32281fff342920ff2f261eff30261eff32281fff32281fff352b21ff342920ff32281fff32281fff574b3fff564c40ff564c40ff564b40ff574c40ff56493dff32281fff32281fff322921ff362d23ff352c23ff382e25ff382f25ff352d23ff352c23ff362d24ff3a3128ff3b3128ff3a3126ff403529ff453a30ff3a2f25ff3f342aff3f342aff3d342aff42372dff43392cff453b2fff463c30ff4a3f34ff4c4135ff4c4136ff4e4338ff504439ff4f4438ff4e4237ff55493dff4e4336ff4e4337ff4f4439ff4f4438ff574a3fff55483bff53473bff53483dff625446ff584d40ff5d5345ff615648ff5e5144ff625648ff625647ff64584aff655748ff625649ff63584aff65584aff6c5f51ff6b5f52ff6d6155ff706456ff776b5cff7a6d5eff76695aff77695aff716451ff77695bff796b5cff786b5cff786b5dff827464ff86776aff7d6f61ff87796aff8b7d6eff938575ff9b8c7cff9a8c7aff958776ff98897aff9b8c7bff9b907fff9e9282ff9a8d7dff978a78ff9c8b7aff9a8b79ff968776ffa49481ffa79884ffa39380ffaa9988ffa89985ffa2947fffa89886ffa49483ffb4a493ffb1a18cffb2a08bffbcaa93ffc7b6a1ffae9c87ffb8a793ffbdac96ffb8a790ffc6b19effc1b097ffb0a08cffb0a08cffc1b1a0ffd7c281ffffeb49ffffeb46ffb2a090ffbeaa98ffcab7a1ffc7b39fffcab5a0ffc7b29cffb1a18dffd3bba6ffccb7a4ffcbb5a0ffd1bdaaffdbc5b4ffe5ccbaffdac2aeffe4cebfffdcc7b4ffe2ccb8ffe7cfbbffe3ccbdffe4cebaffd7c1b1ffdfc8b6ffedd4c0ffdfccb7ffbfae9dffd9c4b7ffeed9cafff2dacaffead4c3ffe5cfbdffecd8c3fffef0d9ffeed6c2ffefd6c6fff0d7c3fff0d6c2fff1d9c4ffd2bdacffe5d0beffd9c3afffebd2bfffe9d0bcffe9d0bdff5d4f41ff5a4d41ff5c4f43ff57493eff594c40ff65574bff736457ff726457ff6e6053ff726356ff706153ff6b5c4fff726255ff6e5f51ff6a5b4dff685a4cff6a5b4dff64564aff66574aff66584cff625448ff66584cff6c5e51ff6e5f52ff6a5b51ff6d5e55ff63564cff564940ff594b42ff54473dff54473dff53473dff53473eff54483eff453c34ff483e35ff4e433aff51453cff54483cff4e4237ff483e33ff493d32ff463b32ff634f1bff644e14ff5a481fff463b31ff382d23ff352c22ff3b3228ff43392eff43392dff4c4033ff43392eff4b3f34ff4a3f33ff493d31ff453a2fff41372dff42372dff41362cff44382eff3f342aff3f342aff473b2fff3e3328ff41362aff44382cff41352aff3d3228ff3c3227ff3c3126ff3c3023ff3a3126ff372e24ff352c22ff382d24ff3a2f25ff372c23ff3b3026ff3c3126ff392e24ff372d23ff332a20ff31281eff362c22ff362c22ff332920ff32281fff342920ff332920ff332920ff362c22ff33291fff31271eff30261eff342920ff31271eff31271eff372d24ff50463bff52473cff52473cff554a3fff51463bff32281fff32281fff352c22ff322920ff362e24ff342c22ff392f26ff3a3128ff3a3127ff392f26ff382f26ff392f26ff3a3026ff41362bff3f3328ff40342aff3c3127ff3e3329ff3f342bff3c3229ff42382eff40362bff3f362bff43392fff4a3e34ff44392fff473c31ff483d33ff51463aff4a3f34ff53473aff55493cff514539ff504439ff4c4136ff514539ff55473bff574a3eff51463aff5b4f42ff675a4cff574c40ff605547ff5f5447ff615648ff5e5145ff635648ff625545ff665746ff615547ff65594bff675b4dff665a4cff685b4eff6c5f53ff716557ff807363ff796c5dff786a5bff736556ff756757ff7c6d5fff77695bff796c5eff7c6e60ff887868ff857768ff8a7a6cff938575ff877a6aff897b6cff918374ff938574ff948674ff948778ff918475ff8c7d6eff938577ff948678ff9c8f7fff928272ff988776ffa39481ff9d8e7bffa29380ffa79885ffb5a38dffb09f8dffb3a492ffb1a190ffa99988ffac9c8bffb09e8dffb4a38effb8a491ffbda994ffb4a18affbba892ffc3af9affb3a28effb9a591ffbcaa94ffbead94ffa2907cffc4b0a3ffc2ae9effffe945ffffef4cfff7e652ffbaa796ffcbb8a4ffbaa896ffcbb5a0ffcdb7a2ffbba896ffc5b09cffcdb5a0ffcfb8a3ffbfab99ffdbc3b2ffdcc9b2ffdbc5b2ffe3ccb9ffdecbb9ffdcc4b4ffe8d1c1ffe6d0bfffe3cebcffebd2beffeed6c1ffe7d1befff3dbc9ffd6c5b7ffd6c4b3ffdfc9b7ffe5d4c1fff3e3cfffe1cab7ffedd7c4ffedd3bdffebd3c1ffead3c1ffe7ceb9ffeacfbafff5dbc7fff6dfcbfff3dcc9fff2d9c8ffe0c9b9ffe8d2c2ffeed6c3ff5c4e42ff5b4d40ff5c4e41ff5d4f43ff706154ff726356ff7a6a5eff736558ff736556ff6f6053ff716255ff706052ff6f5f53ff6e6152ff685a4dff6a5c4eff6d5e4fff6b5e50ff66584aff635549ff625448ff6b5b4eff6b5c50ff68594eff6f6055ff66574dff594e44ff564a3fff584a40ff564a41ff574b40ff564a3fff5a4d42ff54493eff4d4239ff4b4036ff4b4037ff4e4238ff504338ff4b4036ff463b32ff483b32ff504027ff675015ff664f16ff463b31ff473c32ff3d3327ff41362bff473c30ff483c31ff4a3e32ff4e4236ff4f4237ff4e4336ff4c4034ff473c31ff483c32ff473c31ff453a30ff453a30ff44382dff41352aff43372cff453a2dff473a2eff46392dff42362bff3d3328ff41352aff3f3429ff41362aff3e3327ff3b3126ff382e24ff3c3127ff3c3127ff3c3127ff382e24ff392e24ff3b3025ff372c23ff352b21ff32291fff32291fff382e23ff362c22ff352a21ff322820ff32281fff342a20ff372c22ff342a20ff352b20ff342b20ff32281fff33281fff352a20ff30261eff453a30ff52473cff4c4237ff54483dff51453aff322820ff342a20ff352b21ff372d23ff362c22ff352c22ff3a3025ff382f25ff362c23ff3a3128ff392f26ff3b3227ff3d332aff3c3127ff3f3329ff3f3329ff3c3127ff40352aff3f342bff40352cff3d332aff3f352bff43372cff42372dff44392fff463b31ff4a3d33ff483d33ff4a3f34ff4f4439ff55493dff52463aff52463bff52463bff56493eff53473bff55483dff5a4d42ff594b3fff54473aff594c40ff5e5446ff5e5344ff625548ff625747ff5b5043ff67594aff625647ff685c4cff6b5d4cff665a4bff5f5346ff6d6152ff6c6052ff726556ff6b5f52ff6f6355ff766a5bff7f7062ff756759ff716456ff736557ff7f7060ff817363ff837364ff827266ff807264ff867769ff8c7c6eff887a6bff918371ff938675ff8f8272ff948675ff9f8f7eff948776ff938575ff958878ff928475ff9b8b7cff9a8b7bff978a7aff9d8e7cff9b8a77ffab9a87ffa69783ffa79683ffb0a08bffb2a08bffa99784ffb2a292ffb1a08effb3a390ffbba998ffb09d87ffbba792ffbaa691ffb5a28dffb8a58fffbcab96ffbeac98ffb9a792ffbba894ffbfac94ffae9b87ffaa9a86ffcbb7a6ffc1ad9fffffed4cffffeb48ffd4c380ffcbb6a4ffd5c0aeffd6bfabffbfab97ffc4b09bffc9b39dffd0baa6ffc2ac97ffc8b19fffc5b19fffd9c2afffdcc5b2ffdcc4b6ffd6c3b2ffe8d1c1ffead5c3ffe3cebdffe5d0bdffe7d0bcffeed8c6ffe8d2befff0d7c7ffead7c1ffc0b09effdcc7b7fff0d6c6fffbf0e0fff9e2cdffefd7c2ffe7d2bdffebd2beffdbc4b0ffe1cab6ffead0bfffe6cfbcffecd5c2ffefd8c2ffedd6c3ffe2ccbaffd8c3b3ffe5cdb9ff5d4f42ff55493eff6a5b4eff746658ff726357ff77695cff736458ff706255ff726457ff6b5c4fff6e5f51ff726154ff6b5c4eff6a5d4fff6e6050ff695c4dff6f5f51ff695a4eff695b4eff65584bff6a5c4eff6b5e50ff6c5d51ff716256ff5b4d43ff574940ff584b42ff5a4d43ff5a4d43ff574a3fff56493fff55493eff52473dff433a32ff4a3f36ff4b4038ff4b4037ff4e4238ff4a3f35ff4a3f35ff473c33ff453a31ff665015ff634c13ff3d332bff3e342aff42352aff45392eff463b2fff4d4134ff504537ff4f4336ff4c4034ff4d4034ff4d4134ff483c30ff453b30ff44392fff483d32ff453a30ff45392fff44382eff42362cff44382cff45382cff46392dff42362bff403429ff403429ff3f3428ff42362bff3a3026ff3d3228ff3a2f25ff3c3026ff3c3127ff3a2f25ff3b3026ff3b3026ff3a3025ff3c3126ff342a20ff362c21ff332a20ff34291fff362b22ff342a21ff31281fff32281fff342a20ff332920ff352a21ff362c21ff362c21ff342a20ff33291fff34291fff30261cff32281fff54493cff52473aff51463aff574c3fff352b21ff322820ff362b22ff352b21ff332a20ff342b21ff342b21ff372e24ff362d23ff382e25ff392f26ff3a3028ff3c3229ff3d332aff40362cff41362bff42362bff41362cff42372cff3c3228ff41372dff443a2fff44382dff473c30ff473b31ff473c31ff453b30ff463c32ff4b3f34ff52473bff514538ff514439ff53473aff53473aff54473cff52473bff574b3fff574b3eff594c3fff594c40ff584c3fff584c40ff5e5243ff5e5244ff625648ff605447ff5d5143ff615445ff635547ff6b5e4fff66594bff65584bff65584bff6a5c4dff6e6153ff6b5e50ff6f6355ff736759ff776b5cff786a5bff726555ff756858ff726556ff7b6c5cff807163ff7f7263ff796c5fff847365ff86776aff86786aff8b7b6dff958676ff948673ff938472ff8e816fff998977ff918372ff968877ffa0927effa89785ff958675ffa69682ffa59583ff948676ffa39380ffa79681ff988976ffa49482ffa69683ffb3a38fffaa9a87ffad9c8bffab9c8dffaf9f8fffb6a493ffbcaa97ffc1af9affbda996ffc6b39dffc2af9dffb9a590ffb3a18dffc4b29cffc5b29affc3af99ffc3b39eff948674ffb7a491ffc3b1a3fffcf55dfffff450ffffe945ffc6b2a2ffc0ab9cffc6b2a0ffcab7a5ffc7b4a0ffd2bda7ffcab59fffd8c3adffe0c7b2ffd0b7a5ffc7b2a0ffdcc4b0ffe2c8b5ffd4bfaeffd8c3b0ffecd5c3ffe9d3c2fffae2ccffeed8c5ffe8d1beffecd4c2fff5dac7fff2d9c5fff3dac5ffb39c8fffccb9abffd5c0adffebd4c5ffd9c4b2ffe8d1beffd9c4b3ffe1cab6ffd9c0aeffe7cdb8fff4d9c9ffd3bfadffd4beadffdcc3b2ffd6bfadffe5cbb9ffd4bfadfe645850ff71635aff73665dff7b6d64ff827369ff82736aff81736af67d7069d87a6e67c27e726cff8c807af0847b77ff8c817cff867c78ff877d78ff887e79ff857c76ff8d857fff847e77ff89847bff857f78f2868077e6878178fb8b867cff908980a278736ce2847f76d57d7870b977736ba16a665f7d55524c8a4e4b457a3b383369322f2c7534312d87373431b73f3c38de433f3be2433e3ae9413c38dc3b3732e638342fcd342f2bc8322d28dd352f29d0342d27d2342d28912f2a245c2b2622732d282499332f2a9635302b7b35302a8d3a332cac423a32ce4a4038ff4c443cfa4d443cff4f463fec4d463fb7474039db4d453ef7534a43f3534941e351483ff0564d45d6534b43ff5b524af360574fee5b524beb59524aff635952ff655c54ff655d54ff695f57ff665c53e4625950f5645a50f6655b52ea625950fb675e57ff675f57f9665c54fc6b6259ff6f645bfe6e6359fd6f6359ff6b6157404e463ff86a6058ff6e665eff70675fff6d6359ff665c52ff5e544afd5d5249ff5b5148c050473ffe594f47ff61564df062574fff635950ff6d6258ff6e6358ff71645bff6e645aff71675ff1665f57e269635bff786f6ae9766f6a47ff6f283cc44c1b4960220c32531b0826531c083a5c220c585f260e365f230d48682a104169290d6966280d476e280ce9bab2aad7b2a7a2c0ada59ef5bdb3acf5bbb1abd8b2a9a5d8b0a8a3f2bab2adfec2b8b4ffc5bab3fbbab0aafcb6ada7ffbeb4adffc5bab1ffc6bbb4e2b1a9a2fbb7aea9dca9a19caf9e9893999d96928f989089728e88808287817d87857f7ba28f8782bd938c87a3938d86b199938cdb9c968fd4979089a5817b758f7a736dc48a817ae58e847ce48a8179ce817b737f6e69627c706b64a77c7770696f6a6371726c6571746d66b2868078c0827c74d0847e76fe8a837cef8b857eff8a847efd86817ae7807c75f9857f78d579746ee17b7670ba76706b8c726d67a979726c9d726d66f6827c75e0807a74fe857d76fc847d76f9837b75db7b756dd77a726bd37a726bed7d746dff837a72f57f7770fb807973e476706bb5706a65d6776f697e645b55d5716a64d76b645eff726b64ff7c736bff797069ff706760ff7e736cff746a62f8716861fe756b64f26f665eff766e67ff7b746eff76706aff7b7670fa76716cfc7e7974ab746f69ea878079d289817bcd8e8780ec9b938be69b938dbc918c86c799928ceea6a09ae7a9a39ef9b6b0a9e5b0aca6d4b3afa9f2beb9b3fdcdc7bff6ccc6bec9bdb9b2d9bab5afbdafaaa57ea29e9977a39f99719f9991679c968f6c918d8970918d88929e9993aaa7a29c8ba6a19b9caba7a2b4a8a39eaea29c978a8d8a847a898580c5a59d96b49b938dc79b96908c8988816c817d796582807b898c8b8558817f7a6384817a61dc814de23f362ec242372fff52453dff54473eff564940f755473fff5e4f47ff60534ce362554dff665a53d6645953f86b605cff6e635eff70655fff6c615bff70655fff726861ff70675fff726a61f46c655cf56e665de06a635ad370675dfc766d64ff7b746aff7f776e78655e55cb70685fbf6e6860d86a635bb95c574e9248443d873d3a346c312e2979312e2a8336332e9d3a36329a3c373371332f2bac37322ebe38332fc7342f2ae136302bda36302af53a332dfa3e372f89312a25942f29248e302b256b2c2723612f2a25a934302ab039332ed6423a33cb413932b2413931b53d36309039332c913d3730a63f38329f3f3832c3423b34f0473f38e6483f37e6473e36f44a423adc484039d648413aff4f4841ff5a514aff574e47ff514942ff524b44ff544d45fa534c44db4f4741eb544c44b14f473eff5e534bec5b5148ff60574eac524b43ba554d45e25c544bda595047da5d534aca5b5249cf5c524949473f37c95b534aec5d554dfd605851e2575049f05b524aff61564df75a4f45ff594f46fd5b5148d9544a43d8554c45e9584f47ff6e6258ff6b6056ff6a5f55ff665b52ff72655dff72675fee71675eff776d65f0746a64f67c736d45ff762f54d55a233f61210a335a1e09335c200a345d220b3d5f240c2e61240c275e220b3867270b6161230c4d702a0df1b3a9a0e4aca29bf1b4aba5ffbeb4adffbcb2abffc4b7b1ffc4bab3ffc4bab3ffc2b8b1ffb5aaa4ffbaada7efa79c95d6a4978fffb2a59cffb5a89f6d8d827ce7aa9d96dfa29890d1a19993bd9b938d8b8c857e84847e7766706a6376716b659f7f7a74d1928a82df938a84e4968f89da938c86ed928a83d7867e78b57d746eff988d83dd8b8077c780756db17d736b6569615959645c57bb837b72a979726b9979716aac847c73c88b8278e3877f77eb8a807adc89807997746e67ae77706ade807872ff89817be07d766ffb847c75e9817872fd847d75ec857c76fc8d837be880786ffd8f877fff8c837bfa867e75eb7e7871dd7c746dcc7c736cd97b736acf7c7269ed827871cd797067c6766c64e87d746cde7b726ad3797069e4766e673759504ad96f6761ff776f69f9726a63ff766d64fe6f675fff766c63ff7c7168f9746b62ff786e67fc766c66d7726861ff817973ff877e77ff89807aff877f7aff88827def7d7670df807972f08d8680e68d8781ff9d9791ffa39c95ffa09792ffaea49dffaaa49dffb0aaa4f8a9a39effb4ada8edaea7a4dcafa7a2cbb2a9a3f5c0b8b1e7bdb3ab9aada49cd6b3aaa3c1aba59daaa6a29b9a9c97917599948d6c8c877f69827d767687847da39b9792daafa8a2bea59f9ac9a5a29dc3a19c97c69c9893b5948f8aa9918a83e6a49c94dda49d97948a84806c827e7764807c766a85817c9d918f897e87847e8f8f8c857ce2814ff72a211bb428201abe2c231dff382c25ff392d25ee372d25fb392e26ef3d322bf3433831fc473c36dc463d37ea483e3ae7483f3afe4c433efd483f3be4443c38e449403beb4b433dfe514942fe574f46f5544c45fe585049f3554e46e6585048f963594fea696057ba5b534b2649433bed665c53f0655b52f55d554df2524c446837322d9534312cbd3a353091322f2b8e36322eae38342fbe35312da8312d29fe403a35c8332e2ad835302af239342db2302a25d938322be539322baa312b26b1362f2992302b26a838302baa342e29b039332d7739312b933c342db0403831b93f38318737322ae2433c34bd403a33a93e3831a33e3630de473e37ff4c433bee473f38b2403933c7433d36d4443e37ec49423bdf46403ae349413bee4c443df74f4840f34f4740fc524941de4f453ea1453d37d950463ef3534a42d74d453dfc554d45fe564e47f9584f47e9524941fd5a5047fa5a4f46f65b4f4875493f37dd574d44cf524841dc574e47a34c453ffb5a5148ec584f46ea584e45ff695b51ff695c52ff60554bd1594f46e35a5148f65f564df860554dff6c6056ff706459c85c5149ff6f6258fd6f655bf570655dff786d65fa776d65fe756c6459ff782d4bde60253765230a2e5c1f09305d210a3f63250c315d210a3569290d3465290e3564260b5d5d210b5a742d0fcf968b84b58f847df29b908ae99c8e87ffa89b93ffaea098ffb0a39affafa299ffa5988fffa1948cfb9f9288ef9c8d84ffa19386f4a4958af6a99a91d7988b8280837870cd958982de9c9087bd948980c68e867d9c7e776ebb827a7290726d6691716c6498776f679d776f67bf7c746ce88b837cf8898077f1867d73e9847b71ee7f756cd0897e70ab7b7164b2796f649d6c645b7b6d645cc97d746cb7787169de847970b07b726aa8736a63aa706a617c665e54b9797269ab766d66c2777069ff847b73fb877c75c5756c65ef7b726bc5716962f67e776fff8a8078ff8a8077c4756d66db7f756cff8a8176ff8a8077b7716a62ca756d65b3716961fb7f756df8867b70de7e7469e17e7269e27a7066d1756c63ca746a62c7756c658c685e5786645c55cd706760fe756e67f16f6760e66d645df6726861ff7d7067ff80746bff786c64e271665fa4645b54ea726962ff857b74ff8b827bfc79726cff7b736eff807872ff888079f6888179b17f7771e28b837efe948c85ff9b928bff9b928affa1968fffa59c93f09f968fe69f9690efa39c94e2a69e97eaaba39af9b6aca5e6b7ada5d4b3a9a15c928b81b9a89f97c5afa79eafaaa298aca09b928f938e85a4938e857e87837c868b867e838b857c988f8982b4928d87e7a49e98f5a39c94db9e988fcb948e87d498918ac8a8a097a4958f87a38c888180807d77637d7a75b0908e88b7908d87cba09b93ab928e8965dc7c49ac140f0b5d130e0b5e16100c9b18120ed01c1410b51b140fa71d1611a51f1813c7241c18d3271f1bdd29221fc629221fcc2b2420d62c2521cb2b2522f52f2824f9322b26d7322b26f6352f29ed38312bf53b342eff413a33ff443d36d53e3831ff504840ff524940d44a423af14f463ec050473ed5524a41fb504841ed48423bac3a3631762f2b27782f2c2692332e29ae322e2af73c3732ab322e29c4332e2a8f2e2925dd37312cce352f29b6352e29c7342f29af322c26a4302b25d6362f2ac938312bf33d352ec5352f2a632c28237a302b26bf39322dca433b349e3f3830d4423b34bb3f3831f1473f38dc443d36d3423b34cc433c35d0463e37dd453d36973d3730b1403932cb443c35f64a433cdf453f38f94f473ff94c453dff524a43ff544c44ff564d45ff584e45dc50473fff574c43fe584d43ff5b5046ff5c5249f8554c44f0514a43f0524a43e7554c44db544b42c0524840cd544a42fc5f544bfe5b5149ff655a52de564d46eb554d45fd595048f95d5249fe63564dff64584cff675b50f963584ec95c5249614a423b6f4e453eca5a5048fd655951dd61564cb560554bc3655950e06c5f55e670645af673675fe36d625aeb6f655c49fb68265edd632a416a260c4463220b3564240b305e210b3c64250c3c6d2c0f2c64270d3362250b6f60250d4c722d0dfb8b8077fc8d8279e4827870f4867b75ff8a7f78ff8f837be284796fff8e8279f6887c73ff8d8179ff94867dff9e8e83ff938579ffa9998bff97897eff91857c81796f66fc988b81ff9e9187ff91857cab777068676962598a67615896676059ca716a62cd736d65ac66605af382776ef37d756bfa877e74d5756c6295645b54c76c6259e574695eae6b6155cd766c5eea7c7065b36f675c92645d56a16c645db8726860b36f665ef17a7067cd71685fff7f736be1746b63e1746c63e9786e66e0786e66d2716860b0676058d26b645ddf726961f7796f67e6756c64db726960ff8d8077ff887b72fe81756be77b6f66ed7d7168e8786e63fa7f7469fe84776df981756afe84796dff84776dff83786dff84786eeb796d65ff81766eff81756dff81766fd9706760ff7a6f68fd786e65ff7b6f66ff82756bff897b70ff86776df67c6f66ab6b615992665c56a46a625cce726963f1796f69e4766d67fc80766ffb857a73fc887e79fa877e77f0867f78ee898179e4837d77fc8b827bf48d847dfc8f877ef6918881f9958d88fe978f89ffaca49df8a29a93ffb0a69effcdc2b9fcafa59de9ada49aa1a0968dffc0b6acf8b4aaa0d4a39c944f807a71717d796f88807b74bb89867ece97918a987f7b75e7999288f9a69f94faa29c92c190897fa6867f79d0969088cd918b84a98c877fc397928ad39a958dac8d89828a7d7b769086847ea28b8680a089867fcf918d866add7a47df150f0b67130e0b60150f0b49140e0b44130e0a3e130e0b5c140f0b6616110d7118130f6e1914107e1b1512a31d1714bf1d1815921b1613991a1613ac1b1614b51b1714791a1613bb1e1916a01e1a16b1211d18e2241f1bff2c2621ff2a2520ff352e27e52e2823cd30292397332c26bd3a322bba3e362e3d332d26ec3f38329d332f2a8f312d289b332e2a6d2e292584312d28e63a342fd938322cdd38322bd5352f28df37302ac7332d27e136302ac3362f2a7c2b2621822d2722ba332e27c4342e28a8332d27b2312c268e2e2924622c2622b538312b94352f29fa463e36e8463e37d7443c35bf3f3831c5403932b0403831ca453d36e6453e37db433c35df453e37ce453d36df474038ee49413afe4c443ce84a423bf54d453eff564d46ff584f46ff574e46ff554c44cd4c443ce050463eff594e44ff564c44ec534a42ed534b43f1544b44e74f4842c64e463fa44c433c954b423ad5564c43fe5f534bff60554dff5d534ae4574e46fc5d544bf2595047ff64584fff64574df664574bff76685be960554a96524941644e463e5148413a5048413a4549413a6950473f72544b41835c51477c5e534a98655a50bb6c6157d56d6158b3695e5554ff7f345ad15a234972290c4b702a0d3e6c290d3b6a280d476c2b103c6a2a0f406d2e113463260c605b220b456c280de573665ebb6c6158af665d55cb6a6159fa756a62c3675f58eb70655de16e645bf772685eff87786eff8f8175ff827569fd958577ff7e7064ec76695eff7b6e63ff85786f5b625951ff80756cdf756c64b6665f56b76862587c585249ae625b53ef6c655df46d675dfc6e645ab9625a50ae5c544af06d6458f271675d89564f46a85e554bd3675d50dd6c5f52e2716557c0645a4f7f564e4698585049ca665c55f36d635bde6f655cc66a6058fd746960ed71665dd66d635ae16f665dec70675ed76a61599860574fe46d645cff736a62fd716760e86c625aff7d7269ff85786eff887a6eff887b6ff6796e63fd796c61ff827469ff817267f77c6f65eb766b60dc6f645bf272685fa4665a50c86f6359a3695f56d473675ef7796d65ff84786ef07a6f67fa7d7269ff7f756dff8a7e73ff8a7b71ff887a6eff84766abb71645a80685c546663585195696059986b625c80675f598b6e655eaa766c64a7766c64b97b7169da7e746dae776e67b2776f69c37a736cf0847b74c378716be7807870e5837a73ea847b74ffa39991ffa59c95ffa19891f5a49b94f1998f86c691877efba2978de0a2988ecf9c938affa8a098d69790888f7e776f82807b728c7b766dda948d84f5948f85eb8e887dd58a8276e9978e81af7d766aec978f83b4888177b68b867eb0868078b4868079de9d938ade948d84bc8481796a68645fc0827e78bf807d77f38e8a84d18a8680f6928d8784de814cff403225ff433428f13c2f24cc3c2e246e34292085382d244f322921ae3f332b863c322a9e3f352cc7433830d3453931e1433930cc40352e993b332cc83f372fd440362fe03f362fda3e352fcc3b332d75312b2685342d27f1413832f93d362fff4d443dca3c36318838322c873a342fba3e3833c7403834973e3731a33e39348e3a3530d83f3935d63f3933e9433d36ac3e3832bf453d36fd51473ef84e453df4473f38ab3d3731a139332e7e342f2a9538322dbd3e3832f547403ab53c3730eb443d36cd423b35973c3631ce443d36be443d37392f2925b7464039dc4d463dda50483fe5524940c44e463de25a4f45c7584e43de5e5349df5c5348cc574e44ef564e44eb564d44fa544b41f2524941e04c433bf44d443dff574d44fb584e45fb554b42f5574d44e150473fcd4f463ea6474038d04e473ff6534b43ff5a5147f85d5249ee594f46ff594e44f75b5046f75d5148ac4e443c4c423a327a474039aa4a433cff5e554cfc574f48f25c524aec554d45ff5d544bff63594fff63574eff665c51ff72675bff6e6358f6665c52b2554d43ac584e4693524a417f514940d75e554a8c564e44d460564bde64594ffa6a5f54fb6c6156dd665c5359f4642665ce582459792f0f4f702a0e4d6e280e446b280d3f67270d3d6b2c1034672a103263260b5d5b220b426d280cd1b6b4afa1aaa9a5b5afafaba3acaaa4f4bfbab6bfaaa6a1d3b0aea8919b9895bca8a5a4fec6c4c2ffdad7d3ffdeded5eab8b7b07d9997907c999890c2aca79f8aa29e9552908e86caa5a49de6a7a69eca9a9890ab8c8d869186867ff7a19f94ff9f9f93c08a887fb487877d9a8281797e7e7c7385817f779c89877ec1929087ad86857beaa29d96bc8b8780c48f8a83bb8b877f4f65615ca37e7b75e4928e85be8a857ec887837c9779756eb88b867ecb8d877fe9908a83ee8f8a83db837f7ac57e7a74e489857dd987837df497918aff969088ff97918afc989288c38d887fe5918a80b4847e749f7d766ca6716a61fd767169ff766f67d65b564fcc514c47f858524cd0514b45a94e474161443e386d46403ac8524b44ff59524afa58504ab7514a44dc514b45fd58524bfd5b534dfe5c544dff635b53ff5f5850cb544e486d4c4640574a453f3446423c74544e476159524c60635c55ad756e66d5867e76cc827c75a37a7671927774708d797570d8857f7ca478726fb07975717f6f6a687b6e6b68d57d7978e88a8584ff989492d1837f7d7e77737160716d6a7978736f7579726d7377716ba17a736ebc7a736da477716a9d7e79737b817d76ac9c978ecba3a1979f99978eaa96948c7f86867e7f8281796e7d7b748387857d9888867f757c7b73b194928a938a8780968d898380817f794068656176787670a1817f7791828079957d7b757c777570827f7d757edc834eed5c4c3eff625243ff615143fc625143f8635345ec635347bb5f50449f5f5146936154499762554b9e61554bae61554cb761564cc063574d9e5b5248b55f554bc65f554bbe5c5249d2594f47e65b5149e3595048ad534a42a5504841a14f4740ff73685fff625952fc5f564fd158514cc757504cac514a46a9514b45a3544c46cb57504a714c453f99514a43dc575049c2524b44ff635a51f55a5249e15c534ad35a5149b9504942bd4c4640d2514b44ea524b44b348443ec34a4540b649433ed9514a44de514b45ab48423c9d49433d9a47413ca249443e8046413ac5574f48b55950477e504941aa595048a65c534ad66a6054d16d6257bc6c6156c8696055c35f564deb5f554cbd514940d14c433cc1433d35cd473f37e1494139fd4a423afd4c433bd04a423ac64a423ab84c433b7d433b365b3e38332638332d3a39332d83403a33523c36304d3e372f383e362f2f3e3730353e3730313c352f1537312c1336302b0f37312b1c352f2b3238322e90443d37c54d453ed24e473ff7514a42f9534b43ff5b544bff59524afe595149f3564e47f5574f48c5514942a84f484092514a429a504841a54f4841bc4f4841cc564f47c55b534aa95b544b73ee6b2e52c45320777f331257732c0f55712c0f456c280d3f6b290e3867280e3467280e3363260b6460250d556d280dd2c7c8c3abbcbebbbcc4c5c1cfc9c8c3b9bebdb9ccc4c3bed4c3c5c4bac0bdbbd0c7c9c5d1cac9c7fff3f4f2f2d1d2cdccc5c6c19fb4b5b2a5aeaeaba8b4b3aa91b4b3a99db4b3ab329b9891bdb1b1a8aea4a7a0b29b9d94efa6a8a1c39c9c93bba6a59cab9a9c92a491928b9e97988fad9b9c919f94958ebb999a94d69f9f99c5a19e9abc95928fb1928e899586817ea08987827c7d7c78d39a9791dc9e9a93a88e8b85cd95928dc695938ed49e9b95dd9d9993e1989691c78d8b87f293918cd08b8882e28c8984bb7d7a75d485817cf787847dfd88847dee86817bcf807a749779726cb07c756ea3706a644758534d494c4843824a48436d403d3a5b3c3934623c3934513f3b363738332e2536322d1e34302c14322e292b342f2c3436312e8f413c37d249443ef34d4842ff4f4944ff524e48ff534f4aff55504cfd58534dfb58524ee057504abc57504aa35f5851d76f6760ca726d65d57f7a73eb8c877fcc88857ec78c8883cc8f8c87d0928d88b185817dcb8c8886b78885839b837e7ca386807fffa29d9dff9c9899d4928e8caf8a8687a887838488807c7d84817c789489827f9c88807b36786f6bc0867f79a286817bc494908bc09b989195a6a29a98a9a79f909999939193938e818a8a836c7f7f79787d7d7b978a8a85978786828c8a88856f7c79765c7c7874647a78745c797772777f7e798c8b888184807d7881827f7b84807f7a7c827f7a8f8885806cdb804e90736356ca7b6d5fe1827163e0837263ca827265c8847567b58376697c7e706450766a5f65776c628280756b7781766b7681756a9282766aa8857a6fc2897c71be84786ed8867b70d67f756be2786e66c273696287665e5694685f57c6716860fc82786ea8666059ac67605aab6b635dd2746c65b570686289645e57b86a635dcf706861b06c645cce6f6760ae68615a8358534dcb665f56bd625b53d1625a53eb6a625ad66a625aea68615afd6a635cff69635cf2615c56ec605b55f0615b53d95c564fed645e56d75d5650a856514b884f4a44874d48415647433c6a534d468b5d554d8f5f564ec96a6259ae696157bc6f665cc5776d63be776d61c0776d63a76a6157a060564d5e4f463e35443c332b38322b3e38312a343a322c4437312a503a332c593c352d743d352e2d36302a773e3731ae463e38c448413bc6453f38793f383198413a34b5453d36a7423b34a7443c35a1463f378c453e377b443d3697453e3799463e37a1453e37a9453e37a3443c37a8463e38c24a433c8a433c35ce4a433cf24e4741ea4d463ed54b453ed34e4840de4e49429348423b50413c3669433d38a049433d8246413b8546413a924d4841af565048c9635b5282e4672e4eb74b1c637a2f1153712b0e456c290d4269280d3965260d3562240d3966280f3062260b6b64270d5c6c270ec3c1c1bbc8c4c2bebac4c3bfc9c3c3bfb8bab7b6bfbcbbba72a8a8a595b6b4af9db9b8b3d5c9c8c484aeb1ada7bdbbb695bcbcb59abbbbb37fadaca486a9a9a1abb9b6af92b7b4aa9ab4b3aa82a7a79d7994958d9f9d9d92a195968db194978eaba6a49cafa2a19ad7a8aaa3e9a8a9a2d19fa29ad29fa09ac4a09f97c59d9c95d19f9d978285837d88888681727b7974647c7a73627c79738785817b91817d78d88f8d89ba8a8782cd95908bd494908bcc928e89b88b8882c288847e7378756f3c706c653066635e39615e583a5f5b553d55524c6159554f685b565036514c46735a544e9c615a54e2655f58ce59554e6b48433dbf4b46419c433e39b8443f399e433e399a45403a8f443f3a8c443e389b443e38aa453f3ab646403ab3463f3abe48423cbb48423cbd47423cf24d4843f34d4842dd4c4741d94e4944ed524d49a24c46415946403b6148433d8a59534e81635e56876d6760ae7b776fc88a847cce8f8a83be938d87ce95908bb98f8987bb928c8b6b807b799b8f8884a5908a87c895908e7784828198908a899295908f95989290788e8987818e8a87a79b94908f9d948f949b938e80938c857387827d8b938e8687918d889197969089aeaaa494a7a39faea09f9bc1989793a88d8c89a68a8986928c8a858b888782918c8b8657807e795881817b4b777670447d7b73407b7872577f7b76607875708d7e7d797f7c7a768884817c8f837f7a8783807b6bd98751ffa49f9cffa5a09bffb7afa9ffbcb6b0ffb5afabffb4ada8ffb1aca9ffb0a9a8ffada8a5ffaba5a1ffaaa4a0ffaba6a2ffaaa5a1ffa09d97ffa5a29cffa79f9affa09b97ff99958eff9f9993ff99948fff9e9b97ff99948fff9d9993ff948d87ff8f8b83ff898480ff85807cff86807bff817c76ff86807dff847f78ff807b77ff817b77ff7f7975ff837f7aff827f79ff84807bff827f7aff7b7773ff7c7573ff767170ff6f6b6aff6b6664ff6f6b67ff6e6a66ff66625dff645f5aff65605bff615d58ff615d58ff5d5a56ff5f5c57ff595550ff5a5651ff58524fff55514dff4e4b46ff4a4742ff49453fff49433cff48423cff453f3bff5a534dff6c655eff4a4139ff37312aff37302aff1e1a16ff221f1cff211e1bff221f1bff221f1cff221e1cff221e1cff221e1cff201d1aff211e1bff1f1d1aff1f1c19ff1f1c1aff221e1bff1f1c19ff221f1bff211e1bff211d1bff211e1bff211e1bff201c19ff221f1cff211e1bff221f1cff231f1dff24211dff23201dff25211eff25211eff25211eff24201dff211e1bff221f1cff23201dff221f1dff221f1dff231f1dff231f1dff221e1cff231f1dff2b2825ff332f2cff3a3632ff413c3937cb511d45b2491b486c260c3e69250b3f69270e436b2a0f3860220c3164260d366629103362250b5d5f250c5f69260eff827f7bff898782ff8e8782ff898480ff817f78ff85807eff807c79ff898884ff7b7874ff83807dff77716dff78756fff75716fff716e6bff75706bff6c6863ff756f6cff716d68ff706c69ff756e6bff6c6662ff6c6964ff6e6a65ff706c69ff6d6a66ff6a6763ff6d6966ff676463ff5d5b5aff5c5855ff63615dff62605cff5a5753ff595653ff595553ff54524fff55534fff52504dff545350ff504c4aff514f4dff504c4bff4f4b49ff494543ff474340ff443f3dff413c38ff423d38ff3f3b37ff827d79ff78736dff4b4540ff61574fff453e37ff443c37ff2d2927ff2e2a28ff2e2b28ff2f2c28ff2f2c29ff2e2b28ff2e2a28ff2a2725ff2d2a27ff2b2825ff2a2724ff2b2825ff2b2826ff2a2724ff2d2927ff2b2825ff2c2826ff2c2a26ff2c2826ff292523ff2c2a26ff292724ff2b2826ff2c2926ff2e2b28ff2c2a28ff2e2a28ff302d2aff322f2cff34312eff36312fff3d3835ff44403cff44403eff4f4a48ff585351ff5d5757ff605a5aff686261ff615e5cff5b5857ff63645fff686564ff61605eff6c6764ff666362ff5f5c59ff5e5a56ff5b5858ff5b5657ff5a5755ff575353ff595654ff615e5cff65645fff595955ff5c5b57ff5d5854ff5a5754ff53524cff575551ff555351ff5d5e5cff51514dff585753ff504c4aff4f4d49ff4d4c49ff4a4847ff4d4a49ff4c4946ff4f4d4bff4f4d4aff4d4b49ff4f4a48ff4a4643ff4d4a4792ca7644ff908a85ff999490ff9c9691ff9e9893ffaaa39dffa29e97ffa8a49fffa9a49fffa29d99ffa39e9bffa19a95ffa8a199ffa5a19bffa49f9aff9d9793ffa29d99ffa39d9bff9b948fff9d9993ff9b9691ff99958fff9a958fffa29a95ff9d9795ff96938cff8c8883ff88827dff87837eff87847eff807b73ff847f79ff7b7772ff7f7972ff7c7470ff7e7b76ff787370ff7d7a74ff797571ff787370ff736d6aff76726dff74706eff706a68ff6c6864ff6f6b66ff68645fff625d59ff66605cff635e5aff5c5652ff5f5d59ff5e5955ff5e5a55ff5b5754ff56514eff544f4bff4f4945ff4a4842ff4e4b46ff4d4943ff615c55ff88817bff817970ff68615cff483f37ff3d342fff38302bff1f1b17ff221e1bff221e1bff211e1bff221f1bff211d1aff211e1bff211e1bff1f1b19ff1d1a18ff211e1bff1f1c19ff1e1b17ff201d1aff1f1d1aff201d1aff22201cff201d1aff211f1bff231f1cff221e1aff23201cff221f1cff24211eff201c19ff23201cff27221fff24201eff24201dff25211eff211e1bff26211dff231f1dff23201dff221f1cff23201dff23201dff22201dff23211dff22201cff25221fff292623ff2d2824ff312d2936d1551f3fb045174272290c51742c0f3c6c280e426a280d3a65260d305f230c47672b113160240b5e5f250d4d66250cff76706dff7f7a76ff7e7976ff7c746fff807c77ff7e7976ff797671ff7a7771ff837b76ff7d7a7aff76736eff75726eff736f6aff706d69ff74716cff696661ff6e6964ff6a6461ff736c66ff6c6461ff6b6964ff625e5cff686661ff65635fff65615eff676260ff696762ff686462ff65605eff5d5a57ff625f5cff5d5b57ff54534fff585452ff575452ff504e4cff524e4bff514f4cff504e4bff53504fff504d4bff4c4a47ff494441ff44423eff474542ff44423eff7e7971ff7b726aff746b62ff7a7064ff58514bff504a46ff6f655dff453d37ff443b37ff2d2927ff2d2927ff2f2c28ff2c2a26ff2e2b27ff2c2826ff292624ff272421ff2a2724ff292623ff282521ff292724ff282623ff292623ff2b2925ff2a2724ff292724ff2c2926ff2b2623ff2c2925ff2b2825ff2e2b28ff282522ff2a2825ff2f2b28ff2e2a27ff2d2927ff312d2aff2d2927ff36302cff36332fff3a3632ff383633ff42403cff494643ff4f4b48ff55514eff595653ff595554ff585553ff5e5956ff5e5b5aff5d5b5aff5e5c5bff615f5eff605e59ff5a5856ff5c5c58ff5a5655ff555251ff585351ff575350ff605f5aff5b5b56ff555251ff5b5957ff585554ff595451ff585754ff545350ff575553ff595954ff605b56ff5a5b5bff504f4cff52524fff4d4b47ff494844ff4e4d4aff484844ff4b4944ff4d4a48ff4d4a45ff4b4643ff4d4b47ff444140ff4d4a4890c46b3eff6b6863ff787470ff86827dff8e8883ff88837eff89847fff99938fff96918bff9b9691ff95908bff9b948fff95908bff9d9993ff98918bff9a948eff96918cff97928dff99938fff9c9691ff97918dff938e8aff97938eff918d88ff918c88ff86817dff88837dff857e79ff827b76ff7e7974ff7b7873ff837c77ff817c78ff7c7772ff77726dff74706cff78726dff726e6bff75706dff726e6cff6d6a65ff6e6a64ff6d6864ff6f6b67ff66625fff66625dff64615dff625e59ff615d58ff635f5bff615d59ff5f5d57ff5c5854ff5d5955ff57524dff57524eff514b49ff4d4842ff544e49ff716c67ff877f78ff756f69ff605b56ff534c49ff4c4541ff473d35ff3d352fff39312bff1f1b18ff191612ff1f1c19ff201d19ff211d1aff1f1c19ff1f1c19ff201d1aff1f1c19ff1e1a18ff1d1a17ff201c19ff1d1b17ff211d1aff211e1aff1f1c1aff201d1aff1f1c19ff1f1c19ff211d1bff1f1c19ff1f1c19ff1f1c1aff221e1bff201d1aff211e1bff24201eff24201dff23201cff211e1bff24211eff23201dff221f1cff23201dff24201eff24201eff23201dff23201dff23201dff24211eff25221fff24221eff272420ff2c282430c2481a34b245183b772a0d3c71280d356c270d3b6c290e2f61220b3263260d3563270f3360250c575d230c425f220bff726c69ff75716cff807a76ff7b7571ff7c7673ff77726fff7d7975ff7b7773ff7b7773ff797572ff6e6a64ff716b68ff6f6a66ff6c6763ff66625fff6e6965ff6c6764ff6e6864ff6a6560ff6a6561ff69645fff625e5bff676360ff666361ff605d5aff63615dff64605dff625f5cff5d5a58ff5c5956ff595855ff585552ff54514eff54514fff55514fff54514fff52504cff4d4b48ff4f4d49ff514f4cff4d4a48ff44413dff4d4945ff66615aff736c65ff7f7672ff635d5aff595451ff514c48ff4f4a45db4c4844ff736b65ff62574fff49413cff443d37ff2a2724ff2d2926ff2b2725ff2a2824ff292724ff2b2725ff282523ff272421ff2b2723ff262421ff292623ff2b2724ff282522ff292623ff272522ff272421ff272522ff282522ff272422ff292623ff292623ff292723ff292623ff2b2825ff2a2725ff2b2725ff292623ff2c2926ff2f2c28ff302d29ff312e2bff312e2cff373432ff413e3cff44413eff494542ff514d4bff524f4dff524f4dff52514eff5b5a58ff585855ff5a5857ff575654ff5f5b5bff5f5d59ff64615fff5d5a59ff5d5a58ff5f5b58ff625e5eff595854ff5a5652ff585554ff5b5957ff5c5a58ff585555ff595656ff595755ff5a5856ff5a5a54ff565552ff545250ff4b4945ff504d4bff4a4643ff4a4642ff464542ff4b4c48ff4d4b49ff504c49ff484743ff4c4845ff4b4744ff4a4744ff4e4b49ff4d4a4893c56b3aff524e4aff54504dff635f5cff6f6a67ff7a7470ff7f7974ff87817dff857f7aff8a8681ff8c8983ff8b8882ff908c86ff928d88ff918c88ff938f89ff8f8b85ff8e8984ff8e8884ff948f8aff908987ff928c88ff948e8bff95908bff8e8b89ff888483ff898480ff87827eff898380ff84807cff7a746fff74726cff777570ff7c7974ff7a7572ff7b7774ff77726fff736e6bff736e6bff706d6aff716e69ff6b6663ff6c6864ff6a6761ff68645fff615d59ff63605aff625f59ff605d59ff605d58ff615c59ff5b5855ff5b5853ff5d5956ff5b5653ff58534fff625d58ff807972ff807a72ff6d6863ff58534eff4d4844ff4a46416f2524206d282623ff3e352fff3c352eff3b332dff1e1a17ff1d1a17ff1a1715ff1e1a17ff1f1b18ff1e1b18ff1d1a17ff201c19ff1e1b18ff201d1aff211d1aff211d1bff221e1aff201c19ff1f1c19ff1f1c1aff1d1b18ff1e1c19ff1f1b19ff1f1c19ff1f1c19ff1f1c19ff1e1c19ff201d1aff221f1cff211d1bff231f1cff221e1cff221f1cff24211dff25211eff24201eff25201dff24201dff23201dff23201dff22201cff25221fff25221fff25221fff24211eff25221fff23201eff25221f2fc94b192caf4117367e2d0f3b752a0f326d260d3267250d3569280d3066280e2e62250d2e60240c6b62270e405c210bff6b6561ff6b6661ff736e6bff766f6dff77726eff787370ff7c7874ff777471ff787776ff777370ff7a7572ff75716dff716b6aff66615dff615f5bff65635fff6e6b67ff676360ff6f6a67ff686461ff6a6663ff66615fff646360ff65625fff635e5cff5e5b57ff5c5a56ff5c5a56ff5a5855ff5c5b56ff585752ff585755ff52514dff575251ff514e4dff52504dff52504dff514e4cff504c4bff514c49ff655d57ff756c67ff756e68ff68625eff55514eff504b49ff4c494793312f2c6828262362302d2b9e605d58ff766e68ff504741ff4a433dff443d37ff292522ff282422ff282523ff2a2522ff282623ff2a2725ff2b2824ff2b2825ff2d2926ff2a2724ff292623ff282522ff262420ff282623ff262421ff262421ff282522ff272522ff282523ff272522ff2b2825ff2a2624ff2b2725ff2a2724ff2b2925ff2a2825ff2c2926ff2d2926ff2d2a27ff2e2a26ff2f2d2aff302e2bff322f2dff383533ff413d3aff484442ff4c4946ff4b4846ff484544ff514e4dff555251ff5f5b5aff595554ff575452ff595654ff5c5a57ff595754ff585653ff5e5b59ff545250ff595654ff4f4e4bff545150ff53504dff575452ff595655ff5a5656ff545150ff5e5b5aff5b5a57ff5a5c5cff565453ff565452ff53514fff524e4eff4e4b49ff474542ff494845ff4f4e4bff4a4846ff4f4c4aff4d4948ff514d4cff4c4947ff51504eff4d4a48ff4e4b4996c06739ff332f2cff3b3735ff403d3aff4c4a45ff55524eff615d58ff67625eff746f6aff716d69ff716d6aff807b75ff7f7d76ff827e79ff8c8882ff8f8a86ff87827eff837e7aff827d79ff87827eff86817dff87837fff817e79ff87807bff938e8aff85827fff8a8784ff8b8987ff807c7aff7d7872ff77726cff7b746fff75716dff7b7974ff797471ff75746eff716f6cff736f6cff6f6a67ff6f6c67ff6d6b66ff6a6863ff696461ff6a6662ff6a6661ff65615dff615c59ff605d58ff5e5c58ff5f5d5aff5e5b56ff605c5aff585551ff4d4a47ff726d68ff8d8682ff847e79ff65605bff534f4aff46403b9e2c29263f211e1d5323201e7735322c84433f39ff4a433bff3d352dff3d352dff1f1b17ff241f1bff171310ff1c1916ff1d1a16ff1f1b18ff1d1a17ff1e1a17ff1e1a17ff1d1a17ff1e1b18ff211e1bff1f1c19ff1e1a18ff1f1b19ff1f1b19ff1f1c19ff1f1b19ff201d1aff1f1c19ff201d1aff201c19ff1f1c19ff1f1c18ff201d1aff1f1c19ff1f1c19ff211e1bff211e1aff201d1aff231f1cff24201dff221f1cff211d1bff211e1cff201d1aff211e1bff211e1bff211e1bff23201dff23201dff23201dff23201dff25221f28c94e1b2aab3a152d7f2a0d3c7e2f1042782d10376f290f356a290d2b62240d38672a102d60250c6c64280e39551e0aff5d5854ff605c59ff64615eff696561ff696460ff6c6762ff726d69ff716e6aff72716eff757372ff7c797aff746e6aff66625dff635d5aff5f5b58ff6a6763ff64615eff6a6863ff696862ff676665ff686561ff686561ff63605dff61605bff605c59ff5d5b58ff5d5b57ff5a5854ff585553ff575451ff565451ff555351ff52514dff53514fff524f4cff514d4cff4c4743ff6e655fff7e736fff7b736fff615b57ff524d4bff46403dcb3633314e23201e4d292523562927246b37352f8b504c473c383531243c3933ff877f79ff534c45ff4e463eff484138ff282522ff282422ff282422ff282320ff292422ff282522ff2b2825ff292624ff282523ff2a2724ff272522ff262321ff282522ff282523ff272521ff272522ff272521ff292623ff25231fff282422ff272521ff272521ff292622ff292623ff282622ff282523ff2a2624ff292623ff272421ff2a2725ff2c2a27ff2e2c29ff2d2a29ff322f2dff383431ff3d3a37ff3f3c3aff403e3aff4a4845ff4b4846ff52514dff4e4b49ff4d4b48ff4d4b49ff524e4cff4e4d48ff4e4d49ff53504fff5b5a55ff595654ff51504cff504e4cff4b4947ff53514fff535250ff595656ff4f4e4bff514c49ff5a5957ff555655ff5c5d5eff5f5f61ff54504fff4f4b47ff474542ff4a4744ff4c4b48ff4c4b48ff53514fff4f4f4bff4e4e4dff514e4cff4f4c49ff4c4a47ff4b4a46ff4b4846ff4a474590c36939ff1d1b19ff22201eff252321ff2a2725ff34312fff423f3cff46423fff52504bff615d58ff635f5bff5e5b58ff635f5dff6b6964ff7b7773ff84817eff827e7aff7b7773ff7d7974ff7b7873ff7d7976ff7b7977ff797671ff7e7a78ff75726eff827e7dff878683ff838282ff7f7d7fff747271ff77726fff72706cff706c69ff716c69ff746f6bff76716eff726f6eff726f6eff716d6aff6b6763ff6d6966ff6b6864ff686561ff63605bff64605cff5e5b57ff625e59ff5a5550ff63615cff5e5a56ff5b5854ff413d3aff8d8983ff84807aff7c7671ff605a55ff4d4944ea44403c3a1b1a1739221f1c542825236a3a36313f2f2c28342e2d2825141311ff5c564dff3e362eff3d362dff1f1b17ff25211dff201c18ff191614ff1b1815ff1c1916ff1d1916ff1e1a17ff1c1916ff1c1916ff1d1a18ff1d1b18ff1d1a18ff1d1a17ff1d1a18ff1d1a17ff1e1b18ff1b1816ff1b1816ff1d1a17ff1c1917ff1c1a17ff1e1a18ff1f1b19ff1f1c19ff201d1aff201d1aff211d1bff201d1aff201c18ff1f1b18ff211e1bff201d1aff211e1bff23201dff201d1aff201d1aff1f1c1aff221f1cff211e1bff211e1bff23211eff221f1dff24211f28bf461944bf481a3b8b300f457f2b0e467e301246762d113a69270e39662b103161260e3360260d6f62260f33581f09ff514d49ff534f4cff5b5856ff5e5b56ff57534fff565754ff656462ff6c6b69ff6d6c68ff707377ff6e6f71ff645f5dff5f5d59ff514e4bff5d5957ff625f5cff625d5bff656160ff686665ff676463ff656160ff65615eff615f5cff5d5a57ff595754ff5c5a56ff54524fff5b5855ff514e4dff524f4cff5a5755ff53524eff4d4c48ff4b4741ff766d66ff766f69ff766e6bff5c5652ff4f4a46fc4845429d32302c39221f1d3d2724204e2c29265e3e393456403b36252e2c282531302b27282524281b191729383531ffa29d95ff686058ff4e453dff474037ff262320ff282522ff272421ff252220ff25211fff282523ff272421ff292623ff292523ff262321ff262321ff262421ff23201eff262320ff252220ff262321ff262421ff272421ff282421ff282522ff292623ff2a2623ff292523ff272421ff24211fff252321ff272522ff262320ff2a2724ff2d2a26ff2f2d29ff2e2c29ff2c2928ff2c2a28ff312e2cff33302dff33302eff3a3735ff44423fff43403eff474541ff4a4946ff484745ff42403fff464342ff484744ff545250ff5b5856ff524f4dff4c4b48ff4e4d4aff4b4947ff4c4b4aff4d4d4bff4b4a48ff504e4eff4b4b49ff585758ff575a58ff5c5f63ff545559ff535253ff4d4b49ff4a4a47ff474544ff4c4a49ff4e4b4aff53504eff535050ff525150ff504d4cff4c4947ff4e4c4aff4c4a47ff4f4d4aff484543ff4c49478db35f34ff1a1816ff1a1816ff1d1a19ff1f1d1bff242220ff2b2927ff322f2eff34312fff3e3a37ff4a4642ff484642ff4d4a48ff4f4c49ff534f4dff5d5a57ff666561ff676561ff666260ff6a6664ff696561ff68635fff6c6865ff6a6763ff696563ff6f706dff767776ff797878ff72706dff6f6d6aff736f6cff6e6a67ff686561ff686662ff6b6864ff6d6c66ff6f6d6bff686664ff696867ff676663ff656361ff64615eff65615eff615f5aff5d5956ff5e5b57ff5c5853ff5c5955ff5c5752ff605a56ff928a85ff8d8680ff625e5aff58554fff4f4c479f312f2c391c1a17522a2623a248453f4d33302c3c37332f2f2422203e1f1e1b482c2a266b3c3934ff6a6057ff3d362eff3e362dff201c18f2d6d5d3ff221e1aff171410ff1d1a17ff1c1916ff1c1916ff1d1915ff1e1a16ff1d1a17ff1d1a17ff1d1b18ff1e1b18ff1f1b19ff1e1b18ff1d1a18ff1e1b18ff1d1917ff1c1a17ff1d1a18ff1d1b18ff1e1a17ff1e1a17ff1e1a18ff211d1aff201d1aff201c1aff1e1b19ff201c19ff201d19ff211d1aff201c1aff201d1aff211d1aff1f1d19ff201d1aff201e1aff1f1d19ff1f1c19ff1f1c19ff201d1aff221e1cff211e1cff23201d39ce4f1d58cd511f4d913412598b34134c812f1035722a0d3769270d2f5c220d385f250f3160260c6661260e40571f0aff423f3dff43403bff474441ff4c4945ff4e4947ff51504fff575957ff5a5b5bff606263ff5d5b59ff626060ff5f5b59ff53514dff565450ff5c5855ff5e5b57ff5f5e5bff5f5d5bff5d5d5bff5e5d5bff5d5b5aff5d5a58ff5f5b58ff595553ff555450ff555352ff55524dff54524eff4f4b48ff4c4845ff5b5550ff867c74ff8b807aff746e69ff54514dff4f4d499c2f2d2b6b2825234427251f52322d2976413d386b49433f3534312d2e3e3934292d2a262a1f1d1b422a28243f35322e7742403a684a45406a4a4742ffa79d97ff70675eff4b433cff463e37ff262221ff272320ff262220ff272421ff272522ff282523ff282523ff2a2724ff282522ff272422ff292522ff242120ff252221ff262320ff25221fff26221fff262320ff272422ff282622ff272422ff272321ff282421ff262421ff272420ff272422ff262321ff252220ff262320ff272521ff262321ff252421ff262421ff242220ff292624ff2b2825ff292724ff312e2bff383432ff3c3736ff433f3dff494442ff43413eff474442ff423f3dff3f3c3bff42403eff494746ff494745ff4a4745ff4a4847ff4a4746ff484642ff4a4745ff454441ff44403fff4d504fff545758ff595a5cff575857ff504f4eff555251ff4c4a47ff464642ff484744ff4c4947ff4f4e4bff545351ff51504eff505050ff4f4f4dff4d4c4bff4c4a48ff4e4a49ff4a4845ff474644ff484745ff48454197b76338ff1a1815ff1c1917ff1b1815ff1a1716ff1c1a18ff201d1bff23211eff252321ff272523ff2d2b28ff35312fff373431ff393733ff403d3aff44413eff474340ff4d4845ff54514cff5a5653ff585350ff5d5955ff5e5955ff5c5855ff605b57ff5f5c57ff686565ff686662ff6c6764ff686562ff696361ff6c6965ff65615cff605c59ff5e5a57ff5e5b57ff64615cff66625eff64605dff62625fff615e5bff605e5aff5f5c5aff5d5c59ff58534fff595452ff5e5852ff8b827aff988f88ff79726cff5e5a55ff55504cff4f4b48712624214b24221e552c27235a322f297449453f3133302c3021201c5e2b2826723734306f3d3a377a413c38743f3c37ff655c55ff453c34ff3c342cff1f1a17effffffdff241f1bff1f1b18ff1b1815ff1c1916ff1d1916ff1d1916ff1e1b18ff1f1c18ff1f1b17ff1d1a17ff1e1a17ff201d19ff1e1a18ff201c1aff1f1c19ff1e1b18ff1b1815ff1b1815ff1d1b17ff1e1b18ff1e1b18ff1f1b19ff1d1a17ff1c1917ff1d1a18ff1e1b18ff1e1b19ff1f1c19ff201d19ff201d1aff1f1d1aff201d1aff201d1aff1e1b18ff1e1b18ff1e1b18ff1f1c19ff1f1b18ff1e1b18ff211d1bff201d1bff231f1c3ac04a1c4fbc491d569737125d8b34136b8935143c732a0d3866260d395e230d48652911335e250c7364280f525c220cff332f2bff37322eff393531ff3d3935ff423f3aff4d4946ff4f4e4cff4c4a48ff4f4d4bff4f4d4bff504c4aff514f4bff4d4b45ff4f4b47ff54504cff54504cff5b5852ff5a5551ff5c5b59ff5c5957ff595653ff595553ff595655ff524f4eff4c4947ff4b4846ff7b726cff857b72ff877e78ff8a807dff65605cff575350ff544f4e6b201e1d4523201c4a2c262356312c28533a36304d3a38324f4c4942303e3a34251e1c193f211f1c5d2f2b287e3c38347243403a6e47443f784a4641824f4a466b4c48426c4c4944ff88827bff6d635dff4d443dff473e37ff272322ff2a2624ff2a2724ff272421ff272421ff292623ff282523ff2b2925ff282523ff292624ff262221ff24201eff24221fff262321ff272422ff272422ff252221ff24211fff23201eff252220ff282422ff262321ff272421ff272420ff272422ff24221fff272421ff252220ff24211fff24221eff262320ff24211eff24211fff272522ff282523ff2b2825ff2e2a27ff2f2c2aff353130ff3a3634ff3a3635ff3c3a37ff3e3b38ff3c3937ff373434ff393636ff413e3dff4b4846ff464240ff484442ff444140ff413e3cff403e3cff403e3aff4d4d4dff4e4e4bff524f4dff504f4dff504c4bff4f4e4bff484743ff42413dff444240ff454441ff484644ff4c4a47ff4c4846ff4d4e4dff4f4d4cff484745ff494747ff494846ff44403eff444140ff615c57ff655e58ff544f4a93b8633dff181613ff181614ff1a1715ff181614ff191614ff191715ff1a1816ff1c1917ff1c1917ff201d1bff24211fff252220ff292623ff2c2825ff37332fff393431ff3d3834ff3c3834ff413c39ff42403dff4a4643ff4d4a46ff504c47ff4f4a47ff534e4aff544f49ff595450ff5a5654ff5f5d58ff615e5aff605c56ff635c57ff595450ff595450ff595551ff59544fff5b5753ff5b5855ff5b5855ff605c5aff585451ff5d5955ff5d5854ff68635cff8e8680ff8f8984ff645f5aff5d5752ff57504cf74d4b474e22201b602927246735322c5c38342f3836332c25211e1b4722201d75363532613a37336e413d3970403b3875403d396d413d3975423e3aff463d36ff38312aff41372fff1e1a16effffffdf69a9895ff24201cff171411ff1c1816ff1b1915ff1b1815ff1d1a17ff1e1b18ff1f1b18ff1c1916ff1c1916ff1c1916ff1e1a18ff1d1917ff1d1a17ff1e1b18ff1b1816ff1b1916ff1f1b18ff1e1b18ff1e1b18ff1e1b18ff1c1916ff1d1a16ff1d1b18ff211c19ff1e1b19ff201d1aff1f1d1aff1e1b18ff1e1c19ff1e1b19ff1e1b18ff1e1c19ff1e1c19ff1f1c19ff1d1a18ff1e1b18ff1d1a18ff1e1c19ff1f1c1aff221e1b2ec0481a2aab3c15529336125785311258812f114d6f29103c61230d59692a1253682b13345e240c74692b106565280fff282522ff2b2824ff332f2bff312e2bff36332fff3e3b38ff413e3cff42413fff464441ff474644ff494743ff4b4642ff4b4744ff4e4a47ff4b4844ff4d4844ff4e4946ff52504dff514d49ff53504fff504c4aff56504fff55504eff807870ff837a72ff9a918aff807a73ff5d5853ff58524ff6524e4c41171513572e2b2568322f2c6337332d61443f393f3a37302437342e333a352e2b1614124725242172383633713f3b3960433e3a6549443f7149433f63423e3a6346423d6b4c48437a504b476947444076615d57ff665d57ff4d453eff473f39ff484038ff282423ff292623ff272522ff252220ff262321ff272322ff262321ff262421ff272321ff272321ff23211eff262320ff282421ff262421ff242120ff262321ff23201eff272320ff24221fff282321ff282522ff272421ff272421ff262221ff252220ff262320ff23211fff23211fff23211fff252220ff23201eff24211fff23211eff252320ff262421ff292623ff2a2624ff282524ff2d2928ff2d2b28ff322f2eff3c3937ff3a3634ff383534ff373533ff383534ff3d3a39ff424140ff403d3bff3c3b38ff3b3937ff3a3837ff3b3835ff433f3eff464544ff484846ff4b4a48ff4d4c48ff484441ff423e3cff413e3dff423f3dff41403dff464240ff484543ff4a4a48ff4a4746ff464445ff494644ff4b4646ff615c56ff64635dff504c49ff5d5855ff565450ff4a4945ff4a4642aac87342ff191714ff171513ff181614ff181614ff171513ff181614ff1b1815ff1a1715ff1b1916ff1b1916ff1c1a17ff1b1917ff1b1917ff1d1a19ff1f1c1aff252221ff262321ff282522ff2d2926ff2e2a27ff312d2aff3a3633ff413c39ff433f3cff413d3aff44403cff47433fff534f4bff524d49ff4f4b48ff514d49ff4d4a47ff524d4bff4e4b47ff494643ff4d4b48ff504c4aff504b48ff524f4cff4e4b49ff524f4bff736b67ff86807cff78736dff5a544fff534d4aff494440481e1c19692d2b267834302b82433f38483b37313b312e282b1715135a2d2a266537342e623d3a34693e3c375d3e393474403c388543403b82423d3a7a423f3a7c423d38ff403932ff403830ff3d352dff201b17effffffdeffffffcff24201cff231f1bff1a1714ff1a1815ff1b1815ff1e1a17ff1e1b17ff1e1b18ff1e1b18ff1e1b18ff1c1a16ff1e1b18ff1d1a17ff1e1a18ff1f1b18ff1e1a17ff1b1815ff1c1816ff1d1a17ff1d1a17ff1c1917ff1c1916ff1d1a17ff1e1a18ff1d1a17ff1d1a17ff1e1b19ff1d1917ff1e1b18ff1e1b17ff1d1a17ff1c1a17ff1d1b18ff1c1a17ff1d1a18ff1d1a18ff1c1a17ff1d1a17ff1d1a18ff1e1b18ff1f1c1a3cca50203eb6431b5e9134134c7e2b0f4173270d3b69230d4663230d5268281152692a123e60250d70682a0f5861250dff272421ff282522ff2c2825ff2a2723ff2d2a27ff32302cff393633ff373532ff3b3936ff403d3aff403e3bff403e3cff44403eff423f3cff45423eff46423fff47423fff46433fff44413eff4a433cff655e58ff79726aff716b63ff6e6660ff5b5450ff544e4cc23e3a354f2827236934312c7238332d8245413a6949443c38413c352739352d2a272520341c1a1758302e2a6d3b3934563f3d376246433d6145413c58423e395a46403b7349433f7a4b4641884c4642784b46417c4e4b457b4b4642764a4440886f6962ff69625bff49413cff4c443dff4a413aff282522ff292623ff292623ff272522ff24231fff272522ff272422ff282523ff272321ff26221fff24221fff272421ff252220ff24211fff252220ff252220ff262220ff252220ff252120ff252221ff252220ff24211fff262320ff25211eff23201eff23201eff22201eff21201dff24211fff22201dff201f1cff22201dff23201eff262320ff24211fff272421ff252320ff262321ff262422ff282624ff302e2dff353332ff322f2dff322f2dff32302eff302e2cff363330ff3b3a37ff3e3a38ff3d3a39ff393633ff383533ff3c3b38ff413d3cff413f3eff464442ff454342ff464544ff3f3d3cff3f3d3bff3e3c3aff403d3cff423f3dff45413fff3f3d3bff4a4846ff56514bff575351ff51504cff504c49ff4c4843ff433e3aff474140bc3734305b2a28245832312d70403d3767af5b36ff161412ff181613ff181513ff191614ff1a1715ff1c1917ff1b1816ff1c1916ff1a1815ff1c1917ff1c1916ff1b1917ff1a1715ff191815ff191715ff1d1a18ff201d1bff211e1cff201e1bff23201dff23201eff272320ff2c2826ff2d2a28ff34312eff373331ff373431ff3c3936ff413f3bff43403dff44403dff42403cff464340ff4c4b48ff4b4846ff4b4745ff484542ff45433fff4a4541ff7f7772ff827973ff6b635dff57524dff4d4a4683262422502524206b2e2b268b3e393565403c36523d39352e1d1b191a1c1a174337342f5d3c3732543c38335c3c3833643e3a3670413d398747423c83443f3b8e44403b84443f3a78443f3a70423c37ff504741ff3d352dff3c342cff1d1814effffffeeffffffdf3c1c0bcff25201cff16120fff1b1815ff1b1916ff1c1916ff1b1815ff1d1a17ff1e1b18ff1e1b18ff1e1b18ff1d1a17ff1e1b18ff1e1b18ff1f1b19ff1d1916ff1b1815ff1c1916ff1b1816ff1d1917ff1d1a17ff1d1917ff1e1b18ff1e1b18ff1d1a16ff1f1b19ff1e1b18ff1d1a18ff1e1b17ff1e1a17ff1e1a17ff1b1816ff1d1a17ff1c1917ff1f1b19ff1f1b18ff201d1aff201d19ff1f1c19ff1e1b19ff1f1c1a43e15d274bc94f2146852c103977260d3770250c3f6a240d4864240d4f6627104767280f3d60250c6369290d5761250dff262320ff24221fff272320ff262320ff262320ff282623ff2b2926ff302d2bff33302dff36332fff383632ff3d3c39ff3d3a38ff3b3835ff3d3a37ff3f3a36ff49433dff5b544dff6e6861ff635c54ff5e5853ff4e4a46ff46433f90302e2a5029272269322e2a783b3631964f4b454c403c353e3e3a343734302c25191816181e1b18313a35305247413c5b443f395244413b5a46423c6046433d6347433e6446423d814c474289504a427e4b4641824b4641844a4540834e4843784d49446b49433f80504a458f69625bff90837cff514841ff484039ff494039ff272522ff282522ff292623ff282623ff272521ff282623ff272522ff2a2624ff272320ff24211eff262320ff24211fff262220ff262321ff252120ff252220ff262321ff25221eff262321ff24211fff23201eff25211eff24211eff231f1dff221f1dff22201eff211f1dff242220ff262320ff252320ff252320ff24221fff252221ff252220ff272421ff262421ff242220ff242220ff252321ff2b2825ff2f2d2bff2d2a29ff2d2a28ff2c2927ff2c2a29ff302d2aff302e2dff32312eff363332ff33312fff353331ff3b3a37ff393835ff3f3c3bff3d3b39ff413f3dff434340ff474746ff413e3dff3b3937ff3d3b39ff504c47ff5f5a54ff57534eff575552ff58564fff4f4d47ff464340ff3f3c38882a2925692c2a274f302e295e37332f713d39336c403d388354514c3c3c39344aa95730ff171512ff171411ff181614ff181614ff181513ff181613ff181614ff1a1715ff1c1917ff1b1816ff1b1815ff1b1815ff1c1917ff1a1815ff1a1715ff1b1917ff1c1918ff1d1b18ff1f1c1aff1e1c1aff1f1c1aff201e1cff252220ff292623ff262421ff2a2725ff2d2a27ff2d2b28ff33312eff32302dff32302dff3a3734ff43403dff3b3735ff43403dff3b3735ff544e49ff68625dff655f59ff4a4540ff45403dff433f3d5c1e1c19712c29258132302b9547423b3633312b3932302c2719181532322f294736322d4d383431583c3832603d3a33513935316c413e388748433f8044403b8b45413d9347423e6d433d3aa44c4742724e473f192e2823ff5d544cff403830ff3c332bff1f1916effffffeeffffffdeffffffbff231f1bff25201aff191612ff1c1916ff1a1715ff1b1815ff1c1916ff1e1c19ff1b1915ff1b1815ff1c1916ff1c1916ff1b1815ff1b1815ff1c1816ff1c1816ff1a1614ff1d1917ff1c1916ff1c1917ff1a1815ff1b1815ff1d1a17ff1e1a18ff1d1a17ff1e1b18ff1c1916ff1f1b18ff1d1917ff1b1815ff1b1815ff1b1816ff1d1a17ff1d1a18ff1c1917ff1d1917ff1e1a18ff1f1c19ff1f1c19ff201c1959f160283cc74a1d488931113c74260d4872280f436a270e4563210d5066271151692a113c60240c6066280e5660240cff292723ff24221fff24211fff272421ff292522ff2b2825ff272522ff272522ff2a2825ff312e2cff2d2926ff35322fff36302cff403934ff564f49ff605a55ff45413dff433d39ff413d3ae33c37356c23211f782f2c277d312f2a823e393278443f37272f2d2845433f382d201e1b241e1b19262e2b2747444039463f3a3449413b3851443f385847423c5c45413c4e413c385c47413b78504b437f504b467a4c464183504a447f4b464190504a466e4b46416e45403c9e57534c63514a422e3d393213322d27213b3631ff989087ff645b54ff4c443dff4a423bff282523ff24221fff24221fff262321ff262321ff23211eff23211fff262321ff252220ff23201dff262220ff24221fff252220ff23201eff23211fff252220ff252220ff252220ff262321ff23201dff24211eff24201eff221e1cff211f1cff211f1dff221f1dff23211eff221f1dff22201eff22201eff23211fff252220ff25221fff262320ff262321ff23201eff252220ff252321ff262422ff2b2824ff2d2a27ff2a2826ff292726ff2b2a28ff302e2cff32302dff2c2b28ff2d2b29ff302f2cff32302eff393735ff32312eff353231ff3a3836ff3c3937ff3a3734ff3f3c3aff4a4642ff433e3bff5c554fff5a5652ff4e4b46ff393633ff3c3937ff3936344f21201d6b2f2e2b773b38336e3a36327c3c39347545413956403d3620312f2a2a3e3b34373f3d372a1d1c1a242d2b274aaa5931ff181514ff1a1614ff1a1614ff1b1715ff191513ff191614ff191714ff1b1816ff191715ff1b1815ff1b1715ff1b1917ff1c1a17ff1a1815ff1c1917ff1b1917ff1f1d1aff211e1cff1f1c1aff1e1c1aff1f1c1aff1f1d1bff211f1dff262322ff24211fff25211eff252320ff242220ff262321ff2a2825ff2c2a27ff2b2927ff302e2aff302c29ff4e4945ff55504bff46423dff413d39ff403b37e334302d5b1f1d1a6f2826217d35322e723d3b363e34312c271b19171e201e1b3b36312c623b3833633e39365f403a355c3f39355a3c38336d403c3778433f3976413d397844403c8445423d8d47423eb95a544d51433f3920302d29141f1c1914151310ff554c44ff3f372fff3f362eff1f1a16effffffeeffffffdeffffffbf0f2f2edff241f1cff191512ff1b1815ff1a1614ff1c1916ff1c1a18ff1b1916ff1b1816ff1b1916ff1b1815ff1c1916ff1c1916ff1b1815ff1c1916ff1b1815ff1c1916ff1d1a17ff1b1715ff1e1a17ff1d1a17ff1c1916ff1d1a17ff1c1917ff1c1815ff1b1815ff1d1a17ff1d1a17ff1d1917ff1e1a17ff1e1a17ff1f1b18ff1d1917ff1e1b18ff1e1b18ff1f1b19ff1d1a17ff1d1a17ff1d1a17ff1f1c1944f45a243ace4c2055872f1147782a0f3b6d250c4167240e5267260f5a6e2f154d6c2c123e63260d5864270e5963260dff24201eff25221fff272421ff272320ff282522ff282522ff292623ff262421ff2b2724ff36312cff3b3631ff443e38ff46403aff37332fff383531ff3c3936ca312e2b5f22201c7328241f842d2a267d38342f693a36312a322d2837312c28241715121a201c1a3134302b46413c356543403b6646413d5544403b5848413c5b49423d5746413b5d46423c6f4b463f724c4640744c4740794b4641734d48427e4f4a446f4b47417147433e995b564f524d494218332e2a1d35312c1526241f0a1815122825221f5c34322eff968d85ff615751ff504842ff4a423bff252221ff252220ff252220ff252321ff252220ff23211fff262321ff23211fff24211fff24221fff22201dff262320ff252220ff23211eff242220ff23211eff23201dff22201dff23201eff23211eff23201eff24211fff23201eff262320ff201e1cff23201dff22211eff252220ff22201dff23201eff221f1cff252120ff252220ff24211fff262321ff272421ff292724ff2a2725ff272522ff282624ff292724ff2c2927ff2a2927ff2c2927ff2d2a28ff2f2c28ff302e2aff312f2cff353330ff363230ff343230ff32302dff3a3734ff4c4742ff4b4742ff4e4a46ff56524eff4f4b47ff403b39ff3f3c37e236332f7c2d2c28602c2a266a2f2d2875312f2c71383531653f3c37523e3b372936332e2b38342f2f322f2c251c1b181a282521293936303d48443d544c4742654b484461af5a34ff181513ff181513ff191614ff1a1715ff1b1816ff191715ff1a1714ff191613ff1a1715ff1b1816ff1b1816ff1b1816ff1c1917ff1b1815ff1b1916ff1c1916ff1d1a18ff1f1d1bff1d1b19ff1c1a18ff1c1916ff1c1916ff1d1b18ff1e1b19ff1f1d1bff211e1bff211e1cff211e1cff211e1cff262321ff272522ff2b2624ff322d2aff34302dff322f2cff332f2bff33302bcc2f2d297e2a292582302d287437322d4c332f2a46292623291b191639312d294b3a3531533a3632633f3a356a3f3d37673f3a37603e393665403b3774413e397b423e3a6b443f3b68403d38954e4a45403937321d312c271b282521181816133f23201e76332f2c5339342fff4b4239ff40382fff3f362eff201b16effffffeeffffffeeffffffceffffffaff221e1bff24201cff191612ff1a1713ff1a1714ff1b1714ff1c1815ff1e1b18ff1b1915ff1c1916ff1b1915ff1b1815ff1c1916ff1c1916ff1b1915ff1c1815ff1a1815ff1b1815ff1c1815ff1c1916ff1c1916ff1b1816ff1b1816ff1d1a17ff1c1915ff1c1916ff1d1916ff1c1916ff1d1917ff1e1a18ff1f1b18ff1d1a18ff1e1a17ff1c1916ff1c1917ff1e1a18ff1d1a17ff1f1b19ff201d1a3bfe612546dc56203c842e104c7b2d114b752c113768260e4d6a2b114d6d2d13476e2d113d66270d5966270e4261230bff24201dff25211fff272320ff25211fff282522ff2b2724ff332d29ff37312cff393430ff2f2a26ff272420ff2b28259825231fb72e2b268d2a27237e2825219c37332d77342f29462c29234534302c3d23201d281a1815312d2925443a342f4a3f3a354d3e3a355a413e396947423d6a4946406a4b45415b46423d5e47423d644b44406c4a4540714c4641794d4843694e48445c47433d72534d487e534e484245423c1e3c393417322d291b2e2a2710181614231a18154c2a2825793a363260403c384a4845404d57544eff787066ff584e48ff4d443dff4e453eff252320ff262421ff252320ff252220ff272321ff252320ff25221fff23211eff22201eff23201eff24211eff24211fff23211fff22201eff22201eff24221fff24211eff24211eff221f1dff22201cff23201eff252220ff252220ff23211fff23201eff211e1cff221f1dff23211eff22201dff252220ff252320ff23201dff24211fff262321ff282522ff2a2926ff282623ff252321ff24211eff262421ff282422ff2a2725ff2d2a27ff2d2a27ff2c2a28ff2f2c2aff2e2b29ff34312fff393533ff3f3a36ff48433eff524c46ff4d4843ff413c37ff34312eff383530af2e2d299934322e8c31312d8132312d843937317d403c375d3c38323a32302b363634303834312e332b2825292624212b35322d3c423d38484c45404b4a46404848443e5c4a47425e4b48436a4d4944694c49455bad5c36ff181513ff171513ff171413ff181614ff181512ff181513ff181613ff171513ff181513ff181513ff191614ff1a1715ff191614ff1b1815ff1a1715ff1b1816ff1b1816ff1c1a17ff1e1b19ff1c1a17ff1c1917ff1e1b19ff1c1a17ff1d1a18ff1d1b18ff1f1c1aff201d1bff1f1d1aff221f1dff2a2522ff292623ff25221fff24221fff262321f32926235e201f1c541f1c18772f2b2743272421412e2c2831171513332824216b3e3b366a3e3a35643d3933593c3933533936314937342e673f3c3867403c385b3d393665403d3868433f3b604d47434c4f49422135312b29322e2b0a12100e2c1a181681332f2c65373531503d38354e3e3a363f36332fff3f362eff3e362dff3e362dff1f1a16effffffeeffffffeeffffffceffffffbf0f1f0ebff231f1cff161310ff1a1714ff1b1715ff1c1916ff1c1815ff1d1a16ff1d1916ff1c1916ff1b1714ff1c1916ff1c1915ff191713ff191613ff191714ff1b1815ff1c1916ff1b1714ff1a1714ff1b1916ff1b1916ff1b1915ff1b1715ff1b1915ff1c1816ff1b1816ff1c1917ff1d1917ff1c1816ff1b1815ff1b1815ff1a1815ff1a1815ff1b1715ff1c1916ff1d1a17ff1c1916ff1f1b183eff602444da521f46852f123e762a0f43752e124a712c124f692b11496b2f14436828103465250c5265230c656a290fff23201dff221e1cff2a2522ff36302aff342f2bff322d2aff27231fff24201dff25221f7b201d1a5d1f1d1a68211e197224211e9a312c274e25211d3023201d39292622311714122b24211d523934306b403a356b403c376f413c3757413c355c433e38503f3a364c403c3550423f39644945406649443f6248443f5b47433e654a4640654b47425f514b465357504b445c544b143b342e29423d362a3833300813111013100e0d4023201d863a3633743d3a3756413e3a4f46413e4d47433e4847433e424b46415a7f7872ff756a64ff514741ff4f463fff4c443cff262321ff24221fff252220ff272321ff23211eff22201dff23211eff23211fff24211fff23201dff22201dff23211eff24211fff23201dff221e1cff23201dff23201dff211e1cff22201eff23201eff211f1cff211e1bff211f1cff201e1bff201e1bff201d1bff211e1cff211f1dff211e1bff24211fff23201eff262221ff24211fff262321ff292624ff282522ff26221fff2a2623ff282523ff282623ff292825ff2d2a28ff2d2a28ff2b2827ff33302dff37322fff433e3aff47433fff47423eff35312cff302d2aff34302d902c2a266b282624722a2924622927236d2f2d2a8f3e39354b2f2c28272a27233534312d2c2d292430211f1c282a27243c3b383467504c4767514b476b524e496e4f4c465e4b4741584c4740584a47415046423d5044423b44403e3753474540664c484569af5c39ff161310ff161412ff171412ff171412ff171513ff191614ff1a1815ff181513ff181615ff191614ff171512ff171512ff1a1715ff1a1714ff1a1715ff1a1715ff1c1917ff1a1816ff1a1815ff1a1815ff1a1916ff1b1917ff1b1917ff1f1c1aff1c1915ff1d1b18ff211e1cff26221fff26211fff211d1bff211d1bfb201d1b611e1d1a9a2826245f1f1c194f221e1b2f221f1b32272320281d1b194534302b66393631713c3934713d3a35703d3b365f3d3a345a3c39356b3f3b37693f3b3776413e3969433f3a644b4745615751491f3935312233302c141d1b18221514124c36322f6a433f3b6a3d3a3565423d394f3e3936463b3633463d373548373431ff413830ff3e352cff3d352cff1f1b16efffffffeffffffeeffffffdeffffffbeffffffafe2b2724ff231f1cff171411ff1a1715ff1a1714ff1c1816ff1d1916ff1b1815ff1b1815ff1b1815ff1b1815ff1b1714ff1a1714ff1b1714ff1c1815ff1b1714ff1b1815ff1d1a16ff1b1815ff1a1815ff1b1816ff1a1816ff1b1816ff191714ff1a1714ff1c1816ff191714ff1b1816ff1c1a17ff1d1b18ff1a1815ff1c1917ff1b1816ff1a1715ff1a1714ff1b1815ff1e1a17ff1d1a1739ff5d2245db531f367b290c3e772d104a7b30104b702a114064260e4261260f3b6729103165240b636d280e4767280dff302c27ff342d28ff2f2a26ff211d1bff231f1bed231f1c641e1c19b72c29258e24211e68211e1a6d25211d2b1b181434211d192f211d1b271c1916332c28236238342d6b3c37306b3a362f783d3a35703f3b366e403d3863433e375c433e3a5a423e3a6d4944406948443f6448433f714b4741684d47405d504943655c595351625a52234c48420e322f2a25423d361826221f0c0b0a09462926234c3a3632634944406f47423e6b49453f6449443f5047423d46423d3948443f3b45453f3c4546403c5b4b454055767069ff898077ff4e453fff4d443eff4d443dff24221fff24221fff24211fff23211eff24211eff24211eff23201eff24211eff24221fff25221fff23201dff211f1dff211f1cff23201eff201e1cff201e1aff221f1cff1f1d1bff22201cff21201dff23211fff221f1dff221f1dff201e1cff201d1bff201d1aff201d1bff221f1cff23201eff23201fff262321ff252320ff24211fff23211eff242220ff24211fff262321ff272422ff272422ff2a2724ff3a3531ff36312eff403c39ff423e3aff403c39ff2d2a27ff2e2a27f0312e2b6b232220be353530ac33322e9b312e2b6f2e2b276d322e2a3125221e2527252146312e2929201e1c271c1a1729302e2a3e423e386d544f48674c47426146443e724b484578504d48704e4b466b4c4b45684947425b48454051484542564745416c4e4a466a4b4944674c4a46614a4744704e4c4854a0502fff171513ff171513ff161412ff171513ff161412ff181613ff181614ff171513ff191614ff191714ff191614ff171513ff191714ff191714ff1a1715ff1a1715ff1a1715ff1b1917ff181512ff1a1815ff1a1815ff1a1816ff1a1816ff1f1c19ff1f1c19ff221f1dff211e1cff1c1a17ff1e1b18ad1c1916531c1a175d1c1b176d23211d451f1d19241c19161f1b18152e27242060342f2b6c3a36326e3a3531653a36317a423f3a693c383556393634643e3b3777423e397d44403b754a46417055514c3145403b2b3b37332629262218161312422a2825583e3a36653e3a376f403c38683f3b3773423d3947383531583f3a364d3b37354238353156383532ff584e45ff40372eff3c342cff1e1a15efffffffeffffffeeffffffdeffffffbeffffffaeffffff7ff2c2720ff16130fff1b1815ff1b1815ff1b1815ff1b1816ff1c1916ff1b1815ff1b1815ff1a1715ff191613ff191613ff191714ff1a1714ff1a1714ff1b1814ff1b1815ff1b1915ff1c1815ff1b1815ff1a1816ff1a1815ff1b1917ff1a1815ff1b1815ff1a1815ff1c1916ff1a1815ff1b1816ff1b1816ff1d1a16ff1e1a18ff1b1815ff1b1816ff1c1916ff1d1917ff1d1a1749ff6a2b50e45a264b832e114a792c11688136163d6d290f4163260e3c5f240f566b2b123165230b5e762c0f3f62230bff1c1917ff201c19ae1d1a17521a17145c1b191680211e1a8d27231f7d26241f261816132e1b18151e19161228211e1a432c28237437322d7538342e7538332e7238332e683c37317d3f3b3571433e39643e3935523b38345d433f3a6447413c794b46417c4e4944734f4a45745e564e61625c55294d4640204d47412e48433d29312c28111916141c1917154b38342f5747433c664d47426b49433f6e49443d6748433d6c48433f6948423e413e3a365447423e5046413d4f433f3c41403c375245403c53443f3b63625c56ff9e9489ff594f48ff4e453fff4d453eff25221fff25221fff221f1dff23201eff22201eff24211fff22201dff24211fff23201dff24211eff23201eff23211fff221f1dff23211eff22201fff211e1cff221f1dff221f1cff22201dff22201eff211f1cff24211eff23211eff211f1cff211f1dff22201dff23201eff23211eff23201eff24211fff22201eff221f1dff23211fff24211fff252220ff272522ff312d2aff36322eff3f3b38ff3c3835ff393531ff292623ff2e2a26b02725214d1c1a186323211f74272522902f2b2893322f2a7d302e2a4025222025211f1c3623211d1d1e1b182523211d2c2d2a264b3836306e433f396944413c744d4943724f4a446d4f4b456448443f774c4945724e4a45684947435f4744404f43423d59484642614b4944724f4c467b514e4a79514e4a74524f4b7055524e6c5c57504f56534e43a15532ff161411ff171411ff171513ff171512ff191614ff181613ff181614ff181513ff161412ff171512ff161412ff191614ff181513ff151411ff181613ff1a1815ff1a1715ff1b1816ff1b1816ff1d1a18ff1a1816ff1c1916ff201d19ff1f1c19ff1a1815ff1b1916ff1d1a18881c1916701c1a176d1e1c194d1c1916261917142e1c1916271f1c1a4c2d28236a35312c68332f2a6433302c6339353067393532643d39357c44403c633b393568413d3a7946433f8e5b564f58565049263c39342f34312d1b1412113f24211f5a3c393569413e3a65403c38663f3b386a3e3a376d403c386c3e3a37713f3a36683e3a3671413d385c3c383568403c3abc5c5750ff6f655bff40382fff3e362dff1e1b16efffffffefffffffeffffffeeffffffceffffffaeffffff8ff2b2520ff171411ff191613ff1a1715ff191614ff1a1714ff1b1815ff1b1815ff191714ff191714ff1b1815ff1a1714ff1a1715ff1a1714ff191714ff1a1714ff1a1714ff1b1915ff1b1815ff191613ff1a1714ff191613ff1a1715ff1a1815ff1c1916ff1c1916ff1c1916ff1a1815ff191714ff181613ff181614ff1b1816ff1a1715ff191614ff1b1815ff1c1916ff1c181542ff622a2ecd481c548731134c7c2f115e7d32144f712c113d61240e41642812566a2c132f64230b6b7f31114268270d6d1c191596221f1b8e24211c7b231f1b381a1714311b181531191512261d19173926221d592d28227e322e2884352e2a7b34302a6d322e296936322d773b3630653a35316339353076433e3979453f3c5b3e3b366745413c764c47417c554e4780645d56546660581b423b342a47423c2b3c37331618161529201d1a48322e2a5b48433f634c4642644e4843664c4641644a45406e4a46406246413d6c4a443f704a44406447423d5d423e396346413d6c48443f6a46423d52413d3a5743403d9959544ea36a655d7b6b675fff93847cff5d544cff4e4640ff4d433dff25221fff24211fff24211eff24211eff24201eff221f1dff23201dff252220ff262320ff23201dff211e1dff211e1cff221f1dff23201eff23201eff23201dff23201dff22201cff221f1dff1f1c1aff1f1d1aff211e1cff211f1cff201e1cff201e1bff22201dff24211eff24211fff252220ff25211eff262221ff2a2623ff2c2926ff3a3632ff3f3a35ff3c3833ff2d2a28ff262422ff2f2c288824211e6a211e1b8e2624219b2b2825a4312e2993312d284523201e2a1f1d1b3525221f351c191626211e1c2b2825224837322e5539363078413e3875403b37693e3a3667413e3866423f3a6044413b6849453f684946416046423f5f45433f714d4b46764f4b486e4b48445b494742664e4b476e524f4a7754514c7c5e5a54665855504857554f1a3c3934153a37323045433e2b3e3b382a8d4022ff151311ff161311ff161311ff171412ff171512ff171512ff171513ff171613ff181614ff191614ff171513ff181513ff181514ff181514ff161413ff171513ff191614ff1a1715ff1a1714ff1d1916ff1e1a17ff1a1714ff1b1815ff1c1815e419161353181613721b1916771f1d192d1816133c1f1b192d181614372824215b2d2824592a262263302c2772332f2c6e35312d703c3834813e3b367e423d3a77423f3a7744413d754f4a477c5f5954223c38334444413b171615142e1a19175839353266433f3b7445423d68403c376d413e3a6f403b3976423e3a8c48433f5c3d38356e413e3979423e3a6a3e3a36c55b554fd169645e1e36312e25332e28ff71695fff433b32ff40372fff1f1c17efffffffefffffffeffffffeeffffffceffffffaeffffff8ff2c2620ff181411ff1b1814ff1b1815ff191614ff1a1714ff1a1715ff1a1815ff191614ff1a1815ff181513ff1a1714ff191614ff161412ff181613ff181513ff191614ff191614ff191714ff181613ff181513ff191614ff1a1714ff1b1815ff1b1815ff1a1715ff1b1815ff1a1714ff1e1b18ff181614ff181613ff191714ff1a1715ff181614ff171513ff181614ff1b171546ff6a2b26c64316658e3616608a3918527c30134c702b11697130163761260e3b61250f3063230a557f30104265250c631e1b172c1a18145525201b3114120f2a201c194c2b26216b2d2823722e29246c2f2a2370302b2680322d288635312c7936322d763a3530823c393381413d3882423e3975413e386d433f3a7b48423f6f5b534e6b645d54335c544c2246413a464a453f191d1c1a120b0a09412926245947423e6b534e4868514d466d504b43684d4740624c4842714e47436a48433f674a46418e554f4a794e48445645403c6f4c4641734b4641744a45406345413b8f514d47d16d67607e5e5b54183b36311939342c313d3732161d1917ff796f66ff5d534dff524a44ff4e443eff221f1dff22201dff221f1dff211e1dff211e1cff24201dff24211fff211f1dff221f1dff201d1cff201e1bff201d1cff24211fff24211fff221f1dff22201dff221f1cff24201eff201d1bff211e1cff221f1dff211e1cff211f1cff1f1d1bff201f1cff23201dff23211eff2a2622ff2c2824ff3a3532ff3b3632ff3c3834ff272421fd272320fc2e292550171513601d1b19691c1b18b6302d28be34322d9f302e292d201e1a3523201c552c2824361815122522201c342c28255d39342f743a36307b3d39346a3d3933753f3b366a3c3936713d393579403e396e43403b6f46423e6443403b7145423d7c4b4843794e4946734d4a45714b49456c4f4c4976504e4b7c55514d68615d58565a564f3258534c0c3633302e494740434a47421e2c2b28091312112b2d2b284a3b39365b4e4b4856a15434ff171512ff161412ff151311ff161412ff161310ff151310ff171411ff171513ff161412ff161412ff171412ff171513ff181614ff181513ff181514ff151311ff1a1714ff1c1917ff1d1a17ff191614ff191714f11816138916141162181512561614114c191714421c1a17351b19162d1d1a184526221e5c272420572a2522542925226d2c28266d332f2b8136332f7a3a36327b423e3a7a433f3b7b48443f774f4b4453504c47333e3935292724212615141251312e2b59403c386a433f3a7145413d5b3f3b3861413c386a423e3a67403c386f413d397a413e3a7e423f3a66413d388146413da95f59534544403a2e35312c1a22201d2214131159262421ff565149ff4d433aff413930ff211c18efffffffefffffffeffffffeeffffffdeffffffaeffffff8ff2d2621ff181612ff1e1a17ff191613ff1a1714ff1a1714ff181513ff1a1714ff191614ff191613ff181613ff191614ff1a1714ff191613ff181513ff181513ff191614ff1a1715ff191614ff1a1714ff191614ff181513ff191614ff181613ff171512ff191714ff181613ff181513ff191614ff191614ff191714ff1a1714ff1a1715ff171512ff1b1714ff26211cff2c27225eff7c3359ee622c47852f1140762c11517b31143e6a280f3b61260f385e230e3a6627103063230b64893514536c290f2816131136221f1b5127221e702a252166292521612a2621622a2521802e2a2687322d2989332f2a9837332e8c37332e893d373380403b357b3d393581433e3a7647423d6d4d49424e514b462946433c3846403b2a2a27231a1412103a23211e54393431594b4440624d48436b4f4a4474524e47574b4541634e4842584b443e6a504a44624b46416a4c47426e4c4642774d47437d4e49447e4f4a455d49433e58443e397e58524c6e5d56503347433c1b35312c28322e2915231f1c1e1412103e252420773e3c37a6807e78ff6c625bff554e47ff534b46ff504741ff24211eff22201dff22201dff22201eff221f1dff23201eff24211fff23201eff23201eff211f1dff221f1eff201d1bff201d1bff211e1cff23201eff211e1cff201d1bff211f1cff22201dff23201dff211f1dff201e1bff201e1bff282521ff2f2b26ff3b3733ff37322fff332f2bff24211ee3211f1cca25221f6119181474201d1a781f1d1a7b23201d7025221f882d2a27702c29263f23211d4824211e2a1716132a221f1c402c29255c332f2a823935307e393531783934316a36322e6937332f813f3b3884403d3a7a3f3c3882423f3b874845407d46423f78474340794945417347454172484541784c4a4670524e4a6b4d49455d514e4944534f4b2b4f4d4822413f3a354845402d3735311728262326272523463d3a375346433f5c514d495b4e4b4769504d496d504e4971504e4a4b9e502fff151310ff161411ff151310ff161311ff161311ff171411ff171412ff161411ff161411ff161311ff161311ff161412ff171412ff191613ff191613ff1a1715ff1a1714ff181412ff191613b51613115312110e60141210571715122f1412102b1715124d19171462201e1b5823201d6625211f7628252164292622752c29257a2c292578332f2b7337322f773834309944403c99544f495247433d39413e383533302b211a1716522b292770423e3a7243403c63423e3a62413d397546423d7847444060413e3a4e3f3b37593f3a3665403c385e3f3b376347443f60554f4a253d39332135312e171e1c182d181715722a29258335322f6b3935325f3a3632ff544b43ff494036ff433b32ff1f1b17efffffffefffffffefffffffeffffffdeffffffbeffffff9ff28231dfb54524dff1c1916ff181411ff1a1715ff191614ff1a1614ff191614ff181613ff181513ff171412ff181613ff181513ff191613ff191614ff191714ff181513ff181513ff191614ff171513ff181613ff191613ff171512ff191613ff181513ff181613ff171512ff171412ff181513ff181513ff181513ff211c19ff28231fff2b2621ff221d19ff1a1713ff1a161457ff77315df3642e3e812e102773290e2b6b260e3769270e2d5d210c41642811496c2d133265250c618d3613436b280c7328231f812a26218f2c28237f2d28247e2d2824872d292591312c278f332e298a342e299037312d8738342fb7423d38a44a433d944d48415246423c323c3832333f3b3434322e281a151211351a1816603733306f4a453f7c514b46694a45405c49443f644b47426b514b4476554f4a7c57524c654f4a45584f4944474b4641564a433f64494541624b46425c4b45405b524b455d5e56513e59514b19423d37193c3733283934301a1d1b182b1918165a2726228f36342f813b37346b3f3a3764413e395846433d7c928e84ff8f837bff524a45ff544c45ff544c46ff23201eff22201dff24211eff23201dff221f1cff211e1cff211e1cff201e1bff201d1bff211e1bff221f1cff231f1cff211e1bff201d1bff201d1bff1f1d1aff211e1cff211e1cff26231fff2c2825ff332f2cff393430ff34302cff2a2623ff231e1ce0262220951f1c1a601a18166f1d1a1883211f1b9929272276262420411e1c193b211f1b2e1c1a173e1d1c18551d1c19742624215d2b272572302c2a8034302d8935322e9b3a3732a13d3835943c3834853a3633993d3936943c39359b423f3a8f433f3c87413d3a783f3c39824843417b494541974b4844914c49448d55524d7454504b45514d48263c38342946423c3242403a2f3b38331b23201e2725232042312f2c684947436f524f497956524e6d4f4d48624e4b47594b4945644e4b485f4e4b467454514b7454514d7954514c58a55634ff171411ff161411ff161311ff151311ff151311ff161312ff151311ff151311ff151311ff151310ff161311ff181412ff151311ff171411ff171412ff161411ff1715136013110e5c13110e5d1614103b14110f2e16131129110f0d2e1b171552221f1b5d221e1b6323211d6724201e7526232068272421782c2825782c2925782e2a288339343184433f3b6945403b2b35312d3f3b3631181816143a2523205f3e3b377c45423e75423f3c7f46433f67413d394e413d3862413d384e3d3a355143403c463f3b386844403c664d47436057514c1c3c38322737342d2e2d2b27110d0c0b67262521a83b3836783a39336f423d3a72423d396d403c3874433e3cff4e453cff463d33ff413930ff201c18efffffffefffffffefffffffeffffffeeffffffceffffff9ff29241ffb54524df976746fff1e1b17ff16120fff191614ff181513ff181613ff171412ff181513ff171411ff171512ff181513ff181512ff161311ff181513ff181513ff191614ff181513ff171512ff171512ff171512ff171512ff171412ff181512ff161412ff171512ff171412ff211c18ff292622ff272320ff1c1917ff191614ff1a17145412100d5a1613106816131062ff7b374cec5c27508d35135c833314366f280e4a6f2a113f63250e4f6d2e142a61240e3465240c5d903613677d3212802a25218f2c27237a2c272397312c27842f2a2498312d288c332e2a9736302c8e36312ca3433c3677423b3529342f2b48423b354036322c15151411271816144929272362413e38794a45407748453f794c48427d4e49446d4a45405549443e4f4b4540614d48405b4b453e4446433d50524d47494c47424b4c45426e514c46625a534f5c635c563a5a554d0d413b35183c362f3e47423c181b1917110f0e0d542523208c3a37329c44403d763f3d376b45403c7248433e6b45403c6a47423e744d49437a554e4a8a938a83ffac9f97ff554c45ff544b44ff514943ff1f1d1bff201e1bff201e1cff221f1dff221f1dff221f1dff201e1cff211f1cff211e1cff211e1cff201d1bff231f1dff201d1aff201d1bff292522ff282521ff38332eff393430ff34302dff211e1cff201e1cf2262321651815136b1c19177b1e1b197c201e1a9c2b27245c211e1b2a1d1a164a24211d2f1917152613110f2a1d1b183e25231e692f2c296a2d2b277c312e2b7a322f2b7f35302d8936312f923733309e3a3632973a36338d3b3733aa423d399f413d39993e3b37a144403b90433f3b92433f3c8d45423e764844418256504b5f4d47432f45403e1b3835314048433e3e423f3a1622201d181a1916372d2b28513e3b36634e4b4678524f4a7a504d486a4a48437a514f4a7d53504c75524f4a624d4946514e4a46524f4c47654e4b46674d4a464f484640424a47434f4f4c4955ab5837ff151311ff151310ff141210ff141210ff141210ff151311ff151411ff161311ff171412ff181512ff171412ff171512ff14120fff171411da15120f5a13120f6413110f6518151232161310371613112d110f0d431c1a164f1d1a17561f1c1959211d1a6824211d7625231f7025221f7126232070292522772c29258a312d2a6c38332f37332f2b4136322d2523201d2a1e1c19613b37337c46433e7f45423c7c45413e6f3f3b387144413d684743404c413d3959423e3a63433f3a5745413c59504a45655d57513347433d152c29251d292623110e0d0b452623215a3936326f423e3a6f3f3c387544403b7845403c6a413c395f3c39367143403c7d46423fff61584eff443b32ff423930ff211c18efffffffefffffffefffffffeffffffeeffffffceffffff9ff27211dfb53514ceffffff5ff1b1916ff15120fff171412ff171412ff191513ff181512ff181512ff181512ff171412ff181512ff161311ff161311ff161411ff171412ff161412ff161411ff171512ff171512ff181513ff181513ff191613ff1b1915ff24201bff2b2723ff282420ff1a1714ff1a1714d71815134713100e63161310741714118a1e1a156e1f1b163719161259ff7f3257f9662a5c913614578634143d792d0f4c742f135a6e2e154e6b2e15496929123566250c5b9339125a8536127d282420962e2a25882e29258f302b26a234302aa038332d8338332c462c28222523211c5034302a26221f1b151412104b272420653a35317747433d7d47433d7a45423c7747433e7f48433f63443f3b6e4b474267504b45574c4742474943405d4c474261504c46534d494355544f49515e5650576c625b46645d56184a443d0f312c292237322e1524211d110e0d0b3d272420563c38335d4b4541714d48436a48443e7a4c4842774f4a45734c46416848433f674744405e464340714f4b467a54514b7b56534c9079736affaba098ff6b6057ff544a43ff504741ff1f1d1bff201e1bff201e1bff201d1bff201d1bff201e1cff201d1bff201d1bff22201eff22201dff2a2723ff2f2c27ff3d3834ff38332eff34302cff231f1dd6201c1ade25211f5c1615136a1b1916871f1b199b25211ea92d29245f24201c36201d194e221d1a341613102a14121035201e1b532926226e2d2a266d2c28236e2d2a2677302c2876302d2879322f2b8c36332f9d393531ab3d38349539353198393531993a3733a03e3a36993d39359e413e3aab44413db249453fa44b4842844c484252413d37233735322b36332f463c3934282c2925121817142d26232053383633674b474372534f4a7d53504b7c4f4c487f514d4a754d4a4687524e4a634846426a4c4a466b534f4b6855524e5b504d49494c48464c4e4b48614e4b47584c4a465d504d4855524e4a5555524e4d59555067b2613fff141210ff151210ff13120fff151311ff151211ff141210ff171411ff161311ff181412ff161411ff161311ff1513117114110f5913110e6515130f451513103015120f3d120f0d48171512661f1c186a1e1c185c1d1a1764201d1a58201c195a211e1a7f24211d6723201d6125211f6e2926235d2a26223f23211d2b23211d2b2623202d211f1c4f2e2b29713f3a3678443f3a9549453f70413e397d47433f6e43403b7447433f6b46433f5e45423e6145413c734d4944785f5b533c5550481a3a3631272c292611110f0d281d1a18523a36326a45413d7544413d71423d3a75443e3b7846403d73453f3c7c453f3c70413d395d3c3834653f3a386d45403dff6e6459ff41392fff433930ff201b17efffffffefffffffefffffffefffffffeffffffceffffff9ff2f2924fb54514beffffff5f69d9c96ff1c1816ff161210ff171412ff171513ff161412ff171412ff171412ff171412ff171512ff161411ff161311ff161411ff161411ff161311ff171412ff161411ff1a1613ff1d1a16ff26221eff25211dff1b1915ff171512ff191613a418151254161310641613117b1a17126f1c18144e1b1713371915114015130f4512100d4e1b19144cff742d44e95c25528e35144b823012507d3113607b33164c6b2c1253682a12506d2d143967260d609639144a823211862d282484312b277b312b25622b26212e24211c3726241f3123201c241e1b174925221e5b332e2a763d3732793f393484453f389547433c70433f3a7f48433e7d4b46416a47423d754e4843764f4842654e49445c4e4b44594e494468514b466b5a554e746c665e436c655c245b544d16443d382c3f3a351a231f1c13110f0d26201c1a413c3834624d4743694f4a4574524c47744f4a4479504a45734d4643754e47436f4c4642724c46417c4f4944754f4c466f4e4a445946433d634a4541614a46417a58544d6a5e5a53ff8c847eff7e7065ff51473fff4f453dff201e1bff1f1d1aff1f1d1bff201d1aff201d1bff221f1dff2e2925ff2f2b27ff3b3733ff312d29ff302d29ff2522209d191715a9211e1c5c1816136e1a18168b201e198d25221d7826221e4f221f1a3b1f1b18471a18153e161411491b18165724221f752c2925832f2b278c302d2990302d29772d2a257f302c288e33302a7a312d29712f2c2872312e299a35312cb139353199373330913834317f35322e933b37339c3f3a388f423d388c433d39743f3a35352d2b2634312f2b3e35322e2f2b29251f211f1c332422204a34312e5f3f3b38704c474376514d48724e4a458853504a9555514b6c4b4843714d4a46754e4b48774f4c48684c494575534f4b72544f4b72534f496855524e5c52504c56514e4b60514e4b7759565264595651665f5c57415b585226514e481647433e143a373347a15031ff141210ff13110fff141210ff151210ff141210ff131110ff13110fff151311ff1512108f100d0c50110e0c5e13110e7b1a17144216141037110e0c5e12100e7b191613691b1815641b1815731e1b186a1e1b17671f1c185e201c1961211e1b81211e1b8126231f8a25221f3923201c181917142c1f1d1920191614492926246836322d813c3833813c3935723f3b377746423c7a46423d7544413d543f3d395d45433e5445423e5c4c47436e625b565a605b542e49443e303b3630110f0e0d321c1b184934332f71433f3c804945407a47433e7444403c7645403d73443f3b82433f3a7b423d39944c46428c4b44416e44403d6648433f745e56515b605952ff59534aff494036ff3f372fff1e1a16efffffffefffffffefffffffefffffffeffffffceffffffaff2e2923fb53504beffffff4effffff4ff171412ff191613ff151311ff151311ff171412ff161311ff161411ff161311ff171512ff161311ff161311ff141210ff161311ff1b1714ff221e1aff282420ff231f1bff1a1714ff171412ff1b171468120f0d5815120f67181411a8221e1aaf26211d4b1b18143718141142120f0d6c171411841d1a166e1e1a1774211d1970211d1962ff81325ff66a2c58923a175486361540772c105078321456712f145b723316536e2f153767260d5c963912568433121c1c19153923201b30211e191a1916123e201d1a562b27247935312a8e3b362e863d37308e3f3a35743d37327b423c368149443d7244403a7547423e6247423d4e46413d5c4b4741534b4741554e48415d5b544c636e665d6f787268235a554e26524b45344c433c1a1b1916180c0b0b3623201c483a36325749433f76534d488259514d7955504a744f4a45704e484374504944714e4743744f4843834e4843784a453f84514c4596564f498d544e4876514d4868524d486c5c58516969625c566a645c355d59520f44423cff67605bff8b7d70ff51473eff4f453eff1f1c1aff24211dff26221eff37312dff3b3631ff282420ff282421ff26221f57110f0e761b1815681b1815791e1b19ac292521d4312c28b9312c284f221f1b49201d19441412104e171512771f1c198f25231f7424211e832a2623882d2926832c29258b2e2b279d322e2b8c302c28a334302b89322e298c33302a6b2e2a2579302d2a772f2c29b436332fa3373330bb3e3a36bf3e3b36e546433e6033312d272826221c22201c4a322e2930282521191e1c192d23211e492d2a28683c38347245413b7845413d834b4642804e4945854d49466f4d4945784f4a476f4c474379514e49694c494476504c49634c494555494642544f4d485c514f4a54504e4953504d475654504b5e5f5a5557625d5759605c573055534e13423e3c1f47443f3148433d2435332f101e1c1a2122211f37302d2941994c2aff13110fff110f0dff181614ff161412ff12110fff141210f013120f3d0d0b095f110f0c6114120f801b18152f12100e430e0c0a70161411771a1713751c1814571916145e1b18157c1f1c1884211e1a71201d196d201d1a68221e1b5a211f1b76211f1b2c1b1917211b1916131614112b1c191660282521772e2b277c35302d8d3f3b367f3b37337e3f3c388344403b814b47427c45403d6445403d5845413e5858544f63645f5a19443d39393c393516131210371d1b195e393632864c48428349453f8345413e69423e3b6a423e3a7145403c7245413c8249433f8646413d75423c3a934d46427e4f494489685e5a5a6059521a403b343645403c1e1d1a19ff554d43ff493f37ff413830ff231d19efffffffefffffffefffffffefffffffeffffffdeffffffbff2d2722fb55524eeffffff4effffff4f2dbdad2ff161412ff141210ff141210ff14120fff141210ff141210ff151311ff161311ff141210ff1a1713ff24201cff292621ff1c1a16ff181513ff181613ee18151250110f0c6515120f77191512881f1b178f23201b3b18151233120f0d5713110e761a1713891f1c1883211d1875201c18611e1a17581e1a1679231f1a9227221e56ff743164e3632761893716687e32155b762f1358722f1365723115576f2d1449692a113667260d639b3c1440792c0f1915120f41211d1a732d292490332f2988332f299137312ca23c3731953d38318e403a3581403a3587413c378249443d854c47417644403b6148423e554a44405d514b4652635d565a746e6528635b521b4e453f3844413c292a282412060505452623205e3b373365514b478958524d8557514b7e524c4782554d4a644e4743694e494373534c466c4f494370514b457f544c478e514b447b4d4741734d454192574f4988574f497a59524b7c6e655f55635d55295b564e0d3f3b333255514b29373330111615131a161412ff837a72ff71655bff564c44ff50463fff38342fff23201cff24211ded24211e310d0c0a5b161412741b1815841e1c189325221dd1332f2a8f292723401e1b183b1a18163e12100e661a18167b1f1d1a9926242085272420a82f2b257d2724206f28242069282420812d28259d322e2aad34302ca734302cbd37332f95342f2b8a312e2a9134302c7e342f2a9334302d7b34312dd2403c38cc3b38347a33312c2424211f2b27252133252320151c1b17121613112d23211d502c2927803d3a36a746433e8f3f3c388d443f3b8d48433d954c48428d494540874f4b467b4c47437a4d4a46814f4c4880504d48774e4b467c514e49724c4a465e4f4b475d514d49514d4a46625957524b5f5d57435c59543157534e1047433d1a433f3a37474541353f3e39121a1a181a201f1c4f3d3a365a46433f5d504c48855c59548358544f8257534e519c4e2dff171513ff151311ff13110fff13110faf110f0d55110e0c7415120f7c1916123f14120e38100e0c6112100e7c171512661714116d1a17136b1a1814641a1714581a1714731e1a17751f1c18741f1d195c1e1b1759201d192b1c18151c191714201916132416151351221e1c5927231f6b262321752a27238a332f2c7c36312d833b37327e3f3b3685423f3b8245413c7a4a474260534d49575b5651264a45402b3b37321b211f1c321d1c195137343163464340804c4843854945418e4b48427444403a7744403b6e44403b7345403c7344403b6f433f3a7d47433e774d474287605952615d554f24443e3b33413b381d1b19171d100e0d46282421623d3934ff423830ff403830ff433931ff241f1aefffffffefffffffefffffffefffffffeffffffeeffffffcff2f2923fb55524eeffffff4effffff4effffff3ff151210ff161310ff14110fff151210ff151210ff171411ff24201cff282420ff23201cff1b1815ff151311ff171411b415120f5a15120e73181511b2221e18871f1b164f1b17133f15120e44110f0d69171411801b1815681c181579201c187a201c1878211d1977221d196a211c1864201c1877231e198c26211c8225211c54f066296cd15b2957782f12577530114e6f2d1157702f12757532166073311556712d133967250c60973a144d8030107d2c2722832d28238d2f2b26a437312ba238332d8e36312a973b36308d3b362f83403b3685403c3682423d397f48443e674e4943595a524c4f655e572e5e57501b4b463e28403c351e27241f1a0f0f0d372d2b254e3c38345b4c474365524b488058514c8457524c9059534e85554f4977504c467b4f4a4468504b4471524c4572544d4774534d4670504a436d50494278534c4570514b457c5d564d7969615959665d532c5a52491c443d39304b443f2429262315171514221917154333302b5f4c48426f59554e88827d74ff8e867dff524a41ff524a43ff5148414f13110f621916127f1d1a17c22a2722eb322e28942924205f221e19421b18144017151250141210701c1a1783211e1b8423211e7923211e972a27238d2926228c2a27238d2b27248c2d2824782a2622752a2622812d29249f322e28a7342f2b95322d2996322e29aa35312d86302d288237332e8b35312c552e2b272a27231f2d25221e3c2b272328231f1c14191714271d1a19522826236733302c7135312e8d3b3733913a3633923c3934a1413e39ad48443d9d45413d8a45403b8949443e884945417e48453f794a4743794b49457a4d4a477f4f4b477b4e4c4771524f4b5a55524d4d59544f3e5b57522b53504b184a46421e43403b25403d3821322e2a1a2a2824251c1b193a3f3d374e4744405d504d496352504d6f5753507e5754507f56534e8c5956518b5955507c54504b74524e4a63a85937ff12100eff13110f76100e0b390e0c0a5713100d661715112e110e0c4c100e0c7e151311641613116b1714126b1916126e1a1613661a17146e1b18145d1b1714611c1916611d19168d211e1a561d1a1620191612191613102213110f641c1a177c221f1c5f23201d5d24201e6d292522872a272490312d298d383431823d38347e3d383480433e398e524e497f5c57503147423e2e3d3a37181b19182b1d1b1a4e3836325d45423d6b45413d744844417e4945417547443f944b47428245423d8a46423d65433e3a6c45403c7a47433d6e4b4741745b564e4c58524a2d4c45403239352f1614121123121110352624214d3a35325b403b3761413c386e433f3aff55493fff423a31ff423930ff241e1aefffffffefffffffefffffffefffffffeffffffeeffffffcff2d2720fb54514deffffff5effffff4effffff3f1deded5ff171512ff14110fff2b2723ff282320ff1f1b18ff181513ff1715127d110f0c7413110d3d110f0c5815110e791d19147b201d183f18151139100d0a53120f0d821a1715751b18156b1c1814781e1a16781f1b177e211d197c211d1973211c1982241f1b77221e1a6d231e1a70231f1b69231f1b8426211dc82f2a2550d358235ab0492161702e1354692a1050682910566e2e1363703015697a36175c732f143b68250b70973b14578935119d312c27a6332e28aa36302ba536312ca437332d9337322d8d3d393381433d378747423d92544f497b5e5952344f4b44274a45402e413d381c1d1b191611100e37262320503f3b36554b4740725a534b67514d4675554f4a80554f4a704f494574534d489058514c8d57514c83524d4788514b476d4f484366514a4468524b4477554f477357514966615951686a62563e64594f235047412548433c32423b33191d1b1816110f0e27191716332927234e413c375a4b4640584d48445f55504a725b56506e524e487778746bffa39a8fff5b5148ff514941ff514841b52b27228d2825215c1f1d192e141210451613115417151288201d1b7f211e1b70211e1b7d24201d8d27231f8928241f91292622932a2623962b2824852a2623962d29258f2b28247c2b2724872f2a26832e2a267f2f2b278d312d29bc38332eea433d38a938332d4f25231e2e27241e1d1f1c181a1d1b1718171613261b1a176325221f712c292696322f2c963835317f37332e8b3935318f393531963d3936ad413c39b4433f3bb746413daf49433fa8474440a14a47438e4a45428a4945427f494742734b4743764d49458058544f775a5551645f5c5630514d481c46423d2444423e2e44423e202f2d2a14211f1d252c2a283d393732514b4945524f4c476357534d6f54514b6753504b7357534f7b56534e7e5653506c514e4b7455524e93595651925a56517f53504c8c56534e8654504c519f5130440e0c094a0f0d0a731715123614100e2e0b090856120f0d79161310781815125b16130f621713106f191612581815116b1a1714721b1815671b18156e1b18157e1f1b182215131024181511140f0d0b561614117e1e1b1876221f1c7a25221e7725221f56221f1b8027232074282522852c292585322e2a8137332f7e403c38a5544f4a2639363141433f391d252320351d1c1a573633315844413d6446423f53413e3b6c4c47446c4844416a46423e6545413d804c49437c47433f8848443f8648433f6b4b474281635c534558504b1e3f3b343136322e130e0d0c25131210462b282458413c3762403c3765413d3868403b3869443f3b6848423e71504a45ff6e6054ff473e34ff463c33ff231e19efffffffefffffffefffffffefffffffefffffffeffffffbff2e2721fb54514ceffffff6effffff4effffff4effffff3ff302b25ff13100dff1e1a15ff161311380b0a0844100e0b5913100d601714119d211d18401915123817130f2a09080758161310851a1713771b18147e1e1a16661b18146e1d1915721e1a167f201c18601d1a1676211d1980221e1a81241f1b7e24201c67201d19a6292520bc2e28234b221e191f1a16132c1a17134dc5512057a4451e4c61270e59672d125c672b1157682c126671311554702e125c7732143f6b280d69933812598b371291302b2699332e29a6352f29a238322e8e37332eab3e3a35b758534b3d413d361a35322d3f3e3a34212724210d0a0a096a2321204d383430544d49435e514b4668534d47514b4741655750496857524b69554f4a6b534e485b4d49437656514a825b554f7855504a83564f4a79504d4685554e4a6f5550496f6b6259676e63583b6a5e570b3e3930264d48403039342f1a1a1715130a09083424211f4a37322c5149433d614d45406b4c47406349443d714c46406c504a44654d494365524c476656504b7d5b5651726a6562ffb8b0a7ff6d6157ff585047ff574e46290f0d0c5a1a17158c1f1d1a7f201e1a9826231e9127231f7823201c7a24201c7c24201c94272520972a27236e25221f7d27241f8d2a27239d2e2a26992e2b27902d2a26872d29268a2e2a27ea3e3a35ef413c366e2f2b25221d1b193f2926202e1e1c190a13100e22151311511d1c197f252320932c2a279833302d9b37342fa83c3833ba3e3a36ac3d39348d3935317d35322eb13c3935b7413c399a3e3a36a23e3b37b844403b9b423d39ab47433fa74c47448b49444179484441ce57534e91625f59404f4c470f3b3833233f3d383f4846402434312d091312113b2d2a2876393837494745415353504b5c4f4e495f504e4a5f514e4a514c49455b53504c6655544f745755506c55524e6a54514c604e4c476852504b77575550845a58537455534e7b55514d8558544f745150498257524e67a85a395815120f2f0f0d0a480d0b0a4e13110e5e15120f7217141172181411731815125f1613106017151165181612601915126d1b1714921e1b18501a17141712100d1e110f0d41110f0d7e1b191578201c19661f1d1975221e1b7f24211d8626231f6f25211e6824201e6b2723207b2b28248c2f2b289834312d3c312d2a32332f2b292624211e1817154133302b6246433f6644413e6747434056423e3a56423e3a59474440764c4843704844406745423f734a46427a4b48426d4d494385655f58605e585224423e3928322f2b17141311221615133d2e2b2659403b366c433d3a73453f3b6c433d3a63413d386d47423d56423c3976564f4a7c5f59537b625b55ff796c60ff423930ff453c32ff211d19efffffffefffffffefffffffefffffffefffffffeffffffbff312b24fb524f4beffffff6effffff5effffff4effffff3ff302a23ff120f0dff1e1a159614110e6e1a1712711d19143a15120f30120f0c4e100e0c4715120f631b1613661915127d1d1915741d1915731d1a15761f1a176a1d1916631d1915721f1b1774201c1870201d196b211e1aa027231ec62d28237c25211c2b1a1713231915121d15120f26110f0d641a17148b221f1a55d45f275aab4b1f64622a1166642b12706c31155d6b2f12656c2f155e7633165c7a33153f6c280c5d8a33105b8d38138f332e29d73a3530b136322d5b2d29262429262141322f292a262420181413113324211d43322f2a6148433e6246423d604c464266514b46534c474261514a454c4a45405b545048785b564f6f57514a6c56504964514e476a544d497b59544e7d5a554e6d5c564f69665f586e796e67486c645e1a4a4540254c4640242f2b2618181614140e0d0b2d25221e463c3730584c453c5748433d7b524c4674514a44734f4843674b443f5246413b6c4d48415445403b65514b4667564f4b6e57514d7458534e695b55526a5d5853ffc9bfb8ff80756cff534a42ff564e457f221e1b9325221e7e23201c9326231f9c2a26228527231f7f25211e7224201e7e26232087272421892825218a2a26227e2a2622922c2a25c637322ee93f3a35b133302a5b2a27231c1c1a1730201c181d1816131d1412104b1a19167823211d992c292594302d298b34302b8a32302b9f36322da7393530a93b3631bd3e3a35ba403b36bd413c37993b38328738342f933a3633a7403c38953d3a35aa413e399c413e39a3423e3ae94f4c49a04743406e423e3b253d38342537342f35383531292d2b28181e1c192322201e3e3a373245403d3861504d495946434064504d495e504c4965544f4d514b48465d504d4b574c4a47474946445a53524e725958536f57544e6c52514c6a55524e61504f496a54514e73585651725854507e5c59556b5855505a57534d6565605a4f5b57523255514c3aa2543155100e0c6a13110e6a15130f5f14120f5314110f6116131068171310671614116017141166181512951d1a165f1b1814271714111d120f0d200f0e0c40181512531c1915641e1b1772201d196f211e1a72211e1a7723201d7a25221e8226221f6e25211f702623206f2924212f24211e2922201c231f1c19281d1a1853332e2b703d39347f47423d6b44403c5e45413d6145413e4a403c3854423e3b5d44403e7e4f4b477b4e4946734c48447657524e866d666141544f4829423d38242f2c291a141311321e1c194c36312d54413c3661413d396b433f3a63413d385e403c3766433e3a6246403d6448433e784f4a457a534d49835f5a538768615b7569615aff665a4fff483e35ff423930ff221d19efffffffefffffffefffffffefffffffefffffffeffffffcff332c25fb54514ceffffff6effffff5effffff4effffff3ff332b24ff120f0cff1b181474110f0c38100e0b5613110f7417151264181511721a1713651915125b181512691b17136b1c19146f1d1915791e1b17701e1a166d1f1b17691f1b178b241f1bbf2b262195282420371e1a162e1d19151f1613101b12100d2f17131251211d195b241f1b7a27231e7e28231f8a2925205ed8602a5fb04e2166662d1365622a139f763a1d6c6f3316727235187c7c381a6d7f381942702a0d59822e105389341128231f1b3623201b241b1815211816143f201c1a683b3531713e3a3378443e387447433d6345413c5a48433d5f4c46425749453f4a4b443e534d47435a514b486a57514c7d5c5851775b544f795b564e715a554e72655e5880787068647f766b2c5d584d1c4e474027453d37232825231b13121029161413402f2b2653453f38574e463e654f4942624c453f704f4a43664d47405a49433d634b46406549453f5a47423d6f4d47415948423d6e4e484275534c4670544e487b5b564f76605a5570645e5a5f6a645f6677726bffa69c95ff786e64ff534b43ff52494181231f1c7b24201c8325211d8f27231f8927231f8927231f822824207c282421942a2724cd34302cea393530b937332d4e25221f4025221d32211e1b221917151814120f231615123b211e1c632a2722662c292487312d2987322d299233302ca43833309e37332f9436322e9f37332e9d38342fa0393530ad3d3834a93e3a34b73f3a37b13e3a35973c3834aa3f3b36a8443f3b9745403cbf4c494456322f2b25292723342e2c28312e2b27222523201e22201e322926234b3a34316145413c704946416e4a4742744f4b476a4e4a47614d4a465a4d49445e4e4b475e524e4b534c49464b4c4643534d49465b504d4a5a4f4c4a7b5a59547c5b5954735855527b5b5853705755506f5855516d5f5a566a64605b5d67635e3d5d59501e4946401543403a25433e39213a3733212826241921201d3e8f45265213100d5814110e6c1613105814110f751814117218141164161411821a17147f1c1a162715120e2614110e240e0c0a6f14120f531b1815691d1a165f1c1916671d1b175c1e1b1774211d1a80221f1b79231f1b6a221f1b6f25221e5424211e291f1c19221d1a162a1f1b18191614115128241f6b35312e9b413d399246423d9548433e7645403b6645413b5f45413d5f45413e483d39376c4a46427c504b48745a55508d746d653a56514d324c47432f33302c160e0d0b3f22211f533d3a366547423e62413d38523d39334f3c3733563e3a3564403d38583f3b375d423e3a664a454172504a455d4a4441694f49446b59534d7671686145625d5419454039ff3f352dff433930ff41382fff221d19efffffffefffffffefffffffefffffffefffffffeffffffdff322d26fb54514ceffffff6effffff6effffff4effffff3ff332b24ff120f0dff221d19901714115b191511581814106c1b1713651b17137a1d1915621a1613781c181592211c18811f1b17761e1a167a1f1c18b9292520ae292520531d1a16321e1a152518141219110f0d571614115d1e19166024201b7526211d6a25201d7827221e7a27231e6d26221e7d2924208e2b262256da61286fbf59286c6b31156a692f14846f3418757034187276371889833d1e79853d1b4c752e0f51822d0e35802f0e45231f1b5e2b27227f35312ca5413c37a7433e3892413d38954d47417b46413c6e48443e6046413a5d49453f624f4a45544e47424c49444064544f4a7057504d7c5e5a53736c655d80857c6d6b8b84781d534e482457504a404c473e1a1f1c1913070706351c1917553835325d4f494467534c47684d47435949443e504741394e4840395145403a634c473f634c46405749433d5347413b5c4a433f5f4b4440684c4541624c44415649433f69514c4560544d47606258545d736a643e6e6860165b564d19504c46367c756dff776f69ff574f46ff524941ff524941a9292521982723209027222089282421a82d2925f43d3934eb3a3530882e2a2538201e1a4625211d241a18151511100e45181613771e1c19642a2620712e29248a312e2989312e29772e2a2691312e2994332f2a81312e2982322e2b9436312ead393431aa3a3430b93b3733ad3b37329538342e9a3935309b3b36309b3f3a349f423f396d383530362f2b281824211e3f2f2c274f322f2a201e1d1a121715133426231f5434312b693e3b38824c484497514d499c514c4890504b47884f4c488b504d487d4d4a466b4d4a44624e4a455d4d49435c4d4a4661524e4b5c504d4a4c4a46434f4a46445f514f4b755956537c5c59557d5e5b586b63605c6b6e6a635d6a6862315f5c57103f3d3a1945423e3e4d4944303e3b36101b1a17141a191736312f2d4d3f3e3a544d4b465c54504c6655504d54ab5d355513100e5214110e601613105b1613107c191512941c1815311513102615120e2a100e0b61110f0d62161411621b1814661b1815631b18156d1d1a17751f1b186b1f1c186e201d1974231f1c7825211e6427231e311c19160e1513101b18161211100f0d431f1c1a792a2623792b282583332e2a8c383430823d3a358e46413c8348423d6a433f3b6445423d6a4a45436b4c4744a5615e59f0817c7648635e5834504b453636332f17100f0e392724216f46423e794d4a447a4946415d423f3a583f3b375d413c395a3c3732513c37323933302c5b3e3a3666423d3a5e413c3974524b4770605953766d665f4e59524c1d45403a334a433e1e3936311625231fff38302aff40372fff423930ff221d18efffffffefffffffefffffffefffffffefffffffeffffffeff332d27fb55524eeffffff6effffff6effffff5effffff4ff362f27ff14110eff251f1a8c15120f4b1713105e191512611b1713581a1512711c1814651c18157d1f1b179b241f1ac42a25206a221d1818161310381b18142613110f4a14120f7c1a1715601f1b176f231f1b7224201b7626211d7526201d7d27221f8428231f7927221f7c292420812a2621852b26228c2d282353de642a71c15b2760692e12726b3115766c31158c75381c7a7536199387422169843d1b4d7a301065933711588731109c342f2a9a34302bab403a3590413a3693423b378648423d854f49427048433e6448433f634a464169524c485b514c47785e5a53a9747068eb969189a2979086205f584f275c554b454d483f2321201c140807063926231f623f3c367259554d7b5b564f7957514c6a504c48504944405347423d5e4a45415747413c674d443e53473f383f3f37335346423b5d4a433e684e47415c4c433f54453f3a6f514b4678655d5761675f585d7169613559524c23554e481f4c463f3646403c1f302e2a0f12100f251e1b1a3d6f6b66ff968d85ff5a5049ff564b43ff544b44cf312d28ef3b3631aa2f2c271e1c1a162c1f1b1842201c1923151312321311106c1c1a188f22201c6c282522852e2a26842d2925882e2a26892f2c278a2f2b2790312e299a342f2bad36322d81302c289435312c9f38332e9a383430a33a3631a53b3732ad3d3934ab3f3b369f433e386d39342e37292520121f1d191a201c192724211c1b1e1c190f1312101f1f1c1b542d2b2877373431a9433f3cab413d39b24d49449849443f8644413da04d4945854b46447f4b47428a4f4a47834e4a467c504b45704d4945604c4946604f4c485f4e4b4867544f4e5f524f4b6c5753507a5d5a55945e5d5ac071716e956868653164615b1349443f204c494341504d47353d3b37141c1b19171c1b193a3735315545423e72595651735e5b567a5b58537a585551745353505c4e4a45554b4844514643415aab5c365114110e4e151310881a1714631815122513100d22100d0b3f0e0d0b651513106918151265191612581916126b1c1916621c1916681d1a166c1f1b187b211d196d211e1a7226211e46231f1b1f1d1916231b17141913110e2f1a171458211e1b6d27231f6726231f6c2925226b2926237d34302c79383431763c37347b433d396c423e397d4a4542bf635e59ec7e7a75946d6964384c47432c2f2c29361d1c1b412d2c295d433f3c5c4743406f484341694843416946423e6b44403c65423f3b6544403d6445403b64433e396d44403b67433f3a6c48423e9b5d56516768605939554e472e4d464036413e39262c2a272d201f1c51423e3a675d585170635d56ff4c433cff3e342dff453a33ff211d19efffffffefffffffefffffffefffffffefffffffeffffffeff322c26fb55524eeffffff6effffff6effffff5effffff4ff342c25ff14110eff211c18981814115d1a1613591a16125f1c17136a1e1a16ac24211d9423201b4c1d1915271815112114110d35110f0d581916137c1d1a16701f1c1872211d1969211d196b221e1a7c25211d6d25201c7727211e7927231e782823208b2b2621862b2621832c27229a342d2784332d284e2a252056dc602768be5a27826f33176b682e147f6e34176f6d31166f7133177e813e1e6a833b1a4b7c31105b8e32104f812e0f96322e29963b3530883e39337538332e88413c377847423c6643403a744c47438556514cc1746e66dd8b86809a807c7350706b602d57514c323f3b372c2725233c201f1c4334312d5a4a453f60554f4a615450486f544e4966534d4869524d4762514b46664f4944674f4944604d474266514a4667514a425d4d463f6b5047416d4f48425d48423c7d5750486a524c458b5c544d6972695f4b6b615625595048225048413d524b453236342f2223211e231413113a24211f56403b375c544f495a5b565160615c5779908a85ffd2c5bdff5d514aff584d46ff554b44331e1b18231614112b13110f471816145d1e1b188f23211e7d25221f7a272421892b27236d282421832d292496302c278e302c27832f2a2690322e2990322e288e342f2b9a35312cb43a35309135312c9c3a352fb6433c37ad433e3a91423d3750332f2a292926222e2927223328241f201e1b1818171513211b1916402926236d2d2a27923c3834a0403b37933b3733993f3c389a3d3b3683393732893f3d38a24c48438d47433e8144413d7a45423e7148443e7f4a4743764b47426a484540624745406c4e4b4771514e4a935b5853a4615f5aaf6968648760605b525857522b4f4c46294c48473343403e2a31302e2e2828263e31302e44403e3b574c49466256525053524f4d6152504b6e54504d6654504c6753504c6a55524d5c504c49634f4b486a514d4a614e4c495c4d4a4764514e4a58b15e37381714101d12100c24110e0c3b0e0c0a7d14110f72171412581714114b161310531714116c1b1714661a1714601b18145d1c1915621d1a176d231f1a45221e191d1c1915321e1a1615100e0c3c1b17135c23201d6d25221e7225211d6e25221e6225211e6126221f722a26236d2d29266c332f2c5c34312d7a3f3b37e05f5a54f06e69646e544e4b3d484440212926233e22201e8731302e9d42403d77474340724c4845774d4845714c4744704c46446346413f62443f3b7047433f7047423f7546423f6644403c6d4b46426b5d5750575b534d25443f393347423c252a27242a211f1c652f2c2aa144413d7658514c7859534d6d554f4a82615c54705e5950ff60534cff3c332dff413730ff221d19efffffffefffffffefffffffefffffffefffffffeffffffeff332d27fb56534feffffff6effffff6effffff5effffff4ff362e28ff14110eff1f1b17941a171357201a16481f1a15231814102c1916122314120f2e100f0d6315120f801a1714761e1a165f1e1a165a1e1a16521d19165b1f1b176e231e1a8527211d7123201c7426211c6b25211c7527221e7527231f882d292382322c253f29231e23221e1937241f1a231b18141614120f57d1592561b85727676a301578682e158673381a666a2e148c77381c567834165d7f37184d7d321148882d0e56832f0f7a312c28743b352f6035322e753e39359c4e4944e76c6860df76726a79625c563b59534e334c464222312d2a251d1c1a5624221f933a3835a74c4a4784524d497459524e745d5751735b555063554f49755c55506d58514c6e56504a5a504a445d4e48426d554e4870564e4978554d497a564e496b514b4569534c467b5d554f5f655d534e685c53445f554e16423e352b4f494033413c352223211d281d1b185e24211e81302e2ba546433d70564f4965534e477056504964554f4a725e59535e5e595254605b546e74706bffe7d9d4ff766860ff584c44ff53494289201e1b8124211e6f24221f782724216324211d6324211d6b262320802c27249c302c289b312c28832c292490312d277a2e29257d2f2a278a312c288d322e29a83b3630b6433e368b3e39323a2f2b262729262148302c273c2a26231c1a18141919161333211e1a4b2c28247537342e853a36319b3d3934a13d3a35ac3e3a36a13d3a35933b3733893b3633873c37348f3e3b37853a373394423d3a7f413d3981423f3b78403e39623f3b3858403c396c494441744b4844a5575551c25e5e59aa5e5f5b6b53514e2b464340264c48442e464240223734311c2422203b2f2e2c6435333199454543ab50504e8e504f4c7853514e6f585551725955526b5653516e58545267565250755b56546956514f765a56515c534e4b5d534e49584f4b466a56524e6b55514e6b56524e7756524f7555524f73a45a39ff221e1aff27211cff26201cff27221eff28231eff2c2721ff2b2621ff2e2823ff2f2924ff2e2823ff312b26ff312b25ff39322cff3a322cff39312aff3c342cff3d342dff3b342dff3c352fff3c352fff3d3730ff3c352fff3f3730ff403730ff40362fff453c34ff4b433bff4b423aff4c4138ff4c4137ff493d33ff463b31ff463b31ff4b3e35ff483c32ff483b32ff4a3d32ff4b3d32ff4c3e33ff4a3c31ff4a3d32ff493c32ff483b31ff4b3e33ff4a3f33ff473a2fff47392dff403227ff433528ff433528ff403226ff443528ff433528ff433528ff443529ff423327ff433326ff413326ff403125ff3f3024ff403124ff403124ff3f3024ff413226ff443426ff483729ff473628ff453527ff493829ff463627ff483729ff463528ff443426ff453628ff443427ff483729ff473729ff4a382bff49382bff4b3a2dff524031ff4f3e2fff4f3e2fff4e3c2eff4f3d2fff4d3b2eff4d3b2eff523e31ff503c2eff574133ff574334ff5a4636ff5b4637ff594535ff5e4939ff584435ff5c4737ff5f4a39ff644d3bff6c513eff6e4f39ff745034ff714a2cff784d2dff754c2dff794e2eff734b2cff784d2eff7d5130ff754c2eff784e2e62d35e295cae4e2367662e135b632a1063672d13736b2f1679723318587c3718527e3515497e3210648a31125d863211ff6c472dff67452cff64422aff5e3f28ff5c3c26ff5f3f28ff62422bff5f412cff5b402dff624530ff60432fff5e412dff60432eff61432fff614530ff61442fff60432fff5f4330ff543d2cff59402dff59412dff5a422fff59412fff58402eff59412eff57402dff58402eff5a4230ff574130ff5d4535ff574131ff5a4433ff594332ff594332ff5a4332ff554030ff554130ff5b4534ff5d493aff635143ff605141ff5d4d3fff615043ff645448ff615449ff61554aff60544aff5f5249ff60534aff64574dff65594fff6a5d53ff685a51ff62544bff63554bff5f524aff5c5149ff64574eff63574eff675b51ff695c4fff6c6154ff675d51ff6b6055ff6b6156ff675c52ff6a5f55ff655c50ff6c6156ff695e54ff635a4fff655b50ff655a50ff60574cff64594fff61564dff60574dff5d534bff5f544cff60564eff645850ff695d55ff6f655eff706760ff736963ff726c64ff73665eff6d6158ff6c6058ff76685fff706259ff6d5f54ff6e6054ff706255ff6f6155ff64554aff5b4d41ff53453aff4f4338ff54463aff504439ff4d4036ff4b3d33ff45372fff483a31ff473a31ff44372eff463930ff46392fff463830ff44372fff45372eff483a2eff4e3e32ff4e3f33ff4e3f32ff4f4033ff504133ff4c3d31ff504134ff514235ff4b3d31ff544537ff554639ff534538ff57473aff534438ff534438ff554538ff56463aff58483bff58483a8b914c2aff221e1aff26221dff27221eff28231eff2a2420ff2d2823ff302924ff2f2824ff302924ff2f2823ff322b26ff332d27ff38302bff3a322cff3d342eff3d352dff3d342dff3c342dff3f3831ff3e3630ff3f3732ff403933ff3e3630ff423932ff463e37ff453c35ff463f38ff4a4139ff4c433aff504439ff4b3f34ff483b30ff473c31ff493e33ff483c33ff493c33ff483c32ff493d32ff4b3e33ff463a2fff493b30ff4a3c31ff4a3d32ff4b3e32ff4d4035ff4a3b30ff4a3b2fff433529ff46372aff453729ff443529ff423427ff433428ff443528ff453528ff433527ff423427ff423325ff423225ff423225ff403024ff413225ff413225ff413325ff443426ff49382aff49392aff473628ff483829ff473829ff483829ff4a392aff483729ff463527ff483729ff483729ff4a392aff48382aff48382bff4f3c2fff4f3d2fff513f30ff534032ff503d30ff513e30ff4c3b2eff4d3c2eff523f31ff544032ff554133ff564133ff574233ff564234ff574334ff564234ff524031ff584335ff5b4536ff644b39ff6c523dff71533cff775235ff754c2cff6e4728ff754b2bff73492aff744a2bff73492aff73492aff72492aff70482953d15b2655ae4d2160652d145a622a11746d32166c7034186f70331749722f124a7c3515477d32106d8e33125b883412ff654228ff614026ff5b3c24ff5a3b24ff5a3c24ff593a23ff553822ff563a25ff563b27ff553a27ff563c28ff553b27ff553b27ff553a27ff583c28ff563c28ff563b27ff523a27ff523c29ff533c29ff523a29ff513b28ff4e3827ff4f3927ff503a28ff513a28ff513a28ff543c2bff543d2cff543d2cff553e2dff533d2dff543d2dff543e2dff523c2bff523d2cff533d2dff533f2eff544232ff5b4a3bff5b4b3dff59493cff59493cff5a4c3fff594d42ff564b41ff5b4f45ff5a4e44ff594e44ff60534aff5f544aff665950ff665a51ff61564cff61544bff60544bff584f45ff5e544bff61564dff64594eff685c50ff695e52ff6a5f54ff665b52ff665b51ff62564cff665b52ff665c52ff675c52ff655b52ff665b52ff63594fff61584eff60564cff62584eff61564dff5f544bff5f554cff5a5148ff5e544bff625951ff60564fff5f5650ff615953ff635c56ff675e58ff61564dff5e5249ff5c534bff61574fff60544bff5e5148ff5c4f45ff5d5046ff5e5046ff51463bff4a3e35ff43382fff44372eff45382eff46392fff41342bff41352cff3d3128ff3e322aff3e3229ff3d3128ff3a2f27ff3c3028ff3b2f27ff3b3026ff3c3026ff3e3228ff44372bff46372aff45372bff45372bff43362aff46382cff45382cff46392cff45372cff4a3b2fff493a2eff4c3e31ff4a3c2fff4b3c2fff493a2eff48392dff45382bff4a3b2eff493a2e9f703b23ff231f1bff27221eff292420ff2a2521ff2c2622ff2e2923ff2f2924ff312b26ff312b26ff302a25ff332d28ff332d27ff38312cff3a332dff3c342fff3d352dff413830ff3c352eff3e362fff3c342eff403832ff413833ff433b34ff443b34ff494038ff49413aff484139ff483f37ff4f453cff53473dff4e4339ff4a3e33ff493d33ff4b3f35ff4b3f35ff4a3e35ff4a3e34ff493e34ff493d32ff483b30ff483b30ff493b31ff4d3e33ff493c31ff4b3e32ff493b30ff493c2eff49392cff46382aff453729ff443629ff423428ff453629ff443528ff423427ff443629ff413426ff403225ff413225ff413225ff413225ff423325ff3e3124ff423326ff453427ff4a392aff4a392aff4a382aff4b392aff4e3c2cff4a392aff49392aff483729ff483728ff493829ff483729ff49392aff4c3b2cff4d3c2eff503d30ff523f31ff534032ff503d30ff4f3d2fff4f3d30ff4a3a2dff4e3d2fff4e3d2fff513f31ff584435ff5b4636ff594435ff574233ff564334ff564335ff554233ff5a4436ff594436ff624938ff6a4e3aff73543cff6b482dff71492aff754b2bff774c2cff764b2aff764b2bff7b4e2cff784c2cff774c2bff734a2a56d15b274cad4d2167672e1462622a1355632a1163682d146a692c14607b3616497932143f7b300f6d8a32115c883311ff654329ff664328ff654328ff624128ff5e3e26ff5a3b23ff593a24ff5b3c27ff5c3f2aff563c28ff573d29ff593e2aff563b28ff553a28ff573c28ff573c28ff583c28ff563b28ff543d29ff533c29ff523c29ff523c29ff513b28ff523b29ff533c29ff533b29ff513927ff533b29ff513b2aff523c2cff523c2cff563f2eff533e2dff513c2bff513b2bff503b2bff523c2cff543f2eff564334ff5b4a3bff5c4b3dff59493bff57473aff5a4b3fff5a4e42ff5f5348ff5c5046ff5b4f45ff5d5147ff5f5349ff60554bff665c52ff665b50ff685d54ff63574dff5e5248ff5b5047ff62564dff655a50ff695d52ff6d6053ff6a5f52ff685d51ff695e54ff685d53ff64594fff685e54ff665c52ff6a5f56ff665b51ff655b52ff635a50ff695e55ff61574dff63584eff5e5349ff60554cff5f544bff61564dff60574fff655c53ff655b55ff605750ff605852ff68615bff6b615cff665c55ff5e544cff5f554dff635952ff62574eff605249ff5d5046ff5e5146ff5c4f44ff53483eff4b4037ff423830ff453a30ff43372dff44372dff41352cff41352bff42352cff3f332aff3e3229ff3c3028ff3a2e27ff3b3028ff3a2f26ff392e26ff3d3128ff3d3127ff46382cff44362aff45372bff46382cff42352aff46382cff46392cff46392dff4a3b2fff493c2fff493a2dff4a3b2eff483a2eff4b3c30ff48392eff47392dff483a2dff47392dff493b2f9d8a472aff27221eff2a2420ff2b2622ff2c2723ff2f2924ff302a24ff322b26ff322c26ff322b26ff312b26ff38302bff362f29ff38312cff3b342fff3a332cff3e362eff40362fff3d352eff3e352eff3c362fff3f3730ff433933ff443c35ff443c34ff4b423bff4a413aff4a413bff4a3f37ff544941ff53473dff53473eff53473dff50443aff52453bff50443aff4e4239ff4f433bff4e433aff4f4338ff4d4036ff504237ff4d4035ff504137ff524439ff504237ff4e4035ff4c3e32ff483b2eff4b3d30ff4c3d2fff47382cff493b2eff483a2eff46392dff483a2dff4a3b2eff47392cff453729ff443529ff443628ff48382bff4a392cff4a3a2cff4b3a2dff4c3b2dff4f3f2fff4c3b2dff4d3c2eff4f3d2fff4c3b2dff4d3c2eff4a3a2cff4c3b2dff4d3c2eff4e3d2fff4b3b2dff4e3d2eff4e3e30ff4d3c30ff514032ff594638ff534034ff564437ff524133ff534235ff524033ff513f31ff534032ff513e30ff524031ff564334ff594435ff5a4636ff554234ff564335ff564436ff574334ff584435ff614938ff694e3aff6e4f38ff6f4b30ff7a4e2dff7a4e2cff7b4f2cff7b4f2cff82532fff80512fff7a4e2dff7c4f2dff794d2c40c852203ca4431d7f6b321754602810616229115c62291366652b1450793615467832143d7a2f0e63812e105d883311ff69462dff6d4a2fff6c492fff6c482fff63422aff614129ff5e3f29ff5d402bff5f422eff5f422eff5f432fff5f432eff5f432eff5a3f2bff5a3f2bff5b3f2cff5c402cff593f2cff5a412eff563f2dff57402eff543e2cff543e2bff533d2bff533c2bff513b29ff523b29ff523b2aff533d2cff533d2dff4f3a2aff523c2cff503b2bff553e2eff523c2cff503b2bff513b2bff543e2fff564334ff604e3eff57483aff5b4a3dff5a4a3cff584a3fff605347ff66584dff5f5348ff615449ff5f534aff61564bff62574eff6b6055ff695e54ff6a6059ff65584fff61554cff60534aff64574eff6a5d53ff6b6155ff706256ff6e6255ff6c6155ff6a5f54ff685d53ff645a51ff6d6257ff6a5f55ff6a5f56ff685e55ff635a50ff655b51ff655b51ff60554cff61574cff5e554bff5f554bff62564cff61574dff5d544bff675e56ff635a54ff625953ff5e534eff6a615cff645a53ff645952ff655a53ff625851ff655b54ff63574fff5e5248ff5e5146ff5e5146ff5d5146ff55483fff4e433aff433a32ff453931ff463930ff44372dff42352cff3f332aff3d3229ff3f332aff3f332aff3c3028ff3d3028ff3c2f27ff3a2f26ff3a2f27ff3e3128ff3e3228ff47392dff46382cff463a2dff473a2eff473a2eff45382cff4a3d2fff4b3d30ff493c2fff483b2eff4b3c30ff4a3b2fff4d3d31ff4b3b30ff47392dff4a3b2fff483a2eff483a2eff483a2e95a5522fff2d2621ff302924ff302a25ff2f2a25ff302b26ff342d28ff332d27ff322c28ff342d27ff332c27ff352f29ff37302aff38312bff38312cff3b342fff3f3731ff3f362eff3e352eff403831ff413932ff423932ff433a33ff443a33ff473e36ff4a4139ff4a423bff4c433cff534840ff615a52ff6a5e54ff6d6159ff655a51ff63594fff655a50ff62574dff5d544aff5d524aff594f48ff574c44ff5a4e44ff5a4e44ff584c44ff5a4f45ff5f5248ff5c5047ff5b5046ff594e43ff574c41ff564b40ff5a4d42ff574b40ff51483cff564b3fff53483dff55493eff54493eff54483bff55483cff54463bff55473cff55463aff55473bff57483cff57483cff594a3dff594a3eff5b4c40ff5b4d40ff5a4b3fff5a4c3eff57493dff58493cff54473aff55473bff584b3dff5a4c3eff5a4b3fff5d4e42ff57483cff58493fff635346ff5e4e43ff5d4d42ff5e4e43ff5c4c41ff5a493cff4f3e31ff513e30ff523e2fff554232ff574433ff594534ff574435ff554333ff584434ff584535ff584535ff5d4838ff644c39ff6c513cff6d4f38ff785335ff7c512fff7f522eff8d5b34ff8b5b33ff8f5c34ff8b5932ff875731ff7d4f2eff774b2b50d6602952af4e236f69301551612a1165662b1258672c134f692b12517734154d7b34153d7b2f0e577c2b0e658e3713ff745a45ff755c47ff725845ff725845ff6e5543ff69513eff6d5542ff6b5443ff705947ff6b5545ff6a5444ff655040ff665040ff665141ff665343ff66503fff665040ff6a5544ff705c4bff715e4dff6e5b4bff6d5a4aff695647ff695647ff5f4c3eff4f3d2eff412f21ff453323ff4c3828ff543e2dff533e2dff513c2cff523d2cff513c2cff513c2cff503c2bff4f3b2bff533e2eff584435ff5f4b3dff604e40ff604f41ff615143ff5d4f42ff5e5045ff65594eff63564aff65574bff615549ff5e5349ff60544bff685f57ff6f655dff655a51ff695c53ff60564dff665a51ff6a5d54ff6b5f56ff6d6158ff6e6459ff6f6258ff6c6056ff6a6056ff6a5e55ff685d53ff6c6257ff6d6157ff6b6156ff695e55ff675d54ff675e54ff63584eff62564cff62584dff61574eff60564cff63574dff61554cff625850ff655c53ff665c56ff655c57ff645b55ff67625eff675c55ff6d615aff685c54ff655a52ff675c55ff62564eff5d5247ff5e5147ff5b4f45ff584c42ff55493fff4e4239ff473c34ff463b32ff483c32ff45392fff42362cff3d3229ff3c3128ff3b3027ff3e3129ff3c3128ff372d25ff3a3027ff372d25ff382d25ff3a2f25ff3a2f25ff3b3127ff4b3d33ff5a4e44ff5f5348ff5a5044ff605249ff64564bff605349ff5e5247ff5a4f43ff564b41ff574b41ff5a4d43ff564a40ff52473eff55493fff54493fff51463cff53483e83b65e35ff312a24ff322b25ff342d27ff36302aff362f29ff36302aff352e29ff352e29ff37302aff363029ff39322cff3a332cff3a332dff3a322dff3e3630ff403831ff433a33ff443b34ff453c35ff463d36ff463c35ff483e37ff4b4139ff4b4139ff4c433cff50463eff4e463dff5d564cff726a61ff7d756bff7d766eff7a726bff797068ff797269ff78716aff766d66ff756b64ff736961ff736961ff6f655dff756a62ff71665eff736960ff746961ff736860ff736961ff746b62ff726961ff746a62ff766c64ff716961ff70685fff6f675eff70685fff72695fff70685fff746a61ff74685eff75675dff71635aff71645aff72655bff72645aff74665cff75675cff72655bff76675eff706459ff73665bff6f6458ff6e6257ff6c6155ff6b6055ff6a5e53ff6a5f54ff6a5f54ff6e6257ff6f6258ff6e6158ff6d6057ff695c54ff6b6056ff6d6058ff6e6158ff706158ff69584bff5e4b3bff5d4837ff5b4635ff5d4836ff5b4736ff5e4937ff614c3aff644e3cff68513dff66513eff6d5741ff6f5742ff785c45ff7f5f46ff866244ff8c623eff936137ff9c6639ff9b6538ffa26a3bffa46b3cffa96e3eff9f6539ff8d5933ff8654316adc632c75b65326746b311662632a12746b301656652a1252672a13507a3514537e38194c7c3110557c2c0e53873210ff8a7a6bff8c7c6dff867669ff8b7b6eff867669ff877769ff89796bff837468ff827469ff87786bff827366ff7e7062ff817265ff76695dff7c6d62ff7a6a60ff7e7165ff897c6fff918477ff9c8f83ff978a80ff95887eff8a7d74ff897d73ff7d6e62ff58473aff36271cff3d2d1fff4e3a29ff5b4432ff5b4432ff5c4532ff5c4432ff594231ff584130ff5a4331ff57412fff5c4533ff604a3aff655040ff675445ff675547ff69584bff6c5b4eff66564aff6b5a4fff716053ff6d5c50ff695a4eff63574dff675b52ff6f645bff6e6259ff6d6058ff6b6157ff685d54ff695e55ff6e6258ff706359ff72675eff73675dff74675dff6e6259ff6e6259ff71655bff6f6459ff71665cff73675dff72665cff6f645bff6f645aff6b6156ff685e53ff685e53ff685e53ff685c53ff64594fff665b51ff685f54ff645a50ff665d55ff6a6059ff6c635dff68615cff67605bff655a51ff655b53ff6a5e56ff695d54ff6b6056ff665b52ff5f5349ff5e5148ff5b5045ff5b4f45ff53483eff52453bff4b3e35ff4a3e33ff483c32ff453930ff41352cff3e3229ff3a2f27ff3b2f27ff3c3028ff3a2f27ff382e25ff372c24ff382d25ff382d25ff382d25ff392e25ff332a22ff4e443bff6a625bff6f6661ff6e665fff746b65ff7a706aff766c66ff6f6560ff665f58ff5d554fff5c544fff5c554fff5c544dff59524cff5e5650ff57504aff5d554fff5c554f8cba633cff9a9590ffa6a29fffa19c99ff96928eff94908dff969390ff999490ff9a938fff928c89ff8d8a86ff918f8cff8c8986ff8c8886ff888380ff88847eff8a857fff898581ff898580ff898480ff85807cff807b75ff827e78ff827d79ff797572ff77726fff706a65ff6f6965ff6f6964ff757473ff6d6b69ff706d6bff6d6865ff6b6560ff6a6561ff6a6662ff6d6a65ff6e6a67ff6a6562ff666260ff6d6865ff6b6763ff6d6864ff6b6663ff686360ff65605dff65605dff67615eff645f5cff66615eff635e5bff66605eff605c59ff5f5b57ff605b58ff575350ff595451ff57524fff55504dff524e4aff534f4bff524e4aff514d4aff544f4cff55504dff514e4aff4f4c49ff4b4946ff484744ff4f4e4bff4b4a46ff4a4945ff454440ff484743ff44433fff44423fff45423eff43403dff42403dff444140ff464241ff484543ff484644ff474544ff464241ff43403fff494642ff534d48ff534f4bff565351ff5e5c59ff6b6a66ff7c7a77ff8e8a88ff9c9896ffadaaa6ffc0bbb9ffd0cac9ffdcd6d5ffe3dedcffe0dbd9ffe2dddaffd6cbc9ffe2dbdaffdcd6d6ffdbd4d4ffd8d4d1ffd7d1ceffdad5d2ffcbc9c5ffc5c1beffcecac767dd642b53ab4d2470672e1474692f1650632a114f662b12576a2d143d6e2d11477d35153b792f0e5d7c2c0f517d2e0fffa7a3a1ffa6a4a0ffa19d98ff9a9791ff9e9996ff9b9793ff9a9792ff989490ff8e8a87ff8a847fff938e8bff8a8683ff85837dff807d77ff7c7975ff777370ff797673ff787371ff75706eff726e6cff6e6c68ff696461ff62605cff615e5cff605d5bff615d5cff615e5cff615c59ff5d5c58ff5c5a56ff5e5a57ff595451ff565350ff54514fff53514eff54524eff565351ff55514fff4f4c4aff494645ff474543ff444240ff4c4947ff4b4744ff484340ff44413eff42403dff3d3b38ff3c3a38ff3f3c3aff3c3a38ff43403eff474443ff444443ff3e3b3aff3a3736ff3a3936ff3e3c39ff403e3cff3e3b39ff3a3735ff3e3c39ff3f3c3aff3e3b38ff3d3a39ff3b3836ff3f3e3bff413f3dff43413fff423f3dff44413fff403e3cff3d3b38ff403e3cff3e3c3aff3c3a37ff3d3937ff393432ff393532ff3c3836ff403e3fff3d3c3bff454241ff474240ff474341ff4a4745ff555350ff6d6c6bff7a7573ff7a7572ff7d7776ff878180ff898381ff918b89ff938d8cff969090ffa19a9affa19b99ffa89f9dffa9a19fffa69f9cffa7a09effaea6a3ffb0aba6ffc2bab5ffd9ccc8ffe0d2cdffeadbd6ffe3d6cfffe0d2cdff978e8aff988f8bff88807dff7c7572ff877f7cff7f7a76ff7f7a76ff857d7bff7f7976ff857d7bff7d7674ff827a78ff7a7472ff76706fff726e6dff757171ff757271ff73706fff767272ff6c6968ff6d6968ff726f6e7fb8643fff9a9790ff9c9791ff9e9a94ff9e9b98ffa19c99ff98938fff968f8bff98938eff98928eff928e88ff908a86ff8f8a87ff393430ff30282271221d195a211d1a59211d1a5b221e1bea797672f7817e7aff87827eff827e78ff79736fff7e7c77ff7c7975ff77736fff6e6966ff6d6762ff696661ff706d69ff706e6cff6f6b69ff6b6865ff676461ff635f5cff686561ff65615eff6b6764ff65625eff63605dff666360ff66635fff2f29238a56514c9f5e5953b7646059d1807a7260615b53e35d5954ff5f5b57ff615d59ff605d58ff605c58ff5e5a56ff5d5855ff595551ff575450ff565250ff524e4bff504c48ff504c49ff504c49ff504c48ff504c48ff514e4aff504c4aff4f4d4aff504e4bff514d4bff504d49ff514d4afe575451efffffffefffffffff3a332dfb55524feffffff9fb777571ff44423fff403d3cff423f3dff3f3e3bff42403eff3f3e3aff464340ff4b4947ff4f4c49ff484541ff4c4946ff4d4a45ff5b5652ff65605cff76746fff8b8683ffaba5a0ffc1bcb7ffccc6c3e8cdc8c5241b18141b19151210110e0b2e1d19154d27211c662e2923ebd6d3cdffe6e2deffdad7d4ffd1cdccffd9d4d1ffc7c5c0ffcecac761da612c55b04f265b652b1262652c134a6128105e6b2f155f6d301568823d1c5f863e1b447e321051782a0d54732a0dffaaa6a2ffa49f97ffa29c96ff9a9592e9908b8751514b45635f5a556c5f5b55695c5853695f5853625a5451fb8b8783ff8d857eff817e78ff797671ff7f7e7eff787472ff726e6cff706b69ff6e6a67ff6a6863ff696562ff686361ff676360ff686361ff64605dff625e5cff625d5bff615c59ff605c59ff5f5b59ff5d5956ff575351fb585452ad45423f9d4c484493534e476b54504a765f5a548a67625ba158534eff484643ff464442ff484745ff494846ff44413fff403d39ff403d3bff43413fff403d3bff42403eff413f3cff424140ff403f3dff3c3937ff3d3938ff3d3a37ff3f3c3aff3e3c39ff3e3b38ff3f3b39ff413e3cff3f3c3ae33d39363323201c1a1917140f100e0d1f1816143f24211d562d2925ff464340ff373431ff383532ff3f3f3eff3a3835ff393634ff34312fff373431ff393735ff3f3d3dff403e3bff454343ff474341ff4a4645ff54504fff585553ff6a6663ff757170ff777372ff7f7b7bff837f7eff888383ff8e8989c77b78741737332e36423f3a4848433c23383530afb5b5b4ffffffffff989693ff95938fff938d8cff93908bff968f8bffb1aaa3ffe6dad4ffefdfd9ffd7cac2ff908782ff8b8582ff86827cff787471ff807b79ff787472ff797774ff72716dce6f6c6962565450705b585358504e49bdb0afacfffffffffffbfbfbff6c6968ff6c6969ff686765ff686664ff666463ff6a6967ff6e6a69ff69676575af5c39ffaaa6a0ffa6a39cffa29e98ffa19d98ffa7a2a0ffa4a29fff9b9691ff97928dff938e89ff96918dff97908cff8e8783ff37322fff2e2721ff231b15ff271f18a62e27217826221e7327231f84282420752a2622b75e5a55ff85817dff84807bff827e7bff787573ff746f6bff6d6965ff6f6965ff6c6763ff6f6c68ff6f6b69ff6b6966ff686461ff65625fff615e5aff64615dff676460ff676460ff625f5bff605d5aff39322eff312a24ff2d2620964e47402948443e202d2b281712110f4f24211f6a45423eb2534e4bff5a5653ff605b58ff5e5957ff5f5a57ff55524fff514e4bff504e4aff514d4bff534f4bff544f4cff524e4bff504c49ff504b47ff504c49ff4e4b48ff504b49ff4f4d49ff504d4aff4f4c48ff494441ff3a322cf3c6c4c3efffffffff38332cfb55534feffffffaeffffff8effffff6f3cfcec8ff403e3cff3d3b38ff3d3a38ff413e3bff434240ff454342ff474341ff45413eff494542ff4a4543ff524e4bff595451ff696764ff777571ff94908affaea8a3ffc4bfbaa32a25206326211c662a251f5728241f682b2621782d27236f2d2823772e2924712e2824e2b5b1adffdcd7d5ffd4d1cdffd1cccaffd1ceca67d9602c56b051275d682e1459652b1367682e15716e30177976391c4d7936165c823c1949813410637e2e105a6c280effaaa9a7ffaaa8a1ffa09b96755a5450735a54506a5a534f74635d5775625b567a625b5772605a5572615a56665c5651c077736eff817a73ff7c7771ff79756fff7e7875ff77726fff75706dff726d6aff6e6864ff65615eff625e5bff615d5aff605b59ff5d5957ff5a5652ff57534fff595551ff56534fff575451ff55524fc05f5a5472605a5281645e578f6c635a82685f597c655d587a645d586d5c58519076726bff95918cff413e3bff433f3dff43403dff45413fff413f3cff44413fff44423fff3f3e3cff444341ff43413eff434240ff3e3c39ff3c3937ff3a3735ff3f3c39ff403c3aff363331ff393533ff3b3836a4302d2b3a1d1a17642824207b2d2a2578332e2966302c2776332e2baa5c544fffa29891ff736c67ff3d3b38ff3a3835ff393532ff383533ff373331ff393431ff393632ff3c3a38ff3b3937ff3e3c39ff3f3c3aff413f3cff4d4a48ff595654ff625f5cff6b6765ff6d6a69ff797474ff827c7da264605d33322e2a262d2b27282c28243c3835315245423e69504c48fff5efe4fffffffffffffffeff928d8dff8e8989ff868180ff7d7a76ffaaa39fffeee1dbfff8e8dfffb7aaa4ff8e8581ff867f7aff77726eff74706eff7c7877ff7b7777bd6d6a6762595653715e5c58705a5856805b5b56b3a2a09ffffffffffffffffffffffffffffdfdfdff666462ff686564ff646261ff63615fff6e6c6aff6c6a67ff6a6967ff68666475a65636ffa49d99ffa7a39cffaaa7a0ffaaa8a2ffacaca9ffa5a39fffa6a3a0ffa7a4a1ffa19d98ff95908cff94908aff958f8aff938c87ff2f2722ff231c16ff271e17ff393027ff3f342cd839322b3c25201c1f1f1c182d221e1a1e1b181667393532ff837f7bff7f7b77ff817e7cff7f7a77ff736e6aff736e6bff75726eff726e6bff6e6966ff696461ff67635fff65625eff64605cff65625fff676461ff686461ff6a6663ff635f5cff322b25ff2f2721ff2e2721ff3b332c9d413b3670514d486e504c47654f4b465c4d4744574d443fc558534fff5a5653ff585551ff575350ff55514fff53504eff514e4cff4e4b48ff514d4aff4e4a48ff4f4c49ff504c49ff4e4b47ff504d49ff504d49ff524f4bff4e4b47ff4e4a47ff4a4542ff342d28ff2f2a24ff332c27ff3b342dfb565350effffffaeffffff8effffff7effffff7ff37302aff3f3c3aff3e3c39ff413e3bff403c3aff3e3b37ff403d3bff423f3bff47433fff45423eff43413dff4d4a47ff595754ff66635fff7c7973ff9b9792ff706a66ff3a322bfc443b346f2a251f912f2a246b2b25207d2f2924792f2a25772f2a257f312c267a302b25ffd8d4d1ffd8d4d1ffcfcdc8ffccc8c674d6602d6db653286a683015736a311663682d1469723417586d3015507734164d8039163f7f320f627c2d106069270eff9a938fffa09994ff524b46f14e4641755d57526459534f6c5f59556b5f58527f645e5a7761595576615b56c4928277ffb5a394ff807b77ff7c7773ff807b78ff797370ff76716eff736e6cff6d6865ff64615cff5e5b58ff5e5a57ff5b5754ff565450ff565350ff524f4bff514d49ff504d49ff4f4c49ff504c498b524c46555a4f4774625a547d66605980665e5876635c5674635b557e665f58e1b9b1a7ffdfd7d1ffa9a39cff443f3cff44423eff454240ff413e3cff43423eff444341ff424140ff434341ff434340ff43413fff42413fff403e3cff393634ff3b3936ff3c3836ff3a3633ff383533ff3834329e36312daa38332ebc39342ead34302b9e332e2981332e29bd443e38ffa49489ffa3968cff928983ff605a55ff403d3bff3d3937ff35312eff383533ff3b3835ff373432ff373532ff353230ff373431ff3c3837ff403d3bff484544ff524f4dff5f5c5aff6b6866ff6b6765ff75706fff7e78774f3b38347047433e8b504b468a504c4682504c46a85b554eff5b534cffa4988efffef4ecffffffffffa9a5a0ff7f7977ff7f7c7bff8c8887ffbfb8b4ffe6dad3ffe4d6d1ff877e7bff837b76ff837c7aff7a7574ff736f6eff736e6c8765635f62585551ad6a6964a0676764675d5c55e89b9288ffbfb3aafffffdf2ffffffffffffffffffffffffff676463ff656261ff6b6a68ff6f6d6bff6f6c6bff686765ff666462ff615e5dff615f5d7caa5938ffa59e95ffa6a09affa7a19bffa39e99ffa6a19dffaaa9a6ffa5a39dffa8a59effabababffa39e9affa6a29eff99948fff9b9690ff9c9891ff261f19ff261d17ff382f27ff3e342cff40372fff3f362dff42372eff372d25ff383028ff3e362fff403935ff817c78ff7f7976ff7c7974ff807c7aff7b7876ff74706cff76726eff75716eff716e6aff75706dff6b6764ff696562ff64605dff67625fff686662ff6b6966ff686561ff63605cff322a24ff2e2620ff332b24ff352d27ff3f362eff43382fff40352dff493f368557524fff473e39ff463e38ff58544fff57534fff56514dff534f4cff534f4cff504c49ff534f4cff514c49ff534f4bff4f4b48ff4d4947ff4d4a47ff4e4a48ff504c49ff4e4b48ff4e4b48ff4d4b4aff332d28ff2f2a25ff342e28ff3a322bff423931ff483d34ff4c3f35f0faf9f1ff554639ff685c51ff645c55ff474340ff494642ff474341ff45413fff464440ff403d3bff44403eff433f3dff464240ff484541ff504c48ff5c5753ff6f6b68ff8a8985ff959290ff3b332cff3d352fff443b33ff4e4137ff564639ff6851409936302aff6a5342ff5c4d43ff4c4239ff7d756cffdfdbd6ffdcd7d5ffd6d5d371da612c70b05027866b31187c682e16666b311673703318536d2f136d803b1a4f7c3415417e3210658231125b69280effa29b97ffa09b93ff3a332eff4d443dff584c44ff5c5148ff63524577675f5aff7a5a40ffa08067ffaf9b88ffa69281ffa19286ff76716eff736f6cff77726fff74706cff6b6764ff696662ff64615dff5d5b57ff5f5b58ff5e5a57ff5e5a57ff5b5755ff5a5654ff585552ff524f4dff514e4cff4f4c4aff4f4c4aff3c3731ff4b413aff584d43b3665c52f2695e56ff70655cff73675eff93887dffc1b5aeffbeb5adff5b5954ff44423eff413e38ff423f3dff413e3cff413e3cff454342ff454444ff43413eff474644ff434343ff423f3eff403e3bff3c3937ff403d3aff3f3d39ff3c3937ff393532ff312d29ff423b34ff5a5148cc39332fff82766cffa29287ffb3a79dffaa9f93ff96887dff8d8177ff857d75ff3a3835ff3c3937ff393736ff363230ff393633ff373532ff363330ff373432ff383533ff383533ff3b3836ff43403eff4f4e4cff5c5a59ff63615eff686563ff716e6cff605b59ff4d443e9a4a4540ff8d7f75ff98897effa39185ff96867bff7f7469ff5b524bffa4968dfff1e4dcffb1adacff827c78ff7f7a79ff847f7cffc8c1bfffd7d1ceffafa9a6ff837e7dff777372ff716d6cff746f6eff746d6aff726d6b174b4540ff57463aff604f42ff917b6bff9a887aff80756aff847970ffbbafa4ffebdbcdfffffff2ffbbbab9ff6c6968ff656361ff646360ff636360ff676665ff616060ff5b5856ff595855ff615d5cff605d5a6fa15331ffaca7a2ffaca7a2ffafa9a4ffaaa39dffa49e95ffa5a098ffaca9a5ffb2b2aeffaeada8ffafb1afffa7a39effa7a39fffa5a19cff9e9893ff958f89ff958f88ff585048ff3e352cff3f362eff423830ff3d342cff372d26ff352c25ff39312bff39322eff2e2a26ff77726fff7e7a77ff817e7bff817e7bff807e7bff7c7876ff797471ff77726fff75716eff716c68ff706c68ff6e6a66ff6c6764ff6b6764ff6c6865ff696662ff64615dff63605dff3e3833ff332b24ff372f29ff3b322bff3c322aff3a2f27ff40362eff453b34ff433b35ff413a36ff56524fff585450ff595550ff55514dff575350ff54504dff514e4bff54514dff524e4bff514d4aff4d4a46ff4c4945ff4f4b48ff4f4c48ff4b4744ff504c48ff4e4a47ff504c49ff37332dff36302aff3a342dff413830ff483e35ff4f4237ff554638ff59493cff61554bff5f5951ff44413fff484642ff3f3e3aff45423fff474442ff44403eff464340ff484441ff46423fff42403cff494644ff4e4b48ff5f5d59ff78746eff8e8884ff645d58ff3e352fff443a32ff493e33ff4c3e32ff654c38ff755137ff674d39ff5b4d40ff51473fff948e87ffeee7e1ffeceae3ffded8d65fd7612c5aaa4d236b662d148f6e351a746e33178276381b6a73341775803c1c6e853b1b437d321062803011596b280effa5a09bff9f9893ff918b87ff4e443cff57493dff514235ff584535ff664b36ff795a3fff89705bff847567ff8c7c6eff958980ff75706dff726d6aff726f6bff6e6b66ff6f6b68ff6a6863ff63605dff625f5cff605b57ff5f5c59ff5b5855ff555350ff5b5655ff5a5654ff575351ff54504eff56524fff4d4a48ff3d3732ff494139ff564b41ff63584eff6b5f57ff6b6057ff6f635aff918479ffa89a90ff918780ff44413fff484542ff45423fff403d3bff3e3c37ff423f3dff494848ff464746ff484846ff444546ff42403eff42403fff403e3cff3b3834ff383632ff383632ff393633ff3b3733ff2f2b27ff453c35ff62584fff86796fffa09288ffafa196ffb1a69cff9f968bff897c72ff787068ff3a3836ff3a3937ff393736ff383432ff373432ff363331ff35312fff35322fff353230ff34322fff393734ff423f3eff474442ff4f4d4bff565352ff656161ff706c6cff736f6fff352f2bff504741ff887e74ffa79b91ffae9f93ffae9f92ff9a8d81ff766a61ff5d534cff978d86ff85827eff888482ff837e7cffa59f9dffd4d0cbffd4cecbff7d7978ff807d7bff757270ff706d6bff726e6cff6c6966ff716d6aff403730ff4d4036ff56493fff5c5047ff796c61ff786e64ff666058ff726a63ff9b918affb5aca3ff656462ff676463ff5f5d5cff5a5957ff5d5b59ff615e5dff5d5c5aff5d5b59ff5e5c5aff5e5d5aff5e5b57ff625f5d80af5e37ffa09c98ffa8a49fffa6a29bffaba6a1ffaaa5a0ffa7a29effa29d96ff9d9791ffa7a6a4ffa9a9a7ffa7a5a3ffa8a7a3ffa09b97ff9e9995ff97938fff8b8480ff8a847fff847f7aff68615bff423931ff423930ff3c322aff393129ff38312aff342f2aff302a27ff615c58ff6e6a66ff726e6bff736e6cff736e6bff6e6a67ff6c6968ff6a6764ff666260ff66625eff66625fff625e5bff5e5b57ff64605dff625d59ff5c5854ff5b5955ff585653ff565250ff575351ff45403cff393029ff3b3229ff382f27ff40362eff463c35ff443b35ff423b37ff514e4bff4b4946ff4b4846ff494643ff4d4946ff514d4aff514e4aff524f4bff4f4c48ff4b4845ff4c4845ff4a4744ff4a4743ff4e4a46ff4d4946ff4c4844ff494541ff4b4642ff4c4844ff4c4944ff3c352eff443a32ff483d35ff4e4237ff564639ff594a3cff5e5349ff615a53ff464341ff494543ff474645ff43413fff44413fff46423fff45433fff4c4944ff4c4944ff4b4843ff504b46ff504b46ff534e4aff645e5aff706d67ff837e7bff878482ff463c34ff50443aff56473bff695140ff6f513aff6d5441ff5f5246ff807770ffdedad6ffe0d9d5ffdcd7d3ffccc8c34fc655265ba3482175652c158d6f3419717034177d74361a707032174f7935166e8a411e457d3210527a2c0e5d732d11ff908b87ff8c8784ff86817eff7f7975ff56473bff433426ff4e3a29ff634730ff6e5239ff685344ff665a50ff847970ff75706eff716e6aff6c6764ff6b6764ff676460ff6a6663ff6b6764ff635f5cff5f5c59ff5e5a57ff605c59ff5c5855ff575452ff55534fff53504dff55534fff514d4aff504d4aff4e4c49ff474440ff4f473eff605348ff685b4fff6a5b51ff78695eff847568ff98897cff5f5854ff413f3dff41403cff43403eff413f3dff403e3cff3a3633ff3e3d3cff434444ff434242ff454443ff3f3d3bff3e3b3aff3f3d3bff363431ff353330ff35322fff34312eff34312fff34312fff2f2b26ff443d34ff6e6359ffa6988effb8aba1ffbcb0a7ffb9afa5ffa4978fff353330ff373533ff363432ff383736ff383534ff383635ff353330ff353230ff34312fff302d2bff353330ff3c3936ff3e3937ff423f3cff464541ff4d4a48ff5c5857ff676361ff6c6968ff716d6cff36302bff4b433cff796d64ff918479ff96887dff988e82ff83796fff77716cff817d7bff8c8784ff938f8cff9f9b97ffc6c0bbffd6cfcaffc3bcb8ff787471ff7f7c79ff7f7b78ff75716fff6e6a68ff686563ff605f5cff494643ff443b35ff4d4138ff544942ff57504aff736a61ff9e9386ffd5c8bcff7d7773ff51504eff575453ff555252ff53504fff545350ff555351ff595754ff5a5856ff545451ff545250ff565452ff555551ff565553ff5a5b5b7ea65634ff888480ff7f7b77ff88837fff8e8b87ff8f8b88ff8e8a85ff837d7bff85817eff7d7774ff76716eff7d7b79ff82807fff828283ff7c7977ff7b7775ff78726eff706a66ff706b67ff696561ff65605cff5f5a56ff5d5855ff565350ff524f4bff484341ff46413fff46423fff453f3cff474241ff46413fff474240ff47413fff484341ff44403eff423f3dff413d3aff423e3cff3f3c3aff423f3dff3e3c3aff413f3cff3d3a39ff403e3cff3f3d3cff3a3938ff393836ff393735ff393835ff353431ff353332ff353231ff32312fff312e2dff312f2cff32302fff312f2dff33302eff312f2cff322f2dff31302dff363331ff3b3836ff433f3bff413e3aff403b38ff3f3b38ff3d3a37ff3d3a37ff3e3b39ff403f3dff413e3bff403e3aff3e3c38ff3e3b38ff3f3d39ff3d3a37ff3a3933ff403e3aff3f3d38ff3b3833ff3f3c37ff3e3c39ff413f3cff403e3cff3c3b38ff3f3c3aff3f3d3aff3f3b38ff46423eff514c47ff554f4aff56514aff58514cff524d48ff4e4944ff56504cff5f5c5aff6a6664ff706d69ff77736fff8b8681ff948d89ff9c9990ffa9a19affaca098ffc0b8b4ffbbafa5ffb1aaa5ffa19e96ff9d9893ffa19b9643b54b2077a04a245056230f64622c14666c33156e7639196978391a64863e1c7b9248234e823411537a2d0f707a3214ff766f6eff736d6cff756e6dff716b6aff716b6aff706b69ff706a67ff6c6461ff65605bff6a6361ff686262ff686261ff65605fff625e5bff5e5a58ff5d5a56ff5f5b59ff5b5855ff585652ff53524eff555450ff53504dff4f4b48ff4f4c48ff504e49ff504c48ff4e4a47ff4d4946ff474340ff464340ff44403eff413f3bff3a3735ff413c3bff433f3dff413d3aff484340ff3b3936ff3e3a38ff3e3d3cff383736ff333230ff2f2d2bff322f2eff2f2b29ff2a2726ff302f2eff333231ff353535ff302f2dff312f2eff312f2cff2f2c2aff312e2bff2b2a26ff2b2825ff2a2825ff2c2a27ff2c2a27ff2d2c28ff2e2b28ff332f2cff36312dff36312eff332f2dff2c2a28ff2b2827ff302b29ff363230ff383432ff3a3634ff383330ff363230ff34312fff383532ff363330ff393633ff3c3835ff48423eff4a4642ff423f3dff464441ff4f4d4aff5b5855ff61605dff706f6eff73706eff716e6bff6b6762ff706a64ff76716dff726e69ff77716dff75716cff7d7875ff83807bff918b88ffa59e9affd0cbc3ffa39f98ff938e8aff6e6b67ff726e6aff696463ff65615fff595855ff52524fff4e4e4bff52514eff4c4d4aff52514fff524f4aff4e4c48ff4f4e4aff434241ff41403fff3d3d3bff434241ff41403fff41403fff434141ff464644ff484645ff403f3dff41413eff3d3c3bff40403eff3e3e3bff413f3dff3f3e3aff424240ff41413f81a35331ff403c39ff3d3a36ff3c3835ff3f3c38ff45423eff45423eff46433fff4c4a49ff433f3dff423d3bff423e3cff423e3bff474443ff454241ff4a4747ff484542ff494542ff45403dff46413eff453f3bff423c39ff423d3aff423d39ff403c39ff3f3c38ff3f3c38ff3e3b37ff3d3a36ff3d3a37ff3f3b39ff3f3c39ff3d3a37ff3e3938ff3c3836ff3d3a38ff3a3733ff373431ff383531ff36322eff393532ff393532ff3b3834ff3a3633ff363331ff363331ff34322fff32302eff322f2dff312e2cff312e2bff34312eff34312eff34302eff32302cff33312dff332f2cff332f2cff36332fff373330ff383531ff363330ff373431ff383431ff3a3633ff3c3934ff3b3733ff3c3834ff3a3532ff3b3734ff3c3835ff3c3935ff3d3936ff3c3936ff3d3a36ff3b3935ff3b3834ff3e3a36ff3e3a36ff403c38ff3c3734ff3f3935ff413b37ff423c37ff413d38ff453f3aff47413bff463f39ff484039ff453c36ff473e37ff443d35ff423b33ff403831ff3d362fff3e372fff423932ff483f37ff4b433aff4c443cff4a423cff4c453eff4f463fff534b44ff544c45ff5a5049ff5a5049ff564c45ff574d46ff514943ff4d4741ff51494362bc582c799947254e52220e625b2812836d34187574361a7a803f1d859448226292421d4b873711718533125e762f11ff48413bff48413cff443f39ff47403bff46403aff45403bff47413dff47423dff423c37ff433c37ff443f39ff443e38ff433e38ff453f3bff453f3aff46403bff45403bff45403bff423e39ff423d38ff413c38ff423d39ff413d39ff413c39ff423e3aff43403bff423e3bff413e3bff3f3c38ff403c39ff3d3936ff3a3633ff393633ff3b3835ff3a3734ff393532ff373430ff3a3633ff3c3935ff383531ff3b3835ff3c3a36ff36332fff373330ff36332fff35322fff3a3835ff3a3734ff3c3937ff373430ff35322eff34302dff35322eff34302cff322f2bff33302dff322f2bff322f2bff32302cff33302cff312e2bff312e2aff302e2aff322f2cff312f2bff302d2aff332f2cff373331ff3b3836ff383432ff363330ff34302cff35312dff373230ff37322fff3b3734ff3c3735ff3f3a36ff403b37ff403c38ff403b38ff423d3aff44403cff494541ff524d49ff58514dff5d534fff5a534dff5c534dff5d534eff5c5450ff635c56ff655d59ff6a625cff625b56ff635b56ff625955ff665e59ff6a625dff443e3bff46413eff413d3aff413d3bff413f3bff45423fff484542ff45423fff423f3bff3f3b38ff403a36ff3e3935ff3f3a36ff433d3aff48433eff4b4541ff45413eff474441ff484442ff474341ff484541ff4a4440ff494340ff4c4844ff4c4945ff4b4744ff494642ff44423cff484541ff494642ff4c4a46ff4c4945ff4b47446e9a4c2bff68625aff645d57ff625b54ff615a55ff625d56ff666059ff675f59ff68635fff706964ff685e5aff615954ff5f5753ff635d58ff686260ff655f5aff67615fff6d6662ff67605bff6b625dff655e59ff605953ff605753ff5f5753ff625a55ff625b56ff605953ff5e5853ff605b56ff5d5853ff5d5854ff5d5753ff595550ff5d5854ff585250ff544e4cff5a5551ff5b5651ff5b5551ff59524dff58544eff59534eff58524dff54504cff54504cff534e49ff524c48ff514d49ff524e4bff4d4945ff4c4643ff4d4844ff4e4a45ff504b46ff504b46ff544f4bff4d4944ff514b47ff524d49ff524e49ff544f4aff58514bff544e4aff54504aff5b5650ff59544eff5a544fff57524cff59534eff5a544eff5a544eff5a544fff5c5750ff5b5650ff5f5a55ff5c5852ff5e5a54ff5d5852ff58524cff5f5751ff59524dff5b524cff5d544dff615750ff635a52ff615750ff645951ff655a50ff6a5c51ff685a50ff60554aff574c42ff5a4e45ff61554dff6a5d53ff76695dff7b6c60ff8e7c6fff9d8a7aff9c8b7cff948577ff938477ff9d8d7fffa69486ffa49285ffa89587ffae9b8dffad9b8dffb7a696ffa7998affa7988bff9b8c8076ba552c7794482543491d0c9461301868673116697236196f82401e82a05026558f431d528938126a8132125e783011ff908278ff8e8176ff8d8176ff8c8075ff877b70ff867b72ff8b8079ff8a7e76ff82786eff877b70ff8a7d73ff897d72ff867c72ff7f776dff81786eff81776fff80776eff7d746bff787067ff766d65ff766e66ff766e67ff746d66ff766e67ff797169ff777069ff756f6aff706a65ff726c67ff6f6964ff6e6761ff69635fff69645fff6d6663ff6b645fff68615bff635d58ff66615aff6a635eff68625dff6a6460ff6a645eff68625cff625d57ff625b56ff645f5aff69645fff68645eff696460ff67605bff635c57ff605a54ff5e5852ff5d5850ff5b554fff5b5550ff5a554fff59544eff56504aff56514cff544e49ff544e49ff554f4bff524c47ff514c47ff524d47ff4f4a46ff534d48ff55504cff56504cff554e4aff574f4aff59534fff615954ff645d58ff6d6560ff7b756dff857d75ff898077ff8c827bff877f77ff7e776fff7e766fff8d867dff958b81ff9d8e85ffa5938aff9d8f85ff9b8c83ffa4918affa5948cffa6968dffa6958cff9f8e84ff867871ff7c7168ff7f736cff7b6f67ff7d7069ff756a63ff786d66ff746b65ff716762ff7f766eff877c75ff857b74ff837973ff83766fff7a6e65ff786b62ff776962ff756860ff87786eff94847aff8d7f77ff8c7f78ff8e827bff91837dff8e8078ff8d7e75ff8b7d72ff8d7f76ff91857bff96897eff968a80ff92847aff96897fff95887fff94887eff8d8075ff867a72ff887b7389b76541682b27237a312c287b302b2681312b2784332e297d352f2a77332e298035312b7e35302c8637312c78332d2977342e2a7f332e2a803a35306035302c3a2c29245535312c4a312d28452622206b322d297937322d993a34308a37332f8a38332f953a34309d4039369c413d389e45413ca94b4642b04d4843b3544f4aac55504c94504b45a7554f4af06b6460ff7b756faf615d585743403b6f504b46493834303f23201e6d2c2a2898363331a843413d884845418b504a479b56504c8a524b4892534e4989534d498b544f4a80534d4881564f4b78524c47724d4a446b4e4a44855b554f8557524d91615a57b86f6862fd878279fd8d867d996e696054524b44ff625950ff494039ff4b4039ff28231ff2dad9d8f2d9d9d8f2d9d9d8f2dad9d8f2dad9d8f2dad9d8ff453c35fc534f4cf2d9d8d8f2d9d8d6f2d9d8d5f2d9d8d4ff39312bff1f1b17ff2e2822871c1915551a1714671f1c187927231e862a25208f2b2621922c2621962e282398312a258d342e298539322d8f3e37318a4139348d433c36994b443d9549423b86443d3789443d378e463f389d4f48419d574f47744e47404f453f393a403b3564514a43564d47403d3a352f4b35312c4c9e421f7a873d205a481f0d895f3118756834189e7f43237486421f8faa57297d9f4d24458c391257812f104e772f0fb25c574fbb645d56a45b564fa5615a53a1625c5499615a55865c565091615a54ad6e665ffb8f857eff958e86c7847e767369665f4e524e476b635e575e534e48413b36333e2b28255f32302d7d3b3a37a84a4743ad55514c9155514c855d555192645d5898655e5899635c5791655e598c635e578c665f588d655e58846660597f686059826b645e79645d5873675f5772645d55675e595368635c5787746c66837169638d78716a90726b66a9847a74d38e8880f1a39f97c7928f85897e7d734a6560594459544d56605c55ffc4b9b0ff6e645bff5c524bff5a514abc3a3530a538332f9c37322d9f37322eab393431a439332fa137332eb63b3732ae3a3631a73935309936322da138342fa33a3531a73a3631c7423d39c148433c893d39345e34302c3f2e2b27432d292573403c376a44413c433a36303b2e2b284f38363067403c366f44403b8c504b44c15f5953c55d5752b95b554fcd615a54bf5f5752cc625b54c8625b55bf605a55c3655d59b6655e58ffaa958bff9f8b82ffa8938aff9c8c80ff9e8c82ffb9a498ffc1ab9effbba59affa6928affa8948a7f645f5885645e599166605ba868635ed7736e69cf6f6c67a867645f7e5f5c574a4d4a44434b46425d5e5a53635d5a534f4f4a463c3934313c332f2b5939373478403f3c8d454341ad504e4bb05b58538f585450815c58527d60585592665f5a93655f599a665f5a7d5e585391625c5885605a546baf5e3b7a1c18145e1c1815681e1a166f201c186e211d1965211c1862211c1962221e1a7b25201d7f25201c8e26211d6924211d141d1a162f231f1c19171412271816124d24201b712b2722722a2621772c26226b2a26207c2e292582302b27782f2a25832f2a267e322d298036322ea4423d398d413c38a44c4640cd5a544ed358534d5c403c37463e3a35534b45403b3f3b361824221f4b2827247b34322e9c413f3b70403d3a644945416c4e4a4464504b466f56514b544d47446a57514d6857504c5e534e485c56524d52554f4b4f554f4a5d5e5852746a645c756c675e7f766f65927a726aeda69f9487877f743a655e5441625b522e46423c171b1a18221b1917ff6f6359ff4e433bff4c4238ff25201aefffffffefffffffefffffffefffffffefffffffefffffffff443d35fb585552efffffffeffffffeeffffffbeffffffcff3e352dff1b1714ff2b251f9e211c176e241f1a8d25201b7225201b6d27221d8329251f882c2721742b2520812c2621752c26217a2e2822762e28237d2f292497342e299d352f29be37322bba38312b90312c272b26211d2228241f3e2e2a241f23201c151815123124211c512f2a247c3a332e8e3c362f9a3e373190d16735568a3d1b61431c0c7252271159602c1369713419918d46236692441f84a4502644903b1271903a1554742d10ae564f4999544c46ad5f5850c5696258f77b736a9c5f59535b534d47585b544d2644413a4b6057513c4d47411e34302b1d2523204c2e2c28783b3834a04c4b459353504a6e514c475e55504a75615a546e605a53605e5952736660585f635c54525c555069645d576a655d586768615b57635d565e66625d5e6e67614e69615a5067605a577068616d7f766f6b7f766e6c827b7271857d7471877b7080877f78d5afaa9e8f928c7f478d84781c71695c296d665931605b522b524f4716282624111211102f2724226a3d3a37ffe0d6cbff867970ff63584fff61574eb13b36319236322d9d3935309438332f8b37322f9a3b3531bf423d37c2433e38da46433bf84d4841e948433db93c3934532e2b271725231f3a33302a4c36322d25292623121c191721201d1a3828252255332f2a81403b35b24c4640b74c4640ba4b4640b84b4640a748423ca049433bb64d4841ce554e48df58514cc5534c48ce554e48b14e4842c0524d48b8504b47ab4f4b469d514c48af58544eaf5c5751a65c575183514d478b544e4a8a514e4996514e4ab1595751b45c5a546844423d48403f3a4847443e1f353632213a38343c4e4a463a4c474226433f39132b2b27272c2a27493433307940403d8c464643a14e504c8751504e66494845524c49466f58555268555450695857535754524d6d5a5753655956514e534f4b4f544f4d6157525065595553605754515c57535150514f4b6ab4623d6a1c1814621e1a164f1c191573221e1a82221e1a7a221d198f24201b6d211d1a291b1714191d19151c191713321513106d1d1b1882221f1b6b24211d6b28241f6c292420752a26216e292521752a2521692a2520702c2823692b2823612926216d2b2723692b27238e34302ca53a35308c37322e472f2b273835302b3d3c3732202c2825402e2c28823c39369a46433f8848464283504c4885544e476e4d48436b4f4a45664f494569514b476d534d49775a5350755b54506156514d53544f4a5356514c565b554f716a645fad837e77d8968e86b5958c834a726a6028585149385f574f2a413f37202e2a263e2d2a26773f3b378547433e905755517658544eff746960ff51463dff4f453bff28221defffffffefffffffefffffffefffffffefffffffefffffffff433a33fb5b5754efffffffeffffffeeffffffceffffffcff3d342cff1c1814ff27211ca025201a69241f1a7e25201b6926211c7428231e5825201c772a251f942f2923892d28229c302a24b5332d27b4322c277b2a262135221d191b221d192525211c1c1f1b172b1a17135926231e8a292621882e29248e322e288538322b8738322c8a38332da03d3731943a342f903b342f69c95d2c5994411c55441e0c3b471d0b4659270f6c743819888d4723849f4f2682a34f25428d39116d933c15627b3212c14c463f6c36322d4036322d303a3630404b453d303f39331e35312c30302d295f3b38348c4c494598524e499657544e7b5a565080615d5580655e5782676058655d56506e625b54685f58526c625c5464615a546f645d577667605a7b6e6760706a625c696e665f5567615a516c645e5170686155776f686381786f7e8c857d96938d83b7a39b93c4b1a59e91a1998e49887f721d70665d24665c563272685f2e5751491b3b3833202f2a273934312d644a46418d58554f855b5651986b6b657475716b7768655f6a6e6963ff958b82ff73685fff61564eff655a50ab393530cc403a35dd453f3af244403cc53f3b3685322e28412825212026221e222725202e2725201c201e1a271c19174f24221e762a29259a322e2a9a35322dac3c38339a413b369f433e389f433f3aac45403cc04c4740bf4b463fb34a443eb149433eb54a4440cc4e49439d47423bc3504a45ba4e4944b54c47429f49433f9645413ca84b443fa54c4641a14945409b47433fad4d4945c1514d48c0504c47b8514d4787423f3a4e3634313233322e2832312d2c3c393334443f3a283d3a361c3837322a353430493d3b3874494846965253529a54534f9c5756527c54534e7658555176595751735a56517a5b57536452504d5a514e4a6256534f5b53514d62575450675957525756514e665855516a5a56526e5b5854715e5b57635955535e5754525053504d4c514e4b444e4a48464e4c4962b86641661e1a16651e1a167d1f1c188d221e1a401c1813291e1a16231d19161f151310551714117e1f1c196c201e1a5f221e1a60231f1c6325201d6d27231e6727231f6227221e5825211d7329242170292521652925215e2a262164272420932b27237129252032211d192d27221e272a25211f26221e36282421773f3b36a94c49449a4d4843874d4944905550498a57514b81504b46764f4a436d4d48418755504a634d47435a4a4541604e4a465e514b4858504b48635b54518e726a6682847e77627d756d4a6c665e4a5f585225504c452d504b451a2b2925161c1b18262e2b2743413d388b514e498c605a5489676059826a645e7f6961597d625d56805d5953ff625a53ff584d44ff4f443bff26211cefffffffefffffffefffffffefffffffefffffffefffffffff453c35fb5a5653efffffffeffffffeeffffffceffffffcff3b322bff1c1814ff2e2722b81f1b1678241f1b7927221d7729241e862a241fa32e2823b02f29237d29241e37201c183125211c2e28231d1a1b1814271c1916541e1a167527221e842b2622752b2622712e2823762f2a2479322c267c332d288b36312b8937312c8537312c7e36302a7536302b8b39332e983c353048cd5b264b97411c68471f0e514b210e5a5f2c136772371a5884401e71a0512788a95427488e3a126c923a14677a3213242f2a24222e2a243834302b6d47423da754504a9d534e499159534d825b544e8260585288645b547d60595286625c557a60595372605850665a554e77635d55886b635d665f57535e5b534f5f5d58516c635e595f615a55555e58525c635c5668776e68898d827cadafa19a6ea4988f54998f8435857d7350857c74255b524f1c5c575029685e5628544f4817312e2914211f1b1c2b28252d3d383348554f497e5c575196716a668a7b746c857c746c7c7b746c7d827b72727a72697c7f79728178746d7e7b787198c5c1b8ff696057ff4f463fff5f544cff6459504027241f432d29253f2f2c272424211d181b1a162c1e1b1853201f1b772b27239c302d2991322f2b82332e2b953a3531923b3631953a36309b3e39329c3f3934aa423e38b045403ba1423d39ad45413c9d433d3893423d3891413c36b049443ebb4a4540b348443eb74b4641a649443e9e48443e9547423e8e46403ccb4c4842ed524e49cf4d4a44a244413c5b33302c352b2925312f2d2a3f36342f2d36332d21312d281f302c27252f2d273a33312d623e3c39934f4e4b9f55534f8e55534f885957527b58544f6e56514d7458544f7c5c56516f5754507c5b57536856534f6855524d6557524b57504c486a57534f795d59566a56545059534f4d534f4b495653514c5253514c625956535955514d5053514d52514f4c5253524f565a5654605c595577625f5d69797572466964623d6d6b6653c76c435d1c1915090f0c0a151814111914110e3c15120f811c19158f221e1a60201c195a221e1a5b221e1a65231f1b57231f1b6325201c5d24201c5925201c6727211e6228231f732c2722692c27225a2e282225201d190c1a16131e1f1b192a241f1a0d1a1713381f1c186a26221f9f312e2b8d3a353190433d389648433d9b4d4742a1534d48a655504a90544e49a25e56526847433f724c474387534f4881544f4a5e4b46425c4b46437056524ecf7b7572c0918c883c71696127514d4830564e48254b48400e18171510171513323b37324c534e47696c665e78706a6186726c6394797068856e665f7e6d675e8d71696298766c659771696286625c557d5b574fff48413aff4f443cff50443cff26211befffffffefffffffefffffffefffffffefffffffefffffffff453d35fb5b5754efffffffefffffffeffffffdeffffffcff3e362fff1d1916ff322b26c3221e1a9c29241f7925201b1714110e131a1612161e1915161a1612181613105b1f1b178725211ca32e2923882d28246b2b2621702e2923702e2823712f2a247f302a25712f292472302a2577312b2675312c277b342d2974312c278837302c8037312c8139322e913e37318b3f39333fd35a254ca3471f453f190a5b4c220f4d5a2811546c311459833d197fa7582c67a14d22518f3c1388a2451a71793113a645403b9c4a453fa8554e47a756504894564e4882564d47945b554e996058518e5f5751846159549a6f656083625c556a5c5550755f585285645e5684665e57675d55515f5c554f635f59535a5c5652806a665dc18a837ce5a7a39d6b9b908520726a600e514e47205c55502f78695f2e6f6b600f36322e05201d1b0d262220324a44404c5e5850607d756d78938b80728981767c8a82777d8c8278909689818b8e827a79847a738088807680887e768e8d827a8b877f76948a837a847e78717f7b756e72726e679bd6d0c7ff80746bff4a423bff5f544cff685b537424211e90282521b534302caa36322d993934308a36312c8e3935308236312d8f39342f963b3631a13d3733953b373388393430963c3732a3403a35913c38329a3f3a35823a3531983f3a35af453f3b9f433f3897453f3ac04e4741ae4c4640aa4c4742a7514b4474463f39342f2d281e2c2723091f1c190c1c1a163b322e2b5a3e38322b312d270c26231e13211f1c3d2b2a265d2f2d2a8e393834b943413ea545423f984b474293514d479256514b8b524f4977504c487b544f4b70534e497d56524d8057534f7f595550715955506c57524e825f5a56805955514d4a46435c514d496455514d7257534e7a5a55507a5e58554a4d4a46524f4d494e514d4a4a4c4a474a534f4c6b59575296676563b47677758780827e37767069165f5c570b46464010464440214e4a45264d4844294645414bbf693c1d0f0d0a681815128a1f1b1784221e1980221e1a7b231f1a7724201c61221e1a5d221e1a59221e1a7227221e7c27231e6d26211d6f27231e5a27221e4e28231f3828221d25231e1a1c1f1b1624201c1715191613161713113a25201c542b2621772b26227a2f2a267c312c287936322d8e3e39348a403b359d47413ba44a443eaf504a45bb59534ead57514da358534e98534e4a8f55514baf615d55d3706b63b0736c64716e676035524d47344a46402b3936321c1716142524211f42433f3a5355514b777069638b7870687f726b635e676057786f6760696a635c58635b5261615a506e655f557d6a645c7a6a635a79655d58926a635ca97b746b8d736e65ff37312bff3f3730ff4f453bff26201befffffffefffffffefffffffefffffffefffffffefffffffff463d35fb5a5653efffffffefffffffeffffffeeffffffeff463e35ff1d1915ff352f276e1a1612181a17121913100d4c1b181487221e1a9929241f982c27219c2f2a23902e282397302b2598322c2781302a25732e2823732e2823682d27227a312b258f342e2890332e2893352f298c352f2a8b37312b8337312c7436302a63352f2948322c26332a25201f26221d2426211c49f3712e45a6491f48411c0c3f4a210d4358270f37612811517f3b19709849224e923f19388b38107ba1411787803718b04c463fc34e4841ab4d4640b0544d46bd5f584fa25d554daf615a52b6675e57a26058529a605954a0706862ad7269639268605a916b645daa716c63b8716c65cc837d76a07d756e69756d65385f5a5325544e433359524c2946433e24373430181c1b1821393530325b554f4b7971675c88817679a2958d8fada09689a1948b7f91877f507b726673887c72798a817766847b71587a71665c7d726657736b5f62756e637a877d716f82797171847b6f6b7a7069777870688f807970988d857b848b83797a847c718aa8a095ffa1948dff443d37ff564c45ff665c52b23b3631c03d3833c33f3a35b03e39349b3a35308d37332e9239352f8b38332e8938332ea43e3934b2403b36ac403c36d247423ba73f3b36ae423d38b0433f39ab45403a8a3f3a3583413c367b413b355a3d37314335312b282d292421292621272a262138312d272f2b29241924221e0d1b181616201d1a302e2a275739342f663e39348c48433ead494440b64f4945ba544e49b854504aac534e48b155504aae58534cb85a564fae58544d9756514c9557524d9c5a56508957514d8355504c8954504c8d55504c8956524e875b57547755514f7d5a56518e5f595678585350745953506f55524e7f565551835655518b5b58569163615d735f5d58505f5d573054514c1d4c4a451e48463f294d4b46283d3b372f3c3a372022211f160b0b0a1c100f0e2a1b1b194033322e4d3f3e3b544c4b4759ce824c67201c18661f1b176c201b176f211d187c221e1a7f24201b8126211d69241f1c7026211d5a221f1b6327221e6f2c26214625211c241f1b1722211c18181c1814191714111d1916124425201b5f2c26215c29241f652a26225c292420572924205e2a2622712e2925752f2a267434302b86393430923c373295403a3588403a36b1504a45ae554f4bdc5b554fe9605a55aa57514d5b46403b34433d362c3e38321b262320281c1b18382a2824413a363261504a4477605a577a6b645f776b655f7d6b665e7b6c665f7568615b5a615b525b605a536d6a635b716b655c62625b525f5b554e86676057956861599b655f588758524da75b554d9a6d67607f6f6a62ff4f4941ff38322bff4c4239ff26211cefffffffefffffffefffffffefffffffefffffffefffffffff453b33fb595552efffffffefffffffeffffffeefffffffff423a32ff1d1a16ff3e352da325201b6627221d762a251f802a25206e27221d7f29241f842c2621832b26218e2e28239d322c269e332d27832f292487322c268c342d277a302a256a2e292380342e28963b342e6c342f284a2e29232a25201b2827221e2b26221c1a231f191c1f1c171b211d182d231f1b52332d2651f7743157b354264f47200d5f5429125d5e2d1439652c114b7936175492441c5194431c388b381086a8451a79843816a84b443eb34e4741bd504942b4524a4395544d45a0595148bf625b52b3625a52aa635953df6a625ad86f685fb2655d5672544e493e4641392d4b453d284c453e2d463f3a19322e2a1e302d28332d2a2733322e293d423d3965665e55747e746c7f8e857c83998f85829e948983a1958c849e94897f948b8193a0938a63887f765b81766d5f7973695b7d7268728b80766e877e746a80786d657f766c577067617a7b736a888178707d766c6787786f68796b635d836b635d906a635b8a7d736b898c827678857d745978726bffd7cbc1ff5e564dff4e463fff655b51ad3a3530ce403b36c33f3a35c2413b36a63b3731b4403b35b2413b36963b3631973a35308f3b3631a7433c37c74b4440a344403b7c3a37324c332f2a2f29262126282521302c2824252724202325221e2021201c1c23201c1f23201d372a28235a3a362f7d433d379247423c9645403b9244403a9f49443ea049443f9b48433e8b46403b9047413d9a4944409b4a4440be534d48bf56504ba6524e47ae534f49a8524e49bf59554fb459544fb25c5751a55d585287524e4979504a45824f4a479656524e9157524e794f4a477a4b4744a255514d9f52504c8d4e4b48724d4a4743413e3b2b3c3a3421403d371f403c372445403c23383531172b2a26182826222b21201e382f2d2a35302d2a3a3c3a36604d4a466054514c6a5e5b576b605d5a685e5c58675d5b57655c5b566d625f5b6a5d5c567ace9b626a1f1b1779211d1875221e195f201c177f24201b7c25201c5c221e1a6829231f5426211c311f1c1824201d1831231e1a1315131027171412401f1c186827231e5f27221e6c2a2420722b2520692a25216528242065292420662924205e2924215e2a2521772e29256f2f2a26632f2a277d332f2b61312d2878403a344e36312c292d2a261b2926233533302c2936312b1722201c282724225f302c29893f3c388b46423e7a4b46427d57504b7959524f7e605955715c57537966615b836f68627e6c66607369635b6b655e55525e574e625e585271615b548a645c558057504a7b514c46774e4943a25b5650935c564f54433d393136322e2335302b283e3931ff5b544dff322c26ff473e36ff251f1aefffffffefffffffefffffffefffffffefffffffefffffffff403831fb585552efffffffefffffffeffffffeefffffffff403931ff1c1814ff3c342c9a27211c6427211c7829231e852b2620952d2822882c2721722a231f8a2e2923942f2a2496312c26722c2621692e28237e38302a70312b256a2c2721191d19163128241f442d28232727231d14191714261f1c183925211c5c322d26823430297936302a8339322b8e3a332d9a3e373152fd79324eb25123654e2711675328127a68331865713618828a4522649344205091421c3a88361080a7421a768f3b19a949423c9f49423c72413a33934f463e7f4c453c4937332c2c312e29172c27221e2724203d3f3a343248423a1538322c112f2d262b3c383459413d386e49433f98524f49945c5751835f59538568605a806d635a796f6760908c817a92978e8683938a808b938a808e8e857b89857c73837d756c7a746d647e7b72676082776f547f76695b726a63637770677480786e837e746b8a7b706983756e6668635c565c5d564e8a70655e79665f587a6e675f515d554e3047423c20403a3422403a3328443f37224c453b174a423bffeadbd2ff746b62ff4e453eff635850bc3d3733b83d38339738332e933a352fb2413b36a2443f39923d39318c37342e332a27231a211f1b3c2d29255b35312d3a2e2a2718201d191a1b1917221f1d1a3425221f54312d28733b3731903d383296423e3892433d38b049433dc14b4640b94c4640bb4c4741a748433ca147423cab48443da248423da048423dae4c45409348433eb55049449a4a4440bc514b46bf534d48bc554f4aa6514b47994b4642a64d4944c055524ca754504a6747443e8c5b544d83544f4955413d393a3835322634322e15302d28102826241f302e2b323f3d3829423d391634302c0e252320132b2a252d33312e54383733683f3d3a864a4946954f4e4c8c504e4c7d4f4d4a7856534f7358544e745c58516a585551725c5855745f5b5769595854655c5a566b605f5b6f65635e776e6a666a6b68646a706c668cd5b2756a1f1b1880231e1a79231f1b50211c1746241e1a2d1f1a16191c171330201b17201a161222151310531f1c175a28231e6025211c5b25201d5e26211e6b28231f5926211d5725201c6e29241f6c2a25214924201d5426221e5f292420642a25216e2c27237d322d28532f29253d2a262125211e1b171c191625221f1b242a272117211f1c202c292570393530ad4c4741954a45407e4a454193564f4b9459524c8b58524b7f56504b7c57514c7558534f6e59534e6457524d77615c586e655f5a6c625c5678635c54745f564f5c4e4843694d47417e524c46784f49436249443e3435312d2236312c2a312d2a2f322d2a18211f1b191a1916512d2a28ff69625cff58514bff342e28ff423932ff25201befffffffefffffffefffffffefffffffefffffffefffffffff443b34fb585553efffffffefffffffefffffffefffffffff423a31ff1b1714ff372f29921f1b177128221d7d2a241f982e28228d2e282295302925692c2620582d26204f2d251f33241f1a1a221d182d251f1a3d27231d23211d181b1916122d221e195f28231e62312c276d332e2872302b2673322d277f352f2a8036302a9239332c73342f2873332d278539332c933b352f55ff7f3153b856235348210e635227116564311574763c1d85894523809f4f27649848203a87340f7db4491b66943b1743322c261926221d17221e1a2726221d39342f2823302a241224211d1c2b282331413c35904f4942be605951cb716b62845f58539167615a9d7168619a6e655e90665e56936f655d8f7066608b6e655f806a6259826c655e8c766c677b736b63766f666095736e68866a635c705c57507b615b5583665e5771645d537b7b716655685f5a65655e57625f5951776b625c6b645d5660645e564355504925413d381c413d3723433e372038322d293d3734172d2a2519211f1c1c1e1d1a2c2825225c403c366c59524bff6d655fffa89a92ff82776fff474039ff5e544c5c312b273a2b26221f25221d21241f1b402c2823492b29242a24211c1a191714201a1815382723206c2b27246b36322d8b3e3a358d3b373280373330913c3833a0413b379b403c36ab433e39bb48433d8d3e3a348c3e3a3595413d38aa45413cb749443fba49453f97443f3a7b3e39357c3e3a3584403b378a423d39b24e4844a64c4641a94b4641bb514c47eb5d5650c158514c91504a4385514a4463433e394e39362f242d2925152725211524221f1f24231e3434302c2f35302c1a2e2a2710252220192c2a25233b38344444413d8a514d49a154514ca557565286524f4b644f4b486f53504b775954507f5b56527f5d58547e615b557c5f5a547e5f5a57725d59547b64605b706460596f68645e6e6c6763676f69646a74706b5b706b68797d7c79687c7773677e78745d78736e637c767167d89e63431c1915261b17121e1a1712201b17131a15120f2215120f4a1e1a166425201c8227231e7127231e5c25211c5d24201c5e25201c5f25211d6125211d6427231e5725201c5825201c5124201c5726211e5e27221f792925217e2a25215725211d171d19161a1d1a161d1e1b181e1d1b161d1c1a1630211e1b502c29256737332e97433e38a84b443eac514b459f524c4793504a459a554f4a9d5a534d8d56504a81544e4976534e4874544e4b7658534f7258534d7d5c57517056504b7b59524e78544e4780565049644c45403f3e383326332f2a25322e2820292621151f1c19171816137c24201e8d2f2b28ff423b37ff4e4943ff625e58ff69645dff605750ff655c55ff463d35ff483e36ff28221dfd3a3531efffffffefffffffefffffffefffffffefffffffff433a32fb585552efffffffefffffffefffffffefffffffff3e372fff1c1714ff312a249f201c18922a241f5324201b3a231f19211c1914251f1b1623201b17281f1c1719191612221a171342221e1a5f2c27218b302b259a342f2896362f2989342e286f302b246c2f2a2484332e2877322d277a332e2877332d288336302a8337312b6f332d2770342e2966322d286f342f2961ff843855b75523604b230f88582d166e66321777753a1b7a84401f618e411f629746203d89361072af471a70a6451b19231f1a2126211d352e2923543b352f6e453d3795524941b85a5149c160574ece675e56c1665d55b0665c56a3655c5598645b54b270695fb4776d63bb7b7166a272695fa0706861976c655d8d645c56895f575397655f588c625c55936a645d8a6a635c75615b5472615a5474615b5571625b537268615867655d564a5c554f345249431f423c361a3e383020423c341937322b192b28241125211d171f1d1a19201d19282924208c35312d9445413cff534c47ff635951ff726a62ffa0948bff948881ff8a8179ff80736bffc4b3acff8e8178ff544b44ff62574f1a1c1a16221d1a173923201c5b2e2a256f342f2aaa38352fb83e3b34b9413b35ac403a35a9403a348a3a35308137332ea33e3a369a3d39349d3d3935963c3934963d3934a1413c379c403c36a0423e37893c39338c3e3934893e3a35813c38348c403c3795423e3891413c38a347413db9494440cb4b4743d84e4a45d04b4642ab443f3a332e2a271525221e20272521262a2623322f2c272e2e2b252c2e2b251b2926201a262420232a26233633302b52403d376e48443f714a464288514c49a55a5450a05c5752965a5452935a54518d5b55527e57504e72534e4b6b514d497656514e805a5651815f59548d675f59836b655d86716b677c736e677c77726c7675706b7a7f7a7471817a7581908a82798d877f778a857c838d86806c7b756f606b66626468625e60615d585e5c59545857524d7dceb069100f0d0b1a120f0d361a17134d221d197627221c7526211b7125201c59231e1a7e27221e6726211d6024201b6a25211c7127221e6327221e6526211d6727231e6b28231f842a2521942c28245925221e321e1b17261f1c18181c19151a191512351d1a1642221e1b71292421642e2a247a322e29762f2b27802f2c2775332e2a6f35312d853e3a348d46403b9d4f4943a0554f498a514b4694554f4b804f494582554e48915b554f8f56504b774e4944975a544e74524d485546403b353b38333a38332e2c38332d1e221f1c161c1916241d1b17cd312d2bff3d3835ff47413eff4d4743ff625d56ff6c665eff7c766dff858177ff5e5b53ff494640ff46413cff786d65ff4f463cff50453cff26211cff1f1a16fd393531efffffffefffffffefffffffefffffffff443932fb5a5653efffffffefffffffefffffffefffffffff3d352eff1b1813ff2b251f761e1a161f1b17121215130f1314110e211916123b231d19552a2420792e272391322c268c312b259d342e276e2d2722742e28239d352e2892352e288c352e2979312b2688342e288b342f297f342f297f35302a8938312b76332d278f39332c933a342ea33b352fd9454039c33f3a3466ff853c6cbe5f2a5f4b230f815c2f1767632f1579753a1c687b391c799c4f2a6f9a4922458b381162a641176ca6431aac4a423bac4b423ca2484039b14b443ca049413a974b423b8848413b9a504a43904f4942a65a524baf615952b5665e56ad625a52a6615a52c36c655db96c655ca76d655da46f665ea569625aa1655e58905d58507f58544d7e625b53836c665e65655e574e59534c2e4e49422e4b46412a453f382d49433a1f3b352f1827231f1625221d24272420262b28232f302c26d33a3733d6514b47ff5c5551ff655d59ff69615cff766c66ff70675fff695f58ff6d635dff6c625cff676059ff4b4641ff45403cff373432b76c645efff1e0d2ff8f807aff60564dff63584fb03d3832b83f3933cd423d379337332e8c38332e9d3a3531c8423c37cc433e38a23e3733ad403a369d3c3833b0413c38a93e3a36b7433e3aa3403c37a4413d37ac423d39983e3a35a3413c36b746413bb946423bbd45403be84f4c45ef58554fe64b48439a3f3c375b302e2934282621302926214233302c322f2d281f25231f17201e1a1f272520352b2723452d292551312d2a703b37349d47433d9b4f4b45be56524bc556504bba524e48b14d4a44c053504aab514d489c504a47874a45427848444088504c49764e4a4777514d49815b55527f5d57537e605a567b605b567c625d587b6a645f9279746e90807c7783847f778a958f8783948d868789847b8a7f79737978736d6c6e6a636867635c65625e57786a645e5c605c564a534f4b3b46433f283f3b37233b3935273735312736332f74c1ac635d211d186d211d1863221d1971241f1b63221e1966231f1a5d221d1964231e1a6925201c7426221d6e27221d7629241f7028231f84282420932925205c26211c2b1f1b17241d1916211d19161b151210271b181563221f1b8f2825226c28231f6b2a2622722c27226d2c27247d302b2668302b27692f2b275d2b27237d312d29823a3530863e3935a24c4540954a443e894d474199534e48944f4945884d4643a55d57517a4d47424237322f3333302b553b3732252d2a271d1d1b18381e1c1a732c2725ff443f3cff3f3b37ff47423dff4a4641ff6b665dff7c786eff8b867dff5d5a55ff54514cf04c4a44f343403c572c2a276d36332f9145413b87524e47ff726860ff50463cff4d4239ff26221cff1f1c19ff201c19ff201c18efffffffefffffffefffffffff423a33fb585552efffffffefffffffefffffffefffffffff3f362fff191612ff332c25a8231f1a55241f196c2a251f852c2720702a241f782d26218e2f2924732b2621782d28227e2e2923822f2a236e2d2722802d282388322c2692342e2891362f299036302a9f3a342d9839342e9438312bb83b352fd13e3731a338312c582e29222925211c25221f19342a25202526221d56f3723177c565306c48200f594d230f5d5e2a127474391c587c3a1b809f512b6c99482150913d144d95361371a4441ca3463f378c433b359947403881413a33a048403a9d49413b9f4e473e9e524a439f544d46c1605750a95c534ca259524aab605650ab5c554ea3575049995b544d895e554fa672696084675f574647423c34443f38313f3c363a3d3a344749443e223935311e25221e1c221f1b2b2b28244b342f2a65463e38ff433f3cff5e5955ff5b5852ff66605aff6c665fff6f6963ff6f645eff726960ff6f665fff7c716bff4f4948ff4a4442f145423df33d3a365b3f3a377446423e6c48423e7e524d459068615b61554f49325d584dfff6eee0ff93867dff61564eff63584fa33b36319e3a352fae3d38338836312c97393530a73a3530ac3e3833a63d3733bc423c37af403a36be443f39d24b4740b6443f3ac546433ec645403bed4a4641f64f4b45e348433ea53d3834502f2b251d26221e2423201c432f2b2645322e2926282520141c1916111a181622252320582d2b277234312eb3423e3bd14b4743b7494541a447433da749443fc0514b46c0524b45b9514a46c1524d47bc544f49c556524ca54e4944a84f4a43b04f4b459047443fa34f4a45ae534d49a7534d48954e4a4589524c497c55514c9b635e59a26f6963876f696487746e68786d6861816c65617e6b6760836d67627169655f6f66605b7268645e82726e65656460594b504c452a3f3b37273b38332b3634303333312d3a33312c323b38341e2c2a271e201e1b181a1916281c1a182c25231f452b282485c2b46263211d1863201c1866221d196e231e1a5a221d185f221e196a24201c6a26211c5b24201c6b27221e3924201b2a221e192d201c182c1f1b16261c1915331815115e1f1c187623201b8a27231f6b27221e6a28241f732824206d282420722b2622712c272264282420622a2521772e292570302c276d312d287c312e2983312d297e37322e6635312d5736322d5839342f4c3b363034322e2a2923211e2725231f22292522252a272231262421883a3631ff57524dff4e4945ff504a45ff5c5550ff6c645bff79736eff76706aff736d66ff53504bff4b4943c0413e395c322f2a9c4f4b45d2635e56563a3631503b38342833302d2632302b362c2b26271f1e1cff756c61ff574a40ff4d4239ff28221defffffffff1e1b19ff201c19fe2b2722efffffffefffffffff453b33fb585452efffffffefffffffefffffffefffffffff423a32ff1b1714ff38302a95231e196527211b782b251f752a24206e2a241e7b2c2620892f2924792c2722682a2520732c27228a302b247f302b257f312b2674302b259436302a67302b253f2b26213328241f2d26221d3527231e3929241f3527231e26211d19341f1c18602926207d2f2b269534302aa53a35304eed722d59b2542542421b0c554c220f505a281153692f155579381a659449226f9b48214d8e3a1367a7431a649c4018ae49413a9b46403997474039a44c443daf4b433ca94a433c9e49433b8a4a423d7949423b6d48413c6a4a433d664c453e59504942353b363123282521242b2822242f2b2521302c262436302b2b302c2734302d287445413a903d39339f504b43ff56514dff68625eff66605dff746b66ff7e736cff787269ff82776dff837a71ff726b64ff716a62ff4c4542ff44403ec6423d38c845403b6a4d4941ac746d64ca837b72785f58524543403a474c4741213b37331e3735312136342f2b31302c2e36322f282926232344403affeee3d6ff8d8075ff61544cff6458508835302c9637332ead3d37329e3b36319a3a35309d3b3632943b3631b3413b36bd423c37843b36314a302d293a2c29252b2825213c2c2a25412c29254a302c274a2e2c272223201d281f1d1a331e1d1a642a282482322e2b9d383530b83f3c37c746433eb548433fa146413da8494440b84c4741c24e4944b54d4842b74d4843bf514a45c3524d46c1514b46a64a443f9e49433fb04e48429a4a433ec2544d48c356504caf514c47af514c46ab504b46b0534e48c058524dbf5a534eb3534f4a9d494641874d48446c4d48445a4c47425c4f4a465a514c4853524d4845494540313a363226322f2c1e2a28241f2a2824222b2a251e2a28241828262322302c27252825222d262421352726226e3c3a355d3b38329237342e9d413d38f7494542ff4f4a48ff5c5754ff646160ff635d5bff67625fa6d0bc6a68201c1875231f1b7825201c7827221c5e25211b4d25201b40241f1b29211c182a1d1a16261d19152b1b17133d1a161266201c196824211d8326231f7d28241f6b27231e5e26211d6527211d6627221e70292420732b2621682924206d2a25216e2b2723772d2824622a25216b2c2823672e29245e2e2b26512e2a253f2925212b26221f23211f1a2224211c2224201c1c1d1b1723181613b33f3a36bb635b55ff7d746cff6a625cff69615bff726c65ff827d78ff807d78ff6e6c67ff5f5c59ff5753519b423d389b433f3b6f413c37754a453d593f3b353a36332e3036342d45423e38292725222f2a28233a2825235932302d703a39335b3f3b376a48453fff77706bff544940ff4d433aff26211cefffffffefffffffff201c19ff221d19fd383431efffffffff443d35fb585552efffffffefffffffefffffffefffffffff423a32ff1c1814ff342c26931e1a167a2c251f7c2b25207e2b25208a2f2823933029249a342e27752f292478332c265c2e28225f2c26213128221d2a211d193424201c2f24201c27201b172a211d1838201c175f26221e612b272279332e289f36302b9937312b9a3b342e8b3a342e8639332d7b37312b883a342e3fe16c274fa64e215247200d4f4c230f4e57261159692f155d78371a3c7c331569994820478b38125ba4411759983b1794443d3691453e377f433c3577443c3671443b354637302a34302a25242b27222429252131332e28232f2a262526221f1c221f1b231e1b182e24211e482d2823be4c453fc6867b71ff988c82ffc0b1a6ffc6b8aeffc4b7aeff9e9188ff90867dff928982ff948c87ff6c6761ff67625eff544f4da6524a44ad534c4684535048855d585081635d536d5e564e4b4e473f34443f37243d383129454039344c473f23322e29292a2723332b29243a2a26234f35322e68413e3a74504d465b4d49447b55524c796d6761889e978cffb0a091ff6d625bff60544dff5f554c9f3f39347738332d7d332f2b4c302c27322a26213325221f422a2623402c28253a2824212a221f1c28201e1b3922201d4e22201d772c2a2776302d29923c3833b83e3936ba423e39cc46413cc848433dac45403aa8443e3898403d37a2443e39b047423dae48423ea045403cc14f4944bf514a44b44e4942a44a463fa94b4640b6504943b6504a44b2504a45e45a544eb5504b469e4b4541a54b4541bb504b45b04f4a45ac504a46a44e48448548423d854b463f844e47426647413c423a353132302d2a252b2926222a27231f262421322f2c28202926231d201e1c1d23211e1d1f1d1a241f1d1a2c23221f39282624492f2d28c0302c29c43b3734c94c4844ff4b4744ff57524eff595451ff5e5954ff5b5653ff55514eff5a5753ff5e5c56ff5e5f59ff5a5b56ff4e4e4aff484846ff484747b8c8c46a5a231e1a5726211c2d211d18181b17131d1c1814261c191526181512571b181483211e1b8a25201d60231e1a6525201b4e221d1a6025201c6927231e7128231e6b28231e6426211d6326211d7128231f772a25206c2925206229241f672925206a2c2722622e29244c2c2823392924201e221e1a23211d191a201c18191714131512100e2a181613f84e4842ff5e574fff726961ff776e67ff79706aff86807bff9f968fff6c6662ff65605cff585552fa4e4c488f4c48416849453c975f59527f56534a3a3c393237403d3548444139292927212a161513402827245533312d7745443e7b54524d6d56534d8566605a7c5c585178524e4983514c477e4f4b45ff777065ff554940ff4e433cff26211cefffffffefffffffefffffffff1f1c1aff1e1a17ff221e1aff3c352efb585552efffffffefffffffefffffffefffffffff433932ff1b1713ff2e2822931f1a17732b251f732e282275302a25542b251f2d241f1a171f1a161f201b172b231f1a2d231f1b1c1a1613311f1b176324201c882a2520a2302a258e302a26712f2a2479322c256e2f2a24632f29237c332e288136302a8f3a332c973c342d933d362f7e3831298e3a342e8a3a342f57e2722f479d4a1e5a47200e514c210d5a5f2d155f6e34174e7a381a2b7f36135891411d4a8d39125ea5401756983d16292a26201d28231e292a241f2c2b25201a27221e1517141216171310281f1b163424211d692f2a25f95a514bfa887b73ff908277ffa29487ffbcac9effcfbdafff90847cff99918affa39991ff928a85ff5b5754ff55504dff474340a46763579c68635880686256a383766bb48c847b716c655c2e49433b2948443c2b4e4a40394d49402b3c372e271a18162f24211d3f322e2a40332f2c63433f39854c4b467f56534e72504b4767514c467f615a557a5d585284615b578965605c83625b578f6a625f78645f598088837bff928277ff5b5048ff5e534aff645852412d29243026231f191c18161a1c191642201e1b6d282421912d2926be38322fc63b37339f38342f8837322f963a3531a53f3b367c35322e8e3a3530a23f3a36a0423c37aa443e38b947413acd4d473eb348423c9c423d37a4433f39a5453f3bab47423cab46423cc54e4944cc514b46bb4d4843b34c4842a247433eae4c4741b44e4841b74f4944a94d4842af514b45a5514b45924e49447f4a44405a3d383432322d291e2a2724202d2825252a26232d2a2622232b272318211e1c1017151216141210231816132e1c1b193722201e502e2b25bf312f2df9312e2dfa695f58ff67605bff534e47ff524d46ff55514bff58534eff615c59ff585551ff5a5a57ff5c5956ff5b5955ff484644ff43413eff42413dd53c3b377f403f3878403d37603f3d376b4a443d6344403c7c5b58534a44413a53c5a3571b1714111c1714102316130f3a1c18146d1f1b178d26221e60231e195d231f1b6c26211d5a231e1a6626211c6824201b7127221d6d27231e7728241f6d27231e6227221d6428231d792a251f712a2520622a25204427221e3326221d2d231f1b24231f1a28221f1b1c1c19141e1613105a191513c424201dff37322dff3f3934ff4b4643ff5c5752ff726c68ff7d7874ff64625eff5c5956f5585451e058544e8e534e459a5d564d8b5a534d7a524d4644433f3934403b353d3a3731312b29252a1715132521201c2834302b313b37305958524a6f5c554d6259554e685b554e80635f577c615d556a59534d7c59554f7e56514c7a504c477d524d4780514d47ff756b63ff534940ff4c4139ff28221defffffffefffffffefffffffeffffffffc464341ff1e1b17ff1d1814fb585552efffffffefffffffefffffffefffffffff453930ff1d1815ff29241f6c1d19161b1d1914221e1915231e191416181511251a17123e201d186425211c8f2a2621a9332e27752d2722792e29237d302a2589332c27742f29237c322c2586342e2787342e2788342e278e37312b8e38322c8b38322b8c3a332c8e3b352e8339332c903c362f863c362fa2413a3342cd5d24449c481c4b461f0c34471d0b3d57260f3a642b11306f2e1239833a18318235133686340f52a740165f9c4118221a17145a211d196d302a24b1342d29ff48413bff595048ff60584fff6c635aff756c66ff7d736aff766d63ff756d66ff78726cff54514cff504d49e0514d47e5514e49996a62579e736a5d9c766d62816f655c6c625b5441534e45284b453c2549433c3048423b4045403a292926222a1c1a1821211f1c2633302b2b3b37302f3f3a3247524c45645c544d69564e475c58514a665e58516b655c547c6a635b7468625a63615b5465645c567c6a635e72665f5b866a635e75635e5877665f5a8068615c69524e4b7c7b7671ff918278ff5d524aff5c524aff63584fb134302dd6403c36a03934309c39342f9038332fad3e3934b0403935933935309238332ea63f3933b5423b35a83f3934a83e3a35b7423e39a8413d38b2443f3aa7433d37bb49423cb146413aac46413ba845403ab245413ba345413bc44c4541c54c4741c14c4540af49443fb04c46409548433d70403b36633d39344f38342e39302d29262b28252e302c28322f2b272e292623332e2b271a22201c1c191815201917152d1d1a183e24211d6f27231f7f2d2824ac3a3531ff322e2cff544e4bff5a5651ff5a5551ff5e5954ff615c58ff625f5dff5c5754ff575451ff575252ff5b5656ff575452ff494644d643423fd942413c673937326c3c3a346c3e3c356c43413a6143403a5646423c5147433e3e44403a2c403e371f3a3631223a3632273835302e37342f2f312f2a2522211f2c201e1b4bbd9147751f1c1774211d196e26201b6a241f1b8027221d6625211c6b25201c7426211d7526221d7927221d6b27211c6a27221d6a27221d6227211c6527221d6628231e5529231e4427221d3726221d2b221d19181d1a161f1a17141d1513102d161412a7201c19ff27221fff27231fff312c29ff36322dff474441ff4b4743ff55514cff494542ff474542b4393633642c27237037322c7c47413b5b433d3948413d3847453f383a37332e3d24211e2a1917142624221d27332e293b443e384c4f4a416b55514a6959554e675c554d5f58524b645a544c705d58506156514b6c5b564f83645f578e69625b94605b538e58534d9658544d8f554f4b8e57524c88534f49ff71665cff574c42ff51463bff27211defffffffefffffffefffffffefffffffeffffffffc4b4846ff211d1afd37322fefffffffefffffffefffffffefffffffff473b31ff1c1714ff302a2587221e197a26221d7e26231e8a2b26218d2f2923812f29237d2d28237d2e2823a7352f2981302b247e312b247b3029249c342e2792332c26a937312a8c352e2789352e2784362f28903831298a37302a7c3730298238322b893c342d823c342e753d352d5b38312b523530293f312b2656e4702d55a84f21454c210c414f220d3a5a270f35612810377131132c7933133b853a163985351057ac45187ba2441cff4c443dff4a423bff4b423bff4b433dff57504aff49423dff4b4741ff36322fd03e3935b53a36319640393575433b34864f4b447f584f4759504a42464d484136504b433a514a413445413a3e35302d332824212823211c262825202838332c253e39323649423b47514b43545851476d5b574f6c5c564f635b554f5f5b534c58574f4a5a58524962605a516a6861595d655e57626b635a74736d647c7b746b7f7c746a8d7d756c95797068866e67638d6e6861946e68618668625b8969635d82625c58775a5550827d7770ff948478ff61564eff61564eff675c51c1413c36a73d3832a33e3832b23f3934a53d3732cb433d38bb413b35eb49433dc4433d38a43f3834b0403a35a5413b35be463f3aaf443e37b2443e399c413c35a3423d37b446413ab2464039a3463f399a47413981413c366b3c3732593a353144332f2b332c282329272420242a25221d24211d25211e1b1e1f1d19211c19172b1c1a183d211e1d59292623a82a2723b32f2b28bf534c47ff514b45ff5b544eff675f58ff655e58ff675f5aff615b56ff605c55ff5d5955ff585655ff4d4c4bff4c4b48ff464645ff393737be3b3836a635322f7d36322f5a36312c5637332d6243403b5d46403b433e3a35373b3833333b393429403c352c3f3a342f3c39343534312e3a2b28262d2623212824211e2925231e26312e2927393430243c383233433f39414c484246504c455757524c6256534e58cc945070231f1a70231f1a7225201c61221d1962211d1963221e1a7626211c6a26201c5a241f1a6426201c6027211d5d28231d532b251e37241f1a201f1b15201e1a151c1b17121e15120f2914110fdf1f1c18e3221f1bff26221fff26221eff272421ff292623ff2d2926ff2b2725ff2d2a28ff34312e7b221f1c82272320732d272269342f284d343029292c282236342f293836302b30161312291c1a172c282521403b3630614c464178534d4670504b43725550476156504960565049715a544d7a5c5851735b564f6c5c564f6f5d57506d5c57507d605b5381615d548f6862599f6c665ea46b655c9c605b54a25d58529759554e8e59544e875b544e875a5450ff5a4e44ff55493fff51463dff28221eefffffffefffffffefffffffefffffffefffffffefffffffff473c33ff1f1a16fe2d2a26efffffffefffffffefffffffff473c34ff1d1814ff332d27b129241f90302b25872e28238e2f2a248d2e29238a302a25822d27236b2a24207a2d27227a2d27218b302a2396342d277f312a24712e282379312a2487352f287e352e2775362f287f3d352c633831293f2d29232427221c20231e192926211b1e221e181d1c1813201915132d1b181445d5622642a4491c4d59270f4557240e3b5d290f3a652c123a6e30143878341641823b163882341052a8401678a0441bff2b2723ff26211f9b302c26a7342f298436302a9f4138318d41393176403b333e35312b24312d262f3a352d4a4b443c2f2e2a232c1c1a1727201e1a2a2a28233139342f434c463e5d5c554e76665d5577655c5479645e557f645e555f5e574d5e5d564c5f5c574e675d585076635c5474655f5771635c5668635b546062595166655b5468656057696a645b7c7c74687b7a73677d7f776b8680776c97867e7599837c709481796e8e736d669b766e69956f6962846b655e846b665e77665f5871615a5674635c578e88807affa29285ff6a5e55ff665b52ff675b529737322da239342ead3c3631c6433d37ba433d379f3d3731913b3531943b3530a73f3834963c3632a8403b35983d3933ae46403895443e36703c362f452f2c27282825202124211c2523201b3128241e2125211c1e1d1a161f1b1816251b1816311e1b183c201d1b4b25211d732f2d28e72b2825e95e5650ff5f5751ff605954ff6a625cff6c625cff695f59ff5c5852ff58544fff58534dff554f4aff46403cff35322fff33302eff2f2c2aa93b3833b23e3b35963937329b45413b89433e397a403c356339383343363430202d2b2622302e292734312b37413b363135312c3124211d271b1a1727211f1c242a28242a34312c353d3933434a443e54524e495b545049715b554f6658524c6958544e6d5a554e6357524b5957514c4f544f485556524c5a56524d605a5652695b5754675c595569ceaa5e62221d1857211c1867221e1a6524201b62231f1a5d231f1a5325201b44241f1a261f1b18211d1915291f1b17271e1a16231614103e12100d67161311ff211e1cff231f1cff231f1cff23201dff24211dff25221eff221e1aff24201de7282521d32b26234f1a17158727231e6423201b3d1d1b172e1e1b182c221f1b3025211d2f181513251e1c18292a252235312d295a443f3a764c4740704b4741794d48426e4c48427a514c4679514c4678524e4669504a44624f4a445d4a46405248433d7258534d725a554f765b5650785e59528f655f589468625a8d69625b8766615a8f69635c9866605a9f655e58b16a665de3827c72986f6c614657514828413d36ff4f453aff554940ff554940ff26201cefffffffefffffffefffffffefffffffefffffffefffffffff433830ff1f1b16ff201d1aff1c1813efffffffefffffffff4e4136ff1d1815ff322b25c026211c8a302923702b25206b2b25206a29251f822e2823812e2923792e2923742e2923772f2923622d2721602e28224d2c26213026211d2c241f1b2925211c2d241f1a3325211c22211c172018161224171411471b17145b231e19ff282420ff403833ff3f3831ff413832ff40383250da662c64b95727495f2a0f696f371842652c113e6b3215396f331542803c1947813b1a337e33106fbb501c579b40175b29251f3323201b2c25211d2b28231e3a2c2722332f2a242e25201c2628231f292e2a252b38332c353e393357514c44695b554b7d5f584e6d5a544c756059527d635b5474605a5379635c537f655f567d645f5779645f5677655e556e625c5564615a515d5c584f505953495c60595168655e5868615a546f675f5968635b566e6660587e69635c837169628f7f766f807d746d8d817a717e7d746d7f7e766d8b7d776d7d746e667267605c8e767068b18b847aa48a857a6873706632665d522f5a554d0f3c38310e3f3b33ffa9978aff675c52ff675b52ff675c538d37332d9e3c37318337322d8e3e38317e38342f6535312d402d29243a2a262223231f1b2c28241f2c24211d2f211f1b35282520201d1a161b17141223171513321d1a16521e1b186c27221e9134302bff2f2b28ff5b5450ff5b554eff5f5851ff675f59ff635b56ff625b54ff514c47ff4b4842ff46433eff47433dff45413bf4302d29ef2f2d29ef2e2a268c37342f7e33302cab403b36fc5a5750a83f3c377734322c452a29242e26242028272521272a27222d2b29253c31302b2b2d29252e25221e2825221e2427252126302e292736332d323d3a35494b4742544d49435d4e4a446f544f485e4f4c45675350496b534e4966524f4a6553504b6c58544e705b5851735c58516e5a56516958564f6b59564f5c56524a5a56534e5856514a4f514d4850504d46454d4a435455514c6058545268cda65e421e1a1540201a1637211b1736211d19291f1b171a1b18141a1916110e110f0c1d12100c8c191612fc201b18ff231e1aff211d19ff201c19ff23201dff201e1bff1f1c1aff1f1c19e71e1b18b81e1b185e1b18155d1d1a17491c1a16341a1714241815122f1e1b17391f1b17361e1a16291c19163326221e442e2a256337322d683e3831673d39316d433e387a49423d6e49433d6c48433d6d4c473f704d4741674c47407b534e496f4d48445f4b46436d4e4a446e4d4844774f4b4678524d48885a57507c5b5650715b56516e5b57517b66605a716d655e73756e64626b645c4a57534c2745423c21413c35223b3833192f2c2816252320121b1917141f1c19ff56483dff54493eff54493fff27221defffffffefffffffefffffffefffffffefffffffefffffffff473d34fb585552fc4d4a48ff231e1bfe2f2b27efffffffff473d33ff1d1815ff2e282399241f1b5626211c4e25201b4d27211c4628221c4428221d4127221d3026211c2a221f1a1e1f1c171c1e1b16161715110f13110e1b15120f391a171395201c199e2d2822ff312b26ff3e3630ff3f3731ff403832ff37302bff36302aff322d29ff282522ff282421ff231f1cdc24201d4bd8652a5bb95524626d31137573361758713515456f33153c7137173f783917397b3916327b331075b64b1c649e41192927231e2c2f2a243937312b503f38316d4941398a534840814e463e7d4e463f76534b417b5a5249805b5349785c534a7a605a506d5752496c5b554c78625a516d625a536a615a527e67615976655d576e625c555c5c56506d645e576a635b556e655d5677655f5874655f5870655d587b68625a7468605968645c5667685f5b62645e576869625c697a716a5e7b726b658a80764f83796f40726b64335d59521c4f4c451a524f471a4a433c204e48401f44403814302d281126241f101e1c1a0d1a181519211e1a2c393732ffa89789ff675a51ff6b6056ff6a5f552823211d2122201b20211f1b1e1c1a1715181713101413101913120f351b191551201e1b8124211da225211ead37322cff393430ff4d4641ff554e47ff5c544dff5f5750ff534c46ff534d46ff504a45ff484542ff373633ff353330ff393532dc332f2cd82f2d28dd302d29a53c3733aa3e39359a3a37318535332e6a322f2b412623203224221f25211f1c352b2924352c29243e2a27225734302b412d2a252a272520292b28233034302c373936304d3c39345d46413b714f494273544e476e534e456d4e4a43614a463f684f4a4364514c466b524c456a4f4842614f4b4561514d485e4d4a45594d4b4460504d4664514c475d524d475c534f486d5856506a5a55506355524d5f534f4b50504d475f56534e6257544f5f57524e6458534f665855506b5a56516c5b5753625752506f5b575478d0ad6719191411131714101614110e19110f0d50161310c91c1915ff1f1c17ff211d18ff282320ff25211eff25221eff211d1bff1f1c1aff1b18168f1a1814771c1914611f1a165a1c1914341a1713301b1713341f1a172f171411281a17132a1f1b173824201b772925205f2a26215c2a25216a2a25217e302b267435302c6a39342e693f393478403a3567403c38844c4641844e48437d4e48438b534e4884524e488956514b8f58534d6f4c484471514c477e534e498d5b554d8b5e58518a6a625b8a7670685966605847696459224b443d234a464021403c37253b37311c27242014141211140b0a0826131210592624217431302d703a39337d45413c5f4a4540ff55493fff574a40ff534940ff27221defffffffefffffffefffffffefffffffefffffffefffffffff463c33fb595653effffffff3c7c7c6ff211e1afd34302dff413a33ff1e1915ff3d352d76231f1a221a1713191b17131a1c181313191612181713101814120f291715123d1c1815c91d1a16cc2f2925ff332d27ff37302bff39322dff3a332eff3a342fff342f29ff312d28ff27221fff26221fff1f1c1aab27231fad29241f802b2720862e29227329241e4e26211c37231e1962e770324aad4d1f5f7031146f793a19567133154e753917437034165180401a39793814347c341167b1471a4f963c168f423b3499423c34af4b443ca24f46408d4d453e844b443e7f4c433d8c524a448b5a524b7b58514a855b544c8e635b537d625a527b605950886660578b6a645c856a635c896d655f926f68608a6d655f68625d557468615a7f6b655d8c6f675d907269608c736c647e756d67868b7f7471877e7547736960417c746a2c79726516574d4414524c471f58524a2558524a28514a43183b362f1c2b272411141212110d0c0b1812110f34201d1a57302d2a713a38357b413f3c7049464180534e4960514c475355514b5568655dffa6988aff6c5f57ff695c54ff675d55401d1c184a23201dcd1e1b19d138332fff37312eff3b3531ff403a36ff413b37ff463f3aff47423cff47413cff46413bff46433dff322f2cff2f2d2aff2a2825c934312cbc34302acd38342da83c3630ad3e38329134312b762e2b264a2926213826231f2e24211d3a2825205635302b3329262234221f1c32272421232a26232b2e2a2630322d29413a37329243413aaa4a4740a34c47428848443e9249443f9e4c4741a34c4742b0504c46af514c479a504a457e4d4944794f4a446a4b46406649443e704b47436e4d4845684d4a466f534e4a70514d487b55514d7358524e6c57524e64534f4a6d54514b7d5a57517557534f775b5752795c575280605c567b5f5a55725a56515e55524d665a55506a5b5852715b58537a605b5583615d597e64605b7063605b6e6b666069716b625466625d64d0b766ff1e1916ff1f1b18ff1f1b17ff24211dff231e1aff211d1bff1b1815ff191714f818151392191613661d19159024201b75211d194d1c19152c1916122f1b18133719161243191511391f1b184426211c642b26215d26221e53241f1c5727221e5928231e5a29251f682c27226f2b27227b2c282474312c28883a35319b443f398e423d37894b453f7a4b4441764a443e7f4d474282534d488856504c7b524c488d5c565097635d578e7069638f7c756d606e685e3e625c541b433d372747433d3d48443d292e2b271a18171411050403241614133c24221f4933312d6735322e7c504c4781514d4875484540784f4b4666514d48544a46415b504d4653504b46ff584c41ff564b3fff584c42ff231e19efffffffefffffffefffffffefffffffefffffffefffffffff473c34fb5a5652efffffffeffffffff1dededdff1d1a18ff1d1814ff1d1815ff3e352d671814111c110e0c2f191612ff1e1b17ff322b27ff312b26ff332d27ff362f29ff3b3732ff37312bff332e29ff2b2522fe211d1bfa211e1bfa221f1c8028231e962e2924c137322bb0342f299c302b264a221f1b2c201b162f201b174228241d37231e1a3f221f1a4427231d3b2f2b2550d15d2846a9491e61713314557033145f7638165671341644733817366f31133d7b3a16327d34116aba4f1b5f993e179f453d37b548413990463e38a9524942c1574d46b4534b44a3554d459d645a528d635950885e564f745950488a615b5282696158816b645a886f675e8c6c645e786a605c897269638c7f766f9877706a82948a7f7a90877a6a8c82743d7e766a226b635a13544b441d544b4238625c53405c554e3146403b1d2e29260f110f0e10070706181816142322201e4536322e4c423e39504a4641964e4a457968615b7f69625c7b605a54765f5b536f5b555061645c58535a54504e5a5450525e5952505d58514759554f7077726affaf9d90ff6e6158ff6b6056ff6f6259ff403b36ff383530ff36312cff37322eff332f2bfe22201efb22201dfb1f1c199f302b2795302c28ce3c3833fd49453ee7443f39aa332f2bb03934314627231f28221f1a2b24201c3d27221f57322d273726221e3c211e1a4527251f3d2d2a243e34312c4f3b38306c474038a2514c46b1504b459a49443e9446423c8e4540399148433e934b4540984c47409f4d4a40994c4841ad534d469a4d4842b5514c46b04e4944ad504a45ae514c488a4d494492514c46a45a544ea65a544e9254514a8b56524c7e55514c7656514c6f534f4a78544f4c625049447b5956506653504b755c575370595650715a5650775955506d5853506b595350705a55517c6d6862725c59558c726e6a60706a65576a665e5067625a35605b5429605c5517534e4a0d423e3b12403b371946433e375c595238504c485ecac769ff1b1915ff191614ff161411bb151310c7171411721d191586211d196c1f1b17431a1712381b171330171411381a1714501b181464201c187f25211c8427221d66231f1a6b25201c6925211c7127231e7128231e6727221d6828231f5927221d5e28231f6d2b2721782d2823742b2722772e2a258638332e7a3a34308f453f398948423c8e544c467e534c48885c5550af6e655f9b776e6666655d564a625b5334524e45314b47403b4a443e3435322d23221f1c1e151312231211103e2523205636322f63433f3b744f4b4479514d47774e4a45724e4844714b4742754c4843714a4741754a474282504c475045423e564844405e4e4a46594f49455f534e49ff55493fff574c41ff554940ff231d19efffffffefffffffefffffffefffffffefffffffefffffffff4d4138fb5b5754efffffffefffffffeffffffff4bebdbcff2a2420ff1e1915ff2d2621ff312c27ff322c27ff38322eff2d2924ff28241fff1e1a17c11d1a17cc201c19822a241e942a2520a02d2823ae322c277227221d4b221d1944221e1a32201c18351e1a163c231f1b45211d195e28241f6d2c28238f352f299a38322ca13b352e82352f298537322b8d3c362f8d3b352e4fce592754b14f23596f3013496c2f12486d3013436b31133c6d3315236b2d0f31773613347d3511439f3e134c953c169b433c35b84c443db6524941ac534a42944e453ea95a514a9860564fa571655e926b615a82635b548470695f9a81796dad96897d8992897b587e756a50756d623270685d265f5a50285b564e3f6963593d5a544c35433f3823302b271b201d1a19151312201715142f2a2724483a3632594b46416559534e69625b54736a6259786a625c74615c556f655d5772635c566c5e585373605a556d5e5853705f5952705e585278605a55725e595347534e495559544f505a5450575c5552535c56514b5b544e605e5953576d6762ffb1a298ff6a5e55ff6c6157ff695d54a8322d28b835312cd43a3631e2403b36c63c3832742926225525221d5426231f3c25221d39231f1c3f24201c482824203d221f1c5027231f6e2f2b2779322f2a9b3a3631a53e3a35c145403bc148413ca0423c369e413e38af48423db149433eaf49443eb64c4740c3514b44bf504b45b94e4a44a44a453eaf4e4842ba524c469f4d4640994c46419b4c4841ab504d44ba565148c959534dc356514bb7544f48b2534f48ad59544db4625d55a8605a539e59544e7b514c458c55514a8b5a554f7c58524e825a55517c5a565165554f4c725c55516d5f5b556e625e58846b6660776d6862606b686043625d57344f4b45305d5a522458544b1b4a463f1e49464128504d473352504a344a4742303f3d37253735301e2d29271722201e181c1c1a1e1f1d1c292a28273f3a38354c43403d584e4b4766ceb762611b17134f1b1713591d1a15441b18142e1a16123218141137181511561d1a1672221e1a7724211c7424201b7125201b68231e1a7326211c7927221d7526211c59221e196525201b7f29241f872a25207d2a241f7129241f6127221e6328231f7a27241f842b27226d2a2622692c26227f38322d7d433c36a9514a43a2544d466c5b534a4a524c44374e47413c4c47414148433d323a3530221f1c19201614132c1c19174a292623633a3733744a4640764f4a4578514c47734d4944754d4a4481524e486a4b4742754d49436b4a453f744b48427b4c48437e4b494395514c47724a4640744a4641824d4944784f4b4572534d48584946425148443f71534e4aff52483dff574b41ff554940ff25201befffffffefffffffefffffffefffffffefffffffefffffffff483f35fb5b5754efffffffefffffffefffffffefffffffff423932ff1e1915ff413830bf25201c9a1f1c1879231f1a74231e1a5f221e196823211b4b221e1a351e1a1639221d19331d1915361d1a1644211d195a26221e7b2d29258c302c278e322d2888332d278e352e2874302a249237312b9738322c9b3a342da43e362f943a342d76342f2872352f29963e372fb2443c3542d05c244baf4d21506b2d11586f32144f6f331656733617697e411f447938175a86421e397f361133943511318c3511aa4b433caa534942ab5a4f47d2655951c06158509b655c5369706559496a5f552e5550482d5b544b38625a513c5c564d425c544c3147413b212925211b191715211c19162d24211d432e2b285a44403a6e534f48755f59508369625b746760597869605b71655c576f625a557c6660588269625b666159546b625a5370645c536760594f625b554f7e645c57715b5550725d59529669635d7d5e58536d5b5651745e58546f5c57526756514c72605a556b635c585f5c56524f54524d47534e495e59544f645a544f6769635bffb2a296ff685c53ff675a52ff6b5f564424211e341f1b183a1f1d193c211f1b5224201d5a28252187312e2b9d35332f9f383631ac3b3732a23b3731ae3f3a33a23e39329e3c3732c648413cbf47403bc449433cd14d473fcf4d463fb549423c94413c358d413c36af49443dcd514b44e3564f48d6544e46e959524bdf575049d0554f47c6554e47b7524c458f48423da04c46429448423fd5544e49ce544d49e459544db44f4b45aa514b46a0524b46ae5c554db7635c56945f58529c635d57b16a645f9a635e58875d59536659544e4b59534c38534d4726484640224a4742214d47432a514c4633504c463e524e48354b46412b3e3b361e2927241b24221e1b211e1c222725212e2b282541312f2c54403d395e4a48427054524d6e59554e735e5a54675c5853685b57526a5c5754655955516256524e6658544f705a5751745d5a5569ceb765291815113a161310531c181542211c1755221d197b241f1b6f241f1a8327211c65231d1864231d1972241f1a7826211b7225201c6a25201c7727211c6425201b6026201b7728221d7b28231e7527231e6226211d6627231e6d2924205827231e7827241f972d2924702824202d28241f1524201b252d2a254139352e33312d29202724201e1917142e25221f422e2a27553d39346f4d47428657524c8b55504985524d4684504b467d4e4a449254504a81514c46634b4541734c48438a524e488e54504b774c49446a4945416647433e764b48427d4c4843814c484399524e47774a4640834e4a448f5450496a4b47418e57544d9659554fb766615ddd79726bff554a40ff554a40ff52493eff27211defffffffefffffffefffffffefffffffefffffffefffffffff493e35fb5a5653efffffffefffffffefffffffefffffffff423831ff1e1915ff3b332c761e1b162a1b1713301c1915361815123b1e1b1756221e1a3d25211c532b2620712c272292312b2684302a24812f2a2599352e2980302a247f302a2587322b2696362f289838312aa13c342d9338322b8b37312b9b3a342e8f39332c8739332b8239322b953c352eb1423b33a140383160e9783845b450204564280f576d3013506d31134d6f351550793c195487431c5585411c3e7f371257a84519348e36111727231d1224211c3035302a5a49413946423c352f3c38321a2b2723161b18162c211e1b31312e29433a353049433e386c59544d7569605982726a638d716a61896d665d826861598b6b645d7c635d56876c655e926d665e8567615a6f655c575a5e564f77655e58816d635a886e655f9370696176635c566d625b55685d57515d59524c675d575077605a547a605a557b5e58538f68625b825f5a546e5c564e7b615c548565605985615c565c57514c77615c567b615d5682635f588f696462b17a736cb47f7971a17f7b70ffb7a79cff655a52ff645850ff655a50a739342ebd3c3833a237342eaf3c3831d9453f38c5423c35a639352e9e38342ea23b3530b33f3934c9433e38bf443e37cf48423cc446403ac547413bb1443e39bd47413cb345403ba745403aae4a423ba446403ab74a453dd0504b43dc554d45c44e4841c5514a42c4504b44a84c4641b9504a45af514a45a74f4944be534c489b4d4843a6494340d757514ce258534dfa5c5550a344403b92433e3a363935311933302b0d292621122c2a262e3d39344b4d4741494b48413744413d2538353215292624101d1b191c1f1d1b292d2b283335322e433e3a3647443f3b57504c476d5c57526f615b5574645e587c635f597b5c59526e5a56507056524d7e5b57527255534d5e4e4c477c5b5853815c58547e5c58536d585450675a56514c544f4a715c58526659554f7c5f5b5578605b5681635f5971ceb564591f1a165e211c176e231e195f1f1b1761211c186b231e197225201b7525201b64221e195c221d1969241f1a62231f1a6e26211c7626221d7026221d5c241f1b5f241f1b68251f1b7c26211d8325211c48231f1a2d1d1915201f1b17171b18141f201d1820211d19171a1815171a17141f19171444292521662b28258445403d7f4f48439a5b544e8d56514c80544d4a7e544e4aa15c554e83524e4889534f498e534f4989504b4585534e4877544f49624e4a44684e4a45744b47425543403b5f4c4843554845405645433d784b4742794c4943714a464183514d468b5a544c785b554dac605b53c4746e659c69655c63544f492f45413b1a3835302d403c34ff544a40ff544a41ff52483fff27221defffffffefffffffefffffffefffffffefffffffefffffffff453a33fb595553efffffffefffffffefffffffefffffffff423831ff1e1915ff3c332c9d211d18872a26216e29231f7d2b2722732a251f872d28227029251f762b26217d2e282387312a247e2f29248a322d2789332d277e302b26792f29257c322c2687352e287c342e278c38322b993b342d9a3b342e983b352e7f36312b7f38322c8338322c8237322c973b342eaf3e383059f77b3460d3682b42722f1148713112406d2f1247703215417033153c7b3a155989441c3f7d351259af4819539b411819211d192a2c27225238322d6038342ea34c4743895d555085625a51936a61588d6e645c8c6c655d8069605b836c645e8970685ea3756d63836a645c8b6a635c8f6e655f8d6c645e9d6f6860846660597f6b645c786b655d66635d565c635b5669655f5872655d546c6159524d59544d5e645e57555f59535a615a54605b564f78635a5578605b55745f59536e5b565078615b547e68625b82726961666b655c6558524c87716c638477706877716b624c605b5234554f471648423c15423d3819443e352949443a354d4640ffb7a599ff63574fff5e534bff6a5e55b23b3530b23d36309d38332ebf403b35c8433e38af3e3932a73c37329839342f943a3530a23c3732ae3e3a349a3c3832af413c36b7443e38ce4a433ec549423dba48423cb046413b9c443e39a848413ca546413ba345403cb94a443fb948433cd54d4740d84c4740da4b4740763d3a33382e2a263f2d2925212c28251d2b272423292622262c282436393630423f3a3533352f2b1e2b28241527241f1124211d1825211d1f2624203134302d533a3734593c393680413f3c98565350805b5652715f5b54765e59537e605a55775f5954785b5752705c5552735e58556e5c575289645f599867625a7159565072595550785a5552865e59557d5c57528d605c5665524f49775b57536d5b57536a5c59545d55524d5557524f5357534f5e5b57516258544d6f595551494f4c474453514c525956516ccdbb65511d1915541f1b166e231f1a5b1f1b1767231e197926201b6a231f1a6c231f1a66231f1b63231e1a7125201b6825201b7625211c8926211c7e24201b561f1c17331a1713261b17131d1a16121e1b17131f1a16121c1814112f1a171456221e196b25211d632d29246e312c296a34302a7c38332e7a3c3832924a443f944e4742a557514a995c564f8f56504c8957524c9158534d8758524d8455504a684c4944684d4a4479534e487b534e4871524e48614d48436d494440784d4a456a524d476b5a524c7d625a537c635e5670615b554655504a2947443d1a3b362f29423e382b3c38322c3c38341e282621232624201c1f1d19281b19173e25232053302f2aff554b41ff50483fff51493eff28221defffffffefffffffefffffffefffffffefffffffefffffffff443b32fb585552efffffffefffffffefffffffefffffffff3d3630ff1d1814ff3b332b9f221e185725201b6026211c6627221d712b2520892f2a24732b2722712b262194342c2794342d2885312b268d332e2883312c2683322c277c312b2686352f299738312b8a37302a8439332db43c352eb43a332da2353029933430295a28251f3c24211c2b24201b2925211b2625211b56ff873979ee77373e7d341230712d0f2d6f2d103e713214497636163c7c3d17708f4721427f37135fb74c1a46973d15a14d443ca4544b4393534c44aa5d554e9c6057509061584ea26a625a9a6d655b8e70675e8d6d655f8a6d645d8e6f675f92706a61846f675f856e665f776a635c585e57516a635d567c6b645d816e655d776c655d6d68635b5e635c56636158546c5e56527d67615a65666058646c655d5f70675f66776d6472766d6664766d675f756b653d675e592a5c574e1c554f48114741371b4f4940234b483f2748443d2348423d283f393625312d291f2c29251a27241f20221f1c2c22201c3f2c28254534322d6a3a38339e54524dffc1b0a6ff62574fff60564fff63594fde433d38c53f3934b83c3731b83d3933ba3e3934b53e3934ad403a34a43d3832a83c3833b13f3a35ca443f39bb413c37a8433d37bd443f39e44a433ee547413ccd413c37ba403b36983a36325f2f2c27472a27242e27232033292723362d2a242f2a2721272b2722332c2824292a272213201d191a22201c2825231f372b28245c332f2b5f3a36319b45413c7f4d4842894d4742bb564f4b92554e479157504a9756504a8c514a47824e4a4681524d498c5b55517a57514e835b5550785d574f8e68635d8c65605a82635d57765f59537a5f5956795d585481605b5683615d577c625d58705c5752775d5854685a55506056524d4a4f4d475e55524d705b57526b5d5852715d57516a5d58555f5a5652585754505356514e615752505d514c4969585550585956515b5d5a5558615d5952645e5971d1cb73561e1a165e221c1867231e1963231f1a7d27221d68231f197624201b9227221d8524211c79221f1b471d191521191613241e1a16231d19151a1a17121113110e2b191512551c19157f231f1b8625211d7c26221d7928241e7d2b26217c2e2922772d2822592b2622702e29268539332fab413c36b74a453fa9514a45864c463f94554f49955b564f9257524e915a554e9b5c575087554f4b75544f4a5c4d4a4561524f496355504a73605a52856d655e92706962786d675f4058524b1a45413b173f3a3532403d382a37332e1f2d2925101614120f100f0d1c12111032211e1b3d22201e8b35322eb243403da142413a9147443f8e4c47437c4d48448554504bff544a40ff524a3fff524940ff27211defffffffefffffffefffffffefffffffefffffffefffffffff483e35fb5b5754efffffffefffffffefffffffefffffffff3d352eff1e1915ff3d342ca3221e186927231d6727221d782c26216b2a2520882f2a24782e29249a342e2994352f2a7f2f2b2596332e28a236302bc239342eaa332f29982f2b266c2c29244224201c25201d182c28241e402e29232b28231e1e24201b121a1814121b18142d221e194725211c772e29249936312b76ff964484fd893d539442194a8238153d7c361447803b175b82401c79894623688d4720407f37126bc4541d3d983b13d0594e46d163564dda6a6056be665d559f675e5683665e548f68615a9570675c8f6f675f95726b638c6d675e94706a6193716962856a635c736d655e6b6b625d5c655f586169635c666a645c65716861717f766b76887c73838981776a847c735c847c7239736b611c665f551258504811504840274d48422e4c464028453f391e37332d1524211d0d1513110e141210171312102d23211e362e2b263e2a2825853f3c37a4524e48b356524e9d5350488c55504a8258534e78544e4a6d564f4b7457534c6053504a645b5a53ffbdaea3ff61574eff62564eff665b53cd413c37ac393630c73e3934c53e3b34e945403af647433ce3413d36c73b3731ac37352f702e2b273e24211d28211f1a3229262146302c2751342f2a342c28242327231f171d1b1811191815171e1b172e24201d3e262420642d2a269337342fb8413e38c646423cc94a4640be494540be4d4742bf4f4944de57504cc5544e48d259534ce95c5750c158524cb0554f4a8d4e4842944f4842b558534ca056504ab05a534eb05a534fad625a55ae665f5aa0645e5888605b56775c5650775f5a557d645e5a81645e57795f5a55785f5b5581615e587a605b5687625f598e64615a79605c57755b5852625b5752665c57525256534e5156534e545a57515a58554f555f5a5559635e59606b65605b6b645f6166615c58625e5948615d5940615d582f5c57521b504c471048443f0e453f3b0d3e3a3553c7b15e4c201b165425201b9926231f7b231f1b5d201d182a1915111c1916122b1e1a152c1c191528181612281815114c1d19167d221e195527221d6628231e5925211c6325211c6a27221d7327231e7028231e6b26221d7129241f802b2622862e29236d2c2621692c27238c35302c8e3c3732a547413ba74c463fa4524c4495534d47925b544d905e5850895b56518f635e578a68625c747269646c726c654f6b665d254e4a4312433e36274b433e454b4540403e3a35292c292512100f0d160c0c0b2618171436262522462e2b27563e3b37734d494481524c489a57514d91524c4895524d4899514c4798534e49aa59534e9c55504a9054504a9556524ca45f5955ff50473dff534a41ff50473fff27221cefffffffefffffffefffffffefffffffefffffffefffffffff443a32fb5a5653efffffffefffffffefffffffefffffffff3e362fff1e1915ff3a332ba2241f195126211c5a27221d6a2d2822832f2924bb33302b9d2f2b26752925205426231e281d1a161c1c1a162b27231d4029241e3024201c241f1c18261d1a1627211d194327231e822d282464302a246b39332c8a3e37317238322c873a352e823a352d9d4039329a403932a7423b3470ffad4f69ff803853a045195a95421a709b4c2175974e2485924c244c7e3e1a49803b183f80361164be4e1c4ea74418bd554b43c860544bbb635850b5695f57a470655c926d655e90716a618e776c6484746a5f8d746c65988179708b817770748e83786b93877d5b8e847b4d8f857b36847b701d676056135d554a145950472a5f554d405d57513e4e4a433b4a443f27312d29141615130f0d0c0b1c10100f261f1d1a2f302d293d39353048423c3654534b465859544d7a655e5879625d55916a645c89635e5688645c5787625c5484615c5592656058946b655d9869615b8f645d5782605a53805f5a53805f59528b625c558f645d58926c6560ffc7b8abff61564eff5e554eff645b54482523202c1f1c19201d1c173426221d4d2f2b26552f2b263726232120201e1b1b1d1b18291d1a1726211e1b4126231f852e2b27a0342f2b773b35308c443e38b34d46409c453e3a8a413b37b94a463fa346423cc94f4a44b44c463fbb4c473fd6534e46cc534e46b74f4943b44e4842b24f4842d1564f49cf564f4af25e5751e45e5750e85e5750a8514a46ac524c46a9524b47d25e5852cb5f58529f544f489d554f4ab5605b55995c56509f605a569c5f59568d615b5382635d5a7d65605b7e69655e77665f5a7160595378615b5780615c58846b6862796965606768635e536e6a624c6f69633c68635e3c66625d2f64605b23615d57164d4a441148443c0e453f381548423d234d4741334f4b48364947433c4a48443646433f2434312e1423211f0e1a1917131f1e1b1e24222025302d2971c5c4751a1814101f1c1712271b17132e1b18133c1a1713611e1a1674211e1a74231f1a7724201b7124201b55221e196426201c6b26211c6726211c7528241f6a26211d6c26221d6426221d7a2924207f29241f832b2621762924207a2b2621892d2823752d2822762f2b267c36312c94403b35aa4a443dc159534b9660595288635b537b6b655c59615b54355c564e24494440304b47422e3c3935252b28261b1c1b191b131311281b1917472a2724513a36336544403c7e514b479456504ca758524fa154504b99504c479f544f4b95534f4a98544f4b90514c4890524c488e514b4799524d499a554e4a95544e4a99544f4993514d4888504c479b58554fb2625d58ff534b42ff544b41ff524940ff26211cefffffffefffffffefffffffefffffffefffffffefffffffff483d35fb5a5753efffffffefffffffefffffffefffffffff3b332cff1d1814ff3e342c731f1a16201e1a151f1d1914201d191527221d182c211e192c201d1834201c1846201d196626221e7c292622862f2b2691302c278e322c2893342f2977312c2670332d278038312b8839332d8c3b342e883a332d933d37309a3e3831893a332e943d3730883b362e99413a33ac443c356dffa54a8cff9a4a71b6522172a84f21709a49205b8e431c59833f1d407e3d174983401a307e36106bc7531e57a84318b35e534add6d6056c870645ba3796e65887a7067806f665e74867e73557b736837736b612c736b60235f5851255b544b345d57512c46413d2a393531202b2724191816141a12110f211211102e22201c4b4440384e47413d564a464061554f498269615a937169628769615ba26f68609f6d665d8e635e5696675f5989675f598d6762598f69635c8a645e5784625b5685625b5589645d5782625b558a625b558b655d5883625c5684635b568b625b55875e59547a5a5550765b555088645f578f66605996655f58a3726b63ffc7b8abff5f544cff60564dff645a525223201d73282522892d2a269a34302c96332f2cbf3a3733b53c3733b43d3934b53e3a349138342e9c3c3831a8413b34ad433d35b4453f39b747413bb146403bb548423dc14c4640b347423cad46413dc04b4640ae48443db04a453fc7504a44d9554e47d7564e47de57514ae75a534dcf57504bcb544e49dd59514dd459534ce65c5550dc5b544fb8534d48bc514c46b1564f4ab85f5751ae5c564fb25f5953985c57508c534e48a95b57538b53504b805f5a566b645f5a58605b567b615d575169645e435f5b552e58534f295b56512055524b1c4d48431e4b4741224b48422c4c4a4529403d3a283a373421322f2d1d2a27241a2422201a1f1d1b1d1d1c1a2e2f2d293d292723474d4a434c4c4945584d4a476355514e6259555179625d597e615c59745a55528d635e5a87605b5789615d5693d0cd7e3f201c1650231e1a7725201c7025211c5f241f1a5b241f1a51221d194f211c1856231e197326211c6725201b7228221e6626211d6d27231d772a241f7d2a241f7629241f7229241f7a2a26207d2c2621772c2721682a241f6e2c27225a2a2621512c2722502c2723392f2925222d29242d353029353c363042443e382c302c28191e1c1a1c1a191626201e1b3f2a29265d2e2c2a634845415e4c48436c4d49456e544e4a8057514c86544f4a8e57524e9a58514d92534f4aaa57524dae58524e94504c47a2534e4a794a47428b504b4792524d4992524d49a757514e9e524d49ae54514ba5544f4ac3615a55bc5f595495534f498e514d479155514ca0615c56ff524a42ff51483fff534a40ff27221defffffffefffffffefffffffefffffffefffffffefffffffff473d34fb5a5754efffffffefffffffefffffffefffffffff3d352eff1d1815ff3c342c7a1c18144624201b4728231d4f2a241f822e28238b302b2586302c276f2e292483322d276e2f2a24622d2722672e28235e2c2622692f2a2484352f299a39332d8536312a963b342e7e38312c8d3b352f903c362f96403832aa423b34973d3630a1403932a4433c34a5433c34ab463f3786ffb5557cff8a3e78ba552476a84f216e9b4a206d91471f5c85421d5d82411e658a451e307d351079d0592156ad47191f3b342c3d4a41373448403842554c453b4b443c25302d2818211e1b191c1917221e1b1827221f1c402c2a264a312e2b6d3d39375a57534c5a5b564f635f59536b5e57516c6a615a6b675f559170695f7e67605a886b635d987066618d69615b84665f59a46e6660ad706861a16b655d9267615a94645e5787645e57715d57507f615b547f615a5481625c5685635d569669625b95655e5894645d579f64615796615c549e6b655daf6f6861a96d655f8a605b548d5f5b547259544d7c5c5650735a544e92676159846c655dffcfbfb4ff605650ff5f544dff675c53ad3c36319837332e84342f2b8a37322d9238332f81342f2b8b37322eb2413b36cd443f39cf464039b6413b36cd47413bba46403aa9433d37bc48423dbd4a433dbf4d4540d7524b45eb554e49b548433ed1504a44d3514c45c44f4a42d3544e47d3565048da58524bdb58524bcd57514bc3554e48c0544e48c557504aae554e47a6524d477d49433d7245413c6d413d385c3e3b363b3f3a3443434039263936311a39352f203a36312b3e3b35293f3c37374a4541384b4740293b39341e2e2c2816272521182623201b27252226302d2928302e2a4137353242322f2d65373432744643435153504b5154514c5857544f635a5652665855505e5955505455514a755f5b54775d59526f5c5852775d5954805f5955835e59567c5e5a56715b56538b5f5b5792605d5892615d58875d59537f5c585374ce9a5c4d201b176924201b4f211d184e211d1953231e196e27211d60231f1a49221c185e25201a7027221d5d231e1a6226201a6127221d6927221d7029231e6d2b26206e2e28226a2d28225828241f3c24201b161f1b160b171411161a17131e1f1b162a241f1b141915110d14120f27201c184a332f274f38332e754c4541935f56508a56504b8959514d76514d4975534f4b7a57524e7c58534f69514c476f514b476b534d4a7b57524e8355514c82534f4a85514c489656504cb85b5551a7544f4ba8534f4b9754504b88504b479e57524d9854504b8e4f4b47aa57524dac57534dac57524db95f5853ab5e5853a55d585286605b53946e69628567625b5858544fff554a41ff534940ff544940ff25201befffffffefffffffefffffffefffffffefffffffefffffffff483d34fb5b5855efffffffefffffffefffffffefffffffff403730ff1e1915ff41382eaa25201b6e2b26206228231e752d272286312b255c2a25205a2a26215c2c26216d302b258c35302a78322c26602e27235a2d272274332d278d37312b9739332d75332d278337312a7d39322c8a3b342e8b3b352e9b3f38319e423b3392423b3399473f37a14a4039773e37306338322b47ff873a7bff8a3f6dae4d2062a0491f538e401a4c833b185783401c7688452143803e194e863c1478d85f2167bf561e4241392f514941384f473f386f5c534b9072655c90776b618a71685f8d746960886f65607267605b766761596d67625a726a635d7b6f676164645d566f665d5765635a556869605b776c645d786e665c7d68605b7e67605980655f5881655f58926a645cb0706761a76e665fa46a645c9c665e599968625a83665f5880625b558d68605a8c665f598a635c56805f595291665f59966560579a68635a9f6b635ca66e675fa47068618e68615a87645d5671625d56686f696071767066677068604c68625a4e6b655d29666059ffcfc0b2ff685c53ff60564dff675c53a63c3731c5403b35ac3c36319b39332e8335302c8435302c9b3b3632ca463f3ac3433e38bd413c36993a3631b7423e379e403b35a3433d37b547403bb748423dc84d4641ce504a44b94d4841bb514b45c4575049e05e544dab4f49448847423b663f3a334c38342e2c312f2b182d29240a221f1c0b201e1a12211e1b2b2d272433322d274238342e3f3834301f2926221423211c0a1c19161123211f22302d29373e39334b4642395046433e514845416b5b56517d66605b7f6b645e6159544c7e615d55725d585274625c58655b5553665d59556a5a57515a56534e695b57545d5853506b5e59555654514c615854505f58534f4e514f4a5e5b5752685d59545f5b5852755f5b55715d59556f5b58526754514c6f57544f795c5954805f5b579a625c5999635f5a875c5854965f5c56885d585482cf975b5f221d184d211c184f211d1860241f1a5a25201b5e241f1b61241f1b6325211c7d2d2620732a241f4e25201b4226201b37231e1929201d181d1f1b171e1e1a162b231e1830211c18201e1a151a1915111f191613321f1b173f25201c4c24201c6c302a257a352f2ba03f39349b453f39ab524b43ac59524abd605852ab5f5953aa6058528b57514b77524e4a6b524d496d544e4c584c4743694f4a476d4f4b478e58544f915954508554504b7e524e498b56504c9155504b9d56514cac5a5350b05a54509456524d9457534ea5615c568c5c575190625d567f625c56815f595255504c46354e484321413c3929433f392b423e394348443e42403d39232e2b29ff534b42ff554941ff51463fff26211cefffffffefffffffefffffffefffffffefffffffefffffffff473d34fb5a5654efffffffefffffffefffffffefffffffff413830ff1f1b16ff423930a924201b6829241f7a2d2722672a252060292520642b27217b302b26692e292577322c2773312b2671302b2675322d278437312a9f3f3830a9423a327b38322c61352e2852352e284a302b253c2d28222c2a26202227241f1f26221d2629241f37302a233c302a24332d28222428241d47ff923d6dff92447ab8552477a44c2236863a165a8d431c6382401f6d83421f387e3b1748843a1372d05a1f5ebd531dcb74675bba71655ac27a6e62b6796d63b47c70649f776e63a67c7268927168617e6a635c716761586a635f5766655e5865635d55545f564f64615a556b655d5872665f598a6e68608d6e665f886c635e7c68615976625d577f68605b916b655d8a69635b936b645d9b6e655d91656058a56c655e8f69645b7d67625a826b645c93746b65806e685f736e68607b766f645f70685e7679706758686155445e59512d5b554d1e5750491849433f1d4c463f1d49453e224a473f364e4a42404c4842293733301f2e2b27192e2b28ffcdbdb2ff635a52ff655951ff665b54a23c36319a38332d9838332fa53b36319c3a3530b13e3a34d74b443de24e4741b5433e3899413c35833c3732703b362f6238332d46302c2742312c27302d2a26242a2823272d29242b2d2925302c2a254233302a4e36332d5237332d312e2b24252a27211c25221e18221f1a21272420282c2a253a332f2a4838332e583d3935783e39367e4a44409f554f4a97534e48b25e5852b4615c56b6656059a3605b55af69635c905d57508559544f9c625d589466605c9265605a9065615a85615e5790646059835f5b56725f5a53675b5751645b57515f585450585752505f5955525855514d4d534d495a55514d635954515954504c6b5b58527a5e5c567d605d58765f5b56715c58546e5d5955665754506f5b5855755c59557e5f5b567a5e5a55815e5b5688615b568c625c577d5b58528f625d5888d19e5f5b211d1865241e1a7625211b7d27221d6f26201c45241e1a291e1916261c181427211b1734231d1824201b161a1916121d1a16132b1b18153d211c184827211c652b2621672c26227d2e28247e2e28237a2c2722722b2621762b2622762c272273302b2679352f2a8738332f8e413b36a64d463f96534d479c59514ca35e56519359524d7c524d497855504b7756514d7556504c5f4c48458258544f8e5a56519a5f5a55985f5a54955d585396625c58a16f6663946d655e85665f5872625b565d5954503448454124443f3b2a3f3a36353f3b35303a3732393834322b2926231a1b1917181b1a181f1c1a1921211f1d2f2b2825493734316046423d7e56514cff554b42ff544940ff544840ff25201befffffffefffffffefffffffefffffffefffffffefffffffff493e35fb5a5653efffffffefffffffefffffffefffffffff413932ff1f1a16ff40372eb425201b7c2b2621772c2722772e28237c2e292494332d289d332f2a93302c2761312b27512d28233026221e28231f1b27231f1a2f2a241f3b2e2822372e28232928241e1f221e191e211e191f221e1a2b25211d382a272145312c255938312b7b3f39326e3c362f99453d36b24b423a5cffa74685ff974877b65323599e451b3f8e40175688401b768d4c246183401d5a88441f2c7a34107ed760225eb74f1cb764584eaf7064599772675c9471655aa5796d6197786d6391756a60846e645d7b6d635d776b645b7369635c786b645e63635c545c5c57517668625c7c6a615d90726b6491736b649071696293736b62896f67618c756c6698857b738d877d737c83796d7a847a6e647b746a597b72694f6f6860315c56501c544e4917534d461e4c4640264c4840304a463f2c48433d384a4440303a353225272522191f1e1a151d1b18181f1d1b1e22201d1c2523202c2e2b273538342f5245413c5a4f49426e5b554e77605b547b68635effcebeb3ff645850ff655950ff6458507a36312c66322d2a422b27243027221e2725211d26231f1b392b2522462f2a2654322e293b2d29243027241f2923201c2722201b2223201c2023211e2c262420372b282448312d285237332e6d3f3a349147433d8b46413bab4e4942ca554f48dc5b544de25c554dcb554f48d659534cc957514bc9555049cc544f49d858524cc656504ab6534e48b156514b9d524e48a858544e9b55514b7f504c468755504a9c5f58538d5e58518159554f7757544e785d58518a645e5787615c5782615c557b5d5851735c5752665a56516a5d5855685d5853665c57546c5d58556259555252544f4b5653504c63595651745f5a56765e5a557f63605a7f65605c7d65605c8469655e7b64615b74625e5b75645f5d776a65606e6964606b6a645c5e6560595e635e57485c58514a5e5a54435955513a53504b66c99454151916131e1b17132d1f1b16281f1a15161814111013100e261b17135b211d186728221d662a251f722b26206c2a251f7c2b26217829241f7d2a2520792b2621802c2721752b2621872d2823822c2722752b2521662925206b2a26215f28231f6d2f292570342e29903c373295443e399048423c844d48428a524b497e524b4880544d4a8e595350915f5956a1655f5bcf7a7470f697918cf9938d868478736b5267615b2b534e4722484440304d48434c564f492a3c35312c36302c1a242220121513121a191715211d1b182924211e332927233d34312c4e3d39336948443e7a4c4741794c4742854e4a468e524e4988514c47754b474382534e4ba1605b56ff554b43ff544a40ff544941ff26201cefffffffefffffffefffffffefffffffefffffffefffffffff463c32fb5a5754efffffffefffffffefffffffefffffffff3d362fff1e1916ff3f362e9325201a27201c17171d1916161c19162c241f1b372925203328231e23221f1a141b17141018151220201c183f26231e5d2c28236b353029763a342e7e3c36308b3e39318b3d3731953f3932af443d36a1403933a0403a33aa443e36a1433d36b1453f389c423b35b6473f38ba49403962ffa74b62ff8a3b5cad491e6ea44b21699e4e21428038166984421f5b80401c4e7e3c192d7b34107dd65e206abb521f90584f4692675d5281695e54836a6057826d635b8870675f786c635a8e776b647c6e665e8b777168947b736bac868077d99c968cf5aea8a0f7b1aaa0d7ada497638e867a48847b70287067591d5e574d11524b4717564e4831675f553c59524b25433d36394c453d2838322d1c252220111413110f100e0d141614121f1e1b192b2825222c2927243534302b41433f38504b473f59534d4677605a536f5d564f705b544f775b544f815d58517f5f5953755b544f6e58514c61524e476c58534c88645e57805f5a548666615cffd3c4b8ff6a5f58ff645950ff6458501a1c1815111715131e1c19162826211e602a2825662e2b267436312b883c373295413b36b948433cb347423bc44a463dba4a443dce4e4841e4524c45d54f4842cc4e4841de524c46d0514b45cb4f4a44e5555049c8504944d0534d46f35a544ce459534be259534bcd554f49cf554f4ac2544f48b4514c46c3544e48bd534e48ab4f4945ae524c48a7524d48a6524c488d4e4a458d4d49448c4f4a457e4d48437d534d487e57544d6f534f4961504d476b57524c6d58544f6254504c7259554f6354514b725d58546b595652715d5955705e5b56735c5854785d5b5795706d6ab8777472bc72716dc176746fa86d6c686177746b4467635c35635f582159554c1a4d4a441045413b0a3d3a370e403c381c4b46412d534e482946413d203d39353b4f4a4330443f3a1b33302c192826240f1f1e1c53bd8145441a171479221d1a8725201b9327221d6727221e7628221d8328221e7727221d962c26219a2d27218529241e7928231e7a29241f782a25206e27231e7d2b2521822c26216928231f6628231f782b26216a2a2621772c2722702b26215f292520652f29246f36302c93403a36b24d4740b6514c45f069635af37a746ee47b756fc2726b67a06d67634c57514d43554e4a4358534e47524c493f423d3a2e33302d1e201f1d18151312251d1b1a332825224e35322d633e3b366b47443e6e4f4a467f554f4b754e48457a4d48435c423e39814c484298524e4894514c4799534d48a855504b924f49458b4d494498534e4a9456504ca25b55519758524f9a5b5652ff544b43ff564c42ff554a41ff27221defffffffefffffffefffffffefffffffefffffffefffffffff4a3e34fb5a5754efffffffefffffffefffffffefffffffff40382fff1e1915ff423930671713111918161341201d197627231f8d2d292493312c27a735302b89342f2a8b38312d9238332d9c3a342f9938332e9639352fc0433d37c7443e37c9443e36a23c37309e3d3730983d3730aa433c369f423a349b403a339b413a34af473f38b4464039a4433c358e3e37309541393349ff8f3c47ff732d6fc658258ac6632c84b55c287aa456267a934f25858d4c23698a4922437f37128ce56b275ead481ab6665c51cd7a6e61f7938577f59e9384e9a59b8dd89c9285b2988f849c968b816f857b723265605825635a522969635b356b635844645c5745524d483e43403a2d34312c1e1f1d1a1712110f180e0d0c20181714322825224334312d513d3a35674a46406c56514b6f5c575070625b5478675f58705f57526a5c544f755f57514d4e4842755b564f7e5d575189615c55825e57517e5b544f8861595596635c56885e57517e5c54506b55514a875f58527c5e56518f635c56825f5953845e58527a5f57527e5e58527b635c56ffdacbbfff675d56ff655a51ff675c52c1453f39ce444039d1443f39df48423cc6443e39c8443e39ff534c45f34e4840fd554e45fc504a42d347433bcf48433cd24c473fd34d4740ea544c46cf4e4842cc4e4942bb49453fd24f4a44e0544e48e6544f48c64d4a42b64c4741ab4b453fc0514b44ce544e47d1555049bb514d46c4544f49d158524ccb554e49af514b459f4e4743954d4743974f4a4599504c4693524d4896514c468e4f4b4693504d489757534d985c5952a25e5a55b2615f5bbe676661be686661ab66645f935f5f5a7c5c5c576e5d5c585b5b57533754504d23494642164a4641184c49442153504a2a56504837534f4c3f4d4a46404847423542403c293c38341c2a28251522201d131f1d1b1b252220202d2b28313a373340423f3b52494641574b494465524f4b6a5b5752675e5b55605d5954635e59546a5f5b5562cd93535b201c1767241e195f231e196a241f1b6f25211c7f28221e7526211c66241f1a7928221d8429241f7829241f6927221d5d26211c7229241f6a28231e6128221e5b28221d6328231e6a28231f772a24207f292420902a27228c29252089292622862e2a26652f2b2753332f2c4338352f443b36313b413c363138343028302c28292c282432292624522826246632312e8b3a38369e3f3c3ba6474542a14846437554504c7d55504c78514d498c56504d9259534f9559534ea059534e6f4b46427e4e4846845049477048433d7147423c7d4b47418c4f4a45864e4844844b474293504b468e4f4a45844c474494514e49aa5a544fa059544f975a5451995d5854ff5a4e45ff554a41ff574b43ff26211defffffffefffffffefffffffefffffffefffffffefffffffff463c32fb5b5855efffffffefffffffefffffffefffffffff413a33ff1f1a16ff473d35b22d2822772a2520732a2621732c262180312a2573302b2680322d2880322e298c36312c9a38342e9a39342f9638332e8234302b9d3d37319b3d3630a83f3933973c3630863b342e843b342f7339322d96403a34923f3933833d3731833d37317d3d3630793c3530904139329440383236ff8f334fff7e3469c958249fdb6f32a8c769318da95828728f4c226882431f8d9653274f813a1371d45d2057b14a1a38473f373f554b4239574e44354f483d2f443e372438342d26342f2a2d2e2a2538292622532a28246533312d7e3e3c389343403ca64b4844ac54514ca857534e945a55507268605a786a615b7a665f5978635d5686675f5977665e588e6b635d8b6a625c956b635d6f5c554f5f56504b6b59524d7b5f57535f544d486c58514a61544e476b57524b7c5c57507a5b554f7659534e7057514c7457514b825c5650795b544f8a5f585269554e4a7f5b554f92645c577c5b55508d635d5682615a538a66605882645c5684645c54ffdfd2c8ff665a52ff675c53ff685c54e547423cd8443f38de46413bc3423c37bc403b34c0413c37da49433ccc47403aeb4e4840d44a443ec547423ba9423d38c249433da5433e39a4443f3ac64d4741c14c463fac48433ca146423c9f47423d9f47433d9c46413cad4a463ebd4f4a43bf4e4842d1534c47df534d48dc544e48e0514e49e4534f49ea514c47d74c4844b7484641b54a4541a746433f7f3f3c39673c3a374c3835323d383532313b38362d413e392c46413c3548453f2e44423e2d43413c273f3c392e3d3c362036342f243836312c36342f32312f2b41312f2b54363532633c3b387a43423f8f4a4a46954c4c48a751514daa565551a45756519d5957537f5e5a5568625d5968605b5770605b575554514d69595650745b57526a595550765c585380615d57785f5a56805f5a56735a565358514e485d55524c5d514e4a65cc905154201b1665231f1a6c25201b7025201b7b27221d8829231e942c2621902b25206d2a241f5628221d692a251f5427221d4726211b5628231e4e27221d3f241f1b2c231d191f1f1a17311e1a1728201d193026211b2c231f1a211f1b1718171410251d1a163a25211d5628272379312f2b9a3c3935bf4e4a44b24a474392484440814d48448b55514c935a54517f56514e8858534f905b5653945e59549e5f5a55955d57548e595450945c5552925a53507d544d4a7f524c479a58524c91544f4a8d544e4b9757504b88504a458a504a455c3f3c37804c4742854d48449a524d487749444097524d47804c4744a557524ea65a544f9f5a54509b5e585498645e5aff5b4f47ff584e43ff564b43ff28221defffffffefffffffefffffffefffffffefffffffefffffffff493f35fb5c5855efffffffefffffffefffffffefffffffff443c33ff1f1a16ff483e37c2332d28832d2722652a241f782d27238c332d2780332d299739332e8634302bac3b3631a83c3731b3403a34c3433c36a03f38328b3e3833783d3731813d3732863e3732713b352f5d38322c5f39332c703d36316338332d5b37312c43312b26343029242d2b26212025211d2f26211d34ff933458ff833795f47731c6ee7c3aa4cc6c31adb865307f8f4d249c8d4e267e8f4b2353823c1471d35d2060b04c1d964e473eb7675e53c873695dba6b6359a7675f568c635b537b635b52886f655d85766b62836b635a76675f598d6f6760826d635b8d6f67618f7169618a6e686097726b638c6e66608167625e7c675f598d6e655f85695f5b8969605b685d565177625a5487655f588a655d577c5f595380645d5788665d547a6159507a5e564e805e59515c50494468534f497057504b7559524e855f5652775a544e64534c487459524d7b5a544f7359514d9b665f5899665e59875f585283615a5481635b5682655e587d675f58856a625affe8d9cdff6a5e55ff685c53ff6a5e56fd4d4740ea49433dea4a443eff524b44ff504a43cb46413bbd47413ca1443f3895423d37b747433bb248423b9c443e37823f39347d403a347f413c359547423c7a413c37753f3b356e3b37324e36322c3b332e2a342f2b2821292621282926222227241f1f28252133302e294f3c37314f3b36334d3834303d322f2a332f2b271a22201c2328252222292623272d2a283733302e4d35333064393635783e3b398f4745419a514e4aaf585652b5585754af595856a45a59558954524d7b55534e7356544f7c5c5954745d5a577c625d58715b5853675955526e5d5954685a58526c5d57527d625e5a8164605a7a625f598164605b8067635e78635e5a715c5b586f5e5a5575605c577c635e5a715e59557e615c575b57534e52504c48695a5551725c57527f5e5955725b5853685855506d5b585372ce94535b211c1760231e197e28221d65241f1a6d27221d6928221e6328231e5829231f33221e1a1d1d1915131c1813131a16131b1f1a1525201c17271f1b17171916131113100e241a16134d1f1c1973241f1b9128231ea82c2722a92e2a24982f2b2681332d28853a352fa846413bbe534c45c25a534bb05f59519f5a554f9a5b5551985d5752915d5752a2625b5899605a57855d57539b635d59ab65605b985d5954965c58539c5d56538958544fb0635d59995b55509657524d9859544d9858524ea159534f94544f4a99554e4b9f59524ea55a534ea256514bb05e57528b57514cb85a55509666605a80605b55514c4743494f4a4432494540204a474118443f39ff574c43ff52483fff50453dff26221cefffffffefffffffefffffffefffffffefffffffefffffffff483d35fb5d5956efffffffefffffffefffffffefffffffff483e35ff1f1b16ff483f36c837302a882f2a25712c2722712c272185322c269f3a332e7b322d278537322c8739332e843b352f933f3933743c353060362f2a3d2f2a25242a26221824201c12221e1a0f201c191626221c2a2c2720362f2924402e2a252629252017211d1a0e191613121b18153c27231f552c282356ffb85775ffa64f56db6023e2fe8d44add17034b4b967339d9753287b7a3c1f848b4a2456813b1377dc642346a03e17cb7c6d5fcd887969ac877969997c71639b7c71649d7f7068937c7066927c70678174686099776e658c736a6394776c657a71686193746c63a0766e668c6c655d906e675f876b655d957167628b6a635c7c676059a4756d66966c645e8168605a7e625b558d68625a8d68605a90665e599669625b805f595286635d5590645c5589655d55835d5551a26b645d87615b5597645c567a665f586f5a524d8c5b554f9b7c746b6d6c665e6769645c354d48423a514c462e524c472857514b1b565049104e48400e403b340b3a3531ffe2d4c9ff695c54ff695e55ff6c5f57a83f3934bd453e39dc4b463f963e3a34933f3a356634302a4c2f2c27292a27221d25221d1623201c111f1c190d1d1c1810201e1a1f28241e3d312c254a332f285933302a3f302c272426231f181f1d1b0c1817130e1b18152124211e442b28235a312d287f35312e98383531b63c3a36c347423deb504a45fa57514bf75a544efa5f5952ca56514cc256514bb058534cb559554fbe5c5752a158534da25b5650a6625d579a645f5897615d587b5a5752765a56527a5d5952755e58557c615c5879625e5a7c645f5b6b5e595475605b5683645f5b75605c588465605b615e59546a625d597f64615c8966635d7e63605a79605d587c625f59735f5c567c645f5b725c59556d5d5a5570605c578d68645f7e605c56795f5a556d5d59546356524e755d5a54715d5855705d58547d5d59557f5f5b5673ce9153591d1814271a1612211c1814191a16121a1a1612201d19141f1a1712211b17131d1a171424191513241c171433231f1a4a28221c4f2a251f5a2b25205729241f5428231e6b292420722b2521762d28227a2e28226a2b2521762e2925702e2a2571332d287a39342e8a403b35984b443ea7544d459b58534b9b5954508b58514c8757524c915c5752b267625d945e59558c5c57539a625d58a7645f5aa7635f5a9d605a567f58524e7e544f4ca15f5a5695615a559d665f59a067605994635d577c5f585480625a5572605854464e474331413c37203a37312a47423d263d3935333e3a363f45403b43403d3a3a3936322f302d2a22262322191f1d1c1b22201dff50463eff4c423aff4a4139ff25211befffffffefffffffefffffffefffffffefffffffefffffffff4a3f36fb5d5956efffffffefffffffefffffffefffffffff433a31ff1e1915ff4a4038bc302a25742a26227126221e2e201c1829221d1a2024201c1b221e1a1d211d181b221e1a2728231f2424201c2724201c2625221d1d23201d22211e1b27221e1a2326221c332f2a25503530295838322b633d362f7b403a3375403a32793e3831713c36308c3f38328c3e3832a0433c353cff943682ffa44b81ed6d2c9ee67432add37034a1b2602e9e955029717b3e1d7f8f4b2259813c1479d35d225dbe551dad6f62559e7568599c796c5f99756a5f8771655b8c76695e7f71675d8d796e6293796e669f7b72678e746b627969625990736b6295756c6498736a639d746d6594736a64907068617c69615b645e56527966605a896a635d90746b66776b645d90766f668571696287796f65636660596c6f67605f6e665e67756d645169625b3a5f564f26524943314f484316403c351b524c431f4c4741264b453f2d48433e304c464048534d474047453f393f3c362932302b202a282520252220151e1d1a131b19161c1a18161e1b1916ffd4c7b9ff6d6057ff695c54ff6b5f5622221f1b3126231f3325211d3824221e3224211d2a24211c1e211e1b1f1f1c19231e1b17251e1c182323201c382e29244e322f2a6338332e6f3b36307b413b369a47423c8e47413b8c46403b9847413d9147413ca549443eb34c4740be504a43cb544d47ca574f49d458524bdb5a534ddb5b544faa4d4843c3564f4ad85e5751ce5b554fa9544e49af56514b95524e47aa5b554f90534f4aa35f58518858534d885d57528a605a547357544f7255504d7b5b56536e5a55516759534c6d5c5652685a555277625d576e5d5a568e6965608264615c78625e5a645856516f5d5a55745f5d578065625c81645f5b8666625d8667625e7e66625d7d645f5b6b5f5b575b58535058555150685d5a55715c5854745d59556d615c586a625e597467625d7565605b68615c5565605c564b54524d535b585260ce884b301a15113a1b1814581f1b1633211d184925201a6329231d6429231e772b2521782a25208128231e7227221e5f27221e6127221e5f28231f6729241f6228231e6228231f6429241f732c2621792c2621712d27226e2b2621722d2823722f29257d352e2a823a342f90403b359448423baf565148b159534bb55d5752b05e5853ac655f59ab65605ab568645fb26c6764a5736c66b37b75718e746c689a7a736e7a736b635768615b3a57534f3e4a46422046413d2c4a47413447423b3a46413d4645413c393c38342e312e2b2c2c2a272122201e281f1d1b3f2724204624221f652c29268d34312ea63b393671433d3a714a454282534d49905a544f825a534fff534940ff4c423aff4b413aff26201cefffffffefffffffefffffffefffffffefffffffefffffffff493e34fb5d5a56efffffffefffffffefffffffefffffffff463e35ff201b17ff493f386f27231e231b17152e1f1b1733201d1945221f1b5c27221e342925213f2d2a255c342e29783a332d7a3b342f7839342e9f423c3799403c35b1413c359d3b3631883c36307d3b35307a39352f893d37327e3d3730863e3831793c362f853e3931863d37309140393297403a33a5443d367cffae5395ffa850a5fe7f3695dd6b2fa8d16f34b7b6643496914e2790874a258e8f4c255c843e1579d75f2263c2591fa9645a4db1736859b07d7061af796d61a67a6e63b6867a6d9a796e639c7f756aaa85796eae817b70aa817871917a7369a28b81769c90867e7e877c748c93887e8591877c698c81755385796f3c766e6629625c5628554f4a1e5d554d1a575049275c554e2650484037534d4741544e4941534d453648443d2c3a363124322e2a1e2a27251b2825221c22201e2b22201c372725213c302d29542e2b286833302d863c38349b42403bad4947416f4c47425c4e4a4465554f4a7d5f5852775c554f6857514c6f59534d7057514bffe0d3c4ff6d6157ff6d6057ff6b5f568b3b362fa03f3933a5403a34a33f3934bf453f39d149423dd64a443ef24d4740e348423cda48413ba8433e37ae453f389f423d37a4433e38a6453f3aa747413baa48423cb14a443fa647413da549433eaa4a443ebf4f4942ad4c4640ce554e48d2564f48d6554f48d157524ac7554f49be534d48c5554f49cd58514cce59524dc858514cc259524dbd5a534eb75a544faa5b5650a0605b549f635d5892615c56845c5653905e5b55855b5751895a5650875c5752865c5854845c59549464615c795e5a56745c59557e615e5a8461605c8862625f8462605f665556537b706b647d716d69736e6b685d67635f636c6861666d68635b6c67604b68635c40676059325f5c562455524d1f4744401d403e3a1946423e1145413c1746433f1e4b47421c423f38274844402f4b4743364d49453b504c475cca8f4c551f1b1762231e187626211b7926201c8027211d8d29231e7225201b5e241f1a7226221d8525201c7726221d6d27221e6628231f6729241f5727221e6b29241f6829241f7f2d28227c2d2722862e2823792e2923752e28246e2d272382322d278a35302a7838322e98423c36aa4d4840a55a544bd95f5950b0625d5783615b554c56514a31534e48264e48451c47434031514c494b5a56504f55504b4b4c48442f383430232926241c211e1c1c1d1b193a22201e57292724702f2d2a8134312eab403d39c2494642b2464441a44744429a4945428e4c474396504b46814b4741a455514abe5e5751b05c55519d57514dae5c55529958524d9c5b5550a2615b55ff574c44ff4a4038ff4c423aff28221defffffffefffffffefffffffefffffffefffffffefffffffff4d4239fb5e5b57efffffffefffffffefffffffefffffffff453d35ff211c18ff4b4139ae322d275c27221e602924217a302a248a332d289438312b9939342e9239332d9939342eb13e3932a33c38316f342f2a8239332d913b3630af3c37319038332ea23e3832913c37327638342e8e3f38328a3f38327e3c3631823e37308f3f39338f403a33b4474039b2474039b64740384dff89397aff904089f7753081d2622b8cc2632d84a85727828f4d22777a41207681401f4579351181d85f2365be541ec76b6053a56f6457db817465e89b8d7e9d7e736662776d614975685b2e6d625519685f54135d554c165d584e1c5b524d4272685e496d655a55675f564e5f595148524d462c3a373121262420171715140f0f0d0c151412112d1f1d1b4725221f642f2c287232302d7636332f8a3c3935a747463fbb514f4ac2575450b756524ea8544f4c8a4f4b468e544f4b8458514d835a544f72524f477357534c945f5b52a1645d57a067605a915f59528f605c5397645f568e5f5953805c56507e5a554e6a5550496e5650497a5a554fffe1d3c6ff6c6056ff6c5f56ff6d6157e7484139ff4c453ef24a433db03f38338c37312db7413a35c9443e39df464039e746413ac7433d36e64b453ed148433cb246413bb847413cba49433db449433dab47413c9c44403bbf4d4740aa49443ebc4e4942d5554f48e159534cd558524bdf59544cf05c564feb5d5650d659544dc957514cd35a534eb5534c45cb59524ce7615852db615953db635d55ae5a544cb35f5953b3625d56c06b665e9e635e56ab68645d845e59537d56534ea55a5753ce6e6a666f56544f8164615c4857534c3c57514b29524e471a4f4c470f47443f0d45423e104746410f44413e20504c47345e5952375c5951495c5851495b564f485955503d524f492b45423d21383631172a28260f2725230d1f1d1a12252320242f2c293f35333149373431693f3e3a71403f3d7941403c7e4744418d494643a652524d88ce8f52511e1a1668221d188726221c9729231e6e251f1b5b241f1b6526211c5c241f1c7827211d7628231e5926211d722a25207129241f7a2b2621692a25206e2b2621632b26206e2a241f692a2520682c27225e2e28234528241f5024201d2b24211c2024201d2327231f232824202a2e2a253b3d362f463f39345344403b2b38332d242d2b28232f2b28262825223a2e2b28403734315f433f3d7e4f4a468353504b925d575397554f4c965b56509953504ba95c5952ae5c5954c9655f5ab9635c56b3615953b85f5954c35f5952c45f5a53ae5a5550a95b5550a359524da8554f4a9b524c47914e4843804c48438b4f49457f4e47458c554e4b85544f4a8d5b5550ff5a4e46ff4d423aff4b423aff25201befffffffefffffffefffffffefffffffefffffffefffffffff493e35fb5d5a56efffffffefffffffefffffffefffffffff493f36ff221c18ff4d4339b536302a7f2f29255d27231f722d272295352f2aaa3b352fc4403a338f37322d8137312d7036312c8339342f7738332e7938322e9b3c3731a93d3832883b3631783b36309c433c36873c37329c403c35a4433d3796433c3691413a359a433c368c413b338d3e38318b3b36308b3e383160ff8b3d74ff823aa4f87b3784d5662d90c2622d82a3532683894821727c4422737c3d1d4472301062d35a1e6dc2571f434940363e4b403652544a4051524a40354c453b26463f361f3a352e1d312c27202b2721262a26213935302b3f3d373157453f3a6349433d7a574f497a5e58518c69635b92726a63875d544f9a665d578a71685e8c5c574f98675f589c69635c9b69635cab6e6761b57269639b6b635d996b615a9b6c645eb470675fa3655d56b269625b93625b559b655f5895645c5690635b55a86760598359534d865b544e72524d477a56514a8159534c75544f497857504b6b564f4a7356514b68524e487656504a7256514b6d534e4affe9dccfff6f6259ff6b5e53ff6c6157b8413a34943b3531ab3e3834a73f3934a43e3834b6413b36da47413bdc47403bcc46413baf443f39aa433e38c94b443ea9453e39c54a443dd24f4942d4504943c74f4944bc4b4641c84f4944c1504843b34f4a42b24d4740b54d4841bc4a4740b0504a45a34a453fb1524d46944d46417745403c5236332f5d312d294e36322f33312e2b202e2a271f322e291d332f2a1f34302c2734322e2838342d2639362f37423e383c49433b33433e384148443f4448453f3e47433f2944403b2244403b1d3e3b361a3836331b33312c1f33312c2637342f38413d3842494640424d49435f56534d6657544e745d5953705d595473605d577d69655e826a655f6d55504d855f5a55895f5a5576645f597c58555086615e5983615d5985605c5984615d599365615c9f68635f83625d597d5f5b567b6059547dd0955766211c1768211c189427231d8429231d6526211c6327221e6328221e6727231e832a25206d2b27227226221d4f25201c3f24201b3a221d191e1e1b1720201c1821221d1821201c172c231f1a27231f1b2a241f1b29221e1a211e1a1824201c192b221e1a34231f1c4a2d29245f37332d73433c378d4f4942a05b544f865750499a5f5952a46c655d945e5952915a55508a59534f9e625d589d605a56a7625c59ac625d5ab266605c995d5854a85f5b559e58544f89534e4ab4605b56be635d57804f4a45b55e5953ac5a544fc4615b55cc625b56bb605954c060595398544e499f544e498a4f49458d504b4686514b4888534d489758534e8354504c8d5d5753ff594e46ff4b423aff4c4139ff26211cefffffffefffffffefffffffefffffffefffffffefffffffff4d4037fb5d5956efffffffefffffffefffffffefffffffff4d4439ff231e19ff4e443aaa362f297e2e2923802e29238a302b2784302b26c03e3831ae3d3730933c352f7438342e7c3b3631733a35307239342f843d3832a63f3933803e3932953935308b37332d6634302a5334302a392d2924412d29251e26221f21292520232b2722282c28222c2d2923342c29233f302c266bff8a3f70ff823d7ee3672a8cd6682f83ba5c2b759849217a7f401f5a6e3418747b3d1d40702e0f7be0602366c3561f71584d42996b5e519a7265589d73665a98786a5e8573665a978073659f84786a958174668c756a5d8776695d997f6f63796a6058886d625a896a605898726961a1756d659a7169629d746b649c73696283665e57966b645c80635a5589625b55775e5751996a615ca76d665e8b655d556f5b534f97685f5ba26a625c94615a54ad6a625cb169615aa5685f5aa369615aae6c645c905f59538b5e58518c5d58507655504a7f59544d67504c457c5a534d7557504b6e554f4a7b59544d68524e4a66535049835e57527d59554fffe7d6caff6d6057ff6f6359ff6e6057a5413c35af433d38963e3833bc463f3aac413c36bc453f39eb4a443ea8433e38b647423c9e3b3731ab3b3731933935306837322c51322e28352f2c2650302c281c262320212926231f2a2623292f2c2732302e293a34302a3d322f294536342e4d3935303f35322d34312e2a3d34302c3a322d292e2e2a27262b29251f2a2724212b2723202e2a262c302d292e322e2b3d37332f503f3c365d49453f664f4a4568524e487758524c825d58527c5d5953795b57527b5e5955665b57516a5d59537764605a7c65625b70605c546f5f5a53715f5a546b5e58536f5e58525d56514c745e5a556f5f5a556e5c5853725f5b5579615d588a66635f7e625e5a7a625e588464605b715d5854705b56537f5f5c586c595551755a55536355514e6154504c81605b5886605d578e635f5a6358534d5e55504c7acf99575b231e1848221d1844211c17261f1a16211e1b16201e1a16151b1714191e1b1621211d182f231f1b2d221f1a281f1b16281e1a161f1b1714301e191637211d184e1f1c188727211d722b25206e302b25812e29246c2f29246e302a25662d28236b2f292478322c287c33302b913c3631ab48423cb8585049b25a534ea659524db3635c54b76d655db1625d57a8615b58925b55518457534d8e595550a15f5a55b0655f5ab768625db666605cc869635dbb605c56bf605b56ad5c57529558524e9e5a544fb55e5952ca665f59a85a544fa35a544f9659524ea35c544f9456504b814f494483524c47ac6058548557504d955f5a539f665f599d6e67628e6c6661ff5c5249ff4c4139ff4e443cff251f1befffffffefffffffefffffffefffffffefffffffefffffffff463c33fb5d5955efffffffefffffffefffffffefffffffff484036ff211d18ff4f453ba537312a9b322c257f302b265c2f29245a2f2924482d28232f2e29231f29241f1e2825211d2825211624211d1826231e222a28222d2e2a2433312d273a322e282c2d2a24262a2621282825201d24211d1d23201c3a29241f342d2823412d2924522a262288322e299538332d8640393276ff944772ff7f3889f0713085cd622c67af53246593451f50773a198a7c40217e793b1e446f2e0f79ea692661c8581ec365574bd579695ad8887665af75685bbe7b6c609f746559a87e6f62ae867568ab87786aa27a6f62a07b6e629774695d625c524a826a61577c625b5287676057956d655c9f716960986e675fa57169628969615bb4766d64ad726b63a36b635caa6f65608f615a5485655c577d5f57538b645d579d68615ba56a625cb46f666092635b5698635c55a1685f5a826058538c625a54765a534e805d554f68514d4769544f487d5c565089655e58715a534e765e575182655f587d6a625c7b6e68606b6c665e736d67617f736c66ffeadeceff6e6257ff6f6258ff6d60571a25221e1a25221e1723201c19211e1b25272420362d292445312c264c342f2a5436322d3f2f2c272d292621282926222024201c2124211d1c22201c1b201e1b3e27231f332b2723382e2a254d312e2a582e2b277232302dc5443f39993e3b34aa544d47bc5a534dc65a544dd9554f49bb58504ab5564f49c359534cbe56504abf544e49af554e48b057504bc55b5550ba59534eb555514aa8545048a657514a94554f489956514c9a58534d975a54507f54514c9c635e597b58534e7657534d7e5f5b5584655f597b605a537f605b55795f5b557e625d59785e5a55685954504b4e4a456f5e5b54665956506e5c5953755f5b567c615d588667625c7e625f598b66635c8f66625d6e5c57559468635d8c645f59845d5855865d59568c625d5a815a5652795d59546b5854516c5a5652735c585470cd9754221c1813241c18131a1b16121c191613211a17142f201c173d231e1a4224201b4f2a24207f2b2620682a26207c2a2520782b2620712c2520772d2721742c2621872e2923802e2924852f2b257e2e2a247c2e2924802f2a247b2f2a25592a25216e2e292476302b267d322e297a37312daf49423dbd544d46c357504b9d56504ba95a544fbd665d58b4605a55b7656059945b56517f544f4b975d58539e5f5a55ab635d59a4605a55a8605a56c769645fcd68645d9958534fa65d5652c0665f5ad16b645dca6a645ca468645cb45c5850ef77726ae3726d66e16f6862d66e6762bc66615c9e645d5656554f4a193f3c38153f3b34163e3a361a3f3938334e4945ff5e534aff4b4339ff52463eff25201befffffffefffffffefffffffefffffffefffffffefffffffff463c33fb5c5855efffffffefffffffefffffffefffffffff483f35ff221d18ff51463c6e2e28222924201b28231f1a2c25201b1c221e1a18211c18191f1c191b1f1d192625231f332d29243a302c2643312d274e36312c5e3c363171403934b1403c368d423d36a6433d37a5413b3596433d3797443d379c463e36a848413aa7464038bb49423ab7484039c14b443bb54a423a7fff954971ff7d3884e66a2e79ca5e2983b6592969984a20597536187d783f216b793b1c42702e0f6feb67236ccf5b20ce605347f1786758cf766658cd796a5ebb796a5e9e726459a573655aa377695cbd88786c9e776a5da5796e5f8e6f6457866c615578655b5182675d5389675f55956b635a936d645c8f69625982675d559e6f675fad756d65b2756d66a66d666182625a5686635b57956c635da06e645fad716962b8756d658c6d665f8a756d65694b4741e07a756ed076726bb66e6a64c0706c65ac6d6962a169655e8f63615b816560584b5a544b405d56501448453f1149443c10464139104b473f1547413e21514b453458514a41565049ffefe4d6ff71665bff6f6459ff73645c302724203a2c28233d2d2a2555312e2952322e2a6438332e773f39348d433d38ca47423dc74b453ec14d4740d24d4640c348433cd64f4843c14d4641c64e4742cb504a43e4544f48c64f4b44df565049ed59534bf55d554ee859524bfa605951d359524bde5c554de159554edf5c554fca57504bda5b544ecf59524cce58514ba84e4743c857504abc555049ba55514ab853504aa34d4641ba524e488f4b4641a9545049ae5a5650be625e579457534e935a5650915b58527654504b7257534f7d5c56537359534d89605b56865e5855755a544e7d5f5a53785d5951685a55516358534d625a55506a5b57506d5c574f715e5a547c635f5a79625e59745e5b557c615c546e5c575083625e598a64605c8e635f5b8d615d597457535164534e4b69544f4c6d585350715954516f56524d7e5a575279ce955675231e196a25201b6025201a6326211c6728221e6628231e6027221d6829241f6529241f5e28221e732a25206e27221e6e29241f842d2721712b251f7b2c2721842e292388302b25822e2a247f2f2a25792e2a2484302b2581302a255b2a25215c2b26216d2e292579322d298738332f803e3833ae4d4641ad504944b859534db8605953b6635c56be665f5ab265605ba869635da26b655ecf67625df3726e68f2746f69e0706c67c167615ca6615b567e57534d544b4742484945402e423e382f47423b2d45413b283f3b3528403c3531413f39333d39332c332f2b232b27251f2926241f262422211e1d1a191311101e1614122b1d1b183324222045342f2cff60564cff4e463dff4e463cff25211cefffffffefffffffefffffffefffffffefffffffefffffffff483d34fb5b5855efffffffefffffffefffffffefffffffff483f36ff211c18ff4e443abb38312b91302c2790312c277c342e2a7d37312b8239322c8239342f7d3a35307a3d3732813e39337a3d3732833e3934843f3a34843e3a337f3d38337a3b363295413b35943f39338b403a3496423c36b248413a9b443d36a9463f38b1484139bc4a423bc44b433bc14d443bbe4a42396aff853968ff793570de632973c45a265ca64b2176974a23747e3f1d476b3114717c3c1c46712f106ced672367d35c20b454483eb05d4f45d5736255c6746559b976685abb7b6c5dbb7e6e62ac7b6b60ae7c6e62a2766a5ea0796e61aa847669988273658b796e60956b6256d7827a6de0827b6fe1837d70df847e74c27c766fb07b726993726b627e6c665d516962594859544c4559544f20504a42234b484229554d4527514a43244f4942244a453d234c453d2e4a4640304b453c263d39332938342e2337322c182a26241c2e2a271e2d2b271c23211e221f1d1a1a1412111e171613201a1916291d1b1833211f1d392a27233e302c28583a3532fff3e9deff7d7165ff73685dff6e6459ad453f39b847413bb1453f39af443e38b947423bb746403bb747423bb548423ca8443f3ac64c4540c44a443ece4b443db246413bbb4a443dcf4d4740f0544f47d14e4943da514c46d9504c45f259534bf05a534cf05a534bf25d564eea5b554cf25e574fea5d5750e35c564fd559524bea5d5751ef5f5852f05f5951d459524ca94f49439e4c463e9349433db1504c46b0514c47b2534e49af524e49b153504ab157534d90534e4a9d5955509d5a55519358544f8455514b925f5951855d595389605b567b5d57547f5e5a548a625d59735a5751765f5b558469635e7267605b7469625c615e5a546754514b9c5e5b559a5a59549e5b5a559e595954a25b5a5697595855815655507f57544f6d53514c604d4c47534d4b462d47443e3c45443e3944433f1c46433e1f3f3d381d41403a1f49443d54c884496a221d186625201b7026221c6f29231e6d29231e6027221d5d27211d6629241f6328231e6b29241f6428221e7328231e7429241f6b29231f6d2a2520762b2621742c2721722d28227e2e2a2491312c27802f2a257b2f2a25702f2a25662d2923622d272371342e2a6e332f2a76312d286b37332d5638342f4d35322e3e37332e2b35322d2135312c1835302d1c3b37342a443f3c3e4e484257534f4a404a47423a49464232403d392835322f1f2b27241c2724221824221f2125221e1e211f1c492826224133312d4438343053282623913a37339a3e3b38b045423da643413da54542409b4843409e4d484588534d4898554e4a7c504a478a59534f955e5753ff685f53ff494037ff4b4239ff26211cefffffffefffffffefffffffefffffffefffffffefffffffff463c33fb5b5855efffffffefffffffefffffffefffffffff473e36ff211b17ff4e433baa38302a79302a2583312c2778322d287c37312c923b3630923e3834773a35308a3e3933753c3631703c3631803f39357b3e38337f3d393392423c37873f3a35864039349b423b35a1433c3693423b3590413a358b413934a2443e37a6443e37a4453e37af484039a5463e36bc4a433a67ff893f6eff7e396fdd662a61be54216baa51247a9c4d2388844322867b40207d81412045712e1075ef682377df652483453c346f483e355f493f3657473f3642453d3437483f3527443c3524453d351b463d3415433d351b4e463d22524942305e51473e60574b4c6b61543f5d564c3757514831514c442f4b474027413d372035312b1e2d28241727242114201e1b1627242119221f1c212a26222123211e4f2e2a274945413c3d2e2b28473c383347282622893e3b369742403ca84a4642af4d4943a5494641a04c49439b4e4b46964f4b4693514c478f595450785a554e8b5e57516d544f496e574f4b7459534e7f5b544f7b59524d825e5750fffbefe6ff7d7265ff706459ff71665bcb4b453ea1423c37a0423c36ac443e38bd48423cb147403aaf45413ac84c463fb548423cbd4a433ebd48433cd84d4740d34b453ecf4c473fc14a443fbf4a443eb549433ed14e4943cd4e4942d8514c45cf514c44e1585148cd565047d7575149f65e5850fd635c54f8625a52e65d564ef15e5851cb57504bbb554e49d65c544eb0514c45a24e4842a74e4743b358514db55a554e9e534e4ac356524c984d4a45b3534e49814e4a455d46423e5543403c4f43403c3f3f3c3838413e382e3f3d38223b3935223b39351b3b38321538363112373531173e3b371a423e3a2048433f284d46402c4c49423758534c3857524b32534f482f524f492a504c472b4f4c46244946422044413c1b3b38331a34302d15322f2b14302e2b142f2d2a14322f2b162d2b27263a37321c312f2b232f2e2b4e3937336ac77e4669221e196525211c4e221e19752a241f872c26216829231e6f29241f6729231f7b2c26216929231f5f27211d6927221e6627231e652c2722632e2a245e2e2923572e28224828231e3e26221d4129241f3a221f1a231f1c180e19171308171511101b17132027231f322e2c263d312d2839312d273036312c21302b27162a25231323211f1c29262326312f2b3a373431563e3b36a044423ea543413d8f403e3aa34a4743b74e4b46c555514dcb5a5652985c585284534e499d554f49aa5d58519758544ea55c5852995a5550ab5f5a53a45d5650c0625d56ba605a55b65e5954bb5f59549c58524eb15b5650ab5a544faa59534e9b57514c86524c479e605955ff64584dff494038ff4c433aff25201befffffffefffffffefffffffefffffffefffffffefffffffff4a3f36fb5b5754efffffffefffffffefffffffefffffffff494038ff211b18ff50453dbd37302a8b302b2686322d287e36302b7a36302b5f342f2a7a3a3630a0433e38933f3a35813f3a3588403a358d403b36873f39359e453e3a95433d38833f39347b3d3631843f39338b3d38327f3e373286453f3882463f38814740397a433c356e3f39325f39332d4a322d27422f2a245dff803b58f774327be56c2d62bb532169a74f218ba15229a4904e297f783d1e777d3e1d5175331267eb642186df6828564a3f344e4b403536493e34223e362e123831291138302a11322c2616352e271d36302a2839332b39423c354e51483d6047433aa2514d42a5564f44904f4a43974e4a43a6544e46b757524bbc5e5750be655d54ba655c549c6c645c7d605a516f5a534d7b574f4a8b655c55815d554e8f69615a8d645d5692665f5983625955a36b645a88635b54a1666058b26d655ba5675f58ab66605898635c56a766605990615a5495635b568e5b564f9a615b548c5a534e915e575176554f4a78524d4672554e498b615a547657514afffff6eaff7f7165ff6e6258ff71655bcf4b453eb547413bbd48423cce4b453eb446403abd48423cdc4f4942d74f4842b348413cab453f39a3433e38ac453f3aaf433e38ac443f3aad47413db64d4943a74d4842ad504b44a24c47419449443d82433e3874413c375c3a36305236322d4734302b4536312c38332f2b372d2b263f2c2a26262a2624172623200a1f1c18071b19170c201e191323201c27312d29373937324b403e395945423e644a45406a4f49424c47433c4a4b47422d44403b1d3d39341334312c11312e2b0f2f2c290f2f2d291336312c203a3733203e3b3529413d38394945414b55504a5356514a734c49449956544e9b53504b9153504b8c4e4e4a9856544fa65d5b55b15e5c57b5615d5aa65f5c58ac625f59a4605c57875b5651695b57526255524d5b534f4a5f514c4974585450755c59545e514c49735d595481ce89537d231f1a72241f1b76221f1a8b27211c8527221d7c26211c6d241f1b5c201d193d1e1a16351d1a16241d1a161e1f1c171d211d181e231f1b2525211c2724201c2925201a23231e1a22221e1921201c171a1b17132b1e1a1648201d195a221f1a5726221e5e2d29256434302b6d35312c7037322d7e3e383393453f3ab5534c45c558514bd4635b54ca645e57de6b645de16b645dd56c6660b4605a547f4c47429455514b8c534e4986524e489758524dad5d58518f57504ba85b5750a45c565086514c48a25a56509c58534f8c544e48af5d5752be605b55a458534ea458534fa457534eac5a5550ac5d5752ab59535094524d489856504ba05e5752b667615bff645b51ff484037ff4c4239ff261f1befffffffefffffffefffffffefffffffefffffffefffffffff483d35fb5b5754efffffffefffffffefffffffefffffffff483f36ff211d18ff50463eab362f29792d29239a35302a8e36302b9437312c8f37322da43b3731a53c3731a03c3832933a35308337332f6d2f2d295f2d2a25422925223f292521312a272225292620212b2722212e292424302b2726312c2732342f2a30342f2937332e2835332e282b302b25292f2a23222d282268ff924455ff81356ade652767c0572376b256268ba15228a6924f2895824622858343204a7431116ef0672282de67269452463b96574b3eb0615346c165574ac06a5b4dbf716052db7c6b5ef1877667cb827063d4837365d8857667d1817163d2847366c2817366b27c6c60966f6257665951478462584e7e61574f725c534c7e615850836359528761595082605850725a534c98655f5897665e56876059507c5b534d815e585192625c567d5a544e775c534ca1675f59a368625aa3645e57905f58528e5d565199605c568d5a554f945e5852935e59528c5c56508f5a545077534d47955e58527857524b815b554f845e58518758524c7758524bfffff8eeff81766aff6b6156ff706459cf403b35ba3c3732a83935308d322f2b722d2b27622a2722472624203c25221e3a27241f302925212a282420282925212a2d28252d2e2a252d312e2930302e293d34312d3b38342e3e36322c4d38342f4236322d3833302b2c332e2829302d2820302c281c2b28231827241f1826221e21282521392c2a264e312e2a5731302a6736332d843b38337e3f3c367e46413c8047433e8a46423d874b4742954f4a4498544e49995a544da05b554fa35a544fa45e5853955e5852b16660598b5b5650a4655e5ab86c66609b635d598e605b5696605b579b635e5a9d655f5b9c645e5a9a66605b8b615c587f5b56526e56524e5a4e4b464e4f4b476754514d6455514d5b504c495e524e496655514d6556524e6554504c775855505f524d4a544f4b487759575372595550735a56526452504b5f514d496dcb7b491419161115191512111a161222201b161f1e1a16201d1915261e1a15311c18153e1a17144c1c1916551f1b187024201c7d26221e8827231e6328241e562c2621602d2822712e292370302a2579322b2670302a2587342e29772f2b25732f2a25712f2a257c322c287c332f2a7b342f2a7d36312c853b35307b3a363192443e38bb504843b0534c46ab57514bc6615a54d9655f58be625a54be635d569f55514a9756524cb95c5752b45f5954a058534dc1625d57be615b54c7645f58bd5f5952ca635f58be5f5b54a95b56509756514cbe5f5954a75a544ea058514da158534dad5b5550c060595499554f4ba45e5854b15c5552a15c544f9c5a545096615a56ff665b51ff4b4139ff4c4339ff27211defffffffefffffffefffffffefffffffefffffffefffffffff483d35fb5a5753efffffffefffffffefffffffefffffffff473e37ff1f1b17ff4c433c702d27221d221e1919231e1919221e1a1c28231e10231f1b1b28231f262a2622252b2723222a2623262b27232a292622302724203f25231f43262420522a28255e2f2c277834312c9e403c379b3a35309c3b3631a03f3a3475423b3570413a3483453e3794463f38a44a4139a549403976ffa4497fff8a415fd861245bb84f1f569f471d709448217a85432063763c1a5f7c3c1a447432109bf9792e70d05b22b152463ab5574a3db75d4e41a7574a3dc6605345b65e5045da705e51ca726254b1736256bf79695bc2796a5cf388786a996b5e52b67a695cbe7e6f6189665b5095665d5189635a50a8696058b37a6d648f655b54845d554daa6d635bb570665da5696058a8675f58b46d635ba5655d54bb6f675fb369635ba7655f588e5f58507e5c5550a2655e57a9696056905e5751945f57528d5c56508f5e595299605a53a9645d579c625c5577544f498b605a549e635b568e5d5550855b554d7a524d487557514c83605952845b564dfffff8edff82766aff706359ff72665a2d2926212828252129282520292824202d25221e3525231e4225231f4a25231f5b2927235d2b2824702f2d288b36332dba423e38c1413e39c0413c37bd413e39d848443e87443f398d49433c9449443da8504942be534c46c8554f49d35a534dd55a544dd85b564ed35a534bcb585249e75f5951e25c5750d058544dd55a544ec558524bca58524ccf58534cc356514bd65d5651c457514bc757514cc859524ec85a544ebf5a554ec85d5651b157514c9a524c48a656524d9b58524d9058514eab605a55935a544f8957524e7d56524e915c59538b5a5651a663605c945c58547756524d8d5f5954895e5a5462504c486953504b66514e486853514c805754507e5d595488625c586e56524e64504d49825c5853835c5853815b5653805a5651805a57538c615c58825a5752865e595592625e596fd07b4556221e199525211c9828241e9228241e962a251f8029241f7a29241f5e25201d5f27221e5925211c5e27221e5625201c6527221e6328221f742c2721712c26226e2b26216f2c2722722e28247b2f2924742f2a2385322c2783332d277b312b2688322c277f302a26712f2a26702f2a2676332e298936302c853a35308b403b359b47413bae4d4740a6514b46cc605954d5635c56d0625b55d869625bc15d5953bf605b55a358544dc0625b55bf615c55d567615be36b645fc9645f5896554f4abe645e58cc67625baf5f5854c5665e5ad66d655fd66c6661cc696461eb706b67f979736dfb827974fc90867ffc98918cfb968e8966635c55847067636168605aff675f53ff4a4239ff4f453cff27211defffffffefffffffefffffffefffffffefffffffefffffffff493e36fb5a5754efffffffefffffffefffffffefffffffff463d35ff1d1915ff4c433ba1342e284a2a26215e302c26ad36312cae38332eb7403a35ab3e3a34b1423e37ba48423c9a423c3794433e38743d3833713b36317c3f3a346b3a35306e3b3631763c37326d3a353085403a3585413b348540393497443e379a463f399f473f3a99453e38ac49423baa474038a7473f379bffaf547dff8f4263d35c245cb64c1f56a1481e70974a218f894824496d3314517839183c72300fb7f97f336bd65f20a24d4236b653473ac2574a3dae56473dba5b4c41cc605245bf605145c1655549a9605148c26f6154d77b6a5ee6847364c3746558c377685bd07f7062bc75685cce7b6d61ae6f645a996b6157976d6258a56b6158a1675e56c7766b63b66f655cc7726a61b16a635bac6b62596b524a44a16a605ab46c665e9d655f57825a544fab6a625cba726861ad6b665fb56c66619f635e5bc26f6b65bc6a6862cc74706ae07e7771f5877f79ea837b73f287837cfa90888288837d745670695d67776f675273696250726b6047726b5ffffffdf4ff877c6eff70655aff72665be24e4741c747423bbf48423cc148433cb849423eab443d38ac46403a9a403a35af46403ba7433e3897413c3694413a35ac46403abb48423cba4b453cb449443ec24c4841bf4d4842cc514b45ce534e47ca534d46d959534ccf544f48d058514bd257514bd657524bf55e5850d2585149eb605952f2625b54ff655f57e25f5852ec615952be544e46f2605852ea5e5651e55d5551cc58524cd75c5550c6545049b4524d47b8544f49cb5a544eb956504ba7514b47b257504c9b544f4aa157514d9856504da45c56519457534e80524e4a945a5751985d5854a0605b56935c57538c5c58538b5d59549c63605a94615c577457534e95615b588058544f7055514c6a55524e8f625e597c5955507a58544f865f5a54865c575298635e59975f5c5885595753855d5954644f4c484f4b46427c5c575390cf95596724201b6c24201b6c241f1b7127211d7827221d7d2a25207a2b25206527221e5f26221d5a25211c6927231e6127221e6828231f5d28221e5c28231f652924205728231f5c28241f7a2e28247e2f2a256d2f2824642d2823622c2723692d2823792f2a256a2d28246c2f2a267c302a26672e292576302b278a36322d8c3c3733833f39338f423c3685413c38ac514a46c0554f4bbb554f4abd55504abe524f49be53504cd35a5650d45e5953df656059da67615bd965605bcd635d57a25f59518453504a78524f4a7b5a56515b534e493a46423d3046423c2c423d383847413d474f4a4547514b446559534d5d534f4a5e4f4b464b45403c40433e3a32373331ff74685dff4c433aff4c4239ff27211cefffffffefffffffefffffffefffffffefffffffefffffffff453c34fb5b5754efffffffefffffffefffffffefffffffff463c34ff1e1a16ff4c433baa38322d74342f297a35302a923a342e7a35302b863a342f8d3e3934843c373294433e389e46403aa148413c89423d37793e38347b3e3a34783d383287423d37873f3a357a3d383389423c3784403a357d3f3934823f39347b3d373288413a34783e3731823e39339e443d36b34840387eff9a496cfe843b5ed55e2466bd562260a74e20809f50258f8c4a246f7a401d7681431e3b72300f96f16d296fd86023a84d413694463c31a24a3f34bc53473bd05b4e41b356473ea754483db156493ea151453ca4594c43b863574bc76a5f53ba675a4dbb685c4fbc6a5e51b164594dbe665c51ba675d52c96e6558da776a5fd6776d63d6786e63d0756c61cd746b61c572695fa96a6059a0696056816259506856524c6555534c5e54524c5c5b59524756534b324a4642314d4a441f45423b2447433c244b433e2847423e2d4f4b4531544e47405e574e475b554e4c544f49494f4a44484c484138413c3635413b35363733302b2f2d28262e2c27fffffdf2ff8b7e72ff73675cff75695ddc4e4741e6514a43ee544b46db504943bf49433dac453f3ab046403aad46403a9d423c37b949433db647423ca5443f3ac34b463ebf4a443ec04c4540a645413caf47433d9c423f39bd4c4640ac4a453e9a48413aa64b453faa4c4740d358514be65b554eec5b554ee55a534dbe544d48d159534cae4f4b44aa4d4843ab4f4944ac4e4a43ce575049d75a534dca56504abe524c47b9534d48d95a534ed357524cc6554f4ba04c4742b5514b46a94e4944be534f49c95a544db957514ca3524c488a4f4a4690534e4a7f4c484474474440844e4a46864f4c478e504f4c8c4f4e4b8a514e4a824e4c48854e4c467c4b4944804a4944884b4a468b4c4a46924f4f4a9e55514d9f55524ea0575652a1595750a05a5751975a58529e5c5a549a5c58538955504c8a55524c7355514c66524e48544a494575ca8d4e62231e1a7a26211c7827221d65261f1b8029231f832a25207b2a251f6c29241f712a24205a26211d6a28231f882c2621722924206f2a25205928231f5e292420612c2823702f2a256d2f2a256c302a25542d2723542d2823672a2521872c27238a2c27237d2a26217929252176292420752a2622712b26226e2926225825231f2f24211d44272421412826233f2e2b293e34312d4235332f3d373430443a3733423c37343c3a3532393a36333a3c38333138332f3b3a36313833302b262b2824242826232b25232124201d1c291f1d1b331f1d1a3c1f1d1b461f1c1b4e211f1d63252322822c29278f33302f9434312f9d3836349d3e3b39aa4c484591605b55ff70655bff4b433bff4e463dff28221eefffffffefffffffefffffffefffffffefffffffefffffffff413931fb5a5754efffffffefffffffefffffffefffffffff493f37ff201b17ff4c423b9b39322d79342e2978332e298d39342fa03d3832913e3833803d373294433d37a947403ba949413c9e47413b87413c3691443f399746403a743d383281403a358f423c37b048413caa48413c99443e3996443e388b423c366939332e8b443c3787443d378f453e38a64a423a9d49403879ff9a496eff853d4ec0511e70c55c2675b156278da1532877864521877e411f6d7d3e1c396f2e0f88e0632478d45d23943e352b923e352c8a3b342b7d38302772372f274d2d27212e28221d432c251f452a25203a2b2520382f2a243c3b332c3a3b352d404038313f453c3341463e3640453e3636443b343241393331443d362f433b3433464039323f383434413b3533413b34313a352f3639332c212d2a24232c2a262b2b29262824211f21211f1d2622201d3522211e36201e1c35211e1d411f1d1b49201e1c56232220662624217f2a28258d33302d983e3b39953b393599403e3b9f44423e9f484642a6504c489b544f496b605b535d605952fffffffbff998b7dff7d7267ff786d60ec514a42f9554d45e1504943e0514a44ce4d4740d6504943d4514844ac46403ab047413bc44d463fcc4e4841eb544d46f9585249cd4d4841d04f4a43c94e4943bc4c4741853e3a35a147423bbd514a44ad4e4942af534b45d45b534cc859524cc357514bc457514ab8554f49944c4741974e4943924c47428b48443fc24b4741d44d4943dc4f4b45d24a4640bc46413cb5443f3bb1423e3aad433f3aaf433f3aa5423e39a5423e3a99413e3c8b3e3c377e393732763735306733312d422c2a262f2a28243b2d2b273f2d2c2a3a2c2b28342d2c2a332e2d2a3535322f323734312e37363230393734303937332f3b3a352d3a3734313c3936283a3633263835322c3f3c392b3f3c39243d383428403e39263c3835223c3834293d3a35273b38332636332f3439352f2437342f2032302c2131302c6cc28d4b55211c187727211c7829221e5927201b6228221e6f2b25215d29241e5d2c25205d29241f6625211c4e27221d4825201c36211e192e231e1925221e19161e1a16131e1a16161d19151a1f1b17191f1b161c201c181b201c1824221e1b2c25201b2f28231d2827231d19231e1a19201b18171f1b170d1b1714131f1c181c1f1d192823201c392825214b2d2b275a35312e69383532773a373384423d3996423f3bb04b4844b64d4a46c54d4b47ce504d49c74f4c48be4f4b49d0544f4bc2514e49d0595450cd5a5552bc57524d9f514d48894f4a4693554f4b8b534e4a8b524d49af5d5753c1665f5bc8655f5ac56b655da9655e599f645f59a66c6760af6f6a62ff6f655aff4f463cff494139ff28221eefffffffefffffffefffffffefffffffefffffffefffffffff463c34fb5a5653efffffffefffffffefffffffefffffffff493f37ff1e1915ff473d359c37312b7a332e2968312c27933a3430963e38339c423c3773403a346d3f383389463f3a8e49423d6b3e383272433c3671443e3874413b348237332d5f34312c5a39332e5536312d3e322d293a312d2733312c262a2f2a251e2a25211426211d1224211c1525211d16221e1a18231f195aff8b3f71ff8b3f4cb94a1b6ec35a2568a9501f75994e235b7b3c1a5d73391853743717306e2d0fa4e76c2a61cb561e1d2c251c1829231a0e231d1613251f191a28231b1c28221c242a241e332e282244342e27503a332b5e423a31734c43396f483f3676473f368e554b419752493f9c514a40b65a5249b559534bbb59534ac660594fd8695f55c45e564ebc5b544ec15f5852ca655d55cd655d55be605851c5625b54bd5f5b56b85d58529b58534e9257544b8859524c855f554f7d5a524b7f5c544d7b5650498d6059529c655f57b06c645dae6e645eb676706ab2837a729c7970699c80786f8a7b726b887771689e80796fa0827b71957d736bfffff7eeff97897cff786d60ff7b7064cf514a42c3504841aa443e38b44e463fab4b433d9847413b9b454037943936309f3d39336a39352e6b39342f6738332e5735312c4c302c2741322e2839312d26302f2b25252b2723182824201626221d1224221c1526241f1523211d1424211c1624211c1524211d1e272521242927231b2724202c2e2b2531302c274a37332f543c3730573e3831533e3931413a352e423a36312c34312d282f2d28212e2a261e2c28241f2c29231829251f0e23201b1325221e182624211a2825221c272522212927242e2e2c293b353331433736334e3a3936533f3c386644423e6342403c6c44413e6141403b7c4a474479494642864a49448a4d4a4799504d4b9b504f4da251504fa9555552a9555451b25a5753a354524fa755544f9951514da9585753a7565551a85755519851504c9c575550a25a58558dce92550e17130f1117130f191915101f1e1915201f1a152c221d1832231d192f221d192c211d1821201b171a1e1b17171a16131317151114151210161614111e1916132c1e1b1729211d193925201c4128231e3725211d3426221d452b2621502b27228a2d28249a2f2a26932e2a268e2e29268a2f2a26842f2c288138352f7a34302c7b36312c7a38342f94413c379f46423d9b4a4440ae534e49ba5b534da94f4a45974d4844ab57514db55c5751a459544fc3625d58aa5b5551c2615a55a759534fbb5d5852a15b5550ac5e5953985a5550a16059559d5f58559d6058549359524eae5e5754af605a55bb6a635cd16d675fca6e6661b467615bbc6e6964c9807972ff6c6258ff4d453dff483f37ff27211defffffffefffffffefffffffefffffffefffffffefffffffff453b33fb5c5855efffffffefffffffefffffffefffffffff473e36ff1e1916ff473c347c2d2722251d1a160e1e1a17101e1a16111f1c171a25201b1e2b262228302b26222e2823383730294238322b3d352f2a3c332f2a3d342f282e312d271f2b27231d2a27231626211d1727231f15211e1b131d1b17131e1b17181f1c181f231f1b2b2a2622292c2723332f292340332d265eff9d4764ff8b3957d75f225bbd562059a1491d6a9348205373381a58743a1848723516286b2b0d91d65d2560c4531dba4c4136bc4d4437bb4e4438b0514539aa5044399c4d4237aa52453ba652463aab55473dd2625145c5605246cc66584ab2615549c66b5d50ca756456cd7061539a5c5046926054499b655a4ec17a6b5da8746558956e6155ac6f6257b172655b9f6b5e55aa6e6257af6c5f57a4695d55a4635b52956059518d5e564f99615a528861595185635a538660565190665c558a675e57785b554e895e5851955f585292625b549e6d655daa786f67be888076bc8b8178ad887e76997a726aa57d78709c857d739380786f907b7369fffffdf2ff9f9486ff766b61ff786c60332e292348352f285b39332d603a342c5637322c5435312b5637312a41302c27382f2b2627292622242825211826231e1925211e11221e1a141e1c19131c1b18121c1a1719201e1919201d191f221f1b2b2a27232e2f2a252d2e2b2639322f2a4437332d4739342e533b36314738332f3d33302b47393530543d38336e423d3766403c357b44403ad24c4843de4f4b47eb534f4bee56514bd7514e49e655514dd1514d49d955514ad856534ccb56514cc155504bb1504b46ae524d489e514c46af57514ba1534e49964f49469b4f4a45b35c544e9f5a554fa55b57508b5450498c58544e945b5751935b56509c5d56527e524d49694d4945684f4a476f514d49825a5450805954507857534f65524f4a7d5956507f5b5752775955517b5a56517256514d895d575369524d49845956527b56534e83cd9654311c19143b1f1b1641221c1744241e1a5b28221d5c28231e6829231f6e2b2621852c27227c2e2822672a25205a28231f6128231e6629231f652a25206e2b2722642925216d2c2723762e2824732f2925672c27226a2e29245c2b27225c2c2823662d29246b302a2678312d286b2f2b267a332e286c302b267134302a74332f297634302b853a35307e3c36328a413b379947413c904a443e8d4d453fc1544e48a54f494492504945a959524db25c5651b05c5751a75a534faa5d5551a058524e8e534e499a5a55519158524e8657504c885953508558524d7b57504a76524b477f56514b78544f4b8b5a534f935a554f855a554f7356514c825f5a56886a6460ff74695fff494138ff463e35ff27211defffffffefffffffefffffffefffffffefffffffefffffffff473c34fb5c5955efffffffefffffffefffffffefffffffff494037ff201b17ff483d358b302a254125201c3227231e3e2c2723422e29244c38322c503a3430623b35316b3f39346e413b357f413b367e453e39a345403ba747423db64a443f8e47413a85423c3773403a35743e3833843e393488403a358f433c3788413b359a463f398c423c368d413b35a3453d36ac483f375bffa44861ff8f3c63df662457ba551f469b46196794481f567a3c196a773d1b507236172366280c74c9572066c1541dae52463abc54483c9e4e4137a7514439ae54463a964f4136aa52453ab454473cb956483db3584b3fb65c4e42da69584bb45f5245a76052459d615548b567594cc66a5c4fa164564b8a6052479c6a5c4f986f5f53aa756558a36d5f52a06d5f5490665951a26d5f5692675a5191655a52785951498259544e916158527b5c544d745a5048775d554e6c59514b7b615950695d554c64554e496d56504a6d5a544c6459544c6c57514c6e635a5487716a6275716a61726a635c6c6d665e6c6b655d686b655d76716a6159605a51fffffff6ff9d8f81ff73695cff786e6087403a3493443d36a7464139ac49433ca64a433ce34f4a43dd4f4a43e7524b44cb524b42c24f4941b44a433d92433e39a348433ca949433cab48423dba4b4640c24e4842b64c4740c6514b44be504a43b74f4942a74b4540cb554e49d956504bd457514bda58534cc6544e48ba504b45bb514c46ab504a45a94f4944a84e49449d4c4741ad504b45b8524d48bf55504ac056514bc256514bd059534ebc55504ac35a544ed55d5851cd59544eb1534d48b7544d49bb554f4ac85b544ea5544e48b358514cb458514db857514c9a4e49449f534e499e57524dbc615a559658534d84514e487b524d46724e4a468355514c955b56528856514d70514c485c4b4743664e4a467355504c65514c487454504c7155514c7157534e745a555162534e4a7a5b555266534e4b6b55504d6754504c594e4b4774cc864d6f241f1a6c241f1968251f1b7528221d6726211c7528231d7028221d5926211c852b25206928231e6327221e6528231f5f27221e6528231f6227231e6d2b26216228241f5c292420712c27226e2d27235d2a25216e2e2924672c27235f2c2723622e292476322c286e302b266e2f2b2575322d2877322d2873322f2960302b2675332e298638332d7838332f813b3532813c37339646403ca84b453fc3534e48aa4f4a448747423e8e4d48459f56514c91524f4a8f534d4986524c4887514d48734d48446d4d4844734f4a4677524d4a7d56504c97605954855a544e895c555091605954935d5854885c5653865c5551a367615b9e64605cb1736c69b677706aff70655cff473e36ff453d36ff2a241fefffffffefffffffefffffffefffffffefffffffefffffffff453d33fb5c5855efffffffefffffffefffffffefffffffff483e36ff1f1a16ff443a33a0362f297f37312b8437322c8d3a352f7639342d84433b369947413b7e403b3680403b359a464039a949423d743d37327b3e3934aa47403c9e46403a8d433c38803f393481403a358a413c36803e39338a413b35813f39338e423b3699443e378a403a34813d373197443c34a4453d345effb24c59ff913a6de26a2648b14f1c54a34d1e5f93471e4d783a186f7a401f61783b1b2f682a0ea3d7622768b74e1caa504439b252463bb755473cb154473bb254473b944e4135b453463ac6584a3eb354473cab55483db75b4d41ae584b3fb35c4e42c0615446c3625548cc6a5b4ec36b5b50b466594d935c50466c50463c9d695b50956a5c4f8262554a7d60544a8662564c7d5f544b70584f46715a504861524a425f4f49426a554d466a574e4765534c45725a524b7f635a547d605852735e575175615a536c5c534d7a645d567b615a547d675f5971625b56767068628379716a907870697b706b678b797169917a7269766a635c6a645e56fffffff5ff9a8c7fff776b60ff7a6f63c54b443ce6514a42ed534c459d413d36a3463f39b748423cec544d46e6524c45bc4b443eba4b453fad48423bb34a433cbd4c4640aa49423db54b453fb64a453fac48433db54b463fc5504a43c5504a44b34b4640ae4a453fb34d4843c2504b45d6544f49ce534f48a64b463fa04b4741be524e47c2564f48b04e4943b3514a43a04d4842c457504aa5504a45b8534e49d15b5650bf55504ab7534f49c457524bba55504ad05b5551d15b5651c558524dc859524dd35d56519d514a44b1554e49be57514cca5b5650bc56514ba5514d47a2534e49ad59544f98524f4987504b478a514d489255514b9456524da15c5853a7615b5780544f4c7c534e4a6c4e4946584744405045423f6f504e4a674e4b465e4f4b475a4f4c47594e4b475e504c48574f4c47544d49455e514c494b4a4643494a474473ca8f506d241f1a64241f196925201a6e26211c5e25201b5d24201b6125201b6725201c6827221e6b28231f6427231e6f29241f762b262168292420702b25215327221e632a24205c28231f5027231e4e27221f4e27231f612c2622662d28246a2d28246d2e292581322d286a2f2b26602d282473312c2761302a256f332d285d2f2a2675332f2a7e35302b7b342f2b893632307a36312e7b38332f8c3d39348b3f3a369546403bad4c4743ba514c48d55a5550e5605b58ae5b5551fb706964a26c686278605b55935f5a53fa7f7b75d477726dd37b756dc87c756dab7e756d5e70686150645c578f6f696183706963786b655f555e5851465f59533d59544e2b524c46ff766b61ff474038ff463f36ff2a251fefffffffefffffffefffffffefffffffefffffffefffffffff403830fb5b5855efffffffefffffffefffffffefffffffff463d34ff201a16ff413831a1342d287a36302b8a38332e7e3a342e7d3d362f86413b3491453e398b433c376f3d37317a3f39348a433d37733c37328a3f393488413b378b423d37a146403a85403a3499473f399d453f388e423c3691423d3693443c3787403a33753c36308b413a34813e37326e3a332d743a342d69ffc05955ff963d3acf5a1c31b44f19489e471a6a9b4d235f7b3e1d5870371750753616316a2c0e8ec957214ca44316ac504439a853443a884b3e34a55143389f5043379b4d4135b756483cbf584a3daf514439af52463bc1574b40bc564a3e954d4037994d4137a64e4339a551463ca7584c439e54483ea9564a41a0574c42b65c5146c061564bd2655b52b86e61569e63574dd96f6359e07f71666c685c5265675d54515e584fd7797367c77c766ba6726b63ae797069c1837770ae7d766da5898277627e766b42796e623b6a635a78736e636b6e6a5e5c766f6556746d63436b655d366963593768635a2f625f54225e584f1b59534b14534d44fffffffcff9f9285ff71695dff7a71669a423c35af46403ad14f4842ae46403a9f433d38c749443dbe4a443ec04b453ec24c4640d14f4942bb4b453ee3574e48d9534b45e4564f48c5514944cd4f4a43c24e4842ca504a439f48423ca248423db44c4641a248433e9b47433e8f443f3b9746423c90453f3a9045413c8a44413b9f4b4641b3514b46b04f4a44bf554f4ab8544f49c1544f49bf544e49e35c5751e8605a54c758524da6514b47a9504a46b6534e49d45b5751c95a55508348433fb6544e49b9564f4a964e4842ad514a46c95b554fcd5b554fbe57514cab544f4aac534f49b7534f49bb55524c904d49457c47433f874944418a4a4843814b4944794945428e4f4a4773484340804a46437044413f7b484542844846428c4b49469b4f4e4b90514f4c6c5d5854754f4c499c575451a45a5854786d6a6441544f4c495a57536fcc915268221d197826201c7728221d7c2a231e6326201b6226211c6c28231f6a29241f5b26211c6728221e5828231f662a2621772a24217227231f7f29241f842a2520892c2822832b2722862c28247d2a27237f2a2521772a2521762a2521612824202925221e3427231f2d26221d2c27241e2e27231e2425211d2326211c1d221f1b1d24211d1b24211d3023211d2822201c2923201d26231f1c2625221e2826231f1e23211c302f2b27292c292530302d2939373330413b3734373c3834323a35313037342f2a34312b2b312d2a202d2a27292f2c282b302d2a292d2926222c272421262220212423202023201e1f1a1816211918151a18151323201e1c28242220ff796e63ff473f36ff484037ff2b2520efffffffefffffffefffffffefffffffefffffffefffffffff433a31fb5b5754efffffffefffffffefffffffefffffffff484035ff1e1a16ff3f3730952d29248036302c8637322d923e383392433c369a47403aa54b443d81413c3683423c367d413c368d443e3985423c3885423c37733d38338e443e387f413c3678413b3588453f38a54a453e98413b35963e3a339e3e3933a8403b34b0423c35b6443e37ad413a35b0403b34b1403b3350ffae4b44ff89344fd4602158c05a2262ad54223a8a40193c7437164f6c331651793c1a296a2c0e89c3542055a142173b342c232b302820272d251e222c241d212d251d1a27201a1d2b241d1e2d261e252b251e2c29241d2429231d272b241f242a241e262b251d222c251e222e2720252e26201c251f1a2c322b2433372f282c342d2430362f292b36302a343f37313b433b3337463f363a4a423b2b433931303f3a332b3a362f2d3c37312b38312e1f36312d2836302b2e35312c2b35312c292c2924222c2925242c29241f2925221e282522181b1a171c2623201a25221f1b26241f1d26241f151b19151f211f1d1f1a181620211e1b25201d1affffffffffa8998cff776c62ff7e736abc4a443db64a443cc34c463fbc4c453fc04c463fb348423ca0454039d0514b44bf4b443ea949433daa4a443ec2524b44d8564f48cd4c4741cf4c4640bf47433dcc4a463ed44b4640d84c4841d14a4640e1504c45cf4a4641cc4a4741d84d4b45d14b4843cc484640bb45413dbe44403dba46423da8413f3aaa423f3bb545413da6423d394535312d33332f2b4636322e3a34302c32302e293633302b3734302b3b35312b31302e2a2b2f2d28292d29251f2a2623252d29241d2925221b2825211d2b28231f2d29241a2a27232e2c2b272c2a292523292724252b2825262b292620292624212b29251c2b29251c2b28241e2d2a271a2825221524211d1c2d2a262c33312e22302d2a23312e292633312e2333312e2b3b38352c3f3b382d3f3c3729403e3829423f3b27403c38213d3935253b3a3663c38c4b271f1a152d1f1a15271f1a15241e1915211d1915211d1a152b1e1a16221f1a172c1e1a16251e1a1623201a1625211c172d211d1a30221e1926201c1729211e182a211d1923201c181d1e1a17211e1a171d1c1a161e1c1916161a17141a1c1815201d1a161f1f1b171b1d1a161c1e1b161b1d1b17171c1915151a1815171b1815201d1a171c1d1b173722201c46272420472724214a2a2623562e2b275d322e2b7038353183423e3a5e433e39483e3935583e3a3662433f3b6a4a44406247423e6245423d714b464270494441714e494675534e4776544f497658524c7b5d55508f615b55a25a5551b7645e5ac36d6761c278706ac77e776fc98b857dc2878077ff81776dff4c433cff4a413bff2a2420efffffffefffffffefffffffefffffffefffffffefffffffff41362efb5b5754efffffffefffffffefffffffefffffffff483f36ff1b1814ff3f372e772d28222929241f2a2b27212c2d2923292d2822262f2a23252d2924222c28241e2926221e2926212f2a2723252a2622232925212c282522252927222a2c27232c2e29242a2e2924332f2a253c312d283e322d273d302c26352e2a2437302c25382f2b252b2b26212c2a25202828231e45ff9b4030ff772a2fc2511934ad4a1944a34a1b1d7933113e763b193b693114537639192a6b2d0e80b94f1d64a040171e27211a1b27211b16261f1a13241e1813231e1816251e181f28221b2128211b1b29231c412c251e46302821492f29224e322c234f362e265c3830285c3f362e6b453b347e493f3794554b4092574c4158574b3f4951453c6051473d5d52473e68574c436f5f534962574d4465564e4362534c436b524b447657504969544c457358514a745c534a795b544c795d564e6c5650497d605951725e555088655e558c58514cae605a54af6b645db0726b62ad716a63ab716a63a7746c63b179736b97777066a56d655d8e5e574effffffffffafa195ff7f746aff80746b1c26221e1b25221d302624202826241f2427231f2925231f2e2623202a272520312a2723322c29233b2f2b27372e2a2642322d2849342f2a5137322c5439342e5637342e40302e284f37342f4133312c4836332d3b312d29372f2c26312e2a25312e2a25362f2b272e2e2b262a2a28232d2c29242c2b2924222826212024221e23282420342e2a26292926232f2c292523292622212a26211e27251f1e2825201c2725201c272622192522201624211e1324211c1222201d1324201c1826221f1e282421292a272319282521242c2a26422f2d2843322e2a4d312e2a45312e295032312c4935332e5536333056373432553c38355d3f3c3a65423f3c724946427349464371524f49444c484238433f3b524a46424d4b47414d4e4a465a54504b5b5b56515558534f5556524d5a524f4a524b494488cb93582316130f28181510281b1712261b1814301c1915561f1b185d211d196a221d1a6c211e1a6f221e1b7d24201d71241f1b7b25211e5e26231f9627241f9a2a2520a22d2823962c2823992c2824922c2825682b2622832c2824802c2824782c27237a2c2824652d2824682b2723682f2b2676322d2871322c286b322d296d322d2976342f2a74352f2b8539332f813b36326c34302d7837322f9a413b38b348423ec0524d47ba5a544ec1635a54bc665d58cb6d6560c1726b65bd7a716bb27a736bbc7e776eb679716ab67e746dad7a726b7e71685eab887d73b08b80789882776f97847970a88a7e76b2958b81dfada398d9b4a99fc7b1a396caada296d7aea598ff7f766dff4d453eff4c443dff2c2722efffffffefffffffefffffffefffffffefffffffefffffffff40362ffb5c5855efffffffefffffffefffffffefffffffff433a31ff1a1612ff40382f6e26221c201e1b17201f1d182825211c1b25221c2b29251f2d2a26222d2b2722352c28235d312d2961332e2b6c322f2a7234302c7733302b76322f2a8536312e913934308437312d983b34306d39342f6f3a3630ba3f3a35c1423d36c8433d36d747413ac4433d38d0454039d346403933ff8d381bfb671f28bc4a1732a945174ea3491c3a7d371537703515456b33155473361730692a0d95c3562071aa481bb853463bb657473db154453bac53453bb456483cac53453abc57483cb957493cc2594b3fc2584a3ebb56493ea74f4338954c4036ae574a3ed0615144e1645549ec65574cf06c5e51ea716255de746355e27a6859cb726356d86f6156c86c6055c574685cbe78695daf76685cb37f7063b57a6d60a2696056bf776a60a273665bb2766b60675f55489e73665ba771675da76e665d93675f577e6357508c675b539d695d579a675e57ac71685fb9766c63b9756c65ab71665e98685d55ab70665eae6a6259ac655d55af5f574fffffffffffb1a498ff7f746bff7f746a462a272267302c2869322d2a6e302d29792f2c288334302c8833302b8b36312d9638332fa1383430aa3c3732a53d3733aa3d3833c1443e398b3d393486433f38da48433ede4a4640f3504c46f3514d46f557544df3524f4af455524cf657544ef65a5750f75a5750e256524da94c4742ef59544eeb58534ee656514de357524ddf57514dd1524e49db54504ad757524cb74f4a45a64a4741b5504c46b7534f49cf5a564fc95a5450c75a534fc457524cc458534cc15a534eb4554f4abc56514bcd5b554fd65e5851b857514cc759534ec959534dbe58524da9534e48904b4741a0524d48a958524db95c5550b757514db75c5551c2635d56b6625c56aa5f59549e615a549c666058945f5a537e514d4985534f4b8256504d7d56534f855e5a567e5e595579605b56725c58537c5e59557556534d70cd764571231f1a7425201b6e28211c6a26201c7b29231e6926221d6226201c5f26211d6d29231e52251f1b48241e195e28221d50241f1c6427221f692a2520812e29236f2c27215e2a2420642b2521612b25216e2c2823682c27226a2c2723742f2a26782f2a26702e2925712f2a2580332d286b302b266e312b27652f2a27632f2a27592c28245e2e2a2663312d296a342f2c68332f2b8638342e953a3530b2423d38a951494598574f49905e564f9869615abc7a7169a37a7269ad878075b28e847ab3898077b07c746ca3786e677669605889736b63997d746a997c71687c6d635c8f726a60a77e746ab9837b71ba827970ca8a8177db8f847cd78a8077cd827a71ff877e75ff4e453eff4c433dff2c2722efffffffefffffffefffffffefffffffefffffffefffffffff423930fb5c5855efffffffefffffffefffffffefffffffff463e34ff1c1814ff3f372faf352f28913a342e8e3a3630913e39339d453f3887443d3583403b3582403a35a948423d85423c377840393382413b3685413b378f433d38793e39326439332e6439332c83413b346d39342f6a39322d853e37328c423a349c443e37b84b433ca3453e378f403933843d362f904039312dff813023f766231aac3e1143ae481b57a2491e53883e1b3e6e3115556830153f6b2e1334692a0e80ae471981ae4b1cb05043389b4c3f36aa514338a34f4237a14e413685473c3287473c31974b40358e4a3f34a04e42389f4e4238a54f4338a04f4338ca5a4d40d4635345fa6a594be9625447ee6d5d51d96b5c50db6f5e54c76f5f52c9726255d16b5c52bc66594faa695c51c2726558c3776a5dbf7e6f61ba76685db8685c53b46a5e55875d544a775e53498a62594f86655a4fa46d61579361564e845a51497a584f477d574e469260564eab6a5f55a0655d559b655d54a1675e56a6675e56bc6d635cb2685f57ad685f579b5d554e9d564f49ffffffffffb8a89bff827369ff82746bea544d45bf4c453fae48423cc34b453eab47413acb4f4842c84e4742a847423b96423d37843f3a3490413b35bd4e47409e453f398b403b35a648413bbb4e4841ba4f4942ba4d4942e358524cf35b554ed4554f49b64e4841a64a4640b44e4842b7504a43b54f4a44a74b4640c9534f48c3514e46bd524c46b8514c46c7564f4ad159514cd559524dd456504bd657504bc1534d48c2544e49d159544dce5a544fd35c554fb7554e49b3544e48c357524bb9555049a54f4a45af524c478f494540924a4540ad504c479a4c4742a34e4943b3534d48a4504946b4534d499c4e4944c05b544fd1635c56c9605953df665c55cf615a53c05c5551c65f5a54ad59544fa75954509d5a55509256514c9156514d9256524e8d55504d81524d4a75524e4a875a5652895c58538b5d5854815854508058544f83ca774b6f241f1b7025201b7126201c65241f1b6c24201b5f241f1b6d27211d7a29231e7228221e7c2a241f6c29231e6d28231f742a25216e2a2520712b2621702c26216d2c2721652a2521692a25216e2b27226c2c2723702d2924692d29246d2e2924652c2823692e29255d2d26227b322c2870302b27602e292572312c2872312d286d312d28612f2b276f332e2a7235312c7334302c7736312d8937332e8c39343096453f3b8e4a433e8a4f484295554e489c4e49439d5550499b57514c985b554e9659534da75751499f554e47784d46409656504ba05c564eb8625a53ab5b544d97554e49b4605851cb655e57cd615a53c25f5852d1655e58c8625b55a958524bff80766eff4d433cff4b443dff2a2520efffffffefffffffefffffffefffffffefffffffefffffffff413830fb5a5654efffffffefffffffefffffffefffffffff453c33ff1d1915ff433b33c83c352f9b3e3832913d3731943f3a3493413c358f433d3688403b35713b36317b3e38347a3e393488423c3684403934a947413b96433d37af48433cab49423b91423c359a443d3795423b3599443d3796433c368d413a339a453e369e453d369d453d368c403a32954039329a41393233ff843735f96c2c2fb244163c9f3e175d9f4620377a3113476a2e142c5b250f516e32173164260c8bb0481a87b34c1bbc52453ba34c4136914a3e34a14f4237b855473cb254473ba6524538974e4136964d4135b354473bb255483db053473bb954473cb454473cc95b4e42d85c4f43bc54493dd3605347ca64554ac965574bb663544ac8695b4fb2594d44a9584c44a860544aa760554ca363564c9c685b4fa064584ea65c51479a5a5045985f54496a4f473d885a51498e625a4f9b665d52a35d554caa625750915951498659504a9861574fb06b605999605650a9655c53a6635a53a6665d55b0665e55a56058508c5b534b885a534a985c544dffffffffffb2a394ff7f6f64ff7d6f64b146403aae46403ac54e473fd24f4842ce4e4840ed544d46d3504841f959524aea564e46d6534c44cc504942d8534c44bf4c4740d6534d45c1514a44ca544e47b94f4942cf534e46c9524d45d2554e47c7544d46b64f4a43b74f4943b84f4944c4524c46ba4f4a44c1524e47c1514d46cf56504ac2544f49b7524d47bc534e48c4554e48be524c46a94d4742c3534c47ad504b45ae504a449c4e4841d35c544ed15d5550bc56504bb4544e48a04e4943ab524d47c859534ebe56514bcb5b554fb2555049a6524c479f4f4a45bb544f49c759524db656504bb7554f4ab2534d48b656504bb459534dca5e5853ca5d5753b4544f49b6524d48ba544f4ab4544f4aae504b47a44f4b46904c46439e534e4a90504b48824c48447c4d484579504b4879524d4b7b514c49774f4b46704d494574504c4789bc6e46e226221ede25201ce3241e1ae3241f1ae2241f1ae4241e19e5251f1be426201be0251f1ae228211ce327211ce326211ce426211de2241e1ae525201ce426201ce227221de228231ee628221de629231ee52a2420e32a2620e22a241fe52b2420e62a2420e62c2621e22d2621e62c2621e429241fe32b2620e52b2621e52d2722e42f2924e02c2621e2312b27e3312a25e22f2924e52e2a24e6312b26ea352f2ae6332e2aea322d28eb36302ce735302cf0312d29f0322c28ec312c27ec322d29ea332e2aec352f2ae9302924e4332d26e7302a25e9322c26ee352e29ea352f29ea36302ae8362d27ed38302aed3a312aed41372ff83f342bf13e342bed3c3229ff41362dff392e25ff3c3026ff362b22fc5d544dfc5b524bfc5a514bfc5a514bfc5a514bfc5e544dff3c3128fe3e342dfc62574ffc60574ffc5d554efc5e554dff3b3128ff352c22ff3f342aef41362be944382de642362ce344372de446392de8493a2fe8473a2ee845382de842362bea44372dea45382ded44382de944372ce545382de54b3d32e94b3b30e94e3f32e94f3e31ed514032ec574436e9574231eb58422eeb583f2aee573f2bea563f2aed563f2bea563e2af0553d2b27ff752d2cf7692b2ba6391140a6421a529a431d4d8138194d6c3016516930174f6e33172b64260c6ea6421676ad4719f1443225ee423225ed423426f0423325ee413225f1423225ef413226ec403226e7413125ee413225ed423325ee413225f0423225f2443427f2443427ee413125f6443426ed423328f2403429f442352bf243362bef42352bf23d3328f13b3127f33f352bed3c322bec3d352cee403730ea3c342de93d342ee839312ae73b332ce239312be73a332ce43a332dea3d362fe93c342dea3d332ce9403730e5413932e3403832ea433b35e8413a35e9423b35e73f3631ee49403bf14a423ceb4b433de9453f39e7443e38ed4f4743ff68615cff584e48ff4d453fff4a423df1413a36f846403af3423b35f9453e39f9423c36f23e3a33ee3e3932f03f3932f3423b34f3413932f3423b35f1403a34f7413b34f6423b36f63d3732f13d3732f43e3832f7423c35f4423b35f6403a35f2403a35f5423b36f1423c36f8433c36f8453d38f8433b36f7463f39f8443d37f3423b36f23f3934f1423c37f3413c36f947403bf448413bf74a433dfc4d4641f447413cf0443e39f0443f39f74d4540f7504740f5534943f34f453df1534941f4554b43f1524940f355493ff55a4d41f15c4f43ef605246eb625347eb5d4f44f0635548ee5b4d42ef5e4f42ee615245f2645548f3645549f25c5043f05c4f43f25b4c40eb56493eea5a4d41ed54473ef1594d42ed564a3fe953483de855483eec594c41ed5b5045eb5d5149eb60554ae7594d43e85b5047e6594e44e5564b42e350463b8ba86037ff37312cff352f29ff39312aff362d26ff332b24ff352e26ff382f28ff362d26ff362e27ff362e28ff38302aff37302aff362f29ff372f29ff39312aff3a322bff3d342eff3c332cff3c352dff3e342eff3f3730ff403730ff403730ff3f362fff40372fff423930ff443b33ff433a32ff433a32ff443a32ff463b33ff483e36ff463c32ff4c4138ff4e4239ff4c4138ff4c4037ff4c4138ff4e433bff50473eff4e453dff4a4038ff4e443cff4d433bff4e443cff4b4138ff4a4037ff4e433bff4c4238ff504339ff4d3f36ff4e4036ff4d3f36ff4f4237ff504338ff55463cff524338ff4d3f34ff524235ff524233ff5d4a39ff5b4838ff5a4836ff594635ff584534ff594635ff5b4736ff594636ff564335ff584436ff564336ff564436ff564536ff5a4839ff5e4a3bff5c493aff5a4839ff5b4939ff5a493aff5b493aff5c4a3aff614d3dff63503fff604e3dff665240ff665241ff6c5644ff695341ff6f5844ff715a44ff725944ff6f5743ff715944ff735b45ff715a43ff785f48ff796049ff7a6049ff81624bff87674cff8e6a4fff936e51ff9c7456ff9c724eff9d6c44ffa16b3fff9f6a3eff9d693dffa56f41ffa76f42ffac734531ff79323afd7d3b57c64f1f48ae451a5d9d441f4e8037194f6b2f1643642c124e6c32172c64270d76aa4418549c3b13ff825a39ff7e5737ff7c5636ff7a5435ff7a5435ff7b5738ff785436ff745337ff745237ff725136ff745236ff755236ff715035ff714f35ff765337ff745136ff735136ff70523aff6b523bff6c533dff6a513cff68503bff664f3aff664e39ff644e3aff614d3dff625042ff645345ff615043ff5d4e41ff594a3eff594a3eff594c41ff5c4d43ff5a4c40ff5d4e42ff5b4d41ff5f5144ff615347ff67584cff695b4fff6a5c53ff6c5e55ff6e6157ff6e6057ff72655bff75675dff7a6c60ff786a60ff756860ff776a62ff796b63ff796c63ff786b62ff796e67ff796d64ff776b61ff75685eff7c6f64ff776b60ff716458ff716558ff73675bff706458ff716559ff706559ff6f6459ff6f6459ff6b6157ff6d6258ff6d6259ff6f6258ff70635bff6e635aff6d6359ff6d6058ff70635aff6e6258ff6c6057ff6b5f56ff6c5f56ff6b5f54ff6c5f56ff6c5f56ff6a5f55ff6b5f56ff6a5f56ff6b6158ff655b52ff6c6158ff695f56ff615750ff5c514bff5b5049ff5b4f46ff5d5249ff5d5147ff55483dff5b4d42ff594b40ff584a3eff544639ff534437ff564639ff554639ff58493bff524337ff524437ff504135ff544638ff534537ff57473bff56473aff514237ff4e4034ff4f4135ff4a3d31ff4f4135ff4d3f34ff4f4135ff4b3e32ff524237ff524437ff59493bff5c4d3fff5c4c3fff5e4d41ff594a3dff5d4f42ff5e5043ff59493dff59493c92a25c33ff39322dff37302bff372f2aff372f29ff362f29ff352f29ff38302aff362f28ff382f29ff39322cff38322cff39332dff39312bff39322cff3c342eff3c342eff3e362fff3e3630ff403831ff423a33ff453c35ff443c35ff463d36ff463d36ff463e36ff463e36ff473e36ff483f36ff4b4138ff4b3f37ff4b4036ff4c4239ff4f443cff54483fff51453cff52463cff504439ff52453bff544940ff554b40ff54493fff50443aff50443bff55493fff55483eff4f4338ff504338ff4e4036ff524338ff514236ff544438ff534337ff4f4035ff504035ff514235ff534337ff524135ff503f33ff4f3f31ff554333ff594736ff5d4a3aff5c4938ff5e4a38ff5d4938ff5e4a38ff5c4737ff5a4738ff584638ff5a4638ff594538ff594638ff5b4739ff5c493aff5e4a3bff5c483aff5c4a3aff594738ff5a4939ff5b4a3bff5e4b3bff5f4c3cff63503eff675341ff6a5543ff685442ff6a5442ff6a5442ff6d5643ff715943ff705742ff725944ff725a44ff765d46ff785e47ff7c624aff7a6049ff7b6049ff7e6149ff89684eff8d694eff946f52ff9b7456ff9b6f4dff91663fff9c683dff9d683dff9c693dff9d693dffa06a3fff9f6a3f44ff8e4346ff79355ac8532154ab481e5098421e49823b1a537135195e6b32186c73371b3a66270d70aa44175ba13e15ff865c3aff835b39ff7f5939ff7d5737ff7c5637ff7c5637ff785336ff724f34ff735236ff745236ff725136ff735236ff745236ff755237ff755236ff745136ff765438ff6f5139ff6d523cff6d543eff6c533dff6a523cff6a513cff6a513cff664f3cff64503fff675445ff655345ff605043ff5c4d40ff5b4c3fff5a4c40ff594b3fff5a4c40ff5b4c40ff5a4c41ff5a4e42ff5d5045ff63554aff6b5d52ff695c51ff6a5c53ff6c5f55ff6c5e55ff6f6358ff706259ff76685eff7a6b60ff796b61ff75685fff73675fff746760ff776b62ff746860ff74675fff72665eff73655dff74665cff76695fff796c61ff73675cff706558ff71655aff706458ff716559ff72675bff73675bff70655bff6d6157ff6e6359ff70645bff70635aff71645bff6f6259ff6f645aff70635aff6f635aff6e6259ff70635aff6f6259ff6d6158ff6a5e55ff6a5e55ff6a5e55ff6d6158ff6b5f56ff6a5e55ff6c6159ff6e635bff6f645cff655a52ff60554dff5a4e46ff5b5048ff5d524bff5d5249ff5b4f44ff58493eff584a3fff5b4d42ff5a4b3fff534538ff554639ff524337ff554639ff554639ff564739ff534539ff514236ff504135ff4f4134ff534537ff524437ff4e4034ff493c30ff4b3d31ff493c31ff4d4034ff4f4035ff4e4034ff4c3f33ff4e4034ff554538ff58483aff5d4d3fff5f4f42ff5c4b3eff5a4a3dff5b4c3fff5d4f42ff5a4c40ff59493c999a5731ff3b3531ff352f2bff362f2aff332d28ff36302bff37312dff38322cff38312bff38312bff3c342fff3b3630ff3a3530ff3d3631ff3e3630ff3f3731ff413933ff413932ff433b34ff473e38ff473f38ff4a413aff4c423cff4d443dff4c433cff4d443dff4c443cff4d443dff50463eff51463dff4e433aff4f433aff4f433aff554a41ff564a41ff564940ff574a3fff5c4f43ff594b41ff5c4e44ff594c42ff574a3eff55473cff56483dff594b3fff56493dff56483cff544438ff574639ff59463aff5a483bff59473aff574639ff564538ff554437ff544336ff574539ff554335ff534132ff564433ff554334ff584536ff5a4737ff634f3eff695442ff5d4a39ff634e3cff604c3bff5d493aff5e4a3cff5e493aff5d4a3bff5f4b3dff5d4a3bff5f4b3cff5e4a3cff604b3dff5e4b3cff5c4b3bff5f4d3dff5e4c3dff5f4c3dff604e3eff634f3fff655141ff6b5645ff6d5947ff6f5946ff6d5745ff6c5643ff705742ff715943ff725943ff745b46ff79604aff796049ff785f49ff755d47ff765d48ff7d624bff85654dff8c6b4fff977255ff9e7759ffa77a56ffa27149ffa56f43ffa16d41ffa26e41ffa46f42ffa46f43ffa16d4247ff8e414aff7e3a54c854203d9f3e1543953f1956873c1b5b7034195b6c33175b6f32173f69290e6da3401769a74318ff8e6340ff895f3dff835b3aff7d5839ff7f5839ff825a39ff7d5739ff775438ff735236ff755237ff735136ff715036ff735137ff745236ff755236ff765336ff765438ff73543bff70553eff6a513cff6b523cff6a523dff6b533dff6c533dff6a533fff665140ff685445ff655345ff615144ff594b3fff5a4b3fff5a4c40ff58493dff584a3fff594b3fff594c41ff5a4f45ff5d5249ff64574dff6a5c53ff6c5e55ff6a5d54ff6b5e55ff6a5d54ff6d6056ff73665bff78695fff796c62ff7a6d62ff776b60ff746860ff736860ff746860ff73685fff72665eff746860ff73675eff6f625aff74685eff72665cff72665cff70655bff726559ff716458ff716559ff74675cff71665bff6f645aff71655aff6f6359ff71655bff72665dff72655bff72655bff73665dff70645bff70645bff71655cff73675dff70635aff6f6359ff6b6056ff6b5f56ff6e6158ff6c6057ff695c54ff695d54ff675c53ff6e635bff6b6159ff645850ff5f534aff5c5149ff5c4f48ff5b4f49ff574c44ff584b40ff56483dff58493eff594b3fff57493dff56473aff534437ff57473aff5a493cff58493cff57473bff55463aff524438ff524337ff4e4034ff534437ff534437ff4f4035ff493c31ff4b3e32ff4c3e32ff4c3f33ff4e4135ff4f4236ff514237ff514437ff534437ff5a493bff5b4b3dff5d4d3fff5b4b3dff59493bff57493bff57483dff5a4b3fff5a4a3ea6b26339ff3b342fff3b332fff38312cff38302bff3a332eff3d352eff3c352fff3a342dff3c342eff3e3731ff423b35ff463e39ff443d37ff443b34ff453c36ff473e37ff4b423bff4e453eff50473fff514840ff534941ff524840ff544b43ff544c44ff544b44ff534a43ff584e46ff5d5047ff5d5047ff5e5147ff5e5148ff5e5249ff5c5148ff5c5148ff62574eff675c52ff64594fff5e5449ff61564bff64574cff65594eff64584dff66594fff675b50ff64584dff685a4fff62564aff615348ff65574bff6a5b4eff6c5d52ff65554aff695a4fff63564aff67574cff635549ff635447ff615245ff625043ff675647ff635245ff655447ff68584aff675748ff675445ff685647ff685646ff675445ff695648ff6a5749ff685546ff685547ff655244ff675547ff685647ff685547ff665446ff685647ff675647ff6a5949ff685848ff695a4bff6d5c4eff6e5d4eff736151ff705f50ff705f50ff756252ff735f4dff735e4bff705c49ff715d4aff705d4bff725f4dff7a6552ff7a6653ff7a6654ff7c6858ff786555ff756151ff876f5dffa28770ffbd9d81ffcca684ffd3a781ffd9a97effd2a278ffc79a73ffd3a278ffd4a077ffd7a1764fff954261ff873e4ac04f1e56b04b1e5f9e451d658e431f547034196f753c1d45703417396b2a0e7ca443186ca64418ffcd9b73ffc4946dffbc8d69ffb58965ffb18765ffb38865ffa07857ff8a6446ff755337ff755337ff765337ff725035ff765337ff715035ff735237ff714f35ff745237ff71543aff6d533dff69503bff68503bff6c533dff6f553fff6c543dff69513dff634e3cff675241ff665344ff604f41ff5c4d41ff5a4d42ff57493dff5b4d42ff594b40ff594c40ff574c41ff5d5046ff5d5148ff63574eff6a5d55ff695d55ff6a5e54ff6c6055ff695d53ff695d53ff6e6157ff72665bff7b6c61ff7a6c62ff776a60ff74675fff776b63ff746860ff776b63ff736760ff71665eff73675fff76685fff74675dff74685eff73685dff74675aff716559ff6d6357ff70655aff6f6359ff6f6359ff70655aff6e645aff6d6156ff70645bff70645bff72665dff73675eff72665cff70645bff70635bff6d6158ff6e6359ff6e6359ff6c6057ff6b5f56ff6e6158ff706158ff6c5f56ff6b5e56ff6b5e56ff6a5e56ff685d54ff645951ff62584fff62574fff5a4f47ff554b42ff554a41ff564a41ff584a3fff594b3fff716052ff8a796aff8b786bff897768ff7f6e5eff827061ff8a7868ff877666ff8d7c6eff7d6d5fff7f6e61ff706254ff736356ff6a5b4fff635548ff584c40ff65564aff685c4fff76675cff6c5d51ff77695dff736456ff726355ff695a4dff615143ff5d4d3eff59493bff5b4c3eff59493cff57483bff58493cff564639ff55463aff504336a6c66d3fff3c352fff3b342eff39312bff3b332dff3d352fff3f3730ff413932ff403831ff413932ff453d36ff4d443dff4f463eff4d443cff4f453dff50463eff51473fff534941ff584e46ff5b4f47ff5d5249ff5c5249ff5d534aff5c524aff5a524aff5b524bff5d534bff5d5349ff62564dff67594fff685b51ff665b51ff645a51ff675d54ff6e635bff6c6159ff6e645bff716860ff746c63ff767068ff79726aff776e65ff736a5fff736a60ff756b62ff756c63ff776f66ff756d63ff756a61ff766d64ff797169ff766d64ff7a726aff7a7269ff766c63ff766b62ff72685fff72675eff71655bff71645aff72645bff70645bff72645bff74675dff75685eff716257ff726458ff716154ff716053ff726154ff726254ff6e5d50ff695b4eff6b5b4eff6b5c4eff6a5c4eff6b5b4eff6a594cff6c5d4fff6d5e50ff6f6153ff716356ff706458ff726659ff75685cff766a5eff776a5dff74685cff74675aff746658ff716152ff706152ff6e5e50ff6e5f50ff726254ff756556ff766759ff716559ff71665bff6c6157ff675d54ff796d62ffa29384ffcab6a4ffdfc8b3ffe5cab3ffefd2b9ffefd1b7ffebceb4fffbd9bcffffdcbcffffe1bd52ff964364ff8a405ec955214ea9461b579c441c51883e1b3d6a2e1350682e156375361a426b2b0e74963b1552953914fff4cbabffebc1a1ffe0b89affdab396ffdcb597ffddb699ffc69d7dff9f7757ff765438ff745136ff745337ff765337ff745136ff735136ff755136ff715035ff715135ff6f5139ff6c513bff6a513bff664f3aff674f3aff644d39ff664f3aff67503bff6a523eff69523fff665140ff615041ff5d4e42ff5a4b40ff594b3fff5a4c40ff594c40ff594b40ff574a3fff594e43ff594e46ff61554cff645850ff675b53ff695d54ff675b52ff675b53ff695d54ff6b5f55ff72645aff786a60ff7c6e63ff776a61ff776b63ff786c63ff786c64ff776c64ff786c64ff766b62ff766a61ff75685eff72655aff74675dff73675dff73665bff74685cff72665bff71665bff70655aff71665bff71675bff6e6358ff71655aff70645bff71655bff72665cff73665eff72655cff73665cff71655bff70645bff6f635aff6f635aff6f635aff6e6259ff6b5f56ff6b5f55ff6b5e55ff6a5d54ff685c53ff665b52ff675c54ff6e635bff61564eff5c5047ff5b5048ff5b5149ff5e544cff5b5149ff564b41ff5d4e42ff8a7869ffb19f92ffbdafa4ffa79d92ff887d74ff867970ff8f8479ff948a80ff897f76ff847c74ff7a736aff6c645cff685d56ff71665bff706559ff61564cff70645aff6a6158ff716961ff78716aff766e65ff7b726bff786f66ff7e7064ff766657ff5c4e40ff5a4b3dff59493cff57483aff58483bff5a4b3dff5d4f42ff5c5043ff5a4c3ea2cd75444e1e19155f211d1868221d185d1f1b1761211d197b26211d6e251f1c7f28231f6525201b5f241f1a6a27221e6d28221d5f26211c772a2621742a25217e2e28235827221e60292420682b26226b2d2823712e2924672d2823602b2622552b26225f2c27225c2e2823602e2925622e2a256a2f292573312b266e332d295a312c27532f2a25582e2a2566342f29793b3631803c36317e433d368b443e388e47423c8b47433d934b4640a5514b45974d4842a1534d46854f48426a48423c7c4c4641a0574f499c524c47854c47417d4c45407a4b443f94544c468c524c468e534d4792544d4792524d47a55a544eae655e59b2635c56b6645d57b668605aa8655f58ff8d827bff554b42ff524942ff2a241fefffffffefffffffefffffffefffffffefffffffefffffffff453c35fb5c5955efffffffefffffffefffffffefffffffff3b352fff1f1a17ff483d35a6342e277c37342e65322d287939342e7439322c883b352e7b38332c7d37322c833a342fa2423c35823b353093403933b1463f39883d37307b39332d823b352f913f3933944039318c3f38308c3d3630a2423b35a0413a34ad453d36a9433b337c38312c7d38322c943e3730963f383079ffa9536dff8a4081d25d277cbc542367a1481e5e8b401c687c3e1d7073381c7a793a1e4c6c2b0f6f8a3412488e35119b453b329c453b32b34c4135a54c40358f483d338a4a3c327c44392f85453b3184473c31994f4237a656483bad57483c9c514539a853473aad55483cba5d5044b15d5046a1574d43ac5d5246b065594dac65584d9b5d5248a162564c935e544984584d44534c413a83564d457a584d44965f554c915b52497c564d4576554a42705248406d51473f75544c4280584d447c544b4378574d456d4f473e7d574d447d534b4381554e4586564e47915b524c8e58504a8e59514a9359524b9557504998564f4889554e47ae958e84ff756d65ff8e8378ff766b60ff72685fc148423cea534c44b846403ada504941c64c473fee554d45bb49433cb547413ab548423bc24c443dcc4e4741ca4d4840c34d4840a244403ad1524b46da544e47d6554d48e1575049eb5b534bcd534d459d48413b9f49433cb04d4842bb514b46bc504b45bf514d46cc57514bc6554f49c9555049ab4f4942a84d4741a84c47419349433da04d4741aa504943a44f4943a04d47439a4e4843b6554e49a9524b46a7514a45b3514b47ba544d48ca57534db355504aa9524e498f4c4843874a453f8145413b8d48443e8548453f884e4a4395534e4898544f4896534d478f514b46814f4b4583544f4985544f498a58534d7d534e4981534d48724f4b477e54504a79524c468655514d78514c47724f4b466f4e4b457a524e48604e4a4368524c474449453e604e4a445f4c4944654f4a4475514d4881cb8554571f1b1752211c1763231e195d201d19581f1c186b251f1b65241f1b6924201b61241f1b5f241f1b6726211d6527231e6a28241f712a2521702a25206a2a25205b2a241f5e2a252081302a257e302b267f312b26772f2925662e28245a2b2621602e2823672f2a2576322e2978312c277c312b276f302b266d322d2973332e296a312c2780342e2a7537322e813c37328a413c379148423d7f433e379449443d874a433da5534e48a3534d4797504a459b524c4591504c46854d474293514c46a858514ca456504b91534d4792554e4887524b449456504889544e498c57514aa05d5751a25f5852ae645c56a7655d57ab68605ac3706861b46f6760c6736b64ff8d817bff544b43ff534a42ff2c2621efffffffefffffffefffffffefffffffefffffffefffffffff433b33fb5e5b57efffffffefffffffefffffffefffffffff3b332dff1d1814ff493f37a0312c267436312c6f35302a6c36302a64362f2b843d3630863c373168332f2a753a332d8c3d37327e3b352e903f3933873d3732803b352f7a39332d763a342d903e3831903f393292403a32903f38329c423a349540393399403833923e3730823b342e7938322c9c403931bb483f3794ffbd6187ff8f4781d05b257bb5502277a64d226e8e421e837d3f2094773a21938343235c712e1186913a1667943a15b64a3f34c64f4338a7493d349f493d33ad4e4338ac4e41379c4c3f34b64e4237a64b3f358d483e34aa55473bc45a4d40ab564a3db5584c409d554a3fa25b4e42a45c4f4594564a40a55d5147b76c5d50a565594e9760544aa362584e885b514680594f457f584d447751483f7d554b42955e544c925d544a86574e467f574d447f594d4578554c437051494080584e44745249426950484076534c437b534b4382564e457c534d4388564c4384574e4782544c469c5e554f9a5a534b89544e47a36057509958514ac3a39c91ff766e66ff8b8076ff756c61ff72685fb949413ac84b433ead474038c44a453ec24a453db849433cb147413ab047413cb448423cb94a443ec54d4742ce4f4a44bf4d4841c04e4843c6504b44cb524c45c6514a45d8554e48c1504a45b54f4942a74d463f9947423cb14f4943d959524af05d5751e45d574ffe635d55e55c554ec8554e48c5555049b5524c45b1514c459349433ea14d4741ab514a44b0524c47bc56504bce5b544fc85b544ecf59534dc1554e4ad75b544fd65a534eb4534d49ad514d48bc58534dbb57524da44e4a45a7514c44bc55504bb656504da956524e824b4743914f4946ad56514c9759544f8557534e84534f4a7a4d4a456f4c494383544f4972524d496f504b4577514c488d56524d8258534d73544e4b6e514d487b55524c6f534f4870524f4962504d4662524d475a4d494467524e495f4e4a4375534f4c74cc79494f1f1b1759211d195b221e1860221f1a8027231e7726211d6824201c6f25201c6e26211d6124201c6126221d6827231e6a28241f752a26216f2b2621602924206c2d27236b2c27237a2e2924752f2a256e2c2823742e29256a2f2a26602c28236a2b2722832f2a2672302a26662f2a266e2f2a2676332d297e352f2b77322e297d332e2a8039332e803e38338b3e3a359648443ea249423ea24e4842ad514b46a4554f49ac59534d9e534c48854e494495524c4791504b46ab57514c96504a44a256504aa858524da359524d9559514bab5e5751ad615952b6655f57b6696259d2736a62cf716a62d4736c64e8787068e2787068eb7d736dc2736b65d2756d66ff8a7b73ff504740ff524842ff2c2621efffffffefffffffefffffffefffffffefffffffefffffffff494039fb5d5a57efffffffefffffffefffffffefffffffff3d332dff1d1915ff483d34a8342d2765332d2864322e297637312c6b37312d7b3a342e7c3b342e9b423c35aa453e389a403b358e3c3731873c37318b3c3731963f3a33803c3630823a352f853c3631903e3932893d363195413934a4443c3692403933973f3933843a342e994039338d3b342faa423b34b0453c335bff924387ff8f476cba4d206ba9481f81a047227d8e4220777c3c1e87793920928945235a743011798d361373933a17a1463b32bc4f4337af4e4136bc52463a9e4c4035ba504439af4e4237ad4d4137b34f4338ac504439b656493dc95b4e41c95e5044c35f5145c0695b4cd4736456c3675b4fb060544bb260564bab64574d9961554b845e5449825b5148935f554b895d544c9c60554d8f564e458c5a5045915e52499b61554e875a514983564d457c594f44905f554c905d544a9760564c9260554b935f564b9d62584eaf695e52ab645a51ae665b51aa665c52b7685e54a8635a54b2655d54aa615851925b534c9a5c554d8d58524abfb6aea4ff776f67ff8e8074ff756b62ff736960f2564f48da4f4942c94a443ebc49433dca4c4640bc4a433ddf514b44ab49423cb74a443eba4b4640bb4b4640c34d4942b14c4640c34f4a44d8554e49db564f49c0514a45cd534e47b94e4943b04f4842c4534e47b04c4841cc554f4ada57524bdb59524bd559514ad658524bc5544d47c4554f49dc59534dc457514ba74e4944b8534d49a74d4743bf504b46da57504bf8605952e65d5650b8544d49af534c47b9534d48b7534d48df5d5650c359544ecd5e5953b256514bae544f48ca59544ec158534db658544eb059554fa455504b99534f4b9b57534ea65b5651995954509a5e5853925d57518e5b564f9f5e5a558f5b5752905b5752825a5451885954508c5c57537d58534f6e54504c62504d4760514d496a54514b6f55514c6c54514d795a55517658544f69524f49785a554e7258534e78ce854d2f1f1b1535201c176e23201c7824211d7c24201d7a25211d7526221e6d26221d7f26231e8526221e7f27231f7827231e5f27231e7a2823207d2824207028231f762a2420752a25227b2c2722812d2823762b27225a2e292462302b27552d2924702b272389302b277a302b2762322d286a332d2868342e298338322d8c38322e8339332e87433c377a48413b964b4640c5544d47a84f4944a557504aae57504bb05b544faa5e5852af6159549f5c5550b55d5750c1625b52ce635c55bd5d5650b45b544fb25c55509858514ca35c554fb7635b54c1675e59bd6a625cc46a635cc16b635dd1716962e57a7068f47d746dee7d756dd9796f68d7776e66df797069ff736862ff514841ff524841ff2c2621efffffffefffffffefffffffefffffffefffffffefffffffff453c34fb5d5a57efffffffefffffffefffffffefffffffff3c342dff1d1815ff493e357e2d27212e2a26212f2d2823352f2a253b312c268137332f8436332e8b37332e9637342e8c37332e8c38342f5d3430298c38332d9437342e9537332e9836332d9838332e8e37322c62332e298b36312c9137312c9937312c9235302b8c342e2a9436302b8e352f2a9e38322c9c3a332c7affa8559fffa15685bd532586ad4d236994401d63883c1c6e7e3e1e868041226879391c56732f10768d361374903816a24c4036a34c40369c4d4035b252453ac5574a3dc7584a3db953463cbd55483ec15b4d42b0594b41c75e5044d1615447e66a5b4dc56b5d4fc7776758c2756658aa62544bbb6b5d52b7706356bb716358a4716457a17365599d6a5f54a7675c52aa685c51bf6b5e55aa63584f9c60554da06459509e645a508d61564c825d524b8b60574d9062584f98645950a4685c549a665b53a3665c53875e544c9461574f9f655b51ac6a5f53b46b5f56bd6d625aae695f57ac675f56a4655c539f605950a6645c53a1655c55cce3d9caff726b62ff8d8277ff736a60ff74695fa83a3732a63c3933aa3e3934993e3932893e3932b1403c36b53f3c36ad3e3b35bc403d37b13e3b37b9403d38ae3f3c37a03e3a35763a3732ba433e39b1413c38b7413c38b5423e39a8413d38a9413d39b0433e3aa9423e39af433f3bb044403bbb48433ebf4a453fc84b4640bb48443e8847433d904a4540954c4742a8524c478e4c47428e45403cac484340cd554f4ad9534e48ca534d48b94f4944aa554e49bd5b534db558514cb658504cb259524cbd5d5852d9625d56dc615c54c65c574fbc5b5751b6605a54b4605b55a85954509357514ea0615c578f5f5b55c965605b9f5c5853905e5a5590615d578d615d5891605a567658524f8b605956825c5853825e595586605b57775e5a54765c58536f58554f815d5a538a5e5a5384605b5398645f5b8b605c56805e5954745a5552805f5b568cce86521915120e1716120f271714112518151123191512211a1512251916131c1a1712281c1814271d1915231e1a15221f1c17231f1c1823201c1821201c181a1d1a151f1f1b171e1e1b1721211d1822211c1826221d18171f1a161e231f1b1f241f1b2225211c1d221f1b1f23201c1b211e1b16211e1a1a211e1a1f221e1a1d24201c1d2925211c302c271e37322c1d35312c2439332f273f383223423c353348413b3549443d3f534d474759544d435b544c4b59524b4d5a534b4c58524a46524b4347534d453c4d484346534c455359514a4f564f4a4d584f49585b544c605c554d7c58524c905d56509d625c55b76a635cba716961ba6f6860ae6d665eb6716962ff6a5f59ff584e45ff534943ff2c2621efffffffefffffffefffffffefffffffefffffffefffffffff443c34fb5d5a57efffffffefffffffefffffffefffffffff3f362fff1e1815ff4b40376d241f1a1e221e191a201c18171f1c181a211d1926221f1b2523201b2323211c2123201b1f25211b2023201c1d221f1a1f25211c2827231e2827241f2628252025282420252a26212b2b27222a2c2722292c27222c2b26212828231e2325201b2e29241f3127221e3229251e312b261f81ffb257a0ffa05590c1582777a54a217099462084964a2578843f206074361a78833f20557630127a923914608632121927221b1c28211a1c27221a1f29211a1e28221b1b28231c1829231d172a231d1a2f29211d332c2419332c241b352f27223d352e1d42372e18443a3021463c32264a4136284b4237325a4e463d61574c37675a4d386b5c4f38695c4f345f53484063594f4064594f385f52473d62564a3b5f554a375c534a3a5f554b4262594d4764584c405f554b435f554c3b60544a4260554b52685c50525d534a66564e45795e554c755e574c8e645b519e686056a0696157a5696258996761578d665e548b665e548c615a51a3c1b7adff736b63ff8d8075ff736a5fff7268602524211d2125211d2124201c2625201d1c22201b2525221d282724202a282523272725212a292723272a26222a2e2b272f2e2b252e2f2b263d342f2a2e302b2734312d2834322e292d2d29262f2e29243d342e2940322e29392f2c2740312f2a4035312b4434302a42332f294e36322c38322f2937302c273b35322c3a37332f3f37332e3e37332e3c38332e34322f2a2b2f2b28252f2b28292f2c28232a27251a2b2723192c28231e2c28231e2b28231f2e29251d2c2a241a2d2a251a2d2b2817302d2917322e2b1833302c1934332e1b3a3732183a373216393632183b39361d423d39183e3a35133a3832163e39352145423c2048453f2049453e25504c4727524e4a345956502958534c3059544c2d5a554e335b574f2f56514a365a5751375c58513158544d2f56514a3254514a3153504a64cc7f4b59231e1a5e25201c6a24201b6c24201d63241f1c7425211d6d25211e7525211d6f26211d7f27231f7326221e662b26217f29241f5e2c2721642e28234d2a25214e2a2520742b2620892a27228d2a26228b2825207626231f762824206d2925215f282420402824204425211e3625211e3325211c3724201b3f1e1c184125221f2f24211c3324201c2c201d1a1e1714121a12110f1e1311101b14121019100f0d18110f0e181412101b1614131c1a18161d1e1b191c1f1c191d201e1b1c211e1c26272421262d2a262d312c292c302c2829322c28242f2c283138342e2d39342e4c443e3923342f2b26343029333f3a3436423e38283f3c36273f3a3423413b33ff625650ff5e534bff5c5049ff2c2521efffffffefffffffefffffffefffffffefffffffefffffffff473e36fb5c5855efffffffefffffffefffffffefffffffff3d342eff1f1a16ff4e4339a6312b247638312c7539332d6b38332e883e3832873d3732863c3732873b36317838332d973f3933873c3631a13f3b36a23e3a34933c38329f3e3934a93e3a34883a342f89423b34af433c369a3f38317e423a3393453e376f3b352f703d362f6b3b342d6b38312ab23f3730ba3f383063ff9648bcffad5f91b95527749e4620658d3e1d6489411e73833f1f617b381d5d7e3a1c48752f1080993e16457b2d0f45362d253e332b2343332b23442f292157332d253c352e2634312b2337352d263e312a232b2b251f20231e191e1c18141b1814121a15120f1817131015171310130e0c0b1412100d14110f0d11100d0c0f0f0d0c1114121010171512151d1815141d1916151b1916171c18161a201c192225211d212a2621232c262227302a2525322b2523332b2627352d2820332c27323d36302639322a383d362f36403932323d37322337322b283d38302d413b3432433d361b38322d2b454138223e373125423b33173c352f21716b62ff706960ff897d74ff726961ff726860c34a453fce4e4842c04a453fd14e4943cc4f4943e3514c45cc4c4741d44e4a44ef524e47d74d4943ab47423cb9534b44c94f4a43eb544e47b9524b42ad544c45c35a534c9c4f4943944e48439b514b43844a443d76443f38c64e4941e1514c46e1504c45e7514c46db504b45df4e4943c147433dac433f3aaa43403ca044403b9b46433d89403c3789433f397e46423c5d423c38613a36334d3a3532463934314c3b37323f3a342f4039342f493935303e312f2a58373530563d3a35393835313334312c3635312d38322f2b40312e2b272d2a271e2927231f24221e171f1d1a1b1d1c19191c1b19141c1a18151c1a17121918151017161412191715101715130d1615130d1514120c1413110d161514101b1a1811201d1b11221f1d1324221e142423201726252215292624182c2a2821302d2b57c26f3f5a211d1957221d1951211d1949201c184c221d195d241f1b5c241f1b5b241f1b51241f1a6928221e5d26211c692a2420692925206e2b2521692b2722642b25216d2c2823722e2924722d292478302b256a2d2923762e2a2483312c287d332e2982342f29682f2b2565302b2764312b2674322d27672f2a258738322d853d37319848413ba34c453ea54f4942a44f4945a8554e48bd605751bf605952be5e5852b65d5650c0615a54c5615b55ba5f5952c25f58539e56504b96564f4a90534e489657514ba15a534f9257514b87534d497f504a46764d48437c4f4a436d46413c8c4e49446846413d5b3936327f3e3a36803f3c37693c39346c403b36573c3733ff675c53ff5e534bff5d5249ff2a251fefffffffefffffffefffffffefffffffefffffffefffffffff494037fb5b5855efffffffefffffffefffffffefffffffff3d342dff201a17ff4c4239aa332c268038332e7337312c5e322e2a7538332e6335312b6135302b60352f2a6336302b783b342e6f36302b7639332d6a36312b6936312b873c3732a1403b347e3a342e903f38328e3f383292403932943f38328e3d38319e413a338d3d36309a403831a4423a339d413931a3423a3256ff843e92ff8c4870a7481f5c913d1a739445226d884021567c391b5979381a4a78341746762f106d8e3814537b2f11aa4b4035ac4a3e3490433a30b24e4338b452463bc5594b41d25e5144c65c5044d0655649cd67594dc563574cbc65574cbf6b5d51d4736557c6746557bf726558b4685c50b06a5d52b66d6157b66d6156b56e6256a96d6155a86e62558c655a508d655a508f66594f735b51488960564d815f554b9462564e78584f47855c524871534a436e5149416d524942694e473f6f524a415a47403a59322d2886564e475f423c3751403a3555302d287838332e7737332f6b32302b58302d285d302d2854312c284d302c286179746eff716961ff8e8276ff726962ff736a608a403a35a4474039a4443f3ab249433ca2463f3a813d383391423d36af49433ec24e4742db534e47b14b443ec7514a43be504943c04f4943c1514b44cf554e47c0524b46d457514aba514c45bc514b45c7544e47c7544f48d158524bcd565049d356514be65c5750cc585149b5504b44d0555049cf575049dd5a544ee75d5850dd5d5850e25e5950e35f5a52c356514ba2514b44aa524b46a9544c47a9544c46b958524cb9564f4ab7554f4a984e4a44b75a534ec05f5953ad5a554fb55f5853bd605a539f57524ba458534c945a554e955c57538f5a5751885b56518a605b5593635f589c625e5798625c558c625f588b625e57885f5b5586615c55825f5b558a615d588c5e5b55865c5953815e5a5583625e5784615c57705d5954725e5a56755f59545c57534f66595551715c58536a5b57547dcf825058211d1953201c1950201d1961231f1b51231e1b5825201b5d25201c5d26211d5625201c6a29241f6c29241f702b2521642a24206c2b2621712e2824802f29246b2b27226b2c2823752f2a25792f2b257e2f2b267c302b267f322d288c35302a7f332e29632f29247d312c288035302b85342f299535302b9a3e383296433d37a44a443db3504942aa4e4841a7534c46ad575049be5f5852af56504ac05c5550c75f5852d4605a54a456504bd0645d57bc5d56519d58524da159534eaf5d5751c1645d579f5b5550a05d554faf615953b6625b55a95f5652af5f5952af615a54af625b56c16b635bb4676159b46a635c9867615a89625c558d6660598767605aff695e57ff61554cff5d524aff29241fefffffffefffffffefffffffefffffffefffffffefffffffff4b4139fb5b5855efffffffefffffffefffffffefffffffff3f352dff201b17ff4d4339b8342d268336302b7135302b7f38332e6a35302b6734302b7438332e7538332e743a332f753a342e7e39342e813a352f6e37312c7037322d913e39339a403a34933e3832954139338e4039338d3e3731933f38329e423b34ad443c35b1453c34963d362f99403931a0433a33ab453c343cff81376ffd7e3f629d431c548a39186a8e411e708840205c813d1c3c6c2e153c702e1443752e10738e391645712b10c44e4238ce504439d855483dda594c3fcf594c40bf584a3ed75e5144ee67594cdb69594ccf66584dc163564cc066594eab66584dc978695caf6a5c50a163574dab675a51b66a5e55c773665c9561564c8d5e534abb6e6257b06d615698655a4f8963584d855f564b8761564c92645a4fa2695e538d60564d835d534b8d63584d8c60564c8f5f554c8a5c5349875e524a8a5d544c835a514a835a524a855750499660564d895a524b915d554e885d564f775d554e6c57504a5d514a4464544e475d514b456359534c7fb4ada3ff756c65ff8e8279ff726960ff726961a848413ca447403ab348423caa47413bac48433c86403b359a453f3abc4d4842c34f4944d2544d47c64f4842ca524b43c8534c45bc504841cc534c46c6534d46d3595149da5a534be05b534ccf564e48c0504b45c3544f48c1534e47cd57524bdc5a544dd058524ae05b554edc5a534cd659544ce05b554fde5b544eea5e5852f4625c54f1615c53e5605a52b8544f499f4e4944bf554e4aed605953dd5f5853db5f5853d85d5650ec615954f1676059e46a635ad4665e57c4615a54ae5b544db95d5850bc605b54a65e5953985e5853955c57538d5c58538b5e5954865d5851805c575290605c568f605b55755a56518e605a56855d5854885b56528d5f5a558558544f7a56534d6e54504b91605d578a615d577b5a57516958544f6656534d6455524d6b58544f71595550725a56517e5e5a557acf7c4e5026201b6828231e8225221d8026221e7525201d752d26226028221e5d28231e722c2721822f2923662a2621642a2520632a2520612a25216f2c27227b2f2925722f2a247d302b2677302b267e322c2882322c276a2f29247c322c2881332d297d322c286e302b2678322d287d332e297a312c278b37322c9d403b35a146403a9947413ba14d463faf534c46ba59534cbd615a54c75f5952b55c5550a15a544e7d4c4942ba5e5852bd625a54b5635b55915a534e8758514ca45c564fa95e5851bd645d57b3615a54a75e5651ae615954c1645d56cb685f5a9e58534ce5706961be665f59bd69615ac96c665eaa655f5889605a54745c565081675e5a7a625b56ff6c625cff5f554cff5c514aff2d2722efffffffefffffffefffffffefffffffefffffffefffffffff463d34fb5b5855efffffffefffffffefffffffefffffffff413830ff201b16ff4d443aa0322b2451302b255e37302b633a342ea03b36309c393530993a36308638332f7b3a342f99453e39833d3732763a3530833e383293413b34af48413a8d3f3933803d3631803d36308f3f3831873d3731833b352f943e383199403832b3463d36a1433a33a5443c34a6433b33aa463d3568ff824267ea6a355a943c195f8d3b1972924320507d3719718640215f7a371c73853e21557c341367893715436c290ea9493e34c64f4339bc4e4238d9574a3fd75c4f42c95c4f42c35f5145c6635547c3625548d067594dcc695c51d4746659bd706357c2736559ac6b5e539766594f8862574d72574f45a86b5f55a56c5e529f6b5f539d6b5f558362584d7661574b7362564c8a63594c8961564b95655b509f685d539a655a518e62584f855e534a8e62584e9c63594f8e61574f9c6458517d554d46a9625a51a55d554d975d554d8c5b524a955e544ea7655b558459524b6458524a5a4f48435a524b455c554d485d564d494c4b464080b2a9a1ff756c64ff91867cff726960ff776c63c0534b45d2564e48c9514a43bc4e4841a64a443eb84d4741d2554f46e0585149f95f5851c0504a449a46403bad4b463fcb524c45b9504a42cc554d47ab4f4841bf524b46be514b45d357514be05b534ed059524bd659544dd558544dd358534cd95c564fe05e5850df5d5750e85e5850c5554e48c3544f48e05c554fcc58524adc5c564eee605b54de5c5650bd56514ac058514cc85a534ec859524cd75c5650cd5b544eb6534c46db5f5852ca5f5852dc645e58be605a53c0615b54a15a554d9558514b925a544e905e5751955f5a56965f5c5697625d5893615c57895e5b558f5f5b5590625d587f5f5b567a5d5853705d585359514d48544d4b46755a565183605c5780605a53735e5a547a625f596f5f5c565f5b5652575954505a5b5751695b57506658534d6a5b5650735a57527c5e5a5591cf975c291916132c1d1915271c1916231c19141f1c181429201b1829201b1726201c1820201b171e211c1816201b18161f1a161c211d1922241f1b2a24201b2f26221d3027221e3a29241f432b2721472c2823462e2924432b26214b2d28234d2d292453302b2666302b266a332d287a312c277134302a9139342e8d443e389348413a984c433da5564d46af5d564ec05e5951bd635c55a95c55509f5c544f8d58524c8458524c8959544e935c534ea66159548c5b534e88554d4a9658514d8756504b845a534d7b57514b7c55504a9059524d9e57514cb9625b54c4645e56e06e685fb3625b55b0635b56bb69625ab4665f59a268625a84615b5680615b55705f5853ff615953ff5c524aff5e544bff2c2621efffffffefffffffefffffffefffffffefffffffefffffffff4a4139fb5c5855efffffffefffffffefffffffefffffffff413831ff211c18ff4f443b7226201b382925203227241f3c2d2924362c2823302a27222f2a27222728241f1f24211e322c28242b292521292824202b2824202529231f2128241f282b25211927231e1926221d1b27221e1c25211d2228231f2928241f2f2b25202d2a251f312b26204130292442302a244b322c256dff84477ae86d396598401c548738175a84391a5f843c1c5f7b391d677d3a1e71863e205a7e351480933f1a456d2a108b483e33aa473c33b4483d34ad4d4137b3584c40b1594c41af5c4f44b4645548bd67584bb666594dcf6a5d52be706257bb76685c9a6d5f54946c5e53916c5e547462574d7764594f7863594f7c64584d8065594f906a5e547e655a4f725f544a6f594e468461574c8f64594f635a4f477461564d655c5249645b514957534b42715b5048835a50497b584f489160564e985e554d9c5e564eb5675d56825750487c554d4785574f489d5e554f8a58504a7e59524b745b544d5d524d485b504b45524e494261544d477ca89e97ff736a63ff8a8176ff746b62ff71665c2b2a26223f302c28342d28243a2e2925332d2924312c2824322e29252a2c28242f302b27252d28251e2a26221d2b27221b2925211d2c28241e2d2924222e2a25282e2b272d2f2c2830322d282c302c2733322e293c35302b4136312d4637332f543b37314f3a3731593c3834513e3932553d39325738342e5e3f3a3569413c366b433f396f44413b7b49453f8249433ea04c4741a0534c479f4c4541cc534e48944f4b45a456504bc757504cb958524dc35b564fa6615b53a16760597f55504b8757534e8c635c579468605a85645d568a625d5896605c57865d58548d605c5683615c576e615c5772615e586f5f5a55635a55515455524c585955505e5a57515b5b5751625d5851655d57536f625e58645e5b555e5d58545a57524f53504b486257534e755e5a545958544f4d56514d5d5b565271ce81528225201d8924201c9227221e8625201d6326211d6427221e6e2a241f8e28241f6628231e5427221e41231f1b311f1c18301e1b172b1c19162a1d1a16211c1916211d1916211e1a161b1d1a161d1e1a171c1e1a171d1e1a17181c1915151d19151f231e1a2626221d2f28231e2e27231d2c29241f272d272231352e2a2f39332e2939342f26423d372b4b443e2749443f2d48433e2a4d46422e4f4a4431534d463b58524b475a544d5a635c55696c625c896b635d8669625b906a635c78665f5772655c5678665c559769615ba369605aa6675f59a2655e57a3645e55c46c655dc26d645c9b5d574faf676159b2655f57b56a645cbf6e6761795b544fa26a625dff635953ff5e534cff5d534bff2b2520efffffffefffffffefffffffefffffffefffffffefffffffff4e443bfb5d5956efffffffefffffffefffffffefffffffff3c342cff211c18ff51463db8322c268538322ca23c3632a33c3731b43f3b35b7403a36a63c37318a37322d6f3a342f7f3b3630853e38318b3e3731ae3e38337a3a342e733b352f50322e2949302c26332b2620322a26213228241f2f27231f2e26221d2825201b2426211c2125201b2226211b2326211c2226211b4ade612d4fc758273a873312418133144a8036175d833a1b5478361a718341227e8d44245f7f36147d97401b5f7e34153a342b233b322b232d2e271f34362d25333b32292c3c332a213b322a1f3e372d20493f352552473c244a41392350463d27594f44275f53492864584d2e675b502d695e52366e62573b675d524973665b52796b605b807065677a6c5f737a6f61757c6f6276796d606671665a6574675b6373665a5c6d5f537d7164598171645a806b5f5681685d547d665c537862594f7e5f554c8f6159509b675d549062585176554d457d59504a8d5d554d81564f487e5850498659534b8358524c544b46406f564f4975544e4793a79d94ff756b64ff8b7f75ff73695fff6f655aa84b433eaf4a443eab4c453ead4e4740cc524c45c54f4b449445413a9548433d77413d38633b38335537332e38302c2741302d29382e2c27362d2a26312c2a26312c28252b2a2723242b2722252d2824222a2724262b2723262c2824272c2a252a2c29232d2e2a262e2e2b252e2e2a25302e2a252f2d2a26252928242229262121282420212925202e2f2c273934312c3f37332e4739353044393630423835303c35322c413835303a3935302833302b2d3b37322c433e372c48433c23423e39193d38341b423f3a1c46433e1c4a464024514d47214c4942204b4741234e4a4421524e4822514e492458544f2658534f245a5550275d58522c5f5b552b56524c37605c553c635e5941665f5a476c656041655f595c68645e5464605a5c67645e5a64605b5b64605a4b645f594a645f5a4d645f5a5fd0794c59211d1855201b175f231e1a66221e1a66231f1b7d28231f7b28221e7a2824208e2d2723962e29248e2e29247b2c2722792d2823762e2824782f2925702f2a25742f2a25692e2a257d332e297f352f2a6f322d2865322d2866322c287d302b2765322c2854312c276d342f2a762f2b2666322d284f2e2a254e2f2a284d2b272345282521352623202924211e261d1b191b1917151e1e1d1b131514121414121117181714181b19162329252232332e2a3f3d3733554a443e4d4b433d504a443f4b48423e4947423d39423d372138322d1c37332e1335302b0e322e260f36322b0e35312b143b37313149453e394b463f464d48416555514b6e58534d89615a53ff5f564fff5d524aff5b5048ff2a241fefffffffefffffffefffffffefffffffefffffffefffffffff4b423afb5e5a57efffffffefffffffefffffffefffffffff3e352eff201b17ff4f453dd4342e297c332e287a35302a6d332d2776372f2a7938322d7734302a893a342f8d39342eaa413a339b3d3631b8443d379c3e3832ba453d37bb443d37ca49413abc443d36a3403a329a3f3931b0433c35a3413a33a4423932ad433b3396413832a4433b33a9443c349d433b33b64940385eee71367fe7733a448f38164787361555873a186591452269823e1f838c4625aba0552f6380351482973f1b64893a1782463a307042372d5a372e275c39302a5b3930294d3a302949372f273b2f29232e2a241e2426211c271d1a171a17141226231f1c1f221e1b1213110f11120f0e130e0d0b1713110f171714111d211d1a2227221e2f342f293e423b33414842394a5048404554473e46564c41435349403b4e443c384e453c34484139244139321d3e362f193c362e113f3730113e372e0d3a342b0d3d372e0b3e39320d3a362f0f423c352347403a304e484034524b423f534d4354564f47615d5851645d574f605e585073615b5269848076ff716961ff887b70ff70645aff6b6056cb4d4741ef554e48cf4e4742ed564f49dc514b45e5554f48ef5b544ef7605952fb615b53fb625c53f65a544ddc544f47d6565048da57514af65f5750d0564f49d3575049e05a534cd358524bc7564f4ad659534cd25a544dbe544f49d559554def615b54e6615a54d75c5750c057524cbf59534db156514bb558524cb057524dd056504bab514b47b257504c98554e4a92524d48b557524da94f4b46934a4541844c4740854b473f64434039523a3732583f3b3954453d3952453d3a4b413a37483e3a353f3c3935323a37332934312c222f2c28292927241e2b2a271728252324312f2d1c2d2c2910201f1d0e1e1c1b101d1c1b111d1c1a14201e1d13221f1d162724211c2f2d2a223532302a3e3b373045423d364a4844394d4a463e504d493b534c473a514c46364f4b4437504b452e4a454157c974466b24201b5f211d1a8127221e7d27221e7a26211e8228231f7b28221e6d25211d7c292521822a2621852d27237c2b2621722c26227c2f2925742e2924762f29247f312c26762f2b2588332e297f322d2876312c276e302b26702f2a2673302c276e302b2764302b277a36312c7b342f2b923e393392423d37bc544d46cd5c554fc45d554faf5b534daa5e5651a45b554fa15c554fa15e57518b5a554e955c565099615b558a5c56509e57514a8d5d5651764c4743734a443f7a46413d6d3f3a35663a35324a34302c40312c29392e2a262e2724212c25221f27211e1b1f1b191717191715171917151c1c1a1817191815171d1a181623201e1b2b282324302d27ff5e554eff574d45ff564e45ff29241fefffffffefffffffefffffffefffffffefffffffefffffffff534840fb605c58efffffffefffffffefffffffefffffffff3d342dff1f1b17ff4e443bd7352e289d3b352f8e39332d8136312c9c3d3731a33f3933a43f38337c36312cab3f3833a13d3731a23e3732ad4139348739332da44039349a3d3631c2453e38a9403932a73f3932a9413a329d3e3731a8423a34a5403932953c352ea9433a33ad433b34b1453c35af453c34bd483f3673f6743a7de46c3494ad4f26889f492473974823698d42206c85402084904a28868b43245a7e341472933b1970943f1bc34f4238c94f4338ae4e433aed65574cf66b5e52e0726255dc756658ab66594dbb6e5e539562554c99655a518760564c92675c53916a5e557a62584f86665c5288655a51916f645b7864594f8b6d6155874e463e7e655a507b5d534a77554d446b4a423a774b433c65453d3673433c355e3a342e4b37302a40322e29392e2923342d26222c26221d2e25211d2d211d1b221e1b18221816141b1714121614121013141211151513121614110f1614121014171513181a1714131b181617231f1b1c29251f212f2c2644746a65ff766b65ff897b71ff72655bff6f6359fb5a524bda514a43f0564f4aec564f4add524d46b648433ee855504acf504a44f057514afc5f5851dd544d47e4554f48f159534bcf524c45e75b544dd859514bdb5a534cc4524c46d357504adb5b534cdf5a544dde5b544ed759524df05f5952e95c5750db5b564feb5e5852cf57524cd159544dc657514bbc544f49d157524bc957524bbd534f49be554f4ab6554f4aac524e49c155524bbc55524bb455514bb859554eb75d5750bf5f5a539c57524dc1645f5ab966605ab867615ba6666059a767625b825c575292645d578a625c576e5a5551755c585367595550755b5852685c565372625d585a56544e645b5853645b57536357545073686461635e59545f5d5a537567635d8353514d66635f5a67615c58595855515d5855506456534e6e58545064524e495d4f4b4568514d49574c484367c970446c221e1955231e1a7026211d62231e1a6e26211d8229241f882b2621912c2723712b2521612a2621662a25215d29241f5b292420692b26216d2d2823722e2925722f2a25642c2723602c272374302b2671312c2772322c2871302b26682f2a25652f2a25682f2a266d302c287835302c923f393497453f3aaa4f4742c659524cc25e5650c7625b55ab5a544e9e5c56509e6059538959544d8558514b9b5f57518159524d9f635c55c36a645cbe68625ad26b635dc769635cd56a645cf1716962e66e665fdf6d645ee06e655fd56c645ec869615bc1675e5ac46a625ccc6b635dc76b635dc5605a54dd665f59e867605ae567605ae366615bce615a55bc5d5851ff5c534cff524b42ff534b43ff2b2520efffffffefffffffefffffffefffffffefffffffefffffffff554a41fb615d59efffffffefffffffefffffffefffffffff40372fff1f1b17ff4f453cc33029248b36312c80332e2963322c267436302a943e38328037312c8639332d9d3e3731aa403833b8433c36ae413a35b9443c37943f3833823d37317a3a342e893c362f8039322c7537302b7938312c913b352f983d3630903d362fad433b349d4039318d3c342e873b332d893d352e59e96d3170e06832669e451d4e8a39184585391957843b1b5f803a1c758a4522738b43214a7a3011869e421c6e99411bbd4d4038c34c3f36b152463dc7625449d16b5c50dc756559c9726355d06e5f54ab6b5d5196685b4f93665a50866459508d685c537d645a507961574e88685b52836659516f62574e826b5d539a6f6459ab71655ba46f6259a86c6056b370635ab172655bac6b6156bf74675dc976695fba6f645abc6f665aad675e54b76c6157a96a6156a2685f549e675e559663585296645c53aa68605799645b549b635a5290554e47a8565148ad59504bb8565049af544f47b6564f4aac4f4a45a94e4944964945409749443ed29d988fff7a6e69ff897a70ff706359ff6f6259e5554c47f45a504bfe5c544ee656504aff5f5851f559534dd4544e48c4524c47b3504943b64f4943be4f4a43af4b46409c48423ca54a443e9046413bca534d46c8544e48c1534d46bb524e48e15a554ec8554f49bf524b46ab4e4843a94c4842b1504b46c755514ad859544dc858524cb8544e49cf5a554eca5a534ec056514bbf56504ba44f4a45af534d48aa504a45ac524c479c4e4a45c758544ead56514cb85d5752b35e5851b05e59519358544e995b5550915e5852a3635d5898635e5991665f58a468615d865e58547b5d58526c59554e6e5955505855504c695b56526358544f5d57534e6558544f5a56524d695b5551625954505357534f5e5d57517966605b7963605b7e635e5a7e635e5a7d605b5787625d5984605c5989635f5b815e5b5691645f5b9765615c9b68645e9365625c77d28251221b16121b191613241d19161b1c18151b1c17131d1d1814231e1a162a211d193026221e2b24201c3726211d4229231f3e2a241f442b2520532c27235c302a265a2f2924672f2a246a2e292473302a26652d292473302b2670302b265f2d29245a2d292460302b266b312d297539332f7e3f3a3487433e38974c4640ba59514ca858514baf5c544faa5d57519a5e57519f6159548256514a82564f4a925b544fa7625c55c16b655da7615a53b9665f58a25f5852be666059f1726b63f26f6761a159514bd769625bb8645c57b4625b55d06b625cc868605abc655d58c86a625cd96f6861ce6d655fcf6e665fda746b64d8746b64ca6f6960b96b645dc7726b63ff5e564dff574e46ff534b43ff2b2520efffffffefffffffefffffffefffffffefffffffefffffffff4c433afb5f5b58efffffffefffffffefffffffefffffffff3e362eff201b17ff51473e7825201b2e26221d2d27211d2926221e2a27231f2227231f1b23201c17201c1719211d191c221e1a20211e1b2124211d322b2622352f2a252c2c2824332d27223c2d282449302a2448302b264e322d2658332d275f37302a753c352f743d342e7d3f362f803f36308d3f372f8e3c342d3fdb5f2856d5632d619e431c418a38153b84361544813818507c391a5b7e3a1c6187401e487a321288a94a1f6a973f1bad4d4239a44c4238a653473db5605346c466584ec26b5c50a865584cae675a50976c5e53997062568b665b51926c605687695d537160544c6c5f544b83665b527c645850946e6358a0756a5e9a72655890685d54a16e62588660564d97665c52a66c6257c274675dd7796d629c665a50845c5248a9695e55ae6b6156845c554b8d61594f97645c52a66b605897635a5291605750976058518d5d544da8665d559f625852a3645c53935e564ea7655c559f6058519e5f5751955c554e8859524b875a534c8457514a9fa09a90ff80746eff8e7f75ff6e6158ff71645b16211f1b1a23201d1e23221d22272420272927233a302d293b33302b3733302b3833302b4335312b4837332f543a342f593a3631573c3832613f39326e433d367747403c8c4b4540a6534d479a504a44a3524b45a1504944b4534d47b3554e46ad4d4742c1524c47c5544f49a84e4843aa4f4945c2554f4bbc56514bb6544d48a64f4a449d4e4a44954f48448a4a4540a1524d47964e4a44b355504b9f534e49b05a554f87524e4784504c4683524e48905d5850815d57549a65605b89605a557a58534c7f5b5551715d5652735e58546f5c57506758534f6c5c58526a5c58526158544d52544f4b47524e475755514d615b56536058545172615d577864615c8065625c6d5f5b556f5f5b577c635e5b6a58554f6c5a5752755c595481605c5790635e5a9d645f5b98625e5a6b55514c6555514b76cf7a4e9827221d89241f1c7d231f1b371d1a172e1e19162c1e1915221a161320181511171513111615121014161310141915121f201b1728221d192f24201c2225201c16211d19141f1b181f211e1a211f1c183523201c58262320682a26225e2825208f2e2a26a3332f2bb4383430bf423d3abf4c4640c3564f48b0554f48b45a534ebf635b56b5615954b9665e59b56a635d94615954975f5953a8615c55b568605ace716962c26c645dad645d56a9615b55b567605ac66a635cc3676159e56f6761f8706861dc6c645dbf675f59d66e655fcc69615bbd655d58d66f6761dc6e6660e5716962d56f6761cc6d645fdd736a64d66f6962b466615bbf6e655fd4766d67ff585049ff554d45ff534b42ff2a251eefffffffefffffffefffffffefffffffefffffffefffffffff50453bfb5e5b57efffffffefffffffefffffffefffffffff40362fff1e1a16ff494139d5302a24c83f3a33be3e3832ab3a342f9f37312c92342f2a43292521352b2722332a25212d2a25202425201d1d211d1a191e1b18141c1916131b1816131a1714171e1a1718201b172827221d392c26203c2c27203b2a2520322e28222228221e16241f1b11201b1812211d181a221e1a61fd7a3c62d7622d4d984018328233123e883c173076311337743214497c3a1b457532163f772f1084a9491d578b3815dd50463ee85f5248df65584dca65584dbb65584db065584eb36b5e52a675675aab796b5ea67c6d61a175685e8b71635a9972665c86685e54976f6459af7c6d63aa76695fb17b6e63a775675dab76685e906a5e5494695f559b6c635a9f6d61599e6b605697685e53b473655cba6f635aca72675dbf6e625a976a605793645b51ae6d63589b665c539c655b529261584f9f665d54b2685f57a0615851af645a539d605851975f57509f645a53a9645b549e5f58518f58514c80534e498958524c975d564fa0625a54d1bdb2aaff857973ff8f8077ff6c6056ff6e6158392d29252f2d2924262823201d211e1b1a211e1c141c1b18131e1c19131d1c19151d1b19191e1b181c23201c1c23201c342d2b254d38332c623b362f533a352e4c38332d503835303436322b242f2b28162624211123211e0c22201c0c23201d192624201c26221f24272521322a27244a2e2b2867302f2c7135322e6533312e793635317f353430ad423f3ab0413e3bc4494643d54c4b47e254534edd585451de5f5b58da625e5ac55f5b56b45e5a55a25c585488575350855a5551875b57537e5c58527e615c577c605b576d5a5752715c5852715c5853705f59555e57544e76605d57645a575177625f587a64605b76605b588166625d8568645f82655f5c89696460735f5b566b5d5753735e5a568261605d76605b5882625e5b775d5a55755d5954875f5c578d615c598e605d579b66625d73cf7348511f1b1763231e1a7d27211d8028221f7627211d7827221e7d2924206b29231f792c2723882c2722722a25204a2a25205f2d2722532d27225a2d2924422b25203727221d3825201c6425221e5923201d49211e1a371e1b172b1d1a17241c19152b24211c2b26221e31282522362e2b273435302c37413c3538423d363d46403a3a443e3a414b443f454f4844665d58528565615ba06d6861b6716b6494766f6774706a6191787066a47c746b99706861bb786f68b3746b63b16d655dae68605ad5706862d5716962b769615bc46a645ccc6a645cd06c655ed46e6660db6f6861d26c645df6777067f27a716bff827871d4736c64bd6a635cb269615bd9787068ff585049ff564e45ff534941ff28231defffffffefffffffefffffffefffffffefffffffefffffffff4f463dfb615d5aefffffffefffffffefffffffefffffffff413730ff201c17ff4e453db62e2823883a332c672f2a256e322c269238322ba13d362fa83f37318b39312c9139332d9b3b342f923b352f913c3530983d37319f403933b0413b34a03b362f923b352d6237312b7c3c362f7b3c352d713b342d7c3d362f613a312a54352d2745312b244030292479342e2876312d2663fc7a3863de6a325998411a3e8737133f82361530732f123e73311433723012477b371936742d0f77b04a1c5e933c183e3a332b393f36303c494037324a41372c4b41382f4d4339314f463d2f5b4e433c61544b42675b51536e635972776e638480766b9683796ea2877c71ab8f8377729687776388796d7792816f8b9283748d8c7e707f7c6f64947f7065927e7065987c6e628c74675b886a5f54a073675cac74675ebf766b61976c6359996a60579c686055ac6c6358a4695f55a76a6057a2685f56b66a6259a6655c54975e554fb6686057b8685f57c770665dc36f655eaa635b558756514b83554f497f564f4a9b645d559a5f5951d8bcb3a8ff867c74ff8f8277ff6d6157ff706258ca4b453fda4f4843d3514942f357514ab04a443eeb58514add565048db565049f658524bdc524c46c14f4a438446423b8f4b463fb0524c44a14f49428e4d47409e504a438b4a453f70443f38623d3934523c37314f3a35305539353197403d387e3937316b35322e6333312d502d2b28462d2a273a2c2925362c29262b282623292a27232b2b27234036322f4538332f4b3a373356403c384b3f3b374742403b3d43403b30423e3a3345413d3046423d25423f3a1d423e3a1e44403b1e46423c26494642254b4742304e4a45384f4b47344f4c474352504a5054534d645b5a556e64635e775e5e597b5f5e5a8162615e7b6966614b6a66604a69656054706a625e726b646a716d676a6e69645c64605c6e67625f746b65626f6b65617168635e6d635f5b6a5e5a55695e5a5574615d588366615d71cf794e5e221d195b201c198426211d9e2a24207725201c7c28231f6e26211d6125211c7128241f8227231e6c27221e782b2621642a25215c2b2622602c27225d2b2622612c2723642c2823722f2a2677312c2780332d2886332e2984342f2a89342e2a8e322d299a35302aba3a3732c8423e39c9433f3bc648433db044403b913c39357633302c5e2d2a264a2925233c262421352725212c25221e2926221f332e2b273a38342f4244403a3b453f3b3e48423e4f524c4530463f392846403a1b453f3a2249433f224a45401f433e3926463f3b2d49453d3c5550494c59524a7b665e5888675f57926a625baf766b64b77a716aa66f6861a3726a63be787068ca7a716aff564e48ff554c42ff534a42ff26211cefffffffefffffffefffffffefffffffefffffffefffffffff564b43fb605d5aefffffffefffffffefffffffefffffffff3e362eff1f1b17ff51463db33028227a39322a73322c2677322c2687342e29b03c362fd0443c34a13c352f9f3a342ea53d37328b39322e8e38322d7d36302a943a342e9e38322ca336312b8a3630289d3b342c8839322d9039322c7a37312b823a332d833a322c843a322c863b342d803b332d893c342ea1433a3260f473355cdc6a3265a1461b6598431b44893c184081391846793617547d39194078341539732c0f71ad481d61943d18ea5d5248dd595048d65e554ac3585047a84f47408b403a337539332d6335302a51312b264b302b273927231f3125221e2d27231f25221e1a2726211e2d2c282331332e29394039323d4840373e5048403a5147413a51474142564b443e5d5147234c443b20554b411953473e1352483f19584e451b554d451b554d461c5148402252484028564d44315b544a37615950456b6155677469606d6e6457706d6357766a6259786d63588872695e8e736b6283635d556f5f5a527f6762598a655f579466605893635d55a6a79f95ff887d76ff867970ff70635aff71645bcd4d4540eb564d48be4b433ec44b453ec44a443fb549423cd04f4a42cc4c4740eb514b44cd49453fb649443dd4524d45d1524d47b04d4842cc534d47a54d4842a74d4842b7504a449949443fa84d4742b05049449d4d4540af4f4a44b4514b46d057514bd75a544ed059544ee15b554fdb5a554fe65f5952d85c5650e5605a54d55d5651cf5b554fd65a554fe15d5852df5b5752f25d5954f8625e59ed625e59db5d5a54cf5a5650c9585651bb56534fab52514d9d504f4b8f4c4b477e4645417042413c633d3c38553937334a373531483937343834332f2f33312d2d3533302433302b20302d2a22312f2d253433302a3735312a3a38352e433f393448443e38504b4537514d4833514c49314d4845304d484433514c4627494440173f3c3716433f3b15433f3a11423d391243403b1646433e42c36a405b201c1865221d1a8326211d952a241f792a241f5926221e6b2924205a26211e782924208b2a25215d292420682a2420652c26226b2e2824642b2722662c2823642b272279302b2674302b2678302b2676322c287b332d297b35302b7b35302b6e312c277935312a9b403a36af504944ba59514bc45c564eaf5b554ea75f5853a05f5752b0645d57b669615bb3625c56c467605aad5e5851d3605b55d7595450985f5952875b554e6848443f5a3f3b36573935304d302e2a3f2a26243824221f261e1c1a201d1b181616141210121110141917141c23201c3235312e423e39354c443f3a554b463f50514c463b524c47234a454118443f39144540390e3d3834ff574f48ff564e46ff514941ff26201befffffffefffffffefffffffefffffffefffffffefffffffff4c403afb605c58efffffffefffffffefffffffefffffffff3d352dff201c18ff433830b52e2720913e362f7b322d2681342e2889342e28b33c362fc6413a32973c352e943c36307337322c7737322d7636302c7937312c9b3b352fa639332e9638322c7a37312a8939312b8139322c8d3a332c8d3b352e8a3a332c833a332c943c352e883b342da8433b339c403831a04339326efe814063d6622a599e431a4b8d39165890401c55833a19507c3a1b4d7d3919407d381837752e0f69a1421b60974019df6b5d52dd716458cd6f6358ac675d52ac6d625791685d54926a5e55a172665b9771655dad786a61a76f6459a46e6358a56c6257a56b6157c470665cc96a6157cd655d56936f665c84695d546e554c475648413c533f39345238312c56322e294e29252240231f1d3d24201e2a1a1716211614121d100f0d150d0b0a0b0a09070d0e0d0c0d12100e1a1a18151d25221d2b332e2a3a3e38334b444039444440394c4d463d424d47413c534c472c524b4621524b47134a463f0c47423a0a433f3709403b340b3f3a360f57544eff897d76ff8a7e76ff70655fff6d625ad4554d47a048413c90423d38bb4d47419d45403aa948423cd9504b44d84f4942fd58524ac04a4640aa4a4640bb4c4742b54d4842b14e4843cd544e47c3544e47b54e4843aa4e4843a74d4741c5524e47af4f4a43ca575049d45a524ccb56504acb57504ad859544ddf5b564fcd58524dc956514aca58524cd05c5550da5f5853ce5c5650b2524d48af544d48af57514bb25b554dc4625c55be635c57bb645e58aa635e57a0666057a5645f5892605d567e5b58527d5d5a53735c58536d5c57536b5d5954745f5b56705e5a556f645f597c625e5981615d58775d5a558d65605b805e5a54855e5b57a564625ea3605f5aae615f5bab5e5c58796a66607068615c68645c575a5954514e53504c4e504c48494e4944504b48434a4845414d47444040413e3b3c43413d3a403d392435322f20312e2b39b358321d1c18151e1f1a17251f1b172f241e1a2e25201a4e2a2621512a26215127231f7d2b2621732d2823772c27237b2d28236b2c2723742f2a25712f2a25732f2a255c2c272271302b267b322d2887322d287b332d296a302b2774342f2977342e297b322c287738322d86403b348c48433d9a514a459c554f48a95d5650ae635b56a5625a55c06d665fb56b645db96c645ebe6e6760c8726a63d0756d65c8716962c6746b64bd6c655eac665f59be6a625ca8655d58d0716962d2716a61b1666059bb6a625aa6615a54955e57519c625b539d635d56825a554c825750496d4e47406947413c59403a36543935313b312f2b312d2a26272623212623201d1c1b1a18ff59514bff564e46ff524b42ff28211cefffffffefffffffefffffffefffffffefffffffefffffffff50463efb605d58efffffffefffffffefffffffefffffffff3f362fff221d19ff40372e69221c1718211c171b231e191e25211c2327221d2625201b3229241f2e28231d322b27225635302a6439332e6d38322d6835302a9237312c853a352e9e3b352f9839342da13b342e8037302a903a332c9e3e372f9c3f37308a3d352e9c403831793a332c8f3e362fa5433b33a8443b335cf8723488f97e3f8bb4532563a1491f6496461f5a893f1c487b3818417a371753863f1c3a762e0f6c9d411b4a893514a6594e46af5d52499e5f564da56c5f56b97a6b5f8c6d60569b75675ea3796c609877695eb27e7066a6796d61af7b6f63a67b6f63b1817468bc86796baf7f7366b47e7268ac7c7067a4756b63a7756962926a61599d6c625a96695f58996b6059a770665da970675ea66b645d8a665b54976c60578d645a54745c544d7b61575082655b517c625a508261595064595148735851485c4e473f5c4a443e553f3b36573f3b344637322e4834302c392b28252f28262326201d1a231a181721141311190f0d0d130d0d0b112d2925ff8f8177ff8a7c72ff6f645cff6f635a40322f2b663e39348846413b78423d3782423e389045413ab645403acd514c44c9524d45d44d4641c64b4640d7514c46a84b4540c7514c45cd524e46ce56504ad156504ab7514c46c4534e47c3534e47984a4640c4544e48c5565049e05b564eda5b564eef5e5952e65d5650d75a554ed159544db7544e48cd5a544ec359524cca59534dbe564f4ac65a524db85b534fa85a544faf5f5a52975a544d8b55514a815a54508b625c567e5f5a5376595651785c57527d605b547b5e59526459554f73615b5771605c5678625d586c5f59558567635e7d65615c7f635f5a7b65615c8467635d8168645e876966608368645e7c66615c8569635e7f67615d8065605c8469635e6d5f5a56735f5c55765f5b567b5f5a55665d585478625d597a635e5a7f65605c7f625f5a745f5b576b5f5a5472615b5555cf6e434e1c1914331a171420191512211a17131d1a171326201c181f1f1c181d1f1d181c201c181f211d1925221d1924201c1924241f1b2b221f1a2625211d3d2c2723492a2621622b2622632b272267312c2776342f2a6f332e297536302a8338322c8536302b823e37318b453e38a84f4943b0554f49b75d564ecb675f57bd675f5ab967615ab36a635bd4787068c2706961ae6b635cad6d655ed1766f66cd756d66ca746c65ba6d655faf68625bb56c645ec16e655f9d615954b2665e58975d5751905b554fa46059548556504a985c564e80544e49af656058bd69625cb9675f5acf706761cc6e6660b0665f59b869625baf67615aa8665f58a669625bca776e67ff564f48ff554d44ff534b42ff27211cefffffffefffffffefffffffefffffffefffffffefffffffff4d433bfb5f5b58efffffffefffffffefffffffefffffffff40372fff231e19ff41372eba29231d9c3a332c602c27213d26221d2f24201b20231e1920231f1a2023201c2325221d2e2a2621252a25202a2c2722242925202328241f2827241f2e2925212925211d26221e1a21241f1b2924201b2c24201b2426211d362d272246302b25512f292367322b266d312b2578342e2790ff89477ced753969a3481e6997431c618f411c5689401b4c7e3a1a4b7c39193e7935173a742e0f64923816488a3614b761564dbf61584eb7695f55c37b6c61ba7a6c62b57d7064a87c6f649d796d609d7a6c62c78a7c6fad807367a77e7164987c7062a0807366b685796bbc83776aaf7e7168af7c7167a7786c65916e645c966f655d976e645caa74686186685e5781635b5391675d5693665c56735b534c765c544c7f5e564e805f5550735a5149785c524961504943705851498960595092645b53895e564f94655b559f685f58a4675f588f5f5751885e5850885a544e8359534d7c57504c7757504b7458524c9d69605a90625c55b7aea59cff92867aff87786dff6d6258ff6f625a292b28243a312d29322e2b262d2d29252b302c262d2f2c262e302c2637322e28352f2b263d322d29312e2a2626262320202b2823222a272328282521302a2723262c29262e302d294537342f51393631613836306b3e3a348b3c38337e3c393390413e38984c4742be524e48be57524cbd57524bb858524cc65b564fcd5e564fd85f5852d35e5751d15f5852d8645d56a75c5550a15c5650995c56509f5e5a53885a55508d5c5a5290615e5688605c568d635d567f5e59547c5e5955785e5a5478605b556e5f5b5575635f587966605c8e6c69637f66625e7965605c70625e566b65605c7968635f8b6c69648d6b67618267625d7d66615c8267625d7a655f5b6e605b576d5f5a5672645f5a73635e5a7d65605b72605b56625a5652665b5752675b5653715d58545d5853504a4f4c475b56534d59cd76487926201c6b25211d5d26211d6b28231e6429241f5f2b25215d2b26215b2b2621542c26225d2b25214a24211c5f211d195a221f1b261e1b17291e1a16231f1b1829231f1b2425211d3129241f2e282520262925201d26221e20231f1a1f25211c252823203236312b4d413a34604a433b754f4942aa5c564ef77a7169dc746b63cd777068c4716b62cb787169cd777069bd736b63cb766e66d2787168da7b736bcd796f69a96a625ca0655d58d1746d65cf726b63b96c645dab665f59c36e675fa8645d56ba69625aac645d559a5c564f7e534c47b2655f589c5f5852a2615954ae635c568f58534d9b5f5852ac676159b26a635ccd726b63a7665f59b86e665fff564c45ff594f47ff544b42ff28221defffffffefffffffefffffffefffffffefffffffefffffffff4e433bfb605b58efffffffefffffffefffffffefffffffff403830ff221d19ff41372fbb2f2721773a332c9a39322c8d37302a9339322c76352e298a39312c7536302b843b342e7a3b352e753a342d7e3b342f733a342d703c352f6739322dbb3b3630572f2a25742d2722632c2722482a25202827221e2825201a1f231e192126211c2a2a2520302c272138302a244d352f28c7ffa56050d15d285d8c3a185a91401a4981371754843c1a447834174f833e1e447d37183c722d0f7291391747873413725a5146755f554ba16c6055f5918274ca837468cc9f8e7fb688796db0807568b3877a6db6877c71b78c8074a2817468b0897a6bb186796cb6867b6db581776bbb83776db17f736a9170655d9570645e8d6b615bab756a61b2756a61a171665f9f71665d7e655c549b6b625aa16b62598463595295685e57986c61568661574f7b5b524a594f46406b584e488d6159517a5c544d815e5650815c554e91625b536b524d458f62595473575149835d56508a5d555193615a54936159547957504c7c57504b95615a55a99e968dffa2948cff8a7b71ff706259ff706259ab4e4641ac514943a94e4841a54c46409f4c463f994c463f9f5049438d4a443e9549433ed949453f663a36318939332f6c33302b8036332e332f2c272a2d2a26232a27232228232023282420222b2823292f2b272f322f2b3837342e56403c366c43403a5b403b364b3836303f3935303035312c212e2a25152825212328262314292723152927231e322d2b2438332e37433e384c47423e524b474358524c4562504b45605550496259554f815c5752bd6a66629e6a65608b5b585389706b65836a645f8263615b8366635d8367635d7f64635f846866627f6662607c68645e836a67617f696660846b67628b6d68638e6e6863856b6560826b65606f625d596d615c57645c56536b5e5a577f67635d8f6e69637e67625d72625d587b645f595457534f75605c5676645e5a7a5f5c56625b565272cf7e526f26211d6527221e7128241f792b262164292420682a25205f292420672b2622652b2721632b26227a2e2924742d27238d2e2925762f2a2574302b257d322d287d302b26a0312c27832f2a2568322d285c2d2825462924213b27231f251e1a171d1c19152225221d2a2d292437322e295b463f394a463e38474e47412c49443c2048433c214b47412257514b30625c553f6660595b6f675e5e7169628c8378729681776da580766c96726963ac6c655fba746c65af6f6761cb726963b96d655ebd6a625bc06b645db4675f59c56b645da6615a54c26b635daa655d58b969605baf655f58b1665f59b36a625cc66f6760cc716a62b16c645dbc6f6660cc746b65ff554c44ff574f46ff514940ff29221eefffffffefffffffefffffffefffffffefffffffefffffffff4d423bfb5f5b58efffffffefffffffefffffffefffffffff3f362eff201c17ff423830c12e27218f4038308837302a74342e298d3b332e973a342e963c352e7936302b8037302a8339332d7a38312b853a332d853b352e8239332d8038332d7f38322d9d3d362f9f3b352e963b332eb13f38319e403831993f3730a9443c34ae433b34ab413a33d14a423ae0493f37a24038316bfa763b58d0602c558639164c8036155082391952863e1c4380381a3a783216427b36183a6e2b0f6d953c17558c37155c463e3865574b425a5c50475062584e3d5f5448265c54491b5f5247185d544917665b4f1c78695d2a8175673382756741877869528e7f6e51877b6e6a91867782988a7f7d8d8074908c7f74817e726986796d65876b615ba3766a63927469619b736b60ad73696089685e5690685f5695685e579a6a605891676056856359509a675f558f645a547f6057519c675e5780605751865f57529f675f588d615a53865e565194625a538d6159529a625b549e615b55a3665d58845d5450885e56529e645d57a9645d57af9e948dffa89a93ff86766dff6f635aff6f6259b84d463fb34d4640af4d463eac4b443ec2524b45ba504943b34d4740ae4c4740b04c4640b34b4641cd524c45d7534d46b44d4741fe59534de358524ccb554f49ca56504ad258524bd45b554dd959524ceb5c564ff4625c54fe666058f55e5851c9544e47b559534d974f4a458e4c4742934b474161423c385c403c374037332f30312e2a1f2825221929262216292622152a26231e322e2a273b383330413b364849454150514a44464e48414b554f494255514a3a57544b254f4b441c47443e1547413b1548443e1048443e12524f49195c564f26625e582b63605a3266625b4268625a4368635c3f635f594a6b665f5b746e6861746e69586f68626a746e68646e69625b68625d686b65606a635d59735c585472635f5a615f5c567467635d8367635d6f615c5772625d576f5d59546e5e5a5581d1875a6927221e6b2924205e26211d6127221d832e2923732c2721602a24206b2c2722672b26226c2c2723602a2421852d2723672b27227f2f2a25742f29247e312c2781312d2776302b2689352f2a76322d2777312d28672e2a2575352f2b72332e2975342f2a7e423b35924c463fa3554e4893554d4797544c477e4e474258443e394033302c2f2523202825221f2b2623202525231f33302d2949423e394649443f41514b443d56504934514a45304f4844214e4843214e4945284a443e3d59514b35554e4853615a54786a625c836c625b98706761a5726963c96f6760a36d655ea5645c57b2716a63a367605aaa69615bd9797068c5726a63c6736b64d67a726aff544b43ff585047ff4e473fff2c2520efffffffefffffffefffffffefffffffefffffffefffffffff4e453cfb605c58efffffffefffffffefffffffefffffffff40362fff201b17ff41382fb22b241f773932297f36302a8239332d7837302b70342e2960312b26973e3730a33e3731933b342e7d37302b7937302b853a342e8539332d8b3b342e7f38312c8237302caf3b342e8937312b8d39332da93e3731a03f3730a3413831a9423a32a8423a32b2453c34ae453c34b94940373ddd5e274dc45a27537d3515507c3416447e371748863d1a4482391a397f3715457e391b396a2a0e7b9a3f19518e39159e5d534aa2695d5491675b5384645b526e594f47534c433a4139342e352e2a252a211d1a251e1a17241a1714241d1a162823201b33332e283d3e3a314548423a45524c453e5d544a3961574e3361564e2b5d534c2a5b524b1f5750491961574e1a5f564f1f5f53493a56504831655d542a5b534c456d655b5e72675c6b756a616771645a7773685f8270665d7b6c625b8d625c53a27d736b7c645b567a5c544f81645c5685645b557559524c7b5a534e9f655e5893635b5594625b558d5f5853835e5752805b554fb59f958dffa1968fff85776eff6d6259ff71655bc7504942cd524b44a84a433ea94c453fc4524b44b24f4741b84f4842b74f4841c0504a42ad4b453fb94c4640ef564f47e7564f48ab4a463fc3504a44e857524bdb57514ac6524d46d557514adc5a544cdb59534df6625a53d858524be65e574feb605952c0564f48bf524f49ce56524daa4d4a45ba565048bd57514cc45a534fb4564f4baa534d48ab57504aa35d5651a56059559d5e5753a4635e5998655f5a88635e59745f5a5581645e5a74605b576f5e5b546b5f5b54535a564f49534e483d45433e35403d392a3836322933312d22312f2b20302d292533302c1f33312d293b39332f403e383243423b3548443e374e4a463954504c325a544d3058534c2d5a544f2b544e481f4d4944204d4a451b494642164d4943154e4a45184d4b461b4e48422c43403b3853504b2b514e48214d494559cf7a4f421f1b1752211d197b26221e8229241f8c2b2520832b25207b2b2621742b2722752d2823722e28245f2a2421622b2522712d27246f2d2723672c27237e2e2a25772f2b2581322d2781322d2783342e2980342e2886342f2a8336302c6e322c288737322d88423b359249433daa544f48ba5e5752ca675f58bf6b625db769615bad69625ab16a645caa6d675dae716961a16b645dc2776e68c8756e67a7655f59915c545074453f3b553a3632422d2a264f2926243b24221f2a22201d2a2b272335322f2b373834303e413d39484944403c49443e3249443e254f49431b4c46421d49433e31524b454b5d575037544e483f554f4a5f655d576b69635c726b635dff514d44ff544b44ff4f473fff2c2520efffffffefffffffefffffffefffffffefffffffefffffffff51483ffb5f5b58efffffffefffffffefffffffefffffffff403730ff1d1714ff3e342c711f1b162a221d1741241f1b5026211d742b2621812d28247e2f2a2599342f2895332f2896352f299236302b9137312c8b39322d913c342f993e36318b3a342e77352f2a7b36302a9039332c923a342d943a342e8939322c9d3c352ea43e372f9f403830a4413831a5433a32ab463c333dd95e2948b7502348733216497433163d75311442793218418d411d377d3516427b371937692a0f61943a1661943d16b56e6054be77685dc17f7063b984766bbd87796c96796c619d7e7266a684786b9b817468967e71669a807367947d716584756b60a8807469ae7f756aa7766c63976b6259896158516f4d4640664a433e4e35312c3627231f5423201d45221f1d301e1b18251c1b172124211d20272320272a27232c34312b333f3a343e4b443d3b4e47403a4e4740314e473f28504a401f524b421c5b554f12504942174e474021554d46375c554d37635d553159534c3959544d3e625b554e675f595268605a50665d5854635c567c9c9287ffc6b5aaff82766bff6e625aff685c54c146413bc149433dc34a443fb848433ec24d4742c14f4842c2514944de574f49c3514a44b64d47419f47413ca248433caf4b463fca514b44c04f4842ca514b44b24c4641b64f4943d9555049dc555049cd554f48c7534d47d558514ad95a534cdd5c544de75d5650d75a544edc5c564edd5c564eec5f5952d85c5650e3605953b8564f4aa5504945c95d5751a158534cb05f59539d5a54508f5a5450915d58538a615a559b675f5c91645d598b635d5683625c588064605a7d64605a6d605b56736360597c68645e7265625b7167635c6a645f596e65615a7267625c7266625c6667625d7d6d686280706b658f746e69826e69648069645f7467625d685d58546e5a55524f4e4a464b494641343835304e35332f463734324033312e2e33312d26302f2b1e33312d1c36332f1e3634302136343045c6693d1915121010120f0c121816121a211b182f28231e2325201b121f1b18121c19152f1e1a176224201c7c2b25228b2c2925852c2824642e2a2665302b2671302b26712f2a2583332e2978312c279135302a82332e2986332f298837322d73312d286a312c28783e37328847413c8d4c4842b35b5550df6f6761cf736963b268615abd6d665ecc776d63c4746d64af6f6862af6e66609d69635ca96b655fc1756d68e37e7770e17e766ee47e756dbb6e675fdf776f67d66f6863e56b6662d6635e59cd595550eb5c5852e855514eb84642408f373430672e2b284e27232028201d1a231e1c1a1f1f1d1b2322201e2e302d2a343e393556514a464e544e4646565048ff544b43ff5a5349ff51483fff2c2520efffffffefffffffefffffffefffffffefffffffefffffffff50473efb605b58efffffffefffffffefffffffefffffffff3f352eff1b1713ff3c342b841e1a153c27221c1d1f1c1812191612111a171312201c171a27221d5437312a41342e27282a26201924201c0c1e1a17161e1b17291f1c174a24201c70292521802d282394302d28b336322c7c302c277738332c7c3c352e933f372f9a403730943e362fb0463d34a5463d34a0443c3239d257243caf4b20295b210b496a2d135a7f3c1d47813a1a488d401c4990441e3e7c36172b65270c739b3f19699a4219a5685c51d1807164d2897a6dc28a7b70b2817569987b6e63b084796cbb8d7d6fae88796dad85786e967a6f6593756b626c6058508970665d9373696095756a62a47c6f67c1827971bc83796dc7877a70b57c72689e726960b3786f64ac72695fb16c635cc26b655eb0645c55b15f5852c15d5751db625e56dd5e5a52cd534f49a846413e903d39357135322d5b2e2a274d252320452a2723211313101b18171513181614111311101a1a1917292928252b33312c4446423d494d4743444e484242544e4631554e46236f665effa19286ff73665bff695f55ff6b5e5455413b3430312d28232c29241125211f0b1f1e1a1c23201c2722201c422a2622682e2a268233312d9036322eaa3c3a35d646443dcc43413cb6433f3a9d4c47419f4e4943ba524d47c9565049cb554f49c0514d46e25a544dde5c564ecb574f47da5a544df5605a52fe635c54d55a544cee5f5951e95f5953e65f5953eb625b55c258524c904c46419e524d469954514ba05a544f9256504e8757524e8157544f7155514c88605b56a66d67629065605b87645f5a8a65605b79615d576f605a558368645d856c665f856e6761836e67607f68635f6b615e5973635f5b79635f5a414f4b48635f5a557164605b69615d587c68645f826a6662916c6b688a6b67628d6d696491706a668368645f76635f5a7e65625c8567635d8567635e8964615c9363635f875d5b57905d5b578e5d5a57a55f5d5960c96b3f6629241f7126221d7b27231e972b27219a2a25208c29231f7924201c5f201d1a3a1b1815261815131f1d19161e201c182b25211d2527231f1e23201c16221f1a1c231f1b2526211d3026231e472d28225b2e2a2571302c275a322c2967312d286b312d2984413b35994a443ea3504b45ac59534ebf685f5ac36e6660b168605ab06a635db9716960cc776e67bc726b63aa6c655e7c5c544f9f69635cb8706a63cc796f69e07e756ed179706ac8746d64b56c645db36b625cca746b65dd797069d9786f67c8726962f27c726adc726a62cc716862da746b65b8665f5aa65d5851c5655f59cf625d57e5625e59c668615c77524d476b49443f5e413d383633302cff5c544eff5b524aff534a42ff2b251fefffffffefffffffefffffffefffffffefffffffefffffffff50473ffb615d59efffffffefffffffefffffffefffffffff3c332cff211c18ff40372fc02c261f723c352c883b352e963a332d8f37312ba63c352fbf403932cc403a32c43e362fb039332d9a342e2880302b25622b28234526231e2f1f1c1926211e1a2225201b2024201b3a2d2924352e29232c2d28232828241f1c27221d1925201b1a25201b2529221e282a241e302b251f3cd158263ca5461f49612911456329104a7434184d843e1d448d421e33843a184c803a1b33682a0f729d3f195a973f17c273655aa06f6258c286756bbd897a6ea97e7267a07d71669e807369ad82766abb8a7c71b185776da47e7267a27a70638970655d6d655b51856f665c8e72685fa4797065ab7d7268b682776dba81756bae7c7167a3756b62a7756b619b6d635b906b6159a3736860bb796f65ad756b61b97a6e659c70665cbc766c63b971685eaf6b645b9d696159a76c635ca66c645c865f57528d5b5650825a534e9a5c5651af5b5551b056504ccb5e5852b869615b664c47426a4b47415d423c39573936323c2f2c293a2b27263b484540ffa79a8cff73665cff6e6259ff6e6258fd575049e44f4942c846423bae443f39943d39346f35312d542f2c273a24221d2c24221f2323211d25282621232825214636332e4337332d3f37332e3636322d30312e29292f2c281f2a28231d2a27221a2a2722222c2926242d29252b2e2b262f2e2a254935312b673f3a35643c3833b643403a8f4b454189443f3b924f49439d514b469b514c4697504c45a457514ca859544ea456524d9b595550915c57539d655f5b81605a57775d57548c66605c86645f597c605c56725f5b5573605c566f625c588268635d7d68625c8a6c686278645f5a7965605b7f69645d6a605d57645e5a545358544e605d5a5366605b5670635f5b7c67645e7d68635f856c6762886b66617b68635f7c68635f7764605b7d67635d6b5c5854725e59556d5f5b5674625e598267625d8266625c8267635d8c6a645f5cd074486326211d7528241f6e27221e6f28231f7528231f7c2b2621802e282366292521622824205e26231f6c272421832c2723892b2824972c2824752925213c27221e33211d192b1f1b1723201c1821211d181f24201c252a2621252a26221a23201b151f1c1718292520212c29253535332e5d4a454061514c4783615c55a06f6760b5776f67b6766f66d07f756eb9726b64ba726a639d69625bad6f6961b4706a62cd797069b4706861bf746b64db7e746cef80776fd8756c65c86f6660dd787069a2676059d2766c67dd776f68ec7b736be97a7169d0756b65c7736964e4797069c96e675fd6746c65e67b716bc0716962cf776f67be726a62c4746e64cb777067ff675c56ff61564eff554b44ff2d2621efffffffefffffffefffffffefffffffefffffffefffffffff4f473ffb605c58efffffffefffffffefffffffefffffffff3d352dff221d18ff40382fa92c251f63332c267c37312b923a342e8737312b8a37302c8c38312c8837302a9f3a332d9c3a342da13d35308638312c7e36302b7a352f2a75332e287e342f2a9237312ca53b342eb83e3731b23a352ecd3e3832b039342d53332d2645312a253d2c2620312a241e282b251e272c261f34c75324419f411f525e28125f672d15516f30153e76331546873c1b357e35173d7e3a1a3365280e6c9a3d175c8b37165e574c446465594f606a5e55777b6e628c867a6da1948574a5928476a1897c71a5887b70b38a7c729d7b7166b082756b94786c62826f655b92776c629a786d619a766d63a97d72689572695fa4786f639c756b61b67f7469cd82776bb6766b63b5766b62ab736960a8756b61b5796f657e645c52a9746963b1756c65a36d655ebc756c64bc736a5eb4726a5f9a6d635c976a605b97675e599f645c579a635d56a169615bb97068639a665d588d635d568b645e579f6a645c85605a5491655e579a68625b92645d569e918781ffa39689ff76695dff766a5eff7b6f63d3514b44dc524d45de554e48e0564f48b34c4640aa4a433da949423ca749423da146413ba346403bc14a4540ca4f4943d1534d47de534f47ef514c45ec564f48ca4c47408a45403b68403c384e37343044332f2938302c272f302c27252d29242c2f2b2728302d283534302a2e34312b2b332f2a383b38333c3c39343536322e27312c28212f2a26182926201a2e2a26172e2c281c2e2b292534312f303e3c384646423e4e57524e5157524d4f56514e5b5b575265605d566767625b706d675e756c6661766a645f776a655f796c67627f6a66617062605a846965617465605b66625d575b5b57526c645f586f6460586f635e597464605c7d68645f72635f5a6b605d577664605a71635e5a886d68619a706a638e6a655f88645f5a8965605b82635e5a6a5d59538065625c8166625c5a56534c4fd072447128221f842a24207f2c26216627211d802b25207c2b2621872e28246a2a2521632925206229242066292520632b2622692b2622672c26226d2d282372302a266a302b2676322c2773322d2779352f2a6c352f2a7335302c95302d28782a27235b24211e3425211d1f2623201722201e23322e29494e494353554f474d58524c234c47401148443c134a433c2c57504c516c655f6470675e836a645cf3857f76f5847e74d87b766bd47e746cd47d736cec837972c0706762b569615cb7706661a1695f5bc2716962e77d746ce1796f69ed7d736cc7726a63eb7f756fb96d655fd1746b65a6665e58c16e6660ad67605ab36c645d9a666059ab6b655da3686159ff645952ff5c514aff5b5048ff2c2621efffffffefffffffefffffffefffffffefffffffefffffffff4b433bfb5f5b57efffffffefffffffefffffffefffffffff41372eff221d19ff4038309f2f292274342e288837312c963c342fa33c352f9c3d35308436302a8a38312ba43a342d9d3a342da33d3630933a342d8537312b7d36302a7b36302a72342e298336302a8136302a7b342e289439332d8538312b8638322b9a3d352e973f362f893f362f99433a3295443b329c483e354dd6613055ac4c234f5926105c632d165e7033184579361646833b1a38803819437833173765280e68993d16528835141b362f2727433a334761564d4f6f62554d6d64584973675d21645c4f135f574d0d60554916625950246d645a3f83796d588f82765c897b6f62817669dd968b7de291897dd6898276b67f786ba97e7269a47b7066a77c7168bf82776dc37f756a88695f589b6d635b7d665b559570645e826b605a936b625bb1746c64c67c726bb4736962b0726961b7746a62976b635bb4756c64a06b625c826159549d6760597d5c55509b675f5a8c635c567e5b544f90635d566e59524d7c605a537d605a5382615c546858514a827e7970ffab9f8fff74685cff766a5eff7a6e61e1504a44de524d46e7554f48f058504bbf4d4641b74b4540ac48423d9e46403aac49433dae4a443eb048433dab48433d9e453f3ab34a453fd0524c44a649433bb64d4741d1534d47c3514c45c4514c46b6514a45c1544d47c7564f49c4544e48d259524cce59544cd45e564fbe5a544dcb5d5851b859534cf4645f59f05a5650c44e4a45ab46423d7d413d39463a36303235322e29312f2c142d2a27122c2a2716302d29163733302647423e3453504a3b5c574f3d5c58523559554f2e53504b1d4e4b45144745400d47443f0d49463e154b49441f55514c3366625d456c68624e6f69624c67625c4b66625b885f5c57ac6a6965a46564619861615d845c5d57735c5b567a635c5874625d5976645f5a8569645f8a6a65608a68635f5d5954516b5a56515d5853506b605a576c5d57525f5c575363ce80514e231e1a5727211d6e2b25215e29231f682a251f832d27236c2a2521702b2722782d28235a282420732d2824732b2722732c2723682c2623642c27236a2d28236f2f2a2569302b2674312c277a322d287a322d267a332e298236302c7a35302b73322d29863c37319f4c4640a6534d47c4615a53ac655e578f5b544d704d474255443f3a45322f2b261e1c1a1b1b1917252f2c28434f48425f5d57504b59544d2b524d451f4c47401d48423c3a4e4842605c564f595f5953b4746c67cb7e756df08a8077ea877e75b67c766cb8746c64b26f6760b3706762c7787068ad6e6660ba7269629b635d56a1655f579d655f58a96a625cb3716a62a869645bbd6f6a61ff594f47ff5a4f48ff5b5149ff2c2520efffffffefffffffefffffffefffffffefffffffefffffffff4a4139fb5d5a56efffffffefffffffefffffffefffffffff40362dff201c18ff453c3490302a246e2a251f5e2c2621502f292472352f2a873a332e70342e296c352e289a3c352eaa3e37308637312b78352f29903a342d973b352f7d36302b7b362f2a973b352f9038332ca83d38308c39332c8537312b7f37302b773630298a3c342e903d362f904038318c40383097453b3335b74a1e67ad4f286b5a2a1478632f18997b3e21517534183c7b34174b823b1e517a361b3766280e6d9a3d1746833111cc807165c0837367b08072659075685c685e544c68554c434f4740374a38322c3623201d2114121019110f0e191e1b182d3c3631395249414f63594e51675f553b655d53245e564c1e5a514717524c441d534e453058524950645c536471695e4b5d584fa07d766faf897e72c0867c70cc897d72be81776da27c7269a982796f8a6b645da1746c637f6a61598269605a8f6d655f87665d598d685f58976c635a765e575189655d577d605b54745d58517c625a557c6058548b68625a795e5951936560587f5f5a5396888179ffad9d8eff776c5fff7c6f63ff7a6e62cd4f4843f258514abd4b453fb74b453fa345403aca504a44d3534c47bc4d464198443e39b34b4540d5524c45c64d4841ea555048c64f4942a848423db24b45409f46413ca748433ead48443fb44d4742bf504a43c2544c46a34b4540c7524e47c0524c47c4534e47dc5a554edc5c554de05f584fcf5a544cdc5e5651d35b554fcc5a534ec45a534eb257514bac56514bc35e5852b559554fae5f5a54a2625c56a366615ba269645e8469635d816a645d7369635b615e59545859544f5657524b49544f474a514d453b45413b2935332f1e2b2a2518272522192e2c291b3b3833284c48422e56524b3b5e595041605b56315955502656524d1d524e48194c48411348443e1246443f1c4745412e4c4a454256524c5158564f5369655d464e4c478364635e8867655f886a665f9d6b67619d6b67616dd2905815161310141814101a1c19151f1f1a161f211d18221f1b1730241f1a452a251f5c2c27226327241f5c2c27237d3029257b2e29257a2f2a25662b2622622a2622682e29256a2f292577312c2784332e297f332d287e342f2a8636302b7f37312c8c38322c8e3e37328f443e38a14c4540b258514ab9665d57ae685f58bf6b635bd3776e67e27e756ed27a726adc7f776fe77d756dfb716c66e668635ebc534f4b8f45413c723b3733492927233724221f252e2b27252e2c28323b36333a4c46403857514a3657514923534d451348423a39524e495457524c97706963c27d766fe587817ae7827d74db898177b5837a72aa746d64c1746d659a67625ba56d665fff564c44ff5d524bff5d524bff2c2621efffffffefffffffefffffffefffffffefffffffefffffffff4c433bfb5e5956efffffffefffffffefffffffefffffffff40362eff221d19ff463d35752d27222a221e19191e1a15171f1a1618211d1821251f1b2424201b2126211c1a241f1a22221e192b25211b442f29224a2e292369342e28642f2a2475302b267839322c973c352fb5423b33973b352f9b3d362f8939332c6b322c268539322c8a3c352e7b3a332c863d362f9d433a3336bf53244599411f665527135f59271356642a15486e2f164a7d371b4f863d1f53833b1d3d6c2b0f65963a1566963f17ba77685db77c6d61be847368b386766baa7f7468c1887c6ec2877b70d48f8376b9877b70b7887d72c18b7e74ce8f8378b471665fe4776f66d96d675ec15f5851a44c48438946403b743e393459312e293f26231f36201d1a2525211e202e2a26202f2d2729393430334a443d31534e45325f584d2f5f5549275f584e1a554e450f4e473d2a5d574f3457524b4c605b53776e696489706b66b07c766fbc7c7871b77a756fac797269be877d758c817770756b625d896f6760886660596d5b56517e615a5576605a5398878177ffae9f90ff81776bff7a6e62ff786c611926221d2327241f2a2825203c312c274f38332d5938342e7a3f3a34733d38338d3a373291403c37a94c4640c0504943ea57514ad6514c47d0514b45d2524c46b84c4741a247413d9b443f3ab54c4641b44c48419f49443eaf4d4842b7504a45c8534e48dc57514bdc59534de25a544ec1565049ce59534ddf5d5751dc5d5651ce5b544eb8575049e1605953c95e5651c45c5551aa54504aa457534d995b56508f5d57518f5f5a528d6761598e6d655f8465605a6d5b58517a615d557c645f578c6c68619b736e688f716d66816d66628a6d6862896d6762937470698a6d6963a46a6561b96e6b65b3696862b262605c965554518e4f4f4d7d4d4b47714847435d42403d4a3938353c34312f36302e2b28312f2c1f3736321932312d1b35342f213b38352143403c264e4c452755524b2a5a564e4bce88526327221d6428231e5327221d4927211d42211d1a2e1c1915241a1714161815121f1f1b162f25211c3025211d21231d1a171d1a1624231f1b3b28231e42292421472f292462342e2a70342f2970332e296b312c27652f2a25642f2a25612f2b267e342f298339332e803f3933a34c453fa3534b45c1635a539e615952c76b635dc46d655ecc776f67b0706861cf786f68f5857b74d2787068cd787069a268605aa268615b91625c559d655f57b96c655fbd6f69639160585390524b47885d57507236322e76413e39362623202612110f1f1c1a18181a18151f25221e30433e38324b45414558524b29544f4719554f49134e49421e504b463a625c564e6d675fff635b56ff615a54ff615851ff2d2621efffffffefffffffefffffffefffffffefffffffefffffffff4e443bfb5e5a57efffffffefffffffefffffffefffffffff40372eff211d18ff443c3394372f297d3630297c37302a7a38312b7537312b6b37302a6638312b56302b25412a26212f27221d2625211c1e201d171a201c192326211d342b26203e2c2823322b26212225211d181f1b18171e1b162726221c3a2b251f452b2521472f28234f352f286f3f373090443c3492453c3452d664333796401d645325124f5523104b602812466d2d1645793217698c3f235e883d2045732e116d963b1665964017ba6d5e55b3706258cd8170659176665cc9897a71b17c7267b67d7269b17e7369a67d72699d7e736ab884796fc1887d73b581776db7847a6eb681776f876e655e71615a538e6d655e6f615852826760587e635b54956b615a98655c55896e665d7a5e595079625952cb71695e67514c44763c393389433e38432f2c282b282621281715132423201d161a191614191613151c1a171d36312c2d4d47432c524b46325a524c2c5d564d22645b5517635c551055514a125b534a1d5d58513271696139787168487e766d61898279ffafa092ff7f776cff7f786eff7b7265442d2a26332b2722272925212423211c1e221f1c1f25221f2b2a262243342f2a5437342f4933302b37302e29232927221822201e1623201c1b25221e2b2d28233c322d284b34302b5435302d5539342e60403b35894b4540a4514b46c659534bbc56514bb5524e47c656514ab9534f48a64f4a44a54f4b45a14d48439f4d47439f4c4742a64e4944c85a524dd7605853bd5a544faa58534e9c57524db0605c55a0605b558f5d595294635e56a26a635d6857524d88645d5a9066615c7d5f5c568665605b7e63605a8066625c71645f5a6e605b578366615c8068635ea1766f6b72635f57846b665e7d66625c6f615d586a5d58554d504d48695c59564f534e4c5d585452675a57545c5853526c5d58567a615c597f6b67615f5c59545c55534e635f59559958555079716c65524b49437244423e69c894566626211d6b26211d6928221e7a2b25216628241f782b26217f2b26226f2d2823862d2924942f2a25552a25204725211d34211e1a231715120c161411181f1b172625211c2e28231e1a201c180e1f1b1614211d1920221e1944292521872d2a25822e2a2578302c266e35302c88423c378e4a433ea8544b45ad5f5650b9665f58b8686059ca716961ab69625bd2766e65f1837b72c6776e67e07f776e9c665f598e615b54b36f6862b26f6760b16f6861b26e6660a069605cb5706963ac6c655eab6f6660be736d65b16f6761aa6c655dc1696159de665f59ef605c55c14b4842a6423e3aa1373633782f2c2931211e1c140b0a090f090908131c1a172f3d3933ff625a55ff5e5753ff645b56ff2b2520efffffffefffffffefffffffefffffffefffffffefffffffff4d433afb5e5956efffffffefffffffefffffffefffffffff3e342cff201c18ff423a319d38302b65322a257d352f298237302b7e352e298d39322d983c342e8036312a8839342d9b3d362ea83e38308638322b923c362fa63e3731ca443d367f3f372f7438312b54312d27452f2a243428241f221d1b170c1a171317241f1a2228221c302b2620332d28222328221d15211c175fe06d3b69b3552d5d5123124251200f4e612912537332184b7a32185e8e3e2158893c1c43742d116a91391664954018a255494494554a43b46a5b53a873655ac17b6e62b87d7065b17e7369bc7e7469ad796f65a67e7469b780766dd78e847abe847b70ac7e736bc2867b728f70665f836760577a655f559b726a629a726a61926e655d9370675e9470685f996d675e8c6c635ea2716d669b7069618b6b655c8f6e665fa0726a629d746c648d6f6560876c645b8d6c6359ab676058bf666058cc645f59c658544fa7504c479e46423da23c3b388734312e6b322e2b31262421150a09080e0303030f0303020e100f0d1f302d282b433f3750756d61ffb4a698ff7f766eff827b73ff80766dc14c463fdb534c43e8554f47d64f4943bd4c4641d8514b45de524d46fd5b5650f359534c9449433c863f3a35663a36325936332e3b302d283127242124201e1c0d1b1a171824221d292b27242e2e2a253f33302b3b35322d2f2f2c271d24211e1524211c1123211d10211f1b142825211a25242022292521332c2a26853a3732b1403e39b3433f3bb848433fac4a4440a14b46418c4b4642894d4844904e4a458a514d498555514b7b534f498d5b55507e57534e8c605c54815f5b54735d57528364605a86635e597d625e58685a565279615d5782635f5998706c65976e6b657f66605c7b655f5a896b655e8167635e60595551665855505455534d6c5d5a5860575453695e5a56615a55536a5f5b576a5f5a5773605c57655c585469615b586e5f5d5a6d5f5d59645c595569605d576b625d5866d19d5e6d27221e6726211d6e28221e752a241f6c28231e6527231e732a24205a27231e822c2722762c27226b2a26215227221e61292520632a2521692d282472302c26642c28244f2b2622422925202f231f1a1a1b1815101a1713171d1a172625211b2729251f2526221d2a27231f3c292521502f2b26803e393590443f3aa0504c479c605953a7605951995f5852ac68615adf7c746cb6716862d87d746cc7756d66b8726962d1776f68cc7b706a96655e58cd79716adc7c746cce797169cd7870699867605a9a666059bd716b6397675d55a56a625aea80796fe47f756de47c746cd87a726bcd736c65d5776f67ac6d675fc0756d658e645d578d635d568f5f5851ff57524cff625852ff5d544dff2c2621efffffffefffffffefffffffefffffffefffffffefffffffff4e433bfb5e5a56efffffffefffffffefffffffefffffffff3f362eff211c18ff41382f91342f286a322c268736302b7c352f2a8638312b8b38322c8839322c8538312c77342f297c353029903a332d66302b246f332d27a03a332ea53d36318538322c8139332c62312c267936312b7d37312b8237322b8738332d893d362fa9433c34853a342d743d352d5a38312952362f284ed15a2b6ab0532d675224124f522210445c2411476a2b145882371d609040215d8d3f1f457b311279933c175e8e3a16452d2721663a332c884a413c92524941aa5f564ea16d655c9a766c63916c645a9b6f665d80675f5794716860c7877e74b581776fa2776e66bc80766eb67f756bab7b716899736a61c47970669c756c63a1756b6375615952996f665eb67a7269b4797069a5756d66b57b736b9a71696276635d566d5f58529a726b638b6b635d75675b5377675e57ae7d726ab97c756cb67f746bb47c746ca6746c66a1766e67a8726c65936e655f966b655f826b655e8c6c665d8c69615c625e56526a5e56526357514b6f554f486c665f5affbbab9cff7f786dff80766bff7f75699d443e37ad474039bb4a443db647423d9f433d38a1433e39d94e4843ef544e48cb4d4741b649443fa948433d863f3a35ac48433ead49443da246413cb54b4540bc4c4641b94f4944be534d46db554f48b54c4741944b443e77433e3868403c35633f3b344135302b322e2a261f2825211325211e1525231f242b28242d2e2b2639332f2a3435312b3735312a2f2f2c272e312e29232c2a262b2c2a27332a2825472e2b274d34322e6d3e3c377f4643418346463f944c4a4596524f4a7757544f735f5b556e5c58536f54504c6855514d59514e496758554f7c625f598c67655f7c635f5976625e598267625d7c645f5b7f66615d876a64616a5e59568a635f5a6e5f5a577c68625f6a5f5a5651524e4b5e57534e78605c588766615d7e64605b71615b588368645f76635f5a645c59555557544f60cd9b5c5b2a241f6f2b25216f2a2420832e28226527231e6427221d712a24205e25211d732a25216529241f6f2b2621702b2621682a25216a2b2622602924206f2d2824692d2924652b272377302b2679322d28662f2a255e2f2a255d312c265b312c27722f2b26712b26235126221e35272320272a25211a2d28222737332c43423d373a413d3836413c37383c39345b4b4844905c5853a7625d56d2736d66c6726c64ac69635da46c655ec1787068d27f766dea857d74f0857b74f6857b75dd7e756ded847b73ee817870d4766e67b56f6660f2847b73f4857c73d3786f68c4716a63dd7c746dcb736d66c8736b64d8787168d6756d66c67068618b5d564f835e5751ff5c534aff5f564eff574f45ff2d2721efffffffefffffffefffffffefffffffefffffffefffffffff50453dfb5e5a57efffffffefffffffefffffffefffffffff413a31ff221c18ff3f362d8536302a402b272166352f297537312c903b34308b3a342d9f3e38318c38332d8037312a7c3530298a38322c7a342f2982342f299237312c7f36302a8b39332d8638322b8437322b943a342e7f36312b8738332d7f36312b8439322c913b342e8a3a342d7e38322b963e362f9b40373050d35a2d3692391b474b1e0d4c54241154652d15496d2e16618c43224d8d3e1d619647234480341477943b16568f3b1630302a252a372f271f372e26273f38313d4d453d454e463f3d4e484130504a412e4b473f3b4f4b4459605c55837470679e777369a979746bca837d73c381796db17a7268956a645d8d70685e95766c649e766c64a9796f65b47e7469b3786f67c980776fc57f7770cd847a729b6f6760c4817970c880776fa7746d65986e655f8d6f665fb47f766fcb857c74c1847b729f756c669b7168639e736c66ae79736d946e6962886b635db0797269a0726c63986f6960a7756c658e685f5a65574f4957534b458b6d635ea1897f78ffc0b29fff7d7165ff7d7165ff7f7365a8464039ad46413ab347413bbf49443ea1413d38be46413cd04c4641a7443f3aac45403bc94c4641a6443f3baa45403bd04f4843b54a443fb149433db74c4540a846423cae48433eb94c4742c24f4a44b54b4641a148433eb24c4642d8564f4ad3544e49c8544f49c2544e49a84e4843a04b4641a8504b45a4524c4699514b44a0524c458f4d4841a94b4842ce534e4aa345413d753c39335c3a37323c322f2b2b33302c2536322c2137322c1834302a203a3732263d3b353546423c3646413b3143423d27403e38273e3c362e3d3c38373f3f3b4d4b4b476b555551835d5d598a5e5e598f5d5d58a063625d9d64615b93625f5a82605d596b53514f645856515e5857507364615b74645f5b7664605b8069645d8d6a66617f645f5a9069655f90686661966c68638766625e705f5b568f6a676189d3a46d201d19151a1b1712161c18141d1f1b1733231e1a4527221d5e2b2621672c26225d27231f6a2a2420782d27238f312c267a2e2824642a2521662a2521632b26225b2a2621632b27226d2d29246f2e2925672e2925692f2b26622e2925582e292466302c267b36302b8436322d863b3733a148413dcd4f4b45fd5d5751fa69635eae544f4a7a44403c4a3834301a29252219302d284045413b71615a544f5e57522a48423e1a3c35324258534d74645f55aa777167fd999287ff978e85de898077ba787068de857d73c97a7269b26e655fef847a71cf7a7068eb847971bd716962d7797169f380776fd6776e67cb746c66b86b645cdd766f67b56c645ec5726964ff564e44ff554c43ff554d44ff2b251fefffffffefffffffefffffffefffffffefffffffefffffffff4a4139fb5d5a57efffffffefffffffefffffffefffffffff41382fff211d19ff3f362d6b2a252021221f1b2c28231e22231f19171e1a1612201c171b24201a2928241f3b2a26204e2e29235d332e287336312b8039332e72322d288837312c8537312c983c362fb7423b34ab4039339c3e37318337322c8837322b8c38322d8238312c7635302a77352e29873b342e953c352f4fd05a2c4f9d4220514d200f565726134c632b144771301752843b1d72a4502c5892411d3e7f3212649439155c933b16bc5e5049c862554bf46e6256fe7e6f64fd877b72f77970689e544f477b47423b5d3e3a3533302c271927231f102926211f35312c3d4a453d6867605653696259375e554f1749413d15423d39274e4941435f595169706a6086766f62b1878075e2999085e5998c85c5897d76aa7b726b8f726a63a3817570ac7c746c98736b648a6a615dad80766da5796f66b07e7368ad7d736c8d6d655f9a736c64a1736c64ba7f776ea5726b64886a625c97706963906b645c926b655d8b655e5781615b55a2706a6183625955a1847b74ffc5b5a5ff786d62ff7b6f61ff726558432f2b265834302a6b3b3631a148423da748433dab47413d9e433e39ad45403bb549433fb74a443fd3504b45fc58534cef57514ac44e4842aa47423cac48423dc14c4741ba4b4641a446423dac4a45409944403b9a443f3ba348433eb54e4843c4504a45c5514c46a94d4740b24e4943b04d4943b2504b45b6524c47994a46408c49433d914a453fa74e4944cf5b554fc25a534ecf5d5852c05c5750b85d5752ac5d5752b45e5a54b05f5a54c2616059c35f5b58ce615f5acf65645fb463615c84514f4a76504e49604a48454944433f2635332f18322f2b0b2f2b271539373122423f39344d4a434d5b57513f55534d36585450244d4946113e3b380f383533173a3935325855503a5755506164635e7065635b866d6a63a478766fb57b7872b47a7471a16e69668267625f795f5d58665b575363cfa0608827221e73231f1b3a221d19321c18151d181411271e1a172b201b17231e1a162b1f1c1827221f1b3624201b452a26216e2b26227a2a26226f2925216b2b2622702d2824602b262250282420552925214d282420562b2623602c2723602e29256e332e2970342f297f37312d7234302b89403a349647423b9f4e484196534c479656504aa4625b55b367605ad86d6860f1726d66f8766f6ad9645e59a64f4a45773c3936382624221f201e1c20292523383e37335c5a534b535f5952425e564e395e585052646058786b675fc2888176dc918982eb8e867fe88c837ff48f877fe7888078e6847b74ce7a726abb726a63ec817770d3746b64cf756d66b06f6760ff514a3fff564d42ff534c42ff2d2720efffffffefffffffefffffffefffffffefffffffefffffffff4e453dfb5d5956efffffffefffffffefffffffefffffffff3a332cff231e19ff3e352ba938322b9e39352faf3b36309d36312b682d2924462f29244127231e211f1c181e1f1d18302825203128241e3328241e23221e1b2a221f1b2624211c2d24211d3628241f432d292457332e298e332e288b332e2980322d288a36302b8c38322c953b352f7936302b76352f2a6e3530294dd0592b5aa74b254b4c1f0d4352220e51672e15577b391c4c833b1c56974725488d3d1b347a2e10619437165d903816a650473fc05a4f45b05a5045ae62574ca062574f9d645a5294655d54a86f655c9b6e635bb27a6f65b7736a61db777168d9746d67e8756c68cf625c56a7514d478e47433d6c3a363242252421291f1e1c1c201d1a1e2824212c36322e34463f3b52625a51405e59523f655a512a5f574d2c615b523a6a655f586f6d667577756d96857e73bf968f87c38f8a83b8838079b6837e78bf8d877eae7f7b73bd8c857caa7e77719d7770688e6d645f90706962a57a716b996f6660936b635c996c665e835f5952956e686081726a64ffc8bdb0ff786f64ff74695aff776b5d2224221d43302c284c332f2a4b322e273a2a26232a2624202a262420242725212728262330272522332b282544312f2a5f3936318b3b3834a53d3834ab413b37a4403d37b145413cb447423ebe4c4742c34e4944a648433fa248433e89433e3a9145403c9346403b82423d3984423e3a7a403c379046423d8b46413bba524b469e4c4640a7504a45bd56504aa3504b46c45a534ec65c5651c85c5651a8534f4aa758524eb05d5953b5625d57945b56508c58544e8556524d7856514d6c544f496855514c7b605d5677605c5774605b5684655f59805e5954a568655fa464635db0676461b6666360ad5e5c599854534e8d4e4d497948474461423f3d43333230272828261b2524221a2927241a2f2c2a253a3835243d3835304b47423f5b564f3457554e3155514b27554f471c514e472455524c63cf9d677428241f7628231f7e2b25206726211d6c26211d8a2a25208128231f8a26231f7423201c4c1e1b18331c1916291e1a16261f1b182d231e1b2f221f1a39221f1a5027231f7b2c2823852d2a267e2b28246d2b2723682c28236b2e292569302b2668312c277b352f2a7736312c7335302b8038332e91453f38954e48419d564f499b554e48a6625a539e645b55a2655d58bc6d655fb46f6961aa6e675fc6766d679a665f5aa769635ccd706a64c667615bcc5d5854b44c49459b3e3b38582c29264b22201d3a211f1d1f1f1d1b282f2c283846413b495a544a465d574f3c615a543c5a544f60666058b0867d77b7878078e88c847d87706960b47a716aab736a64ff564e45ff5c5348ff59534aff2b251fefffffffefffffffefffffffefffffffefffffffefffffffff50473efb615d59efffffffefffffffefffffffefffffffff3b332cff1f1b17ff3f362db83e3831993d37318c39332d9138322d9438332d933b342e77332e298035302a9639332daf3c3830b23c3731b13a3631ae36322d92322e29662b27224925211c3524211d3127231e2b25211b352925203a2b26213327231e2c221e1a3e24201c50292520772d29248e322d289635312b5ad75e314e9b411e484b1e0e475423106a70351a447130163e7c3316549042215790422133772c0e5a9637155c9339159d473f37be534941bd584e45b55e544abb665c52a9665b51a1665c53b071655cb2776c619b75696098736860b87b72699b7168609f736b628d6e675eb87e746b9a70686084655e5681645c55b2726b63af68625baa635c56b15a544fb255504ba94d4a47a1443f3d7033312d502a29264a2625223b242320271f1d1b1e26232120302e2828413c3633554e493860594e34635c512c675e582d68625b3265605a4b6b675d737f7774a090877e9d8b857cae858078b09188815e6c645b81756e64796c655d8169625b9b7c766cffccbfb4ff847c74ff80766aff7d7468e3504a44eb544f46e8534e47e54b4740e64b4841d049443fbc403b3681322f2b5c2b2824492824213b282623382c2824342a2723342926224b33302a5137322d3d302c282c26242134262421402a2723532f2c297735322e973a3834ac3e3b38ab3f3d39a6403d389e423e3a9e433e3b9c46413da748433ea84a4641b04f4945b1504a45a94f4943b0524c47b1534d48cd5b554fb958524eb857524db155504ba2534d49a957514da75b5450aa5f58539d5b55518e57534e8f5b57517a57514b7d5c575289635e5882645f597e625d5876605b566b5c565279605c5677605c5774645f5a71625e58625c58527b65605978615d58675b56525d56524d5a55524d67595651805f5c57835c5a56835b5956915856529658565292504f4d934e4e4b91484744713c3b39523434304d31302d472d2d2a77bf9e655d26201b6827211e6f28221e6c26211d6626211d6227221e6729231f6928231f742a26225f28231e5c26211d6828221e892b25217b2925217a26221e54201d192c1d1b171b1816131f1f1c1827211e1b1d1e1c1828201d183423201c5328241f2826231e6336312b5e36312b6035312b77332f2a823e3731894741397d4a433e8d514944b26158529d62595394625a54a1645e577d5b554fa66d665ebf756c64c1797168a4716862c77c746cb5766e67c37b746cc37b736dd37b746ced847a72d5797169f3807872fa766f68e0615c56d456524da13e3b365d2c29274922201e2818171516161512242d29264548433d74635e5755645d562656504a1248413cff564d42ff4f463dff544c43ff29221defffffffefffffffefffffffefffffffefffffffefffffffff524a41fb5f5b58efffffffefffffffefffffffefffffffff372f28ff211e1aff3c352d973630298939332c78362f297f36302a8a38322c8536302b8336302b72322d299738332d74342f2a7d38312b8237302b8236312c9339332e8337322c6a322c2776332e288636302aa73b342fad3d36319838332d9e37322c7e312b26542925203025221d1c1f1b171e1f1b18302a241f53d55b2d63ab4d276f5527154f5624117670351b4e7735195d88401f639648266494462431762b0e6aa8411865933a1799463e36a44a423aac5349409a5248409e554c448c564c449d60564eb76c6159ae6e645a9b70665d8c6b645aa971696087665f56725f59518e6d655da4756e65bb7d756da3756d64866d655d9a746d65a1766e6697716962a5766d66a87b736b94756b66a0756d65c1867c74c2827870b27b736bc3807770d27f7872cc726d66c364625cc35c5955ae54514c94403d385c35312e502422203e2422201d171715131615131422201d2738342f3c524c4655645e575d6d675f366760581e62595212554f470f51484121746e62ffcabdb2ff797065ff786d64ff7a7067c649443ea6433e38b247413bc349433cab443e38b847423cd54e4842cc4d4741a8433f38903f3a35a1413d38b445403cc847423df8514b47c04c4842cc4a453fa5433e39a03b37338034322d522c2a263027262219211e1c18201d1b2929252242332f2b513835304133312b2226231e1f22201b1d23211d262423203d2c2826552f2b2861312d292a2d2926583d38348e4d48437f4c484298534e4792524b46ac544e49a24f4a469d534e4a95554f4a814f4a4598544f4b744e4a4474524d4679544f4b885a55508a625c5781625c57715c57535f55524d7f635d59695b5752665e59545256534d645b57506c5f5b556f605c568468625e72635e5865605b5669605c567566625c7164615b7166615c7066615d766865607c6d686566635d5b77615e5a8067625e936c66628f67625e8264605c91d2b37841221e1946231e1959241f1b6b27221e6b26221d6425201c702a241e812a2620782a25217c2b2621802e27236429241f5426211e5f2924206a2b2622802e2a257a2d2823792c2823982e2b26962b29244126221e40211e1a281d1a17191c18142f28221d24241f1b191e1b1814221e1a1d24211c2728241f38322b2756423c35684a433e9b574f49975b524da9655f58c9706a64bc716961be726b62d47c746bc1777067a36f6660a8726963c27c726cbf776f68a8706962ae736c65c67a726bca807970bf837a72d090857dcd8f857cd9948a81c5897f76b27a726ab16e6860db736c65fb756d67fa635c59d8524d4a9b3936338532302d5e2a28251f161514ff564e44ff544b41ff554c42ff28231defffffffefffffffefffffffefffffffefffffffefffffffff574f48fb625e5befffffffefffffffefffffffefffffffff372f27ff211d19ff39312986342e26512d28224c2c2721552e2822592e282373322c26803530297e332e297d342e2a76332d288937312ba23b342ea43a352e9438332ca23a342e8b38322b9b3c352e8837312b66322c276c322c2777352f298939322c8539332cab413a33a73f38319a3d3630ba423b34e147413a5adc60344fa04523625424125a5b29136b6f331a547d391b5e8b4120307f3517468a3f1f2f722a0e5d98381560913a161626211b1e28241e2a2d292236342d27523f3830704e453c78554b45a7665d53955d544d9b645d54a96d655dcc797067b4776e65ab746d62a8716960be797268c280776fa6746d648969625b856a645d8b6e6560a3786f6a9d756d6593736b638e726a6392756c66a581777193746a64ab827971977f786e958a8078b1988f84a3958a81a6958d81a090867c9b8e82798f8e82788b897f759b8b8379b78b817ad8908a81dd827b74dc726d68cf6b65609f524e4a8d42403d763d3a365d322f2c28242320160f0e0d12121210ffccbeb4ff7d746bff7b7269ff7a6e63b0443e39a3413b34c046403acf49433ccc47423bea4e4842cf4a443dc949423cd54b4640de504941c54a453ebb48433c8c3d38348c3d3934873e3833a0433f39b94a4540b54b453ecd504a45d5524d48da524e48c24d4842e6544f4af05b5651f5615c56fb5a564fe1524d48653b3834763a373251322f2b302a2824191e1d191723201c31302c28513d39334538342e39312d29242624201822201d11221f1b122825201a2b2823222d2a262c33302a3537312d453d39345447433d5f4b4841624f4b46815b57517959554e7a5c55517757534f7e5d5a559369655f8e68625e8466615c7965615b73605b567f6460597c645f5a8367615c7865605a665e5a555f5c575266605c5665615b587467625f7065615c6e65605b65615c57645f5c5663605b586b65605b74625c595d57524f7e66635f62cf985d141a16131d1c1814231e1a163b221d1a4e26211d5a26221d5625211c6b2c25215b28231f5d27221e6729241f742d2722772c27226f2c2722672b2622722e28237b302a25672c2722652c2722662d2723702d2a25782e2a25792f2b267e302b268b312c276b2f2b265a2b2723302a27222424211c1a1f1c181a221f1a22292621232c28241e2f2a262d2d2a254e393731824947429d56514cb7656059b169635c9c6a625b916a625c765e5853a0706963926a645f966c6561aa756d68a4726b659c716964a37a736cc08c827abb8c8179bd8e847cd4958a81d390857cb6776f67d57c746bc97c736cf58c827afc8e847de3837972d67f776fd37a726be5766e67ff50483fff544b42ff524a40ff29221defffffffefffffffefffffffefffffffefffffffefffffffff514941fb605d59efffffffefffffffefffffffefffffffff372f27ff221e19ff382f286627211c131d1915121e1a151b1f1b1720231e192826211c3c2b262057302b265d302c276b332e2868322c2778332d287e37302a6b312c2779332e288436302b8336302a973b352f8b3a332d9b3d362f8d3a342e8537312c8f3b352e913c352ea34139317f39322b7d37312b8439322c4dd55d2f36973c1c6c5726145a5a28137773361d5378371c54823c1e51883b205c863c1f316f290e4a8931125d8d38152c2b26201d26221d1f28231e222a251e282d28232b3029242a312c2520312b24162c282435322f294d3d3a34724b47429358534c9d605952ab68645a9e69645b9168615b7f655d5671635c566359534e6e635c58836c655f796b645d7a6d665f7d6f676090786e6888776d677c726a637b736b637f7a736a99938a849290867d9392877e8e90877d9e988d84a2998c849fa4968c99a7999196a1958caba4998f989f928ab7b1a49abbaba095c6aea49ab6a4978fa39f938b9992887f9f92887fb18e867cab91887e83897f77ffd4c5b8ff766b61ff786e64ff756a5f913f3b359b403a359a403a36923d3733bb474039ae453e38913c3833a9423c379b3f3a35b346403cba49433cd04e4740b649433cca4c4740c64c4741c04b4640b84a4540bf4d4743be4c4641c44e4741d5544d46a748433ca648433e9e47413da94a443fad4c47429b48433dc0504c45ba4f4a44cf534d48cb554f4ad1544e49d756504cdd5a5450e25b5650fd5d57518647433fa947433f86423f3a4539363130322f2a222c2a261a2b29251f2f2b27202f2c2526302d2927332f2a24312c2825322f291e2f2d271a2f2c271d2b29263431302c493b3a356144423e7d4c4a4686524f4c895654518b5a5a55845c5b5674575450665854525b57524d5057514e575854503b4c4946565a58545e5d5a56525d5a55525c5955525b58535a5d595566615c5865625d59605e5a555c5c5854585c585473ce9f66291915122014120e18120f0d1715130f1d1b18151a1e1a161e1e1a1523201c182b231f1b4e2a241e5f2a251f5f2a251f672b26206a2d27216e2d2822722e2924652d2823672c2822642a26226a2c2823612c272376302b27652e292571312c2777332e2975332e2872342f2a7339342e813c37317739342f7239352f68423d385d443e39493e39332b34312b2c35312c21302c2738443f3932433d3724423c35213c3831495f5a53796b655fbb807974ed928c87a57d7570ad7c7470a77c746f926f69648470686284736b64977c756c957c726ca581777196746b61986f6860bb766f67c67f776ede887e76fd8d837bf98f847de3817770d67f7871e78c827aff4f463fff4d453dff4e443cff29231eefffffffefffffffefffffffefffffffefffffffefffffffff4a423afb5f5c59efffffffefffffffefffffffefffffffff322b23ff201c18ff433b33772d2823261f1b1631211d18291d1a162219171317171411191a18141d1f1c182225211c1a211e191f201d191f221e1a27231f1b2f27231f57322d266e332e2877352f297b37312b8539332d8038312b8539332c80363029973d3730953d37308039342d873a352e883a342e8538322d6ffb783f399e411c3f51200e3252210e2f5c250f3b6e2f14266e2b11387c3417447e351a326c280e6c8b35165f8a3615aa484138ac4c433ca14b433b9d4c453d9f534a438051484176514841754e463d2f3b362f2a322e282237332c182d28242437322c3547423b364c463d274842381d443d36193d37322e544f47556560587b756f67a5827b75bd8a827cb3867f7a80766c6788786f69928278738c81777076746b646d766e66677a716a647b706a7a857d746a7e756d7482797181887f76778c81757391867f7a93878089948b81939f9589afa99c93b6b5a79dc6b2a79ac2b1a79abeb0a2999e9c9188a3a39a92a29c928bafa79c91a2ab9e96ffd1c1b2ff6d6056ff6c6155ff76685c2c2926201a1f1e1a1f22201c1e24211d2227231f2a26241f382c29245636322c793e3933ac47413ca6463f38b047423baf48423bb34a433bb849433db24a443ea547423bc9504a44bd4e4841c64e4943a647423db449443fab48433fa848433fb44c4642ae4b4641bc4e494395453f3ac5514b45d0564f49b14d4943aa4d4743b9514b46c1544d48c5554f49cc554f4ab6514c46b54f4b45b14d4944b3504c47b4524f49cd5c5551c05c5551ac58524d9e54504a90534e498459544e6f59534d6b59534d65514d4433423f37203e3b3528393631193a3632102c29261634302d1c3e3d362746443e2a49453e2045413c1c45403a193e3a35163935302545413c4962605a5b615f586c696661896e6c688a6f6d6a936c6e6d7a6b68665b5d5957635f5c596d66615e5e605c596666625e565d595668ce9e64ff141210ff131110ff11100e471c181458201b17451e1a1630171512140f0d0a11110f0c201c191529221f1a25211e1928241f1a3c2c26204d2c28235e2e2823673029246b302a2578302b2578312a2576302b26702f2a2670302b2671322d276c322d28632f2a256a332d287a38322d7337322d6f36312b7d38332e7a3e3a358b443e3b9d504a44ba5b534dc9605952f5726c64fb766f6bb2544f4a663a3633382f2d281e211f1c212a29244b4f4b434154504a254f49451a4e4a442266605a30706961416e6860eb9c968bd3948e84a08178718f7d756ea7817871a57a716a8e6d665e916a635c7f5e5855a36d655faa736c659f6e675fb87c736cc47f756eff514841ff504640ff514841ff2b241eefffffffefffffffefffffffefffffffefffffffefffffffff473e36fb605e5befffffffefffffffefffffffeff9f9f8ff342d25ff211d19ff332e29ff29241fff292521ff282420ff1b1916ff1d1a17ff1b191649231e195628231f72302b265f2c27224f26231e321f1c170e110f0d1015120f231f1c1721221f1a2d23201b2824211c2225221d2b28231e40302b2554322e276638322a813c362e853c362e8a3e3830913f3931a9423b3471fc7c4049aa49244d5724103654220f2c5b240f336b2d1451843c1b3a823a1c4a833d1d346b290f778f381762923917b44a423b8f433b3599474037a449423a9e49413ba14d463fa9524b44b0554e46b25c524bc25f554dca696057dd736c61f8807a6ff3767068bc5f5a538845403b593834302f2e2b27131c1a17141918152533302a48544f464a57504b3e5f59531d554e490f4d49432069635c1d7c71662a80756b337b726c7d847b73b99a968baa9690868789827b677e767073847d75869890877d9b9086809b8f87789a8e867f988d846c8a82797c91867e82958c81838f867c8e9c9184778a817884958a828f988e85949d908993a3998fffd4c2b4ff716257ff6f6056ff716358a33c373277312e296b2d2a2638211f1a241918150d110f0d0f12100e1a1c1916352b2823302a27222f26231e2c27251f252a26211f28241f302e2a254937332d603d3a338446413b9449423ba44a443fb14b443fb74c4742b74d4843b84f4a44df58524ec4514c45d4544e48c54f4a44b44b4741b94e4944ca534f48b44f4b45be544d47b0504b45b7524c468a47413caa4e4844aa4e4843b0504a45b8524c46d55b534fb4564f499f514a46ab555049ad54504a9e504c4697524e489b58544d9959544e9b5b57509f625d55a168615b935a555091595550955f5b55ba6a6a63bc686663af62605d91565450774846435743403d4d3d3937283634311124221f0d1c1a181528272424403c353754504834514d492f56534e214f4c49174946420c403f3a134e4d481d64605c206d6760286e6a633ed3844eff221e1bff25201cff24201eff221e1cff1e1a17ff1b1715ff181513f41614128c1d19167f221e196625201b481f1b163a181612261815121d1c19151c1f1a161b201c1722241f1b352b2722482f2924552f2a25552e2925532c28226c322d2773342e298037312b5e312b267b352f2a7836302c64322d2964322d297f3c37336e3b37327748433c77514a459b5e56509e635c55af6f6760ce7e746ed980776fdd7e766ddd746d66e4766d677c5a534e6d4c46413f2a2825291a1816171211101a2623212b3e3a3438554f482143403924534d45335b554f66736c637e867e748980776cef918b81d38b837bb4766e68a7776f68b1736c659e6b645da3706a62ff524842ff544b43ff504740ff28221defffffffefffffffefffffffefffffffefffffffefffffffff50463dfb5f5c59efffffffeffffffff0f2f2f2ff201c18ff211d19ff221e1bff403932d927221ec0292420d22e2924ff332e29ff3b342fff3c3530ff302b25ff332d28ff2b2721ff282420ff221e1bff241f1ce41f1c188f25221dab2a25207d2d29237c2e2a245f2925205226221d371d1b17281c191625211d181b211c1822221e191e23201919221e182727231e3a302b2671ff7e4672c55e346a622b1668672e1741672b135a79381c5e853d1f357b351852813b1d3768260e749339175b9b3d18b04b423c9c4640388a433d3585433c359f4a413ba44a423c8a4840398f4d453e90534a43975b5249a9635952915e575096675f57a870685fb9797168c37a7168be776e67bf786f68c2726c65c9716963c77c736a725b554e6d544d4854433e393c2d2a2727181613150f0e0d120e0e0c192b292426413e392a5750492c6259541d514d471b5d544e1b5f544e336c645e597c766b6b9b9185529b8f82659b8d80a69992899f988e88969c918a7c8d827b7b91887f909e958b82938b81778980787d92877f6f847b736b867b75ffdbcabcff75665bff706256ff706157ff514a44ff403b34ff312c28ff2f2b27ff302c297d24211d93292722b5322e299c37332da03c3832a13d37327f36312b71302c2654272520351e1b18271c1a172722201c2726231f1b211d1a2526231e2327231f17221f1a1d27232030302c293f383431583f39346b423c378346413b8847423c8947413c7d423f399047443db0504b44b1504b44c1544e49dd5e564fce59534d9149443f9d4c4641b8534c46ce5b534fcb5c5450aa544e49984f4b458f4d494499504c47a956514c94514d4780504b468554504b905f5a547c605b547a58544f855853506a5a54517b66605c7a69655f816f6a648c76716b8d76706a8969655f82605b5785635e598b64615c8d615e59a465635e8d79736b5d5e59535357524e534c494442423f3c3732312e2821201e1a1c1b1912151413121a1917152c2b2840c47b465f201c17501c1814491a17137b1a1814ff201c19ff25201cff28221fff292420ff23201dff201d1aff1d1a18ff191715dd1b1816c51c1a175c25211d52221e1a50211d183f1b18142e1b17131c1815131b1e19161b221e1a1f221f1a2426221d352b27224a332d2754312d2860332e2a63322d296c342f2a7436312c8539342f823f3a346c443e3977554e4893685e5799726861977a6f68ae8e837ad7a4988cda998e85de988e84da9c9086d89a8d85dd978b84d18a827bc5877d76bd877e76a177706996716a63745e57513333302c272826231a1d1c192a2926232a322d294c5c534c425f584e2f615c513e655f545f6d696098787269c9817b73df898077ff524841ff544b44ff534943ff27211defffffffefffffffefffffffefffffffefffffffefffffffff4e463cfb5f5b58effffffff8807e7cff201d19ff221d19ff342d26ff211c18ff433b348225211c43211e1a6227231e6225211c4b211e1a55221f1a4e211d198f221e1a962b2621ff24211eff342e2aff3a342fff403a33ff423b34ff413a34ff2e2923ff2c2723ff292521ff221d1bc3221e1bc8221f1c6327221d682b27216a2d2822692c28215c28231e47231f1a2e1f1b1776ff844562c1592d635e291451612a144e6e3116657f3d1f5a86401f6e914928517e381c3767260d6a96391759a13f1884423a3395453e379b474038a34b433ca449413ab14d443dad4e463e984f463f8a534a42a7665c52af685e55a5645b539970675d9e7e7369ad8f8478d2a19285dea5978ac7998d84cd998e85b393877cbf9b8f81b4988c80af948a81ab92867fa78f8880a08e847b9b8c85798e857e74847e786d857c766c83877d76535e565130403a372c3935311c2825221522211d1c38352f214b463f2d675e5545897d713a83786d276f685c2472695e2f736b60487d766c5a76716784847f739c878279a289807aa1867c758c857c75ffddcbbdff75655bff706257ff726359ad413c36b33f3a34ff423c38ff625c54ff675f57ff685f58ff625a53ff605851ff5e5650ff48403bff48413bff3f3935ff3b3633ff332e2cc62c2825cd2d2a28862e2b278636332e70332e2a8c39342f8637322d74322e295a2a26234726231f2c211f1b22201e1b2223201d19211e1c21292522242a27231c25221f1d26231f202b28232f322e2a3c36322e5c403b366d46413c7649433f8c4b4641a3514a46954e4742994e4844a1524b47af564f4bb858524da8514d48ad524e49af56514cac5b564e995b554f845d5752886661598c605b56885b55528e69625f856f69647b706b657d77716b86817b74938981799c7771698d625d578a67615c916b67618267625d7f6a655d876f6a617e6f6961816e6965816d68637868646077696763746a6560736b6762706c69636066625e6165625d58d1895637171512361c181424151211361b18153e1b171472211d1973211d19691e1b166f201c18ff25201dff2a2622ff2d2824ff2f2a25ff2a2927ff282622ff24211dff1f1d1af81e1b19f71d1c1b43201c195825211c5924201c451f1b182e1916131e16141224201d191f27221d2224201b1d26211d2428242037322e294e302b2759342f2c613b353157403b357c4a423d88524b448a625a54a1786f67ae877c75bb867d74b28e867bb39b9086a69d9288c3a4988fc5988d84c4988e84bf948a81d19c9089bf968d83d7a99c91ca9c9288a98f8679d7a1978bc38b8178a2716961543f39366123201e4f211f1c221c1b171611100e24302c27445751494359514aff514840ff504741ff554b44ff25201cefffffffefffffffefffffffefffffffefffffffefffffffff4e463cfb5d5956f8878583ff221f1bff221d18efffffffff352e26ff211b17ff443b34a12a25215724221e411e1c19331c19163825211c2619171436201d193d201e193f201c177d2825207f292621802a26216624201b892b26217c2d2823ff272420ff48403aff4c443eff4c4540ff4f4842ff4f4842ff35312dff322e29ff2f2b26ff2e2a25ff22201df824221ff724221f57f4713651b85329555d26125d672f176673361b5a7f3b1c53873b1d53883f1e5d823a1d3b69280e5d94381657a53f182228231e1a26211d272a262137353029523d362f683f3631703f38328947403977473f39714d443e94534a43965049428b5a524b976c625aa87f746ac694887eae8b8174af8a8176b5998c83a0968980a6a79b8f92ab9e94a0b4a69da4afa199a0aa9b939fada4969ca99e929ba69b90a9ada1969aa0978bafb0a299a3ad9e929ea59a8f87988d8391a1978ba7a99e93a5afa5998fb2a79a77a1958c51786e6760524b476f6460574158524c1b443f390c282421163a362f31615b51397972663c756c62296d615915554e45ffddcdbdff736459ff6b5e52ff7264594924211d942d2b2797302d29922e2b279f322e29842b2724b436312cad2e2a25a92c28237925221dff2d2b27ff615952ff615a52ff666058ff675f57ff645d57ff645e58ff504c47ff4f4c47ff4f4b45ff49443fff45403cf92e2c29fa2d2c29f8313030592a27245a2d29278037342f953d39359d3e3a357836322d652f2b293e24221f291d1b1a1f1d1a191f1f1c1a282a27243938332e1e27241f2226231f252926211a2926231929262328302c293336322d4e403c376547423c6b46403b6b47423e89534f487957514c735c56516e57524e75534d4a765e585570635e59736d66627f79716d837f79729185807c8e6f6a647358564f7d5f5c558567615d6f625e587665605c7969655e6766625c7069645f7869645f7468635e6f68625e6e68655e7268655e6a65605b6a65625c776c666261d294595a221d197225211d7c26211c44201c18321d1915381815122e1c18143b1d18143a1d19155e201d1a6823201c7725211d5b1e1a175a1f1b17d92d2a26ff312c29ff332f2bff363634ff2e2b29ff282522ff292826ff242322ff21201eff1d1d1b8323201c7025211d5527231e4e24211c341d19171d181412191b181619211e1a1e221e1a18231f1b1f2825202c2e292546332e2a64433d3884524b4584544c4895544d47a6605952a76b635daa8b8279a99b9187a9948980c19d938bb2978d84b4988d84c0a2978dc9a99e93878a7e7385867d73ad9b8e82c49d9288b78c8279ca91887edb91867dcd837972d77a736bf0706961f0655f58b34c48436f2e2b28ff524840ff524841ff514841ff26211cefffffffefffffffefffffffefffffffefffffffefffffffff4a3f37ff211c18ff201d19ff231f1aefffffffefffffffff362e27ff201b17ff3a322b9c312c27742e2a24712c2823792f2b268e322e289f36312b582d2923442b262132221e1b3d201c183e25211b2a1c19153b221e1938211d186325231e5922201b772b28238a2d2a256f27231e6b27221e75292520802c2923e0383431e3504b46ff504c47ff514943ff56504bff4c494677ff854558c0582c6c662e1667672e175e71331968823e1f689248226b904423577f391b3668270d589a391663af461c542b262234211d1a1f1c18141a1d1b172127231e1a231f1b2226201b1925211c1826221d1f2c28232d322d293f35302b513d38326f4f4840895a544c85645c5492635a5388554f469d645d55a972696196736a629c81786e9e8e847a89847b72918e857b98998e87929c91888fa0958b8fa3998e95aba1949cafa49796a99d936c96887e6993897e6c94897e8ba6978c98b0a59991aca29597b5a89b99afa396b4bcaba29ba79b92a4a99e93bab2a79cc7aaa094ebb5aba2d29b9086aa7f78707b7a756c705d56514b564e48ffdac8bcff736458ff726358ff71625837221f1c44211e1a5328252032211e1b38211d194124211d36221f1a4522201c6124231e5925231f8a2f2d29a635322e812c28238d2b2724912c29259a2f2c28ab35302d8d302d28ee33302deb494541db5a5552ff5e5956ff645b56ff68615cff6f6864ff6e6b6aff5b5652ff605b57ff554f4aff504d4aff40403fff3d3d3cff3d3d3caa2d2d2a9233322f9837332f85393430833c38338d403b37833c383368332e2b472825222a201c1a1d1f1b18191d1b181f26231f2129262217201e1b232925201b2a2823162927231a2e2c271e302d2a2b34312e363d3a374a4a45414b4f49445f5d58536d645f5a6f67625d675d5753775e5955665956506b605d566f64605a7669645f6c65625b7069655f7068645e66625e58605f5b566864605a67645f5c6e63605c64635e5966635f5a64615d5653d0854f521f1c1857221d1963231e1a60211d1966231e1b7c28231f7a27231f8a2a25218128252162231f1c48201d192d19161438201b184e211c193e1e1a1552201d1860221e1974221f1ab126231fb12c2925ff37332fff34322eff322f2cff32302cff2e2b2aff2a2826ff282523ff23221fe422201eaa221e1c4127221e4f2b27225326221e3f24201c251e1c1722201c1921231f1c2d2c28231e2c2723252c282433312e2a5a403a368b534d4792726a62958d837ab5978c83a893888092887d769e90857db59f9388ab9e938582897e72888b7f789493897db1998e8397857b719d8a7f72b78d8277c5978b80e09a8f86e68d837bd2887e74ce837a71d8827b72ff4e443eff524841ff504740ff29231eefffffffefffffffefffffffefffffffefffffffefffffffff463d35ff211c18ff221c18efffffffefffffffefffffffff352e27ff1d1814ff3a322b96302b266a2d2823612a2521622a25216c2e29237b302a25752f2a24792e29247c302a269f37312c8a322e28a136322cb13b3530a438332f85322e295e2724204e26231f321f1b1835221e1b3b231e1b4e24201c3d201c1849231f195e26221d712a251f872c2823962f2a23962e29246fff864271d2643268642d156a6c31176474361a61803c1c78964a265a8f45225d843e1e3c69280e64a23e1965ab431bff2f2b29ae2a2623ad2b27234c2a242061302a2570342f287d39312b5d302a233c24211c25201d17211f1b18201f1b182324211d2f302b251c2a2521232e2a2524322d293237332d4a463f3973544d46895f58508b615b52835e574f9a6760589a6a625c946b625d8b6c635d846d665e82736a63967f746d877c7267857d72686b746b626e7a716978867c7477897f75939b9085859e93885e8a7d7383a6988888a3988b9ab3a496acbdb0a4a9b6aa9eacb4a79cacb3a89d9eb0a29396a3988ca5a69d909a9c93879092897effe1cfc2ff6e6055ff706156ff6e6056af3c3733e347423cb93e3a35dd46413aef4a4540ec4c4741cd48433ec0423e398e35322d6d2d2a265b2c28243824211e3722201d422925213e221f1c4e2623203a22201c4526231e632c2823732f2c278d35312c9c35322ebf3d3933b23e3933a23b3835a13d3a34d6403e39d255514cc34f4b44ff54514cff6f6a65ff746d69ff75706aff716b68ff68625fff696562ff686462ff595654ff4b4846ff4a4945ff4c4946fe3d3d3ab0333230b23834325b312d2a5d322e2b6f38342f723a3731813e39345a322e28432a27222c22211e221d1b181e1b19171d201e1c1d22201e24272420282f2b271c2b2725202a2824212d2b27243735312c413e3940524e48565f5a546769645b6e6a655f6f66615a63615c5560625e5768625e59716a655f6c68625e5c615c57565d585460625e575b615d5768d1995e52211d195e241f1b5b241e1a5d221e1a53201c196725201b6a26201c7f2a25206625211c6125201c6726211e7b2a2621882c27237e2a25216525201c3c1e1a1636211d192b1d1a162e1f1b17351e1b16481f1c186424201c6822201b8425221fff2f2b28ff3a3632ff383430ff393632ff3b3733ff312f2cff32302eff353332ff2d2b2ae62b2927e32928254d35302b6536312c6e39342f5b332f2a3425211d1c18151326211d1a47393430323b37322e413c362649443f4156514b646b645c8d7970699a83786d8c867b7182867c72948f857b8f90877cdeb2a395bf958b8096847b70b392867ab891867cc094887ecc887f75ef93877ee0857a73db7e756eff524840ff50463fff4f453fff28211defffffffefffffffefffffffefffffffeffffffffe2b2824ff1e1b17fb534f4cefffffffefffffffefffffffefffffffff312923ff1d1814ff39322ca0302b25632c2622672c2722742f2a24642d282370302a257e312d2760292521692d27237c312b266e2f292488332e28a63a342e7c312c26752f2a247a312c2684322d289737312baa3a352fb63d37319f38342e85312d285f2b26223a211d194528231e3124201b2d201d182a1f1c1861ff824167c95c2d626129145d652b156a75361a63823c1e78954a2680994b2a65863e203d69280d57a13b1760ac431aff5c544cff5b544cff574f49ff47433eff45413dff45403dff3e3a38ff32302ee2302e2ce932302c5b3a362f733d373194453f399549443c7e423d3749322d2a2b28231e191a17131b1e1a172c2b262340443e372e3b362f303b37312a3d39331f413d39364a464044524b455f5b554e7c625b547f605851835f574f6c554f496b55504a6d554f497d5d575179635d56b984796f957b7169856f675f6b6a615a837b71689a8880767e7f756e9890867c9290877ca8999186b5a49a8fa99c9287aa9c92879991897e97999185ffe7dfd2ff685d52ff695d53ff675b519e393430ad3e37329738332ec7413c37b63f3a34dd48423ca63c3731a93d3831a43b3731b0403b34b6423d36c248423ce54e4842f1504a44ef4f4944cc46413daa3d39357635312d562f2b2839221f1b502d2925472d2a252c201f1b2923201c28211f1d3321201c4f262422592a2724742f2c299836332fa63936329b383630ac3e3a34aa3f3b36bf44413dbf4944419946433dff504d49ff7e7870ff7f7a74ff7a736fff78726dff746e68ff716b66ff716965ff5d5c58ff5b5a57ff535250ff585654ff504e4de342413fe8413f3ded3e3f3b71514d487e55504c8b57514c9154504c7f4a46416c393733472d2a29382f2c2724302c26182c292417332e292438332e3148433e3348443d2d36332d2e3634302d36332f223b38341c3d3a363048444139504c47485e5a534f605c566266615a58d08b5448241f1a5625201c5c231f1b5d24201c842a25207d28231f6b26201c6b26221d6325211c6727221d73292520742a251f6729231f792c2722762c272286302a257a2c2722812c29235529252037231f1b331d19162e231f1b291f1c18241a1816311b18163d201d1a6727221d732c2721742b2621eb524d49ea5d5651ff7e7771ff83776fff5a5552ff5f5a55ff5e5a55ff4e4943ff423f3aff3e3b37ff393632673e393464433e389f4d4842b94e49434b2724202912110f21131210392a272529322e2a243b352f1b3c373224463f3835534c45716962598f786f66977d7369a081796f8f7a7269c2978a82cd998d84cd857b73cb837972ec897f76cf7d746cff50453eff54473fff4d423cff27211defffffffefffffffefffffffefffffffff1d1a17ff1f1b18ff251f1afb5b5753efffffffefffffffefffffffefffffffff322c24ff1c1814ff38322c7f28241f3b2925204e2a2520622e29245e2f2a25712f2b256a2e29239335312aa038322d92352f2a89332d278e342e297a302c2777302b2675302a2579312c269135302a923630299137312b89352f2a9739332e9539332d993b342ea43d3630a13b352eb13e3831b43e39315b352f2a5bef6e3586d46a385c642c1456682e15566f3017537d381a77964b27649145225b873d1d446f2b0f64ad411a58a53d189f38332db6413a359f3e3832f034312df0625a54ff6e655cff82796fff80766aff998a7bff645e58ff665f59ff5f5a54ff65625dff3f3b37ff3a3633ff373330d237322f784a443d94504a429f5c544ce26e6861c45f59518148423b3f28251f251b19171b191815272a28242a3835312533302b253b36301d413b34183b35311f423c352a49423d4a564f49695b564d7560575184635c5367554e497c58534d6c514c477f5d554e91605853a069625b9e6c665e986d665f96716a62ac7a736a967c7367957a746a8c7c736cffeae0d5ff665c51ff5f554bff655b51e146413cc9413c37bf3f3933ae3c3832c1413c36a73c3832a03a3631a03b3631af3f3932b3403b34ca444039c848423bc246403ca8403a36c646403cca46413dc447423eca4b4640de524d45c44e4842cf4e4841e7504c46f7534f48bf44413b683e3c374a36342f362926223725221f5634302c382926232c24211e2924221e1f1f1d1a2a201e1c301f1d1b4125211e462826237c312e2a9037332eac3f3b34bd45403ab1413f39db4f4b46a2413e397235322cf2494746eb5a5857fb72706dff716e6bff827f7bff787672ff6f6d66ff6e6863ff65625dff67615dff63605aff63615eff585a57ff403f3cff3f3d3aff3d3c385a2c292763312f2c6b363430603c3a3566403d37be6666617f4c4a45c17671684a3f3b343435312b222d2a26182b29252034322d26413f3a1d3b3a3526312f2c38c37b431f1c19141c1a16123b1d1a176b221f1b8025201c7b25211e7025221e6d25221d6f27231f6226221e6528231f6127231e69292520722c26226b2b25226f2b27225d2a25205a292621692d29246a2e2a256f312c2760312d27452e2924342925202a201d193f26231e35231f1b352a251f3024211d4025211d59292521632d28238e38332dc246413be76e6761ff817974ff9e948cff9e928aff867f76ff76716bff6c6762ff56524eff55504dff3e3b38f8383734b046403c98605b5267443e39462e29264826221f2a1917141c1513101e211e1b1c27241f1e332f2815322e291e3c37312e4d463f696960598b756e659c726a61c682796fb7786f67a5716960ff544740ff4e423cff51453eff28221eefffffffefffffffefffffffff1c1916ff1d1916fa635f5cff433830fb5d5955efffffffefffffffefffffffefffffffff322b24ff1e1915ff3c352f6f1f1c18271e1a1622211d181b1e1a161e211d193e23201c61272420882d2a258d2c2924842c2924842f2b26782f2c2681312c278a332e2977312c277c312c287f332e287b322d287f332e288536302b8e38322d8937312c8737312c8e38322c77352f296e332e278339332d883a342e61e169335caf4f296b662e157474381b79803f1e6786411f6293472365954721668e422044722d1061ad3e195fae441a2d25221d3525221d4627231e5b2b2621672f2b25853a352faa443e36d34f4942e85f5a52fc4e4943e26c655ef4726a64ffa2988dffa89c92ffb2a498ffb0a294ff837c74ff837c75ff6e6961ff645f5aff4b4741ff4c4743ff3b3835a24d4740c75a524cce857d728d615c53a4635e565d413a35663c3631472a2521271b19171c18151219221f1b182b27221c302c261f3b362e1436332c123330291e3f3a3421413c3643544c46695d585178615c5386625b527b5d56509f6761578c605a53805f5a52725c574e80635c53ffeae0d5ff63584fff5f554bff655a509b302d2a9a322f2b9e36322e9a37332ea4393531ab3d3833c4413d37983b3630a33d3832b2403b36b0403c36aa413d389f403c36af423e39b5443f3bb845403bb947403cb547413db549423eb549443d9a443e3991403c3699413d38a946413dae484440ac494641bf524d47b7504c45ad504c46a04b48428748433e61423e37523e3a3445393530322d2a26412d2c275836332e422d29253b2d292644322f2a2e2826212c26241f392624204b2c2a245e34312b793c38337b3d3a3595423e3990413d379d46433fc9585651da63635dc4504d49d3474846c4444342d6595652ff63605eff73706dff6e6b68ff6b6764ff746e69ff6a6661ff5e5d58ff605f5cff545451ff585452ff4d4949ff494442ff484342dd3e3b38a03c3935a93b38358d4b4944794d4a445f45423c744f4e4849433e3956c890525525211c3f231f1a581e1b182c1b1814231d1915251e1a16241a17143a1f1b187525221e8a2724207328231f6928232067292520782d2824702c2723662b2722632c2722662e282282322d2879302c2674312c276b302b25632f2a24552d29245e302b2563302c266d322e297c37322c352e29252e26221f3324211d342e2a25242f2a2330312d264336332c533a342d78403831a749453eb74f4a43f3716c63ffa1978effa49b92ff9e938bff9b938dff686462ff66615dff615a57ff474240ff403c3ae43e3b37cf3e3b364c4b453e4f433e364a37332c4c332e283325211d1d221e1b1323201c23312d282639342f20322f2a2034302b2a403b363d49453fff51453fff4f433dff52463fff29221eefffffffefffffffff1c1916ff1e1b17fb5c5856efffffffff3f362ffb5b5754efffffffefffffffefffffffefffffffff302923ff1c1814ff413a33a72924206b2e28246c2f2924532d2823532b27236125221e3a211e1a231f1c1828231f1a2c241f1b28211f1b161b19145828241f792a28238d2d2a26892f2a2681302b2781322c287a342d298b36302b9739332e8737322c9238332d7d37312b8039322b7737312a943e3730aa423b356ee072386fb65a2c73683017736f34199d8a4927778f4b2374964c27618e4220698f432043712d0f6cba481d78b54b1f573f383237332d27382f2a253e2c28223525221e3a302d272329241f282c28233f302d283d322e27543b342e6b4038317f413a33a149453eab4b483ec4544f47ff68645aad5c5650ff6e6762ffb4a89effaea39bffb0a49bffa0968fffa19b95ff6f6f6dff686360ff5c5753ff5e5755ff494341f9423d3bd147433edb4c48426560574f745e574e66524c44795049405c403b34372824202a211e1b191b18160e1b18151423201d2435312b253e3934233a35302035322d1e3e383324433e383247423d3e4f4c45555a564effeaddccff62584eff645b50ff645950392724213a2723202f24221e1e1c1a161e1f1c19672b2824852d2b27962e2c28af35332f9e36322f9f393531a63d39359f413b37a3413c38ca48423fc949433fb046403cba48433eb348433ea047403ba448423c95433e39af4a443ed2524b44da544f49ce534e47e658544dc1504c46bb4f4b45b04c48419d47423c9f49453f8c46423b9248443e9e4b46419f4c4841a94e4a45b24f4b45aa4f4945c3534e486c46423c483c393332322e2a33322e2a3f34302b3424221f372d2b272e32302c24312c282536332e2f34322e463837333b34312d4436322e4b3834305239342e633d3b3775413f3a7d45453e8445443f9b4b4a44d455554f9545423d8b3f3d39ff5b5a57ff76716bff7b7671ff777472ff6e6c69ff64605dff63605dff646463ff575757ff545252ff4d4a46ff4a4643ff4e4a479ac9a4664c211d196125211c5f26211d6826221e7626221e952723206c201e1b16181512291d1a162f211d19131b1713351f1b184d231f1b892a25217729242059282420632c2824652d282478302b267b322d287d332d2773312c266c312c27592e29245d312b2661312d2769332f2966342f2b70342e2b7138322c73463f38774d463e55423c3532312c27291d1a17251e1c1745453d352d403a332438332e493f3a356f4d463eaf585249c15a544dd1605951fe4e4a47fdafa69bffaea299ffaca197ffa69b91ff615c56ff625d58ff615c57ff413d3aff403d3aff393733ff36333048322d295339352f4436312c4433302a4b38352f2d2d2b261b2825222035312cff594d46ff51453fff51463fff27211cf0f8f8f8ff1c1816ff1d1a17fd3b3732efffffffefffffffff3e352dfb5b5855efffffffefffffffefffffffefffffffff2f2922ff1b1713ff3a342ea32a2622752d28246a2b2622672b272381322d296d302a2674302b2689312d299a322e29c135312c922c29254227241f1419171329221e1a442b26222d27241f121b1815281e1b174327231f6b28242095302b27872f2b2677312c276c332d297e38322d833a342e953d37309f40393270d1693771b0572a7d6d34198e75391e92864425768c4724729b4e277b9a4c276c8e422049722d1065b4441a59ab411890443e388f443e3892423c358f463f388f4d453d98564e456f4c443b433a342e2a2a2721211a1916251a17144c3f393234433d3528413b332039342d2b3b352f634c48426b5149418d524d449f524f47a1514c46b059524ca0544d469d4b4842fc575350fbb2a99effb2a99effb1a59bffaaa098ffaba298ffa59991ff6c6661ff5c5855ff5a5653ff534e4cff3f3c39ff3f3c39ff3936337b534c464b3b342f553e3b3236353029533c38332f2c2a2543312f2a322a28242123221e16201e1b1926231f223a372f15352e29ffe4d8caff60574dff675d52ff635a4ff844403cfd46433fd73c39358b312e2a2d26231f141b181523201d1b502e2b27512e2b2730272420101a1816221e1d1942252320432724208f302d29a636322f9f373331953b36347d3a35328d423c39a146413daa494340ab49443fc34e4944c8514a44c6524c45dc55514ac2514b44d5565049b64f4b43c0524d45a44c484183453f3a914a443e994d47419a4d4943a24e4943a9504b45a8504b459f4e49449d4c4843a54d4944a04e4b469f5350499359534b7e5450478356514a775c564f5b5651493c4a453f2d403d382434312d20242320241f1d1a28302d273846413a2f433f38263f3c361a373430243c38333f3e3b37684b48435946403a6548453e794c4a428e53514b86504c489c5d5853935a55509255544f7a4545405731302dfa504f4cfa5b5857fe686660ff67625fff645f5cacd1c07b59231f1b4c211d1948211e1a4b231f1a51241f1b50241f1a51241f1c6125211d73282320972a26217424211d301d1a172c1f1b1825211e1a1d201c17251d1b1646221e1a722b2622742b2722772e2925682e2a256c302c2668312c275f2f2b26612f2a2576332e287835302b7c35312c883a3430873e3934834a433d795048427249443d844f4a42935c544a9d665e568559524b5a49443d3c38342f3023201d4739332d3137342d3a46413b2e3f3b354b4541397f514b42904f4a42bd555048b7504c45ec888178fb8a827affa0958cff706862ff5d5753ff5a5552ff615d59ff64615cff4b4946ff484643ff3b3937ff37343183332f2b5537342f74423d39ff564a43ff524640ff544942ff26201bff191714ff201b18fa6b6864efffffffefffffffefffffffff413931fb5b5855efffffffefffffffefffffffefffffffff302a23ff1c1713ff362f2aa9302b26702c2723662b26216f2d28245027231f542925215c2b26225a2b2622652d2823602c27225f2c272275312c2781312d278d342f29b739342fbb36322e762c28233a24201d36221f1b2f25211d2d27221e2626221d1e1f1c1828201d194624201c652b272189312d2783332e287eca663572aa54296f6d34177474381a7e82412093914b28a4a6583091a4542d7a954a24527630125cad3f175fb0451aae4d4640b149423da947413b9d48423b924f4841905049417f49443c8e4f4a42945f574d9c6b6258a8766d6189625b52604f49414f49433c3d3d38322e2926212f221f1c3d2f2a253234312b3847433d2d49453e2a49443d404d484057524d447a5b544a75504b43935650478c4d4942944d4943954d4841a747423cd77c746cd07d7771ff8f8781ffa0958eff9d948aff9e948bff6b6660ff67615dff68625fff645f5aff534f4bff494643ff44423fff3937357e36332d88373530543d3b3560413f397147433d64453e38ffcfc0b4ff695f55ff675e54ff62594f8335302c81342f2b8235302d8936312e9a3a3530bb3f3a35c23f3b36e449443ff74b4741e843403a8534312b4b2b28254227252132272320442f2b27362c2824322c28252425231f2122201d2924211e48282523622e2b288e383430953a3632973e3935a4433f3ac04b4741a94a46409a48443fac4d4843ab4f4a44a54c4742a84f4945954a4440a14b4641c3544d46c2534e47b5534c47c256514cbb56524db355504cc25b5651bd5b5550aa58524e9655504b8a57524d7f544f4b6d524e4860504b4568535049645551496558544b6d5b564f755e59526056524b5d58544e424f4b443e4c49433448453f2b3c39342d2f2c282f2a272432332f2a3139373232413e383348454126413e392b433f3a3844413b4744433d5045433c6c4b49415e43413b6d46443e7a47443f6e41403d7a45443f7fc8c27c6327211d5824201c5824201c6426211c4e231f1b6327221e6325211d5725201d5125201b692924204c25201b622b2521732b2622602e2923552c26232d201d1a221e1b171d1d1a161f221e191d201c18241e1a172e26221d4d2f2a25512f2c26632d2a2580342f2a71332e2a65322d29803934308d453f3aa7514a45ba5a544da658514cb75d5550a85f57519b645c56a3635b53a0686056ac726a60ad776e64a6766d638f6c645c785d574f3a36312c2c28252031292622343d39332d413e36384440394c3f3c357b4a463d914c4840a04b463e94453f3aac4e4742ff5c5754ff6d6764ff625b56ff5a524fff59534eff615b54ff5c5752ff514d49ff47443fff635851ff554a44ff584c46ff29221eff201b17f2d4d3d3efffffffefffffffefffffffefffffffff3e362ffb5b5855efffffffefffffffefffffffefffffffff2e2821ff1a1613ff37312b9d302a25622d282279302a25712d28246a2c2723692c28236b2d2824662c27246c2f292576302b26722e2a25712e2924652d2823602d28237d332d288b342e295f2d282375322d278a36302a9137312c7738312b7c39322d4b2f2a252f25211d27241f1b25221e1a2425221c2a28241e63c25a2b82af572b76682f156e703317817e3d1d878f46247d9a4c279ca7583072924622547731115aaa3f185ab2481a9649423dae49433daa49433dc0554d47ce5d544ed8615953b75d564fbf625a54a9625a5494635c559770655ca76e635a8e615a518b665e54966f665ca07b716598776e638b70685d7b655d556c5e574f5c4d4843362f2c272a201e1a2d2926212e25221f2237322e2c4d48402b4d4940344f4a433c48453c654f4c4371504a40764c473f7d49443c814843398c4e48437f47413ab14f49439f544e48ff605a56ff7e7972ff79726cff7a726bff6a635dff716963ff67625bff5d5853ff54504bff494541ff433f3cff35322fffbfb1a4ff685f55ff6c635aff655c53933833309e3934309d383430ab3b37328335302d78322e2a8234312c9a393531aa3d3834aa3e3a348238332d9b3e3a34a9423d38c046413cb749433d9f46403ba148423d703d393550332f2c332b27232627231f2726231f2125221e2e2b2824342e2b262b2a27221e22211c2523211c25292721342e2b265236332f6c3f3b367345413c7b413c398e46403ce259534ed156504bc1534d48ae514b47934e4945a0534f4aa856524dba5e5953a95c5751ad605a55a15c5652af615c57935955508659554e8a5955508157534f7b5a56516455524c6557514b7a5b554e6658524b6c5b574f665a564f6e5e5a527567625a6d6661596f66605962635e575e645e5758615b54545f5a544856524e32433f3a2634322d242f2d282932302c2b2b29272035322f2b45423d2d494740304746413045423e5dc7a761211b1815211c19168025211d8226221e6425201d6e2a24205d25201d5926221e5526211d66292420732b2622732b2622692c2723702d2823652c28235a2b2623632d29246c302b258b2e2a256e27232038211d19121b17132325211c1f27221d19201c18462a26226c2e2b265d3b36307b433d388848413da5514b45ab565049bc615955b6635b56b2665d58c0706961cc736b63b66f66609c686158b3726a60af736a60bb777168c8807970b77c756bc0847c7193766c646a645d5442443f3931322f2a281c1b18372a29243544413a23403c321f36332c3b38342c4835312b8e494540873f3a367635302d7d38332fff746c66ff6d6761ff837c76ff7e766dff62584fff544a42ff554b44ff29221df0f1f1f0efffffffefffffffefffffffefffffffefffffffff3e352efb5c5855efffffffefffffffefffffffefffffffff2e2822ff1b1713ff3d362f6d231e1a4a27231f251f1b18121c19164f24211d892a2722902d2925712b2723692c272387342d286b2d2824742e2925662e2924652e292480342f299036302b85332f298d342f298735302b8436302b8936302b7d352f2a8c39332e73352f2a8039342e7739342db4423c35cf433d3762c45c2c8ab1582b7f70361b776e311682803d1d71853e1e879b4d298fa3552d7e984b255076301172b3451b5dab43189547403aa74b443fa84d4540b8554d47bd5b534dc8625a53c8685f5ab4675e59ad685f59a7655e58b4726a62b8736a639d68615a9768615a88635e568d6a6258956e655e906d645a9e6f695fa5746e659d736d6595716b639b7a71678e7770656f73675f5c6a615747524d443238342d2a332f29231b19172914131137312f293248453d244c473c2048443a1f3b383138403b323f413d344e3b3a338156514b6f48413c6f46413c6b413b357f44403a88494640ea464240ff7c776fff746f69ff76726bff928881ff9d968aff9d9185ff675e55ff696156ff645b52a43b3732bc403a349337332f9c3834309036332f7a332f2c8636312ea53b3833a63d3934c7443f3aa93d3934b1403b37ae423d39a8413c38ae433f3abf48423ea7443e3bbd4a45409c45403b9c46403ca549443fa048423dbe4f4943f759534df557524cc946433d6b35312b4c2f2c2816211f1a0e1f1d182b2e2b254339352f3c38342e1e2b28231625221e2e2725224d332f2c71373430993f3c37764b4742a55e58529c5c5550a65c55519c58524e9355514c8e55504c8d58544e955e5a5496635d59835a5651815e59547a5e5851795d5a547e605d56815d5a5381605b566e5d58526b5956506657544e6057534c6c5b564f6c5d5651685b564f74625e576f5f5a527864615a6d625d566e6560596a66635c7269655e60655f584e615b54435f5a533555504a2e4c4943273c3a34233d3b3652c38c527726211e501e1b1820181613261e1a16171a16121f1d19163c231e1b592a2520702e28227d2e282367292420652a2520662c26226c2d2824702f2a257a2f2a266e2e29246a2f2b25722f2b2577322d286d2f2b2680302c268c322e286f2c29233928241f171f1c191d211f1b1d2a26221428241f2035312a5147413a9257524ba7635c56bd6a615caa69605bbb706861cb736c64c5776d67c9756d65d2787168a76c655cc5797169c0787068b3756e65c77d766b9e726b61927068609c726b63be817970ab78716a947972695f645e533d4d48422c2f2c273e262521423e39332638332f2a3f3a361f342e2c3d34312d67443e397e3e39358e3c3934a23d3936ff574c44ff534840ff52483fff241e19efffffffefffffffefffffffefffffffefffffffefffffffff3c342dfb5b5855efffffffefffffffefffffffefffffffff312a23ff1b1714ff423a32b4302a25712e2823972e292581282421351d1a17221b19162f24211c22211d18111a18151f201d1a3a26221f4d2c27236b312c2781352f2aa23c352e81332f2873302b267a312c2673332d277f352f2a8636312b923a342e993a342e963a332e8e39332e8a3a352f8e3d3730953d373069c55e2d7bb15a2c5a602811716e311581813e1e72853e1d929f522c6795462273934723527731116dab411965ab451a1926221d1526221e21312d27423e373170504a43ae635b54ab69615ab86e655fb66d645f9f69605aa76c635dc0746c649b6b645da9736a63a56e675ec2787169a56f686087655e57a06d685e9a6f675e966e665f906d655fa2736d64816d645a786c635869676057836e69607d6f665e957771678a706b637c7a74696868625951686055384e484130403c372423211d3d23211c322b26222b37322e263a363025413d3627423d371d312e2b383835305545413b5f46423b67413d3971413e388344423b954a4541b568625dff9b8d82ff70665cff6c635aff665d53131a18161c201e1b3524211f482a25226e35312b8736322faa3f3a35ca443f3aca443f3ab13d3a358d383330993a3632963d3833aa423d37b845403caf45403cbc4b443fb949443ec54c4741ae48423fb54a4540a548443fad4b4641bc4e4943bf4e4a44c9524e47c4544e46ac4d4942c6504c45e858534cf35b5651f75b564fc0504c468b44403a533b3631262925221325211e1b28252233322e2a2b35312c1c322e29172f2b2614332f29223b373138433d37584e4b45775c58528d615d567e5f5c5585655f5a87655f5b82615d58745e5954785d5953725d5952815d59547c635d5978615c56775f5b538a64605a80615e58735e5b556157534e6f5d5a5477625e5973615c56695d5854675d585378625f586f605c54595c574f565d574e4f59554f5a5a57515f5c5954625f5a536d625f5964d07a4b5b231f1b64241f1b852a24208d2924205927221e341e1a17281e1a172f221f1a29221d192b211c182e24201b4d2c2621622f2a24622c28236b2d292480312c27732f2b266e302c2676312c2876312c276c2f2b256b302b257f342f297b35302a8237322c71332e2a7d3a332e5938312d3f302b2625272420312b2823343b373137433f392249433d3a554f495c665c56a0766d66d180776fc87a726aca787068d57d756de2847c73c7786f68a06d655eb4746d649d6d655f9768625a976c655bbc7b726bbc7971699c71696299736a6393726a62ab7e746ab07a7369c7787169c26e675f8f514d49513833313e2f2b282b322f2b2e413d381d393630313b3833ff70685fff594f46ff53483eff221c18efffffffefffffffefffffffefffffffefffffffefffffffff3f352efb5c5754efffffffefffffffefffffffefffffffff2f2923ff1b1713ff403730cd322b25712823206f2925216e2924208e2f2a25a3332e29aa342f2a862d2924562b26223c211d1a291f1b182e221e1a3727231e3026211d22231f1b38231f1b3628241f522f2a256c342e288038322c7836302a8536312b8b38322ca63d3631943a342f923c3730943e38339e3f39336cbd592b609f4a226f662d145a6a2d128b833f1f878f4725789749265893441f5d8c411e4e75301159a83e165da2401865403a333e2d2824272824202e2c28233a39342d3d48433d3b4f484222524b4425514c4540655c55566e645d716f665fac80776fb17a726aaa756e65ad766f67a0716962af756e66b1767066b0756d659169625c80645e57876a625c8f6c655e7c68605a77615b5376625d5372645d539171686193716b627d6a635d7d6f665e756a625b736c655c756f685f7f6f655c8360584f8e5f59518f58534aa158534c8a4948425f3b3734412f2d28362c29252d34302b27302e2a243937311c3836302539362f313e3b3540555048ffb3a79fff857c70ff6e665cff645a506f302d294d2622202f221f1b4529252243292622432a2622432a26222525211e3024211e2d24211e3f2c29245e33302b773a353090403c37bb4a443f9a433d39a945403ca946413cc64d4842c94e4943bd4c4843ba4e4943b24c4842be4f4b46c8514d47c1514b45ba4f4a45ad4d4741b34d4841b14f4942c3524d47d656514bc957524ad25a554dd45b5550ae4f4a45ad504b45b2534e48ab5e5852784d4743674b47423e3935302a2b2825212a2723222e2b27293936302d43403a374c4a44314c4943204e4a431e4c4842264746403f5d58524c645f584f605c557569655e8c6b67617f65615b7a64615a7c64605a7c625e5873605b5681645f5a7a625f598565615b7c625d59645855505d58544f5d5b5752685e5b54635b57525e5c57535957544e5655534b5557534b5958544c6b5e5a5589d080546425201b5d231e1b5d251f1c6825211c6824201c7a2823207d2b2521982d2824722d28234125201c141a161423231f1a26241f1c151f1c184027241f58302b2470352f297f34302a75322e287b342e2a80332d2977332e298035302a8a37322c7f37312c62312b276c37312c7a473e38964f4740904c4640b25c554edc625c56724d47403d342f2b262925223e433e385259524b1e4b423c1e4f48414d645c54896f6860b5827971bc7a716bba797069c77b726ad47c756bb9736d64b7736c63b2766d64b4736b639d6b645caa736a639f6e665da77269609d6d665fa5736b62bb7d736aae756e66c27c746dd4837a73da7f766ee27d756c4a47433f463b3834ff7c7168ff51463dff50453cff231d19efffffffefffffffefffffffefffffffefffffffefffffffff3c342cfb5b5754efffffffefffffffefffffffefffffffff2f2822ff1a1612ff362e28cc37312b8b2e29247d2b26216927231f6b282420652a24206f2926217c2c2924842d292490302c268c312c27a637312cc839342f8e36312b682f2a252b24201c151c18152824201c3d2a26211e211d1a16211d193628242059302b24673630298e3f3932963f38329a3e39339b403a3562be592b5399431d60692d136d7030166d7f3a1b5d823b1b719042224f8e401d568c401c45732e0f6eb5481b64a44219b1544e46b1534b459c524b45b1625a52b85d5750cc7b706b72544c454735312d3123201e20211f1c2f3e3833545d554d4a6c645c19574d461555504535666058587770667a766f65b08e857b9e6f696399776f6897726b63916d665f916a625ca8726b638c68625b976b655c8d6d645c8d6d655c956d645e7f665f587e665f58806b635b7b68605870645e557c6c645b74665f596e645e557d686058896c62597f645e568465605884635d569968615a9b665f59ad645e56b5605d544d4a464046302e29242d2a272f312d28ffdcd1caff9b9085ff655c50ff645a50b237342fc03a3832b43a3631cf413c37e546413cf64e4943bc423e38983c3833502d2a272624221e191d1b182e25231e472e2b27352a28231a221f1d1723211e2d2b29264f322e2a673c373280443f3ab4514b45bf514c46ca534f49b54d4943c6534f48c4534e49da57514bd3564f4bcf564f4ac0524d48be524c47de59544ede5a544edb5a554fc658524da5504a468645413c9d4c484292524c46a55e5750a059565095544f4b85524d4973514d48805e5a54825e5c55c76e6c677e64615c564f4b4547423e3a333835312127252318282723243f3b364358534a3d57534c305c56501647413c11403e3623524d4747615c5651625e575f67625b7d68635e7568625d735d59566f66625c6e635f59665e5a5471605d56705d58547b605d576a5b5853735d5a556b5d59546b605b54685f59539ad0895b5f231e1b5b241f1b8129241f7d2924207e28231f832824207a292420742a25208d2e2824842d282385302b26672f2a25572d282330221f1b151917133528241f2325211c15211d19412a26215e332e297136312b6a322d2671332e287d352f2a8037322d7137322c8f3f3a349a4e4741ad584f49db635b54d4696158be6c645dca7a7168ce786f67c47b726bb8766c6478554d4647342f2c1c1b18163637332e665a544b264c484220524c4537615a516c736a61b8857c70d3837b70d57d766dc97b726bce7d746ca36e6760b9776f67c2797168be7a7268b7756f65b5756d64c3797169c5776f67b7746b64b97b716ac980766fc67b726ccf807670bf776f68ff8a7d72ff4e433aff4e4339ff211c18efffffffefffffffefffffffefffffffefffffffefffffffff3b322cfb585552efffffffefffffffefffffffefffffffff2d2621ff1d1915ff37302ba92c27227f2a25216727211e6a27221f802c272398312c2798322d28712a27229d322d289a302c2695302c2793312c278b312c27a736302b9b342f2a9636312c9e39332d8036312b7537322d60302b273326221e131a18143027221d442e29242727231e13221f1b282924204b2f2b2663c25a2b62a64c227e713116596d2d136579341879894020689043214e8e401a53883e1b40712c0e71b5491c7ca9481dd15f554ee5635a54ef6d645cde70665dbc746a64bf83766dcc887d73b2716962b2796f68a17970699f7a6f6881655c566245403b3e2522201c0b0a09181917143a3e383361615a4f2e57504a175450481d67605636736b5e51756d62707e766a9d80776ca7767067a5746c659e706761a1726863a06f6860926a625d745f5a538a6b655b8f6d675e8f6d675e93726a608a6e675e7e69635b94716a60896b655c8e6d675e79635f5678645b51856e665f916f676192716a628a6a645d936b655e9369625b8568625b9880776cffffffffff96897eff655c52ff645a50d03c3833c73a3732c33a3733b33a3531c23d3833c33e3a34d6423c38d3443f3bd945413cc1413e38c845413ca2413e39a747433d90423e396c393632372c2926171f1d1b2124211e5238332e4a36322d2c2c2925192826221829262235312d2a5337342f643f3d38954d4844b0544e48b4534d47a54d4741b5504a46b4524b44c4554e48db5a554fc254514cb5545049a8514c47a94e4a44c45a554fb8605b54b0615b56a65e5954bc625d58b768645da969645c9366615c9069645e8367615a946c676082625e5883615c567f67625b7366625c736c66606f6a625b52514d4755494641393b38341823201d101f1d1a1e36322e37504a444957524a2d534e491b4b4943134946411e5c575035635e563d625d565a6d685e656d6860756a655d7963605a7d65635d7b63605a6f615b587964605b7dd07c50401c1916361f1b175a25201c5e231f1b7026221e892a25218b2c2722802a25207b2b2622882d282393302b26742c2722782e2925752f2a257a312d286a332e28582f2a253325211c1e211d192726211c1f25201c18201d182a24201c492e2a256236312c803b363186423c379b4c463fa5534d46c5655d57ce6d665fbc6e655dce776f66d47b736abe777066c3786e68bf7a7069ea877d73da837970c9797168985c554e65413c382e221f1d2c2b28254a4d453f3f534d4724504943204f474041645d54696b645d8f756b66af787068c17c736ada847a72d280786fdb817970df837a71df837a72e4857b72f6877d74ed857c74ea7f766ec1776e68d8817770ff695c51ff4e433aff4d4239ff231d19efffffffefffffffefffffffefffffffefffffffefffffffff383029fb595553efffffffefffffffefffffffefffffffff2c2520ff1f1b17ff39322c7324201c201c19153e1e1b17391e1b174926211d6b2c2622682a26217a2c28239f312c27a3322d289e322d28b737312c872f2a2595332e298f322d28b53a342fab38322d8b322e288b342f299b37312c9036312c9739332e9b3d3730813c352f7038322c52312c262b24211d2727231e52c65a294aa1451f7777351757743114667d37185c823a1c5d8d411e5792451e52843b1b41702d0e70af451a86a8481eb5564f48da655e57cd69615bd06f6861c3766f67a8756b62c781786ecc7d756db87b716ab179706aaa7a706aa27e746ea380756dcc847b72ba81766cae7d746d9c6c645b7e544e47623e3a364122201d21141311211d1b183936332d46554e46395b554b2357504819595047255e574d3b6f675c506f67616970685f77716964866f69608269635b98706961a7776e67a0746d649d716b629c706961a0736b62a1726b63a8756c64a7766e64af756c63b0776f67a7756d65956a635c866761599d776e678d665f58976c655dfff8f3efff74695eff645a50ff655b51d63d3834d63d3834c83b3733dc413c37e5433e38a637342fc53f3a36b23c3733d943403be9494440d645413cb43f3c37b5423d37bd46413cd24b4641b346413dbb49423fc84e4944bf534c46a04b45408c46423d7a423f3943312e292629272436302d274034302c3832302c2f312c281b2b26221924221e1f26231f312f2b274f3a36327044403c8a4d4943a0514d48ae56514cb45c565094554f49a75b564fa05a56509357524dab625e589e645f5a9d65605b9b67635c835f5b54755d57508f6460599367645d8465615b7d66615b8064605b7c66615c6e655f5b7866605b8169655d956e6861916e6760816b67607a69645d75645f576657524c574e4a45443f3c382e2b28261d2423201c2b29262a3936313248433d325550492f504c451e4a46411a514d461b4e4a432854514b37625e576bd185535b211d19261a1713221c19151b1b1814211b171444221e1a772b2621852e2823702c2723682c27226f2b2722662b26226b2c2723772f2a26732f2a2578312c277b312d276e302c277b342f2a7537312b52312c272c23201b111a171416201c172128241f1a28242037312d287c46403a8f514a44ae5d5550c86f6660c1716760bd736b63c1776f65c97b736bd17e746dd881786fd7817870c1766d65cf786f68d87c736bd379716ad87c746cd37d756dc3736b657d4d47432f2523201b1a18153737332f4a514a442e554f4715463e38275a534d48665d56796f67609a6f6760b9797069de837a72fa8d8278fb8b8178f5857d73eb82776fcb786f68d97e756eff554940ff4c4139ff4e433aff241e19efffffffefffffffefffffffefffffffefffffffefffffffff393029fb595653efffffffefffffffefffffffefffffffff2b241fff1e1a17ff3c352ed02d2823a42a27226f24201c391e1b18221917142e211e1a211e1c18161a16132d201c194a25211d802f2b268c302c2698342e2988322d287b322d277e312c278a332e297b302b2694342f2983332e299337312c9437322c8d36312b963a352f9a3a352f993d37318e3c3730a5433d3651ca5d2955ad4e24757d3919687c381770883f1d54873d1c528e3e1d5390441f54873d1b48702d0f89b74c1f679a3e197a4d4942a5554f49af625b57c3726b64b9746c63b1756d66ad746d65af776f66ab766f68af79726baf7a726aba827970ba827970b37d756da4736b62a2726b63a5716a62b0766e66ac736b64a16d675fb1736d64a8726c629b6b645b7b56514b5e3c37332e1e1c1b1e171514191614132d302d293d4d474135564e47235e584f13534a411a59524b316c645d3f6d635c5c6f665f76756e6576615b55866d655fa0756e66b0797066b5786d68bd797069ac746b65b9766e66ab736a648e6a645c936b665d8c645e5696827b74ffe6dfd7ff695e54ff61574eff695e5536211f1d5226222086312e2aa0383430dd443f39ca413c36b73f3a35a93d3834a43d3934aa3d3935b7403c37a33c3834b1413c37a53f3b37ab433e3aba48423ebe49443faf46423dbe4b4541be4d4843c44e4a44c44f4b46b54c4943c0504d47d65a544ec759544eb556514c8c504a4458403a3535302d291a25231f17211e1b1e27231f2c312c272e322f2a1a2e2b261a2e2c273139353047413c378d55514b63514d48825b565291544f4c8658534f8e5d5955855f595385615b567c625c587c615c567c635e5779625e568064605b8066635d7b64615b7f69635f8368635d8567635d8167635d8467625b705f5b567d615c577a605c577f5f5c57765c57537a5d58547f5e5b5582615e587d64605a7b65605a77615c58635854504f46423e2e312f2d212a282614201f1d162322202637343182c991595a231f1b6525201b912b26213d231f1b221d19151517141023201c17141a17132a231f1b362924205f2d2824582b2621532a25206a2e29246e2e29257b302b277e322e2876312d2785342f297b342f298435302b73332f296e332e298e39322d4f312b27282724200d1b18144d3f3932323b352e11322d28524c46415959514ba06e665db0786e65cb7e756edb817870e5847c73dd817970cb7c736cbd776f68cd7a726adf7c746cae6a625ceb817870d97c736cb4726963b7716962bd746c65ba746c6591564f4a49322f2a1511100f15231e1c37433e382c544e450936302b1d504b454c504c45a66e675f9d6760599a6b635db2716a62e27e756def877d76ff7b6e64ff53473fff4a3f38ff241e1aefffffffefffffffefffffffefffffffefffffffefffffffff39312afb595552efffffffefffffffefffffffefffffffff28231eff1c1714ff3b332da928231e7126221e6825211e7429241f8e2c2723b7342e294a27242031221e1b17191613181816122f221d1a1e1e1b18111b17142a24211c3226231e462d282374322d2870312b26582b26226f302a2583342e2a8f36302c8b37322ca23b342f9c3c3630983b352f9e3e3832ab3f3a3365d765306db8552887853c1a6a7e36165c8338184f843a19528c3e1d5293441b50843b1a4d702e1075aa43195693391550453f371835312b0f37332e4f57514c4e6a625c62655f58a077706792746d65a6797067a67a726bbc7e766fc3817b71c4837c72b57b746ba3756d65936f69609d706962a8736b64b9787068815f595391665f59bf766f66b9756d65ab6f67608d6a625c966b635d8b6761599d706a618d6b665d8457514b5636332f3c27242114090908090b09081c2d27242d47423b325f584e0b463e3609423c351d5d58503c5a564f6b69655c9b746c6578605a536f5c575077655d58946f68609f6f6760ad746d64a76d645eafa39b92ffebe3dcff928478ff60564eff655a5112171512241d1a17462723202b23211d0e191815121c19162c24211e372725203f2c2a266c37332e963d3a359a3f3a347b3934307b38342f8b3d3a35b345413bb446413cb347423dbb4a4542d1504945c7504b45bf4d4944be4e4944d5554f4acf524e48bf524e47d056514dd556514cc0554f49bc534d48be544e49a5504b46e5605953a0544d49774943404b403b38232f2d290c211f1c142723204448443d484e48412f4340391235332e0e35332e4a4d4946455b56514e5d58535b55514c755e5b556c635f597966615a6d645e558066625e8866615d89686560896866608a6a67618365615c73625e5974605c5775635f5977605c577c615c5888635e5a845d595560514e4a725a56528d64605b86625e5983605c58755d59546c5e59576d5c5853675d58546a605b56746360596864615b83d08f564d201c185e231e1a8229231e812924206b26211d6f29241f5f2b25213f25201c1d1c1815231f1b18181e1a17151c19162a231f1a4029241f5d2d29245c2d28245b2d2724562b26235d2d272476312d276d312c276a322d28682e2a2572332e297938332e773b3631994b443ecb59504a90504840362b27241e282422534a443e2f4b45401e4f494349665e5775736c64ac7d766ca4797069ac766e669e7068619e726a63bd776f67d07b726ac77b736b9f6b655d92696159b3706a61c1756e64d17a736ab3726b63c1797168c1766e66b5716a638459534d583a3631231917151f23201d1d2d2925223b372f173c37302c4d4941484e4c4474615b538c665f58ff82766dff483e38ff493f38ff251f1befffffffefffffffefffffffefffffffefffffffefffffffff3a3129fb5a5653efffffffefffffffefffffffefffffffff2b2621ff191512ff2e2822a62a25206725211c5d221e1a6725201c872a25209d2f2a259c302a257b2a252170282420852d282388342e295a2b25214226221e1f1c191629211d1a241e1a171a1e1b18121b1815211f1c183727231e4d2c272266332d2977352f2b6e332d2a70342e2a6b322e2974332f2a7a36312c8ce7733b75b9572b5d8138167b8a3e1b46813715548a3d1b5b94441f4d91431b4a833b193c6f2d0e81a6431a699d411ab3685f56714d483f2e2622201c2523214547423b454b463f29544e471c59544c266d665e4782797171878077908b837a8e7d766e85756d668d726b6396746c637368615a846e6760916e675fa6756c649f726b639f736c6385655f587a645d586d6259528467605a89676058986a645ca46f68608b68615a84655e589a6f695f9169635b8c6a645c7f655e57654d4943513b38322b201e1b170e0d0c171b19171d2623211c35322c1c46403912443d362259534a345a554c4d5f5c526569625a71675e56725b554f866f6963ffd1c5b9ff8d8074ff5a5148ff645850892e2b27ad38332fb93f39358a37322e69312c294d2a272325201e1b2e24221e44292622241f1d191c201e1c101c1a181e211f1c2724221e402e2a265c35322d7c3f3a3692423d399b45403b88413c388c423e3989423d3986413d399244403b9c48433fb44e4a44b8514b47aa4f4945b0504b46a24d4843a64d4844ab4c4843b3514c46ac514d47b256514ca2534f4a9f56524caa5c5650c9655f59b1645d58996a645c815e59504a46433c272f2d291b2c2b27273734303d4a4640324e4b451e49443f1847443e1b504d47305a5550466a655f5e6d696368716e676f6a67626a6a66605c635f5a6962605a6c635e5a62605b56555c595361615d58665e5a56705f5b567e635d586f5f5c577564605a6b5f5b565a595551585955504d58534c5f5c5853665b575271605c556e5f5b567b625e598bd0985aff413c37ff312c29ff2f2b27ff2f2a27ff302b28ff322d2aff2e2a27ff2f2a26ff342f2cff4e4845ff736c67ff78726cff706c65ff706a62ff746a60ff73685dff726961ff6b675fff6a665eff6a665fff6c6861ff736f69ff706b65ff6d6863ff6b655fff69635eff6f6862ff514b45ff36312cff302b28ff312c29ff37322eff37332fff393633ff393531ff393430ff35312dff36322fff403c38ff524d48ff5f5954ff65605aff67635dff6b6660ff68625cff5d5651ff47413cff3f3b36ff443e39ff44413cff49443fff433e39ff433e37ff453f39ff47413bff45403aff464039ff4a423cff484039ff463f38ff473e37ff463e38ff4a423cff46403aff484039ff473f38ff443c36ff433b35ff514a43ff544f4aff56504aff59504aff584f48ff554d46ff534b43ff534b44ff534b44ff534b44ff524a43ff534a44ff514a43ff534c46ff524a45ff534b45ff524b44ff524b44ff554c46ff564d46ff564e46ff574e46ff5e544cff60554cff605349ff625449ff64574cff605549ff5f5248ff5b5047ff564c42ff584d46ff5b5046ff5f5249ff62564dff685c53ff675a51ff675b52ff675b52ff65574eff64564cff685c50ff67594f69d6643057b04f2466863a186c8a3c1a648c3e1b6f9443208da7572e4b91441d528c421c4873301081a13f1a699d3f18ffb8aaa5ffb6aba4ffb4a8a2ffaaa199ffa49a92ffa79b94ffa79d96ffa19890ff9d958cff9b9489ff958d83ff968d85ff908882ff908883ff8d8781ff918881ff8b827bff887f78ff877e77ff887f78ff887e78ff867e76ff7f7770ff80776fff7f7870ff7a746cff86807bff857e78ff807a73ff7a746cff746e67ff68615cff5b544fff4d4843ff4e4946ff4c4844ff4f4b47ff4c4844ff4a4643ff484541ff464340ff44413fff423e3bff3f3d39ff403c39ff3b3835ff3f3b38ff524c47ff655b52ff665b51ff61584dff61574cff5f564cff5e534aff5e534aff5b5048ff594f45ff554b42ff554b42ff554b43ff534a41ff574c43ff564a41ff594d43ff584c42ff5b4f44ff5b5048ff574c43ff50463dff50463dff52463eff4f453cff4c423aff51463dff474039ff3d3833ff383431ff36322fff35312eff413d3aff4b4643ff534f4bff5d5c56ff666260ff68645fff746e6aff78716dff777370ff84817eff928d86ff96908bff98928cff948c87ff7a746eff78716bff6b655fff736a65ff807b75ffc8bfb9fff6f1e9fff1e4ddffeee3dafffbf3effff4e9e4fff5efeeffefecebfff1ecebffe5e1ddffdad9d8ffd9d5d3ffc9c4c2ff949190ff6c6c6dff7b7c80ff6c7272ff6a6a68ff716e6cff6d6a69ff65605eff686463ff6c6867ff62605eff605d5bff655f5cff5b5856ff5c5957ff5e5a59ff585752ff575553ff61605eff646666ff60605cbbcfa05bff2a2725ff262422ff272422ff292523ff282521ff2a2623ff2b2623ff2a2723ff2e2927ff322e2bff353330ff332f2cff312f2cff312e2aff322f2bff322f2bff302d29ff302d2aff2f2b28ff2f2c29ff322e2bff373331ff322f2cff33312dff332f2cff312e2aff322e2bff2b2825ff272421ff282622ff2c2927ff2b2926ff2c2927ff322f2cff312f2cff2e2b28ff2d2927ff2c2927ff2e2b28ff312d2bff322f2cff332f2cff322e2cff36332fff36322fff302d2aff2e2b28ff2e2b28ff2e2a27ff322f2cff332f2cff312e2bff332e2bff34302dff33312dff302c28ff33302bff332f2bff35302bff35302bff342f2aff322d29ff39332fff342f2aff322d28ff35302bff302b26ff2c2622ff332e2aff36322fff3a3430ff3d3630ff3d3630ff3b342eff39322cff37302bff37302aff39322dff37312bff3b342fff3a322dff3b342fff39332dff39322dff3a332eff3d352fff3d3630ff3f3730ff413831ff423932ff443a33ff443a32ff423931ff423831ff3e3530ff3c342eff423933ff3c342eff38302aff39312cff3d352fff403731ff423a34ff433b35ff433b35ff403932ff403932ff413932ff403731ff453c34ff41363176da68355bb6512654883c19578a3d196e99471f769d4a236096431f5393461f5e8b421d467330107ca4401a699f421aff615853ff615852ff5e5651ff584f49ff5a514cff5b514cff5c554eff5d554fff59534dff5d5650ff5c554eff5f5751ff5c5853ff58524cff58524cff59544eff58514cff574f4aff5c5450ff564f49ff58504cff58504bff59524cff5c544fff5a534dff544e48ff5a544eff595650ff58514cff5a554eff555049ff675f5bff615b56ff4d4844ff494542ff45403eff45413eff423f3bff433f3cff423f3cff423f3bff423e3bff3f3c39ff3d3a37ff3c3836ff3e3b37ff3b3835ff403d39ff49443eff4b453dff48423cff443e3aff433e3aff443d39ff47413dff403a36ff403c37ff3f3933ff3c3631ff3c3732ff393531ff3c3632ff3e3833ff413a35ff3e3731ff3f3832ff443e39ff433e38ff3d3731ff3b3530ff3b342fff3c3631ff3d3632ff3c3530ff3a332eff312d2aff332f2bff33302dff312e2bff373431ff3a3734ff3e3a37ff474340ff504b47ff57534fff605b57ff696662ff6f6e6aff78716affada69dffc1b6aeffc9c0b5ffc6bab2ff7b6f69ff463f3bff49413dff443d38ff47413cff514b46ff90877fff837a72ff81766dffa0958aff968b84ff978b87ff968f8eff918e8cff928e8eff898684ff8f8c8aff8e9191ff7f7e7dff797875ff706e6fff727070ff646160ff676363ff6c6968ff5c5857ff605d5bff5a5856ff585454ff585354ff55514eff53514eff54524fff54524eff5c5853ff5a5752ff5c5d5bff646463ff5655528acc7e46ff676360ff67625dff69645fff67615cff68615dff66605bff645e5aff625d59ff645f5bff5f5a56ff5c5853ff595751ff5b5753ff585550ff585551ff524f4aff52504aff4f4d48ff4d4a46ff4c4845ff4e4a47ff4d4947ff4d4946ff4e4947ff4c4744ff494542ff484441ff494542ff4b4744ff4d4946ff514e4aff55524fff555250ff534f4dff4e4945ff4a4641ff4b4744ff47433fff44403dff433f3bff423f3bff44413cff44403bff403e3aff403d3aff413d39ff43403cff44403bff433f3cff43403cff433f3cff3d3a37ff433f3bff43403cff45423eff45413cff423d38ff433e39ff423d38ff3e3a35ff3f3b36ff3e3a35ff403b35ff443d38ff413a35ff3e3833ff3e3833ff3d3833ff3f3b36ff3f3b36ff403b36ff403b35ff3d3832ff3c3731ff39332eff35302bff38322dff3a342fff3a3530ff39332fff3a3430ff38332fff37312dff38322eff3a342fff3b352fff3e3630ff3e3631ff403832ff423a33ff413932ff403932ff3d3630ff39322dff39322dff39332eff3a342eff3b332dff3c3630ff3e3833ff443c37ff48413bff544c46ff5f5851ff6a615aff736862ff776f68ff6f6961ff6e655eff786d64ff766a6182db6a376fbf5c2e8d98462272903e1c7397451f699a48215497461e5293461f5c8e451f3f702d0f6f9f3e196f9d4119ff706763ff6f6762ff6f6661ff736a64ff6f6661ff6c645fff68605cff665f5bff66605bff66615bff635f5aff625c58ff605a54ff605953ff605b53ff5d5751ff5a544fff5d5651ff5b5550ff5a5551ff5e5852ff5c544fff5b534fff5c544fff5a534eff564f4bff58544dff55514cff544f4aff544d48ff514d46ff524d48ff514b47ff46413eff44403cff413e3bff403d3aff3f3d39ff3e3a38ff3d3937ff3d3937ff3b3835ff3a3734ff3a3735ff383532ff383533ff353330ff373432ff373431ff373331ff312e2cff32302cff322f2dff302d2bff2d2a28ff2e2b29ff2d2a28ff2d2a27ff2e2b28ff2e2926ff2d2926ff2a2826ff2b2826ff2f2a28ff2e2a28ff322d2aff36312fff34302fff312d2bff2e2926ff2c2723ff2f2b27ff2f2d29ff2e2a28ff2f2b28ff2d2b27ff2e2b28ff2e2b27ff2e2c29ff2f2d2aff312d2bff34312eff383431ff3d3a38ff433f3cff4d4845ff504c48ff5f5c57ff63605dff74726dff938e88ffafa69effb6ada5ffb8b0a7ff7c766fff5a544fff55504aff625a53ff756c67ff69625eff756e6aff817872ff6d655cff69625bff645e57ff635e59ff656260ff6a6666ff6b6867ff747272ff6e706fff696a6bff696968ff606060ff686767ff666263ff636263ff62605fff5d5a5aff585553ff565452ff545350ff55524fff54514fff4f4e4bff4e4c4aff4d4b49ff504f4aff53514dff4e4b47ff504c49ff5957568ace7f48ff9e9994ffa09b97ff9f9a96ff9c9792ff97928eff95908cff928f8bff8e8b88ff86847fff807f7aff827f7bff82817cff82807cff807f7aff7b7a75ff74746fff6f6d68ff6c6865ff696663ff65635fff58504bff423830ff433a32ff443c35ff423b36ff3d3632ff575450ff5d5955ff5d5957ff605c59ff615d5aff615d5aff5e5b58ff595653ff565350ff54514eff524f4cff504d49ff4d4a45ff504b48ff504c49ff4e4c49ff4c4946ff4a4643ff4e4946ff484440ff45413dff433e38ff443e38ff483e36ff484038ff4c453eff59524bff615a54ff42403cff403c38ff413c37ff403b37ff3e3a36ff3d3935ff3c3834ff403a36ff3a3531ff38342fff393430ff3a3530ff3c3732ff3e3a36ff3c3935ff3b3734ff393633ff383431ff38332fff34312dff35312dff443c36ff57493fff5a4a40ff5b4a3eff56463bff53473eff3e3934ff2e2b29ff322e2bff35302cff36312dff36312cff37322dff36322dff35312cff332f2aff342f2bff342f2bff35302bff332e29ff322d29ff36302cff36322dff36322eff3c3834ff483f38ff4b3c2fff644b38ff7b573bff735641ff6d5d50ff938a81ff9c948dff9f9890ffa69d96ff9f989080d565347fc75e2e8b994420869946217199471f81a350265d9c49205a90431e5489401b46712f1060993a165b983c17ff857c7bff807977ff7e7774ff7a7470ff6d6460ff58483cff5d493bff6e5643ff7c6352ff867263ff786f67ff5e5956ff5f5956ff5b5652ff5b5852ff58534fff585350ff54504dff56524fff514f4dff514f4cff524d4aff51504cff4d4845ff4a4743ff4d4844ff4f4b46ff544f4bff4b4743ff4a443fff484440ff46413dff48413cff544941ff5b5147ff62584fff887b70ff786e65ff45413eff3c3937ff3b3735ff3a3734ff3b3735ff363431ff353331ff343230ff343331ff343230ff343130ff353230ff33302fff32312eff32302eff32302dff302d2bff302d2bff2e2c29ff2e2c29ff2d2a28ff2d2a27ff443d37ff564d45ff6c6057ff76695fff7d6f65ff5b534eff2f2b29ff2f2b2aff2e2b28ff2c2826ff2c2926ff2c2926ff2e2b28ff2e2c29ff2f2c2aff2c2b28ff2c2b28ff2d2b28ff2f2c2aff2e2b29ff302d2bff34312fff33302eff373431ff3b3835ff423f3cff4e4c48ff413c38ff453c36ff594d45ff63554dff594d46ff675f5bff7b746fffa39d99ffa59e9affa09a96ffaca6a0ffe8e2dafff9f3ecfffcf3edff8f8b88ff6e6966ff726c6aff6a6461ff6d6663ff6e6866ff706a69ff6c6868ff585452ff40342cff4b3b30ff574b41ff625852ff695e56ff68635fff5f5d5cff5d5c5aff5f5e5cff5a5757ff5d5b5aff5b5857ff585553ff555350ff555351ff524f4fff4c4b48ff4e4d4aff504e4cff524f4dff514f4cff4e4d4a86ca723eff9d9894ff9c9793ff989390ff95908cff938f8cff8d8b87ff8a8783ff83807bff807f79ff7f7f7aff7f7f7aff7f7e79ff7c7c77ff787772ff72716bff6c6b66ff686461ff4f453dff483f36ff463d35ff493f36ff473c34ff473e36ff463e37ff433b37ff3c3732ff544f4cff5b5855ff5f5a56ff615d59ff5e5b57ff5c5956ff585552ff54514eff55514dff524f4dff514e4bff514e4bff514d49ff4f4b48ff4e4b48ff4e4a48ff4d4946ff4b4744ff494642ff3a342eff3a332dff433b34ff483e36ff493e35ff4b4038ff4b423aff584f48ff71685fff3f3b37ff403b37ff3d3a36ff403c38ff3e3b36ff3d3a35ff3e3a36ff3f3935ff3b3632ff3b3632ff3a3430ff36322eff383430ff3b3735ff3b3735ff373330ff36332fff383430ff36322eff493f38ff54483fff52463dff50443bff54463cff56473dff54453bff4d433bff4c453eff312e2cff35312eff34302dff332f2bff34302bff342f2bff332f2bff312d28ff312c28ff322e29ff342f2aff36312cff332e29ff322d29ff36302bff37332eff4c453fff5a5047ff514439ff45382cff664d39ff7a5639ff755741ff665648ff847568ff968d86ffa39a94ffaea7a2ffb1aca27ced763e5ebd5427688a3a19809a441f779d4a217d9c4923789e4c256da25424648c441f476f2d0f4c8b321251963b15ff7b7470ff7c7371ff7a7371ff47413bff564a41ff4d3c2fff574333ff6b523fff785f4bff705e51ff7b7064ff97877bff5a5552ff58534fff56524eff595450ff56514eff544f4cff504f4cff504b48ff4d4a48ff4e4b49ff4d4b48ff4d4a47ff4b4644ff4e4946ff494441ff4a4543ff45423dff44413cff423e3aff39342fff463e37ff54493fff5b5147ff63584fff7e7368ff897e73ff9e9488ffb1a69cff3a3634ff3a3634ff3a3836ff373431ff373533ff353432ff373331ff36322fff33322eff333230ff32312fff31302dff302e2dff302f2bff302e2bff2f2e2bff2d2a28ff2b2927ff2e2b29ff342f2bff4a423bff5b514aff6c6159ff73675eff74675dff796d63ff90847aff91857bff2f2a27ff2e2a27ff2c2926ff2c2826ff2c2826ff2d2a27ff302d29ff312f2cff2f2d2aff312e2cff2f2c2aff2e2b29ff302d2bff33302eff32302eff33302eff383633ff3f3b38ff45413dff342e2aff443b34ff594d45ff61544bff5c4f47ff4a413aff514740ff695e57ff827971ff9c9992ffa39f98ffa4a29affc0bdb4fffffbf6fffffefdffe9e2e0ff7a7575ff7e797aff757271ff797875ff7c7a77ff807c7cff413f3bff3b322aff473a30ff574b41ff645952ff635850ff61554dff65584effa2968cff9b9087ff62615fff5f5d5bff5d5b58ff5b5956ff5c5a58ff585554ff575453ff555252ff555252ff565452ff565352ff555251ff524f4d9aca8048ff958f8aff928d88ff908a86ff8a8682ff898580ff88837fff87837eff8a8783ff83807aff7f7d78ff787571ff7a7773ff797672ff76716eff6c6864ff40362eff504438ff52473dff544940ff564a42ff554940ff4d433aff493f38ff49403aff443c38ff554f4aff5c5855ff5f5b58ff605b57ff5d5954ff5c5754ff595551ff57534fff54504dff524f4bff4e4b47ff504d49ff4d4a47ff504c49ff504c49ff4e4c47ff4c4a45ff4c4945ff3a322dff372f29ff3b342cff3c352fff423a32ff473e35ff473d34ff4b4037ff4a3f37ff564b43ff6d645cff3c3834ff3f3b38ff3f3b38ff3d3a37ff3c3936ff3d3936ff3e3a37ff3f3b38ff393632ff393532ff383531ff3b3733ff3d3a36ff393532ff383532ff383432ff34302dff383330ff423933ff4c413aff5d5046ff5d4f45ff605247ff5f5045ff5d4d42ff56483dff564b42ff4d453eff302d2aff302c29ff302c2aff2f2b28ff2d2a26ff2d2a27ff2c2926ff2d2926ff2d2a26ff312d2aff322e2aff332f2bff312d2aff312d2aff36322fff423b35ff504741ff53483fff4f4237ff45372cff5c4534ff765237ff775841ff645345ff796c62ffaba094ffa09a98ffaaa49dffa09b9768ec6e386fcb5d2e708c3c1b899947216e9c492068a04d22639a4a216592452076944a234c722f1064983a175a9c4017ff7c7773ff7a7472ff37312bff4e4841ff5b5044ff58473aff665242ff745f50ff836e5cff948070ff928477ffad9b8dffaf9f92ff4f4b49ff504d4cff504d4cff504d4bff524e4bff4f4c4aff4c4a45ff4e4c49ff4e4d4eff4d4a48ff4b4846ff494746ff444141ff413e3cff423e3bff423e3bff433f3cff403d3aff3a3430ff453d36ff53473fff5d5249ff60564dff776d62ff83776cff978b81ffa59b92ffada49dff3a3734ff383532ff363431ff383532ff363431ff35312fff35312fff34312eff393531ff33312dff31302dff2e2c2aff302d2bff322f2dff322f2cff302d2aff302d2aff2d2b28ff322d29ff47413aff5a5049ff685d55ff746860ff80736bff83756dff8d8378ffada095ffd1c4b9fffffffeff2e2a27ff2c2926ff2d2926ff2c2926ff2c2927ff2e2b29ff2f2b29ff2d2b28ff2e2b28ff2e2b28ff2f2c29ff312e2bff33312dff35332fff3b3836ff3f3d3bff44413fff342e2aff453c35ff5b4f47ff61544cff5e5148ff51473fff5e534bff786b63ff968a80ffc1b5aaffdbd3c8ff908d8aff898583ff898582ff8e8a88ffa19c9affe1dad7ff817d7cff797675ff767273ff706d6cff737170ff737270ff433a33ff4f4036ff5b4c42ff66584eff706156ff695b50ff5f5247ff9e8b7effc3b7aeffcec5b7ffc4baaeff686664ff5f5d5cff666463ff605e5cff62625fff5f5c5cff5b5a58ff555352ff565251ff4d4d4bff53504f94cc7a45ff8d8782ff8b8782ff8b8681ff8b8681ff87827eff85817dff85817eff817d78ff7d7974ff7a7771ff797571ff7a7672ff77746fff3d3631ff362e27ff41372fff5a4c40ff5e5045ff65584edb574c43cd4c423a70312c2770322c2774322d28ff5b5651ff5b5752ff5c5755ff5b5753ff5b5852ff57534fff58534fff595550ff54504cff504c48ff4e4b48ff4d4a47ff4d4a47ff4d4a46ff4c4945ff4e4b47ff4e4c49ff4d4a46ff322c26ff302a23ff37302aff3b332cff3f3830fb5c534bad675f58da756c65cb716862bf6f6860d46c665eff403d3aff403c3aff3d3a36ff403c39ff3e3b38ff3f3c38ff3d3a36ff3c3936ff3c3936ff3a3734ff383431ff383531ff373430ff3a3633ff373431ff363330ff36322fff36322fff2b2520ff463c36ff5f5148ff726256fb7d756fefffffffefffffffefffffffeffffffeff24201cff453f39ff2f2b29ff2f2c29ff2e2b28ff2e2a28ff2d2a27ff2b2826ff292623ff2c2926ff2e2b28ff2f2c29ff2f2d29ff312d29ff34312eff3b3734ff3e3934ff3e3630ff51473fed53473ec53e362fb836312b7e2c282430231f1c2f26221d3027231edc685d54ffa7a19bffa6a099ffa8a49fffa5a09a4aeb672f5cc95928488233136690401b739c4a20739d4a2280a75529518d401b6d90472256753212599739156c9b3e18ff78746dff7d7774ff35302aff4d463edb645a50e46e6a63c758554f843e3b373a201e1c3533302ca771665cffa89689ffb3a59aff524f4dff4d4b48ff4f4d4aff524f4cff514e4aff4b4b49ff4a4947ff4c4b4bff4d4b47ff4b4a45ff4e4b48ff494743ff474341ff43403eff423e3cff3f3b38ff423e3cff3e3c37ff38332e966660589f69625b9c68625b8e655c58976b655d9d655f58d47f756cff999087ffb1a8a0ff9d9893ff363431ff373431ff363330ff35312fff353230ff363330ff373230ff35322fff373531ff34302eff33302eff322f2cff33302dff33302dff34312eff33302cff302e2aff2e2b299a36322e9736332e8f35322d9035322ea1383531d5645c55ff9b8d84ffa99c91ffc4b8adfff1e6dfffb6aca4ff2e2a28ff2d2a26ff2c2a26ff2c2926ff2e2b28ff2e2b28ff2c2a27ff2c2a28ff2d2a28ff2b2926ff2e2c28ff302d2aff33302dff383634ff3e3c3aff433f3eff494644db4d4a46a8504b46874b4641844b484394504c47d15c544dff8a7a70ffb0a196ffd8c9bfffe0d5cdfffefdfaff82807cff82807eff888483ff7f7d79ff82807cff908c8bff989392ff8f8c8aff7f7d79ff74736fff747170ff716f6dff6c6b674e5c5b566e5c5b598b646360ce7b6f65fc847468ffbaa697ffdfcec2fff6e9defff1e4daffffffffffb6b6b5ff63615fff676263ff666664ff666766ff5f5f5dff5f5d5cff5c5a59ff565553ff5452519bcb7847ff8b8681ff8a8580ff89837eff86807aff837e7aff837f7aff807d77ff7e7a76ff7a7672ff77736fff76726eff75716dff443d39ff3a322cff372f28ff3b322aff5d4f4364332c262d27231f1f221f1a2c24201c4f2b2823e957514bff595551ff595551ff57534eff585651ff57534fff57534eff56534dff554f4bff544f4cff4f4b47ff4e4a47ff4e4a47ff4d4a46ff4f4c49ff4f4b48ff504e4bff504d4bff4e4a47ff39332fff2f2924ff2b2620ff3d352fd56d665dd1766f67e87b726af47b726bdf756c65ae69625bea4f4a47ff423e3cff413e3cff3e3b38ff3d3a37ff3d3a37ff3f3c3aff3c3a36ff3e3a37ff3c3936ff3a3734ff383532ff35322eff383531ff3a3633ff3b3733ff3a3632ff373330ff383431ff3f3a35ff302a25ff4d423bf1eeedecff352e27fb595553efffffffefffffffeffffffeeffffffeff2b2724ff2f2b29ff2e2a28ff2c2927ff2c2927ff2c2826ff2b2826ff2b2725ff2b2725ff2c2926ff2c2927ff302b27ff2f2d2bff32302dff3a3633ff45413eff504b46ff37312b682a25217c2d2824882d2823782d28249c322d288a332d288a342e299439332da158524dff9f9a98ffa7a29cffa19b96ff9b949046f569317fe067355a883616879a49226c9a471e6f9c492268a25124789c4d257d994d26517733125a9537147c9c4019ff827c79ff807e78ff7c77738967625ba5736c639d746c679a726b65a1736d66a8736e68ce77716aef6c6862ce54524dffb7a79cff5c5b56ff595654ff595553ff575351ff514e4cff4b4949ff4a4746ff4a4845ff4c4946ff4c4b47ff4a4945ff464645ff434140ff45413fff484543ff403e3aff403c3aff403b37ff3e393692625c5690625c559f6a635c98655f5893645b578d625c558e625a559c665e58ffbbb2aaffbbb5aeff35322fff363432ff353230ff363331ff363330ff373431ff36322fff36322eff37322eff37322fff373330ff35322fff35312fff34312eff322f2dff33302dff332f2cff302d2aff2f2b28af34302c9636322e9736322e8834302da4383430ab3834308e35322ef19a9188ffc2bab2ffa9a39eff2b2824ff2c2925ff2c2a27ff2b2825ff2c2a26ff2c2a26ff2f2b28ff2d2a28ff2c2926ff2b2825ff2e2a27ff2d2a27ff34302eff363331ff3c3938ff41403eff44413fff494744ff51504bdd57534fa0514c47834a46408a524e497e54504b7856514dffe0d2c6ffdfd4ccfffdfaf7ffffffffff83807fff807d7cff807d7cff83807eff8a8685ff858380ff898584ffe4dddbffbcbab6ff908c8bff777472ff73706eff706d6cc063605e283c3b373d53504c3154514d1a544e4959726a61fff5ece0fffffffffffffffffffffffffffafafaff61605dff615f5dff646261ff6a696aff666769ff656362ff605e5dff5b5a5899ce7f48ff847f7aff847f7bff7e7a75ff837f7aff807c77ff7e7b75ff7c7773ff7c7772ff77716dff726c69ff746e6cff706d69ff3a342fff38312bff322b257e2e2a2582302b2690322e2984302b26f8605d58ff605c57ff615c58ff605b57ff5c5854ff5b5652ff585450ff56524fff55514eff54504dff55504dff4f4c49ff4f4b49ff4c4846ff4b4845ff494643ff524e4cff514e4aff514f4bff51504dff4d4a46ff4b4844ff484440ff302a24754b443f1345403b2c5852495c6059508d6a635cde6c645eff44413eff474441ff43403dff403d3aff413f3cff3c3937ff3d3a37ff3f3c39ff3f3b38ff3a3835ff3a3835ff3c3a36ff363330ff373431ff373330ff373430ff3a3633ff393632ff373330ff373331ff383431ff393532fe46403befffffffefffffffff38302afb595553efffffffefffffffff353331ff2f2c29ff2d2a28ff2d2a28ff2c2927ff2b2825ff2c2926ff2d2a27ff2c2a26ff2a2724ff2b2825ff292724ff2d2a27ff2f2c29ff36322fff383633ff413e3aff4e4b46ff5d5852fc6c6861822e2a256f2b26228c2c2823802c2823822e2a2595312c278b302b26fca59e9affa29c96ffa39e99ffa59f9bffa39c98ffa09a976fff80417fe76e383d88341282ad58286099481e61a2502468a5562a6b9a4b21648e46204f7532114f923612518d3612ff807e79ff7c7774ff7e7976fe6d696589615a5582675f56946e6760a477716995756d65ba7f766fa5756f67e45f5c58ff5d5a57ff5e5a58ff5c5856ff585552ff595552ff514d4bff444340ff474646ff474545ff474341ff464240ff464240ff44413fff434341ff474745ff53504cff4f4c48ff4d4845ff474341ff424140ff423f3cfc45413e9a665f588c605953a76a635ca0675f5998655c57a968605a9a635b56ff3b3836ff34332fff383632ff34332fff383432ff373331ff373331ff373330ff363230ff373331ff34302fff383532ff37332fff35322fff353230ff34302eff322e2cff302c29ff34302dff2f2d2aff302c28fd2e2a26a83935309936332e85332f2ca436332eb73a36328f34312dae403c37ff77726eff2f2c29ff2c2926ff2d2926ff2b2825ff2a2725ff2a2724ff2b2826ff2d2a27ff2a2725ff2c2826ff2a2725ff2c2926ff2a2724ff35312fff383431ff3c3935ff454542ff474443ff4a4745ff565250ff5d5a57fc615d5b88514b499b5b575186595550815a57517e5f5c55fff9f5f3ffffffffff868483ff868382ff7f8180ff817f7eff83807fff878481ff888483ff838181ffbbb9b8ffe0dcdbffe3dcd9ffd1cdcaff94928fff797877ff636461ff757271f96e6b6a3d413f3c212f2c290e1b1a1828393633ffffffffffffffffffffffffff656261ff6a6765ff615d5bff615e5dff656463ff656767ff656664ff6a676699d28e51ff827e79ff7e7975ff7c7974ff797671ff7c7874ff7c7874ff797471ff76716dff76716dff76716fff76736fff736e6bff706b67ff6c6763ff6c6763ff696461ff686360ff66615eff615d59ff605b57ff5e5a55ff5d5854ff5a5550ff595551ff5c5753ff56524eff56524eff534f4cff514e4aff4e4b48ff4c4946ff4d4946ff4a4844ff504d49ff4f4d4aff504e4bff52504eff53504dff4e4b46ff4a4742ff4a4843ff494742ff4c4844ff4d4945ff4b4844ff4b4844ff4b4844ff45423eff44423eff43403dff403e3aff3f3c39ff403d39ff3e3a38ff3d3937ff3b3935ff3c3a37ff3b3a38ff3d3b39ff393733ff393532ff393532ff393532ff373431ff3b3835ff393532ff383431ff383431ff3a3632ff393531ff383431ff363330ff36332fff35322fff35312eff34302eff32302dff322f2cff312e2cff2d2a28ff2d2927ff2c2926ff2c2926ff2c2926ff2b2925ff2b2825ff2b2825ff2a2824ff2c2a26ff2c2926ff2d2a27ff332f2cff383431ff3f3b38ff484440ff58534eff65605aff79756eff87827cff8d8883ff8e8984ff8f8a86ff96928cffa09b95ff9d9993ffa19b97ffa29c97ffa29d97ffaaa29fff9e9a94ffa09a9574f9753d65ce5c2b7b9c441d75a34d217eaa54268ead592d8bae5a2d86a455296b8d462142733010538f361255873311ff74706dff716d6aff6f6d68ff6c6965ff615e5bff656360ff605f5cff5f5c5aff696462ff6a6864ff696562ff686461ff635e5cff64615eff5f5b58ff5e5b57ff5d5956ff585552ff56524fff4e4a48ff4b4946ff4d4947ff484442ff464544ff43423fff464646ff474646ff4f4b48ff4d4845ff4e4a46ff474440ff43403dff434240ff444240ff464340ff464340ff45413eff413e3cff414040ff413f3dff3d3c3aff3b3a38ff3d3a37ff3c3936ff3b3835ff3c3835ff3b3735ff3b3835ff373331ff373331ff363230ff363330ff363330ff36322fff34312eff34302eff353130ff322f2dff312d2bff302c28ff34302dff363330ff34302dff302d2aff2f2b29ff2c2825ff2c2926ff2b2825ff2d2a27ff2e2b29ff2e2a28ff2e2b28ff2e2b29ff2d2926ff2c2825ff2e2a27ff2c2825ff2b2825ff2c2926ff2d2a27ff2c2926ff2b2825ff2c2926ff2a2724ff2d2b28ff33302eff393735ff403e3cff454240ff484743ff4c4a46ff514f4cff5c5a56ff696663ff706b69ff787570ff7b7775ff7f7a79ff7b7775ff7b7877ff7d7b79ff7f7e7dff817e7cff787775ff7d7c79ff7e7a7aff7c7b78ff7e7b79ff868788ff7c7a7affb6b3b3ffbebab7ffc0bbb5ffbeb8b4ff98928dff979592ff908e8bff959492ff969492ff8f8d8aff8d8987ff959290ff908e8dff84807eff74716fff666361ff5e5d5aff605e5cff5b5958ff61605cff6a6a6aff6b6b6c91d2804cff6b6763ff696560ff68635fff6a6460ff67625cff645c55ff615751ff5f5650ff645953ff655b55ff645c57ff615852ff625a55ff5d544fff655e57ff68615aff6b635bff6d655eff6b635cff6d665eff706861ff6e685fff706760ff706861ff6c645dff6a615aff625851ff615651ff625852ff625951ff625a54ff665e59ff68605bff6b635cff6d635dff685e56ff615850ff5d564dff655c55ff625a54ff625b55ff645c56ff625b55ff635c57ff605a54ff5e554dff605850ff5f554eff60574eff615650ff5f554eff60574eff5c524bff5f544bff5e554dff60574eff5b524bff5b5047ff594d45ff5c524bff5d554eff5a5048ff5d524aff5b5047ff554b42ff574d44ff594d43ff5c4f45ff5b4e44ff584b40ff584a40ff594b41ff594b40ff594b40ff584a3fff53473cff52453bff5a4c3fff615144ff655345ff675546ff645344ff695647ff6b5748ff6d5a4aff6d5949ff6b5748ff6e5a4aff6e5b4dff6c5b4eff6c5c4eff66574aff655548ff6d5c4fff726253ff786656ff816d5dff8e7968ff937c6aff917d6bff947e6eff9a8271ff9e8776ffa08775ff97816fff9d8673ff96806eff947f6dff938072ff89786eff7e726983f77f4060c455265a99401853933d1849943f186aa14c2189ac572b719d4f237a9348234373300f4f873110497f2e0fff857975ffaa9f9aff988e86ff736b67ff716b69ff736b67ff77706aff7c736aff85786dff857768ff8a7a6cff867769ff847468ff857769ff857769ff847466ff867566ff837568ff7d7166ff796e63ff7c7065ff7b6f64ff7a6f64ff766c62ff756c61ff736a60ff766d61ff786e64ff7a7169ff777168ff777069ff756e68ff736b65ff6d6761ff68625dff66605bff68615cff675f58ff686058ff645b53ff625a52ff635a52ff655c53ff645b52ff60584fff655d54ff625a51ff615850ff5d554cff5e554cff655a51ff645950ff63574fff60564eff5b5249ff574d46ff594f46ff554940ff56493fff574a3fff51463bff51453bff53453bff52453bff54473cff55473dff54473dff51453aff51463dff4e4137ff4e4238ff4d4137ff4e4237ff4f4237ff4e4137ff4f4238ff52443aff514539ff54463bff56483dff524439ff55473cff53453aff58493fff5b4d41ff5b4d41ff5b4c41ff5f5043ff625245ff645447ff68584cff64564aff615448ff625448ff685a4eff685a4eff685b4fff64574bff5a4f45ff51463eff4a413aff493e35ff4d4037ff4e4138ff4d4138ff4f4239ff4c4037ff4d4237ff483d34ff493d33ff4a3f35ff4c4137ff52463bff615245ff615144ff604f42ff5e4f43ff625345ff615044ff625245ff615144ff665446ff75604dff806751ff77634fff735e4dff6e5a49ff695645ff695747ff675343ff614e40ff5646378bc16836ff5e5954ff5b5650ff5e5852ff5d544dff574d45ff544b43ff554b44ff514740ff544a43ff544a44ff574e47ff554c46ff524944ff524943ff59504aff635950ff6e625bff6c6258ff6a6158ff6b6158ff6d635aff6d625aff6d625aff6b6058ff6c6258ff675c52ff665a52ff645950ff665a52ff685c54ff685d55ff6a615aff6a6158ff756960ff74675eff6d6057ff695c53ff6b5f54ff685c53ff6b625aff6a6158ff655b52ff6a5f57ff6c6158ff645a51ff665b51ff64594fff665951ff655a51ff655a51ff635850ff64594fff5f554cff675c52ff62584eff665b53ff62574eff5a4e45ff594d43ff5a4f46ff63584dff655950ff63574cff61544aff62564bff5e5348ff5f5247ff5c5044ff5a4d42ff5c4d41ff5b4c40ff5a4b3dff5c4d3fff584a3cff5d4e40ff5a4b3eff56483cff58483aff5e4d3eff604d3eff5f4c3cff634f3eff665241ff65523fff6f5a47ff6b5644ff6e5746ff695443ff6b5746ff6d5a49ff6e5947ff715a46ff705844ff785e48ff7e654cff866a51ff876b52ff876b52ff8f7057ff9c7a5effa37f63ffa27e62ffab8567ffa88465ffa48063ffa78265ffa78165ffa17f61ff9d7c61ffa38167ffa1826a73e1673369c759285c9c3f194a9a4119599d461d7fab562b5aa553267c9a4d2683964b2543712f0f6f933b145b843110ffa08470ff9d826eff897260ff746152ff756152ff746254ff736152ff746152ff776251ff766250ff796451ff75604eff77614fff77614fff7a6452ff7a6351ff796351ff75604fff72604fff746151ff726050ff726050ff6e5d4dff6c5b4cff6d5b4cff695849ff695849ff726050ff6f5f52ff6e6052ff6a5c50ff6b5c51ff695c52ff695c53ff62564dff67594fff66584dff6a5d50ff63574cff62564cff60554bff63574dff64584eff64594fff62584fff61574eff62584fff63594fff61574eff62574fff61564eff63584fff675c53ff61574dff645b54ff635a50ff5e544aff5b5046ff5c5147ff5b4f45ff5b4d43ff5b4f42ff5d5046ff5a4c42ff5b4e43ff594d43ff5b4e44ff5b4e44ff564b42ff574c42ff544941ff554a40ff574b42ff564b41ff554b40ff554940ff564b41ff584c42ff584b41ff5a4c42ff584b40ff55493dff594c42ff5c4f45ff5f5248ff615449ff605348ff61544aff605347ff695a4eff67594dff64574cff61544aff63564bff5f5147ff60554aff5d5147ff544a3fff52453cff4c4037ff463b31ff463b30ff483c31ff4a3d32ff4a3d32ff4a3e33ff483b31ff473b30ff44392eff493e32ff463b30ff493c32ff483b31ff514338ff4f4236ff534538ff4c3e33ff534438ff514237ff514237ff4f4236ff57473aff5c4b3cff665340ff614f3eff604e3fff5b4a3cff584839ff5b4c3dff5b4c3dff544436ff5342358faa5c30ff47403bff473f3aff443d37ff463e37ff413832ff3b342dff3c342eff3e342eff3d352eff3f3631ff3f3732ff3f3833ff3d352fff3d3530ff473e38ff50463eff5a4d44ff584d45ff594e45ff594e45ff5c5148ff594e45ff5d5249ff5b5047ff5d5249ff584e45ff564b43ff584c44ff5c5047ff5a4e46ff5a4f47ff5f554dff60564fff62584fff61544bff64574cff63554aff62544bff60554dff62574dff60554aff605349ff62544aff66594fff64574cff605348ff605349ff5b4f46ff5d5148ff61554bff5f5349ff5d5249ff5c5148ff5b5046ff594e44ff5b5047ff564b42ff53473dff51463cff574a40ff5a4d43ff65584fff625449ff625449ff615348ff5e5146ff5b4e43ff584b41ff594b41ff594a3eff5a4a3cff5c4b3cff5c4b3cff5c4b3cff5d4b3cff5d4b3dff5f4d3dff594838ff594635ff594636ff5a4636ff5a4635ff614b39ff68513dff705742ff6f5540ff6f5540ff69523eff6d5542ff715844ff6f553eff72533aff735437ff7f5d3eff836040ff866242ff815e3fff825f40ff886241ff926845ff936845ff976b47ff9a6d48ff956946ff8c6442ff966a47ff976a47ff936946ff946946ff966a46ff8e654384d5683450bb5120589f421a549d431a489841197db35b2869ab56257ca0532783954b2454753211758f3713477e2e0eff8d6748ff846244ff78583fff72543bff6f523bff71523aff6b4f39ff684d38ff684f39ff694e39ff664d39ff664d39ff694f3aff6a503aff6b503aff6c503aff6c513bff6a513bff674e3bff674f3bff654e3aff654d3aff68503cff684f3bff614a38ff5f4836ff634b37ff624c39ff634c3cff644e3eff624d3cff614c3cff5f4a3bff5f4c3dff5f4a3bff5c4839ff5f4b3bff604c3dff604f41ff645548ff5f5146ff615247ff635448ff5e5247ff61564aff5f5349ff62564dff61564cff62574dff61564eff61564dff61564eff645951ff645851ff5e544bff5e544cff60544bff60544bff5c5148ff61564cff60544aff5d5248ff605449ff61544aff615449ff60544aff61554bff61564cff5e5248ff5d5249ff5f544cff5c524bff5d524bff5c5149ff5b514aff5b514aff5d534cff5c5149ff62554bff605349ff615349ff5c5046ff5c5047ff5e544bff625951ff61574fff60564eff665c52ff665b52ff665b51ff64574eff63584fff5f554cff5d5148ff5a4f46ff594e44ff52473dff4e4239ff4a3e34ff473c31ff45382dff44372cff47392eff45382dff46392eff493b30ff473a2eff46392fff44382dff43372bff41352aff42352bff3f3329ff46392dff41352aff44372cff45382dff46392fff483a2eff483b2fff45382dff493b2fff4f3f32ff514133ff524234ff534436ff4f4032ff4d3d31ff4c3f32ff4e4034ff493c31ff4c3d3198884823ff3b3430ff38322dff3b342eff39322cff352e29ff312a25ff302923ff312924ff312a24ff342c27ff332d28ff312b27ff322b27ff322b26ff3a322cff443b35ff4d423aff4d423aff4d433bff4d423bff4e433cff4e443cff50453dff4f453cff4e443bff4c423aff4b4139ff4e433cff4e433bff4b413aff4d433bff4b4139ff514740ff534a41ff544940ff53473fff574b42ff574b42ff574b42ff534840ff55493fff55483eff56493fff584c41ff574b40ff55493eff51453bff534940ff564a42ff574c43ff544a41ff534940ff534940ff51463eff4f453cff52473eff4d4139ff4a3e35ff4c4036ff4e4239ff54473dff55483fff5a4d44ff605349ff574a40ff594c41ff574a3fff56493fff55483fff54463aff574639ff594738ff564536ff584737ff584638ff5a4839ff594838ff574636ff574433ff564231ff564231ff594432ff5e4836ff604a37ff6a513cff6a513cff6f533eff69503bff684e3aff6b5039ff6e5037ff6c4d31ff6c4b2fff765333ff795535ff755333ff714f31ff714f31ff755132ff795231ff7c5432ff7f5533ff7d5432ff835734ff805633ff815634ff7b5231ff7a5230ff7e5432ff7e5330ff7b502d31b34c1c41a6421b4695391650a2471b4fa1481e3d97431a539e4b2075a1552a949f532849743210668f3712387b2d0eff714c2eff714c2eff6f4a2dff6c492dff6d492cff724c2eff69482dff65472eff5e432dff62452eff5f432dff5f432eff5d422cff5f422cff5f432dff61442cff61452eff60452fff60442fff5c422eff5e442fff5c422eff5d432eff5e432fff5e432fff59402dff5b422eff5b4330ff5e4533ff584131ff584231ff584231ff57402fff574131ff584231ff574130ff5a4332ff5b4534ff5c4839ff5d4d40ff5b4c40ff594a3eff5b4c40ff574a3fff584d41ff5a4f44ff5d5046ff5f5449ff60544aff61564bff61564dff5d534bff5f554cff5f554bff5e524aff61554dff5f544cff5b5048ff5e544bff60554cff61564dff60554cff61554bff62554bff62564cff65584eff64594eff60564dff61554cff5f544cff60564fff615750ff60564fff5f564fff605751ff5f554fff605650ff61564fff65584fff64574dff61554bff5e5348ff5c5249ff5f564eff5e564fff5c544dff5d564eff5b534bff625850ff64584fff61564eff5d534bff5c544cff5b5049ff584c43ff50463eff4f453bff4b3f37ff463a30ff43372cff413529ff423429ff413428ff44372bff47392dff47392dff45372cff44372bff42362aff413529ff3e3227ff3f3228ff3c3026ff403328ff3c3026ff3d3127ff3e3227ff3f3328ff403429ff43362bff44362bff42362aff413428ff45362aff46392cff473a2eff46382cff46382cff46392dff45392eff493c30ff4b3d32946e3b1eff39322dff3a332eff3a332eff39322dff352e29ff322a24ff2f2822ff2d2822ff302a25ff302a25ff322c27ff322c27ff312b26ff302923ff38302bff423a34ff4c433dff4c433cff4c423bff4a4039ff4b4139ff4b4139ff4d423aff4c433aff4b413aff4d423bff4c4139ff4c423aff4c4139ff4b413aff4c423aff4d423bff4d433bff4f443cff50463eff544a42ff524740ff4f453cff4f453cff52473dff53483dff52463cff54483eff564a3fff52453cff55483fff51463dff50453dff534840ff564a42ff564b43ff544941ff534942ff50473fff50453dff4e433bff4c4239ff473d34ff483c32ff4d4138ff52443aff52463cff574b3fff574b3fff54463cff55493fff54483eff53473dff53463dff54463bff534337ff584636ff574536ff554435ff584738ff594738ff574536ff574435ff554232ff584332ff574432ff5b4734ff604936ff614a37ff664e39ff664f3aff664e3aff6c513bff6d5139ff6a4c33ff654a2fff6c4b2fff694a2dff6c4c2fff785434ff795434ff715031ff745132ff765132ff764f30ff7a5331ff7c5431ff7b5331ff805734ff825734ff875b36ff7c5331ff744e2fff754d2eff774e2dff754d2b3eaf4b1e4dac461f45993a154ba044194c9d451a35913d174b97451c5e964a21548c411b40712e0e67993c132b76280bff704c2eff6f4b2cff704b2dff6f4b2dff6c492cff6f4b2dff69482dff65472eff60442dff60442dff60432dff5e422cff5f422cff5b402bff5d432dff5a3f2aff5d412aff59402bff553c2aff533c29ff533b29ff553d2aff573e2bff59402cff58402dff57412fff584232ff584334ff564233ff544032ff514032ff503e30ff534134ff513f32ff503f31ff4e3d30ff544032ff534133ff544336ff55463bff52453aff524539ff504338ff4f4338ff4f4439ff51463bff55493eff594c41ff5a4e43ff584c42ff584c43ff584c44ff574b42ff584c43ff574c43ff564b42ff554a41ff564b42ff564a42ff594d44ff594e45ff5a4d42ff574b41ff554b41ff594e44ff594e45ff5b4f46ff5b4f46ff5b4f46ff574b41ff584c44ff584c44ff594e45ff5a4e46ff584d45ff564b43ff584c44ff584c43ff584c42ff584c42ff574b41ff584b41ff584c42ff584c42ff574c43ff564c44ff584e45ff584d44ff584c43ff5a4d43ff594d43ff5a5047ff574e45ff554b42ff53473dff54493fff53483dff4f433aff4a3d33ff46392eff3f3228ff42352aff413529ff413429ff43362aff44372bff45392dff44372cff43362bff3f3429ff403227ff3c3026ff3c3026ff3b2f25ff3d3026ff3e3228ff41352bff3f3328ff41352bff41342aff403428ff3f3228ff413429ff46392dff44372bff46392dff46392dff483a2fff4c3f33ff4f4237ff504338ff53473b8e9a512aff3c352eff3b342eff3a332eff39332eff362f2bff312b25ff322b25ff302924ff302a25ff322b26ff332d28ff332d28ff332c27ff322c27ff39322cff433b34ff4c433eff4c433dff4f443cff4f433aff4e443cff4c423aff4d433bff4b413aff4d433bff4e443cff494038ff4c423aff4d4139ff4b4139ff494038ff494038ff4e433bff51463eff4e443cff4d423bff4e453eff544d45ff4e4740ff594f47ff53483fff51453bff51463cff51453bff52483eff544b42ff50473eff52473eff4f473fff504740ff4d443bff4f473fff524940ff50463eff4f433bff4b4238ff494037ff473c33ff473c33ff4b3f36ff4f433aff57493eff574b40ff594d42ff55483eff574c43ff55493fff54473eff52453cff55473cff554537ff534335ff514133ff534335ff524234ff594839ff574535ff554333ff544030ff544030ff5b4634ff5f4935ff5d4834ff604a37ff604936ff684f3bff69513bff695039ff694d34ff66482eff684a2dff694a2eff724e30ff765333ff755233ff765334ff705031ff714f31ff734f30ff795131ff7c5332ff805633ff7b5331ff825835ff7c5331ff845936ff7c5332ff704b2dff754d2eff774f2eff734b2a59c65e2855b54d214ea3421879b151227ab3582748953f195499471e64964c2252853d1a3d73300e4487310e50833211ff6d4b2dff6c482cff69472bff6d492cff6b472bff6d4a2dff66462bff61442cff5f432dff5a3f2bff5b412bff5e422cff5a402bff5c3f2aff5f422bff5d422cff583f29ff553c29ff513928ff513928ff4d3726ff4f3927ff4a3626ff4b3625ff4f3929ff554031ff584638ff544337ff534235ff4d3d32ff4d3c31ff48392fff4a3b31ff4a3c31ff4c3d32ff49392fff4a3c30ff4a3b30ff4b3d32ff493c32ff493e34ff493e35ff463b31ff483d34ff483d34ff473c33ff493d34ff4b4036ff51453bff50443bff50453cff50453bff51463cff52463dff53463dff51453cff52463dff4f453bff4e4239ff51453bff52473dff51443bff52453bff51453bff51463cff54483eff54483eff55493fff55483eff56483eff53463cff52453aff53453bff51453bff55473dff54463bff55483dff52453bff53463cff514339ff51443aff52453aff4d4137ff504339ff4f4339ff50443aff50453aff504439ff55483dff594b40ff54473dff52463cff53483fff594f45ff544b42ff5c5249ff554b41ff55493eff4c4035ff42362bff40352aff43382dff41352aff42352aff43372bff41362bff3f3429ff41372cff43372cff413529ff3f3127ff3a2f24ff3a2f24ff372d22ff3c2f25ff3d3126ff403429ff3d3429ff3a3025ff3e3329ff3d3228ff403328ff43362bff483c30ff45392dff44372cff473a2eff4d3f33ff54473dff61554bff60554cff685c53a9d17e466c221e1a76251f1c71241f1c7325201c6d25201c6e26201b8227221f6624201c872925217c292520261d1a16261f1b17211a1713261916134e231f1b5a26211f672924216d2a2521702a2521812b2622782b26227d2f2a2484302a25722d2824702d2824732f2b26692e2a252d23201d2d2d29232b302b271925221f35312d29654a443f8a58514cae625a559e5f59539e5f595274554c4792605a53a469615bd0787168c1756c65ca776f68bf706962f47c746cfe756f68b24f4c4649322e2a4f453f3a3b4b453f1d46403c23443d384e514b458c6058539f5c5550915b534f8d57514c9c5c5450a85f58529a5a554e9658524dbf68605a995d55509f605a54ff635a51ff443b34ff443b34ff231e1aefffffffefffffffefffffffefffffffefffffffefffffffff322c26fb585553effffffeeffffffeeffffffceffffffcff231e1aff161311ff2924208825201c4c201c187b26211d8026211e8b2924208528231f7a26221e7725211d6e24201c7e27221d8c28231f66221f1b832924209c2d2823b9322d275929241f2d1d1a172e201d182e201c1918171511291a171349221e196128231f6d2c26227d2f2a25722d2824802e292589302b2655c3592553c2592456ac471a5bac4b1e60aa4e206ea34d2276a250256090441f55863f1b3a6e2b0d33802c0d457e2f102c2c27223c312d272e2e2a251824211e23272421433b3632674f49458459524d955e5952ad645c5798635c569f696159835f58536958514b7d5f5b548a645f589c6a655db2726c639468635baf716a63a36d675f9e6a645cb76b655dda68625bcd55514ca1413e3b502825222d23211e3e3b3632374a443e2749453f1c544d491f4e46403d5c534d6b605953795f58528857514c7f58524c7e554f4a79554e4a7e564e4a8d5a524e8357514c7f544f49925b554f71524c47975f57517d57504a7a574f4b875d56508c615c54ff9a9288ff645c52ff584f46ff59504881292522972d28249d2d2a25a82f2c2879292522a8302d29bd35322ee93f3b36c43b37314f2b27222f221f1c3a26241f3524201e2c1f1d181b1a18152a1d1b174425211e662f2b277a332f2c8a37332f973b38338a3a37329e3d3a35973c3834a13e3a36bb443f3baf423d39bc46403ca3423e38b949443ec64c4743bd4a4642b148433fa747433ea246423ec24a4843bb504c48a94b47437e423f3b4a363331282f2c29353e39353b403b372b37322f1a2f2d2a1e302e292f34322f4745413d61514e4a705d5955765d59557d5e5a5789625d5976585551825c58546a5854506356534e52514d485c54514d665755516c5a57548464625e89676460745f5d598365625e886763607a605d597a5e5c57805c5a559b605d58b3605f5aa254534f8d4b4a47623e3d392e312f2c2839363333413e3a6ec9874c1b15120f401d1a166225201c8128231e5f221e1a5d221e1a67231f1b5a221e1a7a25201d7426221e6925201c5525211d5a292420381e1a17191b17151d1a17131c1916134e26211e682b2722712a2622722c27226a2b2622782d2823782e29247c2d2824752d2925732e2b2671312c288038332e713f3a333e302b2624322e293a3f3b351b332f2b353f393566544f499e655e578f6058519b655d56a3655f57bc706961c4736b64cc766d67b86e6760a5675f5ab86c645ee87a726af378716af6746c66db65605969383530393734304145413b213e39331e403b35424f49456d4b45418e5d5751925a534ea35d5651b6625b55ab605a54a8605953af645c57ff4e453cff463d35ff433a33ff221d19efffffffefffffffefffffffefffffffefffffffefffffffff312a25fb575452effffffeeffffffdeffffffceffffffbff231e1aff161310ff221e1a6f1c19151f1714111a171410291b181459221e1b7128231e902a25208126221d7324201c6c24201c7d26211e64221f1a6a231f1b8927231e932a25207d28241f7528231e6026221e772c28236f2b262241211d1a17191713291f1c18161a16131a1a17134225211d6a2e28237e332d2858cd60264aba501e55a8441979b4522258a64a1e6ea34e23739c4b2274994d2351843c193f6f2c0e4b883411427d2e0e9a3e383393423c3692453f385835312c272f2b273038332f3b413e39203835311c393530434e4844655d5650926c655f8c675f597e5f58528b635b5591655e5790645f58a36c675eaf716a62b6756e66ab7169629767615a95655f589a675f5a93635c56c1726a63c56e6761c0655e5ad35d5753d958534e7c36332e4025221f272b28252d3a363230443f3a1a47413a18433f38395f58524a5a524c634c45427c5b534f7b58514d78544e498558504c955d554f985f5752915c56508a5b534f9c6159539a5e5750825a534bffb2a89cff585046ff564d44ff574f46782723207f2825218b2a26238529262278282421832926229f2d2926bb322e2aa0312d2898302d28842e2b26722c29259335322c913a363177302c284a2724211e1f1c19342623202e211f1c131a17151a1c1b183c27252262322e2a873d38329a413c399d3f3b37a1403c38ac423e3a9a403c37963f3c38a2413f3ab7484440af48433e9e443f3aba49453fb147443fb2484340aa46433fae494641af4c4845b34f4b47b555504c90524d4987524d4754423e392e3834311b36333029403d3a3448464124403e3a19373532253c3935454d49465a53514c715f5d5977625d5a675a55515c534f4b6c5a56516e5a57516b5956516d5a59557b605e5a8965635e8364625e8262605c7c605d59725a58547b5d5c576b565350805e5a57705856529164615d90625e59975e5c58995d5a58a858575481cd7d4960201c191d1815101b1916111916120f411c19165b231f1a6c24201c5b201d197124201d5c211e1a61221f1b54211d196725211c5f24201c6827231f5228241f1d1c191527211d19201b18141d1b181439231f1b562925215c2824205927231f7c2c2723742d28246f2e2a26682d292472312d287b38332f843b37318848423b92544e47684b463f1a2d2a255959524b13393432324a433c604d48419257544ca869625bae6b645d92625b54c8756c65d3746c65b867605ab569615bcd736c63c9736a63c6716962e3736c64f66f6963fa726c65813e3a362027231f4a433e393d49443e1336312d43433f3a3e45413c72544d49a85e5852b3635c56b4665f58ff443a31ff463b33ff494037ff211d19efffffffefffffffefffffffefffffffefffffffefffffffff2e2823fb575451effffffeeffffffceffffffceffffffbff211c19ff161411ff201c19b1211e1ab72a26217d231f1b2a1a17131f1815111d19161217161310311b181559221e1a6726211d7625211d69231f1b71231f1b8627221e6c24201b7526211e6f25211c60241f1b7627221f752824207528231f7929242088332e28622c2722201e1b161d201c183425201b1518151275fc7e3561d7632868bb501e91c55e2a67aa4d1f70a24b216f9747226d964a2459853c1b4a722e0f528c36114681310f8437322c8c37332d903934309e3f3b358e413b35a8524c459958514a8c5c544c2a35322d1d2e2c27576058502a4d46430d413a37355b544c4f5a544eb469635c7a5c5750956a635c986a645c946a625887645d56aa706860b270675eb26b635d8c5c57508f605a53a768625aa769615ab16e645e90635b54ae68605ab2625c55bf5d5753f1625d59a144413c50292724181b1a15242926223d48433d364f48420d3b3633344b463f3b4e49433c4d48424c4e47418d5d554f8a58514c965e57517f59524c75544c46946e645bff93867cff534940ff584f45ff5951476525221e772926218b2b2724952c28257f292522962b2723a32e2926822a26237b2a26239b2f2b27882d2a25732b2622862e2a2699312e2a84302c288f322f2b9933302b9e3b37329f3f3c3663312e2a1f201f1c131e1d19462f2c2830272420111a1814181f1d1a2c231f1c402c29265c35312e813c39357b393533853b3834833b3734963f3b37b347423dbb48433fa844413ca845413c9a43403c94423f3b90413e3b9747423e974b4643994b46439d4c4844884c4641834e49448256524d7e635e58755d58503b49453e113734301c3f3d384158544e3c54504a10393634173d3935354f4b4646514f4a854e4d4a7751514c65514e4c795c5a56725c5a56755b59545d54504c6f5a565385625f5b9665625c885f5d59925d5a5764514f4c6955514d835e5955815b58537f5c58538d615c5775cd834c71221e1a73231f1b6026201c3d1f1b171e1b17131d1614113a18151255221e1a5a211d1969231f1b7324201c7024201c6a24201c6424201c5c231e1b6524211d6325211d662b26214a27231f191c1814241f1c170f16120f261b18157a23201c792724205d27231f662c2723742e29256d2e2a268237312d6c332e2a7f3f3a3491443f3b9b4e49439a544e49b4676059704d47403235322d555751481c403c365245423b9655514b9a5c5650a8676059cf746c64b768615bc46c635dbf6f6860905f5851c36e6660e7766d66d76d665fb767605ace6d655fd969605cf6706c65c5544e495235312e4e3e3a374946413d1735302d1938342f35433f3a5c534c48ff483c33ff483c33ff4b4037ff221c19efffffffefffffffefffffffefffffffefffffffefffffffff332b25fb575552effffffeeffffffceffffffceffffffaff231f1bff161310ff1f1c18c1201d198926221d7f24201c8c25211d8b26221e7827231e65221e1a201815122a1c19151f171412341715123d1d19166325201c64221f1b7a25211d7825201d8026221e8126221e7d26211e7526221e7627231f6c25211d7127231f7a292520722924206f2c272277332d265a2e292361f9763366e96b2c63b2491c52a5451a63a74a1d6ba04a235893441f5d8f46216b89401e4e743010588c37104e802f0f8a36302b8b342f2a9c3a35307c35302c953e39348c433e3799433f3aa4514b469b534d48a45e5752a9655f5885524d473a312d28282f2c284d534d452d524c461a4a463e565452488c5e5c55a465615b8f645d5794676059b66f6861ad6b645d9a615b55b069625c99655d57a768615b6f564f48a5675f5ab169625bbf6c635db366605998605a53a2625b559d5e58529d58514dda5e5b54c54f4a469d403c384c2d2a27272421204a3e3b374346413c19393431113e39341f423c36334c4640415049456558514c99928a7fff7d6f65ff52473fff554941ff564c442e1e1b172317151325161412371816144a201d1a7027242173272420882a27238a2c2825952e2a26902e2b26992f2b27892d2926922f2b288e2f2b288b302c297d2d2a2689302d298b312e2b9234312d8a34302d8034312d983f3b35893d39346538342e2726231e27282622342a282419201e1b0f191714151c1b18492624228d2e2e2b89312f2ca23b3935913b39357d393632873d393598413e39a944403cab46433f97433f3ca6484541a94c47448044403d884844418c4a47437747443f9454514c9b57534e9055524d8355504e8a5d595682615e5a745f5d595054504a2232322f2341403b3a54514a3552504b1942403b20403d39554746417b4d4d4a975455528754535077565350765a57548a615e5b885f5d58835b595676565350845d59556d54514c7a5b5853805d5a54544c49447ace8c5167211c1973221e1b77241f1b67211e1a74231f1b9127231e4a201c18251b1713291714113f1a171454201c197126231e6e25201d65251f1c5e221e1a6624201d6024201d5e24201c7228231f702a25205d2a252030231f1a191c191522201b17241e1b164a1e1c187724201d6827231f612a252274302b2772322d287739342f7e3b37338b45403b7c48433ea2564f4ab65e5852ed746d67ff7b746c9d4c48443635322e3c44403b2945413b38403c378656514b915a554f905b534fa6675f5997605954b569615bcb6e655fcc6b635dd06c645cb6675f59a9625955b05f5953a35b554fd868625bff756f68d3605a544336332f252d2927373d39342a3e3a34ff594e45ff443b32ff493f37ff231f1befffffffefffffffefffffffefffffffefffffffefffffffff302a25fb575552effffffdeffffffceffffffbeffffffaff231e1bff161310ff221f1ba71916128224201b77231f1b8e26221d8224211d8627221e71231f1b7a24201ca0282420b92c27226c25201c39201c18281a16142a1815122e171412511c191658211d197f27231e8428231f872925207627231f6f26221e7627231f7b2823206f27241f6b27231e7e2b2722872d282362ff893b5ded6b2b45a13d1648983b164b9b42195898431d488f401c83984d28708b421e5276311166913a1255843210722e29256e2e2a2590342e2a7f322e2a923d3732883e39338a3e3a3488433f3985433f3a8c4a4440a3554f4bb2605954be655e59e4726c67f86d6962ca55514c59302e2c272b292530393632304e4a431e48453e344b48416f5c574f996f69618b59554f8359524d785a524e90615855805c55508e5f5952aa665f59a4635c56a9635c56b4675e57ab655d56915e56518c5b534f8e5b554e86554f4980524d47ac5c5652c85b5752e35c5752bf55504a46312d292922201e242a26242e38332e37464039193e393216564f48ff797069ff5e544aff51473eff594e46dc342f2ce439342e9b2f2a275a25211e391f1d1a351e1a182b19171526151412481c1b1754201d1b5e24211f912e2b2795302b288f2f2b2892302d29892f2c288a302c28892f2c2888302d299834312d82312e2a7d312e2a8733302cb03c3734a93b3733a03d3935a0403b378d403a36693a363242302c29272723211f25221f29282521302a27222425221e30201f1c592826227d2d2b278a322f2c85363230823835338a3d3936883d3a37a146413f88423e3b9b4a46428a48434087484540894c4744824d4a4586514e4a734f4b47784d4a478354514e8c5a56548e5b57549d605c5abd696764c264635fc05c5c58714b4b483d36363420353531233c3b3829494743274847431c3f3f3b303f3e3a5b4c4b47865755517a62605b7a504f4c6e4f4c495e4f4b496c5853506755504d6455514e79cd874d441d18144e1d191661201c186b211d1966211d1969221e1a5e211d197a23201c8c26221e321d1a162b1e1a161e151210531c191681211d1a60211e195a221f1b58241f1c54211d1a6825211d6826211e6826221e6827221e6429241f5e2c27215226221d201d1a1623231f1b221d1a174f221f1b86292521722a26228637322d843a353088423d377c46403b944c4641b95a544e94544d48a25d56519759534db9625d58fc736d66c0544e4836342f2c3a46413c2c49453e253d3a365f4f4b44a75b554f8f5a554ead68615bb9675e59c3685f5ab5645c57d16d645fd069625cb16059539a57514bcc68605ba05a544ea45d5651945c544f9f615a5441423d39ff5b524aff453c35ff463d35ff241f1befffffffefffffffefffffffefffffffefffffffefffffffff332c27fb565351effffffceffffffbeffffffbeffffff9ff211d19ff151310ff211e1a8f161310501e1a164e1e1a1662211d1964211d196c221f1b7d25201c68211d1a9426221e7425201c6f241f1c8625211dad292522bb2c27235e211d1a24191511371f1a171f14120f21171411831f1c1984221e1b67221e1a7025211d6926221e6826221e6726221e6d292420802a262254ff89385afc722f46a8421655a2441a499a41185995401c518e401c6b9348246c8d43204f722e1057893310518c38102d1b19156c23201c912b27247b2b272486342f2a943d373298403b3595413c36853f3b358b4a453f934e4944b15c57539b59544e955c564f9f615a558154504a8a58534c9d575350d4615d57d758534d7836332e2f2926231925201e40504b46234b48401b46433e415c564f7d5c5750a8645e57835c5650815c56509f6760599a615954965c554fa9625a55985e5751a7645d57ae635d56ab6159549158514c82534c47b3625b569359514d7f544e48965a544d945d575079564f4a7c56514a3b36322e2e302c281823211dffa2978eff5e544bff51473fff544b43b52d282587282421842824218226231fa92c2a28f4393430e83b3531922b282434201d1933201d194c24221d20151411191815134a1d1b199224221e8b28242173282521832e2b28802e2b287f302d297c312d2980302d2a762f2c298834302e9b37332f9d3935328e38332f933a3532923936339a3d3a378f3b38348c3e3a3595423e398f43403a7937353160312f2c22272421292c2a26372e2b2720232220241e1c19512827247e2c2b299a35333386363332873d3b37a54a46438a46413f9a4d4945954e4b4686514d48724a46427e4a47437d4e4b4789575450a05f5d5a634f4d487c5956507a53504c6e534f4d6952504d6f53514d734d4d4d8f545250bb5a5a58944f4f4b603f3c3a2d383632152d292726454440334f4e481d45433c183a39353847454251504d498855524f9658555181cc864f1f16130f3d1d1915471d18156a221d1966201c185a1f1b1768221d1966211d1971241f1c62221d19a52924206e24201b291b18152d1d19153317151287201d1977221f1b58211e1a4d211e1955221e1b54221f1b6726221e5e25211d5526211d65282420822c2723ab302b275f25211e191d19162724201b1c1b18156225221f612e2b276c36312c6038332f7b413b37a2544d478c534d48a45d56516a48433f724f4a448958524c8457514bb9665f59f07d766f773c37341e24201e3845413b314d4841133d3832364c48426555514c84504a458f59514db3655d57a55f5853a95e57519356504b9f5a544e95554e499c59514da75a534eac5e5852a05e5954ff504740ff403831ff443b32ff201c18efffffffefffffffefffffffefffffffefffffffefffffffff362f29fb575552effffffceffffffbeffffffaeffffff9ff1f1c18ff14110fff1d1916661815121013100d1e1613103c1e1916491f1b17551f1b1773241f1b73231e1a72221e1a66201c1878241f1b7a241f1c7b24201c8326211d7b25211d8225201dda2f2a26a22a25213a1e1a163c211d19321d1915251614115c1b181598221f1b8024201c6424201d6225211d5e26221e3dff883042f96b274eaa44174c9f3f164b963d184e943f1a6092431f4a7f3618658a401c49712d0f62903712508f381235201e1b2c27231d3228231e1a1a181541211e1a7425231f63322d297437332e6834312c5a37332e79423c39a2554f4a88554f4a8f605852a26a625a77504a465644403b6d514c477757514c73544f4970524d488f5a534ee2665e596b504b46682c29261c1c1a17161f1d1b3b49453f2c514d4510453e371e534c473b59534d5c5e5a548c58524e6e544d4775554d498e5c5650996058548e5a544e9258524c7e524c478c564e4a744e4944784f49447f534d48a05b554f85554f4a955a544e995d57518456504a74534e48ffb1a89eff4f4640ff514740ff5047408625211e7623201c8426221f8c282421822723208f292522a02d28259c2d29258a292622d135312df33e3a35d137322e622825212d1d1b18562b272336201d191e1715133f1918158523201f9e2926228a2a2824782d2a27742d2a276f2f2c296f302c2970302c2974322e2b79322f2b7b34312e933a37338b3936337a35332f7636322f853a3632913d3a36a1413f3bd64b4744f754514cf954504aa53c3a374d2b29271923201d3f322f2a34302b281a201f1d2423221f5b2f2d2a672a2926683e3b377945413e693d3937633d3a38523b39366a4843418a534f4b925956517a56524e7c57524e8659544e7d585551544b494547444340574e4c485f504e4b5a4d4a485d4d4b48554c494769524f4d9b5b5856ae6d6a664d484743603c3a371e312f2c112322201d3f3d3a374f4e49264a484350c6804616110e0c1413100d17120f0d351b1714531f1b1760211c186a211c188724201b73231f1a6e221e1a58211c185f221e196e231e1b7a26211e58221e1a2b1f1b16231816124919161383221f1b68221e1a59231f1b5a24201c59231f1b5c25211d6a2a2521622925216f2b27236f2d2925832f2a26942d2a265d26231f2824211d2d2926222e25221e6d2927248b36322e7d403c397548413e9d56504ba359524d82524d48a25b55509d5f5752945e57518b5a534e7d564f4a9f5f5752ae6e665e9c4a45404a3834302e39342f2d4640391b35332f4a3c39359c4f4b488a504a4686554e4986534e488e544f4989544e49995a524e9256504a8a534e497a4f4944ff473e37ff3f3630ff433a32ff201c18efffffffefffffffefffffffefffffffefffffffefffffffff322b26fb575552effffffceffffffaeffffff9effffff9ff201c19ff15120fff1c1815b31815122314120f1a100e0b1512100d1613110d1813100e2e1b171358211d1966211d196f231e196f211d1a8f25211c9d27221e8124201c8625211c6c211e1a5e201c186c221e1a7b24201c9029231f992b2521832925203e1e1b17321f1b1727191613321614116d1e1c198823201c42ff8c3356fe722d5da943193291361141973f183f923e18398e3f18518b431b4f843c1843712d0f6e993c145b8f3a139837312dc33c3732d63c38339a342f2b4026231e34292621342b28242823201c4122211e802c2b278f33312d883e3b378047444079514b469a6058539c5a534e9f5f575279534e49985f595396615a548959534d8459544e8159534e985f59536d524d47815b534fcf6d655f704f4a447b3a37335a34312d19201d1b2c38332d274a433b1c443f39263e3a36574a47429b57545081504b4777504a4678544d47664b46417f534c487c514c4673514b467a534c4782554d497f524d4778514c467d54504a76524d467b5b5751ff988c84ff4d453fff4e453fff4f473f7724211d8225211e8025221f92272320a92a2623b12c2824972a2622942a2521942a26228c2a27226523211e802a2622872a2724962e2926a0332f2bcd39353094332f2a5d272421432726223824211e2e1e1c182d1b18154f1e1c1a86272522902a2926782a28256d2d2a277a322e2c74322f2c7f35312e6c302e2a943b36327e37332e893b38339d403d38843c3935923e3c3899403d39a944413d9e44403da545403dc7494642e0524e4ae64b4a46ad44413e5b312f2c342e2c2937322f2b3635332f292b2926302a2925542a2a288b3a3a388f3c3c39883f3e3a764242406f4a46436e4d49468055524d7c57535082595652845b57545f4e4c487454524f724c4a4b7255524f634e4b496752504c67524f4d68524f4d5f4e4c49564b4a4665534f4d8555524f85676460594a4944704443405fc77d44ff181512c5171512311714111b14120e1d16141122151310441f1a165f221c1857201b1761201c1864221d1871231f1a60211d195d221d1a6a241f1b8e27231fa32a26213b1e1a171d19161324171412491b181478211e1a66231f1b6527221e5d27221f742b26226c2b2621662a2621732d2924712d29256a2d29247d322f2ab93b373276312e292b2a26223d35302c302b27246a35322e98413d3a6f443f3a844e47448e56504b995c545074504a44af665e58a2615a549f5e5954a1615a54965e5751c46b645dd46a625c8b504b456536322f222d2a253a47413c1835312d523e3b389b4948439f544e499259524d8a554e498e554e4a85504b4691524e49ff4a4039ff413730ff423931ff221e19efffffffefffffffefffffffefffffffefffffffefffffffff302924fb565451effffffbeffffffbeffffff9effffff9ff1a1715ff151210ff2d2a25ff27241fff1a1815ff191714c21815125a1916123e1714112513110f271815122213110f211513103f1c181560211c186b221d19601f1c186e211e198024201c75221e1a8324201b71231f1b6f231e1a6a231e1a7a26211d8928231fc1302a25df34302a7728231f2b1e1a16291d19163fff8f333fef662542a23e143a963b14328e38132e8836132c853713287b3312417d3516336c2a0d6fa14114608e3c1482332e299436312d89342f2b83332f2a8434302bb93f3a36ed48433dc43f3b366534312c242b28234336312c362f2c2731262422733b39359a43403c7e45413c6c4a45417d4e49458a56504b76544f498f5b564f634d4742955e5852a8655e578a5c554f875b5652895b564f865b554f855b5550995f5852a1625b55ce6c655f6946413c6c302d292424221f1b26231f283e3a3622443e38223f3a37584a46439a524f4c9d55504a8b564f4b8358504c6d4e46438855504a83534c48724e49448959544d7b54504a7e716c65ff7a7269ff4f4741ff4d443dff5148412213120f211413103c1c191660231f1c7223211d8127241f6c24211d7f2623207925221f8c2a25238f2a2622992d29248a292622832b2722762a25227d2a2723902e2a2696302c28bf36342fef403c36ee47433d9e34312d48272421211f1c193726221f2b201d1b23181714471f1e1b7b262422862a28267b2d2b278235312e8c3935318c3a3631853a3733853b3733aa423f3a953e3a369c413e39903e3b388c3d3a37a544413dab45423e99413e3b93413e3b90423f3ca8494542d156524fe95b5754ca504d49723d3a383333322f21312e2a3a3d39363f3735322a2b292741302f2d783d3e3b974443408e4a49446342403d60474542634745436f4d4b476a504e4a6d53504e7054514e4e464341634e4c487f585552825754516b514e4b68514f4d7052514e6e54514e68524f4c6c55524f7bce8b4fff181513ff161411ff151311ff1613125e1c18142e1613101d19161215110e0b251815125c221d1853201b1764231e1a7725201c6b231f1b63221e1b7524201c7324211c66231f1b9427231f8527231f17191612271d1b161914120f541d19163f221e1b892d2823712b262261292420732c2723722d29246a2c282478332f2a66302c277033302ba13e3935fa57514ba146423d1a2d2a25483e3a35172623206a3a37339b4845427e4c4642a4605851be665f59b3625a55ad615a55b8665e5979534d48955c56508758524da5635c55ba675f58fe797069f4635b566f3e3a361222201d50504a440e34302b243e3a364646413d7b57514b774e494586534e49ff534b42ff453a33ff453b34ff201c18efffffffefffffffefffffffefffffffefffffffefffffffff2d2722fb565451effffffbeffffffbeffffff9ff161412ff1b1714ff151311ff151311ff161311ff28231fff2b2722ff282420ff1e1b17ff1a1714ff1a18157e1a17148a231f1b33161310231513101a110f0d130f0d0b2416131062221d1970221e1a61201d1972241f1a8126201c8627211d7b26211d7224201c7a26211d8e28231f8528231f7c27221e7f28231fdc35302b60ff9f4255fe782f41a6411640983b142d8c36112f8a3815439141192a7b33121f712d0e3a702c0e659d3f135a8435117d2f2a2591352f2b8e35302b88352f2b8034302b8a38332d7b332f2a8937322e853a3530d84b4640fe5f5b54d84d48435033302c202f2c2757423f391e312e2a25302d296c433f3aa8514e4b834f49457c544e4899615a52915b564fb2635c56a05e57529d5f5953ae68615a8457524c664f4b456b524d4797605b5473554f4a905f5952895d564da85d574ff1645e57ba4e484580332f2c2d2a27240a1917153949433d264540390b3c3734214c464240504a455b564f4b75554f4a684e4a46875b555074534e49987e7971ff776e68ff574f47ff4e443dff50473f9025221f371816131c1311102018151319100e0c110f0e0c231615124c211f1b7025221e862724217225221f862a26228f2c27239c2e2a26982d2a26902d29258b2c29258b2d2a26922f2b27a7332f2b97302e2a8b302d298b302d2aad373230fd4b4743fa46423d7535332f0e1c1a172923201d412c2925151716141719171546211e1c5b252320492e2b27933e3a36c848433fa4413d398c3d3a368f3b3835873a3734a4423e3ba2433f3ba845413da144403d8d413d3aa949444189443f3c87433f3c8544413d8445423f8b494543db5a5855fe5e5d5bbd504e4b7b4847431d2f2d2a1b35332e4f4c49442a3b3a37122625233c383733713e3d3a9f4849478d4a4b47704947456f4f4c4a7954514e7b54534f895754528754514f8055524f8054525081575452885a57545f4b49475049464466c98446ff1a1613ff1b1916ff171513ff151311ff151311ff151311931714112915130f1813110e211613102a17131048201c1766231e1a65231e1a6b231f1b6b24201b7226211c62231f1960221d1961231e1a6724201c8e27241f59221f1b1e1b1714231c1815181715112f1f1b174d28241f6d2a25226b2c27236e2d2824692f2a256c2f2b2676322e2a74342f2b7137322f863e3a35c958514cf9615b568648423d373b35312d37322e242f2c29653e3b358f4e494499564f4bb5605a55b6625b56c968615bc2655f58ae615a54905b534c965b554ecb69635cbf665f58be625c56ef6f6a63ff6a655f8e49453f28302c293e453f3b1f37332e2539343140423e39ff574f47ff403831ff403831ff1f1c17efffffffefffffffefffffffefffffffefffffffefffffffff2d2721fb555350effffffbeffffffaf2dbdad5ff171511ff15120fff161311ff171411ff171412ff171411ff171411ff161411ff221e1bff2b2723ff2b2723ff2a2521ff201c1aff1b1815ff1917148d1c18142313110e1c120f0c1e1512101e14110e2b181411481e1b166e241f1a70241f1b7125201c7125201c7d26211d7e26221d8629241f6925201b6d25211d6f26211d4bff933a40f76a2647ad46175caa481c399942183a934119378f411a2e7831123c81391537702c0e75a745164e813511782f2a2584312d2887342e2982332e298a36312c75342f288435302c9338322e9239342f8436322d7f3b363297403c3798423e38e159534efc5e5954bb56514c4435322d3137322f313d383521302d2a2a38342f5e46433d9657524b9256504b955a534ea95f5b57b2675f5a8957504cb6665f58b3625c559c5d58518f59534e7c574f497a544d47a4635a54ae625c55a86159529958534ea157514dcf5a5651d6514e4aa83f3b374b2d2a271922201d2d3a36322a46403c183935302147423d354d4a4446504c466c5e5953ff87807bff544c45ff463e38ff50463eff21201cff1b1918ff1b1918801a1815531c1a172115130f1f14120f2018151228161412231513112c1816134c201e1b70282520892c2822882a2622852b27237f2a27239c2f2b278d2e2b26902e2b279c332e29782e2a25822e2b277b2c2926822f2b2781302d2a8633302c9436322fd6433e3ae647433fb33e3a36592c2a252822201c3a2a2723332724211a1c1b17171c1a17211f1d1a462f2c285f37332e893c3835963d3a368f3e3b3799413d3a943f3c3897413e3b96423f3b87413d389745423ea24743419245413e9045423f8746433f7b45413f8c4a4743864a48438a4b4945c4595754d45d5b58aa52514d6b44443f29393732263d3a372b3a373521343331192e2d2a2a32302e5b3c3c398b4c4b47894e4b497d4e4c497e524f4c885454528a575552885755516d4e4c48935b59546ecf7943ff161412ff161411ff181513ff1c1714ff181514ff161413ff141210ff141210ff151311881c1915481b18132219151224171410371b171457211e1969231f1b62221e1a66231f1b62211d1969221e1a6a231f1b6c23201b7425211d7d27221f962925203c211d191c1b17141a1a17141f1b18143724201c542c26225f2d28226a2d28247f342f2965312d297237312e883f3935733f3a35703f3a36904b4541c25d5753dd605c57693b38352d332e2b373c36322e36332e79494440a5544e48814e4844b5645c56ac615a54a55c5650c567605ad26a635cad5f5752a95c554fbf645d57ad5c5650c0625a55a5615a548859514c58403b35202d2a25333e3a34ff4f463fff3f3630ff413932ff201c18efffffffefffffffefffffffefffffffefffffffefffffffff2b2420fb555250effffffbeffffffaff161511ff181512ff171411ff161411ff181411ff171411ff181512ff181512ff171411ff181512ff181512ff181512ff1d1916ff292421ff2a2622ff2c2824ff24211dff1b1917ff1c1916cb1e1a177b201d194f1c181422171410301a16122815120f381c181457221e1a6d25201b7926221d6f25211d7426221d7426211e7225211d4aff85364efc702b4faa44176aab4b1e469740173b903e182e873b1642873d194e853e19326d2b0d6ea544155687381217181512221d1a173e26221d522e28247d342f296c312b2783352f2b9538322e9037322d7235302c7f3b35319f413b37843d3834793b37326a3a36329349433e974c4741c05b5550df5c5955a244423e4632302c262e2c27303a3732233935302c3d39346d544d49a559534da45b544f79504a469d5f5753a05e58529a5b554e9158524c9e5e5852be665e58b9645d56935a534e9758504c9a5c544fa95f57529a58534d90554e4a9a554f4b8f5c56516748433e4b3b36313d2f2b271a25231f202e2c273047443c2a46413bff9e958bff48413bff494039ff4e453cff25221eff332e2bff312e2bff302d2aff282522ff1d1b1aff1d1b19cf1f1d1a8f24211d89272420501f1c18271a18153c1d1a1722161411291815123b1e1b185a26231f752a2723822c2824872c2a26812d2a26862e2b27852e2b28822d2a27892e2a288b2f2b2992322e2b8b312e2a9535322d9235322d99373330a1383531b03c3935ce433f3bf04b4741b9403c363b282522282724202625211e2d26231e151e1c191b1f1e1a2d272622452f2d285435322f8f423d398e403c38863f3b3797433f3da7474240a64843418c44403d74413e3b7b44403e964c47448e4b46447a4643406c43413d6242403c7f4d49447f4f4c4789524f4ba353524faa5152509a50504f553a3b3a2f33322e1d312f2c2b3d3b3826373432203634312c3435306746444296504e4b9c52504d814b49466649474468cb7943ff151311ff161311ff151311ff151310ff171411ff171412ff191613ff161412ff171412ff161311ff161312ef191613681f1b1726161310221b18141d15120f3b1f1a175c24201b7425201c7324201b7025211c6e24201c61231f1b6d26221e6e27231f6e27231e7026221e4e2a26211f1e1b171e1e1916171816121c1f1b174029252170322e287c322e2a6d35302d6b37332e5b38332f6c3e39347a45403b7249413c7446413d97534d49d6615b56f36d65606e3f3a372d36322d59504a422233302b7344413dac54504b8c514b47cb676058a95e5750ae605853a95b544fa75a544fb35c5753a759524eb15b564fa557514c7d4b45417d524b48995f5750ff403731ff403731ff413831ff211c19efffffffefffffffefffffffefffffffefffffffefffffffff2c2622fb54524feffffffbeffffffaff181512ff161310ff171512ff1a1713ff1a1714ff191613ff191613ff181613ff181512ff191613ff191713ff171512ff181513ff191613ff191613ff1c1915ff211c19ff25211eff302b27ff2c2823ff1e1b18ff1c1916f11f1b17711f1b1675221e1829171311331e1a161d110f0c1e15120f3c1f1b166b27221d7828231e8e2b252154ff8d3c52fc712c4eab441761ab4a1b5ba44b1d459442192f863c1640823a17407d381635702f107db44f1a47873712462c2721111917133226211c201e1b171019171326201c19432a26228339332e8836302c923834307c37322f883a36315d322d2a6238332f713d38337b423d38894a453f734b443e7049443f92514d479655504bb857524dee5c57529b423f3c422c2a271a29252185574f473248433c1b38342e5f504d499f55534fa156514d84534c48a15e5650aa5f58509e5c534c9257504b8b554e499f58524d8f54504a9754504c7c4f4844a35a544e9a554f4996544e48834b45406b4b444173534d486c534e487a4f4a42483b3633ff8e8378ff433b35ff4a413bff4e443cff171513ff181614ff191714ff1a1714ff1e1b18ff34312dff342f2cff302c29ff2e2a26ff272421ff1e1c1af3201d1bc522201ca62d2a257226221f271a17142d1d1b181d1816131c1412101e1715133e24201c702e2a2681302d2991322f2ba835312e96312d29a434302c9734312c86322f2a9435312d7f312e2a8534302d9137332f9b393531953835319e3a3632983b3632b13f3c39e247434091413e395d39352f1d25231f111c1b17392d2b272a272521121a181515221f1c2e2825234733302e8c4743409645413e96433e3c9c4542407a423e3b8a46413f743f3d3a67403e3b563d3b386843403c6b484641724e4b477f504c496145423e5e4644405f4745417a504e4b794c4b488c4f4e4cc2555551a84f4e4c643e3d3c2c353432112c29264a4b4844544d4a441f3937331b2f2e2a60c67a40ff161311ff161311ff161411ff171412ff161411ff191613ff151311ff161311ff1b1815ff171411ff181512ff171412ff181613ff1a1715751b18143a1815122318151123171310331b181558241f1b6925201c62221e1a67231f1b6d27221e6525211d65231f1c6b27221f70292421782b27236f302a254228241f1319161222211d19181d1a165322201c842d2a2672322f2b7d3c36337d3e39348b49433c754a423e613f3a377f4c48427e4f4a4588544f4aa059514ef3746e68c45a554f5f3835314a413e38343f3b372f36342f7842403d954947439e544f4aa458524dad59534ec3605953ae5b544fb05954509f534e48a856504c7447413d6d47413dff3e362fff403831ff3f3630ff211d1aefffffffefffffffefffffffefffffffefffffffefffffffff2d2723fb565451effffffaff151411ff171512ff1a1714ff191614ff1a1714ff181512ff191613ff191512ff191613ff181513ff1a1714ff181613ff181513ff1a1714ff1b1714ff1a1714ff1a1714ff1c1916ff191714ff1a1714ff1a1714ff241f1cff2e2924ff2f2a24ff23201cff1f1c18ff1f1b18861b18146c201c173b1915122a1916111b15130f1e161411371d1a174cff86374dfa69295cb34c1d56a7471a52a1461a4b9442193e8a40193e833d18407c381536702d0f66ad48164d9b44158e302c2686322c289039322c6c332f2924201d19161a17132d25211c1a1c1914181e1b19712725208b2e2b2786322f2b7b36322e8d3e3934843d383396443f399d514944754b433e5e403b376d45403c83504c467f504b458d5550499659534e94544d49ed625c58ea5a56519142403b3d2725222d2e2c2947433f3a273d3a352b3e3b36624a47429c52504c914e4c489556514c9457524c874f4b46a057524ca659544e9d554e4a8d514b479a544e4b834f48428e514b468d514b466b47413c55413b3684504a459a6e6861ff6e6359ff433a34ff463e38ff4c433dff191714ff181513ff191614ff1a1815ff1a1715ff1a1715ff1c1a18ff1a1715ff1a1815ff34302bff37332eff322f2aff322f2bff292824ff262421ff221f1dac201d1a9025211d6624201c34191614281b18141d1b1915271a1815221a18163a24221f622d2926772f2b2789322e2a81302d28802f2b28822e2b288b32302c9537332f8c36322e8e37332e70302c288e35322e95363431993b37349b3c39359b3b3935ae423e3aa1423e3aa949443f7d3d3a363d2c2a27121b19172425221e352c29262224211e13211f1b332523217a302f2c8f373533873a38357d3e3c397f423f3d8245433f7945423f884c4945804d4a488c4e4b4866433f3d55413d3b5745413e664b4845714e4c486e4e4b486d4b4946704f4d497a55514f76504c4ab5595855c05757558e4b4c487346464331302f2c5fc17941ff161411ff161411ff161411ff171512ff181513ff181512ff171412ff171412ff151311ff171512ff191513ff1d1815ff191613ff181512ff181513ff191714c01b1815561c1814361a1512221916121c161310311c181547201c186927221d6e26221d7f2824205f25201c6f28231f6e2a25216c2a2521722c27236d2e2a255d302b263c25221d20201e1a21221f1b2b1f1d1a6b2a262383312e2a6338332e5a3b3631663e39366b46413d83504a47784e48426c49443f97554f4ab65c5550c9655e58fc79736edf645e594934312c3037332e323c38313136332f6d433f3d96494743944f4a469f57514b9a544f49af58514da3544e4a8f4f4a4695514a47ff463e38ff403831ff423932ff231f1befffffffefffffffefffffffefffffffefffffffeffffffeff2f2823fb565451f87e7c79ff1d1a17ff171411ff191613ff191613ff171512ff191714ff1a1714ff1a1714ff191613ff191613ff191613ff191714ff191614ff191714ff1b1815ff1a1715ff1b1815ff1a1715ff1b1815ff1b1916ff1b1815ff1a1714ff1b1815ff1d1a17ff221d1aff2f2924ff332e29ff29241fff201c18ff1f1b17c11f1b17b8201d1965211c183a1c18155bff883b48f1662751ab4419469d3f164a963f1840893c16367c3615417c37142f793613316f2e0f67b34b1755a94d188e302a26792e292482302c2684312c2888332e2a7d342f2b7e38322d7e36312a211f1d192824211d2b25221e1f201d1b40221f1c77292623892e2c287134312d643a34315c3a36316d3f3b3664413d38714a444184554f4b77524d48704e4941674a454090554f4aa75f5852ac5d5751b85e5952e4635f59e358544f9b413e3b37282723222927222f3c37332b3f3a332c403f385747443f814e4b479b514f4b8b4e4b4788504a45874e48438a4f4a44ad5b524f8e504946884f49447f4d4843935450497e4c464297716b64ff665b53ff4c433dff453d37ff4e443eff191613ff181614ff1a1715ff191614ff1a1815ff1a1715ff1b1816ff1b1916ff1b1916ff1c1917ff1a1816ff1a1816ff1d1a18ff2c2824ff3e3833ff3a3531ff373330ff2c2926ff2e2a27ff23201dc223201dc22725227926231f6423201d331d1b18201c1a1631201d1a18171412211d1a173624201d4c292623642d2b278734302c8a34312c9437332faa3d3934a93b37338435322d7d34312d8936322ea73d3935983d38348d3a3633973c3935943c3a369d3f3b389f413e3b96433f3c9245403d9845413c352826231923211e292826222d2c2a271e272522282322214e2827267e32312f8a3838367a3a3a37613937355b3b3836563c39376644423f54403c3a5d43413d694b4645744e4b4966494743654d4943564a4641554845427a514e4a8255514e8e54504d9254514f9356545192cf8d51ff161311ff181513ff181512ff171412ff181512ff181613ff181513ff191613ff181513ff1a1715ff191613ff191614ff1a1613ff1e1b17ff1a1814ff191714ff181715ff1a1715ff1a17147e191613451916131d15120f1c1916122219161349241f1b6427221e6326221e7c292521752925215a27221f5c282420662a25226029262276302c278935302cac36312c552927221c211e1a2325211d2923201c692e2b28783b37344f3835326d44403c6e48433f97564f4a8e554e4a8b514a479b57504ba258524dc6635d56c5635d57fd6b655fdf5a554f382e29272e37332f40413d3829302c2984433f3c9d4b4742834c4642a2544e4aa2544f4a874d4844ff49413aff403631ff413931ff211d19efffffffefffffffefffffffefffffffefffffffeffffffeff28231dfb55534fff1a1715ff1a1714ff181513ff191613ff1a1714ff1a1714ff1a1815ff1c1815ff1a1714ff1a1714ff191614ff1a1714ff1b1815ff1b1815ff1a1715ff1b1815ff1b1815ff1c1816ff1a1714ff1c1916ff1c1916ff1e1a17ff1c1917ff1d1917ff1d1a18ff221e1bff1f1c1aff1d1a17ff201d1aff2c2722ff37322cff332d28ff292622ff1c1815ff19161364ff883e46ec5f2548ab441752a545194d9c461b4a883a173e7d3715276e2e0f226d2d0e386d2e0f68bc501962ac4f1992312b267c2d2924692b27226f2c28246d2e292575302b27712e2a2685332f2a8e38322ecc413c37ee48433cab38332e2d25221e21221e1a302925211d1c19153723201e6f2e2b298438343256373330583d3a366e47423f674b46417e5049459c5a544f8e5c53507f554e4a86544d499959544d9556524ba35c5652b9615c55a85b5750c559564fd754524c923a37332f2522201823201e43403c373a44403b1f34322e614e4847914d4843a8534e497449453f884f48448d534e4696545049864b46419256514a83534d49ff746a65ff524943ff463d38ff4e453eff1c1815ff191714ff191714ff1a1715ff1a1815ff1a1714ff1b1917ff1c1916ff1b1816ff1c1917ff1c1a17ff1c1a18ff1d1a18ff1d1a18ff22201fff1f1b19ff1f1c1aff25211eff282321ff35302dff393532ff33302eff312f2dff22201eff201e1be4211e1b6524211e6f282521431f1d1a201c18153224211e1a1614111d1a181532221f1c532e2a268738342e8736332f7c34302d8a35322ea13a3632a93d3935a53e3a36863735317535322e7a3634307134322e8b3a36337f3936337e3836328f3e3b38a643403cab46423fec514c49f1595550b84946425e33322e1924231f222a28243333312c1b24221f1e22211e412928266f353432843c3b39643936344437353358413f3c6146434058474440624b48446f4f4c498656524f74534e4c674e4a476e4b48466548444380514f4d68ca7a42ff151411ff181613ff1b1816ff191715ff191714ff191714ff1a1815ff191714ff171412ff191614ff171412ff161412ff181513ff191614ff1a1714ff1a1714ff1c1917ff171513ff191715ff191714ff181615ff1915136a1d191532171311291e1a16271a17132d1e1b185727231f5d25211d682824206c2b2722742d2824622c2722622c2824652d29267a332f2b6d302d28b03f3b37ae3d3933342a27223a36322c1a221f1c3a2826238a3935346b3d3a386545403c6b48433e6746413d774d474384504b479a56504b88544f49a05d56509c5c544fb3605852fa706c65be4f4b47362825225548423c313c3934413a3634443c3833684a454280504a46ff493f37ff3f362fff423830ff211d19efffffffefffffffefffffffefffffffefffffffeffffffeff29231dff161311ff1b1815ff161411ff1a1714ff1a1714ff1b1815ff1b1714ff1c1916ff1b1815ff1c1916ff1b1915ff1c1815ff1c1916ff1d1917ff1b1715ff1a1715ff1b1815ff1b1816ff1b1916ff1f1c19ff1f1c19ff1e1b18ff1f1c19ff201d19ff1e1c18ff1d1a17ff1c1916ff1c1916ff1a1815ff1d1a17ff1d1a17ff1d1a17ff1c1916ff29241fff403932ff37312c42ff6f2d41ee602740a53f1447a142174f994218518e4119578e451c2d71301132723312376b2d0e68b84c195ca84a18662a25207c2d28247d2e292586322d288e332d2983312d2875322c2774302c27722f2c2783342f2b973b35318735302c8436322df24e4843ec49443e8638332f1d211e1a4339353018231e1c1a24221f4b2b29258c3b37357a3c393662413c3a6849443f6c4b46415f47423e6148443f72504b46704e4a44925a544e8757524b7a5450498a59544d8f59534d8b58514b9158504ac555534de054504c8c383533371f1e1b1924211e5545403a2f423e381933312d624d4a473643403962504c4676524d47754e49438b4f4b45ff8b8079ff49403aff483f38ff4f443eff1b1816ff1c1a17ff1a1815ff1b1816ff1a1816ff191715ff1b1816ff1a1816ff1e1b19ff1f1d1bff1e1c1aff1e1c19ff1d1b18ff1f1d1aff1e1c19ff1c1a18ff1e1b19ff1d1a19ff1c1918ff1e1b19ff1e1c1aff201d1bff23211eff2e2a27ff383431ff35322fff35322eff24221fff22201fff201e1c7c24221fa3312d2a5b24211f271a18163b282521261c1a18261d1c191e1e1c193b2725227134302d7535312d7b34312d893733308c3936339d3d3a36a63f3b37a03f3b36973d3a367e39363280393633863a37347d393634903d3937a646413f9c44403e8e42403c9344423ef55f5d5ae956545099413f3c2f302e2b182624213d3f3d391e2a26231922201e262726235332302d8d3f3e3c7c403e3b61413f3e5d4543405e4644415f4845425244423f5443413e58464441604b47465fc87140ff1a1715ff1b1815ff1c1916ff1b1916ff1a1715ff1a1714ff191714ff181613ff171512ff171513ff171412ff181613ff171513ff181613ff181613ff161512ff161513ff161412ff1b1815ff1d1a17ff1d1a18ff1b1816ff191513ff181514a11d1a17441a171427171411201a1713211a16133d24201c5228231f642a2621702d29255f2c2724642c282470302c276a302c2874332f2b873a35319b403a36d94e4944b24d4a4337312f2a3235322d1e2a27242a332e2b733c38357147423f6948433f5d46413d654943407d5149468f57514ba25c55509c5c544e88524d47b65c5651e96a635dff726b66bb534e4a3f2f2c293e3f3a352a37322e1e373330ff403730ff3e352dff3c332cff211d1aefffffffefffffffefffffffefffffffefffffffeffffffeff27211cff151210ff171412ff191613ff1a1614ff1b1714ff1a1614ff1c1916ff1c1916ff1b1815ff1b1714ff1c1915ff1c1816ff1c1916ff1b1815ff1c1917ff1c1a17ff1b1916ff1c1917ff1c1a17ff1e1c18ff201d19ff201d1aff1e1b18ff1f1c19ff1e1b18ff1b1a16ff1b1815ff1b1916ff1a1714ff1d1a17ff1c1917ff1c1a17ff1d1a18ff1b1816ff1b1816ff1b181651ff843749fb6e2a3dac4215429f3f1547964017428c3d1647833c174f7f3c18537d3b193b682c0e69bb4d185fa548171f1a1713251b18154c28231f542b2621772f2a2680312c2888342f297c322d2974312c2883342f2b8f38322e8835302b74322e298c37322e9e3e3934a6433d38cc49433eec56504bd355514a683b38322c302d273434302b262a27251c2927242b36312d6b3f3b387e47423f75504a46674b46415e4a45405745423d634c464276524c478256514b8f59524d9058504c81554e477a524b4679504a45a456504bb95b5650e65c5752d54c4845963a38353a26242129302d29393d39342b3e3a351c403b37263e38344149453eff867b74ff463e38ff473f39ff4c423cff1c1916ff1b1916ff1c1917ff1a1815ff1b1916ff1c1a17ff1b1917ff1c1a17ff1c1917ff1e1b19ff1e1c1aff211f1cff1f1d1aff201d1bff201d1bff1d1b19ff1e1b19ff1c1a17ff1c1a18ff1d1a19ff1c1a18ff1d1a19ff1f1d1bff1d1a19ff1c1a19ff1c1a19ff292623ff332e2bff3e3a36ff403b37ff403d37ff2e2b27ff23201dff201e1cb6282523b42c2a2767272522391f1d192a1d1b181d1b1916251f1e1a1e1c1b182b23221f56302d2957312f2a8238353280373430983d39369b3e3b378d3b38357d3935337d3835328d3a37349f413e3b90403d3a87403d3a823f3d3a96454340a5484642a1494542a14b4845c152504ddd585654ba4f4d497f4848432f31302c2436342e2f383531252f2d2b1a2b2a27212d2b282c35322f623d3c397c43414069454241644d4a485747444366c77c45ff1c1916ff1a1715ff1d1a18ff1d1a18ff1c1a17ff191715ff1b1917ff1b1815ff1a1816ff191714ff181613ff181614ff161413ff171514ff161412ff171413ff1a1715ff1a1815ff191613ff191715ff1b1815ff201b18ff211e1bff1d1a18ff1b1816ff1a1816d81c191662211d193f1a17141b1714111a1c1815241f1b183e27231f552b2623592b27236c2f2b2670302c276f302b288139342ea4403a358d3b37329945413caf4e48447b504a456349443f2b36332f3638352f182825222937322e48423d3a5a413b386e4a4540714c46427b4f4a4577504a4287524d48ab58524c93544d48ba5f5853d1645e58e06a645dfd706a64c857514c2d322f2bff3e3631ff3b322cff3c332cff211d19efffffffefffffffefffffffefffffffefffffffeffffffdff2c2620ff181512ff191612ff1c1916ff1b1815ff1c1815ff1a1815ff1c1815ff1c1916ff1d1a17ff1e1a17ff1f1b18ff1e1b18ff1c1917ff1b1816ff1b1816ff1b1815ff1b1816ff1c1916ff1f1d19ff211e1aff1f1c19ff201e1bff211f1cff22201dff1e1c19ff1f1d1aff1e1b18ff201e1aff1d1b18ff1d1a17ff1f1c19ff1c1a18ff1b1918ff1b1916ff1b1816ff1d1a185dff99415afe793036ab40133a9f3f152d8e38123d863915437e37143d7736124d77371540672d0f6eb84c185aa447177626221e381b1815191714121e1d1916221c191626201b18442925216a2f2b27642e292575322d298637312c8736312c8935312c8636312d943b3631ae433c36b9433d389c413c36a6443f3aa145403ab9504a4483504944704b45403438343025302d293d3a38311f312e2a14302b272b3e39344246413d6a43403a5845403c684c4842634a4440674b4541714e48446c4f48417e514b468e554f499d55514a85504a459c5a534ea659524eb75c5651ba59524ede5f5a54dd54514d9c43403c423a38341e24221f3f4b4843ff736962ff473e39ff463d38ff4c433dff1d1a18ff1e1b18ff1e1b19ff1c1a17ff1b1917ff1b1917ff1b1917ff1a1716ff1b1917ff1e1c19ff201d1bff201e1bff201d1bff211f1dff221f1dff201e1cff1f1c1aff201e1cff221f1dff1f1d1bff1f1d1bff1e1b19ff1d1b19ff1b1a19ff1c1a19ff1c1a18ff1f1c1aff221f1cff221f1cff201d1bff272421ff2a2724ff433e39ff46413dff423f3aff36332fff272523ff252321d2282422b6292623862f2c295b262320291b1917191a181526221f1c211d1b192222201e2f282522482f2c2a743634316e35322f6b3532308a3b3835933f3c3992403d3994413e3b9a43413d8e423f3b9945423faa4c4743bf504c47ab4c4844964a4642974a4744974c4a46a6514e4a9e57524e704f4c475b504c493e413f3b1c363531202f2e2a353e3b372533322f15252422182d2a272c39363363c67a43ff191714ff1a1715ff1b1815ff1e1b19ff1c1917ff1a1815ff1b1916ff191614ff191715ff181715ff171613ff191715ff191714ff171512ff181613ff181613ff181614ff181513ff161412ff1a1716ff181513ff181513ff181614ff211d19ff211d1aff231f1dff1c1918ff1a1716ff1b1816fc1a181552211c181f13110f1c1e1915191b19152824201c452925215c2d29246c302b277e36312c8a3b3631893c3632893f3a359448413c8a46413c8b48423e90504a46a5645d562c3935311f2d2a2620302c27222c2825683b38368043403c6245413d87544d496448443f6447423d84514c46a75b544fbf605a54c3625a55a55c55509b58524ce2655e58ff423a34ff3c342eff3b322cff201c18efffffffefffffffefffffffefffffffefffffffeffffffcff27211cff15120fff1d1917ff1a1714ff1d1a17ff1c1917ff1b1815ff1d1a17ff1d1916ff1c1916ff1e1b18ff1e1b18ff1d1a17ff1f1c19ff1b1816ff1c1917ff1b1816ff1c1a18ff1b1917ff1b1816ff1d1b17ff1f1d19ff1f1c19ff211f1bff201d1aff211f1cff201e1aff22201cff1e1b19ff1d1b18ff1d1b19ff1d1b17ff1d1a18ff1e1c19ff1c1a17ff1d1b18ff1d1a1757ff943c52ff762c36b4461535a2411535943c15308134124b88401631723412567a3c1943672e105eb349175da44616ff1b1917ff1b1816ea1c19166e29221e51201d181411100e2b221d1a1e1a1815141c191530282420532d28246a312c287a332e2a8737322e92393430a83f3a369f413b369f413b378d3d383497423d38a348423c9448413c8a423d398748423c91524c479e5e5751574b47420d24221f1e2d2a272f3a37330f26211e30342f2d69433f3d954b484554403c38684b46427e554d49734f48444f423f395f48433e6d4b464093534c48a259534daa5a544eab59534d95554e4986534e4988554f4aa85c5650c16660597a756e68ff70655eff4f4640ff473f39ff4c433dff1d1916ff1f1c19ff1e1b19ff1e1b19ff1e1c19ff1c1917ff1c1917ff1b1917ff1b1a18ff1b1918ff1c1918ff1d1b19ff201d1aff1e1c1aff201e1bff1f1c19ff22201dff201e1bff211f1cff211f1cff1e1c1aff1e1d1bff1d1c1aff1e1b19ff201f1cff1e1c19ff1e1c1aff1e1d1aff1f1d1bff1f1d1bff1e1c1bff1e1b1aff1e1c1aff1e1b19ff1f1d1bff1f1d1bff443f3aff46413cff46413dff423f3bff262321ff272422fd2624219525221f792f2b27692a27222f1b191611131311342723201c1b1a18161e1c1a2023201e3a2e2c295b34312f6e373432783a373496423e3b92423e3b9944413dac494643af4846429a4844409a4845419146433f92494642924c48448f4b4741884a4741894a4845844b47437d4c48438756524e7e5b57545a524e4b2641403d062624211832312f5dc67540ff191714ff1b1916ff1a1715ff191614ff1a1815ff181513ff191715ff1a1815ff1a1815ff1b1916ff1a1715ff191714ff181614ff191614ff181513ff191714ff191614ff191715ff1a1715ff181613ff181613ff181613ff1a1816ff181613ff181614ff1d1a17ff211d1aff1e1b18ff1f1c18ff1d1b18ff1c1a17ff1c1a1789221e1a3f1d19161f181612221f1c181f211e1a3d2b272267302c276d342e2a7838332e853f393480403a367c413c379048423e8245403c874b4541814d47438857514b7b544e492229252227322e2b1e2a262337312d2a88413f3b7047433d744c46427c4f494563443f3c864e48439d554f49b8615854a75a5551a85c5550ff403a35ff3c342fff3b322cff201c18efffffffefffffffefffffffefffffffeffffffeff1a1714ff1e1a17ff181512ff1b1915ff1c1916ff1c1916ff1b1916ff1c1916ff1c1916ff1c1815ff1e1a17ff1f1b18ff1f1b18ff1e1b18ff1c1916ff1c1917ff1b1916ff1b1816ff1b1917ff1c1917ff1b1a17ff1c1a17ff1b1916ff1c1a17ff1f1c19ff1f1d19ff1d1a17ff1f1c19ff1c1a17ff1d1b18ff1f1d1aff1f1c19ff201d1aff1f1c1aff1e1b18ff1d1a18ff1e1b18ff1d1a1766ff9d3f70ff85354bbc4c194cae49194e9f45195397451a688b421c3d7639155a7436163d672d0e69b0471757a24415ff3f3934ff3e3833ff38332eff23211eff1e1b18ff1d1a18a32924206527221e2d171513271e1b17261e1a17191e1b182925211e4e2f2a267936322d7a37322e953d36338c3d37339d433d388c40393595423d3782403b3689413d389a4b46418144413d914c45427e4d4943794d48438357534c70504b453c35312e11201c1a26332f2c26342f2b152f2a26433a363487474440854b474174514a446c4b4542784e48435e433f3b6846403c7b4b44418d534c4796544d47a258504c9858534e90524d499255504a875c5650ff7d716bff524843ff483f3aff4b423cff1b1816ff1d1917ff1d1a18ff1e1b19ff1d1b19ff1c1a17ff1d1a18ff1c1918ff1c1918ff1b1918ff1b1917ff1b1a18ff1c1a18ff1b1917ff1b1a17ff1f1c1aff211e1bff1e1c19ff1f1c19ff1d1b18ff1e1b19ff201e1bff201e1cff201d1bff211e1cff1f1c1aff1e1c1aff1f1d1aff1d1b19ff1e1c1aff1f1d1cff1f1d1bff22201dff1e1d1aff1e1c19ff1e1d1aff211f1dff211f1cff211f1cff22201dff3e3a36ff45413cff46423dff46423dff363430ff322f2dff292725ff272523b1332f2c722d2a264722201d201716142923211d241f1d1a1c23201e1d23221f38312d2b5a3835327d3f3c39833f3d397d3f3b39994743408944413d9c4b47438c4844418143403d8a46433f7946433e7f4846418e4d4a458b4d4a4779494844834c494673494744724b4a46624a47456c55524f6dcc7f48ff1a1714ff181613ff191714ff1a1715ff1a1816ff1a1816ff1a1815ff1a1815ff191714ff1a1715ff1b1916ff1a1815ff1a1714ff181513ff1a1815ff191715ff1a1715ff191714ff191715ff191714ff1b1916ff191815ff1b1815ff1a1815ff1d1a17ff1e1a18ff1d1917ff1b1816ff221e1aff221e1bff231f1cff201c19ff1e1a17ff1e1b17b21f1b1754221f1c311b18151e1d1a161c211d19322925216237332d6b37312c7b3c37327c3e3a35783f393578423d387645413a854b4641874c4642814c47419d59524d8e58514c6145403b252c2a26443f3a341c332e2a243a35309443403c814943406546403d6e4c4642794f49447c4e484488514b46ff463d37ff3b332dff3b332dff201c19efffffffefffffffefffffffeffffffff2cececcff1f1d19ff171411ff1b1916ff1b1916ff1b1816ff1b1815ff1d1916ff1d1915ff1d1916ff1f1b18ff211f1bff201d1aff1d1b18ff1d1a17ff1d1a18ff1d1a18ff1f1c1aff1e1b18ff1d1a18ff1d1b18ff1d1a18ff1e1b18ff1e1b18ff1b1916ff1e1a17ff1d1a17ff1d1a17ff1f1b18ff201c19ff1e1b19ff201c1aff1f1c1aff1e1a18ff1f1c19ff211d1bff201c19ff1f1b19ff1c19176aff923d69ff7d315dc4511b5fb34b1b5fa4461a5594421951853c1844713314497436153d672c0e68b14a1866aa4a18ff201c19ff1e1b18ff28231fff3e3733ff443e38ff403934ff2e2925ff201d19ff1f1c19ba211e1a6f2925215e25211e2e1b1816211d1a161c201d1a2826231f402e2925763b36318b3e373299413c36893e3a34863d393488403c3873403b3775403c38673e3b367f48443f854b4641885049457d4c484290544d4a9d5e57517e544e496849443e2c2c28251c2423203135312c2b3d383315322d2a25413c368a46433e8f494441744943405c443f3b6047433e6345403c6147413d724c46427a4d484387544d498e56514cff938a83ff4a413cff48403aff4b423cff1e1a17ff1e1b18ff201e1bff1f1d1aff1e1c1aff1c1a18ff1d1a18ff1e1b19ff1f1d1bff1e1c19ff1d1b19ff1d1a19ff1c1a19ff1e1b19ff1f1c1aff1c1a17ff1d1a18ff1e1b19ff1c1a17ff1f1c1aff211d1bff1f1d1bff211e1cff211e1cff1e1b19ff1f1d1aff221f1cff211e1bff211e1cff1f1d1aff1e1c1aff211f1cff201e1cff211e1cff1f1c1aff1f1d1bff22201eff22201eff22201dff23221fff272421ff272423ff282523ff252221ff35312cff4a4642ff484440ff4a4642ff3f3936ff38322eff312d28ff302c29bf2c2925772f2d29732e2c293d211f1c27201e1b221f1d1a1f24211f2324231f2f2c29264e3734317842403c8a45423c6d3c3a358643403d8142403c7e44413d8146443f7645413e6c45423f6c45433f6041403c7648464274494742704946437a4d4a475cca703bff1c1a17ff181714ff1a1815ff191614ff1a1916ff1a1815ff191715ff191714ff1b1816ff1a1815ff1c1a17ff1a1815ff1c1a17ff1b1816ff1b1816ff1a1715ff191714ff191714ff1c1a17ff1b1816ff1b1816ff1c1815ff1a1815ff1c1917ff1b1816ff1c1916ff1c1917ff1e1c19ff1e1c1aff1e1c1aff1f1c1aff27221eff26221eff24201cff1d1917ff1d1a17ff1b19165324211c5123201c191512101c25221e292924204c35312b6d3d39336d3a36328645403a6d403b367b48423d76443f3a814a443e8d524b457a4a45406247423b9a5b544ea0605952443936311922201c41463f3a20332f2a6f3e3a379845423f79433f3d784c4642774d4743ff3d342dff3d342eff3c352fff201c19efffffffefffffffefffffffeffffffeff1f1c18ff24201cff1b1915ff1b1815ff1b1916ff191714ff191715ff1b1815ff1d1a17ff1e1b18ff1e1b18ff1d1a17ff1f1c19ff1e1b19ff1e1b18ff201c1aff1f1c1aff201d1aff1d1917ff1f1c19ff1e1c19ff1f1c19ff1c1a17ff1d1a17ff1c1917ff1e1a17ff211e1bff1d1a17ff1f1c19ff1f1c19ff1f1c1aff1f1b18ff1e1c19ff1e1b18ff211d1aff1f1c1aff211e1bff211e1bff211e1b60ff8c3879ff7c3475cf561f6dbc531f6aa5491c4b8f3d1550863e1845783a14427135132d642b0d5fae471672ab4d1bff1f1c19ff201c1aff221f1cff23201dff221f1dff24211fff38322dff4a443dff463f39ff352f2bff1e1b18ff1d1b17ed1d1b186b292622832e2b262c191715161513102024211d2a28221f302a26225f3c37317f3c38336434322e8b423e3985423e396c403b3876453f3c7846403c7347423e7c4c46427e4e48437e514a45764d48436848433d734f4a448e57524b8d59544d4f3b3733161e1c19121917144247403c2238342f263d38327347433e9f4947438d4a46426c44403d6e4b4542744e47435f46413e5a46423fff80766fff443c36ff49403aff49423aff1d1a18ff1e1b19ff1d1b18ff1c1a17ff1d1b19ff1f1c1aff1e1b19ff201d1bff201d1bff201d1bff1d1a18ff1f1d1bff1f1d1aff1f1c1aff1d1b18ff1d1b19ff1c1917ff1d1a18ff201d1bff1d1c19ff1f1d1bff1f1c1aff1e1d1bff1e1c1aff201e1cff1f1d1aff211e1cff211e1cff22211fff23211eff24211fff211f1dff211f1dff201e1cff1f1d1bff1e1d1aff23201eff21201dff25211fff24211eff22211eff242120ff252221ff242320ff272422ff292724ff2a2826ff2b2928ff302e2dff47433fff4e4743ff524c47ff4e4742ff47403cff302c29ff302d29f02e2b287b312f2b93363530492523211a1716141b1b1a161f28262227272421252b28253c312f2b6544403c7d46433e623b39357242403c7c4744417c48454263413f3c734543416f4643406c45423f6b46443f81c98a4dff1b1816ff1e1a18ff191816ff1a1716ff1a1714ff181613ff181513ff1a1715ff1b1815ff1b1816ff181513ff181514ff1a1815ff1b1817ff1c1917ff1a1715ff1a1816ff1a1816ff1a1816ff1a1816ff1a1815ff1b1816ff1a1816ff1c1917ff1a1815ff1b1916ff1f1d1bff1f1c1aff1f1d1bff1e1c1aff1d1c19ff1e1b19ff1e1b19ff2c2724ff27231fff282320ff23201dff1f1c19ff1f1b19ff211e1b76292420371f1c183a2a2522362b27222a2a2622513a3631643b3732643f3a3665403b357847413a70464039523e383260403d387a4b453f9655504a8e534d479c5c5450c8534d47593b3733433c37332939342e23322f2a803c38358c423e3aff3e3630ff3e3630ff3a332dff1e1b18efffffffefffffffeffffffff3c9c9c7ff201d1aff161311ff1d1b18ff1c1a17ff1b1916ff1b1916ff1d1a17ff1d1a17ff1e1b18ff1d1a17ff1c1815ff1d1a16ff1e1b18ff1e1b18ff1e1b18ff1d1b18ff211d1aff1e1b19ff1d1a17ff1f1c19ff1f1c19ff1d1a18ff1b1917ff1e1b18ff1e1c18ff211e1bff201e1aff1f1b19ff221e1bff1e1c1aff1e1b19ff1f1c19ff1d1a18ff1d1917ff201c19ff201d1aff211d1aff1d1917ff1d1a1772ff8a3a81ff803771ca57215db24c1c4e9a4118509142184b833c16417235124972371632642b0c5aab451573ab4d1aff1e1b19ff1f1c19ff23201eff23201dff23201eff221f1cff211e1bff201d1aff1f1d1aff3a3430ff453f38ff47403aff3e3731ff26221fff1f1b18ff1f1b18dd25211d802f29255a272420271b1915412f2a253e2925212126231f40312d2959393532673e393671423c3971433e3a64413c387a48413e6848413b6a49433e4e423a355c423e39553f3c36784c453f8d534e4884504b458b524b478f574f4c7d3a3532893a38332223201c33322f2b333a36301d35312b2b3c38337e44403c9546413e78423e3a4c44403cff6e6a60ff423d35ff433d35ff433c35ff1d1a18ff1e1c19ff1c1917ff1a1714ff1c1916ff1d1a18ff1d1a19ff1d1b19ff1e1c19ff201d1bff1e1c1aff1d1a18ff1f1c1aff1f1c1aff1e1b19ff1c1918ff1e1c1aff1e1c1aff211f1dff201f1cff1f1c1aff211e1cff1e1d1bff1e1c1aff201d1aff1e1c19ff1d1a18ff211e1cff211f1dff221f1dff1e1b19ff1e1c19ff201f1cff221f1eff23211eff211f1dff201e1cff211f1dff221f1dff23211eff24201dff24211eff23211fff262321ff23211fff252321ff2b2827ff2b2926ff2c2a28ff2d2b28ff292826ff2a2826ff2a2826ff494440ff4e4944ff544e49ff504a46ff4f4844ff373330ff312d29ff33302d7f312d2a8234302c602f2d292d211e1b2a24221f3535312c3d2c2a261f272622272c2a274a3b3936533d3a385c3d3b385a3e3b385b403d3b6644423d5c43413d76c88847ff1d1a18ff171413ff1b1715ff1a1815ff1d1a17ff1c1a17ff1c1916ff1c1916ff1e1b18ff1a1815ff1a1815ff1c1917ff1b1817ff1a1816ff1a1815ff1a1816ff1b1916ff1b1917ff1a1816ff1a1815ff1b1816ff1a1816ff191715ff191715ff1b1816ff1c1a17ff1b1917ff1d1b19ff1d1a18ff1f1d1aff201d1bff211f1dff201d1cff211d1bff211f1cff27231fff322d28ff32302cff302d2aff272421ff26221fff292522c12f2b27b3413c363a23211d312926222427231f34332f2a5a3f3b3568423d3661403b3560403b3661403b3766443f3a814d46406146413b724b443f9b564f4aa7544f4aee6b645edc5b544f4a2f2c282a332e2b25352f2cff4c443cff3f3730ff3b342eff1c1916efffffffefffffffefffffffff1e1b18ff221e1bff1f1b18ff1f1c18ff1e1c18ff1f1b18ff1e1a17ff201d19ff1f1b18ff1b1815ff1b1814ff1b1815ff1e1b18ff1f1d1aff201c19ff1f1c18ff1e1c18ff201d1aff1e1b18ff1e1c19ff1f1c19ff201d1aff201e1bff1e1c18ff1f1c19ff1e1b19ff1f1c19ff1f1c1aff1f1c19ff211d1bff1c1a17ff1f1b19ff201d19ff23201cff221f1cff211e1bff211e1bff23201cff1f1c19ff1f1c196cfc753280fe783164c4511d64b14a1c31923b144891401747803a1653773917657639174369300f63ad471663a04417ff1e1b19ff1e1c19ff201e1bff1f1d1bff211e1bff201c1aff231f1cff22201cff23211eff23201dff211e1bff221f1bff322d28ff48413aff4c453fff47403bff312b28ff1f1c1aff201c19f325221ede312e2ac6423e39632b28233524221d3527242121272320262c28254438333061413c3865403b3665453e396547413a5f413c385e413c3763433f3a6444403a7d4c45406145403a6448413b6a48423c95544c48884d4844a5514c47d956514cca4c47426d33302c201f1c19202b28252d3d37331c37322c3f413f3bff675f57ff4c483fff413b34ff3c3730ff1e1c1aff1e1b19ff1b1815ff191715ff1a1715ff1d1a18ff1e1c19ff1f1c19ff1e1c19ff1e1c1aff201d1bff1e1c19ff1f1d1aff1f1c1aff1f1d1bff201e1cff1e1c1aff1e1c1aff1e1c1aff201d1bff201e1cff1f1d1bff201d1bff1c1a18ff1f1c19ff201d1bff23201eff221f1dff221f1dff231f1eff24201eff201e1cff211e1cff221f1eff211f1eff211f1dff211e1cff24221fff21201dff23211fff23201dff22201dff23201eff23211fff22201fff232220ff242220ff262421ff252220ff292724ff2b2826ff2f2d2aff2e2c2aff2f2d2bff2e2c2bff2e2c2aff32302eff403d39ff524d47ff55504bff5c5852ff57524eff44403cff312f2cff34312db035332ee3494744913b3a359243403a2f25231f2e2c2a273029282520282623282d2b2831373531473e3c395d46443f6ec78745ff191713ff1e1b18ff1d1b18ff1c1916ff1e1c19ff1c1a17ff1d1a18ff1d1a17ff1c1a18ff1b1917ff1a1816ff1b1916ff1c1917ff1c1917ff1b1917ff1c1917ff1b1917ff1b1816ff1b1916ff1b1816ff1b1816ff1c1916ff1b1816ff1b1816ff1c1a18ff1c1917ff1c1a18ff1d1a18ff1e1c1aff201d1bff211e1bff201c1aff211e1cff1f1d1aff1e1c19ff201d1bff211e1cff211f1cff34302bff3c3631ff443e39ff433f3aff2f2c28ff312d2adc2e2a2777342f2a6834302a2625221e232b28241f2a27223f3a343061433d375f403b3763413d38894c48427548433d724b443e7948443d8b524c469e565049a456504ac25d5751f967615c8f46403bff544a43ff3d352fff38322cff1d1917efffffffeffffffff9787774ff221e1bff171412ff1f1c19ff1e1b18ff1e1a17ff1e1a17ff1d1a17ff211d19ff201d1aff1e1b18ff1e1b17ff1f1b18ff1f1c19ff1f1c19ff1f1d19ff1e1c18ff201d1aff201d1aff1e1b17ff1f1c19ff1f1c19ff201d1aff1f1c19ff201e1aff1f1c19ff1f1c19ff201d1aff231f1cff211d1bff201d1aff1e1b17ff24201dff23201cff201e1aff24201dff221e1bff231f1cff221f1cff221f1cff211d1b36da602457ea69296dc8551e52b24a1b3b963d13438c3c156f8f481f737f401b5475391638652c0e57a944155ba34616ff1f1c18ff1e1b19ff201d1aff1f1c1aff1f1c1aff1f1c1aff23201dff231f1dff221f1cff211e1bff211e1bff1f1c19ff1e1c19ff201d1aff201d1aff292521ff47413bff4a433eff4c443dff403a35ff312d29ff201e1bff25211fe62b272377332f2a7435322c2d23201c2426232020272521212825212c322d2946403a3561433d38533b363362413c396544403b8d4e4a437749453f5a423c37774c463f7048433d84514a438e534d4793524d4695524d4798544e4ab3534e48d1534f4a8948443f5d322f2a172a2722ff797469ff534d47ff3f3a34ff3c362fff1d1a17ff201c1aff201d1aff1e1b19ff1d1a18ff1d1b19ff1e1c1aff1f1c1aff1f1c1aff1e1c19ff211f1cff201e1bff1f1c18ff1f1d1aff201d1aff211e1cff1f1d1aff211e1cff201d1bff1f1d1bff201e1bff262220ff221f1dff211e1cff1e1c18ff24211fff24211fff221f1dff252220ff23201dff24211fff23211eff23211eff23201eff211f1cff221f1eff23201eff24211fff23211eff23201eff24221fff22201eff23211eff23201fff242220ff252220ff24211fff23211fff262321ff252321ff272524ff292624ff2e2d2bff2e2b29ff2e2c2aff2c2a28ff2e2d2aff2e2d2aff2d2c29ff2f2d2bff302e2cff353431ff4f4b47ff524f4aff5c5750ff54504cff56534eff353431ff3a3936df3a3835e43735315f312f2a5f34322e342928231d252421232c2b282129272465bf8042ff1c1917ff1e1c19ff1e1c19ff1d1b18ff1e1b18ff1d1b18ff1c1a17ff1c1a18ff1b1916ff1b1816ff191715ff1c1916ff1b1816ff1b1816ff1d1b18ff1c1917ff1b1917ff1d1a18ff1d1a19ff1c1a18ff1b1816ff1d1b18ff1c1917ff1e1b18ff201e1bff1e1b18ff201d1bff1e1c19ff1f1c1aff23201dff211f1cff211f1dff1f1c1aff23201eff23201eff23201eff24211eff24221fff25221fff272320ff282521ff35312dff544e48ff534e47ff3e3a36ff393531ff35312dff35312d6938332d3425221e2c312d281e26231f1c2c282456403d366d45403b884b44406e453f3b824e47407f4a454092514c45a358514a97544d468b504b4598534c46ff4f463fff3b332dff372f29ff1b1815efffffffefffffffff1e1b18ff26211cff201c19ff1e1b18ff1f1b19ff1f1b18ff1f1c19ff1f1c19ff1f1c18ff1e1c18ff211e1aff201d1aff211e1bff211e1aff201d1aff201d1aff201d1aff211e1bff23201dff211d1aff201c19ff201e1bff221f1cff211d1aff1f1c19ff211d1aff201d1aff201d1aff201d1aff24201dff221f1bff231f1cff23201cff24201dff24211dff23201dff23201cff24211dff221f1bff231f1cff201c1a42e563246bf26e2e66be4e1c6faf4b1c3d9b41153e8637145b853f1963773717336930112d642c0e5bac471660a84a19ff211e1bff201d1aff201d1aff22201cff201d1aff231f1dff211e1aff211d1bff221e1bff211e1bff1e1c19ff1d1b18ff211e1bff1f1c19ff1f1c1aff1f1c19ff201d1aff221f1dff221f1dff282522ff3f3b37ff4e4844ff4d4742ff433e39ff2d2926ff282422ff2825227a33302c6d3c3531472d28241c221f1c1c2b27242227231f1326221e313a353061433f397045403b7e4c45406a433e3a5e403a377349433d824d48437347413e8e4f4a449a544d4994544d4888544d467e4f48448d524d488e544f4ab655514aff938a81ff4b453eff3d3731ff38312bff1e1b19ff1f1c1aff1f1d1aff1e1b19ff1f1d1bff1f1d1aff1f1d1bff201e1aff1f1d1aff201d1bff201d1bff201e1cff221f1dff201d1aff201d1aff201f1cff23201eff221f1cff201d1bff211e1cff211e1bff211e1cff221f1cff24201fff24211fff23201eff252220ff252220ff24221fff262321ff24221fff252320ff23211fff252120ff211f1dff201d1cff221f1dff23201eff211f1dff221f1cff23211eff24211fff23201eff242220ff252422ff252321ff252220ff272522ff272421ff272522ff282623ff272623ff2b2927ff292825ff2a2825ff2c2927ff2f2d2bff272725ff2a2927ff302e2cff2c2b29ff2e2d2cff2c2b29ff2b2928ff302e2dff2f2e2cff3c3a38ff484541ff555450ff5a5852ff595650ff413e3cff3b3836ff3b3836ff3c3938823c3b37563633306ec28341ff1d1a18ff1d1b18ff1e1b19ff1e1b19ff1c1a18ff1c1a17ff1b1917ff181715ff1a1816ff1a1716ff1d1a18ff1f1c1aff1f1c1aff1d1917ff1d1a18ff1e1b17ff1e1a18ff211f1bff201c1aff1d1b18ff1f1c19ff211e1cff221f1cff24201dff26231fff262220ff262320ff282421ff282522ff2a2624ff2b2724ff2a2624ff2a2623ff292724ff2b2825ff2a2623ff2b2725ff2a2724ff2a2623ff2d2926ff2b2724ff2c2825ff2c2825ff2f2b28ff4c4743ff5d5851ff534e48ff413c38ff3e3935ff3e3935a83b36325d35322c29262320212926201725221d3437342e5f433f3a5c413d38884e474391514b447f4d47418d514a449b514b45994e4742ff423933ff3a332cff3b322cff1d1916effffffffa696765ff231e1bff161311ff1e1a18ff1f1b18ff1f1c18ff201d19ff1f1c19ff221e1bff221f1bff221f1bff211e1bff1f1c19ff211d1aff1f1d19ff211e1bff211d19ff211e1bff211e1bff1f1c19ff201d1aff1f1d19ff211e1bff201d1aff1f1c1aff211e1bff1f1c1aff211d1bff211e1bff221f1cff25211eff23201dff24201dff221e1cff23201cff23201cff231f1cff231f1dff23201dff221f1cff201d1bff1e1b186efe7a3573f8773263c9561f75bc512065af501e5a9b481c678e441c54773917517034153a662d0e77ba521c60a14618ff221e1bff231f1cff24201dff23201cff24201dff231f1cff221f1cff231f1cff221e1bff231f1dff221f1cff24201dff23201dff24211dff24211dff23201cff25221eff24221eff252320ff282421ff262320ff262420ff262420ff37332fff4d4642ff554f49ff534c46ff403b37ff312c2aff322d2a97312d298039353255322f2b2c24221e1b272420222a27211628241f2133302b47413d385d413d39573e3a3568463f3a7d48423e8f4e4843804a443f7c4c46418b504a45914f494491514b478d504c47834e4946ff8b8479ff423c34ff3c362fff3d3630ff1f1d19ff1f1c1aff211f1dff211f1dff201d1bff201d1bff1e1b19ff1f1c19ff1e1c19ff201d1bff201d1aff1f1e1cff1f1d1bff1e1b19ff1f1d1aff201e1bff211f1cff1f1d1cff1f1c1aff201e1cff1f1c1aff211e1cff221f1dff23201eff262220ff23201eff23211fff23201eff23211eff23201eff242220ff23211eff252320ff23201eff211f1dff201e1cff221f1eff211f1dff24211fff272421ff252320ff24211eff24211eff24221fff272523ff292724ff262422ff282522ff272523ff282623ff2a2724ff2b2825ff2c2a27ff2a2826ff2b2826ff2d2b29ff2c2b28ff2d2a28ff2c2b28ff32302fff302f2eff302e2cff2f2e2bff2e2b2aff31302eff30302dff32312eff343230ff333230ff33322fff3a3835ff403e3bff514c49ff514e4bff58544fff4e4947ff413d3c9bc48144ff1d1a17ff1d1b17ff1d1a18ff1c1a17ff1e1c19ff1b1916ff1b1917ff1c1a17ff1d1a18ff1e1b19ff1f1c19ff1f1c19ff1f1c19ff1f1d19ff201e1aff201d1aff221e1cff23211eff252320ff262320ff282422ff282623ff2c2927ff2c2a27ff2e2b28ff2d2a27ff302c29ff322e2aff2f2c29ff312e2bff312e2bff34312eff34302eff34302eff383432ff33312eff33312dff332f2dff33302dff34302eff34302eff35312eff35322fff36322fff35322eff36322eff413c38ff635e59ff645f59ff504a45ff443e39ff413c38c43b37315f37322b442c282218201f1a162a26201d2f2b275c48423c774b463f6f45403a874e48419d504a43904d4842ff403730ff383029ff3b322bff1d1916efffffffff1f1c18ff221f1cff201c19ff1e1b18ff1d1917ff1d1b18ff211e1aff211e1aff201c1aff201d1aff201e1bff1f1c19ff1f1b19ff201d1aff201d1aff201d1aff211e1bff221f1cff201d1aff211e1aff221f1cff23211eff221f1cff23201cff211f1bff211f1bff211d1bff23201dff23201dff23201dff201e1cff24201dff221f1cff25211fff23201dff24201eff221f1cff221e1cff221f1cff211e1cff201d1bff221e1b4eea6c2d5be6682866c5501d7ecd60258ac05d2571a7521f5f91471c5070311247703514466a301094c2592359a04517ff23201cff25201dff25211eff25211eff25221fff25211eff24201dff25211eff25221eff25211fff282521ff26231fff2a2622ff292622ff292522ff2e2a26ff2b2824ff272521ff262321ff282522ff272421ff292622ff292623ff292623ff2a2725ff2b2725ff332f2cff49423fff665e58ff625b54ff4c4642ff33302eff332f2ced352f2e77322f2a5d35302a3728241f181e1c191c26231e172c2823182e2b27373f39346b4b46417348443e6b443e3b6d46413d854c4742934e494487514a4485504a467f554f4bff70685fff3e3830ff39332cff38322cff1e1c19ff201f1bff1f1d1bff201e1cff201e1bff1f1d1bff1e1b19ff1e1c1aff1f1d1bff1f1d1bff201e1cff201e1cff211e1cff1e1c1aff201e1aff211e1cff242220ff221f1dff22201dff221f1cff22201eff221f1dff24221fff24201fff24211fff211f1dff252220ff221f1dff24221fff23221fff242220ff22201eff221f1dff23221fff211f1dff22201eff24211fff22201eff23201eff242220ff262321ff242220ff232120ff262321ff282623ff282522ff282523ff292724ff292623ff2a2725ff2c2926ff302d2bff312f2cff32302dff2f2c2bff2e2b29ff322f2cff2f2c2aff2e2c29ff32312eff32302dff33312fff353231ff34312fff373432ff33312eff33312fff312f2eff32302fff312f2dff353432ff373634ff383634ff3b3937ff3d3a38ff413f3cff4a474499c9974dff1b1916ff1d1a18ff1b1916ff1d1a18ff1c1917ff1d1a17ff1d1b18ff1d1b18ff1e1b19ff201d1bff221e1bff24211eff23211eff26231fff24221eff282622ff2a2826ff2b2928ff2b2927ff322f2dff34312fff33312fff35312fff383431ff363230ff3a3634ff3a3633ff453f3dff393530ff393531ff373330ff3d3a37ff3f3b38ff3d3a37ff3e3b38ff3d3a37ff383632ff3b3735ff3b3735ff3a3634ff393633ff3b3734ff393633ff383431ff373430ff3a3633ff3b3734ff3a3835ff322c29ff68615aff6a625aff686159ff4e4a43ff4a4640ff46403c4f2f2c285c36302c171c1a1629342f2a222e2a252e39342d7d4e483f864b453f7044403aff49403aff3a312bff39322aff1e1a16fe282522ff24211cff161311ff1f1c19ff1f1b19ff1f1d19ff1d1a17ff1d1a18ff201d1aff1e1c19ff23201cff201d1aff211e1bff221f1cff211e1bff201e1cff211f1cff221f1cff23201dff231f1dff23201dff22201cff24211dff221f1cff25231fff26231fff24201eff26221fff22201cff221f1cff211e1bff24201dff201d1bff201c1aff221f1dff211d1aff231f1dff211e1bff211f1cff211e1bff23201dff211f1cff201f1b44e76c2946db63245fc8531d71c6592084bc5a237faa54216d954a1e7682421d64793c194e6d32107cb8501f549c4315ff25221fff282421ff23201dff242221ff282422ff292522ff292522ff2b2724ff292623ff302c2aff2a2724ff2a2723ff2d2a27ff2f2c2aff2d2a28ff312e2cff302e29ff302e2aff2d2c28ff2e2c29ff2e2a29ff2d2a28ff2b2927ff2f2c2aff2c2927ff2e2b29ff2f2c2aff2f2c2bff312e2cff2e2c2aff38322fff524d4aff5a544fff605952ff3f3c38ff3d3a36fe3b3734f73733305c352f2b472d282517191714151c1a171c302b2726332f2a2438342e4947413a8c514b43804b45416d48433e6848433d8a655d56ff57524aff49413aff38312bff37322bff201e1bff1d1b19ff1d1b19ff1f1d1aff1f1d1aff211e1cff201e1cff1f1d1aff201d1bff1f1e1bff1e1d1aff22201dff21201dff221f1dff22201dff24221eff23201dff24201dff23201eff252320ff24211fff24211fff221f1dff211f1dff23201fff24211eff221f1dff211e1cff1f1d1bff23201eff211f1dff24211fff23211eff21201dff22201eff252220ff24221fff23221fff262321ff262321ff282523ff282523ff2e2b28ff2a2725ff2c2a27ff282724ff2c2925ff2c2927ff292826ff2b2928ff302e2cff33302eff312e2aff343231ff383432ff332f2cff322f2dff343230ff383432ff36322eff322f2cff2d2a28ff343130ff383634ff32302eff393634ff383633ff353532ff353632ff363532ff363433ff333230ff383634ff3c3938ff3b3837ff3e3c3aff3f3c3b97c69d4fff1d1a18ff1c1918ff1d1b19ff1e1d1bff1e1b19ff1d1b19ff1f1c1aff1f1d1bff211f1cff23201dff25221fff292522ff282422ff2b2824ff2d2a26ff32302dff34322fff363331ff3b3936ff403c3aff3f3d3cff3f3b37ff3f3b38ff433f3dff44403eff44413cff4f4a46ff48433fff423f3bff3e3a37ff423f3cff413e3bff42413fff43403dff423f3bff403c39ff3e3a38ff3f3b38ff3d3937ff3f3b39ff3e3a37ff3e3a36ff3b3834ff3b3834ff3c3935ff403b39ff3b3734ff3a3633ff383431ff383532ff35302dff37322fff716962ff6f6860ff554f48ff4b433dff443e38ff3f3a366b312d28281f1e1a2523211c282b27221f2e2a26433c3934ff4b443eff37302aff3a3029ff1d1815ff1f1b18ff1d1a17ff1f1c1aff1f1c19ff1f1c18ff1f1c18ff201d1aff201e1bff1f1c19ff231f1cff24201dff23201dff211e1bff201e1bff211e1bff231f1dff221e1cff24201eff221f1dff221f1cff231f1cff23201cff25211eff26221fff25221fff24201dff24201dff24211eff24211eff24211eff221f1bff23201dff23201dff25211fff25211fff23201dff24201dff23201dff221e1cff211e1cff21201dff23211fff22201d33e063204ad45b226ad05b1f8ad162259bc4612791b059257591481f6f80411b7084461d5470361272b24c1b57a14616ff25211fff252320ff262320ff272523ff2b2724ff2d2b27ff332f2cff322f2bff33312eff393633ff35322fff34312fff302e2bff32302dff32302eff312f2dff33312fff312f2cff302e2bff312e2dff312e2cff302e2cff2e2c2aff2f2c2aff32302cff2e2c29ff312e2cff34312fff322f2eff302d2cff312e2cff2e2b29ff312f2cff34302cff4b4542ff615b57ff5f5956ff44403dff3c3733ff3b3531ff37332f612d29254f2f2b281f1b1a17151615131726231e252f2a271d342f2b32413c384e47423c71534e48ff554e4aff423c36ff36302aff38302aff1f1c1aff1f1d1aff1f1d1aff1e1d1bff1f1d1aff211f1dff201e1cff22201dff1f1e1bff211f1cff1f1d1aff221f1cff221f1dff211f1cff23211eff22201dff231f1cff24201eff262321ff262220ff24211fff24211fff252220ff24211fff252220ff23201eff23201dff23211eff232120ff272421ff252220ff252220ff24211fff23211eff221f1eff252320ff262522ff272522ff272524ff292624ff282523ff2c2a26ff2e2b28ff2f2c29ff2f2c29ff2d2a28ff2b2a27ff2e2d29ff312f2dff2f2d2bff312f2dff2f2e2cff322f2eff333232ff34332fff3a3734ff383635ff363433ff32322fff3a3937ff393635ff363532ff353331ff343231ff383734ff353635ff333230ff343331ff393836ff3a3938ff3a3838ff383635ff393836ff373634ff3d3b38ff413f3bff3f3d3a9ac7a150ff1f1c1aff1f1c1aff1e1c19ff201e1bff201e1bff22201dff24221fff272422ff2a2724ff2e2a27ff332f2cff393531ff3d3834ff3c3834ff3f3c39ff41403dff42403cff474542ff4b4743ff4a4844ff4d4845ff494541ff4e4a46ff4f4a47ff544e4aff524d49ff57514dff4e4946ff474440ff4b4643ff4b4743ff4c4742ff4c4844ff4a4643ff45423fff433f3cff44403eff423f3dff46403eff474240ff484341ff3f3c38ff433f3cff423e3aff433f3cff403c38ff403d39ff413d39ff413e38ff423d3aff3e3a37ff3b3734ff3c3936ff302d2aff504a43ff6f665eff5e5951ff4c4741ff48433eff433e39bc3d39347837332e37211e1b1b23201cff453e37ff352c26ff372f29ff1a1613ff25211dff161411ff1d1917ff1b1816ff1e1b17ff1e1b18ff201c19ff211e1bff211d1aff23201dff211f1bff24201dff221f1cff211e1bff211e1cff1e1c19ff221f1cff221f1cff221f1cff221f1dff22201dff24201cff24211eff231f1dff23201eff221f1cff211f1bff22201cff221f1dff23211eff221f1cff221f1dff272420ff2a2724ff25211eff26221fff25211fff24211eff25221fff24211eff24201dff23201dff24221e3bee6d284de1632563c9541d93d164269bc3622895b05b27879a4f22918a49216c7f401b4e6f331086b853205e9f4517ff282623ff2a2724ff2d2a27ff2f2c29ff322e2cff35312eff3b3734ff3d3936ff393733ff3b3835ff3e3b38ff3b3936ff393633ff373431ff393533ff3d3a36ff3b3735ff353330ff353230ff373330ff363230ff363230ff393533ff363331ff35322fff373531ff393533ff353230ff373432ff34322fff34302eff32302dff33312eff34322eff32302dff302d2bff322f2dff3c3835ff46413dff58534eff524f4aff433f3cff3b3835ff3a3632b0322e2a7435312d5f2f2c292d1c1a18191e1b19262f2c2718302c26ff68615bff3b3630ff332c27ff37312cff1c1a17ff1e1b18ff1f1c1aff201e1bff211e1bff1e1b19ff211f1dff211f1cff221f1dff211e1cff221f1dff1f1e1bff1f1e1bff1f1e1bff22201dff221f1dff23201eff24211fff26221fff24201fff25211fff24211fff24211fff21201dff23201eff262522ff23211fff211f1dff262321ff2b2725ff292725ff262320ff262321ff252220ff252320ff262321ff282523ff282523ff292724ff292724ff282724ff2b2a27ff2b2826ff302c2aff332f2dff393432ff363330ff363432ff353331ff353330ff363534ff383634ff363533ff363432ff383736ff3d3a38ff393735ff3b3a38ff3b3938ff403d3cff403e3cff3d3b39ff3c3938ff393835ff393735ff3b3937ff3b3835ff3e3c39ff3c3a38ff393936ff3a3937ff3e3d3dff3b3b39ff3c3a39ff42403fff454240ff403f3ca2c79f54ff23201dff211f1dff24211fff272422ff292624ff2e2a28ff312e2aff35312eff383530ff3d3935ff46403bff48433eff4a4440ff4e4a45ff524e4aff514d49ff54504eff595550ff5a554fff59534eff5c5652ff5a5552ff5f5a56ff5c5753ff5c5552ff5e5652ff595450ff504b48ff4d4945ff524d4aff53504bff524f4bff56534eff4d4946ff4b4643ff4a4543ff45413eff474340ff4d4846ff4b4744ff474340ff484341ff44403eff44413dff44413cff413d38ff423f3aff45413cff44403cff433f3bff3e3a36ff3e3a37ff393632ff383532ff373430ff35312fff3b3732ff726a62ff746e67ff58504dff4a4340ff47413de7413b387937322dff39312bff342d28ff332d28ff1a1613ff231e1aff1d1a17ff1f1c1aff1f1c19ff1f1c1aff1e1b19ff201d1aff211e1aff231f1cff24201dff25221eff24201dff211f1dff23201dff221f1cff211f1cff221f1cff221f1cff221f1cff221f1cff24211dff211e1cff23201eff221f1cff23201dff211f1cff23201dff221f1cff24211eff24211dff292521ff292522ff272420ff262321ff292623ff282421ff272421ff25221fff272320ff26231fff25221fff26221fff25211e40f36f2865fa793489d860247ec2562196bf5c2686a24f228b9b4f2359783817627e411b4e6f341078af4a1d46943d13ff2f2b28ff312e2aff36322eff3b3631ff3d3935ff3f3d39ff474540ff47443fff3e3a37ff403c39ff43403eff3f3b38ff3b3735ff393634ff3f3b39ff3e3c39ff403c3aff413e3bff3f3b3aff3e3a38ff3d3a37ff3e3b38ff3c3836ff433e3cff3b3835ff3a3735ff373533ff373433ff373531ff383633ff363330ff353330ff34312fff33312eff33302eff312e2cff312d2bff2c2a27ff2b2927ff2d2a28ff2f2c2aff3c3935ff58534eff5e5953ff4f4946ff383432ff3a3633f336322f7a322f2c6b33312e3c221f1cff6a645cff332e29ff322d28ff332d29ff201e1bff1e1b19ff1e1c19ff201d1aff201d1bff211e1bff23201eff23201dff22201dff22201dff211f1cff211e1cff211e1cff22201dff221f1dff221f1dff211e1cff24211fff23201eff23201fff242120ff24211fff221f1eff23211eff242220ff211f1dff272522ff24211fff2b2926ff2a2825ff292624ff292726ff2a2825ff272421ff282522ff282522ff282623ff2c2927ff2a2825ff2b2826ff2d2a29ff2d2b29ff302d2bff312f2cff32302dff363531ff3a3735ff3a3733ff393734ff3a3735ff3c3937ff3d3b38ff3c3937ff3c3b3aff3c3b38ff413d39ff3e3a36ff403f3cff413f3dff42413eff41403cff403d3cff403d39ff413f3dff3b3837ff3a3736ff3d3a39ff43413eff403f3bff43413fff3f3e3cff3f3d3cff3f3d3cff393936ff3e3d3bff403f3eff413f3d95c68e4bff272320ff2e2b28ff312d2bff36322fff403b37ff44403bff47433eff4b4842ff4f4944ff534f49ff564f48ff54504aff5d5953ff5d5751ff5a5651ff5e5b55ff63605aff66615cff645f5bff65605cff635d5aff66605dff665f5dff68615fff6b6462ff5c5854ff5a5551ff56524eff585450ff54504cff5b5852ff585350ff524e4aff4c4844ff4c4845ff4d4946ff494542ff4d4946ff4e4a46ff46423eff45413eff45423eff46413fff44403cff45413dff45413cff47433eff48443fff423f3aff403d39ff423d3aff413d3aff3d3836ff3a3732ff383331ff36312fff35322fff393532ff312d2aff605852ff6c635eff6a615cff514b46ff4a4441ff352d27ff352f29ff37302aff1a1714ff181613ff201d1aff201d1bff1f1c1aff201d1aff201e1bff1f1c19ff211e1bff231f1cff24201dff23201dff24221eff23201dff22201dff23201dff22201eff23201dff201d1bff23201dff22201eff211e1cff272320ff23201dff23201dff23201dff22201dff23201dff24211eff24211eff26221fff26221fff25221fff272422ff282523ff292522ff272421ff24211eff25221fff272320ff262420ff25211fff26221fff27242149fa722a7bfe77317dd95f2274c0552078b8592387aa57267c974d1f7781411d8387461e526d33115fac491b41913c13ff37342fff3d3935ff423e39ff47413dff47433fff484541ff4a4744ff4c4946ff494644ff4e4a47ff4a4643ff44413eff433f3dff413e3bff433f3dff464440ff45413fff433f3cff3e3b38ff3c3836ff423e3bff433f3dff423e3bff433e3cff3d3b38ff3a3734ff393633ff3c3836ff3c3b36ff3d3b37ff383433ff393733ff373532ff383532ff34322fff35302dff33302eff322f2eff312f2dff2e2c29ff2b2826ff2a2726ff2d2a28ff2f2b28ff322e2cff4d4843ff55504bff544f49ff403d38ff3a3733ff33302cff635a53ff312c27ff36302bff36302bff211f1dff1f1c1aff201d1aff1f1d1aff1f1d1bff1e1c19ff1e1d19ff231f1dff24201dff23201eff211f1cff23201dff22201dff211f1dff221f1dff23211fff211e1cff22201eff22201eff24211fff262321ff23201eff22201dff24211eff22211eff23211fff23211eff23211eff262321ff262421ff282625ff272423ff292624ff282623ff252320ff272422ff2c2926ff2d2a28ff2a2826ff2b2926ff312f2dff33312fff353331ff3a3835ff3b3a35ff3c3b37ff40403bff3e3b38ff383935ff3c3934ff3c3c38ff44423fff413d39ff3e3b39ff403f3cff43423fff423f3dff474341ff43413eff403e3cff474442ff43403fff444140ff494644ff3f3e3bff413e3dff3f3d3bff403d3bff3c3938ff43423fff403e3cff3d3c3aff3e3d3aff3d3c3aff42403eff3e3d3bff42403f9ac78549ff3a3632ff3e3a36ff433f3bff4d4843ff504c48ff56524fff5b5753ff5f5a57ff6a6561ff6d6964ff6a6560ff6b6762ff686562ff67645fff6b6764ff6b6763ff6d6965ff696662ff696461ff64605dff605b5aff615d5bff5f5b58ff5f5c58ff5f5a58ff5e5b58ff5c5955ff5a5653ff5a5754ff57524dff534f4cff4e4a48ff4d4946ff4c4945ff4f4a48ff4d4a46ff4d4946ff484542ff4a4644ff484541ff494542ff4a4642ff45413eff45403eff46413eff423e3bff423f3bff3f3c38ff3e3937ff3d3a37ff3d3937ff3e3b38ff3d3936ff3c3834ff393531ff393532ff383432ff34322eff35332fff36332fff322e2bff4f4944ff6b635dff6f6761ff372f2aff36302aff362f29ff1a1714ff201c1aff1e1c19ff211e1cff1f1c19ff1f1d19ff211e1bff221f1cff24221eff22201cff221e1bff24201dff23201dff23201dff221f1cff22201dff23201dff23201dff221f1dff211e1cff24211fff24211eff24201eff25211eff24211eff221f1dff24211eff24211eff24211eff262320ff2a2622ff282623ff25221fff282522ff292623ff26221fff25211fff25221fff272421ff25211fff262420ff272420ff26231fff26231f46f86f2b78fd783177d05b226ec058216baa4d1e7ba350216089421968793b1869793b1945632c0f80b34d1e50923a13ff47423eff4c4743ff4a4642ff524d48ff504c48ff4b4844ff4f4b49ff4f4c49ff4a4745ff4d4b47ff4e4b47ff4d4947ff4d4946ff4f4b49ff4b4745ff494440ff474441ff44413eff413e3cff3d3938ff44403eff474441ff464140ff413e3bff423e3cff3f3b39ff3e3a38ff423f3bff3f3c38ff3c3937ff3b3836ff383633ff3a3734ff353330ff353230ff33312eff33312eff353230ff33302eff312e2cff2d2a27ff2d2928ff2c2927ff2e2c2aff2d2b29ff2c2b27ff2e2c29ff302e2bff45403dff524d48ff56514bff4f4841ff38322cff342e29ff332e29ff201e1bff211e1cff1f1d1aff211f1bff201e1bff201e1bff23211eff22201dff211e1cff221f1dff22201dff22201dff211f1cff211e1cff23201eff23201eff22201eff22201eff22201eff232120ff242220ff242220ff262321ff252320ff23201fff252220ff24221fff252320ff282623ff272522ff262320ff2b2826ff292725ff292623ff252220ff292623ff2d2926ff302d29ff2f2c29ff2f2e2bff33322fff373532ff393735ff3d3b38ff413f3dff3c3a37ff3c3937ff403f3cff403d3aff474541ff464641ff43423dff474542ff444240ff484541ff4b4846ff464442ff4a4845ff484543ff474442ff484543ff43403fff454341ff44433fff464441ff464442ff474342ff484743ff454341ff474341ff423d3bff3d3b38ff3c3a38ff3d3a3aff3f3e3bff444340ff403e3ca1c78b4fff46413cff4c4842ff524d48ff5a5552ff5e5a58ff625f5cff69625fff706c68ff716d69ff75716bff726d69ff6e6966ff726c68ff6c6865ff6d6a66ff716d6aff706b67ff65635eff66625fff676461ff63605dff635e5dff67605cff635e5cff5d5957ff5c5855ff595552ff5b5755ff4f4b48ff4d4a48ff504d4bff534e4aff504d49ff514e4aff504b48ff4d4946ff494543ff4c4845ff4e4843ff4b4843ff474340ff433f3dff423e3bff423f3bff3f3b39ff423e3bff413d3cff423f3cff3e3b3aff3d3a38ff3c3936ff3d3b37ff3c3934ff393733ff3b3734ff3a3833ff383532ff3b3734ff373430ff37332fff37342fff36332eff383531ff4c4742ff3a3630ff362e29ff342d28ff191714ff1d1b18ff1f1c19ff201d1aff211e1bff201c1aff201d1aff1f1b18ff221f1cff26221fff25211fff24211eff221f1dff211f1dff201e1bff211d1bff211f1cff22201cff221f1cff201d1bff221f1dff22211eff23201dff25211fff252220ff24221eff262421ff25221fff25211eff25221fff24211eff25221fff272320ff25221fff25211eff25211fff26231fff26221fff272420ff272420ff25231fff262320ff24221eff2623205bff762f5eea682876c857216cb44f1e64a64b1e6895451c7086421a527438175c6f3415405c260c73ae491c60a14819ff4e4846ff4b4743ff544f4cff5a5551ff524f4cff4e4b48ff54514fff52504dff555250ff56524fff575350ff4f4b49ff4e4c49ff4e4946ff4c4846ff433f3dff423e3cff43423eff484642ff46423eff45433fff413f3cff444140ff413e3cff413e3bff3c3a36ff3b3935ff3d3a37ff393634ff363431ff353330ff353230ff383634ff383634ff363433ff33312eff333132ff32302eff302f2cff2f2d2aff2f2d2aff2e2c2aff2d2a29ff2f2d2aff2e2b2aff2f2d2bff2b2927ff2c2b29ff2a2927ff2c2b28ff3d3a37ff47403aff403b35ff37312bff332d28ff221f1cff201f1bff25231fff24221fff25211eff23201eff24211eff24221fff282622ff272421ff292523ff272421ff272321ff262321ff262422ff262422ff25221fff25231fff23211fff23211fff222120ff24211fff252220ff242221ff232221ff252421ff272522ff262321ff282523ff272522ff282523ff2a2725ff272522ff23211eff262421ff262421ff2b2825ff302c29ff332f2cff33302dff363330ff383532ff3c3936ff403e3aff44423eff44413fff474340ff44413eff43413dff46413dff494743ff494944ff48443fff494542ff4a4542ff504c49ff474342ff4d4b48ff4f4c4aff4b4946ff484643ff4a4746ff494744ff474543ff484543ff524c48ff474543ff474443ff474442ff454241ff44403eff373433ff373534ff403f3cff423f3cff41403dff42413e91c78449916b686269615f5a8c6a6864956e6b66bf787671cb7d7b76fe8c8a84dc817f7bfd857f78ef716b64e8655f58fe5b534cce4b443cc048423add4e463fc549433c993f3a34cd46413ad148433d7b433f3a5247423ca6504a43a6524b45a24c474078443f3a8e48423c9f4c453eb34b443ee14e453fd64f4841fd675e55eb62595270595048665a534a8c615a52ff726b63e26d665fdb68635da5625d57dd69655fb8635e59a15f5a547357534d5458534c4955504a46524c4663544e47db605952fa625c54db5b554efe605952ff645c54ff605850ff605850bc585048fb625951f05c544cb2534b45c457504898534c447d50494180534c439c59514998554d46a5544d45ab504a43cd57514ab94f4944744540399a4a453dc74c47408746413a2839352f103a352f483c38324f403c355e403b346a3f3b344a403b354b3d383355413c368b4a433c8a48423ab54a453ea84c463fb1504a42a54f4941b7524b439e4c453eae4e463e944a433b7c4b433b7048403852443d346b48403874484037974d463c9b4e463ed1554c42ad4d463ed7544c43cc4f4840d7534c44f9544c43d04f483fc64c443be04c433acc4239319a373029d7463e36e152494070ff863c72f570306bc858206baf4e1f5ba24a1d6992431c5c7b3917536a2f13576930123a57230b6fb04a1c69ab4e1cf4a09a9582878078627a726a5e6f6861ec7f766de0756b62d7695f5689625850bb6c6259ca71675f996e645c7d6d645c7070665e3e69605b49695f5943665d566b6e645dc9796f67fa7c726bdd766d65f3796f67f97b7069f2776d66f7786e66b670675fdb766d65d36f67609b645c57af67615989615a52765d574f6f5c564d80625c54865d5750935d5750a858544d9757524da757524e8b54504a64514d47c55d5852ae5a554f2b4945401445413d2b4a4640424b4842414a47415647433f614744403a48443f5d45413d504a4540624d47427a4b4640a24b4741a04d4843ba514c47af4d4843c24b4843a5413f3bbb44413cab43403b89423e3975403c375c3d393467413c3772453f389c4f48409f524a42c65c5248a2544b42c65b5046b3544a42dd5b5048fd60554dee5c534ae25d544cc05e544dcb5f564ea64f49419f4c4741e3575048e5585049604e464071554d45a15b5048a35b50489a574e4772534c468758514c9c605a55af655f5bdb6d6763ba6b6662e47f7976c477716d7e726b664f6b645d4266615bc078736eb879756faf77726c70726e68a07b7771a6807d787f7e79746a7e7b765d827e78317b7976357a76723174716c577b7771997d7b75b87d7b77af7d7a75be817d79c1827f7aba817d78bd837f7a8c807b75ab85817da37d797576736f6c8c7875706c75726c60706e6954706d67647875706972706b7976736f88706f6b70706e6b75d9a35e5254514dc1716c66bc6f6964a96d6862d377716cde7f7973fb837e78ff868079c36b655eb15b554da54f4840ad49423ab2463f38d14a443cc64e473ef5534c44d64a463fc54b453fcb4e4942ed554f484847413a9e514b449e514a43a4504942ac4c4740c24f4842cb504942c44e4740ff60564eff645b52e85e554daf585149c960584fce665e55d6686057e76b625af96d655cb8605a52d3635d57fb69625adb665e55ed6a6259d0625b52c8635a52dc655b52ba5e554ced61584fff655b54ff645b53ff675e55ff6b6157ff6c6258fc5e564deb595249db595249fd5f584fca5a5149674a433d9b554c456d4c443d32464038554b443c95544b43bd5c534bc4575047a4524c44b6514b43af4e4841a94a453c714440389747423bbd4c453ebc4d473fc14c4740e5524c44e34e4941f4524b44e4514a42c14c453fa0464139c14c463eb34c463dd7514a43c5504a41c3524b438a504a41a8554e45a2524b42bc554d44ae544b42c6544b42b1564c41ad51483f48403931a950483ea34c433b914b423bca534a40b4514840db544c43d5564f46b2504941a24b453db04b443cc74a433bc1463f37d9443c33bf40382fff473e35dd474038de544c4467fe783260eb6c2c6ec4552065ae4d1e6ca1491e4f8c3e17477634135d6d3115636730143f55230b65ae481a74b1501beba9a29cd49f9890d6968f85bd8a8177cc84796fe0796e63eb71655bc5695f56be6a6158ee74695fca70655ce67e7369b5746960cc7c6f66d57d7166866e635ad87a6e65ef7d7168fe82756dff81766dff877a71ff867b72fe84786ffa796e65d7726860dc766c63d7736a62ad6a625b695b544d93655c556159514b2e524b44525750488a5f564fba6a6159b6635c54945d574faa5d5750b15e5851ae5b554d70544f489258534cae5b554fc2605952a158534edf5f5b54e15c5851e15a554fce55514cb1534e48a24f4a45ae4f4b45964f4942b5514b45b3524b45af504c45a6524d46994f4a45b14e4a45c0484641cc494642b9484540db4b4642c64c4741b546423d50393530b84c473faa4d453f9a4f463fd05c5048c6605349df62564bee675a50c560544ab05a4f45a6584d43c65d5249ad5b524ae2635a51ce665c53e4676057ff6b635ab95a534cc9615950e9675e54a862564d875b5047b46459509d62574fba635b54c5645c56c467605bd06f6862d4746b65ff89807ad178706bd37f7670b0776f699f726b6498746c65a7787068c27f766fc9817971a07c766f977d7872c987817a97817d75c0928d879789847d998e8881a38a857d73817b73a2847e77b885807bcc8a847fd088837eef8e8984fd8f8b86d58a857fba837e78a1807b76ae827e789b7876717f76726d566d686569706c67486865612665625f416c686268706d699c7b79748376747068d69b5b7859524ea0645e58a569635ccf777068ea7a746c89615c55b06c665eb96b645bbb605950ba575148c350483fc1484138e54f463dff585047da534b43aa4a443c85443f38d0514a43c4534c45b2534d46724f49418c544c44715048406c4c453d7f4c443dd1554d45ff5f554cff6c6157ff665c52f75e554dde5a524a9e544b44e7635a51c15e554cbd5b544bbe5d564eae59534b9257514ab85c544ec55f574fb560574f8d5850485a5149415e4d453e724d453d2b433c3536423c355c49423aad544c43fa5e544aff6a5f55ff5e544aff635a51ff625950ff5c554cd9584f47b7554d45f95e544bfe61574ebb5a50477650473d724e453d96544b42d35a5148f25d554cc9575047dc585147ff60594ffe585249df524c44bb514940b64f4940d7544d45f55a534ae1585148fd595249ff5c544bff5b5349ea5a5249e1564f46d8534c43ea574f46e5575045ff645b50fd63594ef363594edd62584da0514a40c85a5046dd5c5248ea5e5449cd594e439f4f463c73473d36a852493fce5c5146d75c5247fd63594da350483ebc564d43bc574f44c2574f46bc544d44c64e473ed24c443bf84d453bff50463dff473f35c4413831a5433c34d9554d455bf6763271ee6d2e6bc054216cab4c1e5399441a638c3f194a7734147070371958622b124155220b75bc53206fb3501bd894918c998b878091867f77ed958d83db8a7e74d27d7167bd6b6158c86a60579c645b52ca6f645bd5766a5fd37b6e63986f645a69685d546b6359516c62585139574e4730564e465b5e554d8f685e56eb7a6f65fd84776bff8e8074ff82756afc81746bff7f746aee746b62c870655dee746961fb766c62f9746a6094635950685a5249865f564d9a635a50d36a6058f46f665db0625b53d1675e55ff6e665df1676058c95f5851b65e564ea25b554dc1605952ec675f58c2605952ce5e5850ef615a53e85b544dce5c554dc2575149d25a534ba9534d45ce585048c0554f47f25e574fe65b544df159544cc44e4a4498413f3acc4a4642c64a4641f3504c45af46403a92423d3687443e39a44d463fb9584e46bf5c5147f46c5e52a35c5045b3605348ae605348b0625449cb665a4db65e5348d8655a4ee6685d52ff74685cff72695ec8696158b3605850ad61584fd96b5f55f174665bcd7062577563574d7b65584f8564584e655e554d74625951e5776d65ff837971ffa2958cff8c8179fc90857dcb7b736b94736962c07d736abd797169aa7a7068b87e766ea17b736c7a756f688d7f79739b847e789e8f89827b8a837d52827d764b7b76704978736c3a6e68621c69645e3a6e6a625677726b8e827d76cf8c857bfa979188dc8e887fe18c867fdd89837db87f7a75957e78728275706abd7b7671bc78747084726e6a616e6b654c696460666f6d687977736f74d89258b0645d54e17a7166de786e64ab665e56a6696159b16d675fdf736a61ed6a61579751493fd45a504699484037df4b433bf6544d45c64a443d94453f3971423d359448423cb14e4841f85f5750ff6058506d524b43ff6a6057e85f564cd35b5248fc60564cfe6b6057ff585047ff675c53ff655b51f4584f46fa5e544bf95e554ce35d544bf7615950d55d554dbe574f48b3564e48bc5a524ad15d544ca55a5149a5584f46b2584f468450483f8c4e453dc9554c43bc51473e73483e3686493f36db544940fb584e44ff5c5249fd574e45ff5d534bff5c544cfc554e46ce514941fe5f564dff655b51e65a5047a8544b42af564c42d5594f45934d453afb595248e7554d45e6595147fe5e564bf65a5248ff60564cfd5b5348ff5e564bff635b50ff655c50ff655c51ff5f574dfb575046f3554e45fe585047ff5c544aca544d43a24e473ec4534d43f75d564bce5a5249e25e554bd75d544bfe655b51fc655b51c25c5249f15f554bdd5d5348c5594e4576463e359a4f463dca5a4f44ec665a4dec63564bba544b41bf574e44b6584f47ee665c50fd685e52b650483eee5a5046b2484038fe4d443bff4b443cea3f3831a73c352e7e3e3730a94f473f75fb77336ae76a2b60bb541f489d40154f954018648d401b6d7c3817626d351751652d123f55220a6cb24b1b55a94818f698928bbe8f8a82e6958e84eb938b81c5847c75fd94867ddc7a7067c4736760bd71665ebf766960df7d6f669973675db275695fbc73675d926a5f569a645951ba685e55b66559528a61564da2645950b26a5d55f0786b5fff7d7065ff807368ff7e7167ff82766bff7b6f66fd71675dae615850ff766c63ff7d7369fb6f645bab625951b2645a50e36c6156b261584df3696158cb615850f96f655bfb6d6359fc71675cff71665cf46c6258fd6c6359fe6c635aff746a60ff70665bff6d645bff665d55df59514add59524be159524afa5e574eaf564e4599524b42b4554e46d85a534ccd57504ae055504ad8504b46f6514e49f5514d48bd4b4742f74f4b45dc4f4a44c34b46406f3e3934944b443ec1574f46de685c51e76b5d52b25e5249b562554bbe695d52dc6e6055eb6d5f5399594d41d76a5d51975b5146fd6d6257e5696258db645e559e5f574f7c574f469361594e955f544acf6c5f55ff7d6d61d778695d8a6d6055ff837368cb75675ce9786c62fe84766cff9f9085fe867b72ff998c82ff96887eda82756cee85796fec84796ec27c7269ea867a72b981776fa97e746d9e7e756f96847b73b58c837d848b837d988d857e978a837b7a847e75787b756e99817b73937c746e67797169727b736a99867d76dc8f887ef1968f85ef908880e88c847df58b857ee4837d77ba79746ea4726e6ae47f7b76db797673b476716e7f6e6b687d706d679c75736e74d49559ba645c53b7645c53bb625b52c2645c53e06b635abc61584fd9635a50fb635a51f161584ee4564d4596433d37bb4c453eaf48423b8b433d379847403964453e37844b453eff60564eff685e54fe695f55424c443cf1635a50f3645950ff74695eff5f564df55a5148ff5f554cff544b43fe594f48ef564d44fa584f46e2574d45f7595048fc5a5149f85b5249d5544d45ff5c544cff5c534be95c5249f55e5349fe5b5148e5544a41f1554a41d351463e9b494038a1493f37b44a4037f452473dff564a40ff605449ff595046fb564c44f8514a42fa524b43ef514942f2544b44ff5d524aff5e534afe5d5349f75d5248fd62564bff665a4fff62584dff62594eff61584dfc5d554bef5e564bec5b5349cc524c42f05e554bf960574dff61584eff645b51ff685f55d7534c43ee575047fa5a5349fa5c544acd514b42a54d473ed8544d45d6595148f761594ff55e564cfb60584f95504840f5635a4fef60584de860564cb6584f46bb5a4f459d554c439a4f473eba574e44f361564bd45b5147aa534a41dc574e44c4544b42c5564d44fc62594eff675d52ff5f574eff5d544af9504940bd433c36ef494039c33c352f9038322c97423b337348413950ed6b2860e4692a51b7501c51a44518559a471b7193451c6e823d1946672d105e642d114255230b71b24b1c51a54316eb8c8883cd8b857ef4938d84d38c847cfd948a82fd8f847cf8857b73f9897e74f1847970ff897f76ff8d7f78fa908379ff918279ff8d7f76ee7e726aff82756cd6766a62b96f635baa6a5e56b86a5f55ee72665dff7a6c62ff82746aff827569ff76695ffb6b6156fd6c6157fa6d6258d3625950ff70645cff75675eff74675dff72665cfe6e6157ff72655aff73675bff74675cff73675cfd6d6257fb6e6258f26b6156ee6a5f55c35e554bef6c6057f26c6157ff6c6157ff6c6157ff70645bd65b524ae25c534aef5c534aeb5d554cc2564d44b4534b42bd544c44d45b5148d95c534be258514ad4534e47f854504bff54504bd44b4742e24e4b45c04b4741bb4f4a439748423c9048443e8b49433dd25c544bec635a51be60564d95595047d862584ebd5e534a9c5b5047f16e6256ff766a5dfb6e6259f46f6458f1695f55a7575049e7696058ac5a534c88544e47925a52496a5c52498c63584fff7e6d61ff8b796cff8c7b6d6c675950eb7b6d61f7827268ffa18f83ff8d7c71ff86776dff948479ff8a7c72fd877970e4827369ff887a6fd67f7267fb85786ef886796fdb82776ed9877d73de877e77ef8d857ef7948a85ea989088e9958c84fb958d85ca877f78df8a8179ba8079719c7d756e8a7b736a977d756cdf8d847bf6958c82ffa1988fff918980f6888079dd807972dd79736cc1746e69c776706ce679746fed7a7570de76736fd4757370dc7b77738ad98a5290544c449f5d534ade6a6054ea5f564ddc5f564cde5c534ae0595047d6574f47be5048408e48413979443d369949413a7a423c3597464038af4d453d9b4f473fb1544b42af584f46cd5b5148c05a5047384b433ae764594ff064584ff861564dfc5e534ae3554b44f6544b43fa544b43ff5a4f46ff5c5149ff5d5349ff5d524aff5c5249f9584d45f8584f47e6554b44b8504740ff5d5249fe5e5349ff5c5149ff584e46c951473fff62564cff5d5248fb5d5248e9514840de534840fe594e45fd5c5147fc564c44ff5c5249ec524b44e0504a42df504a44f2565049cc544d44794a423b8b4f463ea8564c44ee61564cea5d5248eb5e554ae15d544aef61594edf5f564dff665e53ef5d564dcb575148cf575048ce585148ff676055ff6a6157f360584ed7585149ff685f56ff655c54fc605950dc565047ea5a534af25c544cff645b51ff625a50fd635b51c5595249d25e554cc35c544a3c3e362ee15c544ace5e544ac65f554be862574bca584f45d95a5146814d443c89484138ce564d43c2574e43cd5d5248fe60564ce4554c43ff61584dda554d44f45c544bbf4c453dba49413a9f423b34b5443d35a63b352eaa3d3731cb484139a84b443c5aec6f3057db672c5bb9511d50a54618589b451a6f93441c8a8b441d666b31146a6931144558250c60ad46195bae4919e186817ce48d8780ff958e88f9999189fe9c928bff9d938bfe93877ffc938881eb8e837db6837972fe958981ff9a8d85fd958981f88c8078dc827770ff9c8f85ff968980ff93857cd7796e66a66c625aea776c64fd7e7269ff887b73ff7b6f66ff766b63ef70665edc685f56e26a6159fc70675d9e5e554c9c5d5249945a5047d4655a50f0675b50ee64584df5675b4fe565594ef56a5e52de675b50ff6f6256ee655b50c15e544ace5f554bce60564dff706459ff706559f46b5f53eb62574dff685d52ff6b6055ff675b50e65c5248e85b5147f05e5349db5c5147ff65594ffd60574ddc58514ab9524c45bc504b45ba4a474236322f2ad3494741c34e4944cb534d46de534c45bd4e4943d0544e477b4c463f814b443eb6585149a75c534ba662594ff06f6459d760564efb6c6357c15c534bdb625950d7665d54d5615850a95a524a86544d459c59524a82534d45ae5a534bcc645a51885f554cbe695e53c0706358db76685dd372645b8a655950b96e6258ff8d7d73eb7e7067ed7f7368d37c6e64f683756cff887a70ff88796ffe8a7b70ff908074fe907f74ff928175ff8c7d72f385766df78a7f76e1877c76a67e7570f9908981f6928981fb918880f68a8279d4847d74ff9c9388ff90877def92897fdf867e75c1837b72f38f857dff958c83f7888077ff867e76de79736ccb706b64bd6a6560e6726e68b76c676178635f5977625e598c65615dd875716d84d59e63974b423bf962564dee594e45d6544a41ce514840bc4e473fe7574e46dd564d45e7584f47d8544b43c3544a429a49423a6f40393265403a338349413a8b504840b1544c44b95c544bd55e544bef655a50b163574efe6b5f55ff6f6359f8665b52c85c534ae15a514aff665c54ff5f564eff675e55ff675e55ff685f56ff6a6057ff645b53ff685f56ff685f57fc635a52ff645a52f260574ee25d534bff6d6359ff6d6158ff6f6359ff6c6156ff665c53ff706359ff62584ee95b5048ec584e46ff63594efd5b544bff5e554dff5c554cf95a544bfa5d564fff645c55e05b534b53494039f060574edd61564eea655b51fb675d54d760564dcc5d554cf8675f55ff6d645be6625a50f4655d53d860584fe65f584ffc645e54ff6d655bff736a60ff756c62fd615a50ff6d645aff675f55fe645c53fa625a51fd60594ffc5f584efb645c53ff605951c2575048b3565047b3585148f5665d54f8696055fa645b51e6645a50c25d5349b4564d44cb574d44d25b50465a423b33824c433aab4f463ebf50473fff665a50ff63594ed0524940ef584f46de574f47f55c544bed564e46f3564d45fb534b42e94d453db73e38328639332d753b352e964740394ee2672a4ed8622553ba511b5aa9481958984218698f421a6f843c176b6f34156f6930134057240a62ac471952b04718f1827e79fc8c8983ff96918bff99938dffa19892ff978e89ffa39b95ffa39a94fe978f89ff998e88ff9a9087ad857c75ff9d938bffa59891ffa89a92ffa0948bff9d9088ff998c84d8877b72fc8f837bfd897c76ef7b726aff8a7f75f17a7169ff7d736aff797067f7746b61fd766c63ff786e66d76b61585a564d44e76c6158db6c6056ef72655afa716459dd695e54a75d5249e6695e53ff72655ae96a5d52e2675c50d8665a4ff7695c52f7675b51fe695d52ff76685aff6f6155ff746558ff6d5f52fc685a4eff66594dfe66594dfe64574bfe67594df7605448ff65594efa5e554cba534c44a64f4942ab4c4842f4534f4af454504beb504c47d7524d47bd514c45b54c4640c14e4842c1544e4759423c387249433c6e4b453ea7564f49e3635b53d9635a52f7685f56b3585149de605851c85d564ecc635b54eb686159db655c54ff6b625acb60595197524c457d4d463f754f4841985d554d935f564ec9685e56c56c635ae06b6157ff74675eab6a5e56ff796c63ff83766efe80746bcf7a6f66dd7d716aff90837cfd897e76ff8e827aff9d8f85ff9c8e84ffa19185ff96867eff998d83ff998e86fe90867ff58d847dff928981aa7b756dfc8f867eff9a9188ff9d9289ff9b9185ff998f83ff92897feb998d81fd938a7ff48e837ade857d73ff90877bf57e7870ff7d766df6746e66ed6d6860f06e6861fb716b66d069645f6358534dcf69655fc46a666280d68e56e35a5046c75b5147e15e5349934e4740a2524b42c45a5148db655b51dc665d53bc63594fb160574eca635950a75d534c84534c448f574f47955d554b8c5e554c845f564f8f605850d96b6158f570665dfa776d62fb817569ff81756bff766b62fe736a61ff6a6158ff6f665dfd71675efc6c635bf8696158f2645c53f8686058fa6a6159fa6f665cd7635b53ec675e55d5625a52b35c544cf6655d55fa70665cff756a60fc6b6158ff6c6258fe645a51ff6a6157fd62594fe05e544cfe655c53ff6b6259ff726860ff635c53ff635c55ff6c645df9605a53f4625b53e1615951684f4740f8695f56e7645b52e0615951ff6b625aff6e665bff6e655cff72695ffc6b6359c861594ffa6e645cfc6b6358fe766c63ff71685efc70675df9766c62fb6b635ab759524af2645d53b259524ac7564f47be554f47f95f584ff05d564efe605a51f3605a50ff655e55fa696258f96d655afa6a6258f6635b51e55e564cd260574d935249408b4d453c8649423ab35249406c423c349748403887464038f0544c42dd564d43f4584e44aa4c453db14d463dd8534b43f55c544af45b544ae6574e45c64e473ee04d453dcd4a413a823d37318e413a34ac4c433b65ff84375ce5692a43ad46174fa04117498f3a1453873a147b853e1a707336155b6930123956230a5ba9441844a44015ff837d77ff817d78fd86827de6837e79ef88837efb928c87fa98908bf8978f8ac08e8782d6908681f8978e88ec9a9189f9938b86f9a0968efe9f958dee8b837cff978d85fd8d837bfe958b83ef867c74d780766ff8867c77ff90857eff968b85fc817770ff7f766fff8b8077f37a7169f0786e65e5736961615d534bf1786d62e473665ddd71655cf070665dff786d62fe74695eff766a5ffc74685df8706459ce695d53fa76695dfd6f6357fc72655bfe77695dfd73665af9736459fa695d51ba5a4e44f266594cb35b4f44be564b40b5554a3ff45f5246ee5c5044ff625549e95f5449ff60574efc5f5850fa625d55fc58544ff7524e49e04f4b46e9524e479f49443e8d453f396b413c378045413b904b4640874a4640804b4640ba56514ae75d574fcb5d554ec15b534c7349443e9a524d46ba59524ccb625b53d1635d54cc655d54b55e574fd7605951c26058507d4e48428a524c46af5e564e78574f487458504a8c5d564fdf685f58ed6b615afb736962fa736a62fd887c72ff81776efc827870ec7d746dfc847a73ff8c827afa8e837bfb928780f58d827ae9887d75f590857df5958a81f7958a82bc898078dc8d837dbd867f78bc827c76e488837cfb999187fea0968cfa92897ffb938a7efd8e857afb91887de8867d72f38c8277e28b8276f98b8177ff8e847bfb746d65fd787169ff797069fd6e6862f568625cdb645e58a25e5954a6605954ea6c666085d29551a460584f745b524a8b63594f9c645b518f645b539a665d5488655d549a6860568a685f569f686058bf6d655c92655e5698665f578f655e5694645e56d5726a62cc736b63b86f675fc4726a618e6f675fb6736a62ff7e766cfe787068ff7a726aee706961eb6b645dff6f6962fc726b63af5f5954bf635c56a15d57527a58524d825d56517d5f58518e605a529a5e5851bd635c55a5605a52be635c54c1645c54c4625952c6665d54d8645b53b65e574fff6d655cf3685f57fa696158fe676057f7645d56ff676159f9615c55fa645e58b75b5650ac5b564f9a5650496b4f49427e544d46da635b53ff6c645bfe6c645bff6a6259ff6e655df5676057eb655e55ff686058ec635c53f1655e55f3655e55de625b52d15e584fe95f5850b5565049d85b554de359544cc8565149e6575149d7554f48d9514c45ef58534bd8534f47e0534f47d5524d46e9534e46944a453ee6544e46b04b463ea74e4840a14d463f8f4a443c5c433c347e443d367e453e37b74b443ca2474139ca49423abb49433bb94a433aa949423a68433c35894740399348413982453f389548413a7e453e3771433c3575423c348f403a33a9403a34753d3731813d3731773d373174fe81336ae96e2e4cb54d1949a144164f943f165e8b3d166e833b17476c32113f632a0f3355230a5ba843183c9d3c13ff77746ffe7e7a74ad6c6967ba76716e9a726d6c6f6e696870777170737c7772787e7974927e7974ac817a7699817b769f837c77b0877e79b3827974b8867c76bc877d76b8817770c0827873e1857b75e4837a74d47e7771f5817a75ff7e7772fd7c7571d6736c67cd726c669f6d665f986b645d85635b54635d544d7a635a51c16d635bfe756b61f9756b61f470675dff766b62fb71685edf6c6259fe70655cd3665d54e06a6057f06b6057d6675d54c9645a51d0635a50b45c534abe5c5249d75f554ac65a5046de5f5549ce5b5146eb5d5247ee5a5046f45d5347cf564d42de564d44d4554d45f7564f48a34b463ff7524d47cc484540c14a4742aa48443f9445413c66403a3588423c378245403bc04f4a449d4c4842cb4f4c478d4d4944ab514d47944e4b465e4b4742734e4a44804f4b45754f4a458b504b457f514c4584514c4577514c44844e4841ab524c459f504b45834e49437d4c4742874e4944a3534e49d75d5650ae58524dbb59534ea859534d8759524da95d5651f76b645ef06e6761ff756e69d26e6864bb706b66e7797370e07e78729d736d6ab17b736e89756e696c726a666a766f6a6e7b756e747d78708f7d77719c7c7772907d7771947d77709a7d786fa77c756ead7e776eaf827a70b07c746cae7e756ee5867d74d8857c73ca827b71d67e786feb767068f2726c65cb67625cbf635e599b5d5852925b56518255504b60504a4567524d488dce8b4e7f6d655c8a6e665d9a746c628b726a618c726a6197706a6190726a61a8776f67b778716ac177706894706962a5736d66c77b746dd77f7870d5817972bd7f7870b37d766ed1817972ed898179e2888079c27f7872f4837c75f7817b74fc7f7973be706a64db736f68d977716ac0726c66c7726d67b36d67628e625b5789655f59a369635e9565605abc6d6661d9716c65d7716b64cc6f6861da706861d76c645deb6f6861cf6b645dad676058e86f6860da6c645de469625bea6c645df469635bf969645ef068625db05c5751cf625d56b9605b55b25e5852ba5e5852d0615b55f967615af0656058dc635d56d8645d55f46b645bcd655e56da655f56dd666058e2666158fb69625ad5625c54b65f5850e8625d559959534b9b57514bff625b54fd5e5850c5555048ee57524bd5534e48c04f4a44aa4c48429548443fd7514c47be4e4a43ae4b4640b34e4942b44d4840bb4a453eaa49433c8448423bb74e4840d05049419c48423aa4484139944b443bc94e48409f4b443cae4e463e814941396a4a423a654840387149423a804c453d774c443c814e473f7e4c453d854a443c894b443d8649433cb34a443d8f453f3990453f3983433e37a14640396ff275305de26a2949b34c1a5aab4b1b5f9f481b5a8d3f1774863e19496b30104f662e112f53210965ae471953a03f15c8686560d2716c67ba716e69c077726f95726e6c806f69677575706d8b7a75727c77726f977f7877b1837e7bb887827fa5857f7cb0857f7bbc867e7ac887807caf857c789280766fa7817a74d488807bd0827a76cf817a75bc79736fca76716ef37b7572b9716b67956b6560a56e6862a96f6a636e625b549a676059b56c645dde726b62cd6e675fd36e665dc56e665ce1726a60be6c645bcf6c645bce6c635bbf686158f16e665ebc655e55cc685f56da665e55af6259508c5d554cf7665d54fa665c52ec63594fd660574dfe645a4fce595047d05950479b504840bf564d45e2595047b4524c43bd544d46d8555049974b4740c34a4743b74a47428346433ecb4f4b46d44e4944a949453fa84a453fa24f4b45c4524f49994f4b46a3504d48714e49445f4d4944524a46415c4a47426b4a47426f4c4843614a47426849464079494540844b4741904d4741ab4e4942b34c4741904a4540944b4742af4d4a45bb4f4b46bd524d499c524e49a0534e499b55504cd159534fd35d58538858534fd5625d58e06a6461e26d6965db6f6b68c7726f6ba772706da27873709d7a7774a57f7a77767873707079726e6b7b757185807b777e7f7a758e837e7aaa88847fb48b86809d85807aa8857f79b4847d76b7858079a2827b73847f786fad878078c589827ac7888078c6888077c4817a72cb7a756eed7c7670a76c67619668625ca068635da869645e715c575297615c5677d08649787b756bb9888077bd867f78c1868078e389837cd187807aad837d75857c756e957c766fae827c76b586807ba5807b74c0817e78ff958f88ff97918ae88f8b84f5969089ff9b948fff9e9892ff9b958eff9b958eff99928dff8d8783ff8b8682fe86817dc37c7773db7f7b77bf7a746f956a666293676562bc726e68af706c67c1736e69c475716bf9817c77db75716cd3746e6cd87a736fdd77716cfa7b7670e7756f6ae1726d67f378716bf4746f69e8716b64ff78736cf3716b64ea6f6962d269645ff36d6863cf64605ad166615ba8625f59c4635f59c8625e59925a554fbd5f5b559e5d5853b95f5a54b35f5a52db666057cb686259bf655d55c0645d54fb6b6359ee6a635aff6f685fcd675f55de675f56da625b51d65e574fc35c554dc0585149dc5b544dd257514aeb5a544bce58514aa1534d46a0534e4694544d45cd585249be554f47b4564f46a3554d4497544c4480524b42ef5f564dff62594dfe63594e90584f448f534b42654f483f79534b42a75c534ab35b53499d5951486f534b42565049406c575045735750469a5d544c9a5b534bba5b544ca9554f47a356504878504a42594c453e8b504b45a9534c467f4d463f8d49463f61e56c2a52d661263da23d145cb14f1b619e471a57893c155b7e39166a70331455682e122e5321095ea740165c9d3d15da6c6762db716d68de756f69aa6e68627f64615e8365625fa376706b8a736d68ab7a7470ac7d7873cf86807ea7797471a97d7576bc877f7dcb88807eed8b837fcd857d7bbf817974e189807cd1817a77bd7e7672d9837d7ad37c7673816c6662b875706dbe716c69ba706b67a86d6762ae6e69629c6d6862a96c676086645e567b625d559867625b76625d55a867625aa3656057d96f695fbe6c655ca2655e56bc686159c5676058ec6b655df66f685fc8665f56d0675f57d3635c53cc615952bd5f5750b75c544cd05d554eba59524ad35a524ac4585049b0564f4789514a429d524b43b4534d45d7565048ba514d469d4e4943a24e4944894b4843b8504b46eb534f47ff5d5851e4544f47c7534e48a54e4a445649443f764e4a4595514d4899514d4884514d48544a464151494640574c4a43694b48437b4e4a468b494743a14b48449d4a4742a94b4742884b46405b46403a934945408d48443f91474440aa494743d14d4b47ea534f4cce524f4bc453504cc856514ee3595551ea5b5652d4615d59f1686562f36e6a67cd6a6867da706f6ecd7372709d727171ad797876a17d79777573706d5d716f6d787976729b83817d84807c788f84817c9288857fad8c8b889d83807c96888381a6898481c4908b87d38f8883c38c8781af847f7bb68d8781b88a847fa6857e77ce8d887fd189837ab6817a739577726dc97d787299716c6699706a6590736e69986e6a6476d4864cffdec7b5ffd2bcabffdbc5b1fff1d9c5ffebd4c0ffedd3c2ffe8cfbdffd3bbadffdfc3b4ffd4bcafffccb6a3ffdbc2b3ffddc6b7ffdfc6b7ffdec5b6ffdac1b2ffc6ae9dffdcc2b3ffc0a999ffd6b8a8ffcdb1a2ffccb1a1ffd1b6a4ffc6ab9bffb99d8fffbaa091ffc5ab98ffc6aa97ffbfa593ffb39a8cffab9384ff937e73ff907c71ffa28b7dffa68d7effa58c7dffa58b7dffa98f81ffa48a7cff9e8578ffa08577ffa38879ff9e8575ff9f8573ff9a8173ff937c6fff937c71ff9c8276ff8a746affa1897cffa78e7fffa98f82ffa88e81ffbca091ffbb9e8fffb69a8cffbca090ffbfa393ffbba08effbaa08fffceb3a2ffc8ab99ffcaac98ffc5a696ffcdac9bffcbab98ffcaaa97ffcbaa97ffc7a795ffc9a895ffba9b89ffcbaa94ffcdac98ffd7b59effccad97ffd3b39dffd1ae9affd0af9bffe0bfabffe3c2adffdfbfaaffe2c1adfffff864fffff45ffffff760ffe8c3afffe9cdb8ffa18e7cffefd9c1fff2e0cbffecdac6fff2dcc4fff3ddc3fffee9d3ffffedd7fff6e1ccfff2dbc8fff6dfcbfff0dcc9fff0dbc8ffecd7c6ffedd9c6ffefdac4fff1dcc6fff3ddc9fff3dcc5fff3ddc9fff2dac8fff7e0ccfff6dfcafff4ddc9fffde3d1fff8e3cffff6deccffffefdaffffedd9fffce5d2fffae2cdfff1d8c1fff7dfc8fff8e1cbfffae3ccfff4ddc6fff5ddc7ffefd9c5fff4dcc9ffefd9c5fff2dcc8fff1dbc6fff0dbc6ffedd7c3ffe5d0beffe1ccbaffe1cbb8ffe4cfbbffe0cab6ffe3cdb8ffdbc8b1ffebd5bfffe4cfb8ffe5d0b9ffe1cbb5ffe7cebaffe1ccb7ffdec8b5ffe1cdb6ffd9c5afffd9c5afffcfbda9ffd6c1adffd2bea9ffcfbca6ffd3bfa9ffd0bea9ffcfbca8ffd2c1abffcdbba7ffd8c5b0ffd0bca8ffd1bdaaffc8b4a2ffd8c3afffcdb9a5ffcfbaa6ffd4bfaaffcfbba6ffd3bca7ffcebaa3ffcdbaa6ffcdb9a5ffc9b49fffc6b6a3ffbba693ffb99b8cffb19487fff0ca56ffebc650ffb69989ffbb9e8effb39888ffac9182ffa68b7effb69b8cffb19586ffad9283ffa88e80ffad9183ffa28878ff9d8475ffa98c7cff967d6fffa28878ff978071ff957c6fff9e8574ff9d8573ff99806fff957b6cff9b8171ff967c6dff9b8273ff9c8675ff998575ff978172ff9d887aff8c776bff877465ff988172ff8e7b6bff978271ff937e6fff8e7c6fff86756affa0897dff88756aff938072ff9e8b7eff8b7a6dff918073ff938175ff907f72ff917e72ff8d7c6fff87786bff89786dff8a796fff837469ff7f6e63ff857568ff877569ff86746bff88786cff817265ff88786eff827469ff827266ff837568ff7b6d60ff796a5cff7a6a5fff6f6156ff706357ff706259ff716459ff6b5f54ff6c5f55ff65594fff6c5e54ff73665bff6d6157ff695e53ff6a5f55ff5c534aff49403bff6a5e55ff5c5049ffd5beadffccb6a5ffcfbba9ffefd8c4ffdfc5b3fff0d5c4ffecd3c1ffedd2c1ffeccfbefff0d4c5ffccb6a6ffdfc7b6ffe0c6b9ffdec8b8ffddc7b7ffd9c2b2ffc2ab9cffd9c2b1ffbda496ffdfc1b0ffcaaea0ffc8ab9bffd3b6a4ffccb2a2ffc1a698ffc8ac9bffbca290ffbea491ffbaa191ffbba394ffb9a08fffab9586ff9f8a7bffa78f81ffb29888ffa0877bffa48b7dffaa8f82ffa18878ffa38b7dffa18879ffab8e7effa98f7fffa38979ff987f71ff927a6dff8c756aff907a6fff8d776dff9d867bffad9286ffaa8f82ffb3988affb59a8cffbc9f90ffbd9f90ffaa9182ffbfa493ffbda190ffc4a896ffc5a998ffc3a695ffc8a997ffc9aa99ffd0b09dffc4a493ffc8a997ffc2a391ffccab98ffcfad99ffd1b19dffc8a995ffd0af99ffceae99ffd5b29cffcfae9affd4b19dffd7b69fffdab9a4ffd8b9a5ffe0c1aeffe8c8b4fffffb67fffffb67fffffc66ffecc8b5ffe8cbb7ffa6927ffffeecd5fff0ddc8ffefdcc7ffedd9c3fff7e1cbfffde7d1ffffebd8ffffe9d5fff7dfcdfff4ddc9ffecd8c5ffeed9c6fff0dbc6ffedd6c3ffe9d1bbffedd6c3ffecd8c5ffedd4c0ffedd6c2fff4decaffeed7c5fff7e1cbfffce7d0fffbe4d3fff1dbc6fff2dcc8fff9e1ceffffe8d3fffae2cefff7e0ccffecd6c1fff1dac6fff3dbc7ffedd6c0ffe9d3bcffead3bfffead3c0fff2dbc8fff8e1ccfff5dfc9ffebd5bfffedd6c3ffe6d1c0ffe6d1c1ffe2cbbaffdec8b3ffe5cfb9ffd8c2afffdcc9b5ffdecab4ffd9c2aeffdec8b4ffdfc9b4ffd9c5afffdbc5b1ffddc8b5ffdcc7b4ffe2ccb7ffd9c5afffd0bda7ffd7c4afffc5b29fffc9b5a2ffc7b49fffc5b39fffc9b6a3ffcab6a3ffcfbca8ffcbb9a8ffcfbca8ffd1beaaffd1bca9ffc9b3a1ffd0b9a8ffcdbaa5ffcdbaa6ffcebba7ffc8b5a2ffc5b29fffd3bfacffc9b6a3ffcebba7ffcdbaa6ffc9b8a5ffb8a291ffad9284ffb79a8cffedc650ffe9c650ffba9d8cffa98e7fffb99d8dffaf9384ffb09384ffb69a8bffb5998bffa78b7bffad9281ffa98e7effa48a7affaa8e81ff9f8576ff9b8375ff9e8575ff9c8271ff988071ff987f6fff9a7f6fff9a8070ff9a7f6fff9c8172ff967d6dff967e6fff917a6cff998576ff978375ff9a8576ff8e7b6eff907c6cff938071ff8c7869ff907b6bff8d796bff85746aff958276ffa58f82ff786a5fffa48d7fff89786bff907e70ff917e71ff968376ff928074ff8e7c6eff8f7d70ff86756aff7f6f65ff948478ff8c7d73ff817066ff86756aff89786cff86766aff8a7b71ff86776bff847569ff807165ff827366ff7e6f62ff7b6c5fff76685dff72645aff72655bff6d6057ff71655aff63584fff6b5f54ff6d6056ff65594fff706457ff6e6156ff6e6257ff6c6056ff685b52ff61544cff453b36ff675a52ff60554bffd9bfafffcab6a6ffdac4b2ffe9d1bffff2dac5ffe7d0bcffdcc7b4ffdec4b2ffdec5b6fff9ddccffe3cabaffe0c8b8ffe7cfbeffddc8b9ffd8c4b5ffd4beb0ffbda89affceb7a8ffb9a293ffd4b8a8ffcbafa2ffc6aa99ffc3a899ffcaae9fffcdb1a1ffc0a796ffc8ad9dffc9ae9cffbaa191ffc3a899ffbaa191ffbca394ffaa9585ffb29887ffb29685ffa2887aff987f72ffa3897bffa68b7bffa98e7effa68b79ffaa8f7dffb19382ffaf9384ff998172ffa48a7aff9a8273ff9f8679ff977f73ffa0887bffa68e80ffb3988affaa9186ffbba192ffb59b8dffbda293ffaf9686ffac9182ffc3a897ffccb09fffbfa391ffc6a998ffceb19dffc2a492ffc8aa98ffc6a795ffcdaf9cffc8aa98ffcbac99ffd5b4a0ffd5b49fffc8aa97ffcdac98ffc9ab97ffd4b5a2ffccad9affd0b09bffd2b29fffd3b19cffddbca7ffeac7b3ffeccbb2fffff262fffffe6cfffffa64ffe4bfabffe7ccb8ff988775fffee7d1fffbe7d0ffedd8c2fff4dbc8fff3ddc7fff8e3cdfff7e2ccfff3dec9fff4dfcafff9e2cffff0decbfff2dfcdfff2dcc9ffefd7c7ffe6d0baffead3bffff8dfcafff7dec9fff1d9c5fffee9d1fffde6d0ffffefd8fffbe6cfffefdac5fff9e3cefff5dfcaffffe7d5fffae3d4ffefd8c9fff4ddcaffe8d3c4fff2dbc8ffe7d0bbffe7cfb9ffdfc8b6ffedd7c3ffe5cfbeffecd6c3ffedd7c3ffead5c0ffebd5c2ffead3c1ffe9d2c3ffe1cbb8ffd7c1aeffdcc7b4ffe0c8b5ffdec9b4ffdec9b5ffe4cebaffd2bba7ffd8c4adffdac4adffd3c0a9ffe0cab6ffdbc6b3ffdbc5b2ffd5c0acffd6c3acffd2bdaaffd0bda9ffcfbba9ffcebaa8ffcebba8ffd2beabffc8b4a0ffcdb9a5ffc7b4a0ffcdbaa6ffccb7a5ffcbb4a3ffcbb5a3ffcfbaa7ffcfb9a5ffcbb7a4ffccb8a5ffc8b5a2ffcbb6a2ffc4b09effcdb9a8ffcebaa7ffc7b2a1ffd4bfabffccb8a5ffb7a38effb09586ffaf9587ffefc852ffeac24dffe8c24cffb19584ffaa8e7effb19483ffb19686ffaa9080ffa58b7cffb39886ffa08575ffa08777ff9c8374ffa98f80ff9f8779ff9a8475ff9e8676ffa28878ff867165ff927c6dff8d7667ff977f6eff957c6eff8f7768ff91796bff927a6aff957f70ff957e71ff9a8779ff8e7a6cff8e7b6eff937e6fff917d6dff8f7b6bff8f7b6cff937f71ff8b7a70ff84766affb29a8bff847469ff877668ff918173ff948374ff937f72ff958375ff938173ff8d7a6bff8c7a6dff8a766aff867367ff978578ff88776cff7b6c60ff837066ff817063ff877669ff88786bff796a5dff7b6b61ff7d6f63ff88796cff76685cff796b5eff786a5fff78695fff75675cff74675dff75685dff6d6056ff6a5d53ff61554bff5f544aff6f6257ff6c6055ff73645aff6b5f55ff6d6057ff685a52ff4e443eff60554dff685c53ffd6bfaeffd3bdabffe8d1beffe7d0bdfff3d8c5ffe0cab8ffd8c3b1ffe4cab9ffdcc4b4fff1d6c3fff5decbffe3cbbaffe4c9baffe8d0bfffe5cebfffddc5b6ffd0b7a9ffcdb3a6ffb19b8effd3b5a5ffd3b6a4ffd1b3a3ffd5b6a5ffccae9fffc5ab9affc4a997ffc9ae9fffd0b4a2ffc1a695ffbfa494ffbfa494ffbba292ffbfa595ffbda394ffbea090ffb99b8cffa98f80ffb29786ffa99080ffa48b7cffab9182ffad9182ffb49785ffb29584ffaf9382ffa88e7effa98f7fff9a8074ff9a8276ff917c71ffa48b7effb5988bffac9284ffb09788ffbfa192ffbea393ffbfa696ffc0a495ffc6a897ffb39c8cffc2a392ffbd9f8dffc5a794ffc9ab99ffc7a996ffbfa290ffc0a493ffd8b8a6ffd1b19fffd0b19dffddbba7ffd7b6a1ffd3b39fffd4b4a0ffe1bea9ffd8b8a4ffd6b5a2ffd0b09bffdfbca8ffe1bfaaffe7cba4fffff864fffffa68fffffd6fffe9c6b2ffe5c1abffdfc5b1ff988877fffae4cdfffee8d2fff1d9c4fffde7cffffee9d1ffffecd6fffce7d1fff3ddc9fffde7d3fff1dbc7ffedd9c6ffe9d5c2ffe8d4bfffe4d0bcffe5d1bcffe9d5c0fff1dbc6fff3dbc7fff9e3cbfff3ddc4fff1dbc3fff5e0c9fffce7d2fffff1defff9e3cefffce7d2fffee9d4fff0dac2ffe6d2c1ffe8d1c0ffe2c9b7ffecd6c1ffe8d1b9ffe8cfb7ffead2bcffead5c0fff2dbc7ffe0c8b6ffeed6c3ffe9d3bfffe7d2beffedd5c1ffecdac2ffdecab4ffe1cdb6ffe7d5bdffeed9c5ffe2cdb8ffe2ccb8ffe0cab6ffe0cbb2ffe2ccb4ffe5cdb5ffdac6afffd8c6b2ffd2bfabffd1bba9ffcfbba8ffc8b8a5ffcab7a3ffc8b5a2ffd2bdabffd7c4afffd1beabffcbb8a7ffcebba9ffcebaa5ffd0bca7ffcdb7a5ffccb8a5ffc7b3a0ffc8b5a2ffbda894ffd0bba6ffc7b3a1ffd1bba7ffc7b3a2ffc1ae9cffbead9affc7b5a3ffc6b1a0ffcdb8a5ffc9b4a1ffd1bba8ffaf9c89ffb4998affad9384ffddb95bffedc651ffe7c24dffebc64fff9d8577ffa98f80ffa88e7fffa38979ffa98e7effae9382ffac9180ffa28877ffa38a79ffa08878ff988275ffa1897bff9d8677ffa68c7effa18879ff9c8373ff947c6dff9a8271ff978070ff957e6eff91796aff998273ff957f71ff947f72ff947f71ff988475ff988273ff8d7969ff8f7b69ff8f7a69ff8f7a6bff958173ff817267ff948374ffbea394ff978475ff9e8c7fff978579ff938173ff8c7a6cff938073ff938173ff89786aff887569ff827265ff857165ff948274ff837367ff806f63ff857367ff837266ff817163ff807166ff7e6f62ff7c6e62ff827265ff75695dff726258ff77695dff6f6258ff716358ff706357ff786a5dff72665aff6e6357ff655950ff64584eff675b51ff6b5e55ff6b5f55ff655950ff675c53ff6a5e54ff574c44ff4a423bff685b51ff655850ffe0c8b6ffd5bcabffe3cebcffecd6c3fff2d8c5ffe7cebbffddc5b4ffd3bcacffe1c8b8fff0d2c0ffe0c5b5ffe0c7b7ffebd1c0ffd4bcadffe0c7b9ffcfb5a8ffd6bfb0ffc2a89dffb0998effd2b5a4ffdcbca9ffd3b6a5ffd7b8a7ffccb09effc9ad9bffcaaf9cffc9af9fffd8bbabffc7ab9affcaae9effbba192ffbea493ffbba291ffc0a594ffbfa190ffbda090ffbc9e8effb39887ffa68c7dffad9384ffb39688ffb39586ffb39584ffaf9481ffaf9483ffb29786ffab9081ff9f8778ff9d8679ff958075ffb09587ffb6988bffb79a8effb29889ffbca190ffbfa392ffc2a696ffb39986ffbfa391ffb89d8cffc7a997ffc0a28fffbfa290ffc0a492ffc2a594ffcbac9bffd3b3a0ffd2b2a0ffd2b29fffd2b19effd7b7a3ffd6b7a0ffd5b5a0ffd0b19dffd9b7a2ffcead99ffd6b5a0ffcaab99ffd7b5a0ffe6ca99fffff764fffffb68fffff966ffe3bfaaffdcb9a6ffeac8b1ffe6d1b9ff9b8b7bfff3dfc8fff2dcc7fff3ddc7fff3dcc4fff3dec7fff3dfc8fff2dcc6fff8e3cbfff9e3ccfff4dfc9ffdecbbaffeedac5ffedd9c4ffeed9c4ffe1cfb8ffebd7c2fff4dfc8fff4dec9fffbe4cbfff7dfc5fffce6ccfff8e1c9fff7dfc9ffefdac3ffeed9c3fffbe5d0ffefdbc5ffeed7c0fff0dac9ffecd6c2ffe8d2beffecd5beffefd9c1ffefd6befff1dac1ffecd7c0fff3dec7ffe9d2bdffe7d1bcffecd6c1ffe9d4bfffe9d4c1ffddc9b5ffdecbb5ffe7d3bcffdfccb9ffdccbb7ffddc9b4ffe1ccb6ffe6d0b8ffe0cbb1ffe4ceb6ffe9d2baffe1ccb5ffd5c4afffd3c0adffcdbaa7ffccbaa7ffd1bea8ffcdb8a7ffcab8a3ffd1bda9ffd2beaaffd1bda9ffcebba8ffcfbca9ffcbb8a4ffcdb9a4ffcdb7a5ffccb7a5ffc5b29fffc3b19effc5b3a0ffbcac9affc4b19fffc8b5a2ffc3b0a0ffc0ac9bffc3b19fffc4b19fffc3ad9bffc6b09effc8b3a0ffcdb6a4ffa1917fffd7c2aeffb09385ffab9083ffd3b061ffe8c24effe8c550ffe2bb46ffaa9180ff9f8777ffac9482ffa38a78ffa88f7bffa18876ff9b8372ff9b8576ffa78e7effab9282ffa48b7bff9b8474ffa48b7aff9d8776ff9c8573ff957e6dff947d6eff927b6bff977f6fff90796aff957e6eff937e6eff998576ff978375ff958173ff958070ff8c7667ff937e6eff907b6bff8f796bff8e7869ff8c7a6dff7a6b61ff967f72ff907d6fff968377ff7e6e64ff887467ff938072ff958375ff8c7a6dff8e7c6eff806e62ff8a776aff8a796bff877568ff827165ff837063ff837366ff857366ff7c6c60ff766a5fff7b6c61ff7d6e62ff73665bff6b5e54ff65594eff6e6055ff7b6b5fff7f7063ff7c6c60ff716458ff807064ff6d6154ff665a50ff64584eff6c5e55ff6d6055ff706358ff65594fff5d544bff695c53ff5c5048ff49413bff685b52ff5b5048ffd3bfaeffcfbaa9ffe2cbb9ffe6cebcfff0d8c6fff3dac8fff0d3c3ffe7cbbaffcfb8a8ffe0c5b7fff6dbc7ffe5ccb8ffe2c8b6ffe4cab7ffefd6c4ffe2c6b7ffdcc3b4ffd5bbaeffc4ab9bffd9bdabffdebeadffddbeacffdabbaaffd4b7a6ffd9beabffc5ab9bffd2b7a6ffceb3a2ffcbb09fffc5a999ffcaae9effcab09fffc4a898ffc9ab98ffc2a491ffc4a596ffb89c8effc0a090ffba9b8bffbd9f8fffb69989ffb99a88ffb69886ffb39685ffb09484ffb39887ffae9584ffaf9484ffa98d81ffa38a7cffbca192ffb5988affb09587ffb79d8dffbda090ffbfa392ffc0a493ffc3a797ffcbaa98ffc7a997ffc2a494ffc0a291ffc7a794ffc5a592ffc9a898ffceae9bffc9a998ffc9a999ffceaf9dffd5b6a3ffd6b6a2ffddbaa8ffddb9a6ffdab8a4ffd5b39effd6b5a0ffd8b7a2ffd7b6a2ffd9bb98fffff965fffffb67fffffd68ffeacab6ffe8c6b0ffebc8b3ffd1bea8ff8d7d6dffd6c2aefff0dcc6fffae4ccfff8e2cafff8e4cdfff4e0c8fff5e0cafffae5cbfff8e2c8fff9e3c9ffffe9d2fff7e4d0fff1dcc9ffeed9c4ffeed8c4ffe8d6bffff0dbc6fff3dec8fffae5cdffffecd2fffce3c8fffce5cdfff6dfc8fff5e0c8ffeed9c2fff7e1cafff7e2cafffbe4cffff1dbc6fff7e0cafff0d9c4ffecd5c0ffedd7c0ffead4bcfff1dac0ffefdac1ffead4bbffedd6bdffe5cfb9ffdfcab4ffebd5beffedd6c0ffebd6c1ffead4beffe0cbb5ffe3cfb8ffe3d1bbffdfcdb7ffddc9b3ffe1ceb5ffe2ceb3ffead2b8ffe6d1b9ffe6d3bbffd8c6b1ffd3c1acffd1bdaaffd5c2adffd3c0acffd2c0acffdbc7b2ffd1c1a9ffd9c4abffd5c1aaffcfbaa7ffccbaa4ffd0bba8ffc7b4a0ffd1bda9ffccb8a5ffceb9a6ffcdbca6ffc6b4a1ffc1af9cffc7b6a2ffcfb8a5ffc5b1a0ffc3b19dffc6b09fffc2ad9cffbfac99ffc4af9bffc5b19dffc7b29fffd5bea8ffd3c2abffa49380ffe6ceb6ffb49789ffae9285ffd4b263ffe9c452ffe9c34effe0bd48ffa88f7effa48d7dff9e8675ffa88f7cffa18876ff9a8271ff9d8475ff977f71ff9d8475ff9d8477ff9b8374ffa28878ff9e8576ff9d8373ff9c8273ff957d6cff92796aff90796aff8e7769ff8f7869ff917b6cff947f6fff937f71ff968273ff937e6eff928070ff907b6bff897566ff867263ff816e61ff8c796cff61574cffaa9183ff8d7a6dff968577ff8a776cff937f72ff8f7d6fff907e72ff8c7b6dff8c7a6dff877568ff7b6b5eff867466ff7f6f62ff827062ff7f6e61ff867367ff7f6e62ff7e6f63ff716459ff6e6156ff7a6c61ff685b4fff7b6c5fff74655aff7a6d60ff7b6d61ff7d6e64ff72655bff716259ff706257ff6c5f54ff65594fff60544bff6a5e54ff665c53ff6d6056ff685b51ff64584fff63574eff5e534aff483e39ff63564cff63564dffe1c8b6ffe5ccbbffe4cdbbffebd2c0ffe0c6b7ffffefdcffe3cbb9ffd1baa7fff0d5c3fffee3d1ffffe9d6ffebd0c0ffe8cebdffeed6c3ffe7d0c1ffe8cdbbffe4cbbaffddc5b7ffc7b0a1ffe9c9b9fff5d1bdffe8c8b5ffe2c2afffddbfadffe0c3b0ffcfb4a3ffdfc2afffdfc0afffc6ac9bffd3b5a5ffceb2a2ffd1b5a2ffc8ad9cffcbad9cffc4a593ffc3a593ffc3a495ffbb9e8fffbc9f8dffbda191ffc0a191ffbd9d8cffb99b8affb59889ffb69987ffb69a87ffad9485ffb19689ff947b71ffae9585ffae9384ffa88d81ffa78d7fffb69c8dffc0a292ffba9f8effc5a998ffc2a695ffc5a692ffccae9bffc3a997ffcaac99ffc5a794ffbe9f8fffc9a897ffcbaa96ffd4b09dffcaaa98ffd3b3a1ffd7b7a4ffcbad9cffd7b7a4ffd3b19fffdbb9a4ffdbb9a6ffd2b29fffd3b2a1ffdebda1ffffee62fffff967fffff664ffeac6b2ffedc9b6ffe8c5b0ffe3ceb8ff897868ffb6a493ffcdbba9ffeedbc5fff1ddc7fffae5ceffefdbc4fff4ddc5fff9e2caffffe9d1fff7e0c7fff5dfc7ffecd8c1fff3dfc8ffedd8c0ffe8d3bcffead3c0ffeedac5ffecd8c2fff3dec7fff5dfc9fffae3c9fffce5cdfffee9d2fffde8d1fffae5cdfff1dac0fff8e2c7fff4dcc2fff6dfc6fff7e0c8fff2ddc6fff5dfc7fff4dec6ffefdac1ffeedac0fff9e2caffedd7c0fff5dec7fff0dcc6ffe6d1baffe0ccb6ffead5befff0dbc2ffdfcbb4ffd9c2adffdac8aeffe0cdb5ffe0ccb5ffd9c5afffdcc8b0ffe1ccb3ffe8d3b8ffe5d0b8ffe5d2baffe2cfb8ffdeccb6ffcfbfaeffd4c1adffd3c1acffd4c1aaffd3c0abffd0bda9ffd5c1a9ffd6c4adffd1bfa9ffcdb9a4ffcfbca8ffcebba7ffcab6a2ffcdbcaaffcfbca9ffd1bfabffcbbaa5ffcbb8a5ffc5b19fffcbb6a5ffcbb9a6ffcbb7a4ffc4af9dffc7b19fffc1ae9bffbfaa95ffc5b19effc2ae9bffc6b29effc8b5a1ffccb8a4ffd5c0acffbaa793fffbe6cfffae9284ffaf9385ffdab457ffe5c14fffe1bb45ffe0bd4aff9a8575ffa08978ff9f8775ff998270ff967f6fffa28777ffa18777ffa98c7cffa2877affa28778ff9a8072ff9e8576ff967c6eff9a7f71ff91796aff927a6cff937b6dff957c6eff8e776aff957f70ff968171ff958171ff988375ff958071ff958070ff8e7969ff836f62ff836e60ff847164ff89796cff88786cffac9585ff958072ff978476ff968376ff998779ff928174ff907e71ff8c7a6eff8c7b6eff847366ff857366ff887567ff827164ff7a6a5cff7e6c60ff867467ff857465ff7f6f63ff73665bff85736aff85756aff796a5fff88796bff87786cff7b6e62ff796b5fff76685dff76685cff6e6055ff716256ff6a5d53ff60564dff64594eff655950ff6d6055ff6b5f55ff665a51ff6a5c55ff63574eff564d43ff4a423bff665950ff5d5449ffe3cab8ffe9cfbbffdcc4b3ffedd4c2ffe4ccbaffecd3c1fff2dac7ffddc6b7fff3d6c5ffffe9d7fff6dccdfff3d7c6fff0d6c3ffdfc9b8fff1dac6ffecd0c0fff1d5c5ffe8cbbaffccb5a6ffe4c8b4ffeed1bdffebcebbffe2c6b3ffe1c5b3ffe2c6b2ffd7bcaaffdbbeadffe3c4b0ffddbfacffd2b5a4ffc8ad9dffcbb09fffcbafa0ffc9ac9cffcbad9cffd0b1a0ffc7a99affc8aa9bffc2a697ffbea395ffbfa192ffc2a493ffbc9e90ffbfa090ffb5968affbfa192ffbca091ffac9183ff9a8276ffa18a7dffaf9486ffac9184ffa88e81ffbca192ffbea394ffbfa292ffc6a896ffc8ab9affcaac99ffc6a896ffcfaf9fffcdae9cffd0af99ffceac98ffcdab98ffd4b19cffcaaa98ffd1af9dffd8b6a3ffdbb9a5ffdbbaa5ffd4b5a0ffdcbaa4ffdfbca9ffe0bda9ffd9b6a5ffe1c396fffff663fffff866fffffc6affe1c0aeffe3c2b0ffe2c2aeffe7d2bbff8b7b6bffbaaa99ffc7b4a0ffd8c6b2fff8e5cffff6e1cafffee9d1ffffebd0ffffeed5fffde7cffffce6cafffce6c8fff4dcc4fffde6ccfff2ddc6ffebd5c0ffefd8c3fff2dcc4fff8e2ccfff0dbc4ffead6bffff2dcc7fff7e2cbfffee9d0fffbe5cefffeead3fff0dcc5ffe8d4bbfffbe8cdfffce7cbfff1dcc4fff3dfc6fff5dfc7fffee7ccfff9e1c7fff8e3c9fff4e0c6fff4e0c5ffeed8befff0d9beffebd4bbffdfcbb3ffe9d2bbffe0cdb4ffe9d5bdffead4bcffdfcbb4ffe0ccb6ffe3cfb7ffdfcbb4ffe6cfb7ffdfcbb5ffe5d0b9ffe1cdb6ffe6d1b6ffe5d1b8ffe3cfb9ffddc9b4ffdbc7b2ffcab7a2ffcfbba9ffd4c1adffd1bea9ffd0bda8ffdcc8b2ffd9c5b0ffd2bfaaffd3c0abffdbc6b2ffd1beaaffcebca8ffc4b39fffc3b19effc6b6a4ffc4b2a0ffbfaa99ffc5af9cffcbb6a1ffc8b3a1ffd0baa6ffc8b29effc8b5a1ffc3af9cffc6b19cffbdaa96ffc6b39fffc5b19effc1af9affc8b7a0ffc9b7a1ffe9d4bfffb3a18fffd8c2adffb19687ffac9181ffd5b360ffdeba48ffdebd4affe2be4cffa38879ffa18876ffa38977ffa18776ffa48978ff987f71ff9a8274ff9b8273ffa58a7bffa28777ff998171ff9e8674ff9f8576ff977f71ff917a6cff957c6eff947b6dff967e6fff947d6fff917d6eff8f7b6dff927c6cff947c6cff8b7667ff8d7869ff847165ff897669ff827064ff89766bff8f7c71ffa68f82ff7f6e63ff8e7b70ff98867aff907f73ff907f74ff907d71ff928073ff877669ff817063ff816f61ff8b7a6aff887767ff7e6e60ff816f62ff7e6e62ff837366ff7f7164ff7c6e63ff7c6f63ff786a5fff7d6e63ff806f63ff7e6e62ff7e7063ff75685cff786a5fff736559ff716357ff6e6155ff6f6257ff675a50ff685b50ff675b50ff6b5f54ff64594eff716358ff65594fff5f554cff62584eff473f38ff71635aff655b52ffd0bba8ffe3cdbbffdac2b1ffefd4c3ffdec7b5ffefd8c6fffadfcdfff2dac7fffbe0ccffe3c8b9ffe8cfbffff3d9c7fff0d5c3ffdec8b8fff8dccbffe6ccbbfff2d8c8ffe5cbb9ffcbb6a5ffe2c7b4ffeed3bfffe9cfbcffeacfbbffe0c7b3ffe5cab7ffdbc1afffddbfaeffdcbfabffd6b9a5ffd1b4a3ffcbb0a0ffd0b3a2ffc8ac9cffcaad9effccaea0ffd1b2a2ffcaab9cffd7b8a9ffcbaea0ffc7ac9fffc1a496ffc2a494ffc6a797ffc3a595ffb69a8dffbea193ffcdb0a2ffc5a899ffac9284ffa78f83ffa98e84ffb99b8dffbb9f91ffc0a697ffc8ac9effc7a998ffcfb29dffc9aa99ffcaac99ffc3a694ffc0a28fffdcbaa7ffccac98ffd2af9cffceac99ffd4b29dffdcb9a3ffd4b29effd7b5a1ffdcb9a6ffd7b6a2ffd6b39effd8b6a2ffdebaa7ffdcb8a5ffe4c39afffff263fffff562fffff665ffddbca8ffe2bfadffdebeaaffe4cfb6ff9d8b78ffcebca9ffcbbaa6ffdac7b1ffefd9c4fff6e1cafffee9d0fffeecd2ffffe9d0ffedd9c1fff7e3cbfff3ddc5fff1dbc3fff7e0c6fffae3caffefdbc3ffe9d3bbffefd9c2fff5dec7fff7e1cafffae5cdfff1dbc4ffebd7bffff2dec6fff6e1c8fff4e1c8fffae5cefffae5ceffe7d3bcfff0dcc4fffbe7cffff1e0c7ffeedac3fff9e4ccffeedbc0fff0dbc1fff0dcc1ffe7d1bbffefd7bdffeed7befff2ddc3ffe5ceb7ffe5d2b9ffdfccb4ffe1ccb6ffe4d0b9ffdcc7b2ffd3c0aeffdec9b4ffdfcab4ffdcc9b2ffdfcbb5ffddc9b3ffdfcbb4ffe3cfb8ffdbc8b2ffdfcbb5ffe2cfb9ffe1cdb7ffdac7b0ffd5c0a9ffd3c0acffd7c4b0ffd6c2aeffddc7b2ffdcc7b2ffdac7b0ffdcc9b2ffd7c4afffd9c5b0ffd4c3adffd0bcaaffc9b7a3ffcab9a5ffc1ae9dffc2af9dffc0ab9affc1ac9affbaa794ffbeaa98ffc4af9cffc5b09cffceb8a3ffcbb7a3ffc6b29dffc2af9bffc1af9affc7b39dffc3b19affc8b7a1ffbba995ffbfad99ffdbc8b4ff9d8e7bffd4beaaffb19686ffb09685ffc8a95dffd3ac3effddb747ffdeb947ffa78c7affa58a79ff9e8573ffa18776ffa38976ff987f6fff9c8272ffa28879ff977f71ff998070ff997f6fff9b8172ff9c8374ff947c6eff8f786aff967f70ff937c6dff917a6aff8e7969ff927c6dff907b6cff927c6dff8a7667ff8e796bff877366ff8a7669ff8b766cff7e6d62ff89786dff9b847aff806e64ff827067ff968276ff8e7c71ff8c7b70ff8e7d71ff8a786cff847467ff817165ff817063ff857465ff857568ff867567ff7e6e61ff817164ff817165ff786b5fff7c6d61ff75675cff685b51ff7f6d61ff7e6f63ff78695fff7d6d61ff7c6f60ff776a5dff716458ff726558ff776a5eff6a5e52ff685b4fff6b5e52ff665a4fff66594fff685b51ff63584eff6c5f55ff685e52ff5e544cff484038ff695d53ff665b51ffe0c9b7ffe2cab8ffe9d0bdffe5cbb8ffe9cebdfff6e0cdfff6dfcbfff6dcc9ffffeed9ffe3c9baffeacdbeffecd0beffe4c9b8ffe6cdbcfff7dbcaffe0c6b8ffe9d0c1ffe3c9baffd8c0afffecd2beffefd3c0fff2d4c0ffe4cab7ffe1c7b3ffeaccb8ffdcc2afffe4c7b5ffe9c8b5ffdabba8ffe0c2afffceb2a1ffd9baaaffd8bba9ffcbaea0ffd8b8a6ffd8b7a5ffd3b2a2ffd4b6a8ffd2b3a6ffd6b8aaffccaf9fffd2b1a0ffcead9cffcbab9affccac9cffc4a899ffbb9f93ffcdaea1ffaf958bffa68e84ffc3a396ffc4a496ffad9386ffd1b3a4ffd0b2a3ffbca092ffc1a495ffdbb9a4ffcfb29fffc7a896ffd2af9affcdac99ffcfaf9bffd1ae9bffcdac99ffdcb7a3ffd6b4a1ffd0ad9affdbb7a3ffdab7a4ffdebca8ffdab7a4ffd8b6a2ffd2af9dffd2b09effffef61fffff263fffff161ffd7b6a5ffe0bdabffd7b8a5ffdcc6aeff91816dfff0dcc4ffe8d3bdffdfcbb5ffead4bdfff6e2cafff4dfc6fff5e0c5fffbe5cbffeedac3fff3dec7fff0dcc4fff5dfc8fff3dcc5fff8e0c5ffeed8c0ffedd6bdffedd6bdffead4bdffeed7c0ffebd5beffeed9c2ffead5bdffe3cfb7fff3dec6fffeebd2fff7e5cbfff3e1c7fff8e4ccffead6bffffff1d9fff9e6cefff3e1caffecd7c0ffefdbc4fff8e5cbfffeead0fff6e0c7ffe8d2bcfff6dfc9ffe4ceb5fff1dcc5ffe2cdb8ffdfcbb4ffe2ceb7ffe2cdb9ffd0bca8ffe8d2bdffebd3bcffe8d2bdffe3ceb8ffe1cfb7ffdfcbb5ffddc9b4ffead8c0ffe4d0b9ffead5bcffefdac4ffdfcdb6ffd9c6afffe1c9b1ffddc7b1ffe0cab1ffdfcab3ffdac4b0ffd5bdaaffdecab5ffcfbba9ffd8c5afffd9c6b2ffd9c6b1ffcfbea9ffcdb9a6ffc9b5a2ffc9b5a3ffc8b4a1ffbfac99ffbfab9affc4b19effc2af9dffc4b09effbfac99ffc9b49fffc5b29effc8b5a1ffc0ae99ffc6b69effbdac97ffb4a68effbead93ffc1af9affbeab98ffb7a593ffbba795ffdfcbb5ffa19182ffe0cab3ffc6a894ffab9181ffcdab54ffdbb446ffe0b94affdcb646ffa08575ff9a8072ff9f8577ffa28878ffa58a7aff9e8474ff9d8475ff9f8475ff967d6fff997f71ff967e70ff947b6dff937b6dff998072ff947c6eff947c6eff957e6eff8c7668ff8f7a6bff907b6cff907b6eff958073ff867264ff7f6c60ff816f64ff7c6a5fff8e7a6fff8b786effa28c7eff7b6a60ff826e66ff937f73ff928174ff8d7c70ff8d7b6fff7d6e62ff7c6b5fff847365ff837264ff87776aff88776aff7b6c5fff827165ff837265ff827264ff7b6c5eff7e6f61ff87796aff79685dff7d6e61ff77695cff807164ff7c6e61ff7d7062ff78695dff786a5eff807264ff6c6054ff6e6155ff685c50ff6d6055ff685d52ff6c5f55ff65594eff6e6257ff685e53ff6b5f55ff655a4fff464038ff584f47ff5e524bffedd6c3ffe1ccb9ffe6cfbcfff9e3d0ffefd6c7fffce5d4ffedd4c3ffe4cab8fffff1dcffdec6b4ffe6cdbdffe8cdbcffe6ccbaffe3cbb9ffead0beffdec4b4ffe5cbbdffddbdb0ffd6bfacffdec6b2ffd9c0b0ffe8cdbcfff2d6c3ffe6cbb6ffe8ceb8ffe0c5b1fff0d0bcfff0cfb9ffe9c8b4ffe7c6b2ffdbbdaaffdec0afffd6b9a8ffd6b8a7ffdfbeaeffdbb9abffd7b8a8ffd4b5a7ffdfbeafffd3b3a6ffd1b2a3ffd3b2a3ffcdae9effd7b6a4ffceae9dffc5a79affc5a99bffc7a99effbb9f92ffad9287ffaa9084ffb2968bffbea395ffd1b2a4ffd0b3a3ffcaae9cffc1a38fffc2a492ffccad9bffcaac98ffcbac99ffd1b09bffd0b19fffc3a495ffceac9dffcfad9cffd1b09dffddb8a5ffd5b29effd8b6a3ffd9b6a2ffd2b19effd7b5a2ffddbf96fffff565fffff564fffff264ffd3b19dffd8b7a4ffe7c8b6ffe4cfb8ff907e6dfff6e4c9fff6e0c9fff1dcc4ffedd7bfffebd6befff4dfc8fff9e3cbfffae5cbfff6e3c9fffae9cffff6e1cbfff9e5ccfff7e2cafff9e4ccffedd7bdfff1ddc4fff0dac3ffecd8bfffedd6c0fffbe3cdfff4d8c2ffead3beffeed9c1fff4dec5fffbe4ccfff9e3cbfff9e5ccfffdebd0fffde7cfffead5bdfff2dfc6fff5e1c7fff1ddc4ffebd9bffff1dcc4fffae4c9fff0dabffff3dcc6ffebd6c0ffeed7bfffecd6bdffe8d3befff3ddc7ffebd6c0fff4dec7ffe9d4beffe4d1baffeed7c0ffe4d2beffe5cfb9ffe6d2bbffe6d3baffe3d2b8ffecd7c0ffe4d0bbffe6d3bdffefd9c1ffe2ceb6ffe5d1b7ffeed5bdffedd3bbffe2cdb7ffdcc6b2ffdac5b0ffddc9b3ffdfcab4ffe6d2b9ffdfc9b5ffe7d2baffdccab3ffdecbb5ffdcc7b4ffd5c0acffcdb8a5ffc6b2a0ffcab6a3ffcbb7a4ffc2af9dffc7b4a1ffc9b5a1ffc8b4a2ffc4b19cffc7b39dffc7b4a0ffbfad99ffc0ae98ffc1af9affbbaa96ffc2b19affc3b299ffb5a390ffbead99ffbaa696ffbaa894ffbaa795ffcab7a3ffaf9c89ffd8c1acffae9484ffa58b7cffd1ad55ffdab444ffdcb647ffd4ad41ff9a8173ff9e8375ffa28777ff9e8575ff9e8374ff9e8475ff9f8576ff927b6cff987f70ff977f70ff90796bff957d6eff8b7567ff8e7768ff8f776aff937d6eff8c7869ff867265ff847063ff8c776bff7c6a5fff7d6a5dff827062ff837165ff877569ff88776aff817067ff937f73ff736359ff807064ff8e7e73ff89796cff87776bff8a796dff88786cff7f6e62ff827163ff817063ff88776aff837366ff817063ff817063ff7d6d60ff7c6c60ff7b6b5eff7e6f62ff77685aff77685cff75675bff837368ff807164ff74675cff77695dff76685cff7e6f63ff776b5eff706257ff706357ff62584dff655a50ff63584dff655a50ff695c52ff675b51ff655a4eff6b6055ff695d52ff484139ff63584eff5d5149ffead4c0ffecd5c2ffe4cebcfffdeedafffff3e0fffce9d7ffedd4c5fff2d9c6ffffebd9ffeed3c0fff5dbccfff8dacaffdbc0afffdfc6b2fff0d7c5ffe7cbbbffe6ccbafff0d1c3ffdbc2b1ffeacfb9ffd3bbacfff5d8c9ffe7cbbaffebd0bcffe6c9b6ffe2c6b2ffefd0bcffe5c7b3fff3d2bdffdfc0adffe1c2b0ffdcbfaeffe1c4b1ffddbdacffe5c4b1ffe1c0b1ffdfbfb0ffddbdaeffe3c2b3ffdebeb0ffddbbaaffd5b4a3ffd3b3a1ffd1b2a0ffcbad9dffceb0a0ffdbb9abffcaad9fffcaaa9dffb5998dffae9387ffad9387ffbca293ffddbeafffd9b9abffd8b7a6ffc9aa97ffc5a592ffd0af9cffd4b6a2ffdab8a4ffd9b9a5ffccae9cffdab8a7ffcfae9dffcdac9cffdab7a4ffdbb7a4ffd8b5a2ffe0bca8ffe1beaaffe0bdaaffe1c497ffffee61fffff464fffff161ffddb9a6ffe0bdaaffe0bfacffe5d0b8ff978a7bfffce9d1fff6dfc5ffefdac2fff3dcc2ffedd8befff0ddc5fff4e1c9fffde7d1fffae5cffff6e1cbfffbe5d0fff6e3ccfffae5cefff8e3cafff4e1c7fff1dcc5ffebd6bffff0d9c1ffecd5bcfff3d9c3ffead4c1fff0dac3fff4ddc6fff5ddc6fff8e0c9fffae4ccfff2dec4fff7e2c9fff5e2c8fff5e1c7fff3dbc5fff2ddc0fff9e4cafffce6cdfff3dec3fff1dbc4ffeed9c2fff3dcc6fff1dcc4ffe8d3bdffe8d3bdffedd7c1ffe9d4bdffecd8c0ffe6d3bbffe4ceb7ffe3cdb6ffdfcbb4fff3ddc5ffe8d3bcffead5beffdecab3ffe4cfb8ffe1cdb5ffe8d3bbffead4baffe5d1b8ffe7d1b9ffe1c9b1ffe1cab3ffe4ceb6ffecd6bcffe8d2b9ffe6ceb7ffe4cdb6ffddc9b3ffe0ccb5ffdfccb6ffe0cbb7ffe0cbb7ffdcc9b4ffe3cdb8ffdfcab6ffdfc9b3ffdbc7b1ffcdb9a6ffc9b6a3ffc8b5a2ffc2b09effc5b3a1ffccbba6ffd1beaaffcbb6a1ffc5b19cffc1ae9affc4af99ffbbaa95ffc0ae9affbca997ffc4b19dffbead99ffbaa693ffbfab9affbaa795ffb9a694ffb7a38effb9a693ffcab7a3ffa08d7affd2bca6ffad9284ffab9080ffcaaa5effdab446ffd8b446ffd3ac3fff9c8275ffa68c7bffa58979ff998071ff9f8476ff9e8477ff9d8475ff9b8375ff947d6eff987f70ff907a6bff957e6dff947c6dff8e786aff8d7868ff8f7b6cff8e7a6cff8d796aff8e786bff907d6fff867466ff78695eff827165ff867469ff8b786aff7b6d60ff978376ff837267ff86766bff8d7d70ff89796cff87776aff8e7d70ff86766aff817165ff827064ff877466ff8a7a6cff89786bff7d6d60ff7b6b5fff837366ff7d6d60ff7b6c5eff7a6b5fff6d5f53ff6e6156ff716358ff847467ff827367ff77695eff786a5eff796a5fff786b5eff6e6257ff72655aff6c6155ff6b5f54ff665b50ff675c52ff6d6156ff6b6055ff675c52ff685d53ff655a50ff655a50ff453e37ff675a50ff60574effe2d0befffae1cdffdec6b6ffefd6c4fff0d9c9fff9dfcdfffce2d4fff6dbcbfffaddd0ffd5bcacffe4cbb7fff8deceffdec3b4fff3d7c7ffe6cdbbffe3c8b6fff0d5c3ffdfc4b5fff2d8c4fff1d6c1ffddc2b2fff3d5c4ffecd0bdffe6cbb9fff1d3bfffe7cab7ffeecdbbffefcebaffe4c6b4fff6d6c1fff0d0bcfff4d2beffe2c4b1ffebc9b9ffebccbaffe9c5b4ffe2c0b0ffeecbbaffe6c5b5ffd4b5a7ffd5b6a5ffd7b9a6ffddbdaaffddbeacffd0b1a0ffd4b5a4ffd9b6a7ffe2bfb0ffd1b1a4ffb99c8fffb4998effab9286ffb99f91ffe7c7baffdfbfafffdfbca9ffd6b5a2ffbfa190ffcdae9effcdad9cffd4b3a0ffd2b29effdcb9a5ffd2b09fffc7a696ffc6a596ffcfae9dffd9b5a4ffe3c0adffdfbba9ffe9c6b3ffd9b89cfffff769fffff667ffffef63ffdab9a4ffd6b4a1ffd8b5a4ffd9c6b1ff90806ffff5e6ccfff8e5cbfffce8cffff2dec6fff5e1cafff3ddc6fff8e2cafff0dcc7fff7e2cafff8e2cbfff9e1c9fff4e2c8fff4e0cafff0dec6ffeed8c0fff4e0c7fff4dfc2ffecd7bfffebd5beffeed7c0ffedd7c1ffecd5c0ffefd7c0ffefd8c1fff8dfcbffffe8d1fff5dfc8fff9e3cbfff6e0c9fff4e0c8fffde9d0fff4dec7fff1ddc3fffee8cefff5dfc7fffbe5ceffead6beffead8c0ffeedcc5ffecd9c3ffebd9c0ffe8d5bdfff2dfc7ffedd8bfffe7d2b9ffe3d1b5ffdfcab0ffdfcab0ffd6c2a8ffebd8bfffe4ceb6ffe6d2b9ffe2cfb7ffe1ceb6ffe7d2bbffe3ceb3ffecd6bcffedd6bdffead2bbffddc9b3ffddc9b3ffe3ceb8ffe5d1bdffe4ceb9ffdfccb5ffebd5beffe6d3bcffddc9b5ffe1cdb8ffdfc9b3ffe1cbb6ffd3bfabffdfc9b2ffdfc8b2ffdecab5ffd5c2aeffcab7a4ffcbb8a5ffcbb7a6ffbeae9bffcdb9a7ffcebba7ffcbbaa4ffd2c0aaffcab7a2ffc4b29dffc4b29effc4b09cffc1ae9bffbeaa98ffc1ae9affbeaa96ffb6a28dffb7a591ffc0ad9affb4a28fffb6a18dffb7a38dffbaa58dffbaa995ffa08f7dffd4beaaffaa8d7fffaa8e80ffccaa5affdcb547ffd1a840ffd4ac43ff9d8376ffa28878ffa3887aff9f8477ffaa9080ff9f8577ff9e8575ff9a8373ff957f6fff927b6cff8b7567ff8e7868ff927b6dff967f6fff887467ff8b776aff847265ff887667ff837063ff847165ff877468ff857367ff716255ff8a786bff837469ff9d897cff8d7b70ff938379ff8c7b70ff8a796cff857468ff8a796cff857468ff877569ff857367ff817064ff887668ff8a7869ff7c6c5fff7f6e61ff847468ff7f6f61ff7e6f62ff78695eff706357ff73645aff77685dff837267ff7a6c61ff7d6f63ff75685dff85766aff72655bff706359ff6f6358ff827467ff655a50ff655b51ff665a51ff6c5f56ff786b5fff72665bff64594fff6b5f55ff60564cff4b433cff64584fff61554dffecd4c5ffe5cdbcfff4dccaffe8d1c1ffe7cebdfff6e0cffff2d8c7fff6dbc7fffdebd8ffe7cdbaffe1c9b5ffe6cdbdffe8cdbcfff4d8c5fff2d6c3ffe6c9b7ffeed2c0ffdec4b8fff7dac7ffe4cabaffedd2bffff1d5c2ffe8ccb9fff2d4c0ffeacdb8ffe2c6b1fffbdfc8fffadac6fff7d5bfffeed0bcfff5d4c1ffdfc3afffeeccb7fff1cdbcfff2cdbdfff1ccbaffeac6b4ffe0bfaeffdfbeb0ffddbdacffd0b3a2ffe0bfa9ffe3c0acffe9c7b2ffdbbba9ffd1b1a1ffc8aa9dffc9ac9dffbfa295ffb59b8effb79b8effa18a7effbaa092ffe8c7b7ffddbbadffe1bfadffd5b7a6ffd4b4a2ffd1b3a1ffd2b1a1ffbb9f8effceae9dffc9a999ffc0a192ffc9a799ffcdac9dffd6b3a2ffd9b5a4ffe0bdaaffdfbcaaffe3c3a2fffff467fffff566fffffa6bffe5c0aafff2ccb7ffe8c4b0ffdec9b3ff867666ffebd6c0fff5e1c9fff4e0c7fff5e0c8ffefdcc2fff6e0c9fff6e1cafffde7cffff7e1cafff4dfc7fff2ddc7fff3ddc8fff6e4cafff2dec7fff6e2ccffe9d5bbffead5beffeedac1ffe9d6bdffefd9c1ffefdac1fff0dac4fff6e0cbfff6ddc7fff3dbc6fff4dec8ffefd9c3fff3ddc9fff6dfc9fff6e0c9fffde7d0fffeead1fff9e6cdfff3ddc4fffde6cdfffce6cefff0ddc6ffe5d2bbffe7d5bdffead8c0ffebd8c1ffe9d7bfffecd9c2ffe5d1baffe9d4bbfff3dbc0ffebd7bbffebd7beffe1cdb4ffe2ccb2ffebd9c0ffebd5bdffd0bca7ffdfcbb5ffddcab5ffdec8b1ffedd8c0fff2ddc5ffecd7bcffe3cdb5ffd5c1acffdfcab5ffe0cbb6ffdbc7b2ffe2cfb9ffe4cfb9ffe4d2bbffe0cfb9ffe1cdb9ffe0ccb7ffdac6b1ffe5ceb7ffe3ceb9ffe1cbb3ffdfcbb4ffdecbb6ffd4c2aeffccbaa7ffcdbba8ffc3b3a0ffc1af9dffc8b5a2ffc9b7a2ffc7b49fffccb8a3ffc5b29effc5b29dffc6b39fffc6b29effc5b09dffc0ac9affbba893ffbeab98ffb8a492ffbfac97ffb9a592ffbaa793ffb39f8bffb19e8affb19d89ffa4927effbba995ff9e8f80ffd5c2aeffa98d7dffa58a7cffcba651ffd6ae43ffdcb34affdab147ff987f71ffa4897affa3897affa4897affa08877ffa9907fffa58d7cffa08877ffa48c7aff9a8472ff887365ff8c7567ff887465ff867266ff897569ff7f6d61ff8b776aff7c685eff867468ff847167ff827165ff8f7c6cff8a776cff86756bffb49c8dff907f72ff85736bff927f72ff8a766cff8a776bff8c796cff867368ff887568ff867468ff7e6e61ff827062ff8a786aff7d6d60ff817062ff7e6e62ff7f6f61ff7c6d61ff7f6f62ff7d6f62ff74675bff796c60ff807165ff7d7064ff7c6f63ff7a6c60ff74675bff71655aff72655cff807367ff7d6f63ff60564dff706458ff6c6054ff685b52ff685b52ff6e6157ff675b4fff685c53ff6d5f56ff4a423bff564b43ff62564dffdcc5b3ffe9d4c2fff3e0cdffdcc5b5ffd7c1afffeed7c4ffead0c0ffe2cbbcfff7dbc8ffe9d0bdffe9cebdffc4afa4ffd2b8acffbfaa9efffbdecdffd5baabffedd2c0ffc7b1a5ffe7cbbbffdbc1b0ffdcc2b1ffe4c8b5ffe9cdbbffe7cbb7ffe7ccb8ffe2c8b5ffefd0bdffffe3d0ffe4c6b5ffd3b8a6ffe4c7b2ffddbeaaffe4c6b1ffe2c3b1ffeacab9fff7d4c2fff1cebcffe1beb0ffe3c1b3ffd9bbadffd5b8a7ffddbcaaffe1bfaeffe7c3b1ffd9b8a6ffc1a498ffdcbcaaffd4b6a7ffc7a89bffc9aa9dffb89d90ffc0a296ffbca193ffd9b9a9ffdfbdafffd6b6a5ffd9b9a8ffd9bbabffdbbdaaffcdb0a0ffd4b4a0ffccaf9cffd7b6a6ffd1af9fffc1a293ffd4b2a2ffe2bcaaffcfae9fffe8c3b0ffeccda0fffffb6effffff75fffffc6cffe7c4adffe9c3b0ffe8c5afffe3cbb3ff8a7a6affe1ccb7ffead2beffeed8c1ffeed9c2fff9e2c9fff3dec4fff8e0cafffbe3ccfff6e1caffedd7c2fff5dec6fff6dfcafff4dcc9fff5e0c8fff4dfc7fff2ddc7fff2dcc6fff2dcc5ffeedcc4ffedd9c0fff0dcc2fff0dbc3ffebd6c1fff3dcc7fff4dfc9fff4dfc9fff4e1c9ffedd7c1fff5e1cdfff4dec8fff8e1cbfffde7d0fff9e3c9fff8e5ceffe1cfb9fff5e0c8fff8e4ceffead7c1ffe8d5bfffe8d5bfffebd7c1ffead6bfffe7d5bcffefdac3ffe6d3bcffedd9c2ffefd8bcfff8e1c8ffead5beffe8d3baffddc8afffe3d1b9ffe9d4bfffe3ceb9ffe8d3beffe5d0bcffedd6beffdcc8b4fff0dbc1ffe6d2b6ffe2cdb5ffd6c3adffdbc6b0ffdec9b3ffd6c4afffd7c4adffd7c5b1ffdccbb6ffddcbb6ffe0ccbaffe4d0baffe4ceb8ffe0cab4ffdfc9b2ffd9c5aeffd2c0a9ffd3c1abffc8b8a2ffccbca7ffcab9a6ffc5b4a1ffc5b3a0ffc3b19dffc3ae9cffc1ad9affc8b4a1ffcdb6a2ffbbaa95ffc6b29fffc1af9bffc3b09cffbca997ffbba996ffc0ac9affbda996ffbfab96ffbba692ffbba794ffb5a18dffb09c8affb09e8affb09e89ff9f8f7bffc2b19effa49584ffcbb7a6ff9f8678ff9a8174ffb2914cffd9b146ffd7b142ffceaa40ffa78c7dffa88e7effaa8f7fffaf9583ffa78f7dffa58d7bffa08976ff988171ff917a6bff998171ff8d7667ff8a7567ff907a6cff8d7869ff836f63ff8d786bff836f64ff877468ff7c695dff887469ff8b796cff8c786dff7d6d61ffaf9588ff867368ff917d72ff8c796dff8a766bff8e796eff8b786cff7f6d62ff816f63ff847266ff7e6d61ff7b695cff7c6b5dff7e6e62ff7f7063ff807063ff7f6f62ff78695eff7b6c61ff7d6e62ff7e6e63ff796b60ff7e6f64ff76685eff75695fff6d6157ff6f6258ff6c6055ff6a5f55ff6f6258ff75675eff63574eff685c53ff6d6256ff706459ff64594eff64584eff675c51ff6c6055ff665a50ff443b35ff5b5147ff5f534affdac5b6ffd4c0b0ffd3c2b2ffd9c7b8ffe1cabbffdec6b7ffd5c0b1ffe1cfbefffceedbffe0cab9ffe0c8b9ffe1c8baffbeaa9fffad9d92ffe9d1bfffd0baa9fff7dac9ffc3ac9dffe4c9b7ffd6bcabffe2c5b4ffc8b0a2ffc9b2a2ffdcc2b2ffddc2b4ffceb6a7ffdfc3b1fffadcc9ffe7cbb9ffd1b8a9ffd6bcaaffd9bcabffdbbeadffe2c2b2ffe2c0b0ffebcbb9ffefcebdffd6bbaaffddbdaeffe6c6b5ffe3c1b2ffdbbaabffdebcafffe8c5b5ffd7b7a6ffcfb1a2ffdebeafffe7c8b6ffe3c0b3ffc5a89affe0beb0ffd6b4a9ffccafa1ffd8b5a7ffd5b5a8ffe1c0afffe1c1aeffe7c6b4ffd1b5a5ffd4b6a6ffcdb0a0ffdebdadffdebdadffe1beacffd1b19fffdebbaaffdcb9a9ffd6b5a6ffe8c7a6fffff063fffffe76fffffa6effdab7a7ffe5c1afffe7c1aeffd8c3aeff8c7d6bffd4bfa9fff3dbc4ffe7ceb9fff7dfc5fffeead1fffae2cafffce5ccfffae3cefff3dcc6fffde6cefffeead3fff2dcc6fffae2ccfff0d9c2fff4dec9fff2ddc4fff7dfc8fffce4cafff6e0c7fff3dcc5fff3dcc4fff2dcc4ffebd7c1fff5e0cafff4e2c9fff6e2cbffefdbc5fff4e0cbfff3dfcaffecd8c3fff2dcc7fff2ddc7fff0dac5ffecd6c0ffefdcc5fffdeed5fff7e6cdfff4e2caffe7d3beffe3d2bbffebd8c1ffe9d7bfffe7d4bcffe6d1bbffe7d2bcfff8e0c7fff2ddc5fff2dcc2ffedd7c2ffebd6c0ffe1ceb8ffd9c5afffe4d2baffe6cfb8ffdcc9b3ffe7d4bdffe5d0b8ffe1cbb4ffe1d0b7ffe9d6bcffe6d2baffdcc9b4ffdbcbb3ffdacab6ffd7c7b3ffe1d0baffd6c4acffd2c0acffd7c4b0ffe7d2b9ffdfc8b2ffe9d1b8ffe2ceb6ffe1cab3ffdfcbb3ffdac6abffd9c7acffd7c3a9ffd6c1a8ffd1bea8ffc6b49fffbdac9affc5b2a0ffc6b39fffbba794ffcbb5a1ffcab4a1ffcab4a2ffcdb9a3ffc7b3a1ffc5b19effcab6a2ffc4b29effc1af9bffc1ae9affb4a28fffbfac98ffb9a58fffbba691ffb8a58effb5a18dffb5a18dffb5a08bffb29d89ffaa9885ffcebda8ff918274ffccbaa5ffa1887aff957f71ffc0a156ffcfac40ffddb94dffd5b346ffa08575ffa08a78ffa78e7cffa08777ff9e8677ffa08776ff9d8574ff937c6cff8d7768ff967f70ff8b7667ff8b7668ff857164ff887265ff836e63ff937f70ff957f71ff78665bff877166ff8c786bff8f7a6dff63544cffa48a7dff806d61ff8b766bff8a766aff8c7a6cff8f7c6fff867468ff7e6d60ff837063ff827163ff817063ff756356ff7c6b5eff7a6a5eff7c6b5eff7e6e61ff6e6156ff77685dff7d6d62ff75675eff76675dff6a5d54ff6d6057ff74675bff71635aff655951ff695c52ff675b52ff675a52ff685c52ff6d5f56ff5f534bff695c53ff685d52ff6c6156ff655a4fff685b51ff685c52ff675b51ff64584fff3f3830ff574e45ff5e544bffcebeacffddcebaffead7c4ffdfcdbbffdcc7b8ffd8c4b3fff3dfcfffe7d4c3ffe9d4c4ffddc9bbffe4d0c5ffd6c1b4ffd8c5b5ffd9c5b6ffc6b3a5ffc9b4a5ffcfbaaaffaf9d8effcab2a6ffbba596ffb7a192ffc1aa9bffc8b2a0ffdac3b1ffd6beaeffc0ab9bffd4bba9ffd2b9a7ffd3b8a6ffd5bca8ffcdb3a3ffd7bcabffceb2a3ffc8ac9fffc5a699ffc3aa9bffc6ab9dffb9a192ffc2a99affbfa294ffba9d93ffbda095ffc6a69cffbe9e94ffc6a599ffa88c81ffa38a80ffc1a296ffaf9086ffaa8e83ffa78c82ffad9286ffb8998fffb89992ffab8f87ffb69a90ffbea094ffcdaa9eff988277ffe0c0afffe7c3b3ffeecebbfff3cfbffff9d4c6fffad6c7fffad6c5ffedc6b7fffde4cefffdeb71fffcfb8ffffcfb92fffad7c3fffad6c3fffdd7c4ffd7c1aeff7f7060ffd3bfaaffdac6affff7dfc3ffedd4bcfff3dcc5fff2dbc4ffedd7c0fff3dec6fff7dfccffead4bfffecd8c0fff0ddc4fffde6cdffffebd3fff1dac5fff9e0c8fff8e1cbfff4ddc6fff2dcc5ffe6d3bbfff9e2ccfff0dfc6fff1ddc7ffead6c0ffefddc4fffbe3cafff3e0c9fff7e2ccfff7e2cdfff3dec9ffedd9c3ffeedac3fff1ddc5ffeed8c0fffce7ceffedd9c4ffefd9c0ffefdbc2fff4e2c9ffedd9c3ffe4d3beffead7c1ffebd7c0fff0ddc7ffedd9c1ffedd9c1ffedd9c0ffe6d1bbfff1dbc0ffe6d0baffdfcbb6ffe5d1bcffe6d2bbffefdac1ffe8d3bdffe2ceb8ffdac7b2ffe0cfb5ffedd8c0ffdac8b2ffdac8b2ffdeccb6ffdcc7b4ffd3c1acffe4d2bcffe2d0baffe3d0b8ffdfcbb4ffd8c6b1ffd8c6b0ffe4d0b7ffe5ceb5ffdec8b0ffe5d0b8ffdcc7afffdec9afffcdbba4ffc9b8a1ffd7c4acffd5c3acffc4b49fffc8b6a2ffc4b29effb09e8dffc4b09affbfaa97ffc9b5a2ffc5b19fffbcaa97ffc6b49fffbaa796ffb9a794ffc2b09bffbcab96ffbba895ffbfae9affb7a491ffc3ae98ffbca995ffb9a691ffb4a28effb7a591ffb6a390ffb0a08bffae9c89ffad9b87ffb3a08affbaa796ff8e8172ffd0bda8ffa48c7cffa38c7dffc8a852ffd3b146ffd3b14dffceaa42ffa78e7eff9a8273ff907a6dffa1887affa58c7bff947e6eff9a8172ff998070ff998172ff917b6fff8e786cff9a8272ff867165ff8e796dff9e8779ff968275ff887467ff937e71ff89776aff857265ff65574bffa68d7eff7b6a5eff7e6c62ff7b6b60ff827064ff837165ff7d6d61ff7a685dff776559ff7f6c5fff706155ff79685bff6d6053ff6d5d53ff685b51ff726258ff827264ff706459ff7a6a60ff6e6157ff6e6159ff70635bff62564eff6e6159ff6e625aff675c54ff645951ff5f554bff5c5249ff6c5f55ff675c51ff5f554cff61574dff645b51ff5c5449ff60574eff5a5148ff4e463dff4f4740ff695e54ff39322cff544b42ff4c453effe8d1bdfffbe8d4fff8e3cefffae1cfffe7cfbeffe6cfbcfff6dfcdffebcfc1fff6decdfffff5e5fff6ddcffffde0cefffde3d4ffecd2c4ffe2c6b5ffd7beacfff2d6c1ffd3b8a9ffdec3b3ffe7cab8ffd9bdadffd0b5a5ffd3b8a6fff3d2c0fff2d2c1ffe3c7b6fff8d9c6fffcdbc7fff8d9c5fff8d9c5ffedd1bdfff2d4beffecccb9ffedcdbbffe8c4b5ffdbbeacffeeccb9ffeeccbbffe3c2b1ffebc7b6ffd1b2a3ffe5c0b1ffe1beadffe6c2b2ffc9ab9effd4b4a5ffd1b1a2ffc8aa9dffdab5a8ffeecbbaffecc6b7ffd8b5a8ffd5b5a8ffe3c1b3ffe4c2b4ffe0c0b0ffe9c8b4ffebc8b4ffebc9b8ffe9c7b6ffeccab7ffedcbb7ffecc9b7fff9d2c0ffe6c2b0ffe5c2b0ffe5c79dfffffa6efffffd74fffffa6fffe8c5b2fff6d4c2fffbdac5ffe0cbb4ff807161ffd4c0abffe0cbb4fff8e0c7ffedd6c0ffe8d3baffeed8c1fff7e1c8fffbe2c9ffebd6c0ffedd7c0fff0dcc5fffae5cefff3dfc8fffde6d0fff4dfc8fff4e0c9fff6dfc7fffae1c8fff2dbc5fff9e0c9ffeed7c1ffffebcffffce5cffff9e4cefff7e3ccfff6e1cafff6e0c8fff1dec9ffeedac5fffee7d1fff2e0cbffeed7c3ffeedac4fff3dcc4fff2d9c1ffeed6bcffecd8bfffeedac1ffe9d5beffe5d3bbffe6d3bcffefdfc9ffeed9c3fff5e0c9ffebd6c0ffe8d5bcfff1ddc4ffefdac2ffe7d4bcffe0cbb5ffe0cbb5ffe6d0bbffeed8c1ffedd6beffead4bdffead7beffe5d1baffdfccb7ffe2d1baffe5d1bcffe2d2baffdfceb7ffe5d4bbffe2cfb9ffe2d0b9ffe0cdb5ffe3cfb7ffe0cdb8ffdac7b0ffd8c5afffdbc7b1ffe2cdb5ffdcc8b0ffdfc8b0ffdac5adffd8c5acffd6c4abffd6c3a8ffd0bca5ffd7c3aaffcdbda5ffc8b7a2ffc6b3a0ffc6b39effc7b39fffbfad9affbcaa97ffc5b39fffc7b39effc0ad98ffbaa895ffb8a490ffc4b29effbfae9affbdab97ffc3b09cffbaab96ffb8a793ffc2ae99ffbeaa93ffbba793ffbaa692ffbba792ffc0ac95ffbca996ffbca896ffb29f8dffae9c89ffb09f8affc1b29eff988a79ffd2bdaaffad9283ff9e867affc9a95effd8b750ffd3b34cffd4b24bffae9485ffa58f81ff9f897bffa18a7dff9b8477ff9b8577ff988376ff988173ff887567ff847064ff998377ff907d70ff927e70ff8f7b6dff917b6eff937f71ff887668ff867567ff8e7c6fff8c796cffaf9586ff887469ff88756aff857568ff88776aff8a796cff867669ff87776aff8c7b70ff837267ff817063ff806e62ff796b5eff7e7163ff7f7264ff7d6d63ff7f7064ff817165ff817064ff78695fff77695fff75655aff74655cff76675eff76685dff726459ff6c6056ff6f6158ff6f6258ff695e54ff6f6457ff76685cff6a5f54ff6d6155ff6e6156ff685e53ff5d524aff65594fff71655aff6b6056ff423b35ff766c62ff635851ffead3c1fff8e1cfffefdac8fff5decafff3ddcafff8dfcbfffbe3cfffead3c3fffae2d1fff6ded3fff1d4c2fffbe4d1fff0d6c4ffebcfbfffe8cbbaffdfc3b2fff4dac6ffddc4b4fff8d9c8fff1d2c0fff0d1bafff0cfbcfff6d9c4fff1d2bffff3d3c0ffedcfbdffeed0bfffffe5cdfff7d8c0ffeed0bcfff3d4bfffeaccb8fff2d1bffff9dac7fffdd9c4fff4d5c2fffbd8c3fff3cfbcfffad5c3fffad9c6fffad6c5fff1cab8fff7d1beffecc7b7ffe8c5b4fff7d1bdffebc6b5ffd4b2a6ffd7b6a7fff7d2c0fff2cfbffffcd4c4ffe9c5b5ffffe3d2ffffdcccfff6d3c0fff7d4bfffefcab5fffbd6c1ffe2c3afffe0bfaeffe7c4b2ffe4c2b0ffe9c4b2ffe8c3b1ffeac9a2fffff369fffffb71fffffd74ffedcab9fff5d2c0fff4d1c0ffdfcab2ff8b7c6cffcebba7ffe0cbb6fff3ddc5fff3dbc3fff0d9c4ffe2cdb8ffebd6bffff2dcc5ffe8d1bcffedd9c2ffefdcc4ffefdac4ffefddc6fffce8d1fff4dfc9fff3dfc8ffefdbc6ffffebd1fffae4cbfffce8cffffbe3cafff8e0c7fffeeaceffefd8c1fff6e0c9ffefdbc4fff3ddc8fffee4cdfffde7d0fff9e2ccfff8e0cbfffbe5cfffe8d3bcffe9d5c0ffedd5befff1d9c0fffde6cbfffee7cdffefdac4ffecd7c1ffe8d5beffe9d6bfffe9d7c1ffecd9c4ffeedbc5fff7e0cafffae1c8fffde5cdfff6dfc8ffe9d5beffedd7c1ffe6d0bbffe9d3bdffe9d2bbffefd8c0ffe9d3bcffe5d2bcffe5d3bdffe2d0bbffe1d1baffeddac1ffe2d0bbffe4d2bcffe3d2baffdccbb4ffe1ceb7ffd6c4acffdecbb2ffe1cdb7ffdac8b1ffd8c4afffdec9b3ffdcc8b1ffd7c4adffdac8afffdac6aeffd5c4abffd4c4aaffd1bfa6ffcebaa5ffcfbca6ffd1bfa7ffc7b5a1ffc8b6a2ffc7b39effc6b19effc5b29fffb5a391ffb7a492ffbcaa96ffbca996ffbbab96ffb6a590ffbcab97ffc3b29dffbead99ffbeac98ffb7a794ffbbaa95ffc3b099ffc0ac97ffbeab96ffb5a28fffb9a591ffc1ae98ffb3a08fffb6a492ffb5a391ffb19f8cffb9a590ffb2a08effc4b29fffa2907fffcdb8a6ffa2897bffaf9487ffc6a862ffd2b34bffd6b44bffd4b44affa78e81ff9f887affa1887affa28a7dff9d8678ff988174ff907a6cff957e71ff927c6eff988174ff917b6dff887468ff8e786cff8b776bff8a776aff8b776aff8b776bff917b6eff887467ffbc9e91ff8d796dff887569ff8b786cff8a776bff907b6fff867367ff867468ff837266ff847165ff837165ff7e6e62ff7f6f64ff827366ff827367ff7e6f64ff796a60ff7e6e63ff73655bff76665dff77675eff7a6a60ff75665cff7b6d61ff75675cff706358ff716358ff726359ff6e6156ff74655bff706357ff73665bff73675bff73675bff72665aff6a5f54ff655950ff665b50ff685d53ff6a5d55ff3c3630ff665c53ff655b53ffead1befff1dac7fff5deccfffce4d0fffee6d3fff8e2cefff7deccfffae1ccffdac2b5fffce5d4fff3d6c4ffeacebefff0d5c6fff3d6c5fff4d5c3ffe2c6b3fff4d8c6ffdcc2b2ffedd0c1fffae2cffffbdcc8fffbdec9fff9d9c5fffee5d0fffde0cefff8d9c6ffe8cbb7fffadcc7ffffe4cdfffadac6ffffe6cffff8dbc7fffedecbffffe4d0ffffe1ceffffe6d0fffedecbfffedcc9ffffe1ccfffddcc8fff2cebcfffdd5c2fffcd8c3ffeac6b5ffe3c2b1fff9d8c5ffe0beafffeac6b7ffd8b9aafff6d6c2fffedac9fff8d3c2fff6d1beffffe0cfffffdbccfffedbc7fffbd8c4ffeccbb6fffedbc5fff7d4c2fff1cebbffe8c5b2ffe6c3b1fff3cfbcfff0ccbbfffffb6ffffffb70ffffff77fff1cfbdfff5d1bffff6d3c1ffebd5bdff867665ffd2c0aaffd6c2adfff3dfc7ffd4c0adffedd8c2ffead5c0ffe8d2bdffebd6bfffead5bfffeed7c1ffeed7c1ffedd9c2ffe6d2bcfff8e2cdfff8e3cefff0dbc7fff4e0ccffeedcc7fff6e2cbffffe9d0fffeebd4fffee7cffff5dec5fff8dfc6fffee7d0fff8e3cafff2dbc3fff2dbc6fffee6d0fff6dfcafffbe4cefff7dfcafff5ddc8ffead7c1ffecd7c2fff6e0caffffe9d1ffffebd3ffefd9c4fff7dfccfff2dcc9ffecd7c2ffe5d0bbffe8d5c1ffeedbc6ffead9c3fffee7d1fffee9d2ffecd5c0fff1d9c3ffe8d1bcffebd5c1ffe9d3bfffefd9c1ffe9d3bdffebd5bfffe9d2baffe0cdb9ffd6c6b0ffd9c8b3ffe0d0b8ffe6d3bdffe6d4bbffebd8c0ffe4d2bbffe0cfb7ffddccb4ffdccab1ffe2cfb9ffdfcdb8ffdbc8b1ffd4c1afffd5c2aeffd9c8b0ffdccab3ffd9c8b0ffd3bfa7ffd2c0a7ffd1bfa6ffccbba5ffd3bfa9ffceb9a4ffd8c5b0ffc5b29fffc0b09bffc1ad9cffc1b09cffbeac99ffbaa896ffc1b09cffbeac98ffbba996ffc0ad9affb4a490ffbbaa96ffc7b4a1ffbdac98ffb8a694ffbdac9affb7a792ffbaa995ffc4b09bffbca997ffbca996ffb5a28effb19f8cffb6a391ffb19f8cffb29f8dffb5a390ffb5a390ffb3a28fffb2a08effc2af9cffa19181ffd3bfaaffac9386ffae9488ffc8ab5cffd5b64dffd3b44cffd4b24affa88f83ffa58e81ffa68e82ff9f887cff9d8879ffa28b7eff9c8578ff9b8476ff977f72ff967e70ffa0877aff937e71ff907a6dff917b6dff937e70ff947f72ff907b70ff857466ffbc9d90ff8c786dff857267ff857266ff857367ff877468ff857266ff8a766bff816f64ff847064ff816f62ff7a6b60ff7a6c60ff7b6c5fff7d6f62ff7b6d61ff7b6c60ff7d6d62ff75675dff79695eff77685cff78695dff726358ff7a6b5eff76685cff6d6156ff6d6155ff706357ff6d6055ff6e6156ff73655aff76675dff6e6155ff6b5f54ff6d6156ff6d6156ff6c6056ff695e53ff64594fff524a43ff39322dff655b52ff63574dfff2dbc9fff4dbc8fff7ddc9fff0d7c4fff2dbc6fff6dec8fff3d9c5ffd5bcacfff3dcc9fff9decaffe6cbbdffe7ccbcffe2c8b7ffe0c7b5fff8dac8ffe9ccbafff7dcc9ffe1c8b6fff8dccbfff8dfcbffffeedafffce1cefff6dbc7fffcddcafffedcc8fff3d5c3fffcdfc9fff4d7bffff4d4befffde1caffffe7d1ffffebd6fffaddc9ffffe7d2fffff8e1ffffe6d1fffadbc8ffffefd8fffff3dcfff4d3bffff2cebdfffad5c5ffffdecbffeecabbffefcbbbfffedac7fff5cfbffffad3c6ffecc6b5ffffe0ceffffdecdfffeddccffffe7d6ffffe7d7ffffdfceffffe2cfffffdfcbffffe8d4ffffe9d5ffffdecaffffe2cffff6d3c0fff7d4c1fffddeb9ffffff7afffffe75ffffff75fffad6c4fffdd9c7fff6d6c3ffddc9b0ff817363ffd0bca8ffe6d1b8fff7e0c7fff1dec5fff6e1c9fff6ddc7ffe9d3bffff5dec7fff2dabcfffae3c7fff3dbc5fff1d9c4fff6ddc6ffefd9c3fff0dcc5fff2ddc7ffead7c5fff2e1cdffead7c3fff3e1c9fff7e2cafffae6cdfff9e3ccfffce5cefffde9d0fff7e0c7fff9e2cdfffde8d1fffbe6ceffffead4fffce7d2fffae3cefffbe4cefff1dac5fff5dec8ffefd9c2fffde5cffff9e3ceffe9d5c2fff9e4d1fff3ddc8ffe9d4c1ffe7d0bbffe7d1bcffe5cfbbffe7d1bcfff3dcc6fff3dec6ffe8d3bfffe4ceb9ffe8d1bcffe4ceb9ffdec8b3ffe6d2bbffe3d0bcffdbc9b5ffe7d2bbffe6d2bbffe0cdb6ffdfccb6ffdfccb5ffe5d0b9ffe3d1baffdbc9b4ffe3d0b9ffdcc9b4ffdbc9b4ffdbcab3ffd8c8afffe3cfb5ffe1cdb8ffdbc5b0ffd7c2aeffd4c0acffd8c6afffdac7b0ffd4c1acffd9c6b0ffd1bea7ffd3c0a8ffd4c1aaffd9c4b0ffd4c0abffd6c1aaffc9b6a1ffc8b6a1ffcab5a0ffc7b39fffc0ad9affc6ae95ffcab79fffc6b39dffc0ad99ffbeac99ffbfac98ffbcad97ffbead98ffbeac98ffbcaa98ffb6a595ffb3a290ffb7a793ffb7a593ffbead9affbca998ffbca996ffc2ae9affb4a18dffb7a391ffb5a490ffb8a693ffbbaa98ffb8a695ffb19e8cffb3a08dffbfad9aff908270ffceb8a5ffb4998dffac9385ffcbae5bffd5b74effccab42ffceac43ffa38a7effa78f83ffa89084ff9b8578ff9e887aff988073ff957e72ff967e72ff988174ff988274ff988173ff957f6fff927e6fff917c6dff8b786aff8f7c6eff867467ffbba090ff816e63ff8a7669ff887468ff8c776aff8f7a6dff887468ff8c796dff877368ff8a7669ff857467ff7f7064ff776a5eff817265ff817164ff837366ff817266ff7d6e63ff78685fff78695eff78695dff7c6d60ff78695dff786b5eff77695dff72655aff72655aff706158ff6e6157ff736559ff72645aff74675aff6f6356ff6b6055ff6f6358ff6c6155ff6d6154ff665b51ff61564cff4c443cff3f3933ff61564dff5e544bffefd8c4fff6ddc9ffe9cfbcfff3d7c5ffedd2befffae5cffffae1cbffead3c1fff9decdfff9e0cffff4dacafff3daccffe6cab8ffe5cbb8fff0d3c1ffe8cdbdfff0d5c3ffe8ccb9fff3d7c4fffee8d2ffffe6d2ffeed2c2fff8dac7fffcdcc8ffffe2cefff6d8c5fff9d8c3fffbe0c9ffffe6ceffe4c8b2fff9ddc8fff5d9c4ffffe9d3ffffe5d0ffffe5d1fffee6ceffffe1cbffffe5cfffffedd7ffffeed9ffffead6fffedac9ffffeddcfff8d2c4ffefccbbfff6d0c1fffad7c5ffefcbbcffebc5b8ffffe6d4ffffefdcffffe8d6ffffeddaffffe4d3ffffe4d1ffffebd7ffffebd6ffffddcafffee1cdfffcd6c2fffdd9c7fff3cfbefffbdfb4ffffff77ffffff7fffffff78fffcdac7fffedecbffffdeccffd4c0a9ff867766ffc9b6a1ffd6c1aaffecd6bdfff0dac1fff9e0c8fffee6cdfffce5ccfff9e3cdfff1dbc2ffebd4bbfffbe8cefff8e0c9fff7e2cafff1dcc1fff8e0c5fffff1d6ffffeed4fffeedd7fff5e4cdffeedec6fff1dfc6fff5e2c8fffbe4cdfff7e1cafffce6cffff5e0c8fff8e0c7ffeed8c1ffecd8c3ffffedd3fffdeed6fff4e1c8fff6e1c9fff3ddc7fffce7d1ffe5cdb5fff1dac4fff3dcc7fff5dfc9ffecd8c0ffeed7c3ffebd5c0ffedd7c3ffe2cdbaffebd6c4ffead4bfffe4cebaffeed7c2ffead5c0ffdecbb6ffe5cfbafff1dac2ffe6d2bcffddcab3ffe3cfb8ffdeccb4ffe1cfb8ffddcbb8ffdcc7b6ffecd7bdfff3ddc6fff0dac2ffe4d1baffe7d2bbffead5bdffe0ceb7ffd4c2aeffccbea7ffd4c3aeffd8c6b0ffd8c7b0ffe3cdb5ffdfcbb3ffd7c2acffd5c1acffe5d0b6ffd3bdacffddc8b1ffd8c3b0ffd3bfabffd6c2aeffd1bda7ffcebba5ffc9b59fffccb8a3ffc3b29dffceb9a5ffcebba4ffc8b5a0ffc6b4a0ffbeac95ffc7b49effc5b39effc3b09cffbdac98ffbead95ffc7b29cffcbb8a2ffccb9a4ffc4b2a0ffb4a491ffb6a793ffb4a591ffb8a895ffb9a796ffbbaa97ffb9a895ffb8a593ffb5a28effac9988ffb4a392ffbcaa96ffb5a28fffb19f8bffb2a08cffb4a290ffa89685ffae9d88ff988977ffc9b3a1ffab9284ffaa9083ffc5a661ffcbaa41ffd1af46ffd0b048ffa38c7fffa48e81ff9e887bffa18a7cff968073ff90796eff90796aff967f73ff947d6eff917c6cff937c6eff947d6dff8c7667ff8c7a6bff927e6fff877568ffb79b8dff8a766bff927e71ff8e7a6dff837165ff897468ff917d70ff88766aff887569ff806f62ff7c6d61ff827265ff7f7063ff7f6f63ff817164ff7f7063ff807063ff7d6e61ff7f6e62ff806f63ff786a5eff7a6b5fff786a5eff76685cff76695dff73665bff6f6258ff716359ff706358ff6f6357ff6d6056ff72655aff6d6157ff6c6055ff6b5f54ff695e54ff675c51ff695e52ff5d5349ff5e534aff3d3833ff63584eff60544cffecd6c3fff0d8c3ffebd3bfffe1cab8ffe6d0befff6ddc8fff5decbffe8d1bdfffbe3d5fff5dcccffebd3c5ffe7cbbeffdbc2b2ffe6c7b8fff6d9c8ffe0c7b5fff4d8c6ffe7ccbbffffe8d3fffee7d3fff3d6c1ffe7cdbbfff5dac7fff7dac7fffee6d2fffee6d1fff8e1cdffffeed9ffffeed8ffffedd8ffffe7d3ffffe0cffffcdbc7fffff1dafffff0daffffe1cdfffcddc8fffcdac6ffffe8d3ffffe8d4ffffe5d2ffffe3d1ffffe2d1fffedccbffeecebeffffdeccffffe4d1fff8d3c4fff0ccbcffffe9d6ffffe5d3ffffefdaffffe7d5ffffefdbffffe6d1ffffefdbffffe8d6ffffead7fff9d6c7fffedfcefff4cfbefff8d5bbffffff7cffffff70ffffff87fffdd6c4fffcd9c6fffee2cfffd2bfa8ff857766ffc3b29cffcfbca6ffeed7befffde7cefffee8cefff6e0c6fffae6cbfffee7ceffffecd3fff3dbc7fff0dac2ffecd6befffde5cdfff7e3cafff8e4caffe3cdb6fffae5ccfffff1d9ffefdbc3fff8e4cbfffff5dbffffefd7ffffedd4ffffe8cefffbe5cdffffefd5ffffe8cefff9e3cbfffae5ccfff4dfc8fffae6d1fff7e2ccfff2dfc8fff0dbc4fff6e2cafffae6cefff0dbc3fff6e1caffecd7c1fff2dcc6ffeedac2fff3dcc7ffecd6c0ffecd7c1ffeed9c4ffecd6c2ffefdac6ffeed9c5fff1dcc9ffebd6c1ffe4d1bbffe9d3beffe0ccb8ffe2ceb9ffd8c7b0ffdecab4ffe5d1bbffe7d2bcffdfcbb6ffd6c6b3ffe9d4bafff3dcc2ffe9d3bbffddcab5ffe6d1baffdfceb8ffd3c2aeffd5c5afffd6c5b1ffd2c1acffcfbfa9ffcebda7ffe1cbb3ffddc9b1ffdbc7b2ffd5c1aeffdac6b1ffe0c9b3ffe0c9b3ffd7c3afffd5c2adffd3c1abffd2bfa8ffcebba5ffd5c1acffdcc6afffceb9a4ffc7b49effd1bfa8ffcdbaa3ffcfbda7ffc3af9dffc9b6a0ffc6b29fffcab6a2ffc0b09affbdac98ffb7a490ffc5b39effc3b09dffb9a895ffc6b39effc6b4a1ffc0ae9cffc2b09dffbba894ffbba997ffc0ae99ffb5a28effb5a390ffb5a38fffb0a08dffb9a796ffb3a08effb09f8cffae9d89ffb09f8bffa39380ff8b7c6cffc9b6a2ff9c8c7bffccb7a3ffa78d7fffa78e80ffc3a85fffcbab41ffceae45ffd0b148ffa48c7effa38c7dff9f8879ff9a8476ff967e71ff947d70ff917b6cff957d70ff957e70ff917b6dff8d796aff937f70ff917d6dff968072ff877468ffbda190ff8a756aff958073ff8f7a6dff877467ff847164ff897769ff897567ff816f61ff7d6b5eff837163ff816f61ff7f6e60ff837062ff7b6b5dff7c6b5eff7a6a5dff7a6b5fff7a6b5fff79695eff796a5fff77685dff75675bff75665bff74655aff75675cff706459ff726459ff716359ff71645aff6f6256ff706458ff6e6357ff706156ff6e6055ff63574dff685b51ff695d53ff655950ff675b52ff403932ff685c53ff5f554bfff0dac6fff3dbc8ffe5cebcffdfcab8ffe3cebbffefdac6ffefd9c7fff9e0ccfff9e1cfffd7c6b5ffefd7c5ffe9cdbcffe1c6b3ffe5cab9ffffe5d3ffead0bffff2d5c0ffeed1befff1d4c2ffffebd6ffffefdbfff1d5c3fff5d7c3fffde0cdffffe7d4ffffe8d3ffffe7d5fffff5e1ffffe7d4ffffecd8ffffecd7ffffedd8ffffedd8fffff1dbffffefdaffffebd6ffffebd2ffffe7d0ffffedd8ffffeed9fffff8e1fffeefdaffffebd7ffffeed9ffffebd7ffffe2cfffffe2cefff9d4c4ffefcbbcffffeeddffffe6d6ffffe9d7ffffebdaffffeddcffffe4d3ffffecd9ffffe5d5fff8d4c4ffffe6d4ffffe2d1ffffe3c9ffffff78ffffff78ffffff81ffffdecdfffcd8c5ffffe5d2ffe3cdb3ff7d6f5effc5b49fffd1bfa7ffe7d3b9fff5dfc5fffff2d6fffce8cefffbe6cbffffecd1fffce3cbfff8e1c9fff6dfc9ffead6bffffee6cdfff5dcc4fff2e0c7fff2dfc6ffeed8c0fff6e0c7fffbe5cefff7e2c9fffae5ccfffee9cffff3dec7fffae2c9fffce7cefff7e0cafff7e0c9fff0d9bfffedd6c1fff0d8c0ffefd9c2fff3dfcafff1dac4ffeedac5ffeedac4fff2ddc6fff7e4ccffefddc4fff5e2c9fff3ddc6ffebd7c2ffeed9c3ffefd9c3ffecd6c1ffeed9c3ffedd7c2ffe2ceb9ffe9d6c1ffebd6c2ffe4cfb8ffeddac3ffeedac7ffe4d0bcffdccab7ffdcc9b5ffdcc9b3ffddc9b4ffe3cfb9ffead6bfffe8d5beffe4d1bbffeed9c0ffeed8bfffe4ceb7ffefd9c1ffe3ceb6ffe5d3bdffd9c9b2ffd5c5b1ffd0c0acffd3c1adffdac7b1ffd7c3aeffd6c2acffd6c2acffdec9b5ffd9c5b1ffd7c3aeffdec9b1ffdac4b0ffd4c1acffd3bfabffd4c1abffcfbca5ffcebca6ffd5c1acffd4bfaaffdccab3ffccbaa2ffd2c0a9ffc9b49effc9b6a0ffc1ae9cffbdac98ffc8b4a1ffc0ac97ffbead98ffbaa995ffbeab96ffc3b09dffc3b09effbcab97ffc5b29dffb2a08fffb3a28fffc0ac99ffb6a591ffb7a593ffb29f8bffb5a38dffae9d89ffb09d88ffb0a08dffb19f8cffb19d89ffab9987ffb09e8affaf9c89ffa59381ff918171ff8f806fffbfac99ff928373ffd4c2abffab9283ffab9283ffc6a853ffd0b149ffcdaf46ffcbae45ffa08979ffa08878ff917b6eff967e72ff937b6dff917b6cff957e70ff957d6fff917b6dff8e786aff917c6fff8f7c6cff927d6fff897769ffb59b8aff857265ff857267ff887467ff887467ff806e62ff8c7b6cff857266ff897669ff887668ff857467ff827164ff817164ff7b6b5dff817062ff7e6d60ff796a5dff7c6c60ff7b6b5fff7d6d62ff796a5eff76675bff78685bff76675bff706258ff74675bff71655aff74665bff73665aff6f6258ff6c6055ff6e6257ff6a5d53ff6f6156ff675b51ff62574eff685c53ff6a5e54ff6a5e55ff6b5f53ff403832ff695f55ff60554cffe1ccbaffe8d2bfffdec8b6ffdbc3b2ffddc5b4ffe8d1bffff9e1cefff5dccafff5decdffedd6c7fff2d5c4fff0d4c4ffeed0beffe3c8b6ffffe6d4fff1d9c7fff9decaffedd3c0fffbdecdfff7dbc9fff9decbffe5ccb7fff6dcc8fff9ddcbffffe9d5ffffe9d5ffffedd8fffff3e0fffff8e7ffffe9d6fffff3e1ffffeedbffffefdcffffefd8fffff8e0fffff8e3ffffedd7fffff1ddfffff7e3fffffae5ffffecd6ffffecd7ffffddcbffffefd9ffffecd8ffffe3cfffffe3cffffed8c7fff2cbbafffff2deffffe7d7ffffeadbffffedddffffe6d6ffffe2d3ffffefdeffffe1d2fff9d7c8ffffe6d4ffffe4bcffffff7affffff7cffffff7dffffe7d4ffffeeddffffe2ceffd7c1aaff847361ffb6a691ffc2b19affdec9aefff8e2c4fffae4c6fff9e2c7fffbe5c8fffde7cdfffee8cefffce2c9fff8e1c9fff7e0cbfff4dfc8ffeed9c4fffbe3caffefdbc4fff2dcc7fff0dbc4fff3dfc5fff0d9c2fff5e2c9fff9e2ccfffee8d1fffff0d4ffffecd2fff9e1c9ffffe9ceffffecd1ffffe8d2fffae2cbffeed9c3fff5dfc9ffe9d6c1ffe3cfb9ffe7d2bdfff3dcc8fff1dac5fff1dbc5fff4e0c8fff4e0c7ffefd8c1fff1dbc5fff5dfc9fff4dec4ffecd9c2ffe7d4bfffe8d3beffe2cdb8ffe4d1bdffe6d1beffe3cebbffe2d0bbffe0ccb8ffdecab5ffdecab5ffdfcbb5ffd4c0acffdfcbb5ffdfcab5ffe3ceb8ffe8d3baffead5bdffeed8c2ffe6cfb9ffead2bdffe9d2bcffe1cdb7ffe3ceb7ffdeccb4ffd7c5afffdac7b0ffdcc8b3ffd9c5b0ffd6c3aeffdbc7b2ffd4c0a9ffd7c2afffd9c3aeffe2cdb7ffdac5afffd4bfa7ffd6c2aaffd5c1a9ffc7b59effcdb8a0ffccba9fffd3bfa6ffd2bda5ffd2bfa6ffd0bba5ffcfbba3ffcbb7a0ffc3b09affbead9cffbdab98ffbeab97ffc8b39dffc1b09affbaa894ffc0ad98ffbfac98ffbba895ffb8a895ffbdab99ffbdac97ffc4b29cffc0af9affbaa692ffbeac94ffbdab95ffb9a792ffb3a18cffb2a28effae9e8bffa59683ffa69582ffa99583ffab9786ffaf9b89ffb49f8dffae9c89ffa59480ffa59481ffad9d8bff9b8d79ffc2b09cffa28b7dffa08a7bffbb9d52ffccad45ffccad45ffcbaa40ff9c8474ff977f71ff927c6fff937d6eff8e7768ff967f70ff917b6dff927b6eff917b6eff988375ff927d6fff917d70ff847265ffae9586ff8a7769ff857265ff897467ff7c6a5dff827064ff8d7c6eff8a786aff8a786bff89776aff89786aff887769ff867769ff827265ff827265ff7f6f61ff7c6c60ff847468ff7e6e63ff7f7064ff77685dff796b5fff74655aff73655aff786b5fff74675bff706459ff726559ff6f6257ff70645aff6e6258ff71665bff6b5f55ff675b52ff685c53ff64584fff665a51ff675c52ff6b6056ff6a5d52ff3d3630ff685e53ff62564cffe8d3bffff0d9c5ffe0c9b8ffdfc6b6fff2d8c4ffe9d2c0fff0d9c7ffefd8c6fff5ddcbffedd7c5ffe0c9b8ffefd2c1ffe7cdbcffeed6c4fffee3d1ffedd3c3ffefd3c2ffedd4c3fff6dbc9fffce0d0fffee2d0ffffe7d4ffedd2c0fffee9d6fffff7e3ffffe9d5fffbe0cffffff8e5fffff7e3fffffbeafffff4e3fffff6e2fffff9e6fffffde8fffffee9fffff4defffff4e0fffbe4d1fffffee8fffff8e0ffffead6fffff6deffffebd8fffff0deffffead9ffffe1cffffff4e1ffffdecefffedbcafffff5e1ffffead9ffffeedfffffeeddffffeddaffffead8ffffe5d4fffedecefffde2d0fffee3c1ffffff79ffffff78ffffff7cffffe0cfffffe2ceffffe4cffff5dfc6ff998773ffac9b88ffceb9a5ffead5bffffdebd1fffee9cfffffeacffffde5cafffee8ccfffae4cbfffee9cefffee6ccfffde5cdfff5dfc9fffce7cdfff6e0c6fff8e0c9fff9e0cafff7e3cdfff6e0cafff8e2cbfffae4cefff6e0cafff3dfc8ffe9d4bffff7e2cbfff9e5d0fff8e1ccfffce6cefffae2caffe6d1bafffee9d1ffedd9c2ffefddc5ffe8d4bdffe5d2bdffedd7c0fff0dac2fff3dcc4ffefdac4ffe9d4beffecd9c0fff9e1c8ffeed9c2fff0d9c3ffeedac3ffe4d1baffe2cfb8ffe7d2bdffedd7c2ffe4d1baffdfccb7ffe5d2bfffe5d4beffdecab4ffdac8b1ffe1ceb9ffddc6b5ffd9c4b0ffe0ccb7ffe1cdb7ffe2ceb7ffdfcdb6ffebd5bdffead7bfffddc9b4ffe1ceb8ffecd6c1ffe1cbb5ffe8d0b9ffdcc7b1ffe0cab2ffe1cdb4ffdbc8b3ffd7c4afffd9c5b0ffdcc6aeffd4c0a7ffd3bfa9ffccbba5ffdcc9b4ffd6c4adffdac4adffd9c5afffd9c4aeffddc8b2ffd4c0a9ffd7c2aaffcfbaa2ffd3c0a6ffd8c3abffccb9a3ffd1bca4ffcdb9a2ffc6b19cffc0ae9cffc6b39dffc6b39effc3af99ffc1ad98ffc2b09cffc0ad99ffc7b4a0ffb9a795ffb7a694ffb5a692ffbcac98ffbaaa97ffb8aa98ffb5a492ffc0af9affae9c87ffbdab94ffae9c87ffaf9f8bffab9e89ffa49481ffa99886ffb09c88ffad9a86ffaf9b89ffac9886ffa89784ffad9c86ffaf9d88ff998a77ffc0ae99ff9a8b79ffbba895ffa48c7cff9f8879ffbea25cffccae46ffcaac43ffc7a940ff9e8677ff998073ff867265ff836f62ff8f796aff8d796bff907a6cff958172ff907b6cff978373ff8c7869ff7f6e60ffaf9687ff867468ff887567ff8d786bff826f60ff8c796bff837162ff867366ff847264ff857368ff817065ff827264ff807062ff847367ff79685cff7f6f62ff806f62ff807265ff7a6a5dff7a6a5dff7e6d60ff746659ff6d6055ff78695eff75675cff6f6157ff71655aff716459ff6d6156ff6e6156ff6f6358ff74675aff665a50ff6b5d53ff655950ff63574fff655950ff6a5e54ff695d52ff685c52ff3d3731ff6a6056ff65584fffdfc9b6ffe7cfbdffdbc4b1ffd1bcaaffdfc7b4ffe6cfb9ffe9cfbcffedd4c1fff1d7c7fff9e0cffff4decbffdfc4b6ffe4ccbbffefd6c1ffedd5c2ffdfc7b4ffe6cbbcffe7cebdfff0d3c4ffffead7ffffe4d3fffadcccffe7cbb8fffde8d7fffff7e5ffffebdafff1dacbfffff6e3ffffefdefffff5e3ffffffeefffffae6fffff5dfffffffecfffffae5ffffffecffffe8d5ffffe8d3ffffecd6fffff4defffffae4fffff7e4fffff1ddffffefdeffffe7d5fffff4deffffebdaffffe5d3fffbd3c9fffffbecfffff3e2ffffe7d6fffff6e5ffffe8d5ffffecddffffeddaffffe2d2ffffe5d4ffffff86ffffff7fffffff7cfffdd7c6fffbdcc8ffffdbc8ffffedd3ff978776fff2e1c7ffd3c0a7ffdcc9b1ffffeed5fffff3d9fffff1d7ffffebd3ffffe9cdfffff1d4ffffecd0fffceacfffedd8c0fff5e1c9fffce8d0ffffe8d1ffffead2fffee5cdfff2dcc1fffce5d0fff7e1cafffde7d0fffae4cdfffee8cffffee7cefff8e1c8fff3dcc5fff5e0c9fff7e3cdfffde6cffff3dbc5fff8e2ccfffbe5cbfff4dec5ffebd8c1ffddc9b0fff3ddc7fff1dac3fff4ddc5ffebd5c0ffecdbc6ffebd8bffff5dfc8ffebd7bfffe6d2baffe3cbb3ffeddac2ffdecab4ffe7d5bdffe2cfb8ffe7d2bcffe9d4beffdac8b0ffdeccb5ffdbcab5ffddc9b4ffdfcab6ffe8d7c0ffd8c4b0ffdac8b2ffdcccb4ffe0ccb8ffdecab6ffdac7b1ffd9c5b0ffd8c4afffdac5afffd8c4aeffe6d1bcffdac6b2ffdeccb5ffd7c5aeffdfccb1ffd2bea8ffd6c1acffd3bfa8ffe4cdb5ffe3d0b4ffd2bea6ffd7c5aeffe0cdb6ffe7d5bfffe1cdb8ffdbc7afffccbaa4ffd9c5adffdbc5acffd6c4acffd8c6aeffd7c1aaffd5c0a8ffd5c1a8ffd4bfa8ffbfad99ffc5b39fffc9b7a3ffc8b7a2ffcab6a1ffcfbba4ffc4af97ffc0ae96ffc6b39fffc2b09affc5b29cffc1af9affc2b19affc5b39fffbaa894ffb3a390ffb4a591ffbcab97ffad9d8bffbdab97ffb9a894ffbbab95ffb4a48fffaa9b89ffac9c87ffac9b89ffbca893ffa49180ffac9a89ffaf9e8bffaf9e8affa89785ffa79881ff998a75ff8e7e6bffb3a38fff928370ffccbaa4ffa28a7aff9f8879ffc3a550ffc8aa42ffc5a63dffc2a442ff8b7669ff917b6cff897365ff8d7668ff90796bff8c7669ff8e796aff998577ff998475ff907a6bff9c8778ffb79c8bff8a776aff897567ff907b6cff7e6c5fff8b796aff887365ff8a776bff8e7b6eff837165ff847366ff807063ff7b6b5eff79695bff816f63ff7d6e60ff7c6c5eff807063ff817164ff796a5fff75675bff736558ff6e6155ff736357ff726458ff736559ff6c6054ff706458ff695d53ff685b52ff6f6358ff6f6357ff706458ff685c53ff62574eff64584eff65584fff675c51ff695d53ff6a5e53ff3c3630ff655a50ff685d53ffd5c1aeffdec7b2ffdbc3afffd6bfacffe4cbb7ffebd2bcffebd0bdffe8cebbffe8d1c0fff0d7c6fff3dbc9ffd9bdafffd5bdadffd7bfb2ffe4cbbaffdec6b4ffd3baaaffd5bcadfff2d6c5fffbdfcfffffe5d3fff6e2cfffe2c8b8ffe5ccbcfffee8d7fffff0e0fffde5d4fffff3e0fffffeeafffff1ddffffecdcfffffae5fffff2ddfffffff2fffffdebfffff5deffffe7d5ffffe9d5fffff0d9fffffbe6ffffeed9ffffe5d2ffffefddfffffae6ffffefdafffffae8ffffeddaffffecdbfffadbcdfffff9e8fffff2e0ffffeedcfffff1ddffffefddffffeedaffffead5fffff7d0ffffff8affffff7fffffff84ffffead7ffffe6d2ffffecd9fff7e2c9ffa79581fffffff7ffffffeefffff0d4fffff0d4fffff4dafffae5cfffffedd4ffffefd6ffffefd2fffdeccfffffefd3ffffeed2fffae5cbfff5e0c8fff0d9c4fffde7d0fffde9d0fffeead1ffffead4fff1dbc6ffedd8c1fff5dfc8fffce7cdfffde9d0fffbe5ccfffbe4cbfffeeed2fffef0d8fff9e5ceffe9d6c1ffefdac5fff8e1cafff4dec4ffefd8bfffeed8c1ffeedac5fff0dac5ffeed6c1ffe8d2bbfff4ddc4fff0dbc4ffebd7c1fff0dbc5ffeed9c1fff6e0c5ffecd6bdffe2ceb8ffe2ceb7ffe1cfb8ffe2ceb8ffd8c5afffe7d2bcffe5d2bcffe1ceb8ffddcbb6ffddc9b4ffdac5b2ffdcc9b5ffe4d0bcffd8c6b0ffddcbb5ffd4c3adffd7c6afffe0ccb7ffd7c3aeffdac6b1ffdbc7b1ffd2bfaaffdcc9b4ffd9c5b2ffccbaa5ffd2c0aaffdeccb1ffd3bfa8ffdbc8b3ffdbc6afffdec9b1ffddc8afffe0ccb2ffd7c3aeffd9c5aeffe0cdb5ffe6d1bcffe0cbb4ffd6c2aaffdac6acffd2bfa7ffcebba5ffd8c4adffcbb79fffd7c2abffd2bea7ffd0bca6ffcdb9a3ffc8b5a1ffc4b19effb8a493ffcbb8a1ffc9b69effcbb8a1ffc2b099ffbdac97ffb8a892ffc3b19affc3b29bffc0b09affbead98ffbaa994ffc6b49effbcac98ffbaa996ffac9d8cffb0a08effb5a390ffb8a792ffb29f8affb0a08effae9e8cffb3a28fffaa9887ffad9b87ffa89886ffad9c89ffb09f8bffa79684ffb09f89ffa79681ff9e8d79ff8c806dffaa9985ff7e7060ffc8b5a2ffa28a7aff9b8474ffb6984bffc2a33dffc6a842ffba9a37ff988272ff907b6cff8d7769ff927b6dff8e796aff907a6affa89080ff968172ff998273ff8f7d6fffab9181ff877467ff867164ff816e61ff847164ff847164ff887366ff836f62ff857165ff8a776aff847064ff817163ff7f7061ff837365ff746559ff7c6c5fff7a6a5dff79695bff78695dff807164ff796a5dff79695cff796a5dff7b6b5eff746559ff74665cff72655aff72665bff6d6055ff6d6155ff665a4fff675b4fff6c5e54ff675a50ff63574cff60544aff62564bff665b4fff65584eff685d51ff3e3731ff655b51ff5c5248ffdfc7b2ffd8c1afffe0c8b5ffd9c0aeffe3cbb8ffe4ccb7ffe9cfbcffead2c0ffe5ccbaffe8cfbeffe4ccbbffd1b8a8ffd4bcadffd1baaaffdec3b2ffddc4b4ffdac0b0ffd6bdaeffeacebffffadfcefff9decdfff8dccbffeacdbcffdbc2b1fff4d7c8ffffecddffffe6d4fffff5e1fffffff3fffff9e5fffff7e4ffffe9d4fffdecd7fffffde7fffff8e3fffff1dcfffbe2cffffff7e2fffff5e0ffffefddfffff1ddffffe2cffffff0dcfffffce6fffffeeefffff7e5fffff7e5ffffead9fffcddccfffffbe8fffff7e3ffffeedcfffff4e2fffff2deffffeedcfffff5cdffffff8dffffff97ffffff7fffffe8d7ffffedd6ffffe4d2fff1dec6ffae9c87fffffff8ffffffeeffffffeafffff6dbffffeed4fffcebd1fffbe6cefff6e0c9fffbe7cfffffedd1fffff5dcfffff0d4ffffeed5fff6e2cbfff9e2caffffecd4ffffefd7fffbe4cafffae2c8fffee7cffff8e1c9fff0dac6ffe9d7c2fff2dec3ffeedbc4fff7e1c9fffeecd0fff9e3cafff9e4cdfff6e2cafff0dcc6fff8e4ccfff3dbc4fff5ddc6fff0d9bffff1dac2fff4dfc8fff5dfcafff6e0c8fff5dfc6fff3ddc4ffe9d1bcfff3dfc9ffedd8c2ffebd7bfffe6d1baffebd3bdfff3ddc6ffe4d1baffe0ceb7ffe1ccb7ffe1ceb7ffd9c7b3ffdbc7b3ffe2cdb9ffd9c6b1ffdbc7b3ffd6c4afffd2bfabffd9c6b1ffd0bda8ffd7c3afffd9c7b2ffd6c3afffd8c4b0ffd0bea8ffd4c0adffd4c2adffd4c1adffd5c1aeffd9c4b1ffc5b29fffcebaa6ffdeccb3ffd3bea6ffdbc7afffd8c5adffd8c4abffe0ccb5ffd7c1aaffdfcbb4ffe3ceb6ffe2cfb7ffdfcdb5ffd8c5adffd4bfa6ffcbb8a2ffc4b49effccb8a3ffc7b4a0ffd1bfa7ffcfbca4ffd6c1abffd2bea7ffccb9a6ffc4b19effc9b5a0ffceb8a3ffcbbaa3ffc3b098ffc2af98ffc5b39dffbca995ffb2a392ffb7a891ffbbaa94ffb8a894ffb7a692ffc3b19bffc0ae99ffb5a492ffbcac98ffb2a28fffbcaa95ffb7a490ffb4a08cffb09e87ffb4a38effb09f8bffb2a18effb3a18cffaf9e88ffae9c87ffb4a18dffa89986ffae9d8bffab9b87ffa59381ffaf9d8affa2927fff8d7f6dffac9b88ff897a69ffc8b49fff9c8573ff998373ffb69b55ffc7a943ffc0a13bffc7aa46ff988274ff907b6cff927b6dff8a7565ff9a8272ff9d887cff927e6fff9b8578ff8b7a6cffab9384ff847166ff806e62ff897468ff8a7669ff857164ff897467ff7e6b5fff847063ff897668ff756459ff806e60ff7c6d5fff7c6b5dff7c6b5eff7a695bff766759ff796a5bff77685bff756658ff7b6d60ff78695bff736557ff7e6f61ff77695dff6f6155ff716458ff6f6156ff716357ff6a5c51ff6f6054ff685b4fff6e6054ff6f6155ff61544aff64574dff685b50ff64574bff66594fff63564cff423a33ff5e544aff5d5349ffdcc5b1ffd9c3afffe0cab7ffe6ccb7ffe6cdb8ffdfc8b3ffe0c6b0ffddc3afffd5bbaafff5dbc8ffe8d0beffdbc2b1ffe1c6b5ffd3b9aaffd5baa9ffdec5b3ffe3c8b4fff0d4c2ffebd2c0ffe8ccbcffecd0c0fff1d4c5fff4dbccffdbc4b2ffe3ccbcfffee2d3ffffe4d3fffff2ddfffffdecfffff7e5fffffeedfffff3dffffff8e2fffffeebfffffbe7fffff2e0ffffe5d3fffff0d9fffffbe7fffff9e7ffffebdafffffee9fffff8e8fffff5e1fffffdeafffff3e1fffffceaffffe7d7ffffeddeffffffefffffecdafffff0e2fffffff9fffffff1fffff4dfffffff94ffffff8effffff88fffffbe8fffff6e0fffff2dbffeedcc3ffa79783fffefce8ffffffe7fffffff2fffffcdeffffffe0fffff8dbfffde9cefffde8cefff7e2caffeed9c3fff2dec6ffffefd5ffffe8cfffffefd4fff4dfc8fff4dec5fffce6cffffae0cbfff9dfc9fff9e0cbfffce4cefff2dbc3ffedd9c0ffefd8bffff6dfc7fff2dac3fff8e2ccfff3ddc8fff4dec9fffbe4cdfff8e3ccfffde7d2fff8e2ccfff7e1c8fffae3ccffe9d1bffff2dbc7fff8e2cdfff3dec8fff5dfc8fff4dfcbfff2dbc5fff4dfc9fff0dac5fff0dac5fff5dfc9ffeed6bfffe1cdb6ffe4cdb4ffe0cbb5ffdecab5ffe4d0bbffe8d3beffe5d1bbffdecab6ffead5c1ffd8c4b0ffd9c8b5ffcab6a3ffd0bca9ffcfbda8ffcfbca8ffd2c0abffcebaa6ffc8b39effd1bda7ffd6c2aeffd1bca9ffcfbba7ffd0bdaaffd0bca9ffd8c3afffccbaa4ffccbaa2ffd8c4adffcfbba2ffd6c2a9ffd6c1a8ffdac5abffdbc8b0ffd8c6adffdccab4ffddcab4ffdbc7b1ffd6c3acffdac5abffd2bea5ffc7b59fffc3b09affc4b39dffc1af9affc2b19bffc7b69fffcfbca5ffcbb7a2ffc9b7a3ffc1af9cffbeac97ffc9b7a0ffc4b09cffc2af9affc0ae9affbdab98ffbba993ffb5a48fffbca994ffbca994ffc1ad99ffbba997ffb4a390ffbba995ffc1ae99ffbaa995ffbba995ffb8a691ffbaa893ffb8a490ffb4a18cffbaa894ffad9b89ffbaa994ffb8a691ffb19f8affb9a793ffb1a18dffb0a08dffb2a18fffac9a87ffa2917eff9e907bffa1917cff9b8c7aff908270ffcab69fff8c7d6dffc3ae9aff9a8272ff947e6fffb89a4dffc5a63effc4a53fffbd9e39ff8a7667ff897566ff8f796aff927b6fff958074ff988376ff937e72ff8c796bffab9183ff806f64ff7f6d63ff897568ff8a766aff837163ff887466ff847164ff806e60ff7d6b5eff7f6d5fff7f6f61ff6a5b50ff7c6b5eff79695bff7f6d5fff7f6f61ff78685aff756457ff78695bff7c6d61ff7a6b5eff7a6b5fff7c6e63ff796b5eff706357ff6f6155ff6f6155ff6f6255ff6d6053ff6d5f53ff6b5d51ff66594dff67584eff695b51ff65584dff61564cff62554aff65584dff63584eff3c3730ff655a50ff62564effcdb8a5ffc5b09dffceb7a4ffc7af9dffb8a392ffc2ac98ffcbb49fffd6bea8ffd8bdaaffecd3c0fff0d4c2ffd9bdadffd9beaeffcfb6a6ffceb7a3ffe2c9b6ffeccfbdffe8ccbbffefd4c1ffe8cebbffe5cabaffebcdbfffe4cab9ffeacebcffe6cbbbfffde2d0ffffebdaffffecd9fffffaeafffff9e7fffff0defffff5e1fffff9e4fffffde7fffffff1fffffcebfffff4dffffffee9fffffce5ffffffeffffffcebffffffeffffffdedfffffbe8ffffffedfffffbe9fffffdeefffff3e2ffffdfd2fffffbecfffffff2fffffff3fffffdedffffffe2ffffff93ffffff8dffffff91fffff8e3ffffe9d4ffffe7d5ffe8d4bbff988674fffffdeffffffbe4ffffffecffffffe8ffffffe6ffffffe6fffff1d3fffffde3ffffedd4fffce6cffff1dcc6ffeed9c0fffff2d9fff3dcc9fff1dbc4ffe7d2bbfff3ddc4fff3dcc5fff0d8c0fff6dbc3fff8e0c8fff0dac4fff2dbc2ffecd6befff5dec4fff9e2ccffffebd2fffee8d3fffce5cdfffce4cdfff2dbc5fff5dfcafff0dbc5fff2dcc4fff0dac4fff8e4c8ffefdcc4fff0dcc5ffedd8c3fff0d9c3fff5dfcafffbe4d0ffeed5bffff9e3ceffebd6c1fff3dac8ffeed8c2ffebd6bfffecd5bcffe8d0baffe1ccb8ffddc8b4ffe0cdbbffdecbb6ffe1cdb5ffe1ceb7ffd7c5afffdac8b2ffcfbda9ffdac9b5ffcfbca8ffe2ceb9ffd5c2adffd3c1acffd2bfa9ffd0bda6ffceb9a4ffd2bca7ffd6c2acffd2bfaaffd3beaaffd4c1acffd4c0a7ffd3c1aaffd2bfa8ffdcc8aeffd3c0a7ffd8c3acffd5c0a8ffd8c2aaffddc9afffd7c3acffdfccb6ffd5c3afffddcbb5ffdac4acffdac5acffd6c2abffc5b39cffd0bea7ffc1af9bffc1af9bffbdac97ffc5b29bffd0c0a9ffc0ad9bffbda994ffbba894ffbdaa95ffbfac98ffbca892ffb8a692ffc2af9affbaa995ffb7a692ffbfab96ffc1ae98ffc0ac98ffc9b59dffc0ac98ffc2ae98ffbea995ffb9a592ffb9a794ffb8a791ffb7a591ffb5a38fffb6a58effb0a08cffaf9f8bffb2a08cffb29f8bffb6a491ffb6a390ffb09e8bffb3a28effad9c89ffaf9b8affab9b86ffac9984ffa79680ffa0907cff9d8e7cff9c8d7cff928474ffb7a691ff8c7c6affc7b4a1ff907a6bff897465ffbc9b4bffc3a23dffbd9d3affbf9d38ff8e7869ff887166ff8a7367ff8d786aff8b7668ff877465ff826f63ff9b8478ff816e62ff7a685eff806d63ff826f63ff806d61ff826f62ff7e6b5eff79665bff77665aff76675aff766759ff6c5d51ff7c6b5eff726356ff75665aff79695cff78685bff75665aff79685aff7b6a5dff796b5dff76685bff7a6b5eff6f6155ff706254ff6e6054ff6d5f52ff695c50ff6e6055ff6a5e52ff64584dff695d50ff65584dff63564dff615348ff63574dff62574cff62554bff61544aff413832ff706359ff5f544bffceb7a4ffcdb6a2ffc5b09cffb9a593ffcab29fffd7bda8ffc9b09cffd1b6a2ffcdb2a3ffdcc3b3ffddc4b4ffd7beacffd2b9a7ffd3baa9ffd3baaaffe7cebbffeed3c2ffebcfbfffe8cdbeffe6cbbafffadfcdffd3bbabffead0c0ffecd0c0ffd5bcadfff6ddcbffffeedaffffead8fffffceaffffecd9fffffbe9fffffbe8fffff8e3fffffeecfffffff5fffffff0ffffffedfffffff3fffffff8fffffef4fffffff5fffffff7fffffff8fffffceafffffff5fffffeeafffff6e3ffffedddffffe3d5fffffef4fffffbe8fffffdebffffffeaffffff97ffffff97ffffff96fffff5e3fffff8e3fffff2dffff6dfc6ff9a8875fffbe4ccffffffecffffffeaffffffedffffffeafffffce0fffff7ddfffee8d1fffff5dbffffeed8fffde6d1fff2ddc7ffedd8c2fffae5cefffeefd5fff2dec6ffe9d5bdfff2ddc6fffae2c9ffffe7cffffce3ccffffebd4fffae3cbfff7e0c5fff8e2c7ffffecd1fffee7d0fffde5cdfffae1cafff5dcc6fff4ddc8ffeed8c4ffefdac5ffedd8c2ffefdac1fff2dbc4fff4dfc7ffe9d2bcffe9d3beffebd6c0ffefd7c2fff7e0c9fffae4ceffecd4befff0d9c3ffe7d0baffedd5c0ffedd6c0ffe6d0baffe8d2bcffe3cdb8ffe4cfbaffdac5b0ffe1cfb9ffdfccb6ffdecbb5ffddcab4ffdcc9b3ffddc8b4ffdac7b1ffdcc9b5ffd6c5b0ffdfccb7ffd4c2adffd1bfaaffd3bfa9ffd3bfa9ffd2bfaaffcdbba6ffd1bea9ffd8c3afffd5c2adffd5c2adffcdbba4ffd3c0aaffd7c4acffddc9b3ffd7c3adffdac5adffdfcab2ffd6c1aaffd2bea7ffd7c1aaffdac6afffdcc9b2ffddcab2ffdbc6adffd1bca4ffccb8a2ffc6b29dffcfbba5ffc5b29fffbfae9affbcab98ffbbab96ffc4b39fffc5b39effbdac98ffb5a390ffbeac98ffc7b29dffc5b19cffc5b29dffc8b5a0ffbfad9affc1af98ffc4b29bffc8b49effc9b49effc3af99ffc2ac97ffc0aa97ffb7a290ffb5a290ffb7a491ffaf9e8affb5a38effb7a48fffbaa995ffb09e8affac9b88ffab9985ffb09d8affb9a591ffb6a48fffad9986ffb19d8bffaa9783ffa89381ffab9886ffa79581ffa6937fffa69480ffa0907eff968676ff9a8a7bff928273ffb19f8bff8d7e6bffc6af9eff927c6fff8c776affaf9450ffc2a33fffbe9f3bffbe9f3cff897568ff947e72ff938073ff907c71ff877265ff7b695dff957e70ff7b695eff78675cff847064ff7d6b5fff7d6a5eff7d6b5eff756458ff736256ff705f53ff6d5d50ff716055ff6c5d51ff67574cff6a5a4eff6f6155ff6f6054ff706154ff6f6054ff6f5f53ff726357ff77685cff76675aff746659ff6e6054ff6a5d50ff6f6154ff6a5d51ff685b4eff605448ff5f5349ff65584dff605449ff5c5045ff5c4f44ff5e5047ff5c4f46ff53493fff594e43ff5b5045ff433a33ff63574eff5b5047ffdbc4afffd4bca7ffc9b4a0ffd0baa7ffd5bca6ffd6bda8ffe1c7b3ffd4b9a5ffd1b9a9ffdac0b0ffdcc3b2ffd3bcaaffd8beacffd7bcabffd1baa9ffe6cbbbffddc5b3ffe5cbbaffe5cab9ffecd1bffff7dbc9ffe7cabaffeacebdffd9c0b0ffebd1bffff7e2d0ffffefdcffffefdbfffff2e0fffff2e0fffffae7fffffae6fffff9e6fffffff1ffffffe9ffffffecffffffeefffffff0ffffffeffffff8e2fffffae4fffff8e5fffffff3ffffffefffffffeffffffff8fffff7e5ffffebdbffffeadafffffff1fffffdf9fffff4d6ffffff9effffffa4ffffff9bfffffff9fffffff2fffffce7fff5dfc6ff9f8e78ffefd8bffffff1dafffffbe3fffffadfffffffecffffffedfffffee6fffff7ddfffff0d9fffdebd3fffffce1ffffeed9fffde7d1fffce6cffff5dfc9fff6e2cafff3dfc8fff6e1cafff5dfc9fffde5cefffde4cdfffde7d1fff9e2c9fffce5cdfff5e0c5fff2ddc4ffeed9c4fff8e1cbfff9e2ccfff5ddc6fff1d9c3fff2dbc5fff6e0cbfff4dfc9ffefdac2fff3dec3ffedd7bffff6e1cafff3ddc6ffe8d3bcffedd7c0ffefd8c4fff1d9c1fff0d8c2fff6e2caffefd8c2fff2dec7ffead3bdffecd6c0ffefd7c2fff7e2c7ffe6d1bbffe0ccb6ffdfccb5ffdfccb5ffdac7b1ffebd7c2ffdccab4ffdfceb6ffdec9b5ffddc9b3ffd9c6b1ffe4d0bbffddcbb6ffdac6b2ffd7c4b0ffd4c0abffcfbca7ffcdbba8ffd1c0abffcbb9a5ffd5c1adffd8c4afffdac6b1ffd6c5acffd6c3acffd3c0a9ffd5c1abffddc7b0ffd3bea7ffd6c3adffd8c3adffd7c2aaffdbc6aeffd0bca6ffdbc5aeffdcc6b0ffdbc7adffd2bea7ffd3bfa8ffc6b29effc4b29dffcbb8a2ffc3b29effc5b4a0ffc3b29effbead9affc1b09cffc0ae9bffc0ae9bffbfad9affc4af9affc5b29effc7b4a0ffc3af9affc4b29effbfae97ffc3b19bffbaa894ffbdaa96ffbfab97ffbfa994ffb39f8effb9a592ffbfaa98ffb4a18fffb2a08bffb7a48fffb4a28effae9e8bffaf9d8affaf9d8affb4a08dffb39f8dffb49f8bffb39e8bffb6a290ffb09c89ffb19f8cffa79280ffa99684ffaf9c88ffae9b85ffa2907bff9c8b79ff9d8d7bff9d8c7cff9b8a7bff9c8b7cffbaa792ffa08d79ffcdb7a6ff937d71ff917b6effb19551ffbb9d3affbfa03dffba9b38ff8b776aff9b8679ff816f63ff837064ff77665bff917a6dff716057ff716157ff78645bff826e63ff7f6c61ff816d61ff7b695dff756257ff6b5a4eff706053ff6f5f53ff6e5e53ff726255ff6d5c51ff726254ff746458ff746659ff746658ff706256ff6e6054ff75665aff7a6a5dff76695dff726356ff675b4eff6f6255ff6c5f53ff66594cff65574bff605449ff64564aff63564aff5f5246ff605449ff5e5148ff5d5046ff5a4f45ff5c5147ff5d5147ff3d352fff5e524aff5c5148ffd5bfa8ffcfb8a1ffc7af9affc2ab95ffd4baa5ffceb6a1ffd9bfa7ffd7bfaaffdec3b3ffe1c8b5ffead1beffd9bfadffdbbfacffe1c5b3ffdec3afffebd0beffd9bfacffd6beabffe7cbbaffebcfbfffe5cab8ffe2c7b5fff1d5c1ffe7cbb9ffdac3b2fffee5d3fffff0ddfffff1ddfffffdeafffff6e4fffffdebfffffdebffffffedfffffff1fffffffafffffff5fffffff1fffffff1fffffff0fffffdedffffffe8fffffffafffffff9fffffff7fffffffefffff7e8fffffff2fffff5e2ffffe6d7fffffff8fffff8dfffffff91ffffff9fffffffa0fffffff0fffffff1fffffff2fff8e1c5ff9d8c77ffffffe9ffffffe5ffffffe6ffffffebfffffff0ffffffe8ffffffebffffffeffffff4dbfffffee6fffff5dcffffefd8ffffebd3fff1dbc5fff7e1cbfff6e0cafffce7cdfffae6cdfff1dfc6ffedd7c0fff4dfc5fff1dcc5fffbe5cffff7e2cafff5dfc4fffbe5cdfff7e1cbfffae5d0fff8e3c9fffeead3fff4dec6ffe8d4bdfff3dec8ffefdbc5fff7e2ccfff5e0c8fff8e2c8fff2dcc3fff8e3ccfff7e2cbffefdac4fff1ddc7fff3dec6ffecd8c2fff1dcc5ffefd9c2ffecd7c2ffecd9c5fff6e2ccffedd8c1ffedd8bfffeed9c1ffe8d1b8ffe6cebbffe1cdb6ffe0cdb5ffdcc8b3ffe6d1bcffe3ceb8ffddc9b3ffe7d3beffdcc7b4ffdec9b6ffdac6b3ffd9c6b4ffd8c5b1ffd2c1afffd7c3b1ffcbb8a5ffd7c7b1ffcbbaa6ffd1beacffd9c6afffd5c1aaffdbc7afffcfbca4ffd1bda9ffdbc8b2ffd6c5adffd8c5aeffd3c0a9ffd4c0a8ffd9c5acffd0bca4ffd3bda6ffd6c1aaffcab59fffdcc4aeffd9c3acffd4c2abffc7b29dffcfbca5ffbead97ffc0af9affc0ae98ffb3a18fffb9a795ffbba996ffbdaa97ffc2b09cffb8a793ffbba894ffbfac95ffc1af9cffc0ae9bffc2af9bffc0ae97ffc1af9cffc0ae9affc1ae9affc0ad98ffc4b19dffb2a08cffb29f8dffbfab98ffbaa694ffbca896ffb7a491ffbca994ffb8a591ffbba995ffbaa895ffb4a390ffb7a591ffaf9d89ffb4a390ffb09d89ffaf9d8affa89886ffb1a08effb2a18effa79682ffae9c87ffae9c86ffa8947eff998877ff9f8d7cff9e8c7cff9b8a7bffa79485ff9f8d7cffc6b09cffa18f7cffc8b5a0ff947d70ff967f71ffb69847ffb79c3fffbc9e3bffbb9e3eff907d70ff826f64ff89756aff847165ff907a6eff78665bff77665bff7f6d62ff7b685dff816e62ff827166ff7c6b5fff7a6a5dff776559ff6d5d51ff6c5c51ff69584cff6e5e51ff776658ff6c5d50ff66584dff796a5dff716255ff736457ff746659ff766759ff706254ff766759ff6e5f53ff6f6053ff6e6052ff6d6052ff6a5c4fff64574bff63574bff695d50ff63564aff5e5045ff5c5045ff5e5349ff605448ff675b4fff62564bff61554aff38322dff5e534bff5b5149ffd1bca5ffd8c1aaffd4bfa9ffd1bca6ffd5bda7ffe1c7b1ffd4bda7ffd7c0aaffdec4b4ffe7cebeffdcc4b2ffd6bbacffdabfafffebccbcffddc3aeffe2c5b4ffe1c5b5ffe7ccbbffe4c9b7ffdac1afffead1bcffe0c7b4ffe8cdbbffefd3c0ffebd1befffae3cefffdead6ffffefdcfffff4e2fffff9e5fffffae6fffffff1fffffdf1fffffff1fffffff3fffffffafffffcecfffffff7fffffff4fffffdeafffffff3fffffffafffffff9fffffff6fffffffafffffffefffff8e8fffffeeeffffe9d7ffffffdeffffff8dffffff9fffffffadfffffffffffffffffffffffbffdcc8afff9a8872fffffff1fffffff2fffffff0fffffff1fffffff8fffffff5ffffffeefffffff0ffffffe8fffff4dafffff8defffffde7fffff5d8fffff7dcffffefd4fffff2dafffff0d8fff3ddc6fff8e2caffecd7c2ffead7c1fff3dec9ffedd8c2ffffecd4fff5e0c9fffbe5ccfffce9cffff1dbc1fff4dfc7fff6e3cbfffde8d1fff3e0c9ffe7d5c0ffefdec8ffe5d4bfffecd8c2ffefdcc4fff6e1c9ffecd8bfffeedbc4ffefdbc2ffe9d4bcffefdac0ffedd9c0fff0dac3ffe8d4bafff0ddc3ffedd6c0fff3ddc7fff6e1ccffe2cbb4ffeed6c0ffe5cfbaffead4bfffe6d1bcffe3cdb8ffdfcbb4ffebd3bdffe5cfb8ffead4bcffe4ceb7ffe7d2bbffdac6b1ffdbc7b4ffdecab5ffdac7b1ffd4c3aeffdfcbb5ffe1ccb7ffd1bda9ffd7c4aeffd5c3adffd4bfadffd7c3b0ffd4c0acffd5c0aaffd3bfaaffd1c0aaffd2bfaaffd4c2aaffe3d0b6ffd1bea5ffd5c2aaffdac8b0ffd9c7aeffd6c0aaffdbc4adffdfc8b0ffd9c3adffd3bda5ffcbb6a1ffc8b59fffc4b39dffcbb8a3ffc7b49cffc6b59effbead98ffcab59fffc4b19cffbba895ffbba894ffb5a591ffb9a995ffb8a693ffbcaa98ffc8b6a1ffc1af9bffbfad99ffc1b09affbca995ffbdac98ffc0ae9affc2ae9cffb4a28fffb8a896ffb09f8effb5a490ffb6a391ffb8a693ffb9a792ffb4a28effb6a692ffb09e89ffb4a38effb4a38effb7a792ffae9b87ffb4a38dffac9a87ffac9a87ffb5a591ffb1a18fff9f8e7affa49381ffa59482ffa1907effa59583ff9f8e7eff9c8b7affa3907fffa79684ffa79583ffa5927fffc2ac96ff948371ffc5b19cff8d786cff8c776affb29652ffc2a342ffc1a548ffb89c3bff836f64ff8c776bff857367ff907b6fff7d6b60ff7f6d61ff836f62ff826f63ff7f6c61ff7f6c61ff7a685cff7c695bff715f54ff705f54ff6f6053ff6c5c51ff695a4fff6f6053ff6e5f53ff6f6154ff706155ff736457ff786759ff79695bff746658ff716155ff6f6154ff6b5d51ff695a4fff6c5e50ff63574bff605448ff615449ff62564bff6a5d50ff66594cff5d5146ff5f5247ff5f5346ff5f5348ff64584dff605449ff61554bff3a332eff62584eff584e46ffd7c2aaffd2bda7ffd2bda8ffd3bdabffceb7a2ffe1cab8ffdcc2adffd9bea9ffe2c8b7ffd3bcb0ffd9c0b0ffd5bcadffe6c8b7ffdbbfb0ffdac0b0ffeccfbeffe4c9b8ffd8bfadffdbc3b1ffd0b9a8fff0d7c4ffd7bfaefff8ddc7fffadfccffeed6c2fff7e1cdffffeddbfffff3e0fffffbe8fffff9e5fffffeecfffffff0fffffdf0fffffeeafffffff0fffffffafffffff9fffffff0fffffff1ffffffeffffffff0fffffff1fffffffefffffffefffffff8fffffffafffffff9fffffff3fffff7d7ffffff96ffffff9bffffff9dfffffffffffffffffffffffdffccb8a1ff9d8c7afffefdf7fffffff9fffffffffffffffcfffffffffffffff5fffffff3ffffffeaffffffecfffffff1ffffffeaffffffe9fffffce4fffff6dbfffff9e0fffffbe4fffff1d8fffde8d0ffffecd3fffae3cbfff6dfc9ffe8d4bffff2dfc7fff4ddc8fff9e3cefffae6cefffce7d0fffde7cdfff7e3cafffce8d0fff7e5ccfff2ddc7fffae7cfffefdec8ffeddac3ffead7c3fff6e3cbfff0dcc5fff4dfc7fff2dcc4fff1dbc3ffe7d4bdffeddac2ffeedbc2fff0ddc5ffe9d6bbffedd8bffff2dcc5ffebd3befff1dbc5ffeddac5ffedd7c1ffe7ceb7ffe9d1bbffe1cab5ffe1cbb7ffead3beffead3beffe7d1baffead3bdffe8d1bbffecd6c0ffead4bdffdcc8b4ffdfccb7ffe2d0baffe2d0bbffe3d0bcffdeccb7ffd2bfacffd8c3adffd4c1adffcfbca8ffd4c1acffd5c2adffcfbda9ffd1bda8ffd1bba8ffd4c0abffd9c5aeffd0bfa9ffd3c0aaffd7c4adffdac6afffe2ceb5ffdfc9b3ffdbc5b0ffcfbaa6ffcebaa6ffcdb9a5ffd1bea8ffd6c0a8ffceb8a1ffc7b29bffc6b39dffc2ae98ffc9b6a0ffbfae98ffc4b19bffc1ae9affc1af9bffbfab96ffb9a894ffb7a693ffb8a894ffbeaa99ffbaaa97ffc3b29effc0ae9bffc1af9affbfae9affc2b19cffbfae99ffc0ad99ffbaaa97ffb9a694ffb3a291ffb7a594ffbbaa96ffbaa795ffb6a390ffb39f8cffb5a18effb1a08dffb2a28effaf9f8cffb3a38fffac9b85ffb09f8bffac9b89ffaf9e8bffae9f8bffaa9c8affa59480ffa1907dffa18f7dff9e8d7bffa1907fffa59382ffa69483ffa79582ffa89685ffa79583ffa79481ffa79481ffb19e8aff91806effcbb6a3ff917b70ff978275ffb09858ffc0a444ffb29536ffb69836ff887467ff7f6f64ffa48d7fff7c6b60ff79675cff7f6d61ff806d62ff7f6c60ff857266ff7f6c61ff867264ff79685bff7b6a5cff766557ff776759ff6d5f52ff726355ff746457ff756558ff706155ff6e6052ff7a685cff7b6b5dff716155ff6f6055ff6c5d52ff716357ff66584dff6d6053ff675a4dff675a4cff5d5146ff675a4dff66594cff695e4fff605449ff61574cff5e5348ff675b50ff61564bff62574dff60564bff39332dff5f554dff584e47ffc7b29fffd1baa6ffd4bea9ffd8c1acffdfc9b3ffd6bfacffd6beabffe1cab7ffedd2c2ffc8b0a1ffd3bcadffdcc4b4ffe8cdbdffd5baacffdbc3b2ffe3cbbaffdfc5b3ffd9bfafffcbb4a4ffd9bfb0ffd8beaefff6dbcaffedd4c1ffffe8d5ffffe9d5fffff6defffff5defffff7e0fffff8e1fffff7e2fffffae6fffffff0ffffffeffffffff9fffffffcfffffffefffffffcfffffde7fffffff8fffffff8fffffffcfffffffafffffffdfffffefafffffffffffffff1fffffffffffffffaffffffa3ffffff9dffffff98ffffffffffffffffffffffffffd2bea6ff948471ffffffecfffffffefffffffffffffffffffffffffffffffefffffff8fffffff0ffffffe9ffffffeafffffff2ffffffeafffff9deffffffebfffffbe2fffff8e0fffff3dcfffff0d6ffffeed6ffffeed7fffce5d0fff4ddc9fff7e2cbfff4dec5fff4dec8fff6e2cbfff7e3cafff3dfc8fff0ddc4ffeedbc2fffde7cffffff0d6ffffecd2ffffe9d1ffeddac3ffebd7c0fff1dcc6fff4e1caffe4d1bcffedd9c3fff3dfc6fff1dcc4fff6e1cafff4e1c8fff7e2cafff2e0c7fff3e0c7ffeed8bffff1dbc3ffe6cfb9ffefd8c2fff0dac5fff2dbc5ffebd3beffe9d3bdffe9d1bbffe8d2bdffe2ccb8ffebd5c0ffe7d2bbffe9d4bcffe4ceb7ffdfc8b1ffead4bcffdecab3ffdecbb3ffe6d3bcffe2d1baffe1cebaffd7c5afffd6c4afffdac6b0ffd5c3aeffdecab3ffdcc7b2ffd3bfaaffd3c0abffd2bda9ffdbc6b0ffd7c2acffd9c5aeffd6c4adffcfbca7ffd6c2aaffdbc7aeffd9c4acffd6c2acffd4bea8ffd0baa6ffcbb6a3ffcbb7a3ffcbb7a3ffc9b5a0ffbfab96ffc5b09bffc7b49fffbeab97ffc1ae9bffbcaa95ffc0ad98ffc5b39fffbfad99ffbaa895ffbdab99ffbcac98ffbeac98ffbdaa99ffbfae9affb9a895ffbbaa97ffb5a590ffbcaa97ffc6b5a1ffbead99ffc9b49effc1ae9bffb6a492ffb6a492ffbaa896ffb2a18fffb19f8effb6a492ffb3a18dffb9a693ffb3a18effbcaa96ffb4a490ffb5a691ffb6a692ffb09e8affab9b88ffad9c8affab9a88ffad9e8bffab9b89ffa59583ffaa9987ffa49280ffa79684ff9f8e7dffa59382ffa79683ffa1907fffa08e7cffa69481ffa2917effa18f7dffc4b099ff998875ffd5c0abff968071ff958173ffb59c51ffb79c3dffb69b3affba9c3dff816f61ffa1897cff7e6b60ff847165ff857166ff877467ff827063ff897568ff827063ff7c6b5fff816f62ff816f62ff7b6a5eff7e6c5fff7d6c5eff78685aff77685bff78695cff726357ff706155ff79675bff77675bff77695cff706255ff74655cff79685eff6a5c52ff76685cff6e6054ff6d5f51ff65574bff615449ff605548ff5d5146ff665a4dff63574aff5f5347ff665a4eff61564cff615549ff61564bff39322cff554b43ff584e45ffd0bba7ffceb6a3ffbfa996ffd9c7b1ffc8b3a1ffdfc8b4ffd5c1afffdfc7b7ffe1c9baffe3cbbaffdbc5b4ffd9c4b3ffe1cab8ffdbc1b2ffddc7b6ffd9c1b0ffe3cab8ffc7aea1ffd8bfadffdbc0b1ffebcebfffdac0b0ffebd0bdffffebd6fffff2ddffffe9d5fffff0daffffe9d1fffffeebfffff8e3fffffff8ffffffeefffff9e9fffffff7fffffff3fffffffdfffffffcfffffffffffffffffffffff9fffffffffffffffdfffffff9fffffffffffff8ebfffffffefffffee1ffffff9effffff9fffffffa6fffffffeffffffffffffffffffb1a08dff988774fffff6dffffffff7fffffffffffffffffffffffffffffffffffffffefffffff9fffffff3fffffff9fffffff8fffffff9fffffff7fffffce3ffffffe9fffffff1fffffae3fffff7e0ffffefd6fffffce5fffffeeaffffecd8fffce5d1fffbe5cffffde8cffffde8d0ffffeed7fffae7cdfff8e3c9fffae4cbfff8e1c8fffce5cbfff6e3cafffee7cefffde7cffff0dac3fff6e0c9fff9e3ccfff8e5cffff1dec7ffeedbc4fff4e1c8fff4e0c9fff4dfc9ffe7d6bdffeddac2ffe7d4befff1dcc5ffedd7bfffebd4bcfff2dbc5fff2dbc5fff2ddc5ffeed8c2ffe9d3beffe8d5beffe5d0bbffe0cdb7ffe3cfbaffd6c3aeffe6d3bbffe8d4bcffdfcbb4ffe0ccb5ffe6d1baffe2cdb5ffdac6aeffe3d0b7ffe0cfb9ffdfceb9ffdacab7ffd9c6b2ffd5c2adffd6c4afffd7c4aeffd8c3aeffd1bea9ffcab6a0ffd8c3adffd6c1acffd8c4adffd8c5adffc6b49fffd1bea7ffc7b79fffd5c2abffdcc7aeffd5c1aaffd0bba5ffcebaa6ffc9b5a1ffd2bea9ffccb9a3ffcbb9a3ffc5b09bffbeac97ffcab7a1ffc8b5a2ffc3b19effbdab96ffbfab96ffc9b6a3ffc7b5a3ffbfac9bffbdaa99ffc3b19effc3b19dffb9a896ffbfac98ffc1b19bffbeac99ffc1ad9affc4af9bffbdab97ffbfad9affc0ad99ffbba896ffb5a290ffbcaa97ffbdab98ffb8a897ffbaa796ffb3a28fffb5a590ffb8a692ffb3a28effae9e8affaf9f8bffb0a08cffaf9f8cffad9c89ffad9d8affb5a492ffb0a08dffafa08cffa99886ffa89785ffa59483ffa1907fffa1907fffa39281ff988878ffa79785ffa08f7effa1917effa39380ffa2917effa2907cffa7947fffccb8a1ff90806fffbfab98ff917d6eff958071ffb19853ffba9f44ffb79839ffb49638ffa58c7fff826e64ff877367ff827065ff816f64ff847366ff7d6d60ff827165ff7e6d60ff7e6e5fff7c6c5eff78685aff79695cff705f55ff78685cff7c6c5fff756457ff79695bff78685cff76665bff726155ff6e6154ff76685cff716559ff72655aff6a5c51ff605449ff6b5d51ff65584dff67594dff685a4cff675b4dff66584cff65584cff6b5d50ff695c4fff5f5549ff62564bff64594dff63584dff3c342eff554b43ff5d5349ffd3bdacffd0b9a8ffcbb6a3ffd3c0acffc9b5a4ffe0cab8ffd9c4b3ffdac4b2ffdcc5b5ffd8c3b2ffe6d0beffd4beaeffc7afa2ffe1c7b6ffd6beadffcab6a7ffd6bfadffc0aa9bffdcc4b4ffe2c8b9ffd4bbaeffd1b8a7ffebcfbdffedd4beffffe8d1fffbdfc9ffffedd7fffee4cefffff8e0ffffecd5ffffffedffffffedfffffbe8fffffff2fffffff4fffffff1ffffffeffffffffafffffffafffffffafffffff1fffffef7fffffcf4ffffffffffffffffffffffebffffffa3ffffff98ffffffa7fffffffdffffffffffffffffffccbaa2ffa5937fffffffeafffffff8fffffffefffffffffffffffffffffffffffffffffffffffffffffffbfffffff6fffffffafffffffefffffffcfffffffcfffffff5fffffff2fffffbe8fffffde6fffffae1fffff8dffffff7defffff9e3fffdebd5fffbe7d0fff6e0cbfffae5cefffde8cffff9e6cdffffedd1fffbe8ccfffde5cafffbe4c8fff8e2c8fff6e1c7fff1dbc2fff7e0c8fffde4ccfff1d8c0fffbe5cefff6e1c8fff3dec5ffeedac3ffe9d5bfffeddac0fff3e1c8ffefddc6ffeddac4ffeddbc3ffebd6bffff0d9c3fff0dac3ffecd4bcffeed5bdffefd7bfffefd8c1ffdecab5ffe1cdb5ffe4cfbbffe0cdb7ffe7d6bfffedd9c2ffe9d3beffe7d1b8ffd9c4aeffe3cfb8ffe3ceb6ffdfcbb5ffdecab3ffd6c1adffdac3aeffd7c5b3ffddcab7ffcbbaa6ffdcc9b3ffd9c6afffd9c5aeffd5c1abffcab7a4ffcdbca6ffcab8a5ffd7c3acffceb9a4ffcbb7a2ffc0ac96ffcfb9a3ffcab6a0ffceb9a2ffd4bfa6ffceb8a1ffcbb8a3ffccbaa4ffcbb7a3ffcdbba6ffcdbaa7ffcebca6ffccbaa5ffc8b6a1ffc8b4a0ffc4b29fffc5b29dffc4b19cffc8b4a1ffc6b39fffc2b19effb9a896ffbba997ffbaa796ffbdab99ffc0ad99ffbeaa97ffc8b49dffbeac97ffc0aa95ffc1ad97ffbeab96ffbaa793ffb7a490ffbca895ffbeab99ffbca896ffc0ac9bffb7a492ffbaa592ffb6a391ffae9d8affb4a28cffb6a690ffaf9e8affae9d89ffb1a28dffae9e8bffae9d8bffb09f8cffac9a87ffb1a08cffac9a87ffa99784ff9e8e7cffa59380ffa29181ffa89886ffa99987ffaa9a88ffa89686ff9f8f7cff998978ffa4937fff9f8d78ffa6927fffa59480ffa8937effac9986ff7c6d5eff9b8b7bff897568ff978274ffac9455ffb99d3dffb59837ffc7ab4bff8b766cff7c695dff7c6a5dff867568ff7c6c60ff867567ff816f62ff7c6c5fff7b6b5fff7c6c5fff807064ff796a5eff75675bff7b6a5eff7a6a5eff77685dff79695dff73655aff79685dff76665bff77685cff75675bff736358ff76675cff6f6156ff726458ff695b4fff65584cff5e5247ff6a5b4fff65584dff625448ff5d5145ff63564aff695e51ff6b5e53ff64574dff63584dff5f544aff3a342eff655a50ff5d5349ffc5b09fffc3b09fffc7b2a0ffc5b0a0ffc7b5a5ffdcc8b3ffe7d0bfffe2cdbcffe2cab9ffdac3b4ffd0bbabffd3bbabffe2c9b5ffe4cebbffe6cdbcffebd4c2ffdfc5b4ffd2bbacffcfb4a7ffe6cab9ffe8cbbcffe2c6b6ffedd3bfffefd1beffffead5fffbdcc8ffffefd6fffffee7fffff6dffffff6e0fffff9e2fffff1daffffffedffffffeefffffffbfffffff9fffffff1fffffffffffffff2fffffde9fffffff3fffffef0fffffcf3fffffffffffffffaffffff9bffffff9bffffffa0fffffdf9ffffffffffffffffffdecbb7ffb2a18afffefef9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffafffffffffffffffffffffffffffffff6ffffffeffffffff6ffffffeefffffbe3fffffee7fffffae3fffffce5fffff9e0fffff1dafff8e7d4ffffeed8fffae7cffff8e4cdfffdefd8fffae3cbfffce6ccffffecd2fffce4cafff8e0c7fffae4cbfff6e0c9fffae3ccfff5dec7ffffe9cefffde6cefff7e1c7fffbe5cefff6e2cbfff4e1cbfff6e4cdfff1ddc7ffecd9c3ffeddcc3fff7e2cbffefdac2fff1dac3ffedd7c0ffebd5bcffeedac2ffefdbc2ffebd6bfffe1ceb9ffe7d2bdffdfc9b6ffdecbb6ffe0cdb7ffe0cab4ffe4cfbaffdac8b3ffdfc9b5ffdfcbb8ffdec9b4ffe0ccbaffcebaa6ffe1ceb9ffe3d2beffd3bfacffd7c4b2ffcbbaa6ffd4c2b0ffccbaa6ffe0ccb8ffd9c7b1ffd1beaaffd4c1aeffd7c6b3ffc9b8a3ffcdbaa7ffcfbca9ffccbaa6ffc7b4a1ffccbba4ffccbaa4ffd1bfa8ffcfbba6ffcbb8a2ffc7b3a0ffcbb7a3ffd1bda9ffc6b39effcbb7a4ffc3b19dffc0af9bffc5b2a1ffc0ac99ffbba892ffc1ae9bffc3b19dffc5b29fffc2b19dffc3b1a0ffb7a696ffbeab99ffb9a794ffc2af9dffbfab98ffbca894ffc3af9affc5b09cffbea894ffb9a592ffc1ac98ffb8a593ffbaa795ffb2a08effc4af9bffb9a593ffbba793ffb9a693ffb6a591ffb0a08bffb4a38fffad9b88ffb3a18dffb3a48effb8a692ffac9c88ffb0a08cffab9b88ffac9d89ffad9e8bffac9d89ffa79785ffa09080ffa59484ffa39282ff9b8c7bffa1917fffa1917fffa89786ff9a897aff9a8a7bffa29280ff9f8e7cffa39281ffa79580ffa59583ff857767ffa89582ff958573ff9f8f7eff837165ff8b786affad924bffb09234ffc5ab4bffb09436ff8a776aff847366ff847466ff847265ff7f7062ff79695cff837264ff817062ff827165ff7e6e61ff7c6c5fff7a6c5fff77685dff736459ff75665aff76665aff76665aff706257ff736458ff756558ff76675bff78685cff736458ff6f6156ff6d5f53ff63564cff6a5b50ff6c5e51ff695c50ff64574bff67594fff615449ff64584cff64594dff675a4fff60544bff5a5047ff61554bff38332cff5b5148ff574d44ffc7b1a1ffc8b3a3ffcdb8a6ffc1ac9dffd7bfafffc5b0a0ffcfbba9ffc6b3a2ffddc7b6ffd3baacffbda89bffd2bbaeffd9c0b1ffe0c6b6ffdcc5b4fff0d9c6ffe8cfbdffebd2c0ffe7cdbafff6dac7fff2d6c4fffeead7fff9ddcbfffde7d2ffffe9d6fffde3ccfff7dac3fffff6dbfffffde3fffff9e1ffffffe8ffffffecfffffff1fffffff4fffffff5fffffffefffffff3fffffffbfffffff7fffffffffffff6e6fffffffafffffdf1fffffff2ffffff9affffff9cffffff9afffffffffffffdf9fffffffdffe0ccb6ffa49483fffef3dbfffffff8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fffffff2fffffff5fffffff3ffffffebfffffae3fffffeebfffff7e0fffffce5fffff0dafffeebd6fffce8d4fffde6cffffff2ddffffedd5fffeefd5fffae4cafffce6ceffffefd3fffeead0fffce7cdfff6dfc6fff5dfc8fff2dbc4fff2dcc3fff6e0c5fff4ddc4ffeed8beffefdbc2fff2dec7fff7e3cdfff5e3cafff6e2ccfff8e3cdfff3ddc7fff2ddc6ffe9d5bdffeed8c0fff4dfc6ffebd5beffe9d4beffeed9c0ffeed8c1ffe4ceb6ffe4ceb7ffe3cdb9ffe4ceb8ffe0cbb6ffe2ccb8ffdcc8b2ffd9c6b2ffdbc6b2ffd4c0acffdcc9b2ffd7c3afffdac5afffd6c1abffdcc6b2ffdbc8b2ffdbc9b7ffd2bfacffc4b3a0ffcab8a6ffd1bbaaffd3bfacffd8c6b2ffd3c1adffd2bfadffd2bda8ffc3b29fffc0ae9cffc5b3a1ffbfae98ffcbb9a3ffcfbda7ffd0bca7ffcfbba3ffccbaa4ffcebaa3ffccb8a4ffc8b4a2ffc8b4a2ffc2ae9bffbfac9affc4b19fffc2af9dffbdaa97ffbdaa96ffc8b59fffbdac99ffc3b09dffc1ae9cffb9a897ffb5a493ffbca996ffc1af9dffbfae9affbfac97ffbfab97ffc1ad9affc7b39dffbfac97ffbda995ffbca895ffb9a694ffb7a492ffb8a690ffb6a490ffb09e8cffb09e8affb3a28effb7a591ffb7a592ffbaac95ffbba996ffb2a18effb3a18effb5a38fffad9d89ffb7a58fffae9e8bffad9c8affab9a8affa99785ffac9a8affa28f7effa99a87ffa29281ffa39281ff9d8c7dff9f8e7fff9d8d7dff998b7bff998979ff9a8a79ff9c8c7affa89684ffae9b85ffa08d7bff8b7b6aff7b6d5effb6a591ff8f7f6dff908171ff887468ff857266ffa28538ffc0a549ffae9234ffb19739ff857367ff897669ff77665aff7e6d60ff7d6c5eff7c6b5eff77675aff7e6c60ff7c6b60ff78685cff7b6a5fff74675aff706156ff6e5e53ff726358ff746459ff7c6b5fff746558ff76675bff726559ff726357ff6e6055ff6d6055ff685b51ff64584dff5d5146ff61554aff66594dff685a4fff61554aff60544aff605349ff60544aff66594fff605449ff5c5147ff5e5349ff38312bff4e443cff564d43fffff250ffffee4afffff552fffff54efffff54efffff651fffff752fffff651fffff863ffffe64dffffe03cfffffe5afffffe5afffffb54ffffff5dffffff63ffffff5fffffff5dffffff55ffffff5affffff62ffffff68ffffff6dffffff70ffffff71ffffff73ffffff72ffffff77ffffff7fffffff83ffffff85ffffff88ffffff94ffffff92ffffff93ffffff8effffff8bffffff95ffffff93ffffff94ffffff94ffffff92ffffff99ffffffa1ffffffa6ffffffa3fffffffbfffffffdfffffff6fffffae4ffc3b29cfffefbebfff9e6d0fffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffff1fffffff2fffffff4fffffffdfffffff5ffffffebfffffff1fffff2ddfffff4ddfffff8e1fffff4dffffeead6ffffebd5fffff1dcfffae4ccfffae5ccfff6e2c9fffde9d0ffffefd4fffce8cffffae4cbfff8e2c8fff0dac3fff5dec6fff3dcc5fffae3ccfff6dfc7fff7e0caffefd9c5fff3dec8fff7e2ccfff0dbc5ffeed8c1fff2ddc7ffeed9c3ffebd8c1ffe6d1bbffead4bcfff3e0c6fff6e2c8ffecd7c0ffecd6beffe7d2bbffe3ccb4ffe4cfb7ffddcab4ffe1ceb6ffe4ceb7ffdcc6b1ffd8c5afffd8c5b0ffd4c0acffd9c4afffd6c2adffdfcdb8ffd5bfa8ffd9c4aeffd7c3aeffe1ccb7ffcebba8ffd3c0adffc6b4a2ffbbab9affcebaa9ffd8c6b1ffd8c5b2ffdac7b4ffccbaa8ffc7b4a1ffc5b4a1ffc7b6a3ffc4b19effc8b39dffcebca7ffcfbca7ffcab8a2ffcebaa4ffd2c0a9ffc8b4a0ffc6b3a0ffc3b09dffc2b09cffbeac98ffbaa896ffc6b3a0ffc3b19dffc1ae9bffbfad99ffc0af9affb8a797ffbdab98ffc3b09dffbaa998ffbcab9affbbab98ffbba997ffbdaa96ffc0ad97ffbaa894ffc5b29effbead97ffbca994ffb5a18dffbeab97ffb8a592ffb9a692ffbba895ffbba895ffb6a390ffb5a390ffb1a18dffb9a894ffb4a38fffb1a08dffb09e8bffb1a18effae9c8affaf9e8bffa99885ffae9d88ffb09e8bffb3a28fffaa9988ffad9a89ffa49281ffa2917fffa39281ff9f8e7effa0917fffa08f7eff9e8d7dff948576ff97897aff988878ff9a8a7aff9d8d7cffa39482ffa3907bffab9784ff9a8977ff908170ff8a7b6cffaf9c88ff7a6b5bff87796bff826f63ff8f7a6dffb29858ffb09335ffaf9436ffaf9537ffac9236ffab9134ffb09638ffa88f33ffa68c30ffa78c2dffaa9135ffa58c33ffa1852affa3882dff9e8328ffa1862bffa0872eff9d8429ff9f852dff9c842dff998029ff998029ff98802aff957d28ff937c25ff927b25ff927c26ff927a24ff8d751fff8f751fff8b721fff8b7320ff8a7220ff8b7422ff897120ff887120ff846e1eff87701fff846e1dff846e1fff57460fff735b13ff856d1dffffed4bfffff04efffff251fffff24ffffffb56fffffd5afffff14cfffff753fffff861ffffd944ffffe240fffff952ffffff63ffffff5bfffffd57ffffff60ffffff62ffffff58ffffff63ffffff67ffffff63ffffff62ffffff6cffffff74ffffff7dffffff78ffffff71ffffff77ffffff7bffffff82ffffff85ffffff8bffffff95ffffff8bffffff92ffffff8effffff89ffffff9fffffff94ffffff96ffffff94ffffff97ffffff9affffff9dffffff9ffffff7e7fffffffbfffffff0fffffde3ffd3c2aafffffffffffffffdfffffff9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fffffff6fffffff9fffffff4fffffff4ffffffe9ffffffeffffffde4fffffeeaffffedd5fffff0d9fffff4ddfffff4ddfffae5ccfff5dec7fff6dfc8fff8e1c9fffeebd1fffae6cbfffce9cefff8e4cbfffbe6cbfffce5cafffbe2c9fff3dac4fff9e0cbfff8e1ccfff8e2ccfff2ddc9ffecd6c1fff2dcc4ffedd7bdffecd4bcfff2dcc5ffe9d5beffe4d2bcffe5d1bbffe5d0b8ffe2cdb7ffecd8c0fff2dac2ffecd6bdffe5d0b8ffe0cbb4ffddcab3ffe1ccb6ffe5cfb7ffe0cbb3ffd8c4aeffd6c3adffd8c5b1ffd0bda8ffd9c5afffdbc9b2ffdbc8b1ffdac5adffdbc7b0ffd5c2acffcdbaa8ffc9b7a5ffc6b4a3ffc8b5a3ffbeac9affcbb8a6ffd3c0aeffd7c5b1ffd3c1adffc9b8a5ffc2b099ffc6b5a1ffc2b09cffc6b39dffc4af99ffc9b5a2ffc4b29fffc7b5a1ffcbb8a1ffcab6a1ffc3b19dffbead9affc1b19effc7b6a5ffbdaa97ffc0ae9affc5b29dffc0ad9affc1ae9bffbfae99ffc5b39fffbba996ffc0ad9affbaa794ffbcaa98ffbfae9cffbcac9affb09f8bffb5a38fffb9a692ffbaa691ffbeac95ffbaa892ffb8a793ffbdad98ffbcaa94ffbca993ffc0ab96ffb59f8effbdaa98ffb6a492ffb7a692ffb2a190ffaf9e8affb09f8affaa9983ffaf9d8affb0a08cffaa9a87ffa89986ffa79683ffa99983ffa79886ffac9b88ffb19d8affa79582ffa39481ff9f8f7dffa0907fffa19180ffa59581ff9c8c79ff998979ff958777ff948577ff938374ff9c8c7bff998a78ff9d8d7bff9e8c78ff9f8d7bffa89684ff978778ff8d7e6fff887a6cffa5927eff776859ff9d8d7dff7f6d61ff957f73ff9c8342ffb09334ffaf9538ffac9439ffaa9035ffa99138ffa68c32ffa99037ffa99136ffa88f36ffa4872bffa58e36ffa58c33ff9f852cff9e832aff9e842bff9b832dff9c842dff9c842eff98802aff977f29ff977f29ff937c26ff917a24ff937b26ff927b25ff917a25ff927a26ff8f7724ff8c7422ff8d7521ff8a7321ff897323ff8a7322ff866f1eff866f1fff867021ff826d20ff846f20ff51420dff775f16ff836b1dffd8c4b4ffd2c0afffd2bfafffd5c2b1ffd5bfafffd9c4b3ffcfbaa9ffcebaa9ffddc5b4ffbeaa9affb8a393ffcab3a1ffd5bdacffd0bbabffead3c3fff3dacafff1d5c2fff1d7c5ffdac3b2ffedd3c2fff2d8c8fff1d6c6ffeed4c3fffde4d3ffffe5d3fff4d9c7fff8decbffffedd7fffff4dffffff4deffffffedffffffebffffffedfffffffafffffffffffffff6fffffffafffffffffffffff6fffffdebfffffff9fffffff4fffffffcfffffffefffffff5fffffff6fffffff9ffffffe8ffb7a693fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffff7fffffffbfffffffafffffff2fffffff1fffffff0fffffee8ffffffe6fffeedd8fffff8e0ffffeed7fffff2ddfffeeed6fff5e1ccffffead3fff3dfcafffce7d1fff9e4cdfffae5cbfff8e2c8fff6e0c8fff3dec5fff4ddc8fff3ddc8ffebd2bafff0dac5ffedd5bfffe8d0b8ffedd6beffedd7beffebd3baffeed9c1ffead5beffe7d2bcffdecab5ffe6d1b9ffe5d0baffe1ccb8fff2dcc7ffe5cbb5ffecd3bbffe7d0b7ffddc9b2ffe0cbb4ffdac6adffd6c0a8ffddcab2ffcebba6ffd6c2adffd9c4afffe1ccb7ffdbc7b2ffdcc9b2ffd9c5afffd7c4adffd3c0abffcfbca9ffd6c3b2ffd0bdacffcab7a5ffc9b6a4ffc8b5a4ffd7c5b0ffcfbca9ffc8b6a4ffd1bfacffc8b6a3ffc6b49fffc0ae9cffc2b09cffc3b09affc7b6a0ffc8b49effc2b09cffc3b19dffceb9a3ffceb8a2ffc4b29effbdad98ffc1b09cffc6b29fffb8a492ffc2ae99ffc1ae9affc5b29fffbda997ffbfac99ffc3b09dffbeaa99ffc3ae99ffb2a08effb6a592ffb4a391ffbdac9affb0a08dffb5a38fffbaa994ffb6a592ffb8a693ffb9a693ffb6a48fffb5a490ffb3a38fffb5a48fffb2a190ffb8a593ffb09d89ffb2a08dffac9a87ffab9884ffaf9d89ffad9d88ffb09e88ffad9e8affa99886ffa79785ffa59582ffac9b86ffa79684ffa69583ffac9a88ffa7927fffa6927fffa79582ff9f8f7dff9e8e7dff998976ff9c8c78ff998a79ff958675ff978778ff978677ffa29080ff9b8b7bff948473ff938273ff938273ff978676ffa08f7fffa08f80ffa19080ff968676ff8c7d6fffa89582ff958472ff9f8d7eff887467ff7a675cff877567ff867467ff857367ff837064ff77675cff847367ff7e6c61ff816f64ff7c6b60ff7c6e61ff77675aff7c6a5eff75665aff79695eff716256ff736459ff78695dff746559ff746659ff736458ff706357ff695c51ff6d6055ff675a50ff6c5f54ff6b5e52ff64584eff65594fff63594eff665a51ff64584fff675b51ff675c52ff65584eff65584eff63584eff5b5046ff5b5148ff332d28ff4d423cff4f453dffcebbacffccb8aaffccb8a8ffcdb8a9ffdcc6b5ffd5bdabffc8b29effd1b9a5ffe1c6b5ffa99689ffb7a092ffd0b8a8ffe1c8b7ffd8bfb0ffebd0c2ffe5ccbcffedd3c3ffead1c1ffe4cbbbffe8cdbeffecd2c2fff4d8c8fff6d9c8fffce1d2ffffe8d7fffde4d3fffee4d3ffffead8ffffecdcfffffbebfffffceafffffff4fffffdecfffffff0fffffff3fffffff0ffffffedfffffff7fffffffcfffffff8fffffff6fffffbeafffffdf7fffffffcfffffeeefffffbeefffdf0d7ffcebfaafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff4fffffff5fffffff4fffffce5fffffde6fffffce7fffff7e0fffff2dcfffff2dcfffeebd6fffce7d2fff4e0cbfff0dbc7fffbe5d0fffce8cefff4dec4fff8e3c8fffbe6cdfff7dec5ffe8d1bdffe9d3beffefd9c3ffeed7c0ffefd7c0ffefd8bfffecd5bcffe6d0b9ffead0b8fff7ddc6ffedd6beffdfcab4ffe0cdb6ffe3cdb9ffe2cdb8ffe1cbb7ffe4ccb6ffe8d0baffe4ceb5ffe3ccb5ffe5cfb8ffe1ccb3ffe1cab1ffe3cdb2ffe0cbb2ffdbc6afffd8c4afffd8c4afffd5c1acffd6c4adffddcab3ffdac8b0ffd3c1aaffd9c5afffd2bdabffc8b5a3ffc7b1a1ffc9b3a3ffd7c3b0ffcdb9a7ffd7c5b2ffcab5a0ffccbaa8ffd0bdabffc6b4a0ffcab6a0ffc6b3a0ffc6b39fffc4b199ffc7b59fffbfad99ffc6b29effd1beaaffcdb7a1ffbcac98ffb8a896ffc0af9cffc1af9cffc7b4a1ffc6b29fffc2af9cffc4b29effc0ae9affc0aa96ffc2af9cffc3af9cffb8a493ffbba896ffb7a593ffbba996ffb6a391ffbdaa97ffb7a591ffb7a492ffaf9e8cffb2a18fffb6a491ffb4a38dffb3a28dffb9a994ffb6a691ffb3a08cffaf9d8bffae9c89ffb3a08dffb4a08dffb19d8affb19e89ffad9c87ffaa9a85ffb5a18cffb09e8affaa9984ffa49582ffa79884ffa79684ffa99886ffa59381ffa2907effaa9784ffa3917cffa89582ffa59481ffa3937fffa69481ffa2917cffa1907eff998876ff998979ff968677ff938374ff9a8979ff9b8b7aff968676ff918272ff8f7f70ff958575ff9c8a7aff988476ffa49080ffa29180ff918273ffa89884ff8a7765ff9e8d7fff726155ff816e62ff806d62ff7a685dff816e62ff78675bff7d6c60ff7f6e61ff7d6b60ff827062ff756659ff716356ff76665bff756559ff75665bff6e6056ff6f6055ff736558ff716258ff726458ff726459ff6f6155ff6d5e53ff6c5f54ff685c51ff66594fff6a5e55ff64594fff63574dff63574eff695c53ff65584fff655950ff675b50ff64584fff665950ff60554bff61564cff5e5349ff36302bff483f39ff51463fffb6a491ffb9a690ffb9a690ffbfac97ffb5a38effb2a18dffb9a791ffbba994ffc2ae99ffb09d8bffb5a08fffbaa691ffc3af9bffc0ac98ffb8a692ffbba793ffbeab9affc2af9effc2af9cffc7b29effc4ad97ffc4ac97ffc0a894ffc8b5a1ffcbb8a2ffccb5a0ffc6b29dffcdbca5ffe2cdb6ffddcfbaffdcccb6ffdcccb6ffdbcbb2ffe2d1b7ffebd8c0ffe6d4bbffe2d2bcfff2e1cdfff2e3d1fff0e0d1ffeddfcdffecdbc5fff7e8d7fff9e8d9fff7e7d2ffefd9c1ffc2ae98fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffdfffffff6fffffff8ffffffeeffffffe6fffffae3fffff8e2fffff3ddffffefd9fffce7d4fffeebd5fffbe6d1fff8e3cffff6e0ccfffae3cefff6dfc7fff4ddc3fff1dbc1fff2dfc6fff1d9c1ffe5d0baffe7d2bdffe4ceb8fff1dac1ffefd7bfffe8d1b9ffe8d3bbffe9d4beffebd1baffe3cdb7ffe3cdb8ffddc8b4ffebd5beffe5cfbbffeed8c3ffead5bfffe9d4bdffddc7b2ffdec8b2ffdfc8b1ffe7cfb9ffd9c4adffe7d1baffe4d0b7ffdac4abffdfc9b0ffdcc5afffddc7b2ffdecab3ffd5c1adffdcc9b3ffd5c2acffd2bfaaffcebba8ffd0bca9ffd7c2afffd3beacffd0bca8ffd6c5b0ffd5bfadffd8c4b3ffd3c0abffcfbba9ffc6b4a2ffc4b19dffc4b29dffc2b09bffc0ae9affc4b49dffc3b29cffbdac96ffc4b19effbfad98ffcbb8a4ffbbaa96ffbdab98ffbfad9affc0ae9affccb8a4ffc1ae9bffc1b09dffbeab99ffbba996ffbfaa98ffbfac9affb9a694ffb8a693ffb6a592ffb5a391ffb7a593ffaf9d8affb5a28fffb5a38fffab9b88ffb1a08effb2a08effb9a794ffb7a48fffb09d88ffb0a08cffb0a08cffaf9b88ffaa9887ffac9988ffac9886ffb5a08cffac9885ffab9683ffa99784ffad9d89ffb09c88ffa2927fffaa9986ffa39280ffb09f8affa79684ffac9b89ffad9c88ffa3927fffa79582ff9c8b78ffa28f7effa4917fffa69482ffa59483ffa0907dff9b8978ff998776ff978676ff9b8a7aff968576ff9a8a79ff958675ff918170ff8c7d6eff928473ff8f7f70ff998979ff9c897affa2917effa69684ff978878ff897b6cffaa9783ff8d7d6bff8f8071ff776759ff6f6053ff6c5c50ff6d5e51ff766759ff796b5cff7c6c5dff756558ff6f6254ff695b4fff6c5f51ff736658ff746457ff716356ff6b5f53ff736559ff6b5f53ff5e5347ff584e43ff5b5046ff65584cff61554bff5b4f44ff5c5046ff62564bff5f5247ff594e43ff5d5247ff605549ff64594dff63564bff62554aff605448ff63564aff5d5145ff5a4e42ff544a3eff4d4339ff423a31ff51473cff51463dff9a8c7cffa69580ffa08d77ffbaa48effa1937fffa89881ffac9b86ffa79782ffa79783ffaa9985ffb19f89ffbba590ffb5a08affa08f7affa5937cff8c7d69ff9c8c75ff9d8d7bffab9d8cffc8b69dffb09d87ff9b8571ff6d5a4aff7f6c59ff9e8772ff8f7d66ff776555ff907c67ffa8917aff907c68ff94806affb3a088ff9c8872ff897863ffb49e85ffb69e86ff9c8a75ff9c8873ffc1aa92ffb8a38dffa08e7affb19d87ffc8b29bffac9988ffae9b87ffebdbc5fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff8fffffff3ffffffeefffffde2fffffce5fffff9e2fffff1d9fffeecd5fffee7d3ffffedd6fff2dec9ffeed9c5fff7e1ccfff8e0cafff6e0c6fff4ddc4fff6e2caffecd9c1ffead3bcffe6d2bbffe4d0baffe8d2bbffead4bcffe4ceb5ffe8d2baffead4bdffefdac4ffe1cab4ffe0ccb5ffdcc7b3ffddc8b5ffd2bda9ffddc5aeffe2cab4ffe6cfb8ffe0cab3ffdcc7b1ffe5ccb5ffe4cab5ffe0c7b1ffe0c9b2ffe8d0bbffe1cab3ffdcc5adffdcc4acffddc5aeffdecab1ffdac5b0ffe1ccb7ffdac4afffd5c0aaffd6c1aeffd8c4b0ffcdb9a7ffd0bca9ffd7c0b0ffcab5a3ffcbb5a4ffd4c1aeffd4bfadffd5c1aeffd4c0adffc9b6a3ffc3b09cffc0ad99ffc6b49cffc5b39dffcab6a0ffc0b19bffc4b29effc4b29fffc0ae9bffbdab98ffc5b49fffc7b39effbfac99ffbdaa97ffc3af9cffcdbba6ffc1b19effc1b29fffb9a795ffb9a695ffb7a694ffb3a18effb19f8cffb2a18fffb1a18effac9b88ffb5a38fffaf9c8affae9d8affa99785ffae9c8affad9b8affb6a492ffaf9d89ffb2a08cffaa9a87ffa69684ffaa9885ffa79685ffae9a87ffa99584ffad9986ffa6927fffab9985ffab9986ffaf9f8bffa1907dffa1937fff9f8f7cffa39381ffa0907dffa2917dffaa9884ffa59480ffa18f7cff9f8f7cffa6937fff9e8b7aff9f8d7bffa18f7effa79685ff9b8b79ff968573ff9b8a77ff9f8e7eff998a77ff9b8b7bff978777ff978675ff948574ff998979ff908272ff8b7c6dff918172ff958375ff8d7c6eff937f6fff958676ff918272ff8f7f70ff9c8a78ff6a5c4fff6c5e4fff645549ff605244ff64564aff6d6051ff6f6152ff615548ff564d42ff5a5043ff625749ff6b6051ff665a4dff5d5348ff675c50ff594e44ff61574cff584e43ff484036ff473e35ff4e453aff51473cff4f453bff443b31ff4b4037ff4d4237ff4f4339ff494037ff463c32ff554a3fff584e41ff5d5043ff564b40ff574b3fff51473aff504539ff493f35ff433b30ff463e33ff4e443aff494135ff453c31ffc1af9bffbfab94ffc6b299ffcebba1ffc8b6a0ffccb9a1ffccb7a2ffd4c3abffd6c3acffd7c2acffdfc8b0ffdcc7afffdecab0ffcdbba5ffbeac96ffbead96ffcbb9a5ffd8c5b0ffedd8c2fffce9d1fffeeccfffd4bfa5ff806e5cff86735fffb9a18cffb29c85ff7f6f5dffa8947effd9bfa5ffae9983ffa48e79ffe1c5abffdac2a7ffa8957fffdac2a9fff2dabfffd4bfa6ffbfab94fffde8cdfffbe8ceffd1baa4fff3dcc5fffff8e1ffead3bdffcbb8a5fffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff3fffffff5ffffffefffffffeafffffff4fffffde8fffffde8ffffebd4fffbe5d0fffde9d0fffbe5ceffffebd4fffce8d1fff8e1c7fffae3c8fff7e1c7ffeed9c3fff0dbc2ffedd7c0ffead6beffebd6beffe9d3bcfff0d8bfffebd6bdffead4bbffdbc6b0ffddc7b1ffdec8b0ffe0cab5ffd9c3afffd7c0acffe2cab4ffe5cfb5ffe3ceb6ffdec8b0ffe5cfb7ffdec9b3ffe1ccb5ffdcc6aeffdfc9b2ffdfc8b2ffd8c3aeffe3ceb6ffdbc3adffddc9b1ffd2bca6ffdbc7b1ffdac7b1ffd9c6b0ffd5c1adffdecbb6ffdac5b2ffdcc8b6ffd3c0aeffd3c0afffccb9a7ffc7b4a2ffcbb6a4ffcdbaa9ffc9b6a3ffccb8a5ffcdb7a6ffc9b3a3ffc4b19effc0af9bffc1af9cffc8b5a2ffc9b7a3ffc8b6a3ffc2b19fffc0af9dffc0af9cffc1ae9cffc1af9dffbca997ffb9a593ffbda997ffbba793ffbdab97ffb7a593ffb5a492ffb29f90ffb2a090ffb7a896ffb09f8effb5a492ffb8a795ffb7a593ffae9e8affaa9986ffab9887ffad9c86ffac9a86ffb7a491ffab9b89ffac9b88ffb19f8affae9d89ffa99886ffae9d88ffad9b88ffad9b87ffae9b89ffac9985ffae9985ffaf9a86ffa99883ff9a8b77ff9d8c78ffa89683ffa39280ffa1907dff9a8979ffac9986ffa99882ffa1927dffa1907affa2907cffa08f7dff9e8e7aff9d8e7affa08f7cff9c897aff978877ffa2917fff948372ff998b79ff948472ff978877ff9d8f7dff958676ff958676ff9d8e7dff988878ff97897aff918274ff908375ff847669ff8d7e6fff867869ff8c7e6eff887a69ff918071ff89776aff877668ff89796aff7f7162ff7f7062ff8c7d6dff897a6aff857767ff6f6457ff675d50ff6f6356ff746759ff796b5dff726558ff716458ff706358ff6b5f52ff6e6357ff685d51ff64594dff64584dff6a5e53ff6c6156ff62574bff564b40ff594e44ff61554aff5f5548ff574e43ff584d43ff625749ff65594bff706253ff675b4eff655749ff635749ff615649ff5b5145ff5b5044ff5d5246ff5f5649ff5f5447ff584d41ffc8b69bffc9b79dffd3bea5ffd4c1a8ffd1bea8ffd1bea7ffd5c0a9ffd0bda8ffd3bfaaffdec8b1ffd4c0abffd2bfa6ffd8c3aaffc4b29dffc1b19effc3b39bffd1c0a9fff4e1c5fffaecd1fffffae0fffff4defff4e1caffc7b49cffd5bfa7ffecd3b9fff9e2c7ffe1caafffe9d1b7fffffbedfffae2cbfffae3c9fffff6defffffdeffffef3dbfffff9ddfffffffcfffffeeffffffdebfffffffefffffffdfffffff8fffffffbfffffffffffffffdfffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffbfffffff7fffffff2fffffff0fffffff9ffffffeafffff9defffff3dbfffff2dcfffff3e0fffeead7fffce6d1fff6e0ccffffecd2ffffebd0fffce7cbfffbe4cafff7e1cafff3dec7fff4ddc7ffecd7c1ffebd6c0ffefd8c1ffe7d2bcffe3cdb6ffe6cdb5ffdac3aeffd3bea9ffd5c0a9ffd7c1acffdec7afffe3cdb5ffe4cbb3ffe3ccb8ffdfcab5ffd9c6afffe0cbb4ffdfc8b1ffebd3bbffe0cab1ffdec8b0ffe1cdb4ffd9c2afffd9c5afffd3bfaaffd6c1acffd6c3adffd1bda6ffd5c1aaffd7c3acffd7c1aaffd9c2acffd6c1acffd6c1acffd0bba5ffd4bfadffc9b7a3ffcbb6a1ffcab5a0ffc0ad9affcdb9a7ffc7b4a1ffccb8a5ffcdb8a6ffc8b4a1ffc5b09cffbba997ffc1ae9bffc7b4a0ffc8b5a3ffc1b09cffbba895ffc0ae9cffc3b29effbfad9affbca997ffbba995ffbaa894ffbca895ffbba894ffb19f8cffb1a08dffb2a28fffb2a28fffb3a190ffb1a28fffb7a694ffb09f8dffb09e8affaa9a87ffb09e8cffb3a090ffae9b8affac9b89ffaa9887ffb4a38dffb6a48fffb19e8affb09f8cffad9c8affae9c8affaf9c89ffac9a88ffae9b87ffa99784ffa79583ffaa9983ffa28f7cff9c8c7aff998977ff9e8e79ffa4937effa4937effae9b87ffa69481ffa99786ff9e8e7cffa1917dff9f8e7bffa59380ffa4927eff9d8c78ffa2917dff9e8d7bff9f8e7eff948473ff978676ff998878ff978877ff968775ff988877ff988876ff998775ff938372ff9c8b7aff938373ff938472ff8e7f70ff887b6bff897968ff847567ff837566ff88796aff89796aff8b7a6bff8f7e6fff8b7b6cff887767ff827464ff877766ff887867ff857768ff786c5cff716355ff7d6f61ff847766ff7c6e5fff786b5dff726659ff706558ff6e6255ff6e6255ff685d50ff675d4fff695e51ff6a5e51ff6b5f52ff675c4fff655a4dff605448ff645849ff62574aff63574bff65584eff5f5248ff62564aff605549ff685c4dff6a5e4fff665a4cff655a4dff61574aff605549ff62564aff5e5348ff5f5549ff5e5246ffc4b39cffc9b59bffd8c5afffd2bfa5ffcebea5ffcdb8a1ffd5c0acffe2ceb8ffcfbca6ffd4c1a8ffcec0aaffccb9a3ffdcc9b2ffd5c3aaffcfc1aeffc9b8a2ffcabaa2ffffebcbfffffde0fffff9dffffff9e2fffffeeafffff5defffff2d9fffffff2fffffeebfffffde5fffffff4ffffffffffffffe8fffffffcfffffff8fffffffffffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4fffffff4fffffff1fffffff6fffffff2ffffffebfffffce5fffffde5ffffedd6ffffecd3fffae3cefff7e2cdfffde8d1fffde8cdffffecd3ffffe9ccfff3dfc6fff0dac2fff3dcc8fff1dcc6ffead6bfffe9d5bbffe6d5beffe5cfb9ffe8d0b9ffdbc5aeffd4c1aeffd4bfaaffc9b7a1ffe7cfb5ffe9d2b9ffe2cbb4ffdec9b5ffe0cbb6ffe0cbb6ffe0ccb6ffe1ccb4ffcdb8a3ffe4d0b8ffd8c4afffe3d0b9ffdac4aeffdccab3ffcfbca6ffcbb9a5ffcbb9a4ffd3bda6ffd7c1abffd7c1abffdac6afffd2bea7ffd4bfabffccb7a0ffd5bfa8ffd2bca7ffd1beaaffcfbba5ffcdb9a4ffcab7a4ffcfbba6ffcdbba8ffc7b6a2ffcab9a5ffc9b6a2ffbeac99ffc5b49fffd1bda9ffc7b49fffc0af9cffc2b09cffbfae9affccbaa7ffbead9affc2ae9bffc0ad97ffb8a591ffb7a590ffbba790ffb3a18effb29f8cffb3a08effb4a290ffad9b88ffb6a390ffb3a290ffb2a28fffb4a392ffb4a290ffb19f8dffb2a08effac9886ffa79885ffab9988ffab9988ffae9d8affb6a28effb6a492ffb3a28dffaf9e8bffad9a87ffaf9d8bffa99886ffa99884ffa59581ffa59784ffa89784ffa69480ffa0907dff998b7aff9d8d7affa4947effa89480ffaa9783ff9e8e7cffa79685ffa29280ffa0907effa49582ffa08f7dff9c8a79ff9b8b7aff9c8c7bff998978ff9d8b7aff938473ff8d7c6cff918272ff8d7e6fff998875ff9b8a79ff978775ff988877ff90816fff8f8070ff8f7d6dff928170ff8e7d6dff908171ff8a7b69ff887a6aff877969ff8e7f6dff887b6bff8a7c6dff88796aff847566ff837565ff867969ff8f8171ff857665ff817464ff7e7060ff7c6f5fff857767ff7c6f5fff7b6d5fff7d705fff736759ff726657ff6d6252ff695e51ff6a5e51ff685d50ff6b5f52ff65594bff6e6152ff685c4eff6b5f51ff6a5d51ff6c6052ff6a5d4fff695c4eff635548ff5e5347ff5d5247ff5e5448ff64594cff665a4cff6b6053ff675c4eff5f5648ff5e5346ff62564bff62574bff5e5346ff5d5245ffc0b099ffccb79effd0bea7ffcbbaa0ffbfb099ffcbb7a1ffcdbca5ffcfbca8ffccb9a5ffd0bda5ffd3c4aeffc0ae9affccb9a5ffd2c0aaffdacab2ffd2bfa8ffefdabcfff9e5c7fffef2d8fffeeed5ffffffe9fffffae2fffff6dbfffff4dbfffffff0ffffffeffffffff9fffffffbfffffffefffffff0fffffff3fffffff1fffffff8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff3fffffff1fffffff2ffffffeefffffff7fffff5e2fffffae4ffffffe8fffff0d9fffeebd4fffbe5d0ffffecd7fffae6d0ffffecd1fffce7cdfff3e0c4ffeddac1ffefd9c2ffeedbc3ffecd8c2ffe5d1bbffecd7bdffe0cdb7ffdcc7b1ffe8d1bbffe6d1bbffe5d1bbffcfbba8ffe9d2baffe7d2b9ffe1ccb4ffdfcab5ffe5d1bcffd8c5afffd6c2acffd4c0aaffdcc6afffd9c4aeffdbc8b1ffdecbb4ffdecab3ffdcc7b1ffd0bea6ffcdb9a3ffcab7a2ffd1bea8ffd2bca5ffcfb9a3ffcfb9a4ffd8c3adffd4c0a8ffcfbaa5ffcfb9a4ffd3bfa7ffd2bfaaffd5c3afffcab8a5ffc3b09dffc1af9dffcab7a2ffcdbba7ffc7b6a2ffc2ae9bffcbb7a3ffc8b4a2ffc3b29dffc3b19cffc6b49fffcab9a4ffc5b29dffbeae99ffcab7a3ffc5b29fffc6b19dffbeab96ffb6a48fffb7a491ffb9a58fffb7a491ffc0ac98ffb9a592ffb4a18fffad9b88ffaf9d8cffb19f8effad9c8bffb0a08fffae9b8bffb09e8dffb3a18fffae9c8affa99886ffa89685ffb09f8dffb09f8cffb6a38fffaf9e8cffac9b87ffaa9886ffaa9885ffad9c89ffab9988ffa59483ffaa9986ff998978ffa29180ffad9b89ffac9c88ffa79784ff9e8d7bffaf9c86ffae9e86ffa69582ffa79583ffaa9a88ff978876ff968775ff9c8c7bff9c8b7aff9c8c7bff9b8b7aff9a8a79ff978676ff958473ff8e7d6cff907f6fff948374ff918171ff948271ff907f6eff938372ff968675ff948574ff918171ff907f6dff90816fff8c7c6bff8d7f70ff887a6aff827465ff88796aff8b7c6bff877a6bff837466ff89796aff8b7c6cff847667ff817565ff837563ff807260ff827565ff807160ff7b6e5eff877968ff807262ff817262ff7a6c5cff736757ff6f6455ff736656ff6f6255ff74685aff6f6255ff6b5e51ff65584aff685b4fff675b4eff685c4eff6b5e51ff6a5c50ff685c4fff6b5f51ff66594cff5b5044ff5b5146ff645a4eff60564aff665b4dff655b4eff645a4cff5b5245ff5e5346ff5e5347ff5d5146ff5a4e43ff5c5144ffb8a792ffc7b59cffc6b29fffc4b19bffc8b6a1ffcbb9a5ffcfb9a3ffdbc5b2ffd2beabffcfbda9ffcdbca6ffc4b29effcdbba7ffcdbaa6ffddcbb2ffdbc7adffe8d5bbffebd7befff6e4cdfffff2d9fffffff5fffffff3fffffce0fffffce2fffffff3fffffffcfffffffbfffffffaffffffeafffffff0ffffffeeffffffeefffffffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffffffffff7fffffff5fffffff3fffffffbfffffff7fffffce6fffffce6fffff7dffffff5ddfffff0d9fffce6d0fffae6cefffbe9cefff8e2ccfff2ddc6fff4dfc8fff1ddc7fff0d9c2fff3ddc7ffecd7c1ffead5beffe3cfb8ffe0cab5ffe1cbb7ffdec8b5ffe3d0baffe2ccb8ffe9d5c0ffe4d0bcffe6d2beffe1cdb9ffe9d3c0ffe3ceb9ffd8c3abffd8c2aaffd8c3aeffe0ccb5ffdecab3ffdec9b2ffd8c2acffdcc5afffd2bea7ffd5c0a9ffd1bca5ffcdb7a0ffd3bda7ffd0bba4ffcdb8a3ffd4bfa9ffd4c1abffd3bea9ffcfbaa3ffcebaa2ffcfbca6ffcfbdabffcbbaaaffc5b3a2ffcbb7a6ffc4b29fffcab7a3ffc4b19effcbb8a5ffcfbaa6ffcebaa7ffc9b6a2ffc7b4a0ffc4b19cffcab7a4ffc5b29bffc5b29cffc0ae99ffc4af9bffc3ae99ffbfad98ffb7a491ffb9a691ffbaa48fffc0ab95ffbfaa96ffb4a28effb09e8bffb19f8bffb09d8cffb3a28fffae9d8bffb4a494ffb4a292ffad9b88ffb2a291ffaa9a87ffb09e8bffaa9988ffa69584ffad9c8affb2a08dffab9989ffa99885ffac9b88ffac9a88ffae9b89ffac9989ffa89685ffaa9887ff9a8a79ffa08f7effa39281ffa49281ffa69582ffb09e89ffaa9986ffa79684ffa79683ffa79784ffa99887ffa1907fff9c8b79ff9d8b7aff9b8a7bff9c8d7cff9e8d7bff998877ff9b8978ff998776ff948371ff998876ff988775ff907e6dff938170ff8e7e6dff8e7d6dff908171ff8d7f6fff908070ff8e7f6cff877866ff8d7f6dff8b7e6fff83776aff897a6cff87786aff837567ff837566ff817365ff87786aff8f7f6eff877969ff867868ff7d705eff807263ff847667ff80725fff7f7160ff7d6f5eff7c6e5eff7a6d5cff7a6e5eff776a5bff756959ff726354ff766958ff75695aff6b6052ff6a5e50ff6b5f50ff685b4fff6a5e51ff675c4fff6b6054ff6a5f53ff65594cff685d50ff62574aff66594cff605549ff5d5347ff605749ff63594aff5f5449ff605548ff62574aff5f5448ff5f5246ff605348ff5c5046ff5b5146ffbdaa94ffc6b5a0ffc4b09effc8b4a0ffd5bea8ffd0baa6ffcab9a3ffcdbaa6ffc8b6a2ffc6b4a0ffcdbea9ffccbca7ffd1c0aaffd1bfa8ffe4ceb8ffd8c3adffe5d1b9ffe1ceb5ffe5d1b9fffae6cbfffff2d9fffffff4fffffff5ffffffe9ffffffedffffffeffffffff1ffffffe9fffffde0ffffffedfffffff0fffffce0fffffff2fffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffff5ffffffedfffffff6fffffeeffffffeedfffffff3fffff2dbffffedd4fffff1d7fffff3d9ffffead1ffffefd8fffee8d2fffae4ceffffead1fff6dfc9ffecdac2ffe7d3bdffe7d2bbffe5d0b9ffe4d3bdffe5d0bbffe4d0bbffe1ceb9ffdbc7b4ffe0cbb9ffdecbb8ffdecbb7ffddcbb7ffd9c5b1ffe2cdb8ffe9d6bfffe0cbb2ffd7c2a9ffd9c3adffdbc7afffdcc7aeffd7c2a9ffd6c2abffd1bea9ffd4c2acffc8b49effd1bba6ffd7c3adffd1bfaaffcebba6ffc6b49fffceb9a3ffc7b39effcdb8a2ffd0bca6ffc7b6a0ffd2bea9ffccb9a6ffc1af9dffc1af9effc4b2a0ffc8b5a3ffcab6a4ffc5b19fffc1ae9bffc9b6a1ffc9b5a1ffc7b3a0ffcbb7a3ffbdaa96ffc9b5a0ffc0ad99ffc1ad98ffbaa695ffc1ac96ffc0ac98ffbca793ffbea995ffbeaa94ffbba691ffbda791ffb5a28dffb6a28dffb59f8bffb39f8dffb6a18cffb29e8affaa9887ffae9d8bffb19f8dffb1a190ffb2a291ffa59583ffaa9885ffad9c88ffa99884ffaf9d8affb09f8dffad9b8bffab9a87ffa89582ffa89684ffa89986ffa79685ff9f8e7effa29182ffa19382ffa79786ffa59483ffa69583ffa39281ffab9988ffa69583ffa1927fffa49481ff9e8d7affa79482ffab9b89ffa1907cff9a8977ff9b8a79ff9c8b79ff998775ff968573ff998876ff928373ff918271ff8a7c6bff8a7a69ff968775ff928473ff8b7d6dff8c7d6cff8c7c6cff847564ff8b7c6bff8d7e6dff857767ff8f8171ff887a6bff7e6f62ff7f7163ff817365ff8a7c6dff847668ff7c6f61ff7f7061ff897b6aff867867ff837565ff847664ff7a6d5cff827462ff7d6f5eff746657ff736557ff786b5aff77695bff776858ff7a6c5cff7b6d5dff746757ff736555ff6d6152ff6f6151ff6f5f4fff6b5e50ff6c5f50ff685c4eff62584bff655a4eff685e52ff675d52ff695f54ff5d5247ff5f5346ff625749ff605547ff615648ff64594dff62564bff62564aff65584bff605448ff5d5347ff554b40ff574d42ff574d42ffc7b3a1ffc3b3a4ffc2b09dffc1ae9affc4b39effc6b5a0ffd0beaaffcfbdaaffcbb9a4ffc3b39effc8b6a1ffccbca3ffd3c0a9ffc7b49effd0bfa5ffd6c2acffd8c3aaffdec7afffe3cbb3ffe4d0b9fff3e0c4ffffecd0fffffee9fffffff2fffffff8ffffffedffffffecfffffce3fffff5d9ffffffe5ffffffe7fffffff2fffffff7fffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fffffff5fffffff5fffffff2fffffff6ffffffefffffffeafffff5dafffff7deffffeed5fff9e2cafffff5e0fffff1defffee9d3fffae4cffffbe7d0fff1dec7fff4e0caffefdbc4ffecd7bfffe2ceb6ffe1ccb6ffe7d3bbffe2ceb9ffdecab6ffdbc9b5ffdecbb9ffdfcab5ffe1cbb7ffddc8b4ffd9c5b3ffdcc8b1ffd9c5adffddc9b2ffdbc6aeffdecab2ffdcc8b0ffdcc7b0ffd5c1acffceb8a2ffd6c0a6ffd0bea9ffcebca7ffcebca7ffd3bfa9ffcfbda8ffcbb8a4ffc8b6a1ffc5b39effc8b5a0ffc7b29bffcbb7a1ffc8b7a2ffcdb9a3ffd1beaaffc1b09dffc4b1a0ffc2b0a0ffccbaa8ffccb9a6ffc5b39fffc5b29dffc1b09cffc2b09dffc5b3a0ffc3b19effc4b29dffc1af9dffcab6a3ffc6b29effc1ad98ffbaa693ffc2af9bffb5a38fffbdaa95ffb7a492ffb9a693ffb7a391ffb6a48fffae9b86ffb5a38dffae9c89ffb19d89ffb19f8cffa69484ffab9986ffb09f8dffae9e8bffb09f8cffa89884ffa79582ffa3927effa99885ffb19f8fffaa9a8bffa99786ffab9987ffa99986ffaa9988ffa69584ffa39383ffa79785ff9c8c7cffa29181ffa19280ffa08f7fffa29280ffa39381ffa69484ffa3917effa49180ff9f8e7dff9f8e7eff9d8c79ff9c8c7affa08f7cff9f8e7cff9e8e7bff9e8e7cff988677ff938374ff938171ff968470ff948675ff938474ff938474ff908070ff8f8070ff8a7b6cff857768ff8a7c6cff8e7e6eff867665ff897a6bff867969ff8c7c6cff8c7d6eff817365ff7e7164ff837669ff887b6eff807365ff827465ff7f7262ff7e7061ff7f7262ff837565ff7d7060ff796d5cff7b6f5fff807363ff7e7161ff75695aff746758ff7c6f60ff6c6051ff77695aff76685bff716458ff6e6255ff6f6354ff6d5e50ff6f6153ff64594cff675b4dff6a5f51ff62574cff615649ff675c51ff655b4fff665b4eff615649ff5f5347ff5d5144ff5f5347ff675b4fff62584fff62564aff605447ff5e5447ff5e5347ff5f5449ff5b5146ff5a5044ff544b3effc7b29dffbdaa99ffbca993ffc5b29cffc2af9affc7b4a1ffc1b2a1ffc3b2a0ffb9a998ffb6a493ffc6b59fffc6b49fffc6b5a0ffc3b19affc6b6a1ffd1bea6ffd8c5aaffe5d1b8ffe6d2b9ffead8bdffedd9beffffecd1fffeead0fffff9e1ffffffeafffffae1ffffffebfffffee9fffffee4ffffffe3fffffff1fffffff0fffffff6fffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff8fffffffffffffffbffffffeefffffff9fffffff3ffffffe9ffffffe2fffffae0fffff4dbfffff1d9fffff5ddfffae5d0fffbe4ccfffde7d0fff6e0c9fff7e2ccffeedbc8ffead6c1ffe6d2bcffddc7b2ffdfcbb5ffe0cbb7ffdcc9b5ffd0bdaaffd8c7b4ffd8c4b0ffdecab4ffe3d0bbffdbc7b3ffdfcdb7ffdfcbb3ffdbc8b0ffd2bda6ffd3bfaaffd8c4acffdac7afffe0cbb4ffd5c1adffcfbaa4ffcfbba2ffd7c4adffccb9a5ffccb9a4ffcfbda7ffd2bfabffd1bea9ffcdbaa7ffcbb7a4ffcbb9a4ffc8b49fffcab6a2ffc6b4a0ffc6b29dffc9b6a3ffc3b09dffc1ae9dffc1af9dffcab7a6ffc6b4a1ffbaa896ffbdab98ffbfad99ffc1ae99ffc3b29fffc0ae9bffc0af9bffbeac99ffbca996ffc4b09bffc0ab97ffc1ad98ffb9a794ffb3a08cffbaa792ffb2a08dffb9a592ffb7a592ffb1a08dffb19f8dffb5a491ffad9c89ffb09d88ffb5a391ffa89584ffae9e8bffb1a08fffad9c8affab9a88ffb09f89ffa49281ffa69481ffaa9987ffb09d8bffa29181ffa79583ffa79482ffaa9886ffa89785ffa19283ff9d8d7effa08e7fff9f8d7dff9f8e7effa08f7fff9d8d7eff9a8a7affa19181ff9e8d7dffa69482ffa69584ffa29080ff9f8f7effa39381ff998977ff958575ff988878ff998978ff9c8d7bff9f8d7dff958576ff918070ff948471ff968674ff8c7d6eff8e7f6eff928272ff948475ff928273ff8e7e6fff8b7b6dff8b7c6cff8c7c6cff867869ff87796aff8a7b6bff847668ff847668ff7c6f62ff807265ff86796bff817365ff796d5eff807363ff7a6d5eff827361ff807362ff837666ff817463ff7c6f5fff736758ff7e7061ff786b5cff7b6d5dff736758ff716354ff736657ff6c6053ff77695bff716457ff6d6053ff6c5e52ff6f6356ff655a4eff675c4dff6c6154ff62574bff675d50ff685e53ff655a4fff63584cff685c4dff5f5447ff5e5246ff605549ff665a4dff5a4f45ff5f5346ff5e5245ff5e5145ff5d5146ff595046ff544b41ff554b41ff50463dffbfab97ffbba996ffbca993ffb9a894ffc8b49fffc5b19fffbeae9effc5b3a2ffb1a293ffb7a392ffc7b5a0ffc2b19dffbbaa97ffc3b29effbfad99ffd2bea4ffd4bea5ffd8c1a7ffdec8afffe5d1b7ffe4cfb3ffeed9befff7e2cafffef1d9fffff8dffffff9dffffffee4fffffce5fffffaddfffefadeffffffeeffffffeefffffff2fffffff8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fffffffffffffffefffffff2fffffff2fffffff4fffffff0fffffde5fffffcdffffffce1fffffae1fffff0d8ffffefd6fffeead3fffde7cefff5e1c9fffbe4cdfff6e0cbffeddac6ffecd7c3ffe3cebaffdbc4b1ffdfcbb5ffdbc7b4ffd9c6b3ffd7c4b1ffd3c0adffddc9b2ffdcc6b0ffd9c2adffd8c3adffd9c4aeffdac6adffd9c5adffd5c1aaffd7c2adffd4c0abffd8c5afffdcc8b3ffd8c4b1ffceb9a3ffccb8a0ffcfbba6ffd0bca6ffcfbba5ffcdbaa6ffcab9a4ffccbaa6ffd1beaaffd2c0abffcab9a4ffc7b5a1ffcbb7a3ffc5b3a0ffc7b5a1ffc4b19effc0ae9cffbfad9bffc2af9dffc3b2a0ffc3b19effc3b19effbcaa98ffbcaa97ffbfac97ffb6a592ffbead9affc2b09dffb9a794ffb8a592ffbba692ffb5a18bffb8a38fffb8a895ffb5a28dffb8a591ffae9e8bffb3a18dffb2a08effb09e8dffaf9d8cffb1a08fffa29281ffaf9e8bffac9b88ffa49280ffa99987ffa8998affa99988ffa79785ffa99984ffaa9a87ffa89685ffa69583ffa69583ffa59483ffa69480ffa39380ffab9886ffa69483ffa39383ff9a8b7cff998778ff9b897aff9c8c7cff978879ff9d8e7eff99897aff998979ffa1907effa18e7dff9f8c7bffa1907fff9f8e7cffa08f7dff998977ff958574ff988878ff958575ff998a78ff9a8a7aff948575ff8f806fff92816fff8e7e6fff928271ff918171ff8d7e6fff8b7d6dff8d7e6fff938374ff938373ff897b6bff8e7e6eff88786aff87796bff877b6dff817465ff7b6f61ff7e7163ff7d7163ff7f7366ff807365ff817365ff7f7162ff7f7160ff7d6e5dff7c6f5fff7e7161ff807363ff7c6e5fff736658ff786b5aff716453ff746656ff756b5cff736555ff716556ff675c4eff6e6153ff6e6155ff6c6053ff6b5f53ff6c6155ff5e5347ff685d4fff64584cff5f5447ff63594cff62584eff63584dff605549ff615647ff63584bff62564aff5e5246ff5f5448ff5d5247ff5e5245ff5b5044ff605348ff5b5045ff574e44ff524a3fff50473eff50463cffbeac97ffc2ac98ffbead99ffbcab99ffb9a895ffc7b39fffbdac99ffb7a594ffb3a28fffbeaa98ffc0ab98ffbaa893ffc3b19dffc5b39dffc6b39dffcfb9a3ffd6c3acffd5c2a9ffd5c2a6ffd9c2a9ffddc8b2ffedd8c1ffebd5bfffefdabfffffeed5fffbe6cffffff5defffff6ddfffff7ddfffffdddfffffffcffffffe6fffffff2fffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffdfffffffcfffffffafffffff5fffffff4ffffffedfffffce4fffffce3fffff4d9fffff2d7fffff3d7fffff8dcfffff1d8ffffebd4fff7e3cefff4e0cafffae2cbffebd6c0ffe8d2bdffe2ceb7ffdac4b0ffdcc7b3ffd1bda9ffd8c4b1ffd4c0adffd8c5b0ffddc8b2ffdecbb5ffdac7b0ffd1bea5ffd2bca6ffd4c0abffd8c3aeffd1bda8ffd4bfa9ffd5c0abffcdb8a5ffd5c0adffd4beaaffcfb9a4ffbfaa93ffd7c0a9ffccb8a3ffcbb8a3ffcfbda8ffcbbaa5ffcebda9ffcdbba8ffcebca8ffcab9a3ffcebba5ffccb9a4ffc2b29dffcbbaa5ffc0ae9bffbfad9affbfad9affbcaa98ffbfac99ffbba898ffbeae9bffafa08dffbeac97ffbba997ffb7a592ffbaa994ffb9a793ffb9a795ffb5a390ffb9a692ffbba893ffb5a08bffb19f8dffad9c88ffaf9e8bffa99886ffae9f8bffb09f8dffae9e8bffac9b8affaa9a89ffa19281ffa89887ffa89887ffa59586ffa69785ffa69787ffa89886ffa59584ffa89886ffa69886ffa89682ffaa9985ffab9a86ffa99684ffa59583ffa49482ffa99785ffa49180ff9c8d7cff978676ff9a8a79ff988677ff988778ff978776ff978878ff978776ff9e8e7dffa39181ffa29281ff998977ff988774ff998775ff9d8c7cff9b8b7aff938372ff9a8a78ff958575ff8f8071ff998878ff928272ff8e7e6eff91806eff8c7c6dff8f7f70ff8d7e6fff908172ff8d7e6fff8d7e70ff908071ff8e7e6fff8e7e6dff8f7f6eff897a6aff827565ff887a6bff7c7062ff7a6e60ff7b6f61ff7b6f61ff7b6f61ff76685dff7c7061ff756958ff7d6f5dff7b6d5eff776959ff7d6e5eff7a6c5cff776a5dff716457ff786b5bff796c5cff6f6152ff706456ff685c4eff695e51ff685c4fff6c6354ff6e6255ff6a5e52ff695d51ff675b4fff605649ff655a4eff645a4eff60564aff63594cff655a4fff61574bff5f5448ff61564aff5c5346ff605547ff625749ff615749ff615549ff5d5347ff594e43ff5b5145ff5c5044ff524a3eff4f463cff50473cff4d443affbfae9bffbaab96ffcab7a4ffc4b09dffc7b29effc2af9dffb6a594ffac9b89ffb09e8cffbaa794ffc3af9bffc0ae99ffc1b09affcbb8a3ffc4b29cffc3b29bffdcc7adffd7c4aaffdbc7abffdac8aeffe9d6bdfff4dfc7fff5e0c7fff1d9c2fffdeacdfff6e2c9fffff7dcfffff1d5fffff7ddfffff3d5ffffffeafffffff5fffffff1fffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8fffffff5ffffffecfffffde4ffffffebfffff9e2fffffde7fffff3dcfffff7e0fffff8e0fffff7defffff6e0fffeebd4fffae3ccfff5dec9ffead5c1ffe0cbb6ffdfcbb5ffe3ceb8ffe0cbb7ffdec9b5ffdecab5ffdfcbb6ffd7c3afffd3c0abffe6cfb8ffdbc7b0ffdbc6aeffd4c0aaffdbc6b1ffdec8b3ffd7c2adffd4bda9ffd3bea8ffccb8a4ffd5c2abffd0b9a3ffccb6a1ffcbb49effd0bda6ffcdbaa3ffcbb6a2ffccb9a6ffccbba9ffcbb9a6ffc7b6a2ffcbbaa6ffc9b8a4ffc7b7a2ffc1b09dffc0ae9cffc2ae9dffc7b4a2ffc4b09dffbba998ffc4b19cffbeac98ffbaa896ffb8a795ffb4a494ffb3a391ffb6a694ffb9a997ffb6a593ffb8a895ffb3a492ffb6a594ffb5a391ffb8a693ffb5a490ffbba692ffad9c86ffae9c87ffab9985ffaf9c89ffb3a18fffaf9f8cffa99a88ffa79786ffa59585ffab9b8affa59685ffaa9a89ffa89987ff9f8f7fffa49683ffa69786ffa59787ffa69788ffa49484ffa69785ffa89887ffa79886ffab9a89ffa79583ffa59382ffa19181ff978878ff918272ff9f8e7eff9b8b7bff9c8b7bff9a8a7aff9c8c7cff9b8b7aff958575ff9a8b79ffa08f7dff998a77ff968673ff988976ff9f907eff9f8f7eff9b8977ff978675ff928271ff908171ff918170ff8f7e6dff8b7a6bff8f7e6dff8e8171ff8c7d6eff8a7b6dff8d7e71ff8b7d70ff8e8070ff877969ff8f8070ff887a6aff8b7d6dff847567ff7e6f62ff837467ff7f7365ff7b6e60ff7a6e61ff827565ff7a6e5fff7b6d60ff75695cff776a5dff736759ff76695bff796d5eff7a6d5eff7b6e60ff766a5eff766a5dff746759ff746759ff716556ff78695bff6d6151ff685c4dff66594bff6e6052ff6e6255ff6a5f52ff665b4fff665a4eff63584dff685c51ff63594cff655b4eff645a4dff5a5044ff5e5548ff5f5549ff5d5349ff61574dff5e5348ff5f5548ff5f5449ff62584bff62574cff5b5045ff5d5145ff584e43ff51483eff4b4238ff4d443bff4e453bffbaa896ffbaa997ffbdab98ffbfab98ffc0ac99ffb9a793ffb19f8cffad9d8affb3a38effb7a591ffbaa694ffb5a48fffbead97ffc3b39bffc2b09affc6b59effcbb8a2ffd4c2a9ffdcc9afffdccbb1ffeed9bdfff2dec4ffecdac0fffbe4cbfffce8cdfff7e4cbfffdf2d7fffffae0fffff5d6fffff1d4ffffffecffffffedfffffff5fffffffffffffff9fffffffcfffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffefffffff7fffffff5fffffff0fffffff1fffffde5fffff5defffff3dcfffff6ddfffff5defffff3dcfffff1dbffffeed6ffffe8d0fff6e0c7ffecd7c0ffe7d3bbffe5d1baffe3ceb8ffdec8b5ffe0cbb7ffdbc7b3ffd8c5afffd8c4afffd6c4aeffd9c6b0ffdfcbb4ffdbc7b0ffd4c1abffdcc5afffd1bda8ffd5c1acffd7c2acffd8c1abffcfbca7ffd2bfaaffcebaa5ffc9b59effd2bba4ffd0b9a5ffcbb6a1ffccb7a3ffcbb7a4ffc4b29effc5b39fffc3b19effc9b7a4ffcbb9a6ffc0af9cffbead9affc1b09fffc0ad9bffc0af9dffc5b3a0ffc1ae9bffbdaa98ffbeab99ffbeab99ffc0ad9bffbbaa99ffad9e8fffb2a394ffb4a494ffb3a493ffb6a795ffb6a592ffbaab97ffbbaa98ffb4a291ffafa08dffbaa894ffb2a18dffb3a28effaa9986ffad9c8affaf9d8affaa9986ffa99987ffa99b8cffa59585ffa49584ffa49584ffa99988ffa49483ffa79786ffa39583ffa89888ffa29383ffa08f80ffa19181ffa49484ffa79786ffa89887ffa99787ffa79583ffa39282ff9e8e7bff9a8a7aff9e8f7eff998979ff9a8a7aff958476ff988878ff978877ff998978ff988877ff978877ff988978ff9e8e7bff988977ff988a78ffa1907dff978877ff9a8978ff988675ff978674ff918271ff8e7f6eff90806fff8a7b68ff91806fff907f71ff8b7b6eff908173ff8b7d70ff877a6bff887a6bff877a6aff8a7c6dff837566ff817465ff7f7264ff7e7264ff807465ff7a7061ff807365ff7e7163ff7c6f62ff7c6f61ff7e7062ff807264ff796c5fff6e6357ff74685cff75695dff74695cff766a5eff796b5eff7a6e60ff7d6f61ff6f6356ff6f6356ff76695aff6d6153ff6c6052ff695d4fff6b5e51ff6a5e50ff695c4eff675b4fff665c52ff64594eff62584cff62574aff655a4dff605549ff61574bff5d5447ff60564aff5b5147ff594e45ff5b5046ff5c5247ff5d5248ff5d5247ff5d5348ff5f5347ff5d5145ff574d41ff544a3fff51483cff4f473cff51483effb4a495ffaf9d8dffaf9e8effaa9b8affb4a492ffb7a692ffb8a692ffb5a490ffbead98ffbfae99ffbeaf9affbfad98ffbcaa94ffc7b59effbfac96ffccb9a0ffcab7a1ffd5c1aaffcdbda4ffd6c1a9ffedd8befff1ddc4ffefdac1fff4e1c7fff3e0c5fff7e6cefff9e6cdfffef3d8fffff8dcffffffedfffffee1ffffffedfffffff6fffffffafffffff4fffffff8fffffff1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffff1ffffffedfffffff1ffffffeffffff5ddffffffeafffff6defffff3dbfffff3ddfffeecd5ffffedd6fffae7d0fffae7cefff5e1c9fff4ddc6ffead5bdffefdac2ffe9d4beffe6d2bdffdec9b5ffdcc8b3ffdbc8b2ffd8c5afffdcc9b1ffdac7b2ffddc9b3ffcfbea8ffceb9a4ffd7c2aeffd7c3aeffcfbba6ffd3c1aaffcdbba5ffcfbea9ffccbaa5ffcbbaa4ffcdbaa5ffceb8a1ffc9b59effc9b49fffcbb6a2ffc7b29effc1ad9affc0ad99ffbeab98ffc8b6a2ffcabaa6ffc0af9dffbfae9cffbba896ffbba996ffbaa996ffbeac99ffbdab98ffc0ad9bffc2b09dffc5b19fffb8a795ffb4a392ffb1a191ffa99a8bffb0a190ffb9aa98ffbaac99ffb2a392ffb7a896ffb7a796ffb3a391ffb0a18effb4a38fffb1a08cffb4a38fffb3a391ffb1a08dffb2a08cffb1a08dffaf9f8dffa79787ffa29183ffa69786ffa19282ffa39483ffa29482ffa09281ffa49684ffa59787ff9e8f7fffa29384ffa49483ffa09081ffa09081ff9f8f7fffa09081ff9e8f7fffa09180ff9a8c7affa29180ff978878ffa19180ff978878ff9e907fff988877ff948575ff918272ff9b8b79ff988976ff978977ff9e8d7cff948774ff9a8a78ff988877ff978776ff958573ff948473ff8b7d6dff8c7e6fff8c7e6eff8f806fff8f8071ff8e7e6eff8d7e6dff8b7c6eff8a7b6dff87786bff847668ff7e7163ff827566ff857869ff8c8070ff7e7263ff807465ff796d5eff7b6f60ff776c5dff7f7363ff7a6e60ff807264ff7f7263ff7f7163ff786c5fff73675aff6d6256ff716559ff776b5eff7e7263ff7b7062ff75695cff786c5eff776a5eff726657ff6f6456ff6e6154ff6d6052ff6d6154ff706457ff6b5f52ff6b5f52ff6d6053ff6a5f52ff63594dff60544aff655a4eff5f5448ff5f5548ff5f5548ff5c5146ff5f554aff5f564aff564c43ff5d534aff5c5246ff584e43ff584f45ff574d42ff584e43ff554d42ff574e42ff554c3fff594e42ff52493eff584f43ff51483dffb0a092ffaa9989ffa79787ffb1a18fffaa9a89ffb6a592ffb2a18effb5a390ffbbaa96ffb6a591ffb1a28dffbeab96ffb7a48fffbfac97ffbba790ffc1af97ffccb8a2ffd7c3abffd6c3adffe3ceb2ffe9d6beffecd7bdfff1dac1ffeedcc2ffefddc4ffeedbc3fffae7cffffeefd4fffff4d8fffff0d8fffffee9ffffffeffffffff4fffffff3fffffffbfffffff8fffffff8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4fffffffafffffff2fffffff0fffffff3ffffffecfffff5ddffffffebfffff9e3fffff4dfffffecd5fffae7d0fffdecd4fff4e1cafff3e1caffead7c1ffebd7c1ffecd8c2ffe6d1bcffdfccb7ffe2cdb8ffd6c2acffd6c2adffdac4aeffd6c3adffdcc7b2ffdfcab5ffd6c3afffddc8b0ffdac6b2ffd5c0abffd4bfaaffcdbba5ffcbb8a4ffc8b6a3ffccbaa6ffccbba4ffcbb7a2ffc7b39fffd0bca7ffcab7a2ffc7b39fffc5b19dffc6b29effc1ae9affc2af9cffc1ae9cffc4b4a2ffbdad9cffc1af9cffbdaa98ffc2b09cffc3b09dffc2af9cffbfad9affbaa998ffbea899ffb9a795ffb8a693ffb3a190ffab9b8affa69788ffb1a191ffb4a593ffb4a492ffbba999ffb5a492ffb6a795ffb1a18fffb4a28effb19e8bffb09e8affb1a08cffb1a08dffab9a87ffaf9d89ffa89785ffa99987ffa89887ffa99785ffa99a88ffa59685ffa09180ffa39483ffa09280ffa19282ffa49586ffa29281ffa08f80ffa39284ff9e8e80ff9f8f81ff9e8e7fff9d8e7fff9a8b7bff9d8f7dffa09180ff998a7bff9e8e7eff9d8d7dff948576ff9a8c7cff938372ff938474ff918171ff9b8977ff928372ff998877ff9c8c7bff978776ffa3927eff9c8c7bff978574ff968775ff8f806fff8b7c6dff8b7c6dff8d806eff8d7e6cff8e7f6fff8a7b6bff938373ff8c7d6eff897b6cff86786aff857769ff807364ff827566ff87796bff85796bff7f7365ff7e7263ff7c7061ff817565ff817565ff7e7162ff7b6f61ff76695dff7a6b5fff786b5eff766a5bff74685bff6a5f54ff6c6154ff75685cff776c5eff74685bff7d7062ff75675aff72675aff6f6456ff6f6355ff6d6053ff6b5f51ff6a5f52ff6c6154ff675c50ff675c4fff665b4fff64594eff645a4dff65594cff64594dff60554aff5e5347ff605549ff5a5145ff5d5247ff5e5449ff5b5146ff574e43ff5b5147ff574d43ff584e44ff564c42ff544b40ff534a3eff544b40ff574e42ff52483dff554b40ff564c40ff50473dffb1a08effac9b89ffad9d8affb09f8effa99987ffbbac96ffb5a491ffad9c88ffb3a28fffb8a997ffb5a28affc5b49effccb9a2ffd1bda6ffccbaa4ffc7b59fffcfbca3ffd3c1a8ffe1d0b7ffdfceb5ffebd8c3ffe3cfb9ffe5d1bafff5ddc3fff6e1c6fffcebd0fffce9d0ffffedd4ffffedd3fffffae0fffff2d5fffffee8ffffffeffffffff0fffffffafffffff7fffffff9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fffffff5fffffff1ffffffeeffffffe7ffffffecfffffdeafffff8e3fffff7dffffff1d9ffffedd4ffffeed6fff3dfc9fff9e8d0ffead8c4ffe7d4bfffe7d3beffe9d5c2ffe3ccb5ffe8d4beffe6d1bbffe1ccb5ffe7d2bcffdecab4ffdfcbb3ffdbc8b2ffdccbb5ffd7c5b0ffd4c1b0ffd0bdaaffcebba8ffd5bfabffcdb9a4ffcbbaa5ffcab8a3ffcab6a1ffc6b19cffc7b19cffc3ae98ffc7b39effc5b39effc5b29cffc4b09cffbead97ffc1b19affc3b19effbdac9bffbead99ffc1ae9bffc6b19dffbeab9affc3b09dffb9a796ffb6a594ffb19e8effb6a292ffb5a392ffb2a28fffb0a08dffb1a08effac9d8cffafa190ffb7a694ffbaa795ffbaa895ffb7a593ffaf9f8dffb09f8effab9a89ffae9c8cffb09d8cffa79585ffa39180ffa69581ffa99785ffac9985ffaf9d8affa89786ffa79786ffa29382ffa49584ffa49684ffa69483ffa29181ff9d8d7dffa59484ff9e8f7effa29383ffa29082ffa29182ff9e8e7fff9d8e7fff9f8f7fff9f8f7fff988a7bffa19380ff9a8b7bff9c8d7dff998a7bff978878ff978776ff9e907eff9d8d7bff938473ff9d8d7dff968776ff9a8a78ff9a8b7aff998b7aff9b8c7bff928274ff978877ff978575ff978675ff918170ff8e7f6fff8f8170ff8d7d6dff8a7969ff877766ff8b7a6aff897b6bff867869ff847666ff827566ff7e7262ff847768ff847668ff847669ff7c7061ff827465ff7f7162ff7e7163ff7e7162ff75695cff786b5cff74665aff76685dff796c5eff6d6254ff74685aff716657ff6e6255ff74685cff766a5cff7c7061ff7f7263ff766a5cff6f6457ff6e6255ff6e6154ff6b5f53ff6b5f52ff64584dff5f5449ff63584bff665a4eff665a4dff6b6052ff64594dff63584cff605549ff60564aff5f5548ff5f5348ff5d5247ff5b5045ff5f5449ff584f43ff5a5146ff5a4f47ff5a4f45ff584e43ff574d42ff574d41ff584e43ff52493eff595043ff53493eff53493eff52493eff524a3fffab9a88ffae9e8effac9c8affaf9e8bffaf9e8bffb6a491ffbcaa96ffb1a08cffb2a18dffb9a793ffc0b19bffc4b39dffc8b5a0ffbfac98ffbead93ffc7b49fffd4c3a8ffd0bea4ffdecbb1ffd2bda6ffd6c5adffe3d0b8fff1ddc5fff2dfc7ffefdac3fff7e4cbffffefd6fff9e8cefffdecd2fffff1d8fffff9e0ffffffefffffffefffffffedfffffffefffffffafffffff8fffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5fffffff0fffffff8fffffff8ffffffedffffffe9fffff9e1fffff7dffffff5deffffefd8ffffefd7fffce8d2fff7e3cefff5e2cdffe5d3beffe3d0bcffebd7c3ffead8c2fff0dbc5ffebd5c0ffe3ceb8ffe0cbb3ffe0ccb7ffe0cdb4ffd4c2abffd6c4adffd5c0acffcdbca8ffd2c0acffcfbdaaffcebca9ffcab7a5ffcdbba6ffccbaa4ffc6b59fffc2b09bffc6b5a1ffc9b6a1ffc7b49fffc4b19cffc6b39dffc1b09bffc0ad9affc0ad99ffc7b39fffc0ae9cffb7a491ffb8a694ffbfad9affc0af9cffbba897ffbeab9affb6a595ffae9f8fffb6a493ffaf9e8effaf9f8effb3a290ffaf9e8cffaf9f8dffb1a190ffb4a392ffb9a694ffb1a291ffb09f8dffac9c8bffb4a291ffac9c8affb0a08dffab9a87ffab9a87ffa89683ffa99785ffae9c8affae9c88ffaf9c8affaa9887ffa69584ffa59684ffa99887ffa69583ffa99888ffa2907fffa08e7dffa39283ffa89787ffa49282ffa49281ff9f8e7dff9f8e7fff9e8e7fff9e8d7eff9e8d7dffa09080ff9f9080ff9b8c7cff938474ff998a7bff9b8b7bff9c8e7dffa19281ff9c8c7cff9d8d7cff998a78ff9c8d7cff958775ff988775ff938372ff958473ff8b7e6dff958676ff908171ff908271ff8e7f70ff918372ff8b7c6cff8a7c6cff897b6bff897c6dff8e7f6fff897b6aff837464ff897b6bff817465ff7d6f62ff817366ff87796aff847669ff796b5eff7a6d5fff7f7263ff807464ff7b6e60ff7c6e60ff75695cff6f6357ff776a5cff766a5dff73675aff706556ff726658ff706356ff756a5cff796d60ff7b6e60ff70665aff6d6154ff6a5e53ff726558ff6c6153ff6d6254ff685d4fff6a5e50ff675c4eff685c50ff6b5e52ff685c4fff695d50ff64584dff61574bff60564aff62574aff5f5447ff60554aff5b5044ff5c5145ff5d5349ff60564bff5a5046ff5a5045ff574d42ff574d42ff564d43ff564c41ff574d41ff564c41ff564c41ff574c41ff51473cff50463bff544b40ffb1a08effafa08cffb1a18fffb9a795ffbaa995ffae9d8affab9a87ffa99986ffa99783ffb5a390ffb7a792ffc7b7a0ffbcab96ffcebba6ffbdab97ffcab8a0ffd0bfa7ffd5c2abffc8b9a1ffe2d2b8ffe0ccb6ffebd6c0ffead6bfffead6bfffeedac2ffffecd5fff6e4cdffffedd3ffffefd7ffffeed6fffff0d4fffffde2ffffffebfffffff1fffffff6ffffffffffffffeefffffffffffffff3fffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffdfffffff5ffffffeeffffffefffffffecffffffefffffffecfffffee6fffffbe0fffff9e1fffff9e1fffff4dcfff7e4cefff4e1cbffe8d5c1ffe0cfb9ffe8d5c1ffe8d6c0fff3dfc8ffe6d1bbffeed7c2ffdfcbb6ffe7d3bbffe6d4bcffe3d0b9ffd2c2acffc8b8a3ffd4c1aeffd3c1aeffd0bdabffcbbaa7ffc8b6a3ffd1bdaaffcab8a4ffc9b7a2ffc9b5a1ffc4b19dffbcac96ffc2b19cffc0b09bffc4b39dffbfaf9affc0b19dffbaa996ffbba895ffb4a28fffbaa896ffb8a694ffbaaa96ffbdab97ffbcaa99ffbcac99ffafa090ffa79787ffae9f8cffb0a08fffae9f8dffae9d8bffad9a8affb5a491ffb1a291ffb0a08fffb5a493ffb4a290ffac9c8cffb09d8bffab9a87ffaf9e8cffaf9d8bffa89885ffa79684ffa19180ffa69582ffa69584ffa99887ffae9c8bffa79685ffa39482ffa59484ffa49484ffa49586ffa49383ffa39382ff9a8979ff918070ffa29180ffa49280ffb19c88ffa69483ffa49382ffa08f7fffa19080ffa69583ff9e8e7dff948575ff9b8d7cff918373ff938371ff968877ff9e907effa09280ff9d8e7dff9d8d7dff988a7affa2927eff9d8f7dff9c8b79ff928573ff8a7d6bff928273ff918272ff8e7e70ff8d806fff8f8071ff8c7e6fff8a7d6dff8e7f6fff887a6bff877869ff817464ff857768ff817464ff837766ff7e7364ff7e7466ff857769ff7d6f62ff786a5dff7a6d60ff796c5eff807364ff807262ff837566ff7b6f60ff706457ff6f6255ff756a5aff74685bff756a5aff706356ff6f6255ff766a5cff746a5cff73675aff786d60ff736558ff6e6256ff6f6153ff6b5f51ff6e6254ff706255ff675c4eff695d4fff64584cff665a4cff65594eff65594eff675c50ff62574bff5e5549ff5d5347ff5e5348ff5f5449ff5f5449ff5d5346ff574d41ff52483dff5e5448ff5a5044ff615648ff5c5246ff5a4f44ff584f43ff584e43ff5d5347ff574d41ff4f463bff53493eff4f463bff4e4539ff52483effa59582ffaa9b87ffa5947fffaa9a86ffab9c88ffa79784ffa99885ffab9b87ffac9b87ffaf9b87ffad9e88ffc2b09affbaaa94ffbcac97ffbdab97ffc1b09bffc5b39dffccbaa3ffd5c1a9ffdbcab1ffdfcbb5ffe0cdb7ffe6d3bcffeedac3ffe8d4befffbe8d2ffecdbc6fffce9d1ffffeed5fffff1d9fffffae2ffffffeaffffffe7ffffffecffffffeffffffeebfffffff2fffffffefffffffffffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffefffffff8ffffffedfffffff7fffffff3fffffff1ffffffe4fffffee2fffff8defffffae0fffff1d6fffff1d9ffffedd5449c78341f9e731c27956d1d25362e171d362b17262e24172b70521c267c581c34835f1e324334193a2721192a241e161e3a2c15237e5b1d247f5a1c2f6b4d1c1f2d241221352a14492d261821765618277a5b182272541720292213201c1912171e1a112e7e5d1c2c84631c357c5d1d444639202d2f271828241e15314e3c192978571a2c78571b3075571a3e3b2f181b261f11202f24111a6b4e16177555152578581a2c4a381819201b1428241d17285b421627785618396d511d525945221d251d0f161f1a10193127122d6f50181e6e501420674d1422221c11241f1a125429241c30624913416e5116306b4e16203a2b101f1d190f2e2c23131f3b2d12206d4e13297252152d694b1431271e132e1f1b12652c271ea95f4d2d286c4f16296e5014242b2210262f2410241c17111d3b2d101e6a4c121e6d50131c6348151e1d19102717151225563f14247352151f715114ff928373ff918271ff9a8b7aff9b8c7aff968776ff9b8c7cff9a8b7bff968877ff9b8c7aff958574ff958573ff8d7f6dff918271ff8c7d6eff928474ff897a6cff8a7c6dff8d8071ff8a7c6cff867869ff887a6bff867869ff877a6bff8a7b6dff7e7262ff827565ff7a6e60ff7b6e61ff827567ff817365ff7a6c5fff7a6d60ff7a6d5fff7b6e5fff7f7262ff776a5cff6e6458ff6d6154ff736659ff766a5cff6e6255ff716557ff6c6053ff716457ff6f6456ff726759ff706557ff6e6255ff706356ff6a5e53ff695e50ff6a5f50ff6d6154ff6f6255ff6a5d4fff685d4fff655a4eff685c4fff62574cff62574cff63584cff63594dff63584dff61564bff584e44ff5b5146ff5a5045ff554d41ff574e42ff5d5347ff5d5347ff5d5447ff544c40ff564c41ff554b40ff564c41ff544a3eff534a3eff52493eff4d443aff4d443aff4d4439ff4e453aff4d4338ffa39380ffa39381ffa0927dffa39580ffa2947fffa69583ffb0a08affb0a08affb4a48fffb19f8dffb39f8affafa18bffb7a891ffb4a590ffbead9affc3b49dffbfb098ffd3bfa5ffd0bba5ffd4c0a9ffdac6b1ffe3d1b9ffecdac2ffead7c0ffe8d5bffffbe9d1fff1dcc7ffffead3ffffeed3fffeeed7fffffce3fffff7defffffee9fffffff1fffffff3fffffeecfffffff3fffffff0fffffff4fffffffffffffffffffffffffffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffdfffffff4fffffff5ffffffeefffffee9ffffffe7fffffee5fffffae1fffff7defffff0d6fffff0d6c1dec69c27946c1d257c5c1b1b282215252723171c2b261920835f1c278a641f3785622127282216853730262d3a2d191f654c191d7e59182177551b1c523c1619412f161e261f13293b2e151d6f50162a7b5b18426d531c1f3327121e211c131d3b2e14287a5a192b80601a3d6b531d3027221b30201d1a2d2822182e6a4e1b2a7b5a1a2b7a591b445e471d582b2519532f291a2c4434142a81601b2886611a3571521b2e28211525312717532f291f39674c1c21735317287756191a372b141418171013241b0f11533b11166749141a684b151c523d131a1b170f23201a123c352c1aa265522b216a4e1418563e10193a2b0f1c241d101d241d1019523c1234604616185d4312324737143436291325211a104e332a1a6471552320664b141d574013251d1a102c1d181120281f0f256248136574571b446f52182c433512351816142517141033453414287555182374521621815d192d74561bff938475ff928070ff918473ff978978ff978979ff958677ff978978ff968775ff978575ff948372ff8f7e6dff918170ff918271ff8c7d6eff8a7c6dff857768ff8c7d6eff837567ff877a69ff857868ff807264ff807566ff7d7162ff857668ff877768ff7e7162ff796d60ff796d5fff76695cff7e7062ff7b6e5fff7b6e60ff7a6d5fff75695aff776b5dff716658ff706458ff716559ff6f6356ff716357ff716659ff6d6054ff71655aff73675bff75685bff6c6053ff685d50ff6e6457ff706457ff6e6256ff6d6155ff706455ff6c6052ff6a5f50ff6a5e51ff6e6356ff6a5e50ff6b5e51ff6a5d51ff64594dff60574bff62574cff5c5246ff5d5247ff5a5045ff5a5144ff574e43ff5a5144ff574e42ff574e42ff53493eff544a3fff554b40ff554a40ff554a40ff50473cff534a3fff50473cff4f463cff544a3eff4f463bff51483dff4e453bff998a77ff9a8b77ffa4957fffa3917dffa59681ffa79884ffa8967fffa7977fffaea08affad9c89ffb7a68effb4a38dffb2a18dffbbaa93ffbbac96ffc1b19bffbda994ffc8b6a2ffcbb8a5ffcdbba7ffdbc9b3ffe2d0b9ffe9d5bffff4dec5fff5e1cafff8e6c9ffffeed4fff9e4ccfffcecd1fff5e1cafffbe8d0fffff7defffffce5fffff5ddffffffedffffffeffffffff1fffffffffffffff1fffffff2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff6fffffff8fffffff5fffffde7ffffffe6ffffffe9fffff3dafffff0d6fffff8ddd2dbccaf439b7522217a5b1a1a2620151c282316b65953463c87682624926b2020694e1b282522172e362b174b3c2f1c358764212787631e397f5c1d1e4134191d3f2f151d312612226f5017267758181a6c4d15293d3117492d281c2a2c24131e674e151f785b1921785b1a2f4e3d1933272018221d1916252821172773561a2977561a2c7b5b1b4a372f212a23201a201c191444624b1b4387651d2784621a28543d18372520182c362b1b31513e1e297a591a227756192577571a2729211430231e17221c1913316348193675571b3773561b4c47361c361a1a1625211c12274434153271541a24725415214f3b131e1a160f1d1a1710212b2313195c44121e5e4413215f4413254131112b1c19102f2e24134b5d461c4076551a2c725316203c2d11211c18101916140e2a433314286e5117357051162f70501523281e10351916112d1816102c4d39142e7354184a704f1c2a4c381331664b18227b57182c79581bff948574ff958574ff958675ff918372ff988a79ff8f8171ff918170ff958576ff8d7d6fff908070ff8f806fff938373ff8b7c6dff918070ff867869ff8d7e6dff877768ff817364ff7c7061ff7f7063ff817366ff7a6b5eff7e6f62ff7e6f62ff7e7164ff7b6e5fff7b6e60ff75695bff736659ff75685aff7a6d5fff796c5eff7b6e5fff776a5cff75675aff6f6255ff746759ff6f6355ff6b5e51ff695d50ff695d4fff695c50ff706254ff6e6155ff6d6154ff6d6356ff72675aff685d52ff6b5f53ff716558ff6e6252ff665b4eff695e51ff685e51ff685d51ff62584bff685d4fff6d6153ff62574bff5d5347ff5b5347ff61564aff5a5145ff5d5447ff5c5246ff574e42ff534a3fff584f44ff544b41ff54493fff574c41ff53493eff4f453bff51473bff564c40ff51473cff52493eff4e453aff504639ff4b4236ff4e463bff4b4238ffa69581ff9d907bff9c8d7bffaa9884ffa89783ffad9b87ffa99882ffb4a18cffac9c88ffb3a38fffb4a48fffb19f8bffbbab95ffb9ab95ffbdad98ffbbab99ffc0af9cffc1b09cffc8b7a3ffccbaa6ffd4c2adffd3c1adffe2d0baffe9d6c2fff4e0cafffeead3fff0dbc6fffbe4d0fff2e2c8fffcead2fffbe8d1fff9e6cefffffce5ffffffe4fffffff6fffffce8fffffff9fffffff7fffffff9fffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffff9fffffff2ffffffecfffffce2ffffffeaffffffeafffffde7fffff9ddfffff2d9674d44312a987220195a4518362b28217782693457a17b2c279b731e2a39301940352e1e3f312a1c3c55431c1b825f192584611c1f6348182a312716322b24163b3e3117237f5b1825825f192a795818292620182c201c1828272217307e5f192b82621b1f745617231f1d12261e1a121e201a1126513d16257959192d7d5c17e1796641df50493c31201f1b2f262118287a591a2e825f1b257e5d19244435162d342817383228182b7053192a83601b29815f1a325d471a271f1c16271f1c162329221520735418257a5a1a336e521d33251f1942211e183b221e18215d44152b765717266f5218513d311a421f1b18391f1c17274737152c6a4f182f6d50172b5842142b211c112a292113363a2c163d674d1b376a4f1cfe5c54445d312a1c2c211d13201816112a4937152d73541448775918255e46131d201a101a1c19123a251e172f654a17266b4c1623664815242b21135a2c25171f1a18121e1f1b132d1f1b159f645848ff9a8a78ff968877ff938574ff8f8171ff8f8172ff928273ff8b7c6dff938374ff918172ff8f8070ff8d7e6fff8c7e70ff918173ff8d7d6fff8a7b6dff847467ff807264ff7f7263ff7f7163ff76695bff7d6f61ff7d6f61ff837565ff786b5dff766b5fff786c5fff776a5dff716357ff7b6d60ff776a5cff7a6c5eff78695bff786a5cff726557ff75685aff736658ff716456ff716457ff685d52ff706356ff6f6154ff6c5f52ff6c5f53ff6d6154ff716658ff74695cff655b4eff655a4eff695f52ff685d51ff6a5f53ff645a4dff685c4fff675a4dff63564bff6a5d51ff675a4dff65594cff61564aff5f5548ff585042ff5e5648ff5b5245ff594f45ff53493eff564c40ff564c41ff53493eff574d41ff564b40ff574b40ff554a3fff544b3fff52483dff54493eff574d41ff51473cff50473cff51473cff4d443aff4f463bffa1917effa08f7dffa69783ffa49480ffa59480ffa3907bffae9d88ffb39f8affaa9987ffaf9f8cffb09f8bffa99a86ffb3a48fffb8a894ffb9a894ffb8a895ffc0b09dffc4b39effcbb9a3ffc9b7a2ffc5b4a0ffcdbba7ffd8c6b0ffebd8c3ffe9d8c0fff9e5cefff8e4cdfff4dec7ffe7d6befff9e8ceffffffe8ffffefd8fffff9e1ffffffeffffffee9fffffeedfffffff6fffffff8fffffffcfffffffcfffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffff2ffffffeafffff5dffffff9e1fffffbe2fffffbe4fffff6de2b2f291e5a4f47352a9e76202d695022723e362e648f77458dc5a870928d806d98877b6e94867a6b8bad956e8bb297658ab69a6994a68e688a7d705f917f72619186765e8da788598ca186598c9b8258937a6b588f7065598f72655392a1865694a287588e947d548c6b62568e6a61568f6d6254898975538c947c558c967d56e38f7f67d57d7266ab73675a98736557919d8156939d835890907952936d604f907867509377675193977c548e967b4f97987e52987767529b6a5d4e8f625749906f604d978b734b8a88724dc0816f549660564a8e5c52489b695a499389734c8b887149938671498f5e54488f615648915c534895816c499287704a8b7e68468c7361478c574e448f5f554894615546c08673539078664ad67d6b539d65594a955f54478f5d52468e7a684595836d468f856e45976e5d4389584f448d564d428b5d514295806842938069438e7d67448e584d3e8c5e52422e674c172b4936153e29241b2c1e1c18311c1b17fb8d8070ff948776ff8c7e6eff948575ff8f8071ff918272ff928372ff938372ff887969ff877969ff8c7d6eff8d7e6eff8e7e6fff8b7d6dff887a6bff827264ff7e7061ff7a6d5fff7e7263ff7b6e60ff796e60ff817365ff847566ff7b6e60ff7f7263ff7a6d5fff796c5eff786b5dff786b5dff7f7262ff786a5cff746658ff766859ff6c5f52ff6d5f52ff76695bff75695bff726557ff72665aff6a5e52ff706254ff6c6052ff6b5f51ff75685aff776b5cff6f6457ff675c50ff6d6154ff6a5f52ff685d51ff665c4fff655a4dff61564aff6b5f51ff62564aff625649ff605447ff6a5f52ff63574bff5f5548ff5b5245ff5d5347ff5c5348ff5b5148ff5a5045ff5b5145ff53483eff51473bff50463cff51463bff554a3fff564c41ff51473cff52493eff564b40ff52483cff50463aff53493eff51463bff4f453bff4e453bff9a8a7affa99885ff958775ff9a8b75ffa69581ffa5937cffac9b86ffab9884ffa69481ffac9d8cffb1a08bffb1a18dffafa08bffaf9f8cffaf9f8cffb9a895ffc1b29dffb8a794ffb5a490ffc2b099ffc5b39fffd0bea9ffdfceb7ffe1cbb4ffe8d8bffff3dfc9fff2e0caffefdbc4ffeedfc5fffbebd0fffff2dafffef1d9fffff8e0fffffce4fffffef1fffffbe5ffffffeefffffff3fffffffdfffffffdfffffffffffffffffffffffffffffffefffffffffffffffefffffff5fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff2ffffffedfffff6e0fffffae5fffff8e3fffff2de3290732c282b251a23493b1e33a57c255a735b2a462b2821fffae5cffff5e1cbfff4dfc8ffe8d4beffe3ceb9ffe5d1bbffe2cdb5ffe1ccb4ffdec9b2ffe1cbb3ffd5c1acffcfbba7ffcab8a4ffc7b5a3ffc5b2a0ffc2ae9dffcbb8a5ffc6b2a1ffb2a08effbca996ffbfad9bffb5a492ffbfad9affbaa895ffbdab97ffc4af9bffbba894ffc0ad9affbeab97ffbeab97ffbaa795ffb8a594ffbfac99ffb2a18dffb19f8dffb3a08effb8a492ffb29e8bffb09d8affaf9c89ffb09d8cffad9a88ffab9a88ffa18f7fffac9985ffa59480ffa69681ffa2927eff9c8d7affaa9884ffa99784ff9e8f7dffa49380ffa59683ff9b8c7bff9e8e7eff9b8b7bffa39282ffa59383ff9f9080ff9c8d7eff97887aff968779ff958577ff988779ff948475ff968678ff948477ff958476ff978878ff938475ff998979ff998878ff9e8c7bff9c8c79ff918371ff8e806fff998978ff9a8b79ff948675ff94867598806a4726755318297353182e6f5118a465512bf6514c45ff8d8070ff8c7e6fff8e7f70ff908172ff8b7d6dff897a6bff887969ff897969ff877969ff8f8170ff8c7c6cff887868ff897c6bff857567ff817365ff7b6d5eff7d7161ff7d7162ff827465ff7a6f62ff7c7063ff847567ff7d7062ff796d5eff766a5cff7c6e60ff76695bff7b6d5fff786b5cff786b5dff77695cff736657ff706254ff6a5c50ff716457ff6f6558ff706558ff72675aff6a5c51ff716454ff6a6051ff695d4fff706153ff706355ff6c6053ff675c4fff695e51ff665b4fff60554aff685e51ff645a4dff665a4eff605549ff605549ff65594cff61564aff63594cff5a5144ff605549ff5f5448ff5c5246ff5e5449ff5d534aff5d5247ff50463cff53493eff53493eff4e423aff51453cff4f453bff51473dff50463cff4f463bff53493cff52473bff504639ff52483cff4f443aff4b4137ff4d453cff9e8e7dff9d8e7cffa1927effa79782ffa1907bffa28e78ffa69581ffab9a84ffae9e89ffac9b89ffaf9e8cffaf9e89ffb2a391ffb5a593ffb6a796ffc4b59effbeac99ffc5b39fffc0ae9bffc3b29effcbbca5ffc6b5a0ffdbc7afffd6c4afffe0cfb8fff3e1c9fff3dfc8ffe8d5beffe6d3bdfffeecd5fffff7e2fff7e5cffffffde5fffffee7fffff6dffffffff2ffffffeefffffff2fffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffff8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffff9fffffffafffffff7fffffff2fffffff1fffffeeafffffde8a7d7c5962080631d1a241f1627493a1c32a87e2630524221ffffecd5fffce9d0fffce8cffff6e2cbffe7d2bbffe3cfb8ffe9d4beffe7d2baffecd7bcffe4cfb8ffdbc7b0ffdac6b0ffd4c1acffcebaa8ffc6b4a2ffc7b6a2ffc5b2a0ffc6b3a0ffc8b4a2ffbaa996ffbbaa98ffbdaa99ffbeab98ffbca995ffbfac97ffbeab97ffc4b09bffbba793ffbdaa96ffbba996ffb9a794ffb9a894ffb7a593ffb5a28fffb2a18dffb3a28fffb4a290ffb3a08effb7a391ffaf9e8affac9987ffb09d8bffab9785ffad9a87ffaa9785ffa69481ffaf9c88ff988977ffa89885ffa49481ffa29280ffa59682ff9e8e7cffa1927fff9e8f7cff978877ff9b8c7cff998a7aff9b8b7cff9a8a7bff9a897aff9f8f7fff9f8e7effa89685ff978778ff968677ff978878ff9a897bff968678ff998a7bff978878ff988879ff998979ff9a8979ff998976ff988876ff9a8977ff9b8b79ff958775ff958777ff958677ff908072ff8d7f70566a522c276f4f1728704f1726694b15256a4d1329664a13ff8a7c6dff8f8172ff8f8170ff918171ff908071ff88786aff8d7d6eff847767ff897a6aff897a6aff837566ff877969ff837565ff7d6e60ff7a6c5dff7c6f60ff827566ff7a6f62ff7e7163ff7d7062ff7b6d60ff7c6e60ff7c7061ff786b5dff7a6f60ff74675aff7c7064ff75685bff726659ff807264ff6b5f52ff716457ff6a5e51ff675b4fff706458ff74685aff695d51ff675b4eff706556ff685d50ff75685aff706456ff6f6455ff6a5e52ff675b4fff63594cff61574aff695c51ff6b5f52ff61564aff5e5447ff5e5446ff5f5448ff655a4cff665b4eff615649ff605549ff5d5347ff5a5044ff5a5044ff594e44ff594f45ff564c42ff574c41ff554a40ff554b40ff534a40ff50473eff574d42ff53493fff544a3fff51483dff50463bff52483bff4e4236ff4f453aff4f4539ff51473cff4d4339ffa1937eff9e8f7dff9f8f7effa59583ffad9d8affb39f8fffa79785ffa5957effa99984ffaa9a87ffa99b87ffae9e8dffb3a190ffb9a696ffbdad99ffb5a592ffbead99ffbeae9bffb8aa98ffc3b39effcbbaa2ffc8b6a1ffcfbfa9ffd9c6b2ffe6d4befff0dec6ffebd8c2ffeedbc5ffefdec9fffcead2fffdebd2fffff1d7fffff4dbfffffae2fffffde5fffffae1fffffff1fffffff8fffffffbfffffff2fffffffafffffffffffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffefffffffffffffffffffffff1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8fffffffffffffffefffffffdfffffff1fffffff5fffffeeaf5f8f7e11b926d1e1f775c1d2f242420264b3c1f2ca07821eaf3dfc4ffffefdaffffecd7ffd5c2afff8d8071ff8d7f72ff8a7d70ff897c6eff8b7e70ff8b7e70ff84786bff827569ff7e7265ff807468ff817669ff7c6f63ff74685dff766b5eff7b7062ff776b5fff6b5f55ff72675cff796d62ff7e7265ff796d60ff7d7164ff7b6f62ff7d7164ff7d7265ff7f7367ff7c7164ff766a5fff73685cff796e62ff766b5eff6f6457ff797063ff7a6f62ff73685cff72665bff776b5dff72675bff6d6357ff716559ff73675aff73685bff71675aff63594fff6d6155ff645a4eff6c6154ff6f6558ff6b6154ff6c6153ff685c50ff6a5f52ff6a6054ff70655aff675e52ff685e52ff665c50ff6c6256ff6e6357ff6a5f53ff6a5e53ff655b4eff60564aff6c6256ff685d51ff695e53ff6a5f54ff685d51ff64594eff695f53ff6b5f54ff736759ff6d6253ff6f6456ff6d6357ff6d6358ff6a6054ff837669ff8f8273ff938576ff8b7c6d241d18102e392c17253f2f14265a4113216549156a705833ff8a7b6cff908071ff897a6bff86796bff86796bff8b7d6dff8a7a69ff877969ff857768ff8a7b6cff847566ff807162ff7f7162ff7b6c5eff807365ff7f7162ff7b6e5fff7c7061ff7d7162ff7a6e60ff74675aff776c5dff776a5dff786b5eff6f6356ff786b5fff786a5eff73685cff7d7060ff6f6256ff736659ff6f6355ff6a5d51ff6b6054ff6f6356ff63584eff736759ff695d51ff6d6153ff73675aff6c6154ff6c6053ff6a5e52ff63594eff655b50ff645a4fff665a4eff64594dff62574bff655a4dff5d5346ff6b5e50ff63594cff675c4fff5b5045ff5f5348ff5f5548ff5e5247ff584f43ff5a5044ff544a3fff574d41ff554c41ff554b41ff53493fff524a40ff52473fff53493fff50473cff52483eff51483dff51483dff53493eff564a40ff51463cff4e4438ff4d4439ff4c4339ff958675ff9c8c7bff9f917fffa69788ffa59684ffa49482ffa29381ffa59583ffa79886ffa79886ffa19280ffab9c89ffaa9b88ffb4a691ffb0a18effb8a794ffbdac99ffbead9affbfae9cffbfae9affccb8a2ffcab9a3ffd3c2abffd8c4aeffe6d3bdffebd8c2fff1dec7ffead8c2fff0ddc7fff9e3ccffffecd5fffff3dbfffff1dafffffde3fffeecdcfffffeecffffffeafffffffafffffffcfffffff9fffffffbfffffffdfffffffffffffffffffffffffffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffefffffffefffffffcfffffff2ffffffeb1a44381a1c926d1f317b5f26452f2c252a5c492196d0b37fffffefd8fffae6d1fff6e1cdffe8d1befff3dcc5ffedd7c0fff4dec6ffedd7c0ffeed7c1ffe1cbb7ffd4beabffd8c2afffd9c3afffcdb9a5ffcdb9a6ffccb8a4ffc5b09dffbca997ffbdaa98ffbba797ffbfad9cffbeac9affb5a491ffb6a591ffb8a693ffbca995ffbda996ffbaa892ffb8a691ffbba995ffbdab98ffbdaa98ffb7a492ffb6a391ffb7a491ffab9985ffb09e8bffb3a18fffad9988ffae9b88ffb8a38fffaa9886ffa89686ffa79483ffaa9987ffa59583ffa89684ffa39281ffa69383ffa29181ffab9987ffa49382ffa1917fffa49382ffa39382ffa29282ff9d8d7dff9a8b7bff988879ff948475ffa0907fff9f8f7fffa08f7fff968777ff877669ff918071ff918172ff978677ff928173ff958575ff948474ff948473ff928272ff928271ff9e8d7aff988975ff9c8c79ff978876ff968776ff998979ff938575ff968877ff978879ff8d8071ff8c7d6ffa8b7d6d24241e122c1b18141f1d19111d20190e1b2a200edb7f715fff8d7e6fff8b7c6dff8b7d6eff847667ff8c7d6eff887868ff877969ff897a6aff887968ff867868ff847566ff7d6f60ff7c6e60ff7d6f60ff7d6e5eff7d7061ff7a6d5fff796c5fff736759ff76695fff74685bff75695cff75695dff74685aff766a5eff716559ff72665aff76695cff76685cff706457ff6b5f52ff685c50ff6e6255ff6b5f52ff706557ff685e52ff716559ff6e6355ff6c6154ff685d50ff665b4fff6a5e51ff63594dff64594dff60564aff66594eff61574aff5c5247ff5b5145ff60554aff63584bff605447ff62564aff605548ff5b5045ff5a4f44ff60554aff5b5145ff584e42ff5a4f43ff554c40ff584e43ff554a40ff564d44ff4e463dff51473eff4a4138ff4e453bff50463cff4f473dff524940ff4e443aff4f443aff4d4439ff4f453bff4d443aff4c4439ff9b8c7aff9d8f7bff9e8f7dff9b8d7affa39482ffa69583ff9f927fffa29280ff9b8d7dffa49582ffa79785ffab9c89ffac9e8affb3a591ffb3a390ffaf9f8cffc0af9cffb9a996ffc7b6a2ffc0af9cffcfbaa4ffc8b7a2ffd0bfa9ffead5beffe0ccb7fff0ddc7fff2e0c8ffeddbc4fff3e0c9fffdead1fffdfae0fffff3dcfffff4ddffffefd6fffffde9fffffff2fffff4ddfffffff1fffffff0fffffff7fffffffffffffffefffffffcfffffffefffffffffffffffefffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffefffffffefffffff51c362c191587631d1998711f406e5729573330286c8e7950fffff0dbffffe8d5fffbe5d2ff998c7bffffebd3ffffebd4fff5dfcaffeed9c4fff7e0caffeed8c2ffe4ceb7ffdbc7b1ffd0baa6ffd7c1acffcfb9a7ffcfb9a6ffc9b4a0ffc2ad9dffc3af9effc6b2a0ffbba996ffbca898ffc4b19fffbca896ffb8a693ffb5a491ffb4a38fffbaa895ffb9a892ffbeac97ffbba994ffb5a391ffb5a492ffb4a290ffb09d8bffac9a88ffa99683ffb2a08bffb29e8affb4a08bffad9986ffac9985ffaa9884ffac9a88ff9a8978ffa89683ffa79482ffa89585ffab9a8affa49281ffa19080ffa69583ffa39382ffa29180ffa08f7effa99684ffa2907fff9d8c7cff9c8d7cff978777ff978878ff9b8b7bff9f9080ff9e8e7eff9e8e7cff928373ff8f8072ff968878ff9d8b7aff958676ff948474ff988878ff958575ff958574ff918272ffa08f7dff938270ff9a8a77ff948573ff988875ff968674ff928272ff958575ff928273ff988779ff8d7e6eff8c7d6dfd8e806f2c4533152c1d1915231c161120241c0e1417130cff8c7e6eff8b7d6eff887a6bff847767ff877969ff887868ff847767ff827464ff887868ff8b7c6dff8a7b6bff827564ff827464ff7e6f60ff7d6e5eff827464ff7b6d5fff736659ff796e5fff7a6c60ff75695cff706559ff756a5eff76695dff74695cff73675aff6e6357ff706557ff6d6154ff6d6255ff6c6154ff695e52ff6c5f52ff6c6053ff73685aff695f53ff706457ff6c6154ff6f6356ff6e6256ff62584bff63584cff65594eff63584dff61564aff64594dff63574bff62574cff61564aff5e5348ff5e5448ff605447ff62574aff5d5246ff5c5246ff5a4f44ff5b5045ff574d42ff5e5347ff594f43ff594e43ff564b40ff594e44ff574d44ff4e453cff4e463cff4e453bff4e453bff51493dff50463cff51473cff4d4339ff4e4339ff4b4339ff4b4138ff484037ff50473bff9c8f7bff9a8c75ffa1907bffa99a86ffa99a87ffa29381ff9e9283ff998b7cff9e8f7eff9f9080ffa08f7fffaa9986ffab9c8affac9e8cffac9d8affad9e8affaa9a89ffad9e8cffb9aa99ffc4b29fffbcaa98ffc5b5a0ffd1c2abffcebfa9ffe0ccb5ffe1d0b9ffe6d5beffe6d4beffe5d5bdffebdcc3fffae8d0fffff1d9fffff9e3fffffae2fffffde8fffffceafffffae8ffffffebfffffff0fffffff4fffffffdfffffffafffffff6fffffff9fffffffefffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffcfffffffa678e723914342a18275b461f3dab822c4b6c55302b2b2521fffffde6fffff9e3fffff8e1ff6f6254ffffeed6fffff4dbffffebd5fff9e3cefff6dfcbfff0dac5ffecd7c1ffe2cdb7ffdac5b0ffdac4b0ffd1bba7ffdac4adffcdb8a3ffc5b09dffbca997ffc1af9dffc4b19fffcbb8a4ffc5b1a0ffc2af9dffb9a794ffb4a38fffb1a08cffb4a290ffbaaa97ffb3a391ffb7a691ffb9a792ffb6a492ffbdab99ffbdaa97ffb4a08fffad9b88ffaa9684ffb5a28effb09c8affb4a08dffac9886ffa49281ffab9986ffae9c8affb2a08effb4a28fff9f8d7cffa59382ff9e8e7dffa79684ffa39181ffa1917fffa19080ff9e8c7cff9f8e7dffa59382ffa08e7eff968676ff988776ff9b8b7aff998979ff928372ff918272ff9b8b7bff928274ff8b7d6fff948475ff968676ff968676ff8e7f71ff938374ff938373ff968677ff908071ff918272ff998877ff988776ff948472ff938371ff998977ff948372ff958575ff928372ff908071ff817264ff8e806fff8b7c6cff867768947c654130654b162d654b1427513c12222c220f1f161411ff847768ff847769ff847769ff817364ff837565ff857767ff827665ff807363ff837464ff7c6e5fff817464ff7e7161ff776a5bff7f7262ff7c6f5fff796c5dff7b6e5fff776a5cff7a6d5fff766a5dff73685cff74695dff7a6e60ff716558ff726659ff716458ff6c6153ff706556ff6f6356ff726558ff6f6255ff6d5e51ff65594cff6b5f53ff6a5d52ff6b5f53ff6e6355ff6a5d52ff695d51ff685d51ff63584cff66594eff675b4fff63574bff62574aff63574bff62564bff5c5146ff64584cff63584cff5e5247ff594f43ff5b5145ff5c5146ff5c5145ff594e43ff5a4f44ff574d42ff594f43ff584d43ff584d43ff584d43ff564c41ff51473eff4c443cff554d41ff51493dff51483cff52483cff534a3fff51473cff4d4339ff494138ff483f36ff4a4138ff4a4138ff988b79ff9b8d7aff9d8f7bffa69784ffa79986ff9e8f7fff9a8a78ff978976ff958876ff9b8d7cff9d907eff9c8d7bff9b8e7dffa39580ffbaaa94ffb7a794ffa99b8affb4a691ffbcad98ffc2b29dffb4a491ffc0b09cffc6b5a1ffcab9a5ffd0bfaaffe5d4bdffdecdb8ffddccb8ffe4d2bcffddcbb5ffe8d6bffff6e3ccfffeebd4fffffce5fffffde8fffffce6fffffceefffffef0ffffffedfffffff3fffffff3fffffff7fffffffafffffffffffffffcfffffffffffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8fffffffeffffffff78cdb2767a7e693c1b28261d253a301e26ac822650675531fffffae3fffffce5fffff8e0ff867969ffffefd7fffff0daffffeed9fff5e0cbffe7d4c1fff5dfcbffe3d0bdffe1ceb9ffddc8b5ffd7c3afffd7c3adffd4beaaffd4bfaaffcbb7a3ffc6b4a0ffbdab99ffc1b09dffc0ad9bffc3b09effc1ae9dffc1ae9affbfad99ffbba996ffb5a391ffae9d8bffb09f8effb4a390ffb6a490ffb8a693ffb1a08effb4a290ffb19f8effb5a391ffb2a18fffa89684ffa79583ffb29f8dffae9b89ffaa9988ffa89785ffa49383ffaa9988ffb19f8dffa39180ffa99785ffa1917fffa08f7dff9e8e7dff9b8b7bff9d8d7cff9d8c7cff9d8c7bff9f8f7effa18f7eff988777ff978777ff9b8b7aff968675ff938372ff988876ff938373ff968676ff8d7d6eff8d7e70ff928172ff938273ff968676ff978777ff908070ff928272ff8f7f70ff908070ff928272ff968573ff978574ff938270ff918170ff958574ff918171ff928372ff948372ff908271ff8c7e6eff76695bff918170ff8f7f6fff87796b336449172861451224624814186046121f63481149654e21ff857968ff867a69ff817465ff817464ff7e7062ff807263ff7f7162ff817464ff807262ff7d6f62ff786a5cff75685aff716456ff786b5cff776a5bff776a5cff796c5dff76685bff776b5dff73675bff716559ff716558ff726559ff76695cff73675aff75685aff706557ff736658ff746759ff6a5d50ff695b4fff6a5c4fff706358ff63574cff64594eff695e52ff6c6054ff6a5e52ff675b4fff62564bff61574cff5f5447ff5f5448ff63574bff5f5447ff63574cff5e5247ff64584cff61564aff5e5447ff5a4f44ff594f44ff594e43ff5a4f44ff5c5146ff5b4f44ff5c5044ff564b41ff554a40ff574d44ff594e44ff554b41ff51483fff4c423bff50483dff51483dff52493eff51483cff51483dff4e453bff4c4239ff493e34ff473f35ff473e34ff494036ff908472ff9a8c78ffa69784ffa2927fffad9d88ffa0917bffa0907effa39381ff968876ff998b75ffa69885ffa89986ffa29481ffae9f8bffa99987ffae9e8dffab9c89ffa79984ffb4a38effbead9affbfae9bffbdaa99ffc7b4a2ffc6b6a1ffccbea7ffd7c7b1ffe2d1beffe4d5bffffaead7ffe4d2bcffe6d0b8fffbead1fffff6ddfffff8e2fffffeeefffff5defffffde6ffffffeffffffff2fffffffefffffffcfffffffbfffffff5fffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffd2ab283272085652531332d2329483b2235ae842af9f9f0dafffff9e2fffff7dfffb7aa96fff8e4caffffeed5fffae7d1fff7e2cdfff7e2ccfff1dbc7ffe8d3bfffeed9c6ffe4cfbdffdbc7b5ffd6c2afffd8c3afffd3bea9ffd1bda9ffcab8a4ffc6b4a0ffc4b29fffc6b5a2ffc0ae9bffbfac9cffbfad9bffbaaa98ffc1ae9bffb5a592ffb1a18fffa99a88ffac9c8bffae9d8bffb7a593ffb9a794ffb5a491ffb1a08effb3a190ffaf9d8cffb3a391ffaa9787ffb19f8dffaf9d8cffab9a88ffa59482ffa49382ffa79584ffa69484ffaf9c8affae9b88ffac9a87ff9f8f7effa3927fffa08f7fff9f8e7eff938373ff9c8a7aff988777ff9f8e7eff9d8d7cff9e8e7cff9a8979ff918171ff998776ff978575ff948473ff918071ff938373ff968776ff948373ff958474ff948273ff968575ff998877ff938272ff968674ff998775ff938272ff948473ff9b8a79ff978675ff9a8876ff9d8c78ffa18f7dff9d8a78ff90806eff8d7f6cff938473ff91816fff8d7f6dff928272ff8e7e6eff8a7b6dff8e7f6f1517130d2420190e1f4f3a1024654a1327674b133e6e521cff807363ff7f7163ff7c6f60ff7b6b5eff786a5cff7f7262ff7a6d5eff77695cff817466ff807365ff776b5eff75685aff796b5cff7e6e5fff77685aff7d6f61ff77685cff6f6456ff726659ff75675bff796d5fff776a5dff76675aff6b5e52ff716457ff746758ff726558ff706255ff685a4eff695b4fff6f6054ff6c6053ff6c6154ff655a50ff695e53ff6b6054ff685d51ff695d51ff63584cff61574bff5f5448ff65594cff65584bff5c5245ff5e5348ff605448ff554b41ff5e5346ff625549ff605448ff5d5145ff595044ff554b41ff5b5044ff584d42ff5b4f45ff584e43ff5a5045ff544b42ff574e44ff564d43ff534a3fff544b3fff50473cff50483cff544a3eff534a3eff574c40ff574d41ff4e4438ff4c4238ff4c4338ff473e34ff463d31ff968776ff998a76ff998b79ff9e8e7dffa1917fffa99a86ffa79582ffa89987ff978977ff998b78ffa09280ffa69583ff9d907cff9e917dffa89885ffae9d8cffab9c89ffa89887ffb2a692ffb1a18dffbdad99ffc3b29fffc5b3a1ffc2b19effcab9a4ffd2c2adffdcccb6ffd6c4afffdecebaffd8c9b5fff3e1c9fff8e7d0fffeedd6fffff2dafffff8e1ffffffedfffffeeaffffffebfffffff9fffffffafffffffdfffffffefffffffbfffffffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffeffffffffebececeb44604d2f23ab7e25288665242c352e222d634e248cd0b77bfffffce6fffffee5fff9f4dbfffff0d7fffff5dbfffeead1fffbe6d1fff6e0cbfff3dec8fff0dbc6ffead5c1ffe0cebbffe8d4c1ffe3ccbaffdcc8b6ffd1bda9ffd5c1adffd0bfaaffd1c0abffcab9a5ffc3b29effc2b19effc6b4a2ffbbab9bffbaa797ffb9a795ffad9b8affaf9e8cffad9c8affaf9e8cffac9b8affaf9e8cffb1a190ffb5a290ffb1a08fffb09e8dffad9c8bffb4a38fffae9e8cffa69585ffa89786ffb09e8dffa49382ffab9b88ffac9b8bffa69584ffa69483ffa79584ff968574ffa08f7dff9e8e7dffa29280ffa29181ff9b8a7affa2907effa69582ffa1907eff9d8c7cffa39180ff9a8979ff998877ff9b8b7aff998878ff978676ff9a8979ff8d7d6eff958576ff9a897aff8b7a6bff948374ff978777ff938373ff908070ff968675ff8e7e6eff958473ff968675ff938272ff9d8b7bff91816fff998875ff998774ff968472ff948370ff90806dff968772ff7e7060ff92826fff8c7b6aff8f816fff928374ff8e7f71ff897a6cff8c7d6d1c15110d1a17130d20241c0d241d180d1f2a2211dd706555ff796d5eff786c5cff7c6d5fff7a6b5eff796b5dff7e7162ff7c6e60ff7a6d5eff786a5cff706356ff77695cff7a6c5dff796b5cff786a5bff7a6b5dff77685bff7a6c5eff74675aff76695cff776b5dff73675aff7a6b5dff7a6c5dff736659ff726456ff706456ff6e6153ff6e6153ff6d6053ff6b5e51ff6b5e51ff66594dff6a5e51ff645a4fff695d52ff695e53ff695e53ff61564aff5f5449ff61554aff5f5348ff5f5348ff65584bff5c5146ff605448ff574e43ff625649ff5f5346ff584e42ff574c41ff584d43ff574d43ff5a4e44ff5a5045ff574d43ff584e43ff5b5147ff564e44ff584e44ff5b5046ff53493eff554a3fff52493dff52493eff554a3eff4f463bff50463bff51473cff51483cff4f443aff4b4138ff473e34ff463d33ff887c69ff8d7f6eff998a79ff958574ff9e8d7cffa59684ffa1917effa59584ff988a78ff998b79ffa29481ffa0907effa79885ffae9f8cffa79886ffa69785ffa59584ffa99887ffb0a390ffbbab99ffc7b6a2ffc1b09cffcdbda8ffccbaa6ffc9b9a4ffd5c3aeffe1cfb9ffeadac1ffe0d2beffe8d9c3ffe8d6c1fffae7d0fffeeed6fffffae0ffffffecfffffde9fffffff0fffffce6ffffffeffffffff3fffffffbfffffff6fffffff6fffffff9fffffff9fffffff8fffffffefffffff2fffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffcffffffff1c322c216a65533a26ae8228297e60262c2e2a2293b5a883fffff3dbfffffde5fffffee6ffb7a795fffff6defffff2dafffff3dbfff8e3cefff3deccfff5e2cfffead6c4ffe9d5c3ffe9d6c2ffe6d2bfffe2cebaffddc8b5ffcfbaa7ffd3beaaffcfbca7ffcebca8ffc3b39fffc3b29effc3b09dffc1b09dffc7b4a2ffc4b09fffb8a594ffb5a391ffb4a491ffb3a491ffb4a390ffb19f8dffb8a694ffb6a493ffb7a492ffb4a390ffb7a693ffb2a18fffb3a290ffab9a88ffa39382ffa99886ffaa9a88ffaa9a88ffa69685ffa29181ffa0907fffa59382ffa59483ffa89684ffa3917fffa69482ff9f8e7dff978777ff9a8a7aff9f8e7cff978776ff978777ff9a8b7aff9a8a79ffa08f7eff9c8b7bffa18f7fffa49382ff9f8f7fff9a8878ff968676ff9a8979ff968576ff908071ff8b7b6cff958475ff948374ff988877ff998877ff938473ff938373ff998878ff948374ff948372ff928371ff938371ff9a8977ff91816eff90816eff8f7f6dff988674ff978673ff928170ff908170ff8a7c6bff8b7c6cff908172ff897b6cff897a6bbb7e6c541b48340f2c392a0f3d2d2413282a210f22181511ff7f7263ff7d6f60ff7e7061ff7e7061ff7b6d5fff7c6e60ff7c6e60ff7b6d5fff776a5cff766a5dff776b5dff76695bff7a6d5eff796b5dff7b6d5eff796b5dff7b6e5fff75685aff726558ff716357ff6e6256ff74675aff6b5f53ff6e6154ff6f6254ff6b5e51ff706355ff6a5d50ff6f6154ff6f6355ff64584bff64584cff67594dff695d51ff685c51ff64594eff64594eff60554aff5f5349ff5d5347ff62564aff61554aff5d5245ff61564aff5b5046ff5d5348ff5b5144ff5c5043ff5b5043ff584e41ff544a40ff594e44ff584d43ff574d42ff544b40ff564b41ff564d42ff52483eff554c42ff594e43ff584d42ff4d443aff4f463bff494236ff4c4238ff50473cff564c40ff51463cff4f463bff4e4439ff4a4137ff494036ff473e34ff948573ff8c7e6dff9b8b7bff9a8979ff9a8978ffa19380ff918473ff9e8f7eff9d8f7dff9d8f7cff988977ff9f907fff9e907effa59885ffa59784ffa39685ffa49583ffae9f8dffa89987ffbdab99ffc3b49fffbdac9affc8b7a3ffcbbaa6ffccbba6ffd0bea5ffe3d0b9ffe2cfb9ffdbccb9ffe1d2baffebd9c2ffe9d9c1fffdecd6fffbead4fffffceafffbf2e5fffffdeafffffff9fffffde8fffffff1fffffff9fffffffbfffffffcfffffff5fffffff4fffffff6fffffff8fffffffffffffffffffffff8fffffff8fffffffefffffffefffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffff232ac812b274b3e23908e784829bb8d2932785e272f403523fffff0d9fffff5ddfffff6deff4f453affffecd9fffff6e0ffffead4ffffecd7fff9e3d0fff9e3d1fffde8d6fff3dfccfff0dbc9ffe9d4c1ffe6d1bdffe0ccb6ffdbc6b1ffd5c1aeffc9b5a0ffcfbca8ffd2bfaaffc2b29dffc5b29fffc7b3a0ffc1ae9cffbeab9affc3b19effbead9affbaa996ffaf9f8cffb3a390ffb9a795ffb6a492ffb8a593ffb1a08effb3a290ffaf9e8bffb4a390ffb1a08effb3a18fffad9c89ffa89685ffae9c8affa89685ffaa9987ffa99886ff9f8f7effa79684ffa29180ffa39282ffa29080ffab9888ffa19080ffad9b89ffa49382ff9f8e7eff988777ffa89484ff9e8c7cff9e8e7effa39180ff9d8d7cff9c8c7bff9d8d7cff9b8b79ff9d8b79ff958474ff958473ff998977ff9f8e7dff978878ff928171ff958575ff948475ff978676ff978676ff978676ff998878ff958574ff8b7b6cff8d7e6dff978674ff968672ff998875ff91816fff8f7f6dff8a7b6aff998975ff8a7c6bff887a6bff928371ff897a69ff8a7a69ff8c7c6bff988776ff8a7b6bff8a7c6c41654c201e5f4410235f44111c5139102343301122281e0fff7b6d5eff7c6e60ff7b6e5fff7e7061ff7b6e5eff827464ff7e6f60ff7a6c5eff74685bff776a5bff716457ff76685bff7a6c5eff796b5dff74665bff75685bff7d6f60ff75685aff736659ff746759ff726457ff736658ff665b4fff6e6054ff675a4eff685b4fff6b5e51ff6a5d50ff695c50ff615549ff66584dff62554aff665a4dff695d50ff6d6154ff62574bff605448ff5e5247ff5e5347ff625649ff63574bff5c5145ff63574bff605448ff5f5447ff5c5345ff594d43ff5c5145ff594e43ff554b41ff53493eff574c41ff554b3fff53493eff53483cff544a40ff544a3fff544b40ff53493eff51473dff51473dff50473bff4f463bff4c4338ff52493eff4e4439ff50463bff4f463aff4a4137ff4a4037ff483f35ff463d33ff988976ff968775ff948675ff978778ff9b8a7aff9a8877ff978777ff9e8e7eff988979ff978878ff968777ff978978ff998b7aff9e8f7effa29482ffa89888ffa69785ffaf9f8effb0a091ffaa9b8cffbeac9affbfae9cffc5b5a2ffc2b29effcabaa5ffd9c7afffd7c6afffe0ccb9ffdbcbb7ffe6d3befff0dec8fff8e6cffff1e0c9fffff7dffffff0dafffff9e6fff5e7d4fffffffbfffff7e4fffffff9ffffffeafffffff5fffffff4ffffffeffffffffafffffff6fffffffdfffffffcfffffffffffffeedfffffff9fffffffafffffffafffffff7fffffffffffffffffffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffffffffffffffffffffffffffefffffffafffffff7fffffffffffffff4fffffff3fffffffa23b0862738a57f2c2d453b292e9f792d2ac3922a2c705828ffffffe9ffffffefffffffe9ff9e8e7efffff1dcffffefdcfffffae6fffff3dcfffcead3fffce8d4fff5e0cdfff0dcc9ffeed9c6fff2dcc9ffe5d0bdffebd5c1ffddc8b4ffe6cfbaffdec9b4ffd3bfabffcbb7a2ffcbb8a2ffc8b6a0ffc4b29dffc4b19effbfad9cffb9a798ffbdab9bffc1af9bffbeac98ffb5a492ffb6a593ffb5a492ffb8a593ffbca995ffb6a492ffae9d8cffb8a592ffb4a28fffac9c8affac9b89ffb09e8cffab9a89ffa19080ffa69381ffac9a89ffaf9d8cffac9a89ffa4917fffa1907fffa69585ffa29181ffa19080ffa0907fffa29181ff9d8d7cff9d8c7cff9c8c7bffa1917fff9e8d7eff968575ff9b8a7aff9a8a79ff988878ff988776ff8d7d6eff988675ff958675ff8e7e6eff968574ff938372ff938474ff8c7e6eff968575ff968474ff958474ff907f6fff8f7f6fff958674ff938371ff92816fff978673ff928270ff90816fff8f7f6dff8b7c6bff8f7f6dff90816fff938170ff908070ff988877ff958472ff91826dff8d7c6bff958572ff938370ff8a7d6eff8c7e6dff847667234c371418563e0f17573e10235d4311206147121661440fff796c5eff786b5dff76695bff807163ff7b6e5eff74675aff7a6c5eff786b5dff746759ff74675aff7a6e5fff776a5cff726457ff76695cff796b5dff72665aff726658ff746659ff746759ff64594dff6f6356ff6c5f53ff685c4fff675b4eff675a4eff695c4fff695d4fff5f5447ff62574bff62564aff5f5347ff5f5448ff63574bff665b4fff5c5046ff63574bff5d5347ff605449ff63584cff625649ff5e5245ff5c5146ff5a5045ff594e43ff594e43ff564b40ff544a3eff554b3fff54493eff52483eff50483bff574c40ff4e4439ff53483dff544a3fff4e443bff534940ff4e433bff50463cff53493fff4f453bff52483dff50463bff4f463bff52473dff4c4238ff51453bff4b4138ff4d4239ff473d34ff443b32ff948475ff9b8b78ff938272ff948472ff918171ff938374ff988776ffa29182ff9b8c7cff9f8f7dff948470ffa59482ffa79686ffa29182ffae9d8cffa79686ffaa9a89ffb4a595ffb1a292ffb4a593ffbbaa97ffbdad9affc9b9a6ffc7b7a4ffd7c5b0ffd0beabffd7c5b1ffdbc9b5ffe2cfbbffecd6c4fff7e4d1fff2e0ccffffedd9fffff7e2ffffedd8fffae9d1fffff5e0fffef3e0fffffdeafffffeebfffff3deffffffebfffffce8fffffdf2fffffff5fffffffefffffffcfffffffffffffffffffffffdfffffff5fffffffdfffffffdfffffffdfffffffdfffffff7fffffffefffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffffffffffefffffff9fffffffffffffff8fffffff8cbdad5c71fbd8e283b8f6e2c2f5142282ea980292fc8962ffffffff2ffffffedfffffae3ffada595fffffde8fffff1dcfffff2ddfffff2dcffffefd8fffeebd5fffbe6cffff4dfcbffeedbc5fff5e0ccfff0dbc7ffe7d2bfffe6d0bcffe4cebaffdfc9b3ffdcc7b0ffd5c1aaffd0bba6ffcbb8a3ffcab9a4ffc3b29effc3b19fffbdaa99ffbbaa98ffbdab9affbba996ffbcaa96ffb4a390ffbcab98ffbcac99ffb7a695ffb5a392ffb3a290ffb09f8effae9c8bffb09f8dffb09f8dffb09e8dffb09f8dffad9c8affad9b89ffad9a88ffab9886ffae9c8affa79685ffa99887ff9f8e7eff9a8979ffa19282ff9c8c7cff9f8e7effa29281ffa49383ff9b8c7dff9b8a7aff9a8978ff9b8b7bff9c8c7cff9b8a78ff988878ff988977ff908271ff968675ff948372ff8d7e6dff807363ff938371ff9a8a77ff8b7c6cff958473ff988877ff958675ff8d7d6eff918172ff938473ff938473ff8d7e6bff92826fff978875ff90806fff938370ff938371ff90816eff867868ff887968ff887969ff928272ff8f8070ff8d7d6dff8d7d6cff8b7c6bff8b7b6bff8f7f6dff938371ff8e8070ff8d7e6eff897a6b2520190d2318140d1a291e0d164e380e1e5b4110a7746042ff7d7062ff7b6e60ff796b5dff7c6e60ff77695cff786b5dff75685aff7c6d60ff716457ff7b6d5fff76685bff75685bff74675aff726455ff716355ff6d6154ff716457ff6a5e51ff6b5f52ff6e6152ff665b4eff6b5e51ff665b4eff665a4eff685b4fff685c50ff675a4eff61554aff5e5247ff5e5449ff5f5348ff5d5046ff5e5247ff5d5246ff64584cff62564aff5f5448ff5d5247ff62564bff61564aff5e5448ff5e5347ff5c5146ff5b5045ff584d42ff564a40ff54493fff54493eff554b40ff53493eff52483dff534a3fff52493dff53493fff53493eff52493fff4d433aff51463cff51473dff53483fff53493eff52483cff50453aff51463aff4b4137ff4a4137ff4c4238ff4a4037ff473e34ff473d33ff8d7d6fff938373ff8f7e6fff938373ff8d7e70ff978678ff948374ff8c7f72ff8c7d6fff948373ff9a8a78ffac9c8affad9e8cffb0a08effaa9988ffab9b8affae9f8fffafa190ffafa08fffb7a795ffbbaa95ffb9a996ffbead9bffc3b09cffbead9bffcab9a9ffd4c3b0ffd6c4b0ffe1cebbffeed9c8ffefddc9ffebd9c4fffbe9d5fffff0dafffff2dcfffdf0dbffefdbc3fffbedd5fffdedd8fffffff0fffff8e2fffffeebfffef3dffffffef1fffffff2fffffffcfffffff9ffffffeffffffff0fffffff5fffffff6fffffffafffffff7fffffff8fffffff6fffffff4fffffffdfffffffffffffffefffffffffffffffffffffffffffffffefffffffefffffffafffffffbfffffffafffffffafffffff3ffffffeffffffff2fffffff5c9ceccc1285945202fca982c2e7e5f2730473b2531ab822ebfeddeb2ffffffeeffffffebfffbf8e0fffff9e2fffffeeafffff7e2fffff4ddffffefd8fffeead4ffffebd6fffbe5cffff8e4cefff7e1ccfff3ddcaffebd6c3ffebd6c1ffdbc7b3ffdcc6b3ffd9c5b0ffdac6aeffd1bea8ffcebba5ffcbb8a3ffcab8a3ffc8b6a2ffc4b1a0ffc3b19fffc3b2a0ffbead9bffb6a592ffb6a490ffb5a392ffb4a291ffb7a896ffb6a594ffb5a291ffb3a190ffb5a492ffab9a89ffb19f8effab9987ffb09f8effaf9f8dffad9d8cff9b8b7affb19e8cffa99887ffb3a08effab9a89ffa99888ffa08f7fffa29181ffa09080ffa09080ff9e8e7fff9f9080ffa49483ff9b8c7bff9f8f7dff9c8d7bff9e8d7dff9e8e7dff9c8b7bff968675ff9d8b78ff958473ff8e7f6eff938473ff8d7d6cff968473ff91806fff9a8a79ff7b6d60ff8f7f6eff8b7c6cff89796aff8b7b6cff8c7d6cff928271ff8c7d6cff958573ff8f7f6dff948472ff978674ff948472ff928170ff877969ff887a6aff918270ff8a7c6cff897a6bff8a7a6aff8e7e6eff877765ff8d7d6cff8f7f6eff938372ff87796affa59482ff908170ff8e7f6fdd7b6d5c191f180c13231a0d1421190c28251c0d232c210dff786a5dff75675aff796c5eff786a5eff786a5cff796b5dff796a5dff796a5eff75695bff75685bff7c6d60ff76695cff726558ff6d6052ff6e6153ff64594cff706457ff6b5f52ff695c50ff6d5f53ff665a4eff665a4eff685c50ff65594dff665a4dff63574bff64584cff60544aff60554aff605549ff5d5147ff5d5047ff5c5045ff5c5045ff5e5247ff5a4f44ff5d5247ff5c5047ff5f5349ff5a4f44ff584d43ff5c5147ff574c42ff584d42ff53493eff54483eff50443aff50463aff51453bff51473cff50463cff50463cff50463cff53493fff50463dff50463cff4b4138ff53483eff4e443bff4f443bff4e443aff4f453bff4e443aff4b4137ff493f36ff4d433aff483e34ff423a32ff433a31ff40382eff87786bff89796cff817365ff8f7f71ff928173ff918173ff9d8c7dff8e7f72ff938477ff928373ff9e8d7effa59484ffab9a8affa89887ffa39284ffac9b8bffa69787ffa79888ffab9b89ffb4a392ffb7a48fffb3a392ffb5a595ffcab5a1ffc5b2a1ffd3c2b1ffd7c5b4ffe1d1bbffe6d6c0ffeedbcaffecd9c4fff6e4cefff9e6d2fff8e5d0fffff2dcfffcebd5fffbe9d3fffff1dbfffde8d3fffffee6fffff6e0ffffeedafffff4dffffffff0fffffff2fffffff7fffffff3fffffffbffffffffffffffeffffffff1fffff9e8fffffff8fffffdecfffffff5fffffff7ffffffeefffffff5fffffffaffffffeffffffff4fffffffafffffffffffffffffffffffafffffff3fffffffbfffffff7fffffff0fffffce5fffffff3ffffffed20342d1f2a6d55212cca9b2b2a89682739544427d8e9e2c4ffffffecffffffeaffffffebfff6f5e2ffffffedffffffecfffffde7fffff1dcfffdebd5fffeead4ffffeed9fffbe6d2ffffe9d2fff8e2cdfff0dac7ffefd9c4ffedd8c4ffe3cdb8ffe7d2bdffdec9b3ffd8c4aeffd2bfa9ffd6c2aaffcebba5ffc9b6a2ffcab7a4ffc7b5a2ffc0ae9dffc1ae9effbdad9cffbead9bffbaa897ffb4a391ffb4a491ffb1a08fffb19f8fffb9a795ffb4a291ffb3a391ffad9d8cffb3a28fffb8a593ffb6a593ffad9b8affab9989ffaa9887ffaa9785ffad9a89ffb19f8effb09f8effa49382ffa0907fff9c8c7cff9a8b7bff9d8c7dff9b8a7aff9d8d7dffa39281ffa0907fff9d8e7eff998a7aff988979ff978878ffa1907fff9f8e7cff948473ff847666ff988878ff998877ff897a69ff9b8a77ff9c8d7aff968776ff9a8a79ff968675ff877869ff89786aff968676ff8f7f70ff89786aff938273ff938373ff948474ff998878ff928271ff928270ff90816eff7e7161ff887a69ff8f806fff8a7b6bff8e7d6eff857566ff90806eff857564ff938271ff8b7b6aff938473ff8b7b6cff928271ff9c8b79ff918170ff8a7b6bf58575642c4b35111833250e1c2a21102620190d1d20190fff796a5cff76685cff74665cff75675aff7c6f60ff796b5cff76685cff746759ff75685bff6f6256ff726659ff6d6054ff726558ff6e6255ff6f6255ff6c5f53ff685c50ff64584cff65594dff65594dff64574cff695c50ff64594cff65594cff695c50ff5d5248ff60544aff5b5045ff5a4e44ff5f5348ff5a4e45ff5a4f44ff5a4e44ff584b42ff594d44ff584c43ff564b40ff584d43ff5b5147ff584d43ff594e44ff564c42ff51473cff554a3fff4f443bff4d4238ff4b4137ff4f453aff4c4138ff4d4239ff53483eff4e443cff4f453bff50463cff50463cff4c4138ff4d433aff4c4339ff4b4138ff4c4339ff4b4138ff483e35ff50463cff4b4138ff4b4137ff4b4138ff423a31ff443c32ff41382fff847568ff847365ff857568ff8a7a6dff918173ff907e71ff948375ff9b8a7cff907f72ff958276ff9c8b7cffa29181ffa69585ffa59684ffaa9a89ffad9b8bffa79989ffab9d8effac9c8cffb5a294ffae9c8affb19f8effbeab98ffcab5a3ffccb8a7ffd5c2b1ffd8c5b5ffe9d6c3ffe4d2befff1ddc9fff1dec9ffe9d7c2ffffecd9ffefdacbffecdacbfffae7d6fffdead9fffcead4fffbe4cdfffce8d1ffffecd6fffff1dbfffff2e0fffffbe9ffffffeeffffffecfffffff2fffffbeafffffffcfffffbebfffff8e7fffffff2fffff7e7ffffffeefffffff0fffffffdfffffbe8ffffffeefffffff9fffffff0fffffff2fffffff8fffffff9fffffff3ffffffedfffffff0ffffffe9fffffff1fffffff4fffffff8fffffff336bc8d2c6250462e5c81672d2fca992b2682662543705f3dffffffeafffff8dffffffee5ff6d6456ffffffecfffffee8fffff6e0fffff7dffffff7deffffeed8fffde8d3fffeefdcfff9e4d1fffde7d2fff5e1ccfff1dbc7ffecd7c2ffe9d5c0ffe3cfbaffe4cfbcffdac4b1ffd6c0acffd0baa4ffcfbba4ffd0bca7ffcbb8a3ffc5b4a1ffc6b4a2ffbdab9bffc4b3a1ffbeae9dffbfae9dffbcab99ffb9a896ffb8a694ffb19f8effb6a695ffb3a392ffaf9f8effb3a292ffafa08fffb1a08fffb7a592ffae9d89ffb1a08effa99887ff9f8f7effb3a18effac9b89ffac9b8affac9b8bff9f8f7effa19181ff9c8c7cff9e8e7eff98897aff998b7bff9a8b7cff9d8e7eff958675ff9f8f7eff9b8b7bff9a8a7bff9c8d7cff948572ff9c8b79ff9d8c7aff9d8c7aff8d7d6eff978776ff998977ff7b6d5dff847565ff938472ff988977ff948373ff968676ff9a8979ff867869ff958576ff9c8b7aff897a6aff847668ff918271ff998878ff907f6eff8f7e6dff8a7a6aff887a6aff897a6aff877868ff887869ff827465ff817363ff8a7b69ff867665ff887867ff897969ff8e7f6eff887969ff907f6fff6b5e4fff908170ff8c7d6dff8b7b6a52634a2517543b11195139122f553c12214431111a241b0dff796a5eff796b5eff7e6e61ff7c6d5fff7a6b5cff786a5cff716356ff726558ff726458ff716459ff685c52ff6a5e52ff6a5e52ff685c50ff685b4eff60554aff5f5348ff62574bff61554aff65594eff64594cff64584cff64584cff63564bff5d5147ff5f5348ff5a4e44ff5b4f45ff605248ff5c4f45ff5e5247ff5a4e44ff56493fff5b5045ff5a4e42ff574b40ff584d43ff564c42ff564b41ff52473eff54493fff50453cff4e443aff50453cff51463dff52473eff52463dff4d4239ff4f443bff4c4138ff4e443aff4f443bff4b4138ff4b4138ff4c4238ff4e4339ff4c4239ff4c4239ff4a4036ff4b4037ff483e35ff4a4037ff4f453cff483e36ff4c4138ff463d34ff443a31ff443a32ff827366ff7d6e62ff7f7163ff807265ff827366ff8b7a6eff8d7d6fff8b7a6eff917f71ff968576ff9f8c7cffa18f80ff9c8b7cff9f8e7effa79686ffa79686ff9a8c7effa29383ffa39483ffa39482ffab9c8affb2a391ffbfae9dffc1ad9effcfbca9ffcfbcabffdcc8b6ffd5c2b1ffe1ccbbfff1e1d1ffe6d4c0fff5e2cdfff8e6d1fff1dec5ffebd9c8fff0ddcbfff7e1cffffce7cffffde7ccfffff1d5ffffefd5fffff7e0fffffbe3fffffce7fffff9e6ffffffecfffffeeafffffeebfffffff0fffffeecffffffeefffffff6fffffffafffffff5fffffff2fffffff6fffffff1fffffff4fffffff7ffffffe9ffffffedfffffee9fffffbe8ffffffeeffffffedffffffeefffff8e2fffffff1fffffff7fffffff843bd944130a57e293c322e2438795f272dc5932b35715a27fffffff0fffffeeafffffeebffada290fffffae2fffff9e2ffffffe7ffffffe7fffff6dffffff4dcffffefd7fffeead5ffffecd6fff5dfcafff5e0c7fff2ddc6fff4dec9ffefd9c3ffecd7c2ffe9d5c0ffe1ceb9ffd5c1aeffdbc6b3ffd6c1acffd9c4afffd2beaaffcab8a4ffc9b8a4ffc8b6a3ffc8b6a3ffc2b19fffc3b3a0ffbdac99ffbcaa97ffbfac99ffbeaa98ffb29e8effb7a594ffae9c8cffab9a89ffaf9f8fffab9c8bffafa08fffab9b89ffa69682ffa89887ffad9d8bffaa9b89ffac9c89ffa49482ffa39381ffa1907fffa39483ff9e8e7eff9c8c7cff9f8f7eff9e8e7dff9a8b7aff9e8e7dff9a8b7aff9d8d7cffa08f7eff9b8a7aff958776ff968777ff9d8c79ff978775ff998977ff9b8b7aff9e8d7cff948574ff918272ff938272ff8d7d6dff938373ff8c7d6dff928271ff8f7e6eff8f806fff938272ff928170ff958473ff807162ff8a7c6dff958675ff8e7e6dff8c7c6cff8b7b6bff877868ff7e7162ff877969ff867868ff867668ff847666ff837464ff817263ff817163ff7d6e60ff807263ff877768ff877768ff8f7f6eff887968ff958672ff90806dff8a7b6aff8b7b6a1a37280f1851380f1e5c421220563e121f573e117268522eff75675aff736557ff796a5cff7c6b5eff786a5eff77695bff7b6e5fff736659ff6c5f51ff685d52ff665a4eff675a4eff675a4dff685c4eff65584aff665a4dff66594dff675b4fff615449ff62564bff5f5348ff605549ff615449ff605549ff5b5045ff5d5246ff5e5448ff62564cff5c4f45ff5d5046ff5b4f45ff5f5246ff5d5044ff5c4f43ff554a3fff544b41ff4f453bff52463dff51463dff4e453cff4c4239ff4e433aff51453cff53483eff52463dff4e433bff4e443cff4f453bff4d433aff4e433aff4e443aff4c4238ff4a4036ff453b31ff4a4037ff493e36ff4e4239ff493e36ff483e35ff453d33ff473e35ff473e35ff4b4137ff463d33ff463d33ff453b31ff473d33ff7b6e60ff7d6d62ff807165ff807164ff807064ff847467ff847568ff88796cff8b7b6dff8d7d6dff9b8979ff928172ff9b8a79ff9e8e7affa49280ff9c8e7dffa59586ffa69686ffa29383ffaf9f8effab9e89ffb4a492ffb5a592ffc6b4a1ffd5c0abffd2bba6ffd8c3b0ffdecab6ffdecab7ffe5d2beffddccb8ffe9d7c3ffeeddc7ffefddc7fff4e1ccfff3e0c9ffe4d1bcfffae5cbffffedd0fffde9cffffff8dcfffff1d8fffffee4fffff3dcfffff3defffffeeffffffeecfffff2e2fffff7e7fffff5e3fffff9e4fffffbeaffffffeffffffee8fffffff4ffffffeefffffff0ffffffeafffffffafffffff3fffffeeafffffce9fffffde9ffffffeeffffffeffffffff6fffffeedfffffff3fffffff2acd2c4a32dbc8b2b40a37d3229302d252a7d60272fb2862bfffffee7fffffeebffffffeeff908573fffff5defffff9e0fffff4dcfffff6deffffffe5fffff7e0fffff3dafffeeed6fffeedd6fffdead3ffecd7c0fff5e0c7fff5e1c9fff0dbc4ffebd6c0fff0dcc5ffeedac3ffe3d0bbffdbc8b5ffd8c4b1ffd8c3afffd2bea9ffd3bea8ffcfbaa6ffc9b6a2ffcdbba7ffc8b6a3ffc5b4a2ffbfae9cffbfad9bffbba796ffb6a492ffbfad9affb8a594ffb3a190ffac9a89ffad9c8bffb4a391ffad9d8cffae9d8cffa29281ffa59483ffa59583ffa99a87ffb2a38fffb1a08cffb2a18cffb0a08bffa29382ff9e8e7eff9a8b79ff9b8c7aff9e8f7dff9d8e7cff9e8e7cff9a8b79ff9c8c7bff998979ff968777ff978776ffa08f7cffa08f7dff9d8c7aff9c8c79ff9b8a78ff918071ff938373ff958575ff8e7f6fff8d7f6eff8e7f6fff9a8a78ff958574ff8a7a6bff8c7c6cff8c7d6cff928170ff918170ff908070ff938372ff897a6dff887a6cff928273ff867769ff87786aff847667ff7e7263ff87796aff827466ff847667ff827464ff897a6aff837463ff7e6f61ff7b6d5fff7f7062ff7e7062ff8c7c6aff867665ff827362ff8e7d6affa69280ff8b7a6aff8d7d6cff8575651f16120c1a251c0d272d210f1f48340f25553c10545d4923ff796a5cff76685aff77695cff716456ff706456ff736558ff6c6152ff6c6052ff6d6052ff685c50ff6a5e50ff665a4cff64584aff675a4cff685c4eff65594cff665b4eff61564aff61564aff62564bff60544aff5a4f45ff5d5147ff5a4f44ff5c5146ff574d44ff584d43ff584e43ff5b4f44ff5c5045ff594e42ff5b4f44ff5d5146ff5a4f44ff54493fff50463dff52483dff52473dff52473dff50443cff51473cff51463cff53473eff53483eff51463cff50453cff4d4339ff4d4339ff4d4339ff4c4138ff4b4237ff4a4037ff483f36ff483e35ff4b4037ff483f35ff4a4037ff473e35ff473f36ff463e34ff433a31ff463d33ff423a31ff443b31ff443b32ff433a30ff7d7060ff807164ff7f6f63ff77695cff817265ff847668ff847768ff8d7d6dff938272ff918171ff8f7e6cff968575ff9d8c78ff9e8c78ffa1907dffa89886ffa39687ff9e8f80ffa89887ffa39283ff9f927fffb5a492ffbbaa98ffc9b6a3ffd8c3afffcfb9a5ffd6c0afffd7c3b0ffd9c4b1ffdecbb7ffe7d6c1fff2e0cbfff5e1cefff2e0cbfff1dfcafffce8d1fffce9d1ffe7d5bdfff6e3c9fffff2d6fffff1d6fffff3d8fffff5dbfffff2dbffffefdafffff2defffffee9fffffae7fffffeeafffffff0fffffde7ffffffebfffffbe6fffff8e2ffffffedffffffeefffffff0fffffffefffffffefffffff3ffffffeefffffeeaffffffedfffffff8fffffff0fffffff7fffffffafffffff5d6d8d7cd2c6c56282ab9892a6e93763b2d312e262c8c6c29f9fdfce6ffffffecfffffce6fff0efd6fffef6dcfffffae3fffff6defffff9dffffef0d6fffef6dcfffff2d8fffff0d7fffdebd4fffff0d8fff5e1cbfff1dec6ffeedbc2fffae6ccfff4e0c8ffeed9c3fff0dbc3ffe8d5bdffdeccb7ffe0cdbaffdac7b4ffd8c5b1ffd2bea8ffccbaa4ffd1bda7ffc8b5a1ffc3b19dffcab7a4ffccb9a6ffbfae9bffc0af9bffbfad9bffb2a290ffbba997ffb8a593ffb09d8cffb2a08fffae9e8cffab9b8bffad9d8cffa89986ffa89886ffab9986ffa69584ffa59583ffad9b89ffb09e8affa29280ffa29281ffa59584ff9b8d7cff9c8e7dff998979ff998979ffa0917fff9e8e7dff9b8b7bff9d8e7cff9a8b79ff9e8e7cff9a8a79ff9c8c7affa0907fff958574ffa08f7dff948473ff988776ff938473ff948574ff91816fff8f8070ff897a6aff958473ff8f7f6eff8f7e6eff8c7c6dff87776aff8d7d6dff928271ff958474ff958675ff887a6bff8a7c6cff827466ff857769ff817365ff827466ff7d7062ff7e7162ff867768ff817366ff877869ff897969ff897868ff827363ff796c5eff817363ff7d7060ff887866ff847463ff867664ff786b5aff786b5aff928270ff807362ff807161ff8171612218130d741f1b146a2b22132219150c26281f0fef6d6054ff736658ff726557ff6e6154ff74685aff6f6355ff6c6052ff6b5e52ff6d6053ff65594dff65594dff665a4eff64584bff65594cff64584bff675b4eff625649ff5f5449ff5a4f44ff61554aff63574bff5b5046ff605348ff5a4f44ff5b5045ff584d43ff574c42ff5a4e43ff5c5145ff594e42ff5f5246ff5f5348ff5e5347ff544a40ff554b40ff554a40ff574c40ff55493eff53483dff584d42ff534a3eff564a3fff53483dff50443cff4f443aff4f443bff4a4137ff4e443aff4c4238ff4c4238ff4c4438ff483f35ff463d33ff494036ff50453bff4f433bff494137ff473e35ff463e35ff433b31ff473e34ff463d34ff433a31ff483e33ff473d33ff433b32ff817264ff807163ff7b6d60ff7e7062ff7e7062ff7e7063ff817366ff897b6cff8d7e6eff8f7f6eff8f7e6dff958371ff9b8978ff998674ff998775ffa39382ff9d8e7cff9c8c7bffa0907effa49384ffaa9989ffad9d8cffb6a493ffc3ae9effc8b39effcbb8a6ffd5c3b1ffd7c5b3ffd8c5b1ffd8c2aeffe5d2bcffead4bdffe4d1bafff2dfc8fff3e1cbfff5e3cbfff9e6cffffff0d7fffcedd4fffff7e0ffffedd6fffff9e2fffef6e1fffbe9d3fffcebd6fffef0dbfffffae3ffffffeafffff7e4fffef0d8fffffee9fffffae5fffff8e2fffffce6fffffbe3ffffffecfffffff4fffffff0fffffff5fffffff5fffffff2fffffce7ffffffeefffffee8ffffffedffffffebfffffff0fffffff82e443a242f80622a2cb78829c89f8c603430312cbdc3bfb2fffffff1fffffff5fffef9ebfff5ecd6fffef1d8ffffffeafffff4ddfffff5dcfff5e3cbfffff5ddfffff6dcfffff3d9ffffeed6fffeefd7fffef0d9fff2ddc7fff2ddc7fff7e1cafff4dec7fff0dcc4ffe8d3bdffe7d3bdffe4d2bdffe1cfbbffdbc8b4ffd5c2aeffd3bfabffd1beaaffcab7a2ffc8b5a2ffc9b6a3ffccb8a4ffcab7a2ffa79785ffc2b19effbeac99ffc1af9bffbeab98ffb9a593ffb5a391ffaf9e8dffaf9e8dffb0a08effab9a88ffa89784ffa99a87ffaf9f8cffae9e8dffaa9987ffa59482ffa2917fffa49382ffa29281ff9f8f7effa69684ffa89888ff948574ffa29181ffa69584ffa0907eff9e8e7dffa19180ff9b8b7aff9e8e7cff9a8b79ff988877ff938474ff968675ff938372ff968675ff938372ff918171ff978776ff8b7c6cff948474ff7d7060ff968775ff8a7a6cff8e7f6fff8a7c6dff8d7e6dff8f7f6eff958573ff8a7b6cff968676ff8a7b6cff837667ff7f7163ff817465ff857769ff827466ff857768ff7d7062ff897b6cff887a6bff8b7c6cff887969ff867767ff847564ff7e7061ff7f7263ff7f7061ff857565ff807261ff837463ff766757ff837463ff7d7160ff7e7160ff857665ff7d6e5e88634f341f3b2a0e21231b0d1d16130c2219140d2916130eff74685bff6e6254ff6f6254ff726658ff6b5e50ff6d5f51ff6a5e50ff675b4eff695d50ff675b4eff695d51ff655a4dff675b4fff64584dff675b4fff64594eff5e5348ff5f544aff65594eff61564aff5a4f44ff5b4f44ff594f42ff5a4f44ff594e43ff584d42ff5a4e42ff5e5346ff5f5346ff5b5044ff5b5045ff5a5044ff5a4f44ff51483eff53493dff52483dff53473cff53483dff50463cff554b3fff52483eff50473cff51463cff54493fff50463dff4d4339ff4c4339ff4b4238ff4c4338ff4b4237ff494036ff483e35ff4b4137ff4c4238ff4a4137ff473e35ff473e36ff453d33ff453c32ff453c32ff433a31ff433a31ff443b31ff443b32ff423a30ff7a6b5bff7c7061ff7c6f61ff807264ff807063ff7e7063ff88796bff8d7e6fff908170ff938473ff978777ff958575ff968672ff9a8975ff998776ffa08e7cff988777ff968677ffa29181ffab9a87ffad9b8bffac9a89ffae9d8bffb7a493ffc2b09dffccb6a2ffcfbbaaffd9c6b3ffdac6b2ffccbaa3ffe3d2b9ffe2d0b8ffe6d3bdffe3d2bbfff8e5cffffff3daffefdbc4fffdefd8fffcebd4ffffeed5fffbe8d1ffffecd3fffce8d0fff1dfc8fffff1dbfffdeed6fffbead2fffff5dffffbe9d5fffff0dcfffff8e2fffff3dffffff9e2fffff5defffffae2ffffffedffffffe9ffffffeeffffffedfffffff2fffffff8fffffbe4fffff8e3fffffdeafffffee9fffffff1fffffff340745f32342f2c22247458232bb28528f89188767f736e5ffffffde9ffffffe9ffffffeeff9e9281fffffae1fffae6cffffeefd6fffee9d0fffff7ddfffffae1fffff8e0ffffeed8fffbe6cefffff3dcfff8e5d0fff2e0cafff8e3ccfffbe5cdfff5dfc7fff3ddc4ffedd8c0ffebd7c1ffead7c2ffdccab7ffddc9b5ffe4cfb9ffe1ccb6ffdec9b3ffdac5b0ffdbc7b2ffd1beaaffcbb7a5ffc5b3a0ffccb9a4ffbfae9cffbcab98ffb7a694ffbeab98ffc1ad9bffb9a595ffb6a493ffb3a191ffb09f8effb2a18fffb09f8dffac9a88ffab9b88ffa89784ffa99784ffa79784ffa89886ffa69584ffa0907eff9e8e7dffa29280ffa39381ffa69786ffa09080ffa29281ffa39281ffa49483ff9e8e7dff9e8e7cff988877ff9e8e7cff988877ff998978ff978876ff958574ff8e7f6fff8e7e6eff8e7f6fff938474ffa29380ff948473ff948473ff908070ff948474ff9b8979ff968675ff8b7c6dff817465ff938272ff877869ff8f7f70ff8d7d6eff8e7f6fff877a69ff897a6aff8b7c6cff86786aff87796bff887a6bff827567ff857667ff827363ff867868ff867869ff7f7161ff7e7060ff807262ff817263ff807262ff817363ff817261ff7d6f5fff7d6f5dff7e6f5eff7a6c5cff827361ff827362ff7e6f5fff796b5b2551371025563c1220593d1216513a101d32250d2317130cff6e6255ff695e50ff6f6456ff6e6252ff675b4eff695e50ff6f6154ff6f6051ff685b4fff655a4dff655a4eff64594dff64574bff665a4dff66594dff5c5145ff61554aff5b5145ff5f5448ff5b5044ff574d42ff5c5246ff584d42ff594e43ff5b4f43ff594e43ff5e5146ff5d5146ff5c5043ff5c5144ff5d5146ff574c42ff564b41ff50463bff4f443aff52483dff54493eff54493eff574c41ff554b40ff51463dff51473dff554a40ff4f453bff4e453bff494036ff473e34ff494037ff463c33ff443a31ff463c32ff4a4034ff493f35ff4a4036ff483e34ff473f35ff463d34ff483e34ff443a31ff463d34ff473e34ff443b32ff473e34ff473e35ff756758ff7c6e5eff7e7062ff837566ff7b6d60ff7c6d61ff7f7161ff857665ff908070ff8f7f70ff8a7b6cff8f8071ff8e7e6fff8c7c6eff928170ff968574ff988877ff988875ff9c8d7bffa49482ffaa9986ffb1a08dffaf9e8cffa99987ffb19f8cffc7b5a1ffc9b8a2ffd0bea9ffd4c2adffd0c0abffdac7b2ffeddac3ffe7d7c1ffe3d1bcffeedbc5fff3e2cafffff2daffffedd5fff0dec8fff5e0c9fffde8d0fffff7defffff0d9fff0dec8fffae9d1fffcead2fffeebd3fffff2dafff4e3d0fffff2dbfffffae3fffff7dffffffee8ffffffe8ffffffe7ffffffedffffffe9fffffff0fffffff2fffffff6fffffff7ffffffeeffffffebffffffeafffffee8ffffffeafffffff52b392d1a272b261f2474582029ac8120ff7d7971fffff1dbfffffde6fffff9e2ffa69986fff7e7d2fffeedd7ffffefd9fffff6defffff1d6fffffadfffffefd7ffffefd7fffff3dbfff6e2cefffdebd4fff9e6d0ffefdcc7fff7e2cdfff3dec8fff4dec6fff4ddc4fff0dac2ffe6d2bdffe5d2bdffe8d4beffe6d1bbffe0cbb3ffe6d0b8ffc8b5a3ffd7c4b0ffdbc8b2ffcdbaa7ffcab6a4ffcab7a4ffccb8a4ffc6b4a1ffc9b6a1ffc0ac9affc2b09dffb4a391ffbfab9affbaa796ffa39182ffac9b8cffb3a291ffac9b8affa99986ffac9b87ffa99883ffaf9e89ffb3a28dffa79684ffa99986ff9e8e7dff9f8f7dffa69684ffa99886ffa99988ffa09080ffa79584ffa29181ffa08f7eff9f8d7dff9b8b7affa18f7dff9f8f7dffa3927fffa1917fff9a8b79ff988877ff988877ff978676ff978877ff998978ff8d7d6cff968574ff918271ff8f8170ff938271ff8f8071ff938474ff8c7d6eff8b7c6cff8e7e6eff978675ff938271ff928271ff8d7e6fff918271ff897b6aff8b7c6cff887b6bff86796aff897b6cff86796aff796d5dff7c6d60ff7d6f61ff837566ff7d6f61ff7b6e5fff7e7062ff7e7161ff837565ff807263ff7f7262ff7c6e5fff7c6f5eff7c6e5eff786a5aff796c5cff776a5aff7b6e5dff786b5aff7a6b5a213d2b0f1851380f1c553c101a533b11255e43111d5c4411ff695e51ff6e6255ff6b6053ff685d50ff675a4eff6e6154ff6d6052ff605548ff605649ff61564aff63574aff63574bff655b4dff5f5448ff5e5447ff5d5246ff5e5347ff5c5145ff584d41ff574c42ff5d5146ff5a4f43ff584e42ff5c5045ff594e43ff5e5348ff5f5448ff5c5045ff574d42ff5c5146ff584d42ff584d40ff554b3eff52493dff564c41ff54493eff574c41ff564b40ff554a3fff564b40ff564b41ff544a3eff51483cff4d4339ff4b4237ff4a4136ff473d33ff473e34ff453b32ff483e34ff41382eff443b31ff453c32ff463c33ff4a4035ff4a4037ff493f35ff433a31ff453b32ff443b31ff443b31ff483e34ff433930ff756758ff786b5cff7e7061ff7d6e5fff7a6b5dff7f7062ff7d6f5fff837462ff857766ff847567ff857568ff857768ff8e7f70ff8e7d70ff948373ff958675ff978775ff968774ff998977ffa1917fff9d8c7bffa2917fffab9b88ffa89786ffb5a491ffc0ae9affc3b39fffc9b9a3ffd1c0abffcdbca8ffe2d0bbffe5d3bcffe6d6bfffe3d1baffe6d4befff2e0c9fff0dec7ffeddbc6fff2e0cbfffdedd6fffce9d0fffeedd5fffeead4fff8e6cfffffeed6fffff0d9fffff1d8ffffeed8fffeecd5fffdf0d9fffff9e2fffff7e0fffff5dffffffde7fffffee8fffffce6ffffffeafffffff6ffffffeffffffff0fffffff1ffffffeeffffffeafffffee9fffffff1fffff9e8fffffae545a37c2724322c1a3155432034a77e28fffff4deffffeed7fffff9e0ffb3a28cfffff3ddfffdebd6fffff2ddfffce7d3fffdeed6fff6e5cdfff3e0c9fffeecd6fffdebd5fffff8e0fffbe7d2fffae8d1fffce9d3fff5e2cefff3e0cbfffde8d2fffde7cfffe8d6beffe4d2bbfff4e0c8ffecd8c3ffdcc9b4ffe3ceb9ffe6d2bcffe1cbb7ffe0cab5ffd1bfaaffd1bea9ffd0bca7ffd4c0acffcdb9a6ffccb8a4ffcab8a5ffc3b19effc1b09cffb7a392ffbda997ffc0ac9affb9a796ffab9a88ffaf9e8effac9c8affac9987ffb2a08cffb2a08cffb6a591ffb1a18dffaf9e8cffa89886ffaa9989ffa59484ffa49583ffa49582ffa29280ffa39381ffa39382ffa09181ffa59585ff9f8f7effa99885ffaa9886ffa2907effa89785ffa29280ff988978ff948474ff9a8a79ff928372ff948474ff9d8e7cff988a77ff9a8b77ff918270ff928272ff8e7f6fff948473ff8a7b6cff887a6cff8c7e70ff867869ff897a6bff887b6cff8c7d6eff8f8170ff908271ff918373ff8a7d6dff887a6aff887b6bff857869ff7d7061ff847767ff817363ff7e705fff837465ff817364ff847667ff7a6e5fff7c6f61ff7d7062ff7e7062ff7d7161ff7e7161ff7c6f60ff7b6d5dff7c705fff7a6d5dff736657ff716455ff847665ff7c6d5dff786a5aff736657191c150c1514110c592821162d5d4313285f4613ff695d50ff6c6053ff695d50ff6a5f52ff65594cff665a4eff625649ff675b4eff63574bff615649ff665a4dff605649ff63594dff5a5045ff5f5448ff5e5347ff5f5448ff594f42ff605449ff5c4f44ff605449ff5b5044ff5b5044ff5a4f43ff5b5045ff5f5549ff5c5046ff615548ff5e5247ff594e42ff52483cff5a4f42ff564c40ff554a3fff544a3fff594e42ff584c41ff564b3fff554a3fff554a40ff564b41ff564b40ff50463bff4d4339ff4b4137ff4a4136ff494035ff443b31ff433a31ff453c32ff473d33ff483f35ff433a30ff493e34ff473d34ff483f35ff463c32ff463d33ff443a31ff40382eff433a2fff433a30ff41382fff6f6353ff776a5bff736758ff77695aff726456ff7a6c5dff7f7061ff7e6f5fff7f7061ff887b6aff87786aff8a7c6cff8d7e6eff8c7d6eff8b7a6aff8e8070ff998879ff938473ff968775ffa1917fffab9885ffa49381ffa69684ffb3a38fffbfad9affbdac99ffc2b19dffcfc0aaffd6c4afffc8b8a3ffd7c6b0ffdac8b2ffdecbb6ffdfcdb6ffe4d1bbfff1ddc5fffbecd0fff9e8d3fff2e1cbfff0ddc6fff7e4ccfffae8d1fff4e2cdfffae7d1fffff8e1fffff5defffdedd5fffffae0fffff5e1fff9ebd4fffff8e1fffffbe3ffffffecfffffeeafffff4defffffee7ffffffe8fffffce5fffffce4ffffffeefffffeeaffffffebfffffeecfffffce7fffffbe5fffffff0ffffffed26a077212982622027312b1a7d6f5d3efffff5dcfff4e1cbffd0c2aefffcedd7fffff1dbffffecd6fffae6d0fffdead4fffeecd6fff7e3cdfff9e6cefffff1d9fffff4ddfffeecd5fff9e5cffff4e2cefff7e6d1fffae8d3ffebd8c4fff4dfcafff4dfc9fff7e3cbfffbe6ceffe8d6bfffeedac3ffe6d3beffd4c1aeffcebba8ffd1bca9ffdfc9b3ffd7c3aeffd0bda7ffd3c0aaffc2b19effcbb8a6ffd1bdaaffc7b5a2ffc5b4a0ffc5b29effc2af9cffbca996ffbca896ffb9a796ffad9c8bffae9d8cffac9b8affb6a492ffb6a491ffbba994ffbaaa95ffb0a291ffa99987ffaf9e8cffa79787ffa69686ffa89886ffa29280ffa2907fffa0907effa79786ffa29383ffa29281ff9e8d7dffaa9987ffac9b89ffaa9886ff9d8c7bff998979ff9e8f7dff978877ff948675ff9a8979ff968777ff988a79ff988a77ff9f8e7cff968675ff908271ff897a6bff938373ff8d7f70ff85786bff857769ff807264ff7c7062ff897a6bff8d7e70ff8e8170ff8a7c6cff8d7f6eff8e806eff897b6bff87796aff8a7d6dff837566ff857768ff827564ff867867ff857868ff837566ff7e7162ff807264ff786c5eff7d6f61ff76695cff7d7061ff7b6e60ff7e7162ff7e7162ff776a5bff76695aff746657ff726656ff6f6455ff92826fff776959ff716354ff736657161a150c1415110b1f33260f205c4210ff665a4eff685c4fff6b5f52ff66594dff685c4fff66594dff6b5e50ff685a4dff67594dff61564aff635749ff62584bff5d5348ff655a4fff5f5449ff64584cff5b5045ff5c5145ff63564aff5a5045ff605448ff5e5347ff5e5346ff5d5246ff5d5146ff594d43ff5d5347ff605448ff574e41ff594e41ff5a4f42ff5b4f43ff574e42ff53493eff52483dff544b3fff564b3fff5b5043ff564c40ff584d41ff554a3eff554a3eff53493eff50463cff4e453aff473e34ff4b4237ff4a4036ff453c32ff4b4238ff483f34ff4a4136ff453c32ff433a31ff473d33ff423930ff433a30ff443a31ff41382fff443b31ff433a30ff3f362eff433b31ff796b5cff716455ff776858ff7c6e5eff7b6e5eff78695bff807163ff807263ff837464ff837465ff857768ff837566ff877866ff8c7e6dff908071ff8a7b6bff8d7d6bff8e7e6cff958575ff96877aff948574ffa79785ffad9c8bffb09f8dffb9a895ffbdad99ffc2b19dffcdbca7ffcbb9a4ffd2bfabffd2c0a5ffd7c4acffe8d4beffe1cdb4ffe8d5bfffecd8c3ffe5d2beffe6d5c0ffe7d5c1ffebd9c5ffe6d4bffff4e1cbfff3e1caffefdec6fff7e2cdfffae5ccfffdebd3fffffde7fffbefd9fffff4dcfffff1dafffff4ddfffff5ddfffeedd5fffffde2fffffde3fffffde2fffffae0fffffee6fffffee8fffffeeeffffffebfffff6defffffff1fffffce4fffffde6ffffffed1b996f1f27a077212646381e313f3424fffff3d9fffffde2ffc7b7a2ffffeed5fffffee7fffff7dffffae6d0fffbe8d2fffeeed8fffae7d1fffbe9d2fffeefd7fff6e3cdfff8e5cdfffbe7d1fff0dfccfff1e0ccfff7e6d2ffefdbc8fff2ddc7ffeedac4fff3dfc7fff8e5cdfff9e6cfffecdbc6ffeddac7ffebd8c4ffe5d2bcffebd7c1ffd9c4b0ffd7c3afffd0bdaaffd2bea9ffd5c2aeffd4c2afffd0bfabffc9b8a6ffc9b7a5ffc2af9dffbfac99ffb7a694ffb7a593ffb8a595ffb3a190ffb1a08effb4a391ffb1a08fffb09f8effb4a390ffae9f8dffaf9f8effa99a89ffa59584ffa69787ffa49483ffa59583ffa29281ffa59584ffa0907fffa49383ffa59584ffa1907fffa39281ff9e8d7dffa49382ff9e8d7eff988877ff988777ff948473ff948574ff908271ff867868ff958676ff9e8e7dff9c8c7aff8c7f6fff948473ff8d7e6eff8c7e70ff8c7e6fff877a6cff8c7d6fff827568ff87786bff8a7c6dff928373ff8a7b6dff8f8171ff867969ff8f8271ff8b7d6dff867969ff87796aff807464ff827465ff7f7263ff7f7262ff7f7263ff837667ff827565ff7f7162ff817363ff7b6e60ff7e7062ff7a6e60ff776a5cff7a6d5fff7b6e5fff7f7161ff736658ff76695aff766a5aff716555ff726556ff706455ff796b5cff756858ff6f615118513b0e2314120f2a15141019563e11ff6b5e52ff695c4dff726457ff6c5e52ff66594bff685b4fff65574cff66594dff62564aff605348ff62564aff605449ff5f5448ff5a4f44ff5c5145ff5b4e44ff5b4f44ff5c5044ff62564aff5a4f43ff63574bff564b40ff55493fff5c5145ff5e5145ff605346ff594e42ff594f42ff584d40ff564d40ff4e4439ff5a5043ff5b5042ff5a4e41ff574c40ff564b3fff544a3eff53483eff574d42ff584d42ff544a3fff564b40ff52483eff50473bff4e4439ff493f35ff483e35ff4a4036ff443b32ff483f35ff494136ff4e433aff493f35ff483e34ff443b32ff463b31ff443c31ff433b31ff41382fff473d34ff443b32ff42382fff433931ff746859ff776b5cff776b5cff6e6152ff78695aff786a5bff7b6c5cff7d6e5eff806f5eff7d705eff857767ff817464ff817161ff847666ff8a7a67ff887968ff8c7d6cff938473ff988977ff9c8e7dff988977ff9f8f7dffa79686ffb4a390ffb3a28fffbdad99ffbcab99ffccbba7ffd1c0aaffd0bea9ffc0af98ffe8d1baffecd7c0ffeddac4ffdeccb6ffdecdb8ffe5d6c0ffe4d3bfffebdcc4ffeddcc5fff0e0cafffbe7d0ffeddbc4fffef2d4fff4e1c6ffefdcc2fff7e3c9fffbe9d0ffeddcc3fff8e6ccfffaead1fffae8d0fffff4defffff9dffffff6dcfffffee7fffff4ddfffef9e1fffff6dffffff6dffffff7e3fffff9e3fffff9e0ffffffedfffffee7fffffae5fffffbe4307f5f22279e73222fa47a242a332c1ffffff9e1fffff8d6ffceb99cfffffce0fffde9d5fff9e9d3fffffce5fffff3dcfffeefd7fffff4dcffffecd4fffdeacffffff5dbfffeead3ffffefd9fff9e7d2fff9e8d3ffe9d6c1ffe9d7c2ffead6c2ffe9d6c1ffefdac4ffdac7b4ffe7d4bdffdfceb8ffe2d0bbffdac8b5ffd3c1adffdfcab4ffdec8b1ffd5c2aaffd3c0abffcfbea9ffd6c3afffd8c5b1ffd2c0adffc9b8a6ffc9b7a4ffc6b3a1ffbeac99ffc5b2a0ffbeac9affbfad9affb8a794ffb5a491ffbaa896ffbdac99ffb5a494ffb0a08fffa69685ffae9f8dffac9c8bffab9c89ffac9c89ffa29382ffa19180ffa0917fff9d8d7cff9e8e7dffa08f7eff9c8b7affa59483ffa59483ff9c8d7cff9a8b7bff9d8e7eff948575ff9c8d7cff978877ff988978ff907f71ff928474ff958676ff948574ff928474ff8f8272ff938575ff8e8070ff8b7d6eff8a7c6dff8b7d6eff897b6dff908170ff877969ff948574ff8b7a6bff897a6bff857769ff7c7061ff827566ff877a6aff887a69ff817365ff817465ff857869ff837667ff7e7263ff827465ff867969ff7f7163ff7f7263ff7a6d5fff7e7161ff786b5dff74685aff776b5dff796c5eff796d5eff786a5bff786b5cff796d5dff726557ff716557ff756859ff6d6052ff776a5bff77695bff71625413513a0e173a2b0e341715102e1e190fff6a5d51ff6c5f51ff6f6153ff6b5d50ff695c50ff63564aff61574bff63574bff61554aff605548ff62574aff63584cff64584cff5e5246ff5b5143ff594e41ff5a4f42ff5d5044ff615649ff655749ff594e42ff594e42ff574d41ff5c5044ff5c5043ff5e5145ff5e5245ff5d5044ff534a3eff554c40ff554c41ff564c41ff554a3eff554b3fff5d5044ff53493eff55493fff544a3fff53493dff55493fff51473dff51473bff51463bff51483cff4e443aff463d34ff473e35ff493f36ff40392fff493f36ff493f35ff463e34ff4a4136ff463d33ff463d33ff453c33ff433a30ff443a31ff42382fff453b31ff43392fff41372dff41382eff726557ff716555ff77685aff7c6d5eff807161ff7c6c5eff77695aff77675bff7b6c5fff7f7160ff7f7061ff817364ff817261ff867668ff837466ff8a7b69ff8f7f6dff928371ff958675ff9c8c7cff9e8e7dffa0917fffa59683ffa79785ffb1a291ffb6a593ffbaa998ffc3b29fffd6c5aeffd2c1acffcdbba5ffdec9b3ffe7d3beffdccab5ffd8c6b1ffd9c8b2ffe4d1bcffe3d1bbffdccbb5ffe9d8c2fff2e0caffeedbc5fffbe5cbfffdf0d5fff9e7cefffeebd0fff8e4c9fffbeed5fffff9e0fff9e5d0fff2e0cafff6e3cdfff7e4ccfff2e0cafffff3dcfffff7ddfffff1d9fffdead4ffffefdafffff3deffffefd9fffff9e2fffff7e0fffff8e1fffffbe4fffffce7ffffffe9314b3f2217906c1e35b3852829795d21fffff3dafffff0d6ffc9b79efffffae0fffff8dffffff5deffffedd7ffffefd9fff8e5cfffffeed5ffffedd2fffff6dafffff4dbffffeed7fffff8e2fffbead5fffdedd6fff1e0cbffe9d8c2fff0dcc6ffeedac5ffedd9c4ffeddac4ffecd8c3ffe3d1bcffe8d6c1ffe4d2bdffdcc9b5ffe2cdb8ffd7c4adffcebba6ffc8b8a4ffcab9a6ffd5c3afffd6c4b0ffd4c3afffc6b6a3ffc4b3a0ffc1b09cffbba996ffc2b29fffc5b3a0ffbba996ffb2a08cffb5a491ffb4a291ffb7a694ffb5a492ffab9b88ffab9b89ffab9a89ffaa9988ffa69584ffa59584ffa59584ff9b8c7bff9c8c7cff9e8f7fff9b8b7bffa0907fff9a8b79ffa0907fff9d8e7dff9b8b7bff9a8b7aff958776ff968778ff988979ff988978ff978876ff928473ff918272ff8e8170ff908070ff8b7d6eff8c7f6fff8f8272ff8b7e6eff8a7c6dff857669ff867868ff8d7f6fff887a6aff8d7e6dff8d7d6cff908070ff8f806fff8e7f6eff8a7b6bff7d7060ff7b6d5fff807263ff7d6f60ff7e7162ff817566ff817465ff7e7162ff7e7262ff7e7261ff807364ff857767ff817363ff7b6d5dff796c5dff76695bff7d7060ff7e7060ff736659ff786b5cff7b6d5eff756859ff75685aff726557ff756959ff756758ff786a5aff716354ff6f6254114e380e1b523c1124231b102515120fff695d51ff695c4fff6e6053ff6d6053ff65584cff605448ff605549ff62564aff615549ff615549ff62564aff5f5347ff625549ff645749ff605447ff5f5446ff5b4f42ff5f5345ff5b5145ff615549ff51463cff5a4f43ff584c41ff584c40ff5e5246ff605448ff5b4f42ff584c40ff51473cff564c40ff544a3eff544a3eff544a3eff584c40ff574c40ff564c41ff574c41ff544a3fff53493eff564b3fff554b40ff51473cff51473cff50463cff4c4238ff4b4237ff4b4238ff463e34ff453c33ff463d34ff463d34ff463d33ff493f34ff463c33ff463d32ff473d33ff463d33ff483e34ff443a31ff42392fff433a31ff41372fff42392fff736557ff6f6354ff736457ff716456ff7b6c5dff756759ff776a5aff78695bff746558ff7b6c5dff7d6f5eff807162ff837565ff837465ff857867ff8b7d6bff897b69ff90816fff958675ff998978ffa19180ff9e8f7effab9c89ffa59684ffada08fffac9d8cffb4a492ffbeae9cffc2b09bffcfbeaaffd2c1acffd7c5afffdbc8b4ffd4c4afffd4c3aeffd8c7b1ffdac9b4ffe2d1bbffe8d8c1fff0dec8fff5e2ccffe8d6c1fff2ddc3fff8e4ccfffdebd1fff4e1c8fff9e7ccffe7d7befff5e2ccfff7e3cdfffce9d3fffff0d9fffff3dafff4e0ccffffffe6ffffefd5fffdead3fff5e2ccfffae6d0ffffeed6fff9e5d1fffde8d1fffae6d1fffeedd8fffff1dbfffffbe6fffff8df1c31291a1c352d1e2db0842931ac8125fffeedd6fffff1d7ffcebca4fffff5dcfffff5defffffae2fffff7e0ffffeed8ffffefd7fffdead0fff9e4ccfffbe8cdfffffbe2fffff0dafff9e9d3ffe1d0bbfff1e0cafffcead3fff6e4cefff8e4cdfff5e2ccfff3e0cbffecd8c3ffebd8c3ffe9d8c2ffe8d7c2ffdfceb9ffdfcdb7ffdbc7b2ffd5c3adffd2c0acffcfbeabffcdbda9ffd4c3afffd4c3afffcebdabffbfb09effc4b4a0ffbbaa97ffbeab97ffc4b29fffc4b19effbba995ffb4a390ffb5a391ffb3a290ffb09f8dffa79785ffac9b89ffac9c8affb09f8dffae9d8bffa99886ffa79684ffa89987ffa79887ff9f9180ffa69785ff9e8f7dffa79785ffa19180ff9f907effa0907fff968777ff988978ff968777ff988978ff9c8d7dff9f907dff968776ff948575ff8e8070ff908272ff8f8070ff8b7b6cff87786aff8a7e70ff8b7d6eff88796bff8c7e6eff948572ff93836eff948574ff8c7d6cff8a7c6bff807262ff837564ff877867ff908070ff726658ff857666ff7f7263ff7d6f5fff7c6f60ff7b6d5fff807263ff7e7162ff817363ff847665ff837464ff817363ff7f7261ff807261ff776a5cff75695aff7d7061ff7b6d5eff786a5bff827363ff7b6d5cff736558ff76685aff736658ff736657ff756758ff7a6b5cff706254ff70635410281e0b14513a0e27553e142d181410ff6e6255ff665a4dff62564aff66594dff63574bff615549ff64584cff615549ff605448ff62574aff63564aff594f44ff66594cff66584bff67594cff605447ff5e5145ff5d5143ff5e5446ff594d42ff594e42ff5d5247ff5c5045ff5b4f42ff594e43ff5e5245ff594e40ff544a3eff51473bff554a3eff54493dff52483dff504439ff4e4339ff52473dff544a3fff52483eff574c41ff554a3fff52473cff51463bff4f453aff4f463bff4a4036ff4a4137ff4a4136ff494036ff453d33ff453d33ff453c32ff433930ff443a31ff473e34ff483e33ff41392fff443b32ff423a30ff443b31ff423930ff40382eff433930ff40372eff3f362dff6a5d4fff77695aff685b4eff716356ff766859ff76695aff76695aff77685aff716253ff77695bff7b6c5cff847463ff867865ff847564ff867766ff857564ff8e7d6bff8a7b6bff958676ff9b8e7bffa19381ff9f9180ffa19281ffa89988ffa69887ffaa9b89ffb3a492ffb9a896ffb8a695ffbead9affd3c4aeffd6c6afffe2d2bbffcab7a4ffccbca7ffd7c6b1ffd4c5afffdbcab4ffe0ceb9ffe6d3bffff8e2cbfff9e6d0fffbe8d0fff3e0cbfff6e4cdfffbead2fff8e6cfffebdcc3fffce6ceffe9d7c2fff4e4cdfffbe8cffffeeed6fff6e5cefffff0d7fffef1d8fff8e5d0fff0e0c8fff5e3cffff7e5d2ffffecd7fffeecd3fff2dfcbfff7e4cffffff6dbfffff4dbfffff1d62171561a37473c252553431f26a77d23fffff3dbfffff0d8ffd1bfa8fffff4dafffff4dcffffefd7fffffee7fffef1dafff3e2cafffeefd7fffbe8cffff2e1c8fff9e6cfffffedd9fffae6d1fff7e7d0fff0dec8fffce8d0fff5e2cafff8e5ceffe9d5c0ffedd9c5ffecd8c3ffebd8c1ffe0ceb9ffe5d3bdffebdac4ffe7d3bcffd7c4afffd8c5b0ffd5c3adffd4c4aeffcdbda9ffcdbdaaffcfbeadffcabaa7ffc4b4a3ffc1b19effbfae9bffc1af9bffbdad98ffc2b19cffbbaa95ffb7a793ffbdac98ffb3a290ffb2a08fffaf9f8effaf9e8cffae9e8cffaa9a88ffaa9a88ffa99886ffa99987ffa79785ffa49483ffa09180ffa59583ffa39381ffa79785ffa39382ffa99988ffa69685ffa29280ff9e8f7eff9e8e7dff978879ff968776ff908272ff958677ff918373ff8e8070ff8e8071ff8f8070ff9a8b79ff8f8271ff938675ff867869ff8c7e6eff817568ff8d7e6fff928271ff90816fff928270ff837566ff847667ff827565ff837565ff867869ff7c6f61ff7d6f62ff7c6e60ff796b5dff807262ff827565ff7a6d5eff75685aff74685aff766959ff807263ff817363ff7e705fff7d6f5fff796d5eff75685aff75695aff786b5cff786a5bff7b6d5dff756759ff746759ff706456ff746759ff706355ff6e6253ff766959ff716455ff7163550d19130a17402e0e23563e122c443415ff6a5d50ff706456ff695e50ff63584bff615349ff63574bff605549ff64594cff615649ff605348ff605449ff64574bff625649ff65584bff605348ff5e5246ff5d5346ff574c41ff62584aff594c41ff5a5044ff5a5145ff594e42ff5b4f43ff564d41ff5a4f42ff554b3eff52483dff51483cff50473dff52483eff554b3fff4f4539ff4d4339ff50463bff554b3fff52483cff55493dff544a3fff53483dff4f453aff4e4438ff4f453aff4f4439ff4e4238ff4a3f35ff463c32ff413930ff453c32ff443b31ff43392fff483e34ff453b32ff493f35ff483f34ff443b32ff433b31ff473e34ff443b31ff423a30ff41382fff3c332bff40372eff685c4fff6f6254ff6c5e52ff6b5d51ff716455ff746657ff786a5aff75695aff706255ff7c6c5dff7c6d60ff796b5cff7d7060ff827464ff887a6aff857967ff857868ff897b6bff928472ff9e8c79ff978b79ffa09280ffa89887ffa49583ffa59584ffae9f8cffae9f8cffb1a28effc1b29dffc3b4a3ffbfac96ffc7b49effd0c0abffcdbda9ffd7c7b5ffd0bfacffe0cdb9ffdfcfbcffe4d1bcffe6d5bfffe8d6c1ffe5d2bfffe9d5beffe4d1bcffe8d7c2ffecdcc6ffefdfc8ffcfbea8ffecdac5ffe7d5c1fff6e5cefffff0d4fffae9d2fff6e4cefff3e2ccfff2e0cafff6e2cffff9e7d0fff9e7d1fffeebd7ffffedd7ffffedd6fff7e5d0fff8e6d0ffffeed3fffff1d6ffffedd12da77c23153027173a302d2636937328fffdecd5fffce9d3ffccb9a3fffff7dcfffffee7fffdebd4fffdead2fff5e4ccfff4e3cbfffae9d2fff6e3cbffeedbc3fffcecd4fffbead4fffbe9d2fff3dfcafff0ddcafff0dbc8ffebd6c2ffedd8c1ffebd6bfffedd8c2ffebd7c1ffe9d6beffdecdb7ffe1cfb9ffd3c1acffd0bda8ffd7c5aeffd1bda8ffcfbea8ffcebca8ffcab9a5ffd2c2b0ffcdbbaaffc4b3a0ffc1b09dffc1b09effc0af9cffbdab98ffbeab98ffc4b19effbaa996ffb4a490ffb6a491ffb7a591ffb6a392ffaf9d8cffaa9a88ffab9c89ffab9b88ffaa9987ffa79785ffa69685ffa89887ffa49482ffa19180ffa0907eff9f907eff9d8d7bff9c8e7cff988976ff9d8e7dff9c8d7dffa09080ff9e8e7fff98897aff97897aff928474ff9a8b7aff928273ff938474ff8d7e6fff86786aff8c7d6eff968877ff8d7f6eff928373ff908171ff918371ff968775ff8f806fff928270ff897b6aff877869ff8d7f6eff837565ff817364ff887b6bff807364ff7b6e60ce645d55cd655f58d46c665fc2625d547e383c3f8f3c3e42cc5d5750cb5b544dff7b6e5eff726557ff746859ff7c6e5fff786b5cff7b6e5eff74695aff7a6d5dff7c6f5eff786b5cff706456ff706557ff6e6355ff776a5aff716456ff736656ff736657ff716355ff716356101c150b1116110a1e523b1124564015ff64594cff66584aff665b4dff64594cff695d51ff5c5146ff665a4eff665a4eff62564bff64584bff605448ff605448ff5b4f44ff5c5144ff5e5246ff5b4f45ff5c5045ff584d41ff65594bff63574bff584e42ff574d41ff5a5143ff5e5245ff544a3fff4f453aff544a3fff52473dff4f463bff584d42ff574d41ff574c40ff53483dff4e453bff4f463bff544a3dff54493dff52473cff50473bff50453aff504439ff4a4036ff473d33ff4e443aff4b4137ff453c33ff473d34ff473d34ff41382fff433a2fff41372dff463d33ff463d33ff3f372eff473e34ff3f362eff3c342bff443c31ff423a2fff40372eff433b31ff3b332bff41382eff685b4cff695d4fff685a4cff6e6053ff716456ff716557ff736557ff6e6254ff726657ff756758ff7f6f5eff786b5cff7e6f60ff7d6f60ff8b7c68ff847567ff928473ff938474ff928474ff8f8270ff978a79ff9e8f7effa49584ffa39786ff998879ffa29484ffb2a08dffb29f8cffb9a590ffc2b29cffc3b59fffc3b39fffc4b6a0ffc9baa5ffd3c6b2ffd4c1adffddcbb7ffddcbb7ffdcccb7ffe7d6c0ffeedbc7ffe5d5bfffe3d0bdffdfcdb9ffe9d7c2ffeeddc6ffeedcc5fff4e1cbffe7d7c1fffae8d2fff4e1ccfffeefd8fffeecd5fffeeed6fffdedd5fffeecd4fffeecd6fffeecd5fffbe9d1fff7e4ccfffbe9d4fff5e4cdfff6e3cbfff9e5cdfffeead2fffae6cdfffce8ce289b731f1372581b2f2e2822332e2b24fffef0d9fffcebd5ffc8b6a1fff6e3cbfffef2daffffedd4fff8e6cffff6e4cdfff8e4cdfffbe7d1fff2e0cafffbe6cefffce8d0fff3dfc7ffefddc5ffefddc8ffefddc8fff3e1cbfff3dfc8ffe8d6bfffe6d4bdffeddac2ffead5bfffe4d0b9ffe9d6beffe3cfb9ffdecdb7ffe2cfb8ffd8c6afffd5c2acffd1bfa9ffcab9a5ffc3b3a0ffc8b7a4ffc4b3a1ffc2b29effc7b4a2ffbfae9cffc3b19effc5b29effc4b19fffb8a794ffb9a894ffbbaa96ffbba995ffbdaa95ffb9a692ffa99887ffb0a08effb7a692ffad9b88ffab9b88ffab9b88ffaa9a88ffa79785ffa69684ff9c8e7dff9f8f7dffa19281ffa59686ffa19282ff9e8e7eff9e907fffa09382ff9f9181ff9e8f7fff9a8b7bff9b8a7aff938374ff928373ff918372ff8f8071ff908272ff8f8172ff908171ff8f8070ff948675ff998a79ff928472ff988976ff887a6aff908070ff948473ff8d7e6eff857766ff8a7b6bff8475669963635d7b5a5f628f545a61a64e51576f3b42426c3a40416c353b3c8141474964343b3c52202525521f24246425292a572024254a1c2020ff76695bff7c6f61ff7b6e5eff7b6d5eff786c5dff7a6c5cff756859ff756758ff706253ff726555ff766b5aff716556ff706353ff756857ff756757ff6b5f4fff6c6050372e26171914120e1a1d180e24583f11ff655b4cff64594cff5f5447ff615649ff66594dff645a4eff685c50ff66594dff61554aff5f5448ff65594cff605548ff5a5044ff5d5246ff5b5044ff61564aff5e5347ff5b5044ff594d42ff605549ff5c5146ff594f44ff584e42ff594e42ff574d41ff564b3fff584e42ff564b40ff554b40ff52473bff554a3eff52473dff4f463bff50463bff51463bff554a3eff4d4339ff50463aff4c4238ff4b4238ff4b4237ff4d4337ff493f35ff4d4338ff483f35ff473d34ff463d34ff473d33ff453c32ff423930ff3d352cff443b31ff443b30ff433a2fff3e362dff3e352bff463c33ff433a31ff41392fff423930ff3c342bff3f362dff40372dff675a4dff63584bff695d4fff675a4dff6b5e51ff75675aff6f6254ff6f6255ff6e6255ff7d6f5fff726656ff7a6d5dff7f7161ff7e6f5eff857665ff8e7e6eff837565ff8c7e6eff958676ff978776ff9c8e7dffa09180ffa19281ffa99a89ff988a79ffa59687ffa99784ffbeab98ffc5b4a0ffc4b4a2ffc1b0a0ffc5b5a4ffc3b3a0ffcabaa6ffcbbba8ffd5c7b3ffdacbb7ffeedac7ffeedac6fff2dcc7ffe3cfbcffdfcdbaffe3d1beffe1cebbfff5e3ccfffdeed5ffebdac4fff0dec7fff2e0ccffe7d7c3ffe6d5c0ffeedfc8fffbe9d1fffff0d9fffff0dafff9e9d1fff5e5cefff3e2cbffeddbc5fff5e2cafff7e5d1fff7e6d0fff1e0cafff4e1cbfffae8d0fff6e4ccfff9e7d06b9f803c24a17b222f755c2650312d23fffff8dffff6e4d0ffd3c3acfff3e1ccfffdedd5fff6e4cdffffedd7ffe6d5c1fff9e7d1fff8e5d2fff4e2d0ffeddac6ffdfcfbaffebd7c3fff0dfc8ffe9d7c3fff0dec8ffefdcc7ffebd8c2fff7e2c7fffce7cdfff6e2c9ffe9d5beffead6beffe8d5bcffead6bdffe7d4bcffead6c0ffe2cdb6ffe2ceb7ffcfbda8ffd5c3aeffcfbeaaffccbca7ffc5b4a1ffc0b09bffbdab98ffbfac9affc9b5a3ffbbaa97ffbfad9affbdac99ffc2b09effbcab98ffbbab96ffb8a794ffb3a08dffb2a08dffb3a38fffb1a08effb7a691ffa99985ffab9b87ffa99a89ffa59684ffa49481ffa0907fff9d8d7cffa19181ffa19281ffa19182ff9a8b7bff988979ff988a7bff938576ff998b7bff928374ff8e7f71ff968777ff948574ff8e8170ff877869ff978878ff8b7e6dff918373ff928373ff938473ff908170ff8f8170ff8b7c6bff978877ff948675ff8c7d6dff8a7b6aff82746495858b9575747a7f4b5458566c646b6a927174799474777d674d5457573e48484f3c45455b394343583d46468116191a6c1d212058171b1b5f181a198225292a44252928ff7b6d5fff796c5dff796d5dff796c5dff776a5aff776a59ff726555ff726455ff716454ff706355ff6b5f50ff615549ff675a4bff736455ff6a5d4eff685c4c4b4b38161b19150e2618140f22433110ff6a5f51ff675c4fff61564aff62574aff62564aff62564aff63594dff61574bff6b5e52ff675a4eff685a4eff5e5247ff5a4f44ff5c5146ff5f5449ff5d5246ff5c5144ff5c5145ff5d5145ff554b41ff574c42ff564c41ff574d41ff5d5244ff584e42ff574c41ff544b3fff52493dff534a3eff50463bff54493eff52473dff4e453aff4d4339ff51463bff4f463bff4f453aff4f463bff4e4339ff4d4338ff4c4237ff4a4136ff4a3f35ff493f34ff4a4136ff473e34ff453c32ff453c32ff433a30ff423930ff3c342bff3e362cff3d352bff423a30ff3e362dff3f362dff423930ff443b31ff41382fff40382fff3e362eff3f372eff443b31ff675a4cff685b4fff665a4dff685b4eff716457ff6a5e50ff6b5d51ff6a5f53ff6c6054ff6e6254ff7e6f5fff7d7062ff807263ff8a7b6bff7d6d5eff857566ff837666ff857767ff8f8172ff978978ff958676ff9f907fffa09180ff9c8c7cff9e9180ffa29383ffab9a8affb8a795ffbcac9affbcab9bffc2b0a1ffc6b5a5ffc2b2a0ffc4b3a0ffc6b7a4ffd3c3b0ffd6c8b5ffdfcdbaffe8d7c3ffdcc9b7ffe2cebbffdac8b5ffcebdaeffe0cebcfff6e3ceffe5d3bfffe5d4c0ffebd9c2ffead8c5ffe4d5c0ffe2d1bcfff2e3cbfff3e0cafff4e2cafffae7d0fff5e5cefff1e1cbfff0e1cafff0dfc8fff3e2ccfff5e5d0fff6e4cdfff1dfcafff2e0cbfff1e0c9fff3e2cbfff9e9d15c4b473b339e7a2734b58a2931403620fffce9d2fffae5d1ffc8b5a0fffbe7d0fff7e4cefff5e2ccfff3e1cafff7e4d0fff7e4cffff5e1cdfff7e2cefff1dec8fff5e1cafffae8d1ffeedbc7ffebd8c4ffe6d4c0ffdcccb9ffd9cab4ffe7d6bdffe5d3beffe4d2bcffdbc8b2ffd8c4aeffdfcdb5ffe3cfb8ffcbbaa6ffcdbca7ffe7d2baffdecab3ffd2bea9ffcdbaa6ffcbbba6ffcbbaa7ffc0b09cffbeae9bffc0ae9cffbfad99ffc6b39dffbdab97ffc1ae9bffb8a693ffb8a793f29b8274f49c8274f69a7f72fdb29f8dffb09e8dffb1a08dffb4a28fffb0a08cffa69685ffa59584ffa49584fa9f8f7cbe998467bfa48e6b2d77602a257a632b32665533237f622341755f3088846f48c5978464c9897b69ff978a7bff978979ff968777ff948576ff948575ff8a7c6cff8f8070ff938374ff8c7d6eff918272ff978877ff978776ff8c7f6dff8b7d6dff8c7e6dff938574ff8c7d6eff8d7e6eff8b7d6c87656a6c5544504f56434f4e65596364563a4544603b4747663744425a384542583a4545553f4a4b4a3944435b4d56575416191a4a101413491013137215181869151716751b1e1b872a2621ff7f7161ff7e7263ff807364ff7e7162ff6c6051ff756757ff706355ff756859ff736556ff706355ff77695bff706154ff726456ff6b5f52ff6c605221533b11204e39112317140e2b16130fff665b4fff685d50ff64594dff61564aff605548ff64584cff655a4eff5f5549ff675b4fff665a4eff5c5045ff5d5247ff594f44ff564b41ff5e5348ff605548ff5a4f44ff544a3fff594e42ff544a40ff50473bff554b3fff574d41ff594e42ff574d41ff584e42ff544a3fff544a3fff52483dff51473bff544a3fff544a40ff4f453aff4d4339ff4d4339ff4f453aff50473cff4d4439ff4b4136ff4b4136ff4b4136ff4a4137ff4a3f35ff4a4036ff4c4338ff453c32ff453c31ff463c33ff3f372dff41382fff3e362cff423a2fff41382fff41382fff433a30ff3d362cff40372fff443b32ff40372eff3d342cff3f372fff3d362cff3e362dff685b4cff6b5e50ff6a5c4fff62574aff6f6255ff6d6053ff6e6154ff6a5e53ff685c50ff6d6253ff736658ff726658ff76695bff7c6e60ff796b5eff867666ff7f7163ff8c7e6eff968877ff978b7bff958879ff9b8c7cffa09080ffa89887ffa99988ffaf9f8cffb9a895ffb6a797ffae9f90ffb9aa99ffc1b19fffc2b2a1ffb9a996ffbcac99ffbfaf9cffc3b3a0ffd6c4b1ffd6c8b2ffd1c1afffcebdabffd5c3b0ffdbc9b6ffe1cebbffdecdb9ffdfcfbdffdfcfbfffddccb9ffdfcfbaffddceb9ffe5d5bfffeddcc5fff3dfc8fff3e1ccffefdec8fff4e2cafff1dfcbffead8c4ffecddc7ffeedec7fff2e1c7fff8e4d0fff8e3cdfff5e0cafff0ddc7fff0dfc9ffefdfc8fffaead3213d34201f4a3d202eb1862832a78228fff6e3cdfff7e4ceffb2a18efffeecd6fffef0dbfff9e7d2ffeddbc6ffecd9c3fff9e5d1fff3e1cdffecd9c5ffeddcc6fffbe9d4ffefdcc9ffe9d7c3ffefdcc8ffe8d8c3ffe7d7c1ffe4d2bdffe4d3bcffe8d7c1ffeddbc6ffe5d2bdffe7d5bfffe4d3bdffe9d9c1ffdfcdb6ffd6c3aeffe1cdb5ffdecab2ffd5c1acffccbaa5ffc6b6a1ffc6b5a1ffbfaf9bffc3b39fffc1af9cffcbb7a1ffcbb7a0ffc3b099ffc3b09bf9b78d81e6a43542e91f090be7290b0dd7300d0fd8280d0fffb6a491ffb2a08dffab9c88ffaf9f8be3a7957d438866331d694c1c29684f192d75591c307f611d3282641e31a781242fd6a52c2dce9f2e24bf93252eb38b252b9e7b202e7d621c8f3b3832413d352283685b44ff948576ff968777ff8d7f6fff928372ff8f8070ff8a7c6cff8e7f6fff938472ff918372ff8f8170ff8b7c6bff9a8977ff918271ff918270ff867868906b71724c43504e72545e5d594a5554523c49486a4b54565f3b46457c404649543a41444d3742424936403e2d343d3946454a4d341014132d0f12104011141354121514441214126a1b1d1b4c020202ff756858ff73685aff807263ff807161ff756959ff7c6e5dff6d6052ff726558ff746555ff756658ff75685aff746657ff716454ff706354ff6c60511a4e360f25573f112030240f2417140eff63594dff65594dff61564aff5d5246ff5d5246ff5e5347ff5c5145ff64584cff5f5448ff5d5247ff5d5146ff5c5046ff564b41ff5b5045ff5b5044ff584f44ff594f44ff594e43ff554b3fff52483dff574c40ff584d3fff584d40ff564c40ff53493eff554a3fff50463cff50463cff53493eff52483cff564b3eff52473dff4f4439ff4e4439ff4d4338ff4f463aff4f453aff4d4439ff4f453aff4a4036ff4d4237ff4c4338ff4b4037ff4d4338ff4b4136ff463d32ff463e33ff453b31ff443a31ff433b31ff43382bff473d31ff42392fff453b32ff423930ff433930ff40372eff433a31ff41382fff41382fff3c342cff3b332bff3d352cff695c4eff665b4dff675c4cff665849ff7a6c5bff706355ff706456ff716557ff6d6254ff706557ff75695aff74675aff786b5dff7c6f60ff7d7061ff7e7060ff807264ff7e7264ff928574ff938675ff8c806fff978978ff988b7affa89988ffa3917effa79785ffa89987ffad9d8bffb1a28dffb7a493ffbaa996ffc3b39fffc0b2a0ffc3b4a4ffc4b3a0ffc6b6a3ffcab9a7ffcbb9a7ffc8baa7ffcdbca9ffe3d0baffd5c3b1ffd0bfacffcebeabffcfc0acffd2c3afffd7c7b8ffd5c3b4fff1e0c6fffcead2ffe7d4bfffe6d7c1ffe6d3bdfffce9d1ffdecdb6ffe3d1beffdbcdb6ffe1d1bdffe7d8c1ffecdcc5fff7e3cbfff7e1c9fff7e1c8ffecd9c4fff9e5cdfffbe9d5fff8ead119282317172721162470561f27a67e22fff9e6d1fffae6cfffbdad97fff8e5cffffff0dafffbe9d1fff1e0c8ffeddac2fff5e1cbfff0ddc8fff2e0cbfff3e1cafff7e4cdfff1ddc9ffedd9c6fff1dec8ffeedcc7fff9e6d1ffead6bfffebd7bfffe1cfb9ffe7d4bdffe8d5c0ffe5d4bdffe6d2bbffd9c8b5ffe0ceb9ffdfccb8ffdfcbb5ffdfcab3ffdac6b0ffd2c1abffd0bfabffc6b6a2ffc8b7a2ffc8b6a4ffc1af9dffd0bca5ffc8b49dffbba894ffbeac98f5b27e78efa12f3be40b0404de0b0303d5180608e42b0e0f6c2f2e2e8d524a3aa143424023664a192a7a5c1e2d8969212a856521298f6e232a9572222d9774242fdcac3028fac4331fe2b22f1dd2a62e1ab087242ca8893e188a6c1a1e775e1f384d3f1f512e291c2d503e142e41321130362b185d47423bff8c806fff918472ff938675ff938474ff8e7f70ff918272ff8e7f6eff8e7e6eff867869ff867968ff918170534149465c565e59573e4d494c414e4c543c48475536434358394645553744445e3a43445136404046363f3d253239343c38414049454b4737131513300f1210250d100d56161a18731a1c1c752326245d020302ff6d5e52ff817162ff867868ff7d6f60ff7d6e5fff766858ff776858ff6e6054ff695b4eff756656ff736455ff746757ff746757ff6e6355ff6c60533a231c131c513a102359401135211b10ff65594dff605549ff60554aff5d5348ff5d5348ff63584bff5e5247ff62554aff5e5247ff574d42ff5e5247ff5f5347ff5a5045ff564c41ff574d41ff574d42ff554c41ff554c42ff594e43ff5e5346ff625648ff5a5043ff51473bff54483cff574b3fff564c40ff4d4239ff4c4338ff4f453bff52493eff50473bff584c3fff51473bff4e4438ff4c4338ff574c3fff473c34ff53493cff4c4238ff4b4137ff4c4238ff4b4036ff473f34ff453c31ff4a4136ff463e33ff483e34ff473e33ff443b31ff443b31ff40382dff443b31ff453c32ff453b31ff40382fff41382eff463d32ff493f35ff463c32ff413930ff3d362cff3e362dff3e372dff645749ff665b4cff63594aff65594aff695d4eff6c5f51ff675b4dff716355ff706355ff695c50ff75675aff756858ff726558ff7f7262ff827362ff786a5eff7f7263ff7f7364ff897c70ff8b7e70ff8d8072ff928474ff968978ffa29482ffa19380ffa69884ffa99987ffafa08fffb5a591ffb2a18fffb6a593ffbead9affbdac99ffbead9bffc5b6a5ffc7b8a5ffcfc0b0ffcfc0acffcabaa9ffd0beacffcfc0afffd4c3b2ffcabba8ffd0bfadffd6c6b3ffe1d1bcffd9c8b4ffe5d8c2ffead8bfffead8bfffe4d4bbffe3d2beffebd9c2ffebdac4ffe4d4bfffe4d3beffdcccb8ffe8d7c2ffe3d2bdffdecdb8fff0d9c2fff9e3c9fff4dfc9fff5e0cbfff5e3ccfffbe7cefff6e0c9188d6b1c2e252521312b282122987423fff3e0caffe5d2beffd1bda7fffef4ddfffce8d2fff9e4cefffef2dcfff2e0cbffefddc6ffeedcc5ffdbcab5ffead7befff1dec6fff9e6cfffefdac3fff3e0c8ffeedbc4ffeedbc4ffeddac2ffe4d2b9fff1dec6fff0dcc6ffe4d1bdffdccab5ffe2d1bbffcebeacffd8c6b4ffe0ccb7ffe0cbb7ffd7c1abffd4bfaaffd2c0a9ffccbaa7ffcdbcabffc1b09fffcfbca9ffc9b6a4ffbcaa98ffbfad99ffc6b29dffb7a694ffb8a594dc683737df2c0b0ee021080bdc300c10e2210b0d632d2b2d7825221997131415a80d0e0fa90c0d0e76221e163a211808413b2e144b6d5b303ca58e59128c6a2215c7992f2fd1a33e2ae1aa2c26c3932c3a9478420852401f195541182a3128134025201323050402280000002d5945152e4a3812322e261599544e47ff8c7e6fff8e7f6fff8e806fff8d806fff8a7c6dff7d7061ff857868ff877a6944364038826166694f44524d56414f4d5c424e4d663c484653364340553845425b3b4546533b45446d46504f32353e3a31343c373838413f4b4b53513513161424171a1843191c1b40161816461c1e1c521c1e1b34020302ff756959ff7a6a5bff7f7061ff847465ff75685aff847565ff776858ff766958ff7b6c5cff766858ff786959ff6c5f51ff746758ff6d6053ff685e501b17130e9542341d225a4011255b4112ff65594cff62574aff63574bff605448ff605549ff63584dff61564aff62574cff5e5347ff5d5247ff615549ff574d43ff594e43ff564d41ff54493fff594f44ff5a4f44ff554a3fff554d41ff584d40ff574d3fff554b3eff52483cff594e41ff51483cff4e4439ff50463bff50463cff4e443aff494035ff4c4237ff52473bff504639ff50473bff4f463aff4f463aff4f4539ff4e4338ff4b4237ff4c4237ff4c4338ff4a4135ff483f34ff4a4036ff4d4338ff493f34ff453c31ff4a4136ff473e33ff473e33ff423930ff453c31ff443a30ff493f36ff41392fff40382fff40372de33c352de53b352e631f24236f232a2984303635ad53565cff615445ff605547ff665b4dff5d5143ff675b4bff685b4cff675b4dff6d6153ff746759ff65594dff706253ff726456ff746658ff796b5dff7d6e5eff75675aff776a5bff786b5eff7f7265ff827465ff8a7c6eff928475ff988979ff9a8c7bff9f917fffa89a85ffae9e8bffad9e8cffb9a895ffb6a692ffb5a593ffbcac99ffbead9affbdac9affc4b5a3ffcbbbabffc3b3a0ffcdbfacffcfc0b1ffcdbdabffc6b7a6ffc7b7a7ffc7b8a5ffcbbba8ffd0c0adffd5c6b2ffdcceb8ffe3d4bcffe0d1b9ffe9d8c0ffe7d5beffe4d3bcffe5d5bdfff0e0caffe3d2bbffdbcbb7ffe3d2bdffebd9c4fff7e7d0ffebd7c3ffe2cfbaffe6d1bcfff2dcc7fff5e0cbfff4dfc9fff9e6cdfff0ddc619936e1c2167511f3f322d2346393125fff4dec8fff3dec9ffc3b29bffecd9c2fff2dec6fff0ddc6fff6e2cbfff7e3ccffe9d7c1ffeedbc3ffefdcc4ffead8c0ffecd9c0ffe8d6bfffe7d5bfffe3d2bdffe9d6c0ffe5d3bdffe6d2bcfff1dbc5fff4dec8ffe1cfbaffddcab6ffe1cebaffdecbb7ffd8c6b3ffd9c6b5ffd4bfaeffdec9b3ffd5c0abffd6c0acffc7b2a1ffd0bda9ffd0beaaffcbb9a6ffc8b6a3ffcbb7a4ffc5b19effc5b19dffc7b49effbfad9affb9a896ffbdab9affbaa997d9724e49da41141840684e19349c7a2534af8628368b6a27575d4a259c222122881a1612820705039d000000a90000003d0000002e4e3b18195d461819d9a83215ca972720cf9c2922b8903207725519184837101640300e19261d081b110e0520010100253b2e0f2a624a17305a45172f41320f2f2b2519ab716551ff897c6bff908171ff8d7e6dff8c7e6dff887a6a46313c395f4049425446504c5f46504f5b485553583845425b3845435a3744415838444258384441593a4444664753534448514d343f4842593e48403b3f444037131413441a1c1b5c191c1b4f1c201e29171917321d1e1a23020202b952483dff7a6c5cff7f7161ff7a6c5cff817362ff776a5bff766758ff736555ff695c4eff716354ff6c5e50ff6b5e51ff716556ff6c6153ff7266581d251c0d331e1b1620573e11245e4313ff625649ff62574aff62574aff605549ff5a4f43ff5f5449ff5d5248ff5c5246ff5f5549ff5e5449ff594e43ff584e43ff52493fff594e43ff564c41ff574c41ff5b5044ff5a5043ff5d5245ff5a5043ff5b5043ff574c3fff574d40ff554b3fff554b3eff52483cff51473dff4e443aff51473cff534a3eff4d4339ff50463aff51463bff51473cff50463bff51473bff504639ff4d4337ff4a4136ff4a4136ff4b4135ff494034ff484034ff4a4035ff4b4136ff4e453aff473e33ff4a4135ff463d31ff463d32ff423930ff41392fff433a30b7322f2b682a2f306a2d343560343d3ba75a5e62a7585f63713a444463353f3e5935413e83485051ff635546ff5b5043ff63574aff645849ff625647ff645748ff64584aff67594eff6b5f52ff706454ff706455ff736455ff746656ff7b6d5cff7c6e60ff7c6e60ff766a5cff7a6e60ff7d7163ff7e7162ff867769ff928274ff928374ff958676ff9d8e7dffa79984ffa79784ffa39482ffb3a391ffb5a690ffb1a391ffb1a292ffbaaa97ffbbab98ffbcab9affbeae9cffbfae9dffc6b8a6ffc0b1a0ffc0b09effc3b3a1ffc5b7a3ffbfb09effcfc0adffcabaa6ffd5c4b0ffcfbfa8ffe1d1b9ffe8d6c1ffdfceb8ffe0ccb6ffe0ceb8ffe4d3bdffe3d2bbffe4d3bcffdfcfbaffe1cfb9ffe6d3beffe7d4c0ffe6d2beffedd9c5ffe7d2bbffe7d3c0fff1dbc7ffefdac3fff2dec7ffeedac0158b671b20957022273b32202a29231ffff8e3ccfff7e3cdffd4c1acfffdead3ffefdbc4fff1dcc4fff0dbc4ffedd9c3ffeddac2ffeed9c2ffe7d4beffe0cfb9ffe5d3bbffe3d1b9ffe7d4bdffe9d8c0ffead7c1ffe3d1bbffedd9c3ffead5c1ffeedac6ffe3cebbffe1cdb8ffe4d0bcffdbc7b4ffd6c4b1ffe0cdbaffd8c3b1ffdcc6b2ffd6bfabffd8c2aeffcfbba7ffcfb9a5ffd2beaaffd0bdaaffcdbba8ffc9b6a3ffc8b4a0ffc7b49dffb8a692ffc1af9bffb7a594ffc1ae9dffb7a695118161222687671e33b78f2b2fc3962e29bc912d33b991342db98c3225ad7e3039907333318f73352b816730675655531c432a141c5037183a644f2d19e5a92d20e3ab2e14c18d2416b98c2a0874581b104a3710103b2c0b10251c0714130e033b2027243f383d3442393b303a3c3e2e3437382c2e29312a402f362e272a2f2923262d253d2b322a30283028222b332c4e323c366e5b65615d44504f50495453593b4645573b46445a3845435d364440663945435e384442623c44416f454e4d896f77796c65706d78525a54785d666151191d1b2f1a1d1c431b1e1d524a4a3f2e403c301d755922207c5a1f287d5b2130815c2131805b242d815b242f7f5d21327c5b2135805d202d7a5a1e2f79591d5f785d2960775d2861765c2761755b28ff64594cff665b4e32392b10251c1710222e220f215e4412ff615649ff605649ff5f5448ff605548ff5c5245ff5b5045ff594e43ff584e43ff574e43ff5a5045ff584d41ff5a4f43ff574c40ff554a3fff554b40ff584e42ff564b40ff584e41ff564c3fff5b5044ff564b3fff574b40ff594d42ff52483cff53483cff544a3dff4f453aff51463aff52483dff534a3eff4d4338ff4e453aff4d4338ff4e4439ff4f4539ff554b3eff4d4337ff4c4235ff4b4236ff494034ff463d32ff483f33ff4a4034ff483e33ff494034ff494033ff463c32ff483e33c139342f892f33306c3136388944494f8d434b4d763d44476a39414283464f4f8b424c4e7d3e474a61333d3c512f3c385e323d3b5b303c395d2d3b36ff5e5245ff5c5043ff605549ff5c5145ff65594cff615548ff675a4cff65594bff615549ff675c4fff71675aff6f6356ff746859ff776a5bff675c4eff7d7162ff736859ff786d5dff796d5eff7f7364ff877868ff948472ff948574ff998a7aff968877ff9a8e7affaa9a86ffa49683ffa79885ffaea18dffab9d8affb0a28effb5a492ffc9b6a4ffc0b09dffc8b7a5ffc3b4a3ffc3b4a2ffbdad9bffc1b29fffccbdaaffc5b5a5ffc6b6a4ffcabaa7ffc8b9a4ffd8c7b1ffd4c7b0ffd7c6afffe0d1baffdacab5ffd1c1adffdeccb7ffddcab5ffe5d2bbffdfcdb9ffe1ceb7ffe4d2bbffdecdb8ffe3d0bbffecdac3ffecd7beffeed9bfffecd8c0fff0dec7fff6e4cdfff7e4ccfffee8cf0f46361619926c1e30a0782a3b2f2822ffe6d1bdfff0dcc7ffc7b6a2ffeddac5ffeed9c3ffedd7c1fffae5cdfff7e4cbffead7c0ffe7d3bdffebd7c1ffe0cfb8ffe4d2b9ffe9d6bdffdccab4ffebd8bfffebd7c0ffead6c0ffd2bfadffe5d1bdffead4bfffe3cebaffe6d1bbffe5d0bbffead7c4ffd6c1afffd6c3b1ffd6c3afffead4bdffd9c3b0ffd7c1adffd6c0abffd3bfabffd7c3afffc6b4a1ffd4c2afffd2bea9ffcbb8a2ffc2af99ffc4b09dffc2af9dffbeac9af7beac981d5c46192a9f7b262cbc8e2d2bc5972f33c0963534d1a23932b3872d2da078291776571f2d4a361c4b5141274b2b302d342f3632302e352e2b2b322c2b282e2a2f2931302e2f3832272831282e2a322a312d332e3129312e2f28302d2e28322c3028302b342832303428322d382a332d3e2c36332a272f2935282f292b272c272d292f2963404642332c332c3c32373246474d486d696f6a56424e4d57424e4d573f4a49533b46445b394643513945444d3643405d3744425336413e5634413b4632403a41394339584a504a4a4448441e313630201214121b1115172d554d362a48474437534e39199a732921b07e2525b8842926ae7d2b23aa782a29a8782d28af7d3026a8762d2eb2832c32b6882b2cb4892a2ead873130ad85322eb1862932b28b2c33ad882d78554a381c573e10291b160f26201a0e254a3612ff63584bff5d5346ff5c5145ff63584bff605348ff5e5347ff5a4f45ff5d5448ff594f44ff574c40ff584e41ff5a5045ff564c41ff574c40ff554b40ff594e42ff574d41ff534a3eff5e5245ff5c5246ff52473dff554b40ff594e43ff52473cff584c40ff53483cff54493cff52473bff52493dff51473cff51473cff51463aff4e4437ff4f4539ff4a4237ff51483cff4f463aff4d4338ff4f4439ff4e4339ff4e443aff4a4036ff4d4338f8463c31c83e3b3494404546955258606f373e406e373e3fbb5e646f77383f427a3b41457e41494c65323b395d2e3937562f3b38552f3b385b303c3956323d3c562d3b3762313c3a61313c3a6236413eff645749ff5d5142ff5c5245ff584d3fff625549ff655749ff675a4aff685a4bff685a4bff6a5d4fff706456ff6d6154ff6c6053ff6f6255ff776a5dff776b5aff7e7262ff807264ff7f7162ff817364ff857667ff847566ff867869ff8a7e70ff968977ffa19180ff9e907dffa19480ffa3927effa89b87ffa79886ffb5a693ffb2a290ffb2a290ffc0af9dffbead9affc0b09dffbfb09fffb6a595ffc1b09fffcabca9ffc4b4a3ffc6b8a4ffccbea9ffcebcaaffc4b5a1ffcbbda7ffc8b8a5ffd1c1abffd7c5afffd7c4afffe0cfbaffd9c8b4ffd3c5b0ffd6c9b4ffdeceb6ffd6c3afffdbc7b2ffdecab4ffe4cfb7fff7e4c7fff4e0c6ffebd7c1ffe9d6bffffbebd4fff8e6d0ffffebd20e3227132174571e1e9b742148876b30ffe9d6c0ffedd7c1ffbba895ffebd7c3ffe2ceb8ffe7d3bdffe4d1bcffe9d6c1ffead5beffe6d2baffe0cfb7ffe0ceb6ffe8d5bcffead6beffe5d1bbffefdbc5ffe7d3beffebd8c4ffe2ceb9ffdfcbb7ffe9d4c0ffe2cdbaffead5bfffddcab7ffe2cebcffdecbb9ffdcc8b5ffd7c3aeffd4c0abffd9c4adffc2af9dffd9c5b1ffcab6a3ffd4c1adffc6b3a2ffc9b6a4ffcebaa6ffcdbba7ffcdbda9ffc3af9cffc7b4a287b698681d664d1828a37d2629c7992d28c091302cc1903943866a375839413f46323b373a2c332e4e313b3659333b393e2b332d4d2e37333b2a332e2f27302a3f2b3330552e37354b2f39363c2a34303929322d3228312c28272e293628312c3928312d3a29332e3329312c492b3634452c353143303835432e3936382d363248323935372f332f3b292f2958383c354c2b3530283338345d464f495744514c593c4c4756455050583c48475b3b4848653b4745543b4646473945435a3c474638353e391f3139332c333b342c323a3224363a313b3c443a304548443d1619172a423c2b374f4e4322886835189c691d3a82622e21b6812520b684231faa7a2523af7e2724aa782822a7752a29b0802d32ba8e2c30b4882b2db3872b29a67d272eb4872a2eb087292da97e262baf832b459c7e313e7a61242e3b2b0d2520190e2c281f0fff605649ff5c5145ff605649ff5c5246ff5e5247ff5e5246ff5a5044ff5a4f43ff594f43ff594e42ff5b4f44ff5b5245ff54493eff554c3fff574d41ff554a40ff564c41ff52483dff50463cff53493dff54493dff554a3eff564c41ff4f453bff52493eff52493dff53493cff4e4339ff50463bff514639ff574c3fff54493cff514639ff4e453aff54493dff574e42ff4f453aff51463aff4e4438ff53483cd5443d378731353875333a3a6e3137389e454a4f67323a3a803b42457d3c4345863c4144853f45487e3d4346803a464964343c3b5c323c3b54323d3b503842415333403d5136423f553743415f3643405f37444258424e4c62505a5aff5f5344ff605446ff584c40ff5b4f43ff605246ff615446ff615547ff645649ff66584bff716353ff6b5f52ff6c6052ff6b6053ff6e6355ff77695bff756758ff756657ff7a6c5dff827465ff827465ff847465ff897a6aff8f806fff8f8071ff9a8b7bff9c8d7dff9f8f7effa99985ffab9b89ffa79987ffab9d8affa79886ffb1a190ffae9f8dffb6a493ffbfae9cffbfae9cffc0b09fffc2b1a0ffc0b09effbaab99ffc4b5a3ffc6b6a2ffc5b6a3ffc8b8a5ffc5b6a2ffc9baa7ffccbca7ffcebeabffd0c0acffcdbfabffd7c6b3ffd0c0adffc8b9a6ffd2c3afffddcdb7ffddcab4ffe3d0bbffe0ccb7ffedd8c2ffe1cdb4fff0dcc2ffecd8c1ffedd9c2fffce8cffff6e4cefffdead315322a191724201721906d212d9f7827ffd8c5b1ffd6c3afffb09f8cffdcc7b2ffdec9b3ffdcc9b3ffe6d4beffdeccb7ffe6d2bbffdecab4ffe0cdb7ffe9d5bcffe3d0baffebd8c1ffe7d4befff2dec7ffefdac5ffecd7c2ffe2cebaffe6d1bdffebd5c1ffe1cab7ffddc7b5ffdbc7b4ffd4c3afffdac6b2ffd1bfacffd4c2aeffd8c4aeffdbc6b0ffd1bda9ffd0beaaffcdbaa6ffc8b6a3ffcab7a5ffcab6a5ffcebaa8ffcdbaa7ffcdbaa7ffc7b4a079a3885f1f73551a2ab6892a32d9aa3132b78f3c3d967a464f2c37325c2f3937542f3a36462f37374b2f3936412d38322f2c332d3a2a332d562e3934442c3431572e383659303b37552f3a36452b352f4328352e2e28312c3828312c2d272f293128302c4329332f492b342f412d36334f313938472d36344d2f3734482e36324c3139364e333a373c29312a452c342d753c3f3a592d3531312e37315e4e59584d3f4d485a4954545b3c47465f3c494a653b484a5a3b48483d37433f3b39453f4437433e4739423b223139312c323b32202d362d2431383129343a3421414740231014101d8d6f373c82704f1fc78f2d21ae7d2e22c6882622d7932b26d0992c22cc912c22b780291fb77d2b21cc90322fdba13a32ca993c2ecb973828c592352aba8c332fbc8a3635cb9b352dbf902b2eba8f2b33b38d2e3182651e33261b072043310f1c271d0dff5f5548ff5e5346ff5c5145ff5a4f44ff564c40ff5d5145ff5a5044ff5f5347ff5a4f44ff5a4f44ff584e41ff554b3fff594e42ff52483cff554a3fff50463bff554b3fff554b3fff52483cff544a3fff51473cff51483dff52473dff4f453bff4c4239ff50463cff544a3fff4f4439ff53493dff554b3eff53493dff54493cff554a3dff54493dff52483bff544a3dff574c41ff51473ba5363531812f3437862e3335742f36379640484c8638404279383f42602e37376431393860323b3b66363f3e663841405e38414162374342683945446e4b565763455050664c585a6d535d5d6b4c565757414d4b7951585a503e4a4b4d46505158515b5cff5c5142ff5f5345ff5b4e42ff564a40ff5a4e43ff5c5041ff605447ff66574aff695b4cff766656ff6e6052ff685c4eff6a5e51ff6f6456ff817263ff7a6b5cff7c6d5dff7e7160ff7f7264ff837566ff867868ff867867ff8d7e6dff958473ffa09382ff988979ff9c8c7cffa29382ffab9b89ffae9f8dffb1a28fffaea08dffac9b8affad9e8bffab9d8effb4a493ffccbaa8ffbead9bffb7a795ffbdaf9affbfaf9cffc5b5a1ffc4b5a0ffbfb09dffc7b9a4ffc3b4a0ffd0c0acffbfb29cffc9b8a5ffc9baa6ffc4b6a2ffc3b3a0ffd3c2afffc4b3a2ffc7b5a4ffe0ceb9ffd7c2acffe3cfb9ffe0cbb5ffe0cdb6fff0dcc8ffe5cfb9fffdead3ffe9d5befffdead3fff8e5cefff5e1cb795c51362527241d222d271c30a17825ffddc8b2ffe3cfb7ffb19d89ffe1cbb4ffdbc7b4ffecd7c1ffefdac4ffe9d4beffe5d1bbffe8d3bcffe0cdb7ffe7d4bbffeedac2ffe9d5bfffe9d5bfffe4d1baffecd7c0ffdfccb5ffdac6b3ffe7d2bdffe1ccb7ffdac5b1ffd6c1afffd8c4b2ffd8c3b2ffdac6b2ffe0ccb8ffdbc7b4ffdac6b2ffd6c1adffcdbaa5ffcbb9a6ffd0beaaffc9b6a4ffcab6a3ffccb9a7ffcdbaa9ffcbb8a6ffcebba7ffc0ae992573541c28b5882a2dd9a53165937c5a31af863a3f2a342e402d3532412e3733532f3836512f3936412e3a32482f3933532d38345d2e3934582e3834472b342d5e2f3a36602e3836432b3632322c332c2c2a312b402d362f402c352f462c36314b2a3531432c3630492e3734502f38354d31393759333d3b6637423f5c333a38593c4141542d373367343d3a59313932813d454556303b36454350495744504c56434f4c503d4747553a4544503a4441673c494a3a394340303540393e39453f3f36423d232f3a31152a332a232d362d30333b33162a312a212e342e16353b33180f100d1667533415af7e2a20c6922d1fc98d2e21c6882822d699291cb8832821cd942d2fb486301fb5842f1ec68f3028d69f3730cf9c362cc8953320af782d20a5722828cd953339c798372bc997322dd4a02f3aaf8d393e3e321142261c07215d43112031250eff63574aff5d5346ff5f5447ff594e43ff594f42ff554c41ff594e43ff5d5146ff5b5044ff53493eff574d41ff564c40ff594f42ff51473bff51473cff52483dff53493dff50453bff4f463aff52483eff4e453bff51483dff4f453bff4f453bff493f35ff51473cff564c40ff4f4438ff51463aff51463aff4f4538ff544a3eff51453aff564c40ff5a4f42ff584d427a23272675262a2b742b30326b2b31326b2a31316e2c33336d2e36366e31383969363f3f5136403f653b454552384242533a45444f3744415438454288686c706d54595c56354540653d4b486d414d4d5f344545553c49484d424d4d5e4b5255866f7079503c49475a5e6368ff625549ff5a4e42ff584b3eff594d3fff5d4f41ff625446ff66584aff63564aff635649ff65574aff67594cff6c5f51ff6e6254ff746659ff6b5e50ff756659ff76685aff76695bff7c6f61ff7e7162ff877968ff928677ff8c7d6dff9b8c7cff9c8c7cff9b8c7cffa39281ffa59382ffa19381ffa1927fffa19281ffa29381ffb3a391ffb6a694ffb1a18fffb0a08fffc3b19fffaf9f8dffc4b6a4ffb1a18fffb1a18fffc6b5a1ffc1b09cffbeaf9cffbeae9affb7a591ffc3b29dffc5b5a1ffc8b7a3ffc5b5a1ffc6b6a3ffccbca8ffd9c7b4ffd6c5b1ffd7c5b0ffdac7b3ffd7c4aeffddc8b1ffddc8b1ffe4d0b8ffe6d3bdffe5d5bdffe2d1bcffe8d8c1fff3dec8ffefdbc4ffe6d2ba1c8e68212240351d272c271d2e463a1fffe2cdb5ffe3ceb6ffbdaa96ffe8d3bdffe6d2bdffe5d1bfffe8d6c1ffe5d4bfffe4d1bbffe6d2bcffe0ccb7ffead6bfffe5d2bcffe5d1bbffe4d0baffdbc9b2ffdecbb4ffe3cdb7ffd8c4b0ffdcc7b2ffddc8b4ffddc9b6ffd6c4b1ffdac7b5ffd0beadffcebcaaffd0beacffcfbba9ffd5c2aeffd7c4b1ffc9b4a4ffc7b3a2ffc5b2a0ffc8b5a3ffc4b19fffcab5a4ffcbb7a5ffcbb7a3ecc6b29a208362242ecb992f2bddac335b907d54433b3b2f3b28322e2f2b312d4d2e383555313a3653333d39412c3630412e3834382d352f412c3531472d3732492e3836552e373354303b375b313d384b313b3742313b364c323c3749343e3946353e385038423d48444a447d4e54534f3b44414f3e48474e3e49475543504c645057594a414a4458444c4d855059578c5c66643c343d3b7c4b54514634403a463d4b4659414e4c8c606b6f6c444f5151374341533844434e3643413d363f3a2e343d362e323c35212e363020313831213137313a323d35272d37301a2b352c31313931213c4138110e100c1b79613116c08a2a21ce9a2e22d2993020cd922a25d1992b20c28d2e25d39d3429cb983526c693341fc792332dd19d362fd39f342fcd99352acf9a312dd69f332acf993026c18d3029cc952f2dd49e3137bd973634362d0e441a1407385e441222573f11ff5f5446ff5b5044ff5e5347ff62564aff5d5246ff5d5145ff594e43ff615549ff584e42ff52483dff53493dff53493eff554a3eff54483dff50463bff4f4439ff4d4237ff51463aff544a3fff4e443aff4e453bff52483eff52483eff544a40ff4c4338ff51473bff52473dff4e4438ff51473aff54483cff564b3eff51473cff50463aff52483dff54493d631c2121702227276e292f2f6b2e34346131383960343e3e6837424468404749623a45435f38454273404b4b56374240513a434361404b4a523846424b343f3e5535413f563742415d3848425f3f4c488046515766434d4e764e5658573f4a49583e4b495b3d494b4f3e4a485d575c62ff897a69ff8a7a6aff877666ff6b5c4dff655647ff5f5145ff665849ff655749ff665849ff67594aff635549ff65584bff685b4dff726355ff706255ff746857ff706456ff736759ff746759ff7c6e5fff867869ff918273ff887868ff948475ff958675ff9d8b7dff998978ff978978ffa59581ffa79886ff9d8e7eff9e8e7cffafa191ffb0a08effb6a691ffb5a591ffb4a592ffb9a997ffb6a693ffbfb19fffbfaf9cffcebca9ffc4b4a0ffc2b19effc8b8a3ffbdad96ffc5b39fffc2b09cffc0b29cffc6b6a1ffcab9a5ffd1c0acffccbba4ffcbbaa6ffdccbb5ffe4d0b9ffdecbb6ffe3ceb9ffe3cdb8ffe6d0b9ffdeccb5ffddc9b3ffe5d4beffe5d4beffe6d5c0ffe9d3bdffead4bd1f926a1d28997322252a261d2a2c261dffe3cfbaffe0cab5ffb7a694ffe5d1beffe1cebcffe3cfbbffe4d1beffe1cdbaffdfccb6ffddcab5ffdfccb7ffe8d4beffdccab5ffe0cdb7ffe0ccb6ffdeccb7ffd6c4afffddc8b3ffd5c0adffd9c3b0ffd5c0afffd6c3b1ffd7c3b2ffd2bfaeffcfbeacffcebba9ffd7c3afffcebba8ffd9c4b1ffd9c5b2ffd9c6b2ffc9b4a2ffcab6a3ffcdb9a6ffcdb9a7ffc4af9effc2ad9affcdb9a5209474322dc7992f2ce5b13128d8a737414948342c2a322d4b323a363c333d3852424a455f4c5650553f4d49473f4a4444394742463b47423c39453e4d3a45423e38463d3a38433b4e3d4842583d48434f3d47434d3d4640423c453f413c45404b3d47424e3f47436a494e4956414a436348504f5b40494a513f49486d4a52545d3c4642573a464458444b4947474e4b3536403e4c3c46425e434c4a3b323e3a3e3b4845926670778d5e676f62414d4e5c3a4544533845435736423f34323b36242e38332230372f2431392f212f382f2f39413a263039302c363d331b343a3332383d37253c43391a10120e1a8f6e30259a773825dda43026dea63426d19c2b25d89d2d23c895302dd9a4352dd29f3425c8963424d09c322cd4a13030d5a33334dca9332fd4a4363ac097323cba933430cb9a362dd4a43033ca9b3232b7912e50453a1b3e2e230a13755617157b5917197c5a161f7e5d171d7a59161b7855151b7756141c755414277b5a172a7759182c7357188b3f34258d55472d8d66542f8f7b67398c6d593284775a398e8a703d498e713360998048627d6a3f379e7d3dff51473bff4f453bff52483dff4b4136ff4e4439ff52483cff53493dff50463bff53483dff53473bff504539ff52483bff544a3eff53493e681c20216d252c2e6633373a6b333b3c652e39375e2e393661303c3959313d3b6137414154313c3a4c313d3851323f3b5634403d5a3743424d343f3e4f34413e583744435d3842425d3945445f3847415e434e4d704c555667485352644751516d50585a66535b5e625f65696a686f73918f9195ff8d7e6eff867767ff8a7b69ff8a7b6aff8f7f6cff8b7b6bff6f6052ff625345ff625346ff625347ff63564aff64574aff64574aff6a5d4eff6a5c4fff746759ff6e6053ff6e6153ff756758ff7c6c5eff847463ff8c7c6cff8c7c6cff928071ff91806eff958373ff9a8a79ffa69584ffaa9986ffa49583ffa59685ffa69785ffa59785ffad9d8dffb3a393ffb6a594ffb6a796ffb7a696ffc2b09dffbfaf9dffc7b7a4ffd2c2adffcab9a5ffc2b29effc1af9bffc2b19dffbeaf9cffc6b7a3ffc6b6a3ffc8b7a4ffd2c2afffd6c5b2ffd0c0acffcbbba7ffd3c2aeffd9c7b4ffdac6b2ffdcc7b2ffe1ceb8ffdfcbb6ffd7c4adffdac4afffe6d3baffe3d1baffe9d7c2fff0dbc3ffe2ccb62c785b2220946e21228867202e382e1effdbcab2ffd6c4afffb2a391ffe2cfbcffccbba9ffe3d1bcffe2d0bbffe0ceb8ffddccb7ffe2d0bcffe2cfbcffdecbb5ffe2cfb9ffdfcdb6ffd9c8b2ffe0cfbaffd4c2afffd3c1adffdbc5b1ffdbc5b2ffddc8b5ffd3bfaeffd3c1afffdbc8b6ffd6c3b1ffd0bdacffd3c0adffd6c3b1ffcfbdaaffd0bcaaffd7c3b0ffccb8a7ffcab7a4ffd2beabffd6c2b0ffccb9a6ffc6b3a01aa17c322abc902c2be3b0342ad5a533464b4d3b413d453f37414a4748434f49493d4a455544504c5e43504d50414e493e404b453d404b46383e46404e4047413237403a3a35443e52484f4b433d423d6e49524f593f4947453d443f4e404b456b454e4c75535a594f3f48434c3b423d73454c48564b53535c454f4f5a454e4f6f4c5355603e47475a424c4c5d3d47444a3e47434e3e46434b36413e4b35423e4333403b5a45555075454f4f563b46445f3b4645613945435d3a45444836403d3c303d361c2c352b1f2d352c1c2b342b1d2d362d2e303b30222d362d3f4d524c507478723d44473f2744473d1711120f17c08d2c1ac2912d29daa73329e8af2f29e1a73029e5aa3028dfa5322de0ac2e2ddea7302ddca4322adda42c26cf9a2c28d19a303cd5a83a34e1b03530dcad3130dcac322ecd9e2f2bdaa9322fd5a53133caa13431493a105428200e1baf842d16a57b1f19ab7f201db3822121b386241dac7e1f1eae7f1f416b592e2d9675263b9a772d2c9873272489661f2b130f052742310f2c7e5e1f2b977425389978302fb68c314e8d7137569d7f424d9378404ca78543ff53483dff554a40ff554a40ff4e453aff52493dff51473cff554b41ff53483dff54493dff574c40ff54483dff504539ff55493d88292b2c59242a2b56262c2d50272e2e602e3636562d36355a2e38375c3039394f3039395836404055343f3e4c343f3e5836403f5234403d5937413f5039413f543d48455f49525069575d5b535c63647586888c90a4a2ad8eacabb69a9c9da68f85858d876968708b515157634043466d3234359a302f36ff867666ff877868ff897a6aff897a6bff857667ff8a7a69ff8c7c6dff8a7969ff8a7a6aff706254ff65574cff685b4fff665a4cff6a5d4fff6c5f51ff706255ff736557ff706254ff7c6e60ff837466ff837465ff867667ff8d7d6eff918172ff998a7aff998978ff9b8c7bffa1907fffad9c87ffa79784ffa39483ffa49784ffab9b89ffb2a392ffbfae9effafa090ffc0b09cffc7b6a5ffbeac9affc0af9dffc0b09effd2c2b0ffcbb9a6ffc9b9a6ffbead9affc5b4a0ffbfae9cffc2b5a0ffc5b6a4ffc5b5a3ffd0c0abffcfbeaaffcebea8ffd4c3afffd4c3afffd4c3afffdac7b1ffd7c3aeffdac8b3ffd6c2adffddc8b2ffddc9b3ffd7c5b0ffdbc9b3ffe5d1bdffe9d6bfffe5d1bc1d29241f389c76252e9f782226634e20ffe0ccb5ffdcc9b1ffb2a18dffd9c6b2ffe2cebbffe3d0bcffe0cdb9ffd6c2adffdbc9b3ffe7d2beffe2ceb9ffdfccb7ffe1cfbbffe4d0bcffe6d2bfffe7d4c1ffe4d1bdffd2bfabffd6c3afffd6c3b0ffd7c5b1ffd2c0adffd9c5b3ffd6c3b1ffd0bfacffcfbdabffd8c5b0ffd1beaaffd4c1aeffd6c2afffd5c2afffd2bfacffcbb7a4ffcfbca9ffc8b6a3ffc9b7a2ffbeab9a2889671e2edca93226e3ad3434e0b1424536413c2f38423c3b3c443e443d494439424c48604854544c3d4846644a5454644a5454684d54536346514c5b424c473b3b463f685b64605c4953504e3d463e523e4a454f3c4741593e4a426b4f575392666b687353585971515a58573d46407e565b5c644b5455563d4b475e444e50533e47466947505062485151674b5655754d5857694c5756624d57586950595b71424a4b633c48485f3e48475d3a45455b38464565384643603c4746523a45444c37413e39333c3321313a312a323a3229333c3339343e343e384038555f645e46494e4923343d342b3e42371710120e16c7932c24bf902e40bc953a35d8a73a2dedb33428e7ac3125d0992d2ce1ab2d27dca22d2bdea63129dba32b31c593312cdba53330e0ae3234e0b03444ba96333ad6ab3a45be983d33c89d3259b696492fcda23431493a104944330e1ac594291cb684261ec290281bbb8b2713a4782421ba8a2b27c4942f1fa9832d28a07a2e3082683c21a580294c816c3f23150f05193e270f2779581b357e5f2848826733579a7f4931a07c2838bc94365588703c4f745d2cff50463bff554b3fff584d41ff564c40ff51473dff4d4238ff52493dff584c40ff51463bff4f4539ff53483cff51463a752425236a2228294d21272650242b2a43252c2a4d29302e5a2d34345d3038385d3942426f444b4b6c4750505f4d55556c696f72927f84885b75787b596c706e6155565653393d3d613033345a2325264e1f2123411f222267303536392329283722282837272c2b452c302e35272e2c3631363331272d285b4a4d51ff897969ff837362ff8a7b6cff877769ff8a7b6dff908070ff918272ff907f6eff857667ff87786aff8a7b6cff837466ff685b4eff6c5f50ff6b5d4fff726557ff756759ff75685aff7e7062ff7b6e60ff7a6d60ff847567ff857667ff887a6cff887b6eff968777ff9b8c7affa1917effa1917fffa79682ffa49484ffa79686ffa59683ffae9f8effb3a392ffb7a795ffc6b5a1ffc3b1a0ffc1af9dffc4b1a0ffc1b09effc9b9a6ffc2b29fffcabaa8ffc8b8a6ffbcac99ffcabca6ffc0b19effc3b4a2ffc8b8a4ffc5b5a0ffd0bea9ffc4b39fffc3b1a1ffcfbcabffd8c7b2ffd0bfabffc5b3a0ffd9c5b0ffdcc8b2ffd9c6afffddc7b3ffdecab4ffe8d5beffdfccb7ffdecbb6ffd7c4b01b342b1a5c494333259f772128a27a26ffd0beabffd4c3afffae9e8bffd9c6b0ffe3d0bbffdfccb7ffd8c5b1ffdcc8b3ffdecbb6ffdfccb7ffd8c4b0ffddcab6ffdecbb8ffe7d3beffdcc8b4ffe7d3bfffdfcab8ffcfbda9ffd1bfabffd8c5b1ffcfbdaaffd0bfabffd3c0adffd4c1aeffd0bda8ffd2c0abffcdbba6ffccb8a3ffcfbba6ffd5c2adffcfbca6ffcebca7ffc5b39fffcbb9a5ffc7b6a1ffbcab98158b6a2c2ac9992f2ae5ad362debb63b4e3e48423336403a3f3a47404b414a48393d484358535e5d785f686c795961655f4e59585f515c5c614f59586b515d5d654d5958694f59596a485353644853526546505064465051634650505b444f4f57434d4c573f4a4a533d49485f444e4d6846505064414c4b6a424c4c714750505f414c4b5b414d4b613f4949583e4948593b46455c3c4847583a47475a3e48475b3b4545583f4b495e3c49495f3b47475c3b4746653b4848643945445b3743414a323f3943353f3741353f36283038301e2d352d122931292330362d423f443e1f383e3414282f283e454845142e332c1d10131019d39c2f30b4893427e9ae2f29e6ad2f27e5aa3029e6ac2f22d39e2e2ce5b02e26dfa32d2adda62c20ca972b30dca83835dcad3335e3af3332e1ae352fe3af353dd0a53a31dfad3130dcad3046bd983e4f8e784335463912443a2a0c15b2832518b783220d9d711d1bb6872721c2932d23c08f2c23bb8b2c1baa7e2925b48a2d1ca47b25338f6e333b94764026120e041a271a0a246e451d455d4b304f79643f735a554d6d7564477f6960543ba27e344b5e51408315120fff564b3eff51473bff4d4337ff52473dff53493eff534a3eff4e4539ff52483cff504539ff53483bff4f443855191e1d56202626422026262f1b20222d1c22233a242a2d413035388d6f70759672747a845152568748474c6f282c2f5323252442202422352125243c2127273c2128263022282636242a293225292640272e2e4c303637582e333543282f2f6a3b3c404f2c323354313938733a424262313638835051557e494d50ff867667ff8a7968ff897a6aff837363ff847566ff897a6bff8b7c6dff887a6aff857769ff8b7e6fff8a7c6cff8d7e6fff948575ff948474ff716455ff685c4eff695c4dff6d5f51ff736557ff756658ff847567ff817363ff877969ff8c7d6dff8c7e6eff97897aff9d8d79ff958674ff9c8d7cff9f907fffa29482ffa69685ffa69986ffb19f8dffb9aa97ffb2a28fffbcab97ffc5b39effbaaa96ffbaa996ffbdac99ffbfae99ffc2b5a0ffd1c0a9ffcebca6ffc6b5a1ffcbbaa4ffc6b5a0ffc2b2a0ffc4b3a2ffccbba8ffcfbca7ffcab9a7ffcbbba9ffc4b3a2ffc2b39fffd3c2acffd1bfa8ffd1bfa9ffd6c6b1ffd4c4aeffdac7b1ffdfcab4ffe0ccb5ffd7c4b0ffe0ccb5ffd8c8b24b44371e28372f212875591f26a27a24ffd4c3afffac9d8bffaa9a88ffdac8b3ffc7b7a3ffdbc9b4ffd9c5b2ffe4cfbaffe2cdb8ffe5d0bcffdcc8b4ffdfccb8ffddc9b7ffddc9b6ffddc9b6ffe0cbb8ffe1cebaffd6c3afffd0beabffd8c6b3ffd0beabffd0beaaffcebda9ffcdbca8ffd2c1acffd0bea9ffd2c0abffc9b6a1ffc8b5a1ffcbb7a3ffc9b6a1ffc2af9affc5b19cffc4b19bffbead98bba0917c2081601d2ad4a33226e1ac392ae2af3d5c4f575566535c5e64545f605b48565462505a5c664f5c5a59475352684d56575246504d4d3f4b495d424f4e66404d4c533b49454f3b47454936413f573b46465237434057384642543745414735433f5a3c4b464f3a4744754c545672474f5168414c4b71414b4c70474f4f61404a4b613d484868424d4d5f404a4a553c454562414b4b673e4948693d47475b3e48485b3b45455e3c4545613f49495d3c4848653c4949583c4747503b45444f36413c46343f384a3540382e333b333b353f3531333e3412293029192c30292e3b3e351940433a1b32352e14272c27293d3f3b221215121bd6a13024d19a3027e2aa2f23dea72d25dba52d25dea92d23daa22c2be5ae2e2ce7af2d36d7a6392dd8a42f36e8b23635e3b13338e4b23533e1ae342ae0ae332fe1b1322ee5b32e36bf992e3dc9a43d598771452f41350e4f35260b13ab7c2114a4771e14af7c2118aa7c2518a77b241aa67b2423be8c2d19a2792415956f221d9f7827228063261e8c6c2b2e0a0703541c191454353231583f3e4045444442564a494854474846574b504e474a4d4b24614b2b6114110fff52483dff51453aff53493eff52493dff51473bff52483dff594e41ff52473a632726255226252616161a1f19181d2618171c2518191e26191b21291b1f242f1c2127311c20242d191f222b181e242a141d2128171d222c1b1f262f1b242c341821262e151c24281820242c16191f26181c242b2321282e492a33304a303a3851373e3d52384140472c38346038414052343d3c6e454a4e63353d3d7b5157596f45494d865a5c60ff867768ff857567ff877767ff857767ff8a7b6cff8a7d6cff847566ff8d8070ff8a7c6dff8b7c6eff8c7d70ff918373ff908172ff908071ff988878ff9b8a7aff8c7d6eff76695aff6f6355ff7d7061ff766958ff807262ff87796aff847768ff8a7d6dff8d8273ff968978ff978775ff998978ff978877ff998b7affa89887ffad9d8cffa59884ffb5a493ffbcab99ffbfae9cffbbab96ffbdac9affc0b19dffc5b6a1ffcabaa6ffc3b3a1ffc6b6a3ffb8a896ffcab7a2ffc3b3a0ffc9b7a3ffccbba5ffd1c0aaffcebca9ffc3b09effcebaa9ffcdbaa7ffd3bfabffc2b4a1ffccbba9ffd2c0acffcbbaa8ffd7c5b0ffd4c0adffddc9b4ffd6c2adffd1beaaffd6c4afffd3c1adffdac7b224956e202e30291d2b3d311c2a916c25ffcdbca9ffc8baa5ffb0a08dffe1ccb9ffd1beadffd7c5b0ffe2cfbbffdac6b3ffe7d2bdffdfc9b5ffe2ceb9ffddcab6ffe4d0bbffdccab5ffdbc8b5ffdcc8b4ffe1cebbffd6c4b2ffc9b8a6ffd9c5b1ffd3c0adffcabaa6ffd2c1aeffd2c1afffcfbcaaffd8c5b1ffd0beabffd2bfabffd2bea9ffceb9a6ffcab7a3ffc4b19effc4b39effc3b39effc4b39f187f652b25b18a2926e0ab323dd4a64e2fc79a355d44514f6647545355465250503f4b4a68515c5c5b4d5958574853535e4753525b4e56585246514e5a3e4b4964444f4d4c3a4844493947434b3842424f35403f553c464652364240603c4a46613c49464d3a48455a404c4964414d4b4d3e4848583e4a495f3d484768424c4c633c4747613a45445e3a46445f3b4747643d47466d454d4e5f414b4b743d47476f414b4a75454d4e643c46462b333e353f37413b4838433d4a36433c4c3945444e3844416038444140353f363a363f362f353f3649353f3a1d2e372e292f362d15282e272644473f2b393d34272d352c233a3f372413141319c2943226c997341dd0962d1ed0992d24d6a02d25daa32d21d99e2e2be8af2d2ae5ad2c29dfa72c2de4a82e31e8b43335e7b33634e2b13533e0ae362de1af3231e2b23332e0af3134d5a9352fdcae31548a77454127220e51392a0d19b5862517a67a2420c4932a1db5882720bc8a2b22bf8e2b24bc8f2b26bf8f2a23b3882624b88a29296c56232f83683a1b0a0a081e1919161c2725221b2829242032312c2033322d2635383326363b362263553121624d242c17150e401d201f471b1f1f5a1d21215d1c2121651e23245e1d2122651e22247424292a7f262a2d7124292a6a2025266f222629642024247024282871242727662326236d272a264d1f241f272f353f1f2c3341192a313a16282e371d2f36431f2b353f17232d3618262e38192c33401528303b182f374415292f3a15282f3a43373f435b444b4952474e4d543e484248384341533742406e454c4f5e3d43445e424e4d764d5756664f5959ff817263ff817264ff7f7160ff807162ff897969ff8b7d6dff8d7c6bff887a6aff827466ff867869ff8a7b6dff8d7f71ff85776aff86776aff938474ff948375ffa08e80ff9c8d7dffa49483ff837667ff7d6f61ff7c6d5eff817263ff87796aff8e8070ff8f8171ff968777ff968777ff968978ff9c8c7cff978978ff9d8e7dffa29382ffab9c89ffb4a591ffb3a490ffb5a592ffbfae9bffbaaa96ffbeaf99ffc0b09cffbfaf9cffc5b5a1ffc0b29dffc0af9dffcdbba6ffc9baa6ffcbbba6ffd2bfa9ffd2c0aaffcbb9a4ffc5b39fffccb9a5ffd0bfaaffc9b8a3ffc9baa6ffc4b3a0ffcab9a3ffcdbda7ffe4d1b9ffd9c5b0ffd7c2aeffd4c1adffd6c3afffd3bfacffd4c1adffd7c5b11e98711f296b511e2c392e1c2f46381dffc9baa6ffd2c0acffae9d8cffd1bdacffddcab7ffcdbba9ffd3c0adffd4c0aeffd6c3aeffd3c0adffd4c1aeffddcbb9ffe0ccb9ffe5d1bdffdecab6ffe4cfbbffead5c2ffd6c4b2ffcebba9ffd4c1adffccbba8ffcebcaaffd7c4b1ffd3c2aeffccbca7ffc2b19fffd0bcaaffcdb9a5ffd0bba6ffd0bca8ffd1bfabffc7b5a2ffccbba7ffcdbaa7f4c7b4a01d765a1b27d4a22f29d8a53934efbb46369a7a336543514f533f4a4a564652504c45504d493f4b4b5c4d57595f495554604e5659564a53515e4a52505b474e51543d4846503c46434c38433f44333e3a573946425135423f623a484354384641623e49475f404c4a6f44504e6c424d4c60414a4b613f494867414c4c653f4a49653f4949663f4a496b424d4c68434c4d6e4853536a495353724c5456784e59597a525a5b724f58596f4c54552b3239322d323c3236343e352131383131363e3638353e3640363f38523640382d333b3428333c333e333c363c353e351c2a322912262d26243d423b1f333630112c2f27102d30251711130f13b6862b1bc38e271fd69c2d1bce972926daa72d25d9a62e26e3ac312eeab2332be5ac2f2be0a92b32d8a6312fe9ae3334e4b33735e6b33932e3b0383ad5a83b32e2b13834dfaf3930deaf322fdfaf3358907a46494a3d194d2c200a17b3832317a4782322c594291bb588251fbf8e2628ce9a2a21b78c2724ae812a1cac78261ba77a231fa57a252585672c121c201b2220231e2d1e221e3c20252031222522653c3e3c532e322e5f393d39261e241e2f21272348272d2b3020272640242b2a53272d2d57272e2f682931326e30393a8a3e454b853a40466a363d3f572a313250292f2f602f33376b303839652e363666353a3d3c2c322c3a2c322d392d342c3e2d352d1d252b25292b333015292f391331323f122d323f19333b471827353f1828313e16272f3c15242d3817262f3915232d37131e293164454e4e624e555453424b4a553d47465c3e4a487d49545678535b5e724f555b52404847625a5e5dff867767ff857665ff887868ff857465ff867665ff837564ff867766ff8c7d6dff847566ff897b6dff8e7f71ff8f8173ff8b7c6eff8c7e6fff918273ff958576ff958576ff938675ff9a8b7bff988979ffa49383ff958474ff7f7061ff877969ff8d7e6fff8f8271ff928474ff908272ff918473ff958777ff9f9180ff9e907fffa09181ffab9d89ffb3a48fffad9d89ffb2a38fffbfaf9affb7a894ffb4a590ffc0b19cffc4b7a3ffbbad9bffc1b3a1ffc2b29fffbfaf9dffc6b7a2ffccbaa5ffd2bea8ffcbb9a4ffccbaa4ffd1bda8ffcdbba6ffc5b4a0ffc5b49fffb9a997ffc1b19dffbeaf9affc7b7a1ffd4c2abffcfbda7ffcbb7a3ffd1bfabffccbba7ffd6c3b0ffd3c1adffd3c3ae2297711f289e762125604a1d2143351affc9b9a6ffd0bea9ffaf9e8bffd8c5b0ffcdbaa6ffd3c0abffd2bea9ffd1bfaaffd6c2adffd2bda8ffd5c1abffd8c3b0ffd7c5b1ffe8d5c2ffd4c1afffdec9b6ffd4c1afffd5c2b1ffd2bfacffcebba8ffcebdaaffcfbca9ffd7c4b2ffc5b4a3ffb8a797ff59514aff554d47ffcfbda9ffcab7a3ffccb9a4ffd6c2aeffc8b5a3ffc7b5a1ffd2c0aa7c95846824a982252cebb8374cd9b15a35c0953422a37f2a6242504e5a424d4d4e4b5451504c5553595b615c686d7472757378786f7a807e7d878c8c818b9090a79a9ca0a99a9ea55c36383b663a3e3f67393d3f6b3e41436940444666424546624548485f474a4b5f4b4e4e694f5151705052544c212323451315154713161547141716481417164e1418174d1417174c1418174e1418174e1417174f1417165214171657151816541518164b14181734333d3336323e352f323c342c323a323837403745374139683843405538443e5137443b45363f3729333a324b3640383a3139321e2e352d25353b332a44483f1e32352d0e33342c0c11120e12b587291acd952824dfa32f28e4ac3222d4a12d29e2ac3324dda6312de6b4342adea7302be2ad302de1ab2e2ee1ae3134e8b23634e5b23834e2b03a38e2b13a36e1b23836ddb23b34deb03933dcac386a8f7e52384136125b3f2f0c18b5872319b381261ec4922a22c6952b25d19b2b28ce992921b88a241a9f752118ab7a2223be8b2625b888282e9c7c32182d352c1a2f372e2030373036373c373a3c433c453d443e66505655755c6264533c45445337423f553943415b394242583a43445f3e4548583a43435a3b4544834e545a81505862764d596194616a79694a5156623d4748733d47478f47505485464c52703f494a534046412f353d352a30383039343d3433303930232f352e2d2f383315292d36162a313e182f3641182935441627303d17272e3c121e283415252f39132029351320283671545c5d5e4c54554f444e486c4e5352543945444e3944434e3b46444d38434251404f4b493e4b48ff837463ff807261ff847463ff827362ff827362ff857665ff80705fff897968ff88796aff897a6aff8a7b6dff8b7d6dff918070ff8e7f6fff8b7c6eff928372ff978978ff948676ff9a8b7cffa49583ffa39281ffab9887ffad9b8affa59280ff887868ff8a7c6cff897a6bff857768ff8c7f6dff958777ffa09481ffa59885ffa69886ffb0a08effac9c88ffa89986ffaa9c89ffb1a18dffb4a794ffb2a390ffac9d8affb5a390ffb4a797ffc1b19fffb7a896ffc1b19dffc5b39effc3b19cffc8b6a2ffc5b4a0ffcabaa5ffb6a695ffc8b6a1ffc7b5a0ffbead9affcab7a2ffbead98ffc4b29effc4b19cffd1bfa7ffcab8a2ffcfbdaaffcbbaa6ffc9b8a5ffcabaa6ffd0bfacffcdbda7233a2d152c9f7921279d75202a54421bffd4c4b2ffd3c2aeffaf9d8dffd1bfacffdac7b3ffd1bfa9ffe2d0b8ffc5b5a0ffd1bda9ffd9c3aeffd7c1adffdbc6b2ffd8c5b1ffdecbb6ffdcc9b6ffdfcab8ffcdbba9ffcab7a7ff85796eff353130ff252222ff080708ff1f1d1cff343232ff070707ff060606ff232020ff2e2c2eff1c1b1bff0c0b0bff010101ff191716ffc0ae9bffc1b09c219f834032d5a73230f7c03b3ffac45238af882f2cbf932f5a17191a6d1a1b1c6a202425641b1f1f5d171b1b5a161a1a5b161a195f161a1a61171b1b5c151a19561518195414181853141818551418185715181956151819571519195716191a57161a1a5516191a511519194d1418184a14171747131716451317164513171643121715411216143d121514391215133a1215133d1215134012151440121514441316154d13161652141617551316172d313b312b323b3135343d334c39443a4d37453d5839453f5638433f44364138473741373d323c33513740384f343f3644363f372830382f223739350e3135290b31322b0d2d2f291910121014a87c2616be8a2720d79d2e22c9972e20d7a12e27dca83227e3ae332ae7b13227dea42e2be3ae322be1ad2e31e1b13236e3b43934e5b73831e1ae3a33e3b03834e0b03636ddb03736e1b13d36ddaf3a6e77694a772c291b4034270b13aa7b221dba8c2516a9802319b186261fbd8d261eb98b251caf812317a179200f8b641921b6882525b1872649917946152e372e28323a321e30383035383e392c383e3838363e373b353d3857484f514f3942414d3642415c3742415639424262424b4a73404b4e58394242623b4344703f494c7e464d52704a545b72444a54704750598659606856333d3c59333d3b753d44477b424a4d7c4b4b4c2e2d382d4b353e3544353d333d323b322f2e372e3a2f382f14282c381427303b18303a44172c333d1728313c15222a341321273414222b38111b2333131d2837553745415735453f50364241563944425b3743415435433f573644404a32403b4c36414055364241ff7e6f60ff7f7161ff867767ff837262ff7f6e5eff847464ff847465ff857666ff827364ff91806eff897a6bff887a6aff8a7b6cff867869ff877a6bff8e8071ff908173ff928374ff928574ffa49483ffa49382ffa69584ffaa9886ffae9c88ffb2a490ffb5a692ff9e907eff8a7c6eff918374ff958877ff968979ff988b7aff9f907dffa89a87ffa39785ffa49584ffa19383ffa89987ffafa191ffaea08effb6a996ffb6a897ffb5a594ffc2b3a1ffae9f8cffc0b1a0ffb7a895ffc2b19fffcab9a4ffc4b4a0ffcdbaa8ffcabaa8ffcdbda6ffc6b5a2ffc0ae9dffbeaf9cffb9a997ffc2b39fffc9baa5ffc5b5a1ffcbbaa6ffcab9a5ffc2b19fffc7b6a2ffcebda9ffd2c0abffd3c1ad2d362e1b4f634e20389f7722288c6920ffd8c6b2ffd3c0adffb2a18effd6c3aeffd1bfabffd3c1acffdccab4ffcdbca6ffcebca5ffd5c0aaffd9c5b0ffd5c0abffd1bdaaffcebaa7ff867a70ff201e1fff1a1817ff171717ff1c1a1cff332f2fff0f0e0eff080708ff282524ff272425ff010101ff080708ff1d1b1bff252324ff221f20ff0b0b0bff010101ff050404ff080808ff020202ff0d0c0c805554546f2b2d2e7d20222251352f1936d7a63640111313721315167a1517196c14171871141718641114146f141618550f1212540d10104f0a0c0c56161a195c181b1c5c14181857141718571417185714171857151717551417175314171651131716501316164f1216154f1216154e1215154c121515491215144a1215144a131514471316144614161348151713491517134a1517134f1315145212151450111413561114135a0e1010353342333f3b453b3e3943393b3741383a3742365f38443e5a34423d5937433e523a453b55394439473640364e353e365a35413a292d352e2432372f295051460a2528201832342b2a1415111c61502d17bf892819c9922c1cce982c1fd09c3125e3ab3524dfa63223d9a1301fd69e2d2ce6ae3027e0a9302de3b13333deaf3738e0b23f39eab53932e5b43934e4b43833e0af3735dfaf3c35dcb04087776c533b4537143f35280b10966f1e1ec28f2724ce992b20c8952a22c5942824ca962923c291261ba87c2014986f1d20b0872326b48a2a29816a2e112b322b242f362f303239323c363d38553f4543493e45425038413d4e363f3f53363f3e4e353f3d5a35414056353e3d593740405534423f603941447541484b6239454774464d537a444c52573740419e58606b6b40484b5b343e3e65303b3aa251585f7f3d4546563a433d3b363e3647313b31532f3a334b303b33332d362d3a2f382f13222b3413262e33152833411d323d501729303d111d232d101d242f14202a39121f263413212a355437434153384642523846425c3947435d3946445a35433f5535423d5235423d583946435a384643ff7d6e5eff7d6f61ff867767ff7d6e60ff807161ff807061ff827364ff847463ff847562ff847564ff837464ff857666ff87796aff8a7d6eff8f8072ff8f8273ff908174ff9a8a7bff968677ff9f8f7eff978777ffa1907dffaa9987ffa99987ffb09e8dffb4a390ffbead9affb6a491ffa99986ff918473ff948775ff9d8e7cffa19181ff9d8f7dff9e9281ff9f907fffa39482ffab9e8bffa89a89ffa99a87ffaf9f8dffb9a997ffb0a18fffbbad9effae9e8dffb2a391ffb4a493ffbda999ffc4b3a0ffc6b6a3ffc2b29fffc4b2a0ffc2ae9bffbcac99ffb2a190ffbcab9affbaab96ffc3b4a0ffc9b9a4ffcab9a4ffc8b6a1ffd1c1acffc8b6a1ffccbaa5ffd4c2afffcab8a5ffc2b09d673c33202c2622172c7d5e1f2a8a681fffcdbaa7ffccb9a5ffb1a18effcebdaaffcab6a3ffd3c0aaffd0bea7ffcab9a4ffd6c1acffd2beaaffcfbca8ffb5a595ff292624ff2e2927ff221e1eff1f1e1eff1b1817ff1b1918ff1d1a1cff282524ff000000ff131111ff1e1c1cff262324ff171515c61b1b1d140b0e11ffc8b6a3ffa79788ff766b5fff100e0eff090909ff080708ff020202ff000000ff0808087e393939881e201f5111121037ecb83d4521201a600d0e0d750d0f0f7114161753151718640b0d0d5a0e10104e0d0e0f410c0d0d4a0d0f0f4e0e10108918191c3e43381d275c4d281e5a4a251a564721225f52252f51492e37423f3050383938483335334e35342e57343736542e2f30453c392f4347412d364f44252837301c312f2b2048353026283f361e2440351a2c3e321b1c21211a281b201d2c1b201e371d2322650000003e3b403a423b443c32343d343d364136483843385338453e4f36433c5337413d5236423a503741384c3741384c343d3642323d3432303a312630372e2731372c2831342a24363a302917181213765e2d20dea23213c08c291bcf972b20d79f321ed6a13220dca13425e1a63228e6ac322de9b13221d99e302ee7af3232e2b33a34e3b43c37e8b53d34e4b53b34e0b33934e1b43836e0af3a35ddb03e718b7a563c352c0f333c2c0b15b082241cc18f2922d19d2e23ca972b22cb9a2824c7962921be902713946e1f1baa802122b588242cc09428625c523a102c322c31313b3140353e3649373f3a4c353e3d5236403f5b37424057353f3f57353e3d53343e3d52343f3e5834403f51333f3d5235403f55343d3d52363e3e5237414054343e3d5e3a4243613c434573404a4d6b38414393555c65935459636c374040843d474779424a455240463f4b303b324f313b3347303a313f30392f332d342d12252934184348531a3641551a313b4d182a313f131f272f101e232c111d2732111d2631121d2733643b4847623a48455c38474360394743653a4845643844425e394744663c4847593b48465a394443ff7b6d5eff7f7162ff7b6e5fff7c6e5fff7e6f60ff817161ff7c6d5fff837363ff817161ff877767ff857566ff88796aff857669ff86786bff8b7e6fff8d7e6fff89796aff908172ff928374ff938575ff948575ff9a8a78ffa2937fffae9e8affaf9d8cffb0a08cffb2a28fffb09e8bffb4a692ffb8a896ffb9a995ffa1917fff998a78ff988a79ff968877ff9b8d7cffa49583ffa59685ffac9d8cffa99a85ffab9b89ffb1a38fffbcac99ffaa9c8affbaa898ffae9e8fffa99a89ffb7a595ffc6b5a2ffc5b4a1ffc7b7a3ffbaaa98ffb9a795ffbcac99ffb9a896ffbdab97ffbdab96ffc3b2a0ffc8b7a4ffc3b29fffc4b29effc8b6a2ffc4b39fffc1af9dffc0af9dffc3b29dffb8a6942985631e25221f192129221926906b1effd3c1acffc7b4a1ffac9b89ffcebcabffc3b19fffd0bda9ffccb9a6ffcbb8a4ffd8c4b1ffd6c2aeffd1bdaaff282525ff252322ff211c1cff1d1b1bff1d1a1aff141313ff0b0a0bff110f0fff242222ff352f2eff2c2626ff211e1fff2a2626ff1f1d1da0232527130b0d0fffcab9a5ffc4b29effccb9a5ffc7b4a0ffc3b39eff9e9081ff1e1b19ff0a0808ff0706069f383a3b9420232246090a0933f8bf3d43f9c74b33dbac324875642e4b2d36342fa37f2b3196752b2abb912d34b791373fa8863a41917a3d825c5d5f5081724e2db18e3d22ce9d351dbf923022c79b2f2fdeb23726b5903230b48f342cc194302fad8b352caa88323c9e813d25a7812e2ba683282ea481292c8e6f263a7d66266a675c453472592325785c1d236f531a24664b1a2d5d471a32332a161e533d15203f2e0e2237290d35353d33242e372d3b3841383e38423740364137433642394b37443b252f39302f323c312d31383131333a32162b3127303138303a303a322d3036301e30362d373c3f373a4b4e43271918130f8e6e2d1ecc983715bf8d2916c68f2821d39d3120d7a33224e0a8352beaad3527e5ab322deab03319cb942b2be0ab312de2b0383ad9ae4836e6b63c34e4b53a44caa43f34deb23836e1b23936dbae3d8275685173221e133a43320d15b688251cc2902820ca97291ebc8d261dbe8f261fbc8f2523c494271db4882220bd8f2421b68a2832ae862a7058544e0f2c322b2f30393035323b343d353d395036403e5d394342653a44435d36414257343e3e52343f3d56333f3d57343e3e5634404057343e3e5935404055353f3e5635403f55333e3d4e333d3c54353f3d54343f3c50353f3e55343e3e6a3841427a40474a7d3f4746604048434d3a3f3a45303a3249333c333c2f372f322d362d2a2b332b173440481c38405b1224283819323e4e15293340111d252f111e2632101e2430111c252c46303a3f633c4947643e4a495c3a4744623947436339474460374642623a47445a3847434f3846435b394544ff756658ff7e7061ff7a6d5dff786b5cff7a6e5eff7f7160ff847462ff827061ff7e6d5fff867667ff867667ff857566ff87786bff837466ff847566ff867766ff887768ff8f8071ff908171ff8e8173ff968677ff958675ff958677ffa09181ffaa9887ffb09d8affac9c8affac9a88ffafa08effb5a593ffbead98ffc0af9affbaaa97ff9f9180ff998b7bff968877ffa29382ffab9d89ffa79886ffab9b87ffb3a491ffa79986ffaa9c8cffaea090ffa49687ffb1a190ffac9c8bffb0a08fffc6b4a3ffc1b19fffc2b29fffb9aa97ffb6a691ffb1a18effad9d8bffb8a792ffbba893ffbaa997ffc1b09effc2b39fffc8b5a0ffcebba5ffc3b29effc0af9dffc2b4a3ffc3b2a1ffbcaa992a90681f5c5d4a292925231c322f291cffbdac9affc4b2a0ffa29180ffc7b5a3ffc9b6a5ffc5b29fffcbb8a3ffc8b6a2ffd0beaaffd8c5b0ffcfbba6ffd4bea9ff2c2726ff050505ff0c0b0bff1f1c1aff23211eff282421ff1d1a18ff1a1715ffd2beaaffc0ae9bffc4b19d2930303415282d33131a1c1f14060708ffc1b09cffbfad98ffc3b09cffc7b4a1ffc0b09dffbfae9b33d8a93f2edca834503e3b327d2d2f2f54181a194158491e2ffabf3c4ee1b45531bd962e41685c2d41353d462bffd84a24ffce442dffe84828ffd3492effda4e3fffd2592effd74b22ffc24624febd4129fec5421ddca13720ba8b372695713c34997f5240cf9f442cdca63d2ece96382bbd88312cb98330239f712821986c26217f582023815d211f724f1d31785b2130664d1b2b534016304a3a14334032123236290f2d2d230c24221a08251711051f040301263036302232383033353c34433742384837433a2c323d3338333c33272c362c3b333c3332333b334d363e3746343e3547343e386039443f3e333c3543333932545050462b59584f3b1e1d1515856b2f2bb68f3c12bf8a2721dda43229eab4371dd69e3021daa33425e4a4341cd0992d26e1a9331ad0982b29dfac322addaf3730e6b73b30dbae3a32e4b3392ee2b33731deaf3931ddae3932dcb03a668f7d533e483a19393d2f0d1ac5922624d3a02b27d9a32c21c5922524c6982721bb8e241fb5892424c1922820af81223490722c895e5c569d5d6169132d332d2a31383135353b365237403f5336403e653c4745613941415a353e3d5b333d3d4e323d3b57323d3b50343e3e5b353f4054333e3d57343d3d52343f3f5b3841405335413f4a333f3e4a333f3d5135403f5636403f59394447663e494c4c363e3e3a373f3c33303731282c352d2b2d342c302d362d353038302e2d352d332f372f12242e3712242c3513242e3d18303d4e1526334012212833111d2430111c252e121c242e54374144683e4849693f4a4a663b49476c3f4b4a6c3c4b486d3c4a476a3d4a48623a48465e3846425b3a4546ff6f6355ff76695bff786a5cff7a6c5dff7a6c5cff786b5bff7c6e5dff7b6c5fff7e6f61ff7a6959ff807061ff7b6b5cff796959ff807162ff807262ff857464ff8c7e6eff897a6cff8a7b6cff8b7c6dff928272ff8f7f71ff948576ffa39383ffa38f7effa69381ffb5a18dffab9b88ffb2a18fffb3a48fffb3a28effbcad99ffb4a593ffbdad9bffc0b09dffb2a290ffa09180ffa09380ffa59685ffa29483ffa59685ffa79987ffafa190ffa69887ffab9b8affb1a191ffac9d8dffc3b4a0ffb2a292ffb4a493ffbfae9dffbcab99ffb7a793ffb6a694ffbdad9affb5a490ffbdad98ffbdaa96ffb8a894ffbcab98ffc9b4a0ffc3af9bffbfae9cffbfaf9cffc2b19fffc9b6a4ffbdaa99278e661e2a8e691f814541342d23211bffccbaa6ffcbbaa5ffaf9e8affcfbca7ffcdb9a5ffc9b6a2ffcdbaa6ffc8b6a2ffcdbaa5ffdbc6b1ffccb9a6ffc5b19dffc9b5a2ffc3b09cffcdb9a5ffc9b7a3ffbfad9bffc2af9cffc9b5a0ffc7b39dffc4b09dffcab5a1ffc4b19dffbfad98ffbfad99ba938779ffc5b4a1ffc8b6a2ffc3af9cffc9b7a2ffbfae9affc4b39fffc4b29f17d4a2312ddea5352ad2a0314479622c5236322428876d31161a222c151e242d141a2028151c2029423f48588464605828ffd34c2dffdc4c2fffe34f32ffe55044fbd1622bffda4a2dffd5482affcb442cffc9422afdc03e28d39c3a21b98b3a29d6a33c28d9a03931dca44334d8a3402cbe8e3037a57c2f21966c2b178a602228966e262687632325825f2131775a2132674e1c305a4519314d3b152d3d2f112833270d2929200b25211908241410051e0403014c3c45392731382f443a423a433641363c333e334f39433a3f36403630323c3338353f3548343f3552353f385c38423e2f3037302d323931253037301e292f2813272c24102a2e281a13151223856d3c2cba93421ad59e3113c3902a17cd992d19d09b3116c38e2d11b6832617bd89251bca932924dca7302ce1ae3230e2b23933e3b43c2ee2b33a30e6b53c30e2b4382ee1b13730e0b03834daaf3a59846f4838483a153b46350e16c6912511b6801f1dcc982820ca9a2725cd9c2826c9992626ce9c28179e761e1e906e21449174357c5b5956955e6065122830282a30373033343c354a363e3c55353f3e55353e3d5d343f3e4f343c3a52343e3a422f3b3852343d3c58343f3f5c343f3f56333c3c56333d3c58333f3f5c343f3e593441404e36403f55343f3e6338404062374040563943435e3a44466c3f4849663c4645754f56593e383e382f2e362e332f382f3c303931322d352d2a2c342c1426303a12252c3611202a341b303b4c1728324315242c3a111f2531111d2733121f273352343f416d3f4b4a6a3e4a49623b49466f424d4d6f424e4d74414c4c703f4b4a6c3d49496a3c48476a3c4847ff6f6254ff716356ff746656ff746657ff776b5bff7a6e5eff7a6a5bff746558ff796a5cff786b5cff817161ff7f6f5fff7f705fff807160ff7c6e5eff897867ff8f7d6dff8b7b6bff877969ff8e7f70ff918273ff948475ff978777ff9d8b7affa1907fffa59580ffab9a87ffae9c8bffac9c88ffb7a590ffbbaa93ffbead98ffbfad9affbdad9bffc2b2a0ffc1b19fffc8b8a4ffc7b8a4ffa79987ffa39684ffa69886ffa69585ffad9d8bffa89787ffac9a8bffb8a896ffbead9bffbcae9cffb6a491ffbead9cffc2b2a1ffb7a794ffb8a793ffb5a493ffbfae9bffbdab95ffbdac98ffb7a695ffc0ae9bffc9b6a5ffd3beabffbbaa98ffb7a897ffb9aa98ffbeae9bffcab7a6ffc3b1a029674e1f298d671e538c6c297f3d3a33ffc6b5a4ffc7b4a2ffa79581ffc7b5a0ffc5b29effc2b09cffc2b19eff544d47ff3f3834ff1e1a1aff1c1919ff282521ff453e38ff4e453fff504741ff403a34ff48413bff5e5550ff443d37ff433c35ff524946ff312b25ff443e38ff5c534cff3e3933ff433d37ff4d453dff3e3832ff4a423bff544b44ff39342eff4e4740ff504842bd3c2f11c1443418c0554524528d7e5c141f2730162028331721293519232a341920272f171d232a193035416731383b23ffd24231ffe9472dffe0502cfec6462fffda4d2bffd04a2bffce472cffcc4327fdc13e2bffc7402afbbb3c20dea2341bc18d301fc8963937e8b5472cd5a4362ac999312dc294302eb0852b1b8a6121248f6923248460232a8360232b70551e33684f1c345a451934503d152e3e2f102730240d282b200b1e1e16071e120e041b04030135323c3232333b334038423940354138553a453a2d343e3437353e353a3640363e343e3434313b325738433d6436443f5938443d43353f3741353e361d2f342c1f292f281d3639322917171219ae893b14ac853613c7952b16bc8b2818cb992c16ca942f13c794300e9f722313ba87251ac8922825dda92f28e1ad3323d7a4332fe2b43b2fe5b23c30e3b33c32e5b5392eddaf362fe3b13834dab03a5988714a314234113948370f1ed69e2a24d69c2a13b581201dc4932621c8982927cb9a292aca9a2922b68b2d2dbe922f30a78029427e6a3f4c48464615293129303239322c3139324a353e3c6f444c4d6239434550343d3d4f343d3a3b2f3b363f2e3a3752333d3c58343e3e57333f3e52323c3b59333e3c59333e3d5a343f3e4f333f3e583540405c38414062384140603840406539434362384242a95d636d7a4f565c5c3f4543393138312f2e352e302c352c342f382f332d352d2a2d332d1529313e14222e4014262e3a1c303e50192e3a4816242f3d12202a3214232c37131f28356e3d4c486c3e49496d3f4b4b633f494a723f4c4d6e404c4c6c3f4a4a6c3c4947683b4846683e49486a3a4945ff726456ff706154ff746556ff716253ff746656ff716556ff766657ff726557ff746559ff746557ff7b6b5bff796959ff776758ff7a6c5cff827464ff827261ff7c6e5fff7c6d60ff827466ff90806fff8e7f6fff9b8c7dff9b8c7bff9d8e7dff9a8b7aff998979ffa79483ffae9b8bffb09d8affb6a493ffbcae98ffb7a48fffbba993ffbeac99ffbcac9affc4b4a1ffc1b19fffcabcaaffc9b9a4ffc2b2a0ffa59685ffa49583ffab9b8affb2a190ffaa9b89ffb6a994ffb3a291ffbeaf9fffb7a996ffbcad9bffb1a291ffb5a491ffb1a08effc1af9affb4a492ffb1a28fffb2a491ffaf9e8bffbead9bffc0ae9dffbaa999ffc1b09effc1af9dffb7a696ffc5b4a2ffc1b09fffc4b3a22c43351e217151192a8c681ee96b624dffc6b6a5ffb5a593ffa39380ffc4b29fffb1a08dffcabaa5ff433d38ff2a2525ff2a2829ff262322ff373331ff1d1a1aff161616ff1e1b1dff1f1d1dff191817ff0f0e0eff1f1b1bff070606ff1f1b1aff413b3cff070706ff191818ff383434ff0a0909ff0d0c0cff1c1917ff040404ff1c1817ff312d2fff070607ff2d292aff1d1a1aff000000ff3b3838ff1a181795a28f72162b303a172a333d1729323e1a252d391820252d181c212a1929303a453b41441bf4b9362fffe14435ffeb5533ffe4482effe04729ffd74729ffcd432dffd04226ffc13c27ffc33e2bffc13c22e7ad3629ebb33e35eeba4831dfad3c25cc972e21b7892a26ba8d2b23a9802921a17a2726997225227b5b222a825f222e71581c34674e1b31574317354c3b15343e30112f372a0d2d2c220a2c231b0927161106210d0a0324313c312e333a3338353f362d343d363838433839384138453741373f333e3533323c325438433a443741375936423b4b333d363d343d3639303a314a3741381a282e27162930291611110f1e5d58472d9e83451ad7a12f1ed79f3015c5922b14b8852a19d0992e18c08c2a1cc6932b23d59f3027dda9312adfac3328e1aa3331e0b23931e4b23a30e2b13a32e2b23831e2b23830d9a93732dcad3b5b836f49334538123543340e1ac995271cc48d2415b481211fcc982c1fcc9c2a2ad7a52a1db387241e86692c1fb8902f1d9f7a27475a4e3851494747152d342c2b30383032333a3344313c367643484953353e3d54323c3b4e313c38403139323b2f383233303a373f313b3848313c3a57343e3d54343e3d53343f404e34403f58333f3e5a343e3e6535403f6437403f6b3944466634403e6c3742439e4e586271454d4f3e2d3733432f38332c2d362d3b2e372e45353d353c303930352f372f1428323c1528363d142a303b1d324050172b38411829334514212c3714212c33131c24316b3f4a49683f4a4b70414e4e5f3c4a476b414b4b6b404c4c6b3e4a4c663a4644663b4846683d484863394744ff6d5f52ff716254ff706152ff736454ff706354ff706354ff746556ff716355ff726456ff716254ff776758ff7a6a5aff7b6c5cff77685aff7b6e5eff766858ff786b5cff786b5dff7d6f61ff867869ff847666ff8f806fff928272ff968775ff9b8c7bffa29180ffa79584ffac9a87ffb3a18dffb2a290ffb7a792ffb8a792ffb9a792ffb9a995ffbfb09bffc1b19fffc9baa7ffc6b7a3ffcab9a5ffd1bfacffd9c8b3ffcab9a6ffb0a18fffb1a08fffab9a89ffa99887ffb5a695ffb5a593ffbbac99ffbeae9cffb0a090ffb1a18fffbaa896ffbaa894ffc6b39dffbfac9affbcac9affb6a595ffb6a696ffbdad9bffbcab9affbfae9dffc6b4a0ffb8a796ffc2b09fffbdac9bffc3b4a1312b261b3327211b26815e1924826019ffc1b19cffb4a490ff938474ffb9a896ffbdab99ffbfad9aff383332ff2d2b2aff2d2827ff272220ff232223ff232021ff2c2927ff141413ff201d1fff161413ff222122ff0e0d0dff1a181aff13100fff272120ff080707ff2d292bff060505ff332f31ff090a09ff373636ff181617ff131010ff352e2eff020101ff2e2b2cff2b2726ff000000ff3d393aff2622218b9a8d73162c3a47192e3442182e35431b2b2f3d232c323c16191c2117292d3447373d462bd8a73729ffd74026ffd2412dffdf4823fcc13e23ffc74129ffcd4521f5b73e26fdc53e22f8b93924f1b1381ac48f2c25946c3225be883327d9a0332fd3a33228c3943028b88d2e22a1782626a97e282484601f238561212b8b692520664e1928674e192e584317274736122b3c2d0f2833270d2c2b220b2a1d17073116110527100c041a313a302e333b3337363f3726323d3331333d332f323d3236353e34483640363c353f354d384139443640373a35413944363f3933323a342d2e362e21293129182931282030372d171918111d8f753c3d8f784f19d49e321edda3311bd69e3117cf973017cd972d16bb8b291bc8972d1ec6922c27dea9332ae1ac3231e2b23834e5b43b32e0b23a34e2b23b33e6b43933e1b03834dfb13932dcac3958826f49314537124041310c13b2832221ce9b2814b17f2018b9892620d5a12e2cd8a72f29d2a12f1baf85252acb9a2b26bb8f291b7b622b6257524a142d342d273037302c3038303f333c374d333d3948313b3751333d3a3e2f3a3333303730272d352e1f2b322c232d342f2c2e363155333d3c4f333e3d5034414152333e3d5b3641405b353f3e6535403f683841406437414162374141623641406a3d434674414a4b46313a353a2f3731382e372e3c303930392f392f312d372e3a303730162a353f1728303e1629333d213740521b2d3947182b3441182b36421628323f152228346d404c4b69414b4c6b404b4a633b48456d3f4b4c6e3f4b4a693d48486d3d4948683d4848673d48476b3b4a49ff706254ff736253ff716152ff746556ff6e6153ff706253ff716355ff746758ff756759ff746557ff7a695aff776859ff7a6b5cff726557ff746556ff756757ff77695bff796b5dff7e6e60ff897969ff90826fff8e8170ff8b7c6bff998977ff978878ff9e8f7dff9a8c79ffa0917effa99786ffa69885ffb3a28fffae9c89ffb6a793ffb7a792ffb7a896ffbeaf9dffc2b4a1ffc3b5a2ffccbca8ffd3c2aeffd1c0aeffcfbfaeffd2c3b0ffd0c0adffb1a190ffa99a89ffa89989ffa99c89ffaa9a8affb8a897ffb3a192ffafa08fffab9c8bffb1a18fffb4a392ffc4b4a1ffb9a998ffbbab9bffb5a796ffbdad9bffb9a897ffb9a898ffb6a594ffbfad9bffbeaa9affbba897ffbaa9993544371e282924191f372c141e795819ffc4b2a1ffbaaa98ff9b8b7cffc1ae9dffb6a494ffbead99ff443f3bff36312fff222020ff24211fff232122ff1e1d1eff302e2cff151514ff181718ff403937ff131311ff373133ff0b0a0aff312928ff100e0dff292423ff1c1a1bff010101ff302e30ff090808ff3b3839ff080708ff0b0909ff362f2eff000000ff2c2828ff2f2a29ff000000ff1f1d1dff362f2ec8615a5719393e48192c313e16272c381c2d36421c282d37181c222616282c324e484d56427a662621f9be3c28ffd2442fffdb4824f8be3f28ffd14226ffcd4124fdc54122ffc3401ae0a73619d69f3324e8af381bb18b3e30e7af3c2ee0ad362dd09c322ecf9a3029c08e2d1fa0732426a67a2726886320238561222587662221664d1a2a634b192b5440152d4837132735290e2d35290e2d2c230c2b211a092b171105230f0b041e323a32202f362f27333a333f3d453d31424b4132323b322d333b3124323b3036353e3536353d3633333b353e343d3535343e39293137322732383215262d260d262c24122c3129111818142879684758967e521cd7a23423e7ae3320e1a83314c9942f1ad6a03315bd8d2920d6a32f21d39d2e29ddaa3330e5b23633e6b23635e2b33a37e3b43e30e1b23831e3b13932dfae3834ddb13831d9aa3a5688734b334537123f3f300d10a57a1e19be8b2214b584221fc4952920ce9d2a20c99b2a1eba8e2828d5a93025c4972a12926f1f1f9c76244d4f4e4e132c322c1e2d332d2a2f372f402f3a363c2f3b3545353e3952343e3a46313c372e2f372f1e2b302b282d352d282c352e393139364b343e3d58333d3c5833403f5d354141623741405c353f3e68373f3f673841415c3741415e35403f5d343f3e633a454352343d3c3d2d37323a2d362e382e372e232a312a2f2d342d23282f272a2c332c152c354215272f421729303d1c323d4c192c36481e333a52162c3443172a343f151f2b396c404b4c683e4a49673d4948643a4945693c49476f3e4b486f3f4b496c3c4847673b48466b3d49486a3c4847ff726454ff736454ff776758ff776859ff736557ff716355ff766759ff716356ff726457ff736355ff726456ff726455ff756656ff6e6153ff6b5e50ff6f6252ff77695aff7f705fff8a7b6aff8a7a68ff847667ff8b7e6fff8a7e6eff938574ff958574ff9d8c7affa0917dffa0907bffac9d88ffa69585ffa49484ffab9b89ffb2a18fffb7a794ffb6a692ffbcad99ffc1b09cffc6b39fffcbb8a4ffc7b5a0ffcdbca8ffc3b39dffcebdabffc4b6a2ffcfbda8ffccb9a4ffb2a391ffb0a08fffae9f8effae9e8cffbcaa98ffb9a896ffb09f8dffad9d8cffb3a291ffbbab98ffbbaa99ffb4a491ffb09e8cffb4a392ffbcae9affbbaa99ffb8a695ffb4a192ffb3a290ffb6a493ffb7a5943e856621352f251b1f2921131d423315ffbaa997ffbaa996ff928474ffbaa997ffbbaa97ffb2a491ffb9a996ff96887aff282524ff2d2a2aff211f20ff191718ff252322ff060606ff1c1a1cff3d3534ff090908ff2a2424ff020202ff342d2cff050505ff42393aff0b0b0bff363134ff242424ff010101ff433e40ff060506ff080706ff363336ff000000ff262223ff342e2cff000000ff161415ff37302fa6a89e921934363c121c232c121f26311721282f1a23282f1a191d2116252b303835383d447a612827fec34026ffc84226ffc3402affc9421ae3a13826ffc54224fcbf401ddb9f3324f8bc4120d8a03722e4ab381ed19e332ae5ac3729d9a2342cd7a1322ac2902f24b2802c21a0752825ad7d2a208d662323826121297e5f212c74581f3168501b2f5542172d4938142b34270d31372a0e302b210b2d20190823130e04240504012f353e361c2c352c2630393023343c343e3740372e323c3327303a3027313a312f333c342632393235353d3530323c3437303933342f393337303d37192a312a0e2429201a30342a1f1413104565665d7d78705927f0b33624e7ad3527ecaf371cdba1352ae8b33928e4ab3627dfa7351ed59a322be3ae352be4af3230e5af3333e1b13837e3b13932e1b13a2de2b1382ddcb03533ddad3a30dcac395484714a314738123d40300d15bd882719c0892313ae7d2117b2872217b98b2521cf9c2827d9a62c25d1a42c21c0942c22af86281e97742353514e51112c322c28303630312f3832362f363041343b373a343b3648343e3a3d313b36332f36322c2d352f2a30363034303a324b323c3b54333c3c5c333e3c5a333e3d56333e3d6234403f653741415e363f3f53374040563941415a37404052353e3d5a353f3e3e323b383f2f3933332d352f262a30292a2a322b0a2229221a282e2811242a2213272f3c1628333d1730343f1a303d4b1a2d3748192e3746192d3346172b354115212f3a643e4948623c4a476f414e4e683b4949683d4a49703d4b4c5e3b45456f3d494a6f3e4a496f3f49486b3c4948ff6e6153ff736354ff76695bff716455ff6c5f51ff6d5e50ff726357ff736658ff6d6051ff6f6153ff6b6053ff6f6153ff77695aff786a5aff75695bff6f6253ff726655ff80715eff867764ff857765ff887a6aff897c6cff8b7d6fff8b7f6fff948674ff9b8b7aff9a8c7affa39583ffac9d8bffa59583ffab9d8aff9f907effa29483ffa79786ffb3a08dffb9a794ffc0ae9bffc7b6a4ffc4b59fffc2b29effc2b19bffccbba4ffd1bea9ffccbca9ffd0bfa8ffcebea7ffccbda9ffd0bfaaffcbbcabffb0a28fffaea08dffb3a391ffab9c8affa89a88ffb4a493ffb9a794ffbcac99ffbba997ffb6a694ffc4b3a1ffb9a997ffbfab9affb9a694ffb7a592ffb4a390ffbaa892ffb09f8e2687651b2d7d5f192b2922141b211d12ffbbaa97ffbead9bff9c8c7cffb5a594ffad9d8dffb1a190ffa99989ffbba998ffbaaa98ffbcab97ff3c3631ff35302dff1c1b1bff181716ff1f1d1fff35302cff100f0eff2a2525ff050404ff2d2828ff060605ff3f3737ff0c0b0cff352f30ff242424ff000000ff3f3b3bff050505ff060606ff353033ff000000ff231e1fff312b2aff000000ff0e0c0eff302c2aa79c948314262b2b141c212a141b222c1b262a35171c21271615181c151f262b36282f351df6b53b1decab3a22ffbe411ff7b53c28ffc74427ffc94422fdba3e20e5a23a1febaa391ddb9f3718c089301aba832f26d7a03720cb973227ca983225c08f2f28bb8b2d21a07229219569271d8e6226166d471a187c581e20684a1a266d521c316c531e2a564118304736132d392c0e2932250d28251c09241c150826130f0529110d042c383e38192d352d1a2e362e1f3039302d343d352e353e3638363f3b20323a3333333d36233038311e30373021303731272e362e2e30393016292f2911272f2513282e251f383a312f1818154b8a826143b18d3c28f3b83826ecb23525e8ae3625e3ae352ae9b33a2eecb43c20b786281dd79b2f2be0ac332ce5af322ee0af3437e8b63835e0b13932e3b33b2fdfb3382eddb13932d9ae3930daad395a877249314537124b3d2e0d13b4832612ae7f2118bc87260ba1721b12b283222ad8a23221c8992b22c096271eb3872524bb902a26ba8e296159513c102b312b252e36303731383340323a3544323d383e333f3a3f303c3945303a34392f383134303931302f3831432f39334d323c3b5a333d3c5a333e3c5b333d3c5c353f3e61333e3d60363f3e5b343e3d56373f3f57343e3e61373f3f54333d3b55333c3b47303b374a333c3a382e37322a2b322c292d342d3430383041303830222a2f2a14253136132328321626303f1c333e4c1d3b475219303c48192a364614263239142129336c3f4a496a3d4a486e424d4c6e414c4b71404c4c733f4d4e6e3c4c4e703d4a496b3a47456b3b48466c3e4b4bff6a5e50ff6f6152ff6e6053ff6d6052ff6a5d4fff6c5e51ff6e6053ff6f6154ff6a5d51ff6d6052ff6a5f51ff6b5f51ff716356ff746758ff776a5bff736657ff837565ff827463ff857766ff807263ff887a6bff867867ff847766ff847867ff8e8070ff938474ff988a78ff9c8e7dffa0917fffa29280ffa49582ffa59683ffa49583ffb0a08bffb3a18dffb6a48fffb6a492ffc4b5a1ffc8b8a4ffcabaa5ffc9b8a2ffcabaa3ffccbda7ffcfc0acffccbeacffc3b3a0ffcabaa7ffcab9a5ffd3c4afffcfbeaaffc6b4a0ffb6a592ffb3a391ffa89a88ffb3a391ffb7a795ffbcac9affbead98ffb7a693ffbcab98ffbead9bffbfad99ffb6a491ffb6a692ffb4a491ffbaa792ffb2a18f28533f16267b5d1b257054181d1b1a15ffbba995ffbbaa96ff9e8e7effb3a292ffad9e8cffac9d8dffab9c8cffb3a494ffb4a593ffb6a592ffb5a390ffb19f8cffb7a694ffc2b09fff625950ff38322fff25201fff161414ff0f0e0dff282626ff0b0a0aff373132ff0e0d0eff282324ff232222ff050405ff3b3736ff060605ff0a090aff332f31ff000000ff1b1819ff242022af544b35867f632529e7b137759b8f7e141d212b13181f27141c2028161f2127171a1d2115131519152025296c20222420ffbf4020f5b73e20fbbb3d27fbc64328ffc74324ffc5442cffd04227ffc33f17cd983018cc933115b9872e1ab888331dbb8d331fbe8d3320b5863025b485311e9d6e29188a602a1b855e28219b6e2d1e835d231c6c4b1c1964431a1c5a3b192d6b4f1d2c5241172e44351328382a0f2a2f230c27261c0a252018081c120d052d100d051d313a311d2f372f443a453b213138312a323b332c343d34273038302e333d363b353d3829313a332b313c353b323e383e313d382f3038321d2d322c132a302910282d271135372f311919164776766343bf9b4723e1ab372af2b63826e7ab3523dfaa352eeeb73c23ddab341bad80271dd6972f23d29b2d20cf9c2d31e3b03536e4b23836e0b13934e2b23a32deb23a32dfb13831d3a83a3fcea7405b87724a2f4436123935260b0ca072200c9b6c1d0fa9771f14b5802315b8872827d6a13223cb9a2e1fc293291cae852421b1882927b588276e575044122b322d242c352f2f30383041313b373b313c3736323c3739313b373c313a3638313a313130393142313b384c323c3c4d333d3c5a333d3c62343e3d61333d3c62333e3e63343e3e65363f3f6137403f61364140603942415d3740405b3941415b353e3e412e393643303936312d352e2d2d342e232a312a2b2d352d3e3038303b2e362f12242d3611242e34122028351f333f501d313d4f1d313b4c182c3545172a343f16242c38683d4948663e49486b3d4a486b3f4b4a713f4c4d703e4b49713f4b4b6d3b49476f3d4a496b3c48476b3d4948ff50453aff6f6253ff6f6054ff6c5e51ff6e6052ff6b5e50ff6c5d4fff6f6054ff6b5e51ff6d6153ff6e6253ff6c5f52ff706355ff6f6355ff736758ff796b5cff7c6f60ff7c6f60ff7f7263ff827565ff87786aff867867ff877867ff897968ff918373ff9a8d7bff998a79ffa1927fff9e8f7dffa39381ffa39481ff9d8f7dffac9c88ffb7a690ffb3a18dffb0a08dffb8a692ffc2b29effbeaf9cffc5b4a1ffc0af98ffc4b39cffc3b39cffcbbdaaffccbeadffc6b7a6ffccbba9ffcdbeaaffd1c1acffcbbba8ffd9c8b4ffd4c2aeffd4c2afffc4b3a1ffb4a592ffb0a08cffafa08fffb9a893ffb4a490ffb7a793ffbbaa96ffb7a693ffb7a793ffb2a28fffb4a491ffbca994ffbba994201c17111f71561820805f191b4f3e16ffb4a390ffb2a28fff978877ffa09281ffb09f8fffb1a090ffae9e8effa59686ffaf9e8dffb5a28fffb29f8cffb4a18effb8a694ffb1a28fff292523ff0d0b0bff141313ff060605ff161414ff1d1918ff232122ff131111ff252224ff010001ff2c272aff02030249131516ff928476ff9e8e7dffb19f8cffaa9886ffb2a18effa794834ebf9c5127b58a2841b5944f7c686b6f5a282b2a14191c25151a1e23141a1b2015181a1c1615171a3133383c5f34312525ffc54222fec03e23ffc63d22fdbf3c1ffbbe3c28ffd34229ffcb4227fcc23d1ce5a8321ee9b0361acf9c321fdba63421daa43428a3813733ba903825c3933126c2902e22b2832d20a37a2a239e74281f8c6824238566201b6d511b2c73581d2f674e1b2c5541162546351228392c0f2c33270d262b1f0a231e16081d201709260e0b04433843382c333d332b343c331c3e40391e31373127333d33253138313d333c363b333d384e36413d4335403c46333e3a49313f3a37303a341f2b322c12272d270e242921123b3a321b151612557c7a672bd8a93a2bd9ab3d2df5bc3826e8b13526e3ad352fecb83b28e5ae361ea9792722d9a03325dea63121d49e3029dca83234e4b13a34dcaf3936e0b23a36e0af3932ddad3930d3a73b36daad3d5c8a754b323e32104c3a2a0b18c7982915ba882415b985240ea9792119c5932c24d4a03125d39e301fc0932c22b48b2e30c6953022b5892b35896b25102b2f2b1f2d342e3f333c3848353f3937313a353131393333333b342b2f3730282d342d222d342d3d32393557343f3f59343d3d5b323d3b5d313c3a61333d3c62333e3e61333e3e6438424165384140663941424f343d3d523641425939444453333c3b3b2f3734252d35323c2f38322f2e362e2329312a2c2d342d38303930252b322b14272e3813242b3414222a371f343d4c1d3038481c2d37481928303f152a334216242b35643d4848653d47476c3f4a4b643e4b496b434d4d6e434e4d713f4c4c6e404a4b603f49495b3e494869424d4cff42372bff65584bff6a5c4fff6b5e50ff705f51ff6f6053ff695c4fff675a4dff685b4eff6b5e51ff6b6153ff6e6356ff6f6356ff75685bff75685bff74675aff7d6f61ff7d7062ff7a6e60ff817364ff847566ff8e8070ff8d7d6cff897a68ff8b7b6cff918271ff948573ff968773ff988a78ff9c8e7dffa49784ff9a8b78ffa79784ffb1a28effb1a491ffa89a87ffb5a692ffbeaa96ffb6a692ffb9a793ffc5b39fffbbac97ffc4b39fffc9b9a6ffccbca8ffbbaa9affc0b19fffc4b4a1ffd1c0adffcdbca9ffcbbaa7ffd6c6b0ffcdbca6ffd9c8b3ffdac9b4ffc1b099ffb7a791ffb6a692ffb2a28fffa29183ffad9d8affbaaa98ffb8a693ffbbaa97ffb9a894ffb09e8bffa394801b1e1912152c2310217d5d18227c5e17ffbcac9affb2a592ff918272ffb09f8dffae9d8affb2a290ffac9c8affb09f8dffb3a18effb8a68fffb4a28cffb8a591ffb0a08cff2f2828ff292625ff2a2625ff221f1fff1a1717ff191819ff191718ff2d2a2aff1b1919ff0b0a0aff010101ff030303f607060613090a0cffb4a38fffb19f8bffaf9d8affaa9884ff9f8f7cffa19181ff0d0c0cff090808ff080707ff0101015d6f6e6c570a0d0c33cd9c2f28e5a9321bb8882c1b1f201f5739404418dfa23820fbbb3d22fcc13f1ffebf3923ffc83d1ffabc3d20fabf3d1bf0b7381bedb13317dba53211bc8d2b13bc872719ca952b20d49e2f19bf8c2a1fc6912a24c1912c22ba8c2c1ca67b2729ad842a2596732616826020248c6a212a846320236f531b31684f1b2e544315274333112c3b2e102e34280d2c2b220a241e1708310d0a0432070602463b463b4737433b38363e362f363f35393840362c333c3228343b345232413b5335403d4431403b4e37433e4f323f3c45333e3a47323d38212a342c212b342b202c342b1c3c3c3519151614526f6c6082827b624ec3a3552deeba3b28edb3352aeab03a2be8b43b28e5aa3d1e97682423dea83324dba53029dca7342bdfac3636e7b53b35e0b23936e3b13933deb13932dfae3933ddb03933ddae3b628c7a4d2f4436113837280b13ba8d271eb3822726d59b2c1ec891271abf8e2821d29e3121ce9b302acea1342cd3a3302cd19f3027bd912c2eb58d30112b302b272f35303b303a3440313a3831313a36262f383132333933282e362e2f3139313031383343333b3755353f3e56353e3e57323c3b5f343e3d5a313c3b63333d3d65333e3e5e343e3d61353d3d59363f3e52373f3f5e3c45455539444455353f3e39303836262d352f3d3039313b3039302328302a202b312b2c2e362e3b2e382e152a313f13242b3211283039223a415220333d511a2d3442172c3742152a2d3c16282d3d4c323d3f633a4745693d4948623c4b4c64434d4e64404c4c613f4c4b6a3f4b4a68404b4b623f4a4b663e4b4aff44382eff42372fff695c4eff695b4dff685b4dff695c4eff6b5d51ff6c5f52ff6d5f51ff685b4dff6c5f51ff6b5f52ff6e6155ff665a4eff6c6154ff706458ff736557ff76685bff76685cff7c6e61ff7d705fff807161ff867868ff8a7b6aff8e806fff928473ff978777ff978979ff968675ffa0907aff9f927fffa19381ffa49583ffa89986ffad9e8cffb0a08effaf9f8dffaa9d89ffb6a592ffb5a38effbbaa95ffb9ab98ffc6b49fffcbbba8ffbcae9bffbfaf9dffbfb1a0ffcbbba9ffcdbdaaffc1b29effcbbba5ffcfc0abffcbbba7ffd6c5b1ffc9b9a5ffae9f8bffad9f8cffb9a997ffbaaa97ffb3a491ffb4a492ffb3a391ffb4a491ffb9a894ffb3a290ffb3a291ffae9e8d1f6c50152c362b13232722122d81601affae9f8bffb1a18dff817363ffb2a18effb3a390ffb1a18fffb3a38fffb5a28effb3a08bffb8a48effb4a08bffb7a38effb2a08cff2e2728ff2c2827ff322c2cff201c1cff1f1e1eff161413ff141413ff131213ff211f1fff2c2727ff322e2eff0e0d0dff0a0909ff030202ff040404ff060505ff070606ff010101ff090808ff151414ff080808ff000000ff000000ff00000060534f50891111113d7b5d1c2ae4aa311fe8ae324b6d5a35493138382db6842d2ad69a3428dca13428e9ac3824f2ba3a24f2b83a1bdda02f21e5a3351fe3a43221c2843620e6973f2ddd9c382ae9a7352dc8953a2cbb8a3525c38d2c2fcb992d29bb8c2a29ba8b222cac7f1f2ea7821b2f9673192c906e162e836619307056122e6c54152c50410c2c47380b2f352a094a1c170a2b17110535110d05390c09042c0806023c3b423b3936403821333a332b343b3438363f363d3840381f2f362f3a303c355233403a4d303f3a3d303c3540313d3741313d3637303b331d2c342b202c352c262d362d1f2d342d2712120f506b685d6c746f6455d4ae4e2ef1bb3d29edb1362dedb73b2cecb43b2ce6ae3d1183521c28e3ab3628dea9332ee3b2392cdba83734e3b03933e0b13a32deb03a31e0ae3932e0b03931dbad3732ddac3b5e8a774c31443610393e2d0c10b384221fd0982913b6862515b98a260eac7c2228d49f3230ae873331c59b394d957d466c786c5827b98f2f209c7a29132c332c232f352f2f30373044343d3a3b323b382b3039353b333c3a2c3038301f2c312c273139313930393350333d3c54353e3f56333c3c55313d3b58323d3b5c333e3c5b333c3c54323c3b61343e3e5f394041563a42435c3b4545563a444454353e3d56363e3e55323b3a3b2c3832262d362e2f303730362f372f42323b323e2e372e172d3544142d35421628313d223a42561f333e4f1929313f192a323f1a2d34431624293b4f323c3f5f384443623c484758394643643f49496a3e4949633d4a48673e4949633b4846623c4847663e4b4bff44372cff40342aff42372bff685a4cff685a4cff695b4eff65584cff63564aff64584bff66574aff685c4dff695c4fff665b4fff665b4fff695e53ff706356ff746759ff776b5eff796c5fff7b6e60ff7e7161ff817464ff807162ff837566ff8a7c6cff8b7e6eff998b79ff9d8f7eff978977ff9c8d78ffa49581ff9d8f7effa99986ffac9d89ffae9e8cffae9f8dffb3a391ffaf9d8effb5a693ffb5a491ffb8a794ffbaa998ffbfac99ffc0b09effc0af9dffc0b09dffbdad9affc7b7a5ffc6b5a2ffc0b09dffbfb09dffcdbca5ffc8b69fffc5b5a0ffc9b9a4ffb3a491ffa49583ffad9d8bffac9c89ffb4a390ffb1a18effaa9b8affab9a87ffb4a38fffb0a08effb19f8dffb3a2902075571649674f1b2b302714262b2416ffae9f8bffb3a38eff8f7f6dffae9d89ffbaa793ffb6a693ffb6a592ffbea994ffb7a48fffb6a38dffbaa790ffb4a28dffae9d89ffb3a08bffb4a08bff7d7063ff8a7c6fff1e1b1bff161414ff0f0e0eff0e0e0eff121112ff1e1b1bff2f2d2cff242222ff0e0d0dff030303ff080808ff100f10ff100f0fff080808ff010101ff0f0e0eff0101016d8e70302ccf9e2d3db89135701d1f20497b5d21219f7a233d5e4d22434d42224c191f1d471a201e481a1e1d5f181a193130281533332a16266b4e192474551a1f76541a1d7351182074511b22704f1e3973512c337d5b2b2b8d6421426f54292a7c5c2526855f202b845f1e2b87651d247e5f18257a5917287556152a7053132d6a4f132a674e112b634b102e5e480f2855400e324c3b0f49392d15483f30143a4031132e45320f344836134f1711053a35403b3337413828323b3226343d3433333d34202d362d32333b333c303c342f313a32243037302f31393335313b363d303c3626303731202d37302b30382f212f362e494549422913120f5269686071716a53579f84472fefbd3e29edb5362eeeb73a23d9a5312ae6ab3b16b4772c2ae2ad352bdca8372ee0b13730e2b33434e2b53a31e0b13931e0b03a2fdbaa3930e1af3830d7a9382fdaad39648e7851314335113e49371018ca9c2917c793250faa7e1f1ac28f2820d8a7302bdda93220c1922c2bd4a6312fd6a52f2bcb9d2d27bc902b24a4802a142d332d29303732292e363139323a374a343e3c41323c3a3d343e3a2f303832242d352f1f2c352d24303833553a43435b343e3e61353e3e58353e3e5a36403f5a333c3c5e333d3c5e343e3d54353f3f5b343e3e5c363f3f593841405736403d5a333e3c5e343e3d57333c3b53303b39382e3933342f362f302d362d472f3a313a2d362d132c3541162e354215272f3922394557213642531b2e3645182b32441a29334716262b3a25273139613846426039474357394643603947445f3c4947623d4a48683d4948643b4746643d4847673e4c4bff41352bff3e332aff3e3329ff493f34ff695b4eff695b4dff675a4dff635649ff625649ff66574bff685b4dff625649ff63574bff65594eff665a4fff6f6254ff706355ff716456ff756758ff7c6e5fff7b6d5eff7f7162ff7d6f61ff867768ff857668ff8a7d6eff918374ff908274ff938372ff948672ff9d8e7dffa19180ffa09180ffa49584ffa99a89ffa89a8affb0a090ffb8a897ffb1a391ffb4a492ffbbaa97ffb6a795ffbcac9bffc1b09fffbeae9cffb6a694ffc1b19effc7b8a5ffbeac9bffc7b6a3ffc1b19effcab9a4ffc0ae99ffc5b5a1ffcdbea9ffbaa896ffa89986ffa99887ffb09f8bffac9a86ffaa9784ffa89989ffab9a87ffab9b88ffa49584ffab9a89ffad9c8b1a6f52151e6e4f15213a2c16221c1816ffad9d8cffa79986ff847768ffb5a490ffb2a18effb5a28fffbba895ffbfac96ffb2a08dffae9d88ffb6a48effbdaa94ffb3a28dffb5a48fffaa9a87ffaf9d8affb09f8bffaf9e8cffad9b87ffb3a08dffaf9d89ff5a4c3eff2f2923ff221f1eff2b292aff1c1a1aff000000ff020101ff000000ff0d0b0bff9f8d7affa08e7dffa69582ffa99884dab19b7934a27c2b2df0b9332fdeaa3534ddaf392aa17e253b0f111143121515471b1d1d4416181742181a1a3012161355181c1a4314191648161a183b151916421c201c431a1e1b441a1d1b46191e1b48181e1b4f191e1c4d181d1c4c181d1c4f191d1c4c181d1b4c141716471316154112161447131514571316165b1316165b1317175914171759141818571417175414171855141717571316165c1316165a131616541215154f11151450111514403d443e2f333b332a343c3431333b334b374137282f392f1e2e392e1829332b3d323f363a323e363030393230303b35292f3932293037311f2d342d30313b312431382e2130362f1810120e3b5f5c4f3ead8a3842be993e2ae7b03728e8b43827e3b03329e4ac3827c38d3213b5762b2adfaf3326d3a23230e2ad392be0ac3730e3b23a34ddae3a31dfae3b33dead3e30e0b0392cdca83630d9ac3b6d89764e324536123e4a38101acc9b2a1fd5a02813b9852312b2802426dfab3128e1af3222cb972c2ac59b3226c89a2f20b78c2b1faf87291da17c27162c332d353038363c323a3735343b393e343d3940333c3836303a37343038363f313c372f2f363140333a3557333c3c57323c3b52313c3a56313c3a54333f3f57343d3d62333e3b65343e3e66333c3c62333e3e62353f405e373f3f5b353e3e5a343d3c7a485155603a44425a323c3a392e3932322f372f2e2c352c3730382f382d352d16292f3e1329303e12252e391d36414f1f31404f1f2f3a4d182b3141192a32431723263315242a366a3b4746673b48466e3f4c4b60374541673d4a48653d4948683c494766394744643645496f444f4fff3f352bff40342bff3e342bff3d332aff584c40ff685a4cff625648ff5f5346ff615548ff65584bff66584cff635649ff64584cff65594dff6a5d50ff6c5f51ff716456ff6f6354ff706354ff736455ff796b5dff7e7062ff7c6d5fff827465ff887a6aff827567ff8d7f70ff8e7f70ff8d7e6eff928370ffa1907eff958778ff9d8f7fffa29384ffa49686ffa69889ffae9f90ffb0a090ffb2a290ffb7a795ffb4a492ffbbaa98ffc0af9effbbaa98ffbaaa97ffb9a996ffbbab98ffbdad9bffbaaa99ffbbab99ffbbad99ffc0b09bffbead9affc0b09bffc4b59fffbeac98ffab9b89ffa69584ffa99785ffad9c88ffae9b87ffa99888ffaa9a87ffa69583ffa99988ffa89a88ffad9e8c1f211a111e7154152779591626392c14ffa69685ffb09f8eff8a7b6cffaf9e8cffa69485ffb19e8bffb6a490ffb4a28dffb2a18dffb4a28effb2a18cffbaa994ffb9a893ffb1a08dffb3a18effb8a794ffb1a08effb2a18fffb09f8effa89784ffaa9887ff67594bff584b3dff574a3cff584b3dff57493cff594c3fff766859ff928270ff998875ffa2927fffaf9c88ffab9986ffbfac98ffb09d8a27ad86352bdea62c2cebb2332fffc43e2fbb8d2b36171b1a56191d1d43181b1a3d181b1b28131714301a1e1b34191c1a33181b19351a1d1b381c1f1c3a1d1f1d3c1c1f1c3a1a1d1b40191d1b43191d1c48191d1b4d191d1b4f181d1c4f181d1c51181c1c54181c1d4e181c1c47181c1c49191d1d4f191e1d52191e1e551a1e1e591a1e1e5e191e1f5e191e1e5e181e1d5e181d1c5d181d1c5c171c1b5a171c1b59171c1b5a171c1a59161c1a433d48463737413831363e36242f392f2f323c33222e392e3e333c34262f382f3a313e3639333d351d2d372d1f303831162a332b1b2d362d232f392f2a2f393021333d342f4a4e491413140f45625f5123d9a7353ba1823a556d634640b48f3d25dfac332feeb93c22a1732823e4a13a2ae0af342adcab322ee0ac382fe2af3731e0b23a35e3b13b2bdfaf392adeaf3a2be1af392ad6a33332dcae3c658a784d324234123d4535101ad09b2a17bf8b2316bb882514b4822416bb892621c9952e30dba93130d8a73425cfa13225c5992d1ca682242ab08a2d202d373544333c3a5835403f49353e3b4338403a4b363f3a3e303c383e303b3857343d3d38313a3244333c345c323c3a58323c3b55333c3d5a313b3b5f313c3a60333c3c65333c3c63323c3b66333e3d5f333d3d5934403f5a37403f5735403e5b343e3d50343f3d51343e3d55323d3a46303a343b303830443039304b323b32413039301221282d1526303a1c303c4b1b333d4a1c343f4e213542541c2d36481a2d36471928303e16202a34683a4645673a4745673846436c3c49486d3b48466d3b47466f3d494867394643693b48476c3e4c4aff3f352bff3d332aff41362dff42372dff42372dff625649ff5f5448ff5b5043ff5e5246ff5f5347ff64574bff63564aff65584cff685b4eff685b4eff665a4cff716354ff6d6052ff6f6253ff726657ff776a5dff7e7062ff817263ff7e6f61ff827464ff817466ff8a7d6cff8a7c6bff897a6aff907f6eff968877ff9c8e7dff9c8d7effa19385ffa39688ffa89a8bffa59786ffac9d8cffb0a190ffb0a291ffb0a190ffae9e8effb3a091ffbaa997ffc2af9bffb9a896ffbeaf9bffbdaf9affbdac9affc6b6a3ffb7a998ffb8aa97ffb2a594ffbdaf9cffc1b29fffc0b19effa29483ffa99a89ffae9e8dffa79785ffa99884ffac9986ffb2a08bffaa9984ffa2917effa79683ffaf9e8e20231d111a2e231122735516207a5816ff9f9180ffa29483ff7d7162ffaa9a87ffa99887ffb09f8bffad9d89ffae9d89ffb3a28effbbaa96ffb4a28dffb5a38effb1a08cffad9b87ffaa9987ffb09f8effb6a493ffad9c8bffaf9d8bffa49381ffa49482ffa69785ff998a78ff66594bff5b4e40ff594c3eff594c3fff574a3dff524638ff54483aff544739ff6c5e4dff94826dffa79581ffab998698bfa065309975262dc290282dc2963334c49a30634b575c5a48515363636a6c4a1b1f204b1b1f204b1b201f4c1c2120521e2322541f2323591f24255a1f2425541d2222531c2221531b2120511b2020511b2120521c2121531b2121541b2020581b20205b1b20205d1b2020541a1f1f511a1f1e55191e1d58191e1d5d191e1d5e171e1c59171e1b54171e1c56181d1d59191e1d59191e1d54191e1c50181e1b4b181d1a49181d194b171c194a3e45402e353d3528323b323837403731323a33293239322f30383144343f363c323e3521303830143137301d373e361d2e352e172a3329182a332a1e2d362d1526302a27383f3a180e100c3c676150319679354881704426aa8b3926e2ac351eca972d21d7a0321fb9812b29e5ac3832e7b53b28d6a6332edca83729d0a23530e3b3392fdfb33930deae392cdfae382ddfaf3831dbad3730d9ad37648a764e334335133f47371111b9882610b9822416be8e2614b685231fc7952b26d1a0302ddfad322edda9312fcfa1322ac6992f26bc902a2fb5913320303b365739424063394241673941434f35403c4f353f3b3d353f3d3c333c3952343e3a3e323b323f333b3449323c385c343d3c5b323c3c66333c3c67353e3e63333d3c66333e3e6a333f3e5a333d3c62333d3c60333e3e5b343f3e60363f3f5b37424255333d3c56333d3b432d39353f3139354430383037313831423239323e30392f182c333b162a313b182e343f1c333c4e233b485a1e34404e1b2d38491a2d364418262d3b18252b36663a47456b3e49486b3b49466d3b49466e3e49496c3c48466a3c4947683c49486a3a4a4b6b3d4b48ff3c3229ff3b3128ff3d3229ff3d3229ff40352bff3f3429ff5e5245ff5e5245ff5d5245ff63564aff615348ff615548ff62564aff685b4eff65594bff685c4eff6a5d4fff6e6153ff6e6254ff716657ff7d6e5fff7d7162ff7c6f60ff807263ff887868ff7d7062ff7b6f60ff8a7d6eff887b69ff8b7c6aff9a8877ff978677ff9b8c7cff9f9183ff9c8e7dff9d8f7fff9f9180ffa99a89ffb0a290ffa89989ffa99a8affad9f90ffb0a08effb8ab99ffb8a895ffb8a895ffb4a391ffbaaa97ffb3a492ffc1b2a0ffb6a999ffb4a798ffb7aa99ffb5a898ffc2b3a0ffbbac9bffa69684ffa29482ffa89988ffa99987ffaa9b89ffab9b88ffa69683ffa79784ffa79885ffa49484ffaa9a87292f251512312410175a421320795716ff9e8f7eff998b7aff796c5eff9c8c7dffab9b8affac9b89ffab9a87ffb29f8cffb6a491ffa99985ffae9d89ffad9e8affaa9986ffb19f8cffab9a88ffac9a89ffa99887ffae9c8bffaa9885ffac9b88ffab9b89ffa69785ff998c79ffa49482ffa99885ff9f8e7dff6a5a4cff5b4d40ff594c3eff4f4437ff594b3dff5e4f40ff5a4b3cff57483bff594b3dff5b4d3f228c6e312db184252dcf9d2d30e5af38643d474870434f506f46545465414f4e6d4a57568359636973505b5d835a6265705c65687d5c64647d656b6e776e757a716972746d687273827c848b461d1e1c4e1e201f511f2221521f2221551e2220591d21205c1c2122651f2425651f2425621e2323571d2221501c2120561b21205c1b21205b1b20205d1b20205c1c2120601c21215f1d2121621e22215a1d21204e1a1e1d4c1a1e1d3c3d433d3f38413b4536413a37323f393e323d3337363f3634363e362f303b3234333d3230313931162f352f213137301e3a3f3910272e271b2f372f233339331a313631324e5248181314104455575325c69a3a28d3a23229cda23a24e1ac3227dfa9352ae9b23523ce963230e9b53d32e8b33b27d4a33229c797332ad4a73832e2b33a34e2b03a32ddad3933dfb03933deb13936deae3831d8ab376388744c344134123f47371019c996281ac5902719c28f271ac28f2829d8a63026cd9e2e23c4973134daab392aca9e3324b58c2b28c4992e398e75331d2f3a3454373e3d693841408842484f5b33403c5b36403f4d363f3e54373f3d6039423f4a343c38523b423e54343d3d5a353e3d5f343f3e5c353f3d6537403f66394342653a434361374040633842416037403f60363f3e64353e3d6338414054363f3e59323e3d5a353f3e5e353e3d53343f3a42323c3246323d364a343e3742323c33162e364717363d46193638441d3943541d36404d213741501b2d384a182b333f18272d3a18272e3c613945435d3a47445c3947435f3a4744623b4947603a4745613c49485f3a4745613d48486443504eff3a3128ff392f26ff372e25ff382f25ff3b3228ff3d3329ff483e32ff605448ff66594cff675a4dff655a4dff64574aff615548ff625549ff645749ff6a5d4dff695c4eff726355ff695e4fff726555ff7a6d5fff7d6f60ff7b6d5fff7b7061ff7c7061ff807467ff807466ff897d6dff8e8172ff988875ff958674ff978876ff998a7aff998a7aff988a7aff988a7aff9b8c7dffab9c8bffafa290ffab9d8cffab9d8cffa69686ffac9d8bffb2a390ffb1a290ffb5a693ffb2a392ffbeae9bffbfaf9dffb9aa99ffb8aa98ffafa393ffada091ffb4a694ffbeaf9effc0b3a0ffa09182ffa09180ffa99b8affa09281ffa99987ffad9b89ffa1917fffa69785ffaf9f8effab9a89ffaa99861c6f4d1517302511282e251126624815ffa1917fffac9a88ff847668ff9f8f7effa39584ffa19382ffa29482ffa89a85ffaf9e8cffae9d8affa99986ffac9b88ffaa9a87ffa99986ffaa9886ffa99887ffaf9e8dffaf9c8cffa59585ffa49483ffa79785ffa39583ff9b8c7bffa69684ffab9b8affa79786ffa79785ffac9b89ffa49381ff776859ff665849ff615244ff5d4e40ff594b3dff574a3cff55493bff5a4c3e40765d292be2aa2d2be4ad33663f4a4a673d4949643d4c49653f4d4a673d4e497449565569424f4d6e4550506b465352764c5a5c6f4a595d6847545770465355683d4847673d4847673a47456b3c49476b3c4b4a653d494a5c3d484761414c4d583d4a4d593f4c4e653e4c4e633f4c4f613e4b4d5e3f4b49553f4c495c465151544953545f4f58596d5c6567645f686c686b747a67747b82587b8084587e84876b797f8742364036504852484236403733343f3545363f3732343d3531353e3641343f36383540362a323a321c2e352f192d372d162a332a0f2831280f2a302a0d272d260f272e2619363d351a131410436d6a551ed19c302bce9f3427daa93624cf9d3125dfab342aebb33521d298332fe7b23d31e8b33a26d4a23225cc9d3230d6a73d33e1b23a30e2b13931dead3933deb03836deaf3935dbaa3933d8ab385d84714a314435124049371114ba8d2721d8a12918c88f251dc9932717b8882724d8a83230dfad3233dfac3432d6aa3329c9992f28c2942d27b38d3011191c19412027254b262d2c58282d2d582b30314e2a32305c2c3331602b3332532e3434703c43457b373f4272424a505d3c424360333a3a6231393964343c3c64333b3b64323a3a5d313a395c3139385b31393951343a3855333a374c333a3545333a344a373f385c343c3b5e323b3953333b3650323b3648323b344b333d3650333c36162c3646132c323d1d3640511c323b4d21363e541d303a4f1c2b374c20333f5418272e3b19232a37623845425e384642613c4947613a4845663c4948683d4948663d49475f3b49465d3d4948633f4a49ff3a3027ff392e25ff382f25ff3a3026ff392f25ff3c3228ff3b3228ff51453aff5f5347ff5f5347ff605548ff615447ff615447ff605447ff66594bff65584aff6c5d4fff706153ff706255ff766859ff74675aff736558ff7b6e5fff786c5dff796e5fff7a6e61ff807465ff847968ff887a6aff897a6aff918372ff958675ff968777ff978877ff9b8c7cff998b7aff9b8d7cffa09181ffa49687ffa09484ffa99b89ffab9b89ffaf9f8dffb4a492ffb0a18effb2a491ffb3a493ffb3a191ffb3a392ffb6a794ffb3a492ffbbad9bffb1a294ffb9a999ffbbab9bffc1b29fffa29384ffa69685ffa49585ffa19282ffa59584ffa49382ffa0907effa0917fffa29381ffa49482ffa99885176c4d1719644718252c221126271f11ffa39380ffae9c88ff867666ffa29383ffa09282ff9a8c7bffa0917fffa59685ffac9c8affa69685ffaa9987ffab9987ffab9987ffac9987ffa99786ffab9787ffad9a89ffac9b8bffa79585ffaa9a88ffaa9a89ffa29282ff9c8c7cffa39282ffa59484ffa69585ffa19281ffac9c89ffa89885ffa79683ffad9c89ffb2a18effaf9e8bffa39382ff847564ff766757ff6f6150259778342ec6962929e5ac2e6e4550516c404c4b6e445250683e4e4a794d5c5c69435051734453516a3e4d4a86555f647e4d5a5b7d5360636945515366414d4e63404b4b663d49476b3d4948673d4a4a623d4948533d48485c3d48475c3d48485e3f49495e404b4c5f3d4849653d4748683e4b4c613b46455c3945445f3a46455e3a4645573d4a4c5a414f51633e4d4f633d484a73465051623c494b66404c4e633e4a4b5936423e4538413e494048454a36433c4335413938343b3532333a333b363e3642354039252f382f28303a30132a322a122a312a1d2c322c13292f290c262e26112830281c343c311b12131124cea33b20d5a43032ca9d343a846e392bae8a3023d9a63126e1a8341fd399322ce8ad3b32e5af3929d8a43429dbaa3430e3b03a30dead3935e0b03a31daab3935dfae3a35ddae3936d9a83d33d9aa385c89744b314637133c3f300f11b9872318c48f2413b5852317c48f261ac5952a24d2a32e2de0aa322fdcac3232d5a63230d2a52f30ca9c302dc197301617140822282312343731193c322f1e3a3a341e4620201b421b1d1a45181a1841151716391519184b15191856171a1a56181b1c69191c1d5c191d1f5e1a1f21661a1e1f64191d1f5e191d1d641a1f205e191d1e5c1b1f204c1b1f1d421a1e1b4b1c201d451c201d3f1f2221492227254c2327273e20252456262e2e6f2930320f1f2129152529321622262f1525283414262a3415292a3913242a3416292e3c182d2e3c1326262e172628355e374341623a4744643b4745603846436a3a4845683b4746623845425938464357394644623c4847ff3a3026ff3a2f25ff392f24ff3c3026ff382e24ff3e3429ff3c3228ff393026ff5a4e42ff5e5347ff5f5244ff685c4eff6a5d4fff685a4cff6a5c4fff675a4dff6a5c4dff6e5f51ff736556ff736658ff75685cff736759ff74675aff807263ff7d7060ff817665ff817565ff837666ff857666ff8a7b6bff887968ff8d7e6dff918372ff948573ff9a8b7bff998c7aff9d907dff9d8e7eff9c8f80ffa39583ffa89987ffb2a08cffac9c8bffb1a18fffafa190ffad9d8dffaa9989ffb19f91ffb2a290ffb7a795ffb0a18fffb2a190ffb0a191ffb7a899ffc2b19fffbfae9cffa09080ffa59584ff9d8e7effa19283ff9e8e7effa39384ffa09080ff9c8c7cffa49482ffa2917dffa79683195b41131f7454172d6145191d2e2515ffa49481ffa99783ff8c7c6affa69683ff9c8e7dff9f907fffa89885ffad9e8dffa99988ffb2a08fffaa9885ffab9987ffae9c88ffa49281ffa59483ffa49584ffab9a8affaa9989ffa49484ffa19180ffa69685ffa59584ff9d8d7dffa89886ffa69786ffa39383ffa29282ffa39280ff9e8e7cffa89683ffab9986ffa69583ffab9a88ffa69684ffa69584ffa49481ffa39481fcaf9f8a2a8465312aca97264c3643435a3b48468d5961637e495555744855527b4b5959864f5e5f975b686d794d5b61754b57597b4f5d606f445051673f4a4a683d4847633c49476a3c49476a3b49485b3c4846523b4847543a47465a3c494860404b4d694551546c3e4d4b683f4c4c673e4b4b5d3d494c673e4a4b6c434e4f653f4a4b653f4a4c6c445154693f4b4e653c494a5b39444475464f506e474f517a50595b49333f3c4f33413d5235413e433540394737423d3836403746384238403740373c353f362b323a32142a312a172a322a162c332c1a2d342d162b342b142b312a122a302a14383c34121416122f856f342faf8d3e28e1ac3121d6a630575f59441fd19d3321d49d3323d8a03328e5ab362fbc90363fc0973c30e0b13a34dcad383ae1b33e30dfad3c33e1ae3f35dead3b34ddae3d36daaa3a33d5a839618d764d344839113f45340f16c1922713ba882216b7872521ca9c2c1fc8972926cf9f2d28d6a12e29d0a22e24c3962b20c1942925bc912b25b68c2d1815100416362a0b1658441418876819199f791f17a67e1e14a97f1f16ac852213a57f20195545195a0b0907ff30281fff41372dff493f35ff4c4339ff4f4439ff51463bff52483cff4e4439ff4b4238ff4b4238e8433b326a1d2021501c1f1e491e2124201112141c111315180f1213241316182916181c28171a1d2517191b0f171a1d12191d21181a1f251a1b1f26161a1f2514181c2313181b2213161a201216171d663b41456436404065343f3e6636413f6236413f683743416735413e6536413f6135423f6535423f5e32403c623a4644ff362c23ff392f25ff3a2f25ff3c3026ff3b3026ff3c3127ff3f342aff3a3026ff392f26ff605448ff63584bff65594bff64584aff635549ff625546ff695b4eff695c4dff695b4cff6e6052ff685a4dff6c6052ff736659ff776a5cff776c5eff786b5eff7c7061ff827465ff7f7363ff807363ff847767ff887b6bff908170ff918271ff928371ff958776ff978878ff9c8c7dffa69685ffa09181ffa49484ffa59585ffa79887ffafa18effb5a493ffb1a08fffb0a090ffab9d8dffae9d8dffb4a493ffae9e8effb1a08effae9d8cffb8a694ffc2b1a0ffc1b1a1ffc6b5a4ffa49788ff9b8d7dff998b7cff9e9081ffa09180ffa09280ff9f917fffa39481ffaa9984ffa3927fffa896821a1c170f266f51191d674b151c443313ff958574ffa1907dff897867ffa3927fffa99885ffa89784ffa99886ffa69785ffac9a88ffaa9886ffab9887ffa99684ffa99684ffb09e8cffa69483ffa79685ffa79685ffa49483ffa39381ffa79785ffa19181ffa79786ffa29484ffa39485ffa49484ffa79886ffaa9a88ffaa9987ffa49482ffa79684ffaf9d8bffa89885ffac9c88ffa49481ffa79784ffa89783ffa79583ffae9c87c7a5927828866223483f473c52394844493a46454c3a494856404c4b5e3d4a4a4b333f40473741446e3f4c497743504f894957587c4e595d6c4753567b4651535f3e49485e3e49498149525363434d4e704b5455734953556e4550506d414a4b6d404a4b663f4b4a6b424d4e673e494a5b3b45455c3d4646653f494b5f3c4749553c4948603b494b643b4649693d494a633f494b623d4b49aa69727870435350573643405535423f5a3944424c3541385037433e3c353f375036413b443842383e343f3533333c341f2f362f0c242c23142a32291a2e362e152a3229132b312b0d272e260c2832281610120f2c5c5a492cba913724d0a03133826b3436876d322cd19f3926bb913616ac7e2d27dea73527a57d2e6268614e2cdaae3a32e1b23932e1b13b35e4b03f35e0ae3d33dcae3837dfae3e35d9aa3933d5a937699078502f413312424d3c1314bd8f251bc7932622cd9c2c26d3a42f2de4af322ee5b0322bd9a82f2fdba93030dca93129d0a02e1eb88d2a26af892a1e17120518382a0b236a501c22926e1d29ac842128b48b2427bb8f2426be922225b58b243170571a820b0907ff30271eff2f261eff2f261eff342b22ff393027ff4c4136ff4c433aff4b4137ff484036ff4f453aff4b4136ff4a41365d20222250262a2c592a333474444b536a424a4f7a3f484d5e3a464b69495256a77d8088a29f9ca7c0bab5bcbd807f88bb525559a7404345b34e545cb45a6368ac55555e93555a6082575c62835c656c8c686b72905d636a9a616472af6b6e75b16d6e78af676c73b36f747e723a45437d48545194565d5fff372d23ff382f24ff3a3026ff3e3328ff3d3227ff392f25ff392f25ff372e24ff362c23ff3e342aff5d5245ff625749ff615548ff66594cff615448ff6a5b4eff685b4eff6b5d4fff685b4dff6c6052ff6f6154ff706255ff736658ff76695bff796c5eff7c6f62ff7a6d5fff7f7162ff817364ff867768ff847767ff8e7f70ff8f8071ff918373ff918474ff948777ff978879ffa79584ff978777ffa29283ffa29383ffa49583ffac9b89ffad9d8cffaa9b8affab9d8dffac9c8bffac9f8bffad9e8effa99b8bffa79786ffb19e8effb9a795ffb5a593ffb7a897ffbcac9cffa99989ff988a7cff9d8e7dff9c8c7affa09180ffa69584ffa29280ffa59481ffa39380ffa5937fffa5948244211c152a2a1f12246c4e1523785718ffa39380ff9b8b77ff827161ffa49280ffa1907effab9a89ffaf9e8dffab9b8bffa79684ffa69582ffac9a87ffac9b89ffa99885ffa99886ffaa9a88ffa79786ffa69584ffa49382ffa79685ffad9b89ff9f8f7eff9d8d7bffa59482ffa89783ffa49380ffa19280ff9f8f7dffa49481ffa79783ffa99784ffa2907fffa2917fffa69481ffa69581ff9f8e7bffa49180ffa08f7cff9f8e7bffa08e7ca8aa916e27926820694d565855454f4f4b384742513c4a48563c4a475d3b48465c3a464558394644573a46455838454353374442503642404d34403e5034403e4c3641404b34403e51384442513843434b3741414934403e4a343f3e55374140603742415737414075464e516f414b4e5c3b46465a3a4344633c47486e404a4b874e585c824652546f3b4a4d975c626a8c5a646a9157616576414b506835413f603844425b3743424c3643404d37423f3e3540385537413d3b3741373b353e3530333d342b343d341b2d352c1b2c362c192c352c0d2930290e29302908262d251c313831240f120e177f642b1fc28f2a2ea8833429a17b2b685f57425e5d5645416b5b3b25bd893624c38e3031c2933377685f485f605a4635d6aa3d35e2b33b34e0af3b34deb03934daaf3834daac3833d8ab3833d6a637489f8342303f3211424a391115c0902819c7952828e1ad3125dcaa302cddac322edfae3330d9ac302dd7a9302ad1a32f2acb9d2c23b98f2820a27b251c1711051d32260a1c5c4417187f5e1b23a77e2028b48a2527b68c2427bc8f2628ba8e25367f6424ff31291fff2e251dff2f261eff322920ff312820ff322920ff342b22ff322920ff312820ff342b21ff3a3127ff433a2fff443a30912526224f1f242354262d2e68333c4073313b3f67343e416e3c454777454d4e8643494c7043494ca0484b5180505b60ae6c747bbe7c8289a16e7279a1878c94bba5a8b2c290919c9c6b7378c9636770c65b6066bc53575eb953545ab054585eb456565ea560696f9c5d636a875a6165835e62646f505556ff352b22ff372d23ff342b21ff382f24ff372d23ff362c22ff372e23ff372e23ff372d23ff372e24ff493f34ff625547ff605446ff615548ff615448ff625549ff64574aff67594cff6a5c4eff6a5d4fff6b5e51ff6f6154ff746658ff746659ff76695bff807163ff77695cff7b6d5fff807263ff867769ff887b6cff8c7e6fff8a7c6dff908171ff8f8272ff8c7f70ff928476ff9f8d7dffa59382ff9c8c7cffa09180ffa29482ffac9d8affb0a08eff9f9183ffa09384ffa39486ffa79a88ffae9e8dffae9f8effb3a290ffb2a091ffb0a08effb0a08effb7a695ffb7a694ffa0907fff97897aff9b8d7dff998b7aff9f907fffa39381ffa39280ff9f8f7dffa0907fffa08f7dffa89684312f25133a2b22132b2c23131d6c4f14ffad9b88ffa79582ff887867ffa18e7bffa89784ffa99885ffae9d8cffa79685ffa08f7effab9b86ffa99985ffa99784ffad9b8affa89786ffa89786ffaa9a88ffa89887ffa79888ffa89787ffa0907fff9d8d7cff9c8b7bff9f8f7eff9e8e7cff9d8d7cff9e8d7cff958675ff9f8f7dffa2917fffa3917fffa08f7dffa4917effa2907cffa2907dffa2907effaa9985ffa49280ffa0907dff9d8e7bffa08e7c44a68a4e2b9168247c52575d604751514a3d4948513b4a46583b48455b39464355394644593c48475e3a464559394543513743415335403f5234403e523842424d353e3f4e384242553842424c34403e4934403f4935403e5136403f5336403f533640404e374141503642425136403f5336403f56353f3d5736403f563741405436413f4c343f3d5d3a45434d343e3d442e38363b2e3632623e4b49583944434b364340553844424c37433f36353e3648394139473740372e313a3129313931202f382f33353d353e37403732323a321a2d342c0e272e270d262c260f2a30291a0c0e0b18ae842d3a7f6c4920b68a3037a581362d9d7b3228b18534289c76322086662b1fcd953323d49e2d35cda2363eb18d3b39d9aa4035e4b33b34e1af3c32dead3935dfad3932ddad3934dbab3834d5a93736bc953a2f4436124740310f12b7862410aa791f25cf9f2f2bd9a83125cd9f2e28c1972f2bcb9f2f26c59a3029c4982f2bc2962b27b58c2822624c192b171205233b2e0d1a6b50142796741e29ae85212cb58b2429bd932728bd932629c2902937997927ff2f271eff2e251dff30271fff2e261dff30281fff31281fff30281fff31271eff30271fff30271eff30271eff31281fff332a21ff2f261d99201f1b551a1f1e54292f32602c373b622f3a3d53323a3b5a303b3a63333c3c64353e3e733c4344713b4143703a43436b3943446e3d46476d3c45466d3c4748994f5a5f834f555aa26f747abd858992c39a9ca4cdacb1bfccb3b4bec3b0b0bcc2a1a3aca783868ec17b7b87bf5d5c64ae42454bff342b21ff362c22ff342b21ff372e23ff342b21ff352b22ff382f24ff372e23ff393025ff372d24ff3a2f25ff53493cff5e5245ff5a4f43ff615448ff64584bff64584aff685a4bff68594cff685a4dff6e6053ff6f6254ff726557ff736658ff726557ff837465ff75675aff7c6e60ff7d7061ff7f7163ff877a6bff857969ff908172ff908171ff8e8070ff8e8071ff938475ff968675ff9c8b7bff9f907dffa59684ffa99989ff9c8d7dffa99b89ffac9e8bffa39687ffa99c8bffaa9c8cffab9c8affb1a08fffad9d8dffa9998affb0a190ffb7a594ffb2a08effb4a291ffa69886ff9f8f7fff9b8c7cff9b8c7dffa2927fff9f8e7cffa2917eff9b8b7affa49383ffa89784ffa08e7e2b6d4d1820251e11221f1a1023413215ffa3927fffa3907fff857666ff9d8b78ffa18e7bffa79581ffa69380ffa69380ff9e8f7cffa59480ffab9987ffa59582ffa39280ffa39382ffa49482ff9f8f7fffa19180ff948676ff9b8c7bff988778ff9e8d7dff9f907eff9e8f7fffa0907fff958676ff9f907fff9a8b79ff9c8c7bffa2917fffa69583ffa3937fffa59480ffaa9986ffa69683ffa3927fffa49380ffa3917fffa59480ffa89783ff9b8a77ff9a89773c9a80562a8e641f5b333b3b743f454868394040562d363663353c3d563640405b404b4a593b4745573a4645553844425535413f51323e3c543943435236403f4938403f5238434247333f3d4a36403f4c343f3e5035403f4c35403f4e343f3e503741414a36403f4f353f3e5336414054333e3c56323e3c5137414048343d3d4b323c3b49323d3b472e3a37362d3534353136332e303c384d3944423f35423e4138443f30353d363c3540362d323b322932393325303930252f362f3030393034374137232e382e17293329212d362d162b312b1b2d342c1c363a322412140f258f7133427f704e4296793d2ba983334e58503c22a87e302ea27c392d534a31355c533622d29b2e24ce9d3228d2a5353fcfa13d34e3b13a31e2af3a32dfae3a31dcad3833d4a63833d8a73835daa83739c29a3e3344361241362a0e1570552025816229277158282f5e4c2b536c5a384b685d403b7460353e77603b814e463d446252324f6955312d5f4b282b15110422372b0c1d7154172487671d2ead872323a9812029b68b2430c294292fc69a2c4394762eff30281fff2e261eff312820ff302820ff332921ff2f261eff2f261eff312920ff342a21ff342b22ff322820ff332920ff30271eff31281fff30271f9322211f4f1a1e1c361b212042242c2b542c3534542e383962323c3d60333d3d60323d3d5e36404461343f43693840416636404067343f3e63333f3d6a343e3e6f3841426f35413f703b4445ba757c7ebc778081bd747a81b170787cc07c7e8b8f4c515785485052ad707680a162686dff342b20ff342b20ff362c21ff362c22ff362d22ff372d23ff362c21ff352c21ff382f24ff382e24ff3c3226ff3c3126ff54483cff5f5245ff5f5347ff605447ff5e5144ff625549ff605348ff65594dff6c5f52ff6c5f52ff706255ff7a6b5bff77695aff807160ff807060ff76685aff796e5eff796c5eff7b6e60ff7e7163ff86786aff86786aff8e8072ff908172ff938373ff9c8d7eff958675ff988877ffa1917fffaa9b89ffa39483ffab9c8affaa9b8affa29586ffa69887ffab9d8affa99988ffad9c8bffa89886ffa79685ffb09e8bffb9a794ffb6a492ffb5a492ffab9a8aff978879ff968978ff9c8d7eff998a77ff9a8a79ff988878ff9f8f7fff9d8d7dff9c8d7cff9d8e7d236e4e1720714f1822231c112e231d15ffa0907dffa89683ff8a7b6cff9f8d7cffa89582ffa18e7dff9c8b7affa0907effa2927fffa4937fffa2907effa69482ffaa9785ffa79685ffa39382ffa39383ffa49484ff9c8e7eff968777ff918271ff968776ff9b8c7bff9b8d7cff988978ff928474ff9c8e7eff9c8e7eff948575ff9a8a78ffa3917effa28f7bffa28e7affa18f7cffa3917effa39280ff9c8b7aff9f8e7bffa0907dff9d8c7affa08f7cffa08e7cff9e8c7bac9f8a6b2a856220512a3432542d3635562a3532522a34315f303a384d2d3635522d3635522c3434522a3332532832305227302e572931304d293130472931304a2c3433462b3433482d3635573843414a313c3b4a353e3e533a43424b3840414d3c4544523b43445539413c50333f3c4a313d3b45323e3c3b303938412f393842343e3d372c3631332d34312b2a32302a333c39413944404534413b4638423b4e36423c49353f3634333d342a303731272e382e242f37302c303832202f362f2430393038313c31232e372e182a33292f363c36314d4f481d11120f16a67a2c1ecd962e31bf9335398f73362a93722c30a27f392c8a6f32388f723c4b695b4421dba23327daa7312bd9a73634dfb03a33e5b13b34dbaf3931daad3a34d8aa3836d7a83c33daab3934d9a93848a6864335443512431c15091c41300e1f3f2e0e57493716564b38165b4a38165e4937165f493816ff362d24ff352c22ff352c23ff342b22ff322a20ff332b21ff352c22ff352c22ff362c22ff352c21ff342b21ff31281fff322920ff30281eff2f261dff2e261dff2e261dff2d251dff30261dff31281fff31291fff31281fff342b22ff30271fff30271fff342a21ff32281fff2e251dff30271fff30281fff30271f801e1e1c4a1f222139202423522126265a282d2e4c252d2c4225302c6c43474a60333c3d63353f406c353f406b3640416a3741406635403e6f3741416f3742416f384342723a4545683b4445713f48496c3843426835423f6e3845425f3844426d39434366354246693a4444ff372c22ff352c21ff352b21ff392f24ff372d22ff372d22ff362c22ff3b2f24ff392f24ff3b3126ff3d3327ff3c3026ff3d3228ff5b4f43ff605347ff5d5147ff5f5348ff5e5246ff63564bff65584cff695b4fff665a4dff6f6154ff726558ff746658ff796b5cff726457ff796a5dff776a5cff786b5dff786b5eff7d7062ff857869ff8b7d6cff918172ff908172ff908173ff958575ff948474ff998979ffa29281ff9e8f7dffa79583ffa89685ffa59684ffa69887ffa89888ffb6a693ffb5a390ffb5a492ffad9d8effb09d8cffb3a18fffb8a694ffb9a996ffbfaf9bffb6a695ff988878ff908172ff988a79ff978878ff988979ff988a78ff9b8b7aff9a8979ff978778ff9e8d7d273e2e121e6c4d161b67491325191712ff9c8d7affad9c88ff8c7c6cffa3907cffa2917dffa99783ff9f8e7effa2917fffa29280ffa29280ffa0917fffa69684ffa59582ffa0907effa79686ffa59483ffa29280ff9c8d7bff9c8e7cff9c8d7cff9b8c7bff998a79ff8f8070ff918473ff938574ff998b7aff958776ff988979ff9d8e7bffa08e7dffa2917fffa1907dffa0907dff9d8c79ffa18f7bffa4927fffa49280ffa2907effa49380ff988876ff9c8b7aff9a8a78ff9c8b7aaaa38b612188651f414a462d562c3535542b3333542b3332542a34314b2a34314528302d4a28312f50293231502831305028302f5228312f41252f2c48262f2e4627302e45252f2c4b2831304928302f4b2930304929303048282f2f4d2930304e272f2e4c262e2b4d28312e4f2d3434482d3533452f34323b2f34313b353a383f343c3b4c363f3d2c2f36352b333b383f35423f5b3f4b496037413e47353f395236413c4a353e373c323c321e2d342d1c2c352c1c2b342b242f392f1d30362e3d303b3131323c322e2e382e2a30393020333830250f110f18755d2f21be8c2c25cf992e2db98f351bba8e2f15ad822e1ccd982e19bf8a271bbd8c2c26e1a63028dca9322ddcaa3532e3b33b31e0b03a35ddb03930dbaf3931dead3831ddad393dc79e3a34d8ab386d85734c324537125717110627301f091e100c06ff382e24ff332a21ff382e24ff392f25ff3a3025ff362c23ff322a21ff332a21ff342b21ff31281fff362d23ff342b21ff352c22ff362c21ff352b22ff332a20ff342b21ff322920ff31291fff31291fff30281fff2f271eff30271eff31281fff31281fff322920ff342b21ff362d23ff2e261dff2f261eff30271fff2f271eff30281fff2d251cff30271fff2f251dff2e251dff312820651e1e1a3b222725461e2321452128274720282654313837753b3e3f573034363f2a343165333d3a55323c3b81454c4f6f3842417036414171384343753c46466e3a4445753e48476d3743446c3844426738434168364340683542406435413f6635413fff362c22ff362c22ff372d23ff362b21ff352b20ff342a20ff382d23ff3a2e23ff362c23ff382e24ff3a2f24ff382f23ff392f25ff3c3228ff5d5145ff5e5146ff605449ff625548ff65584bff625448ff615448ff65584cff695c4eff726456ff716455ff756759ff736557ff796b5cff6e6253ff786c5dff837667ff796d5fff877a6bff8f7f70ff897a6aff938373ff958575ff978676ff9a8979ff9b8b7bffa39381ffa69582ff9f8e7effa69482ffa0907fffa59483ffab9b8affad9e8dffad9d8dffb3a493ffac9b8cffa89685ffb6a692ffac9c89ffb2a08dffc1b09cffae9d8cff968676ff988978ff948675ff9a8b7affa09280ff988978ffa49583ff9c8c7bff9f8f7fff9f8e7b191b160f3847381a1e684b1525604715ff9b8b79ff9b8b79ff867666ff998775ffa5937dffa79683ffa59481ffa49280ffa2917fffa29180ffa0907fffa39381ffa0917effa89781ffa1917dff9e907eff9a8c7bff958776ff9a8b7aff978977ff998a79ff9b8c7bff938473ff988977ff9a8b7aff908272ff9c8c79ff9b8b79ff9b8b79ffa08f7dffa2917fff9f8f7cff9c8b7aff9c8b78ff9a8a77ff9b8a77ff998775ffa08f7dffa18f7eff9e8d7cff9a8978ff988776ff9f8f7cff9d8c7bfa9685731ba98128483e3e314c293231502b333253283330532933314b28322f47272f2d4c26302d4a262f2d4827302e43242f2b4726302d46262d2d3e232c293e242b2a48262e2d5329303042272f2d44272f2e44272f2e4a272f2e5528302e4c26302d55252e2c44242d2b4a242d2b3924292538222926342328253a222928372127251c1a1f1c18242a272e343c384d364541613d4b455436403c45353f363d333d333e313d3434313c333d333d3436353c35363541382f363e372d353e3529303930222b342b1a2931291d30352f110c0d0b0e8b6a2c1da77b2922b2852e3d987b3b457b684129bf8f2f17a979291dcc922e23cd97303ba984344096793828cfa33132d3a4363ec59f4333d5a83738cea33834cca23830cda23a8a7d7358768276598d6b614d8f2423225b130d05243322091e2e1e08ff382f24ff392f25ff362e24ff392f25ff3a3026ff372d24ff392f25ff372d23ff352c22ff362d23ff342b21ff372e23ff342b21ff332920ff342a20ff31281fff32281fff342c21ff342c22ff30281fff312a21ff2f271eff31271fff30281fff30271eff352b21ff362d23ff332921ff2f261eff332921ff31281fff30271fff31281fff2f261eff30281fff31281fff2d251dff2e251dff2f251dff302820c728231e652428283a1e2625602a3030462e3335643c40433e23292964353a3968333a38592c32328035383a7a3e42437b444d508c4d53595234403e593c46466e3a46466735403f6e36424167333f3d67333e3c5f313b3a62313b3bff342a21ff382d23ff33291fff33291fff362b21ff352a20ff362b21ff372c22ff342b21ff372e24ff392f24ff3b3025ff392f24ff392f25ff42382dff5d5145ff5f5347ff5c4f44ff5b4f43ff605346ff625548ff675a4dff6c5f50ff6d5f51ff706455ff746658ff6f6255ff6e6051ff6e6253ff786c5cff7e7163ff786c5eff807466ff8c7c6dff8d7e6fff887969ff8f8171ff978777ff99897aff9b8b7cff9b8c7bff9a8a7affa19080ff9b8c7affa0907effa19080ff9b8a7bffa99a8affad9d8dffb2a392ffae9c8cffb9a793ffad9f8cffb3a28fffb9a592ffc0ae9affaf9d8cff988878ff978776ff9a8a79ff998a79ff8e7f6eff9e8f7dffa0917fff968777ffa0907fff9a8a771419170e2b1d1811466a501c3f70551aff9b8c7aff9f8f7dff7f7061ff978878ff9f8e7effa49382ffa29282ffa59483ffa59583ffa29180ffa08f7effa2917fff9f8d7bffa2927fff998a77ff998a79ff968876ff948574ff908271ff9a8a79ff978877ff9d8d7bff9c8d7bff978878ff928474ff9b8c7cff9b8d7bff988978ff968776ff978876ffa3917fffa08f7dffa18f7cffa2907dff978574ff9d8c79ff9f8e7cffa2917effa1907dffa1907eff9d8c79ff9c8b79ff9e8c79ff9d8b79ff968574ff978775ff9b8a78139671202a7c5d1a413c3e335128322e4d2a34324628322f4a2831304a272f2e42252d2c46242e2b43252d2c37242b2838232c2a3c232b293c242b2b45262f2d4b28302f46262f2e44252c2b43252e2c48252e2c47232d2b3d222b2839242b2746272e2b3c242a2838222925342126242f1e25232a1e242218171e1c11191e1a2d414643453945434f3f49484e37423d46323f363c303b3335313c3239313a342d3038302f313a3234333c332e3840394639453f29383f3a29323a32273139311e2e342e2c0d0f0d146c572d216f5931387f683c5465563c55585147458470414f594e3a6a494841575b513c6b575144666d614249886e3961685b3b636e6041855f5647826258495f72623b7470604968675a40844b49434b87703f902829295b04030221291c0829322108ff382e24ff3a3025ff362d23ff382e24ff3b3026ff372e24ff352c23ff352c22ff372d23ff332a21ff372e24ff352c22ff342b22ff362d23ff32291fff32291fff31281fff31281fff322920ff332b21ff332b21ff30271eff32291fff2f271eff30281eff332920ff342a20ff31271fff31281fff2f271eff31281fff2d251dff30271fff31281fff30271eff2e261dff2f261eff31281fff2f261eff2f261eff2b231bff2d251dff2d241c6721222148242929483238366c42484b592e33345234373a5f2d322e9a6a696b582a32308140474b964b525b6c373e427c363a3d4f2c37366c373e3e6f475054533a454560303b3b8d6670775a3a4743ff342920ff352b22ff352b21ff362c22ff342a20ff35291fff362b21ff372d22ff382e23ff372d23ff382e24ff392f24ff3a3026ff392f25ff392f26ff54493dff605348ff615549ff5f5247ff615448ff625548ff625548ff6d5f50ff6a5d4fff6d6052ff756859ff756659ff706254ff706355ff7c6d5fff7d7063ff796c5eff857668ff8b7c6dff857667ff908070ff8f8071ff948574ff998979ff9c8e7fff9d8e7eff9e8e7effa09080ffa49584ffa39282ff9f8f7fffa49483ffa59686ffb4a491ffb0a08effab9a8affb2a390ffab9a89ffbdac99ffb8a592ffbdad99ffae9e8dff908171ff8f8171ff968877ff978877ff998978ff968775ff948574ff877c6aff958675ff9586741a523c11191b180e32231d1531674e16ff9e8e7dff9a8979ff827364ff988a7cff9b8c7cff9b8c7cffa69687ff9c8d7dffa49483ffa69684ffa99986ffa1917fff9e8f7cffa39381ff9d8d7cff998a78ff938473ff968776ff938473ff918372ff958675ff978877ff998a79ff958775ff958674ff9b8c7aff998978ff9b8b7aff998978ff988876ff9e8d7affa1907cff9a8977ffa3907eff9a8a78ff9d8c79ffa08f7dff9d8c7bffa08f7eff9e8d7bff9d8b7aff9a8978ff9a8978ff988775ff998876ff988777ff9c8b79ff998876d49582621b7a5d1c2a6b4f162d7e5d1a3086631a2e8a661b2a88661d397b642d31685a343752472a3a584e2e4727302e4a262e2d4a262d2c4d28302f4f28312f46252e2c47262e2d4b262f2d53282f2f51252d2c4b252d2b4a252d2b44222a283c23292639252a28352127252a1e2422211b211f2b1f232114161b1823232a26454852514a3645415942504e4b35403831313b324b35403849323f36353139312d2f382f2a313931423c443e453c45403c38413935353d3529343d343f3841383e121411140d0f0d16745b22246e5725388a6a25239e752124a1762123a076231f9970201a8f6922259b7525269a7525269875252f9f79283a876927438265296176643c3893742b496e58284f8d7234349172283b7d63277e1d1c192d0b0906480e0b072a312108ff3a3026ff382e25ff382e25ff392e25ff382e25ff362c24ff382f25ff352c23ff362d23ff342b22ff382f26ff342b21ff332a21ff3b3126ff312920ff322920ff30281eff2f271eff312920ff322a20ff30281fff30281fff332b21ff2f261dff362d23ff31291fff342b21ff312820ff30271fff2e251cff2e261dff322920ff31281fff2e251dff2d241cff2d251cff2e261dff31281eff322920ff2e251dff2e251dff2b231bff2a221aff2b231bff2b231bff2a231cff2a231b8a26241f40333435673e4143623e424365393d3d7d3c4142954e565c9a46494e74373c404f2b333263313839572f34374e323a3979393f44673a40418c555a62ff342a20ff342920ff352b22ff342b22ff372d23ff392d24ff362b22ff352b20ff372d22ff382d24ff372d23ff3b3026ff3b3026ff3a2f25ff3b3126ff3c3128ff5c4f44ff605449ff5c5146ff615548ff635648ff615448ff66594cff6d5f52ff6e6153ff726456ff706254ff6f6255ff706357ff76695bff7a6c5dff7f7161ff847566ff887a6aff827465ff847667ff8d7f6fff918172ff958576ff928274ff99887aff9a8b7cffa89885ff9f8e7fffa59483ff9d8e7cffa89685ff9d8f80ffa99988ffa49485ffb5a693ffb6a594ffa79684ffb6a695ffb6a796ffb7a693ff9c8c7bff8f8272ff8d8071ff8f8273ff938373ff938473ff918171ff948474ff998a79ff948573ff9e907f1e674913203e2e1127221d114a2c2317ff978776ff908171ff817364ff968878ff978979ff98887aff9c8c7dff9c8d7cff9f8f7eff9a8a79ff998978ffa79683ffa3917eff9e8d7aff9d8c79ff958674ff998a78ff9c8e7dff968876ff948574ff9a8a79ff968776ff978877ff998a78ff968675ff938573ff9d8f7bff998a77ff9a8a78ff9b8a79ff988876ff998876ff9f8e7bffa2907eff9e8d7bff9d8d7bff9f8e7cffa1907dff9e8d7bff9b8977ff9c8b79ffa08e7dffa08f7cff9c8a77ff968674ff978675ffa69581ff9a8977ff968674ff938371ff9383709c947b511b7c5c19295f441334644a156b57441f401d1510257a5821225241221bd8a4316461636350565956705a594f7e5f5d531d84651f28604a132848370d5b222218551113103e0b0d0d60212523482931304f2b32324928302f47262e2d3f242c2c291c2321241c221f201c211d161e2421402e383543384542543e494962444d4e6135423f3f323d354d36413848343f3634323c342f323c322c313c3242344038353239322d323b3231333c3322353d33190c0e0c281113111f1718141680622638614e233f5b49274959492c485144332c5d4c2b3f5c4c2d4c66512d3c7d62294464512a5c5c4b2c67473d29724b402d5c5746263f5d491f4e4e3d1e6a48381cc8433523f53d32271d342407301912074a0e0b0832110c08ff392f25ff372d23ff382e24ff382f25ff392f26ff352c23ff362d24ff362c23ff362d24ff342b22ff362d24ff352c23ff332a21ff382e24ff312820ff332a21ff30271eff2f271eff2f271fff322920ff2d251dff332a21ff332a20ff31281fff342c23ff322920ff312920ff312820ff2e261eff2e261eff2e251eff30271eff30271fff2d251cff322920ff2e261dff342b21ff31281fff30281fff2c241cff2e251dff2e261dff2d251cff2b241bff2b241bff2a221aff2b231bff2b241bff2b231bff2b231bc925201c83211f1d372225244c313535844f565a984b515989383d4451293130834a5056642f34368343474d7d4c4e587845484eff30271eff31281fff332a21ff352c23ff352b22ff342a21ff342a21ff362b22ff352b22ff372d23ff352b21ff382d24ff392e24ff3b3026ff3a3026ff3c3127ff3d3228ff5d5044ff5f5246ff5d5044ff615447ff625648ff65594bff65584aff6f6255ff706255ff706456ff6d6154ff6e6255ff736557ff7b6d5eff827365ff807163ff827464ff7d6f64ff88796bff897b6cff928375ff978879ff968879ff938678ff968778ff9e8d7effa29181ffa29483ff9c8d7dff9c8c7cffa09080ffab9b8affb1a18fffac9e8cffad9c8cffb0a08fffb1a190ffb8a795ffa99988ff938473ff928473ff908171ff908070ff958374ff948573ff8d7e6fff908171ff988877ff958675ff9c8c7828755518276749152f2c2315331e1a13ff928272ff9c8b7cff867667ff9d8d7cff978877ff9b8c7cff968677ff998978ff9a8a78ff9c8b79ff968774ff9d8c79ff9c8c79ff8f7e6bff988673ff9f8e7bff998976ff928170ff9a8b79ff958675ff9a8b7aff998878ff908270ff968674ffa1907cff9b8b78ff948473ff9a8a79ff9a8a78ff9b8c79ff988776ff9c8c7aff9a8978ff9d8d7aff9b8b78ff8d7f6effa0907dff958574ff998876ff968675ff998976ff978674ffa2907cff958471f88c7466de551d23fe988875ff887969fe90816ffc91816e874e443363594b2a5b5041213231270b320a08021a0000003200000025493716164a371444686c6b6d62656852595d5d554a4e4e9a474c4c516a592e2a6b5313315a45117d1f1e175419150a5d010101ff5c4e41ff514438ff4a3d32ff483b30ff4f4235ff4b3e32ff4b3f32ff493d30ff4e4135ff63554735262d2d43404445493845424e3b4746623b464560384341643945435336413c55384340604149444e38453e4037413b5135403b37323a33232f362f172e342e170c0f0c2d1214122a10120f1f10120f251d1d16170d100f1d030303b52d251dff3d3227ff403429ff41352aff3d3328ff42362aff42362aff42372aff453a2eff3f3529ff3e3429ff382e24ff3b3026ff3d3127ff3f3329152e1e073435230a1f100c07190e0b07ff382d23ff3a3026ff392f25ff372e25ff362c23ff362c25ff352c23ff362c24ff362d24ff372d24ff352c23ff322a21ff332a21ff362c22ff342b22ff322920ff31281fff2f261eff31291fff312920ff342c22ff312920ff352c22ff332a21ff322a20ff322a21ff30281fff322920ff2f271eff30271eff2e251dff30271fff2f261eff2d251dff2d241cff2e251dff322920ff2f251cff31281fff2e251dff2d251cff2b221aff2e261dff2c241cff2b241bff2d241bff2b241bff2d251cff2b231aff2c241dff28211aff282019ff251e18ff29211aff282019ff29211a4c2022235b282a2e733d4149644d5255794d4e547c53575d5c424749ff30271eff31281eff32281fff32291fff342b21ff342a20ff332a21ff342a21ff322920ff362b22ff372d23ff392e24ff3a2f25ff3b3026ff3a2f25ff372d23ff3c3228ff42362cff5e5145ff5c4f43ff5d5144ff5e5347ff625749ff6c5e51ff6b5f51ff6d6153ff716657ff6f6355ff6e6255ff776a5cff7c6f5fff807162ff7c6e60ff837566ff897a6bff897a6cff817366ff8f8072ff8e7e70ff918274ff9f9081ff958678ff988979ff9c8d7cff9e8f7eff9c8d7cff9b8c7dffa08f7fffaa9a88ffaa9a88ffa79887ffab9b8affaa9b8affaa9a8affb3a291ffb1a08eff8a7c6cff908070ff8e7f6fff8f7e6fff918270ff978674ff968675ff9a8a7aff948373ff968775ff9989772c6149165470521c2b694b172429200fff988777ff9e8d7dff817364ff988877ff958575ff9b8a7aff9c8b7aff998978ff938473ff928371ff958575ff998978ff998a78ff9d8c7aff988877ff998a79ff9c8d7bff988878ff9f8e7dffa2917fffa49382ff9a8c7aff9f907eff978776ff948473ff948472ff968574ff938372ff958572ff9a8a76ff978675ff988776ffa08f7dff978775ff958572ff9f8e7aff9f8e7bffa18f7cffa18f7dff9c8b79ff9b8978ff998977f486685ce3481417dc471317df491317dd3712155a443f3a255f461d365340145031281339171206450605028b27231eb1483f37ff9180706eae935b2e957c462aaf9352787276795f5e5f6558595e5f3c615d4a634f524c20876a203f5f4c1a553f361b432a2310893d3629ff7c6e60ff7c6e5fff7f7061ff837465ff7f7062ff7c6d5fff857464ff7d6f5fff7d6e5fff867666ff847465ff83746334272f2d5a4e5857523948445d445150633b4545643743416c3844425738433f40394540603c47444634413a202e362d30303930393841393f3a433a37111310280a0c0a3b141412381213115f1b1c18360d0f0d33010201ff41352aff3f3429ff44382dff42362bff41352aff3f3428ff403429ff42362bff41362bff3f3429ff3a3025ff3b3026ff392e24ff3e3328ff3b302622281b075c35230a1b312107180d0a06ff3b3026ff3c3227ff3b3027ff362c23ff3a2f26ff3a2f26ff372d24ff352b24ff382e25ff352b23ff342b22ff362c23ff322921ff322920ff322920ff322920ff322920ff2f271eff332920ff322920ff352c22ff312920ff352c22ff332a21ff342b21ff342b22ff30271fff2f261eff31281fff30271fff2e251dff30271fff30271eff2f261eff30271fff31281fff2f261eff2f261dff2f261dff2e251dff2e251dff2d241bff2c241cff2b231aff2e261dff2d251cff2d251cff2c241bff2e251dff2d241dff29211aff28201aff282119ff272019ff29221aff292119ff2a221bff29211aff29211aff2721196d1b1916631d1e1d4d202223ff33291fff32281eff362b20ff392e23ff382d23ff352b21ff332a21ff322920ff342a21ff342b22ff362b22ff372c22ff392e25ff362c23ff372d23ff372c23ff372d24ff392f25ff4c4136ff5d5044ff5a4e42ff5d5245ff605548ff615649ff685b4eff695d50ff6d6154ff6b5f52ff6a5e50ff6f6354ff746758ff7e7061ff817364ff827464ff897a6bff88796bff87786bff897c6eff918273ff908072ff928375ff99897aff958776ff988979ff988a78ffa59583ffa09181ffa99684ffa19381ffa49483ffa59584ffa39483ffa89987ffa89787ffae9c8bffa49482ff908070ff8f8070ff918171ff907f70ff918270ff907f6fff91806fff958473ff958373ff958573ff9685741f15110e23392b11236e4e1621614515ff908071ff908273ff857668ff9a8a79ff958576ff948575ff978878ff948473ff918271ff928373ff9f8f7dff928272ff948574ff988977ff9e8c7bff978776ff978776ff9a8a79ff9b8b7aff9d8d7bff928271ff978875ff9f8f7cff958474ff958473ff90806fff8f806fff988775ff9b8a77ff918170ff978776ff988777ff9e8d7bff978776ff988775ff9f8e7affa3917fffa0907eff9d8d7aff9b8977ff998977fb9c7368e5a23441de280b0ef0240a0ce22e0c10d832101444201b143a392d0f9c574c3dc66a5d4dff91806eff938372ff948473ff938271ff8f7f6fff8f7e6ead9d83572fdda92f2ed2a22e3dae8c373a977b3130755c22385b4b22295743162a2f240c24100b03fc867667ff877768ff827264ff7d6f60ff857666ff837464ff867768ff8a7a6bff837464ff7d6e60ff837464ff7b6d5eff7f7061ff7c6c5ef5786a5c3c2a33305a4853514f38454258424e4c6b3e494a683b46445b3d494752394543473541394736423a1d2d342d32333d341f3039302e373d353510120f721b1e1b5610121044101310511114115610131161020202ff41352aff41362bff41362bff40352aff3f3328ff43382cff3e3328ff3a3026ff3c3127ff3e3328ff3d3228ff3d3228ff3e3227ff3f3428ff3e33281e100c06273322082736240837261a08ff382e24ff393026ff382e25ff3b3127ff392f26ff3a3027ff382e25ff372d25ff362d25ff392f26ff332a21ff352b22ff352c23ff31291fff332a21ff332920ff362c23ff332a21ff33291fff322920ff332a21ff322920ff322920ff342b21ff332a21ff342a22ff332a21ff2f261fff30281fff31281fff2e261eff2f271eff2e261dff2d251dff2d241cff31281fff30271fff30271eff2d251cff2e241dff2f251dff2f261eff2c231cff2d251cff2c241bff2d251cff2d251cff2d251cff2c241bff2c241cff2a221bff28211aff2c241bff2b231bff2b231aff2c241bff2d251dff2a221bff29211aff262019ff251f18ff272019ff272019ff32281fff332a1fff352b20ff3b3024ff3a2f24ff352b21ff33291fff32291fff322920ff332a21ff352c22ff342a21ff342b21ff362d22ff3b3026ff3a2f25ff362c23ff382e24ff3c3227ff574c3fff564a3eff594d41ff5d5145ff5d5145ff5e5346ff685d4fff65594dff6a5f52ff6f6455ff6a5e50ff6d6053ff716456ff76685aff857766ff837365ff847667ff928473ff908274ff8d7f6fff8e7f70ff968676ff8e7f6fff928575ffa19280ff9c8e7bffa59683ff9f907fffa39382ffaa9a88ffa99a89ffa69685ff9a8d7dffa19383ffb2a18effab9a88ff958575ff938373ff8f7f70ff8d7e6eff8f806eff978675ff958573ff8f7d6eff917f70ff938271ff978674ff958672201715122817150f274835132c6b4d14ff8e7f6fff908172ff857667ff998979ffa39483ff988878ff978777ff968676ff958574ff968675ff9b8b7bff968676ff978777ffa3917fff958675ff968574ff928270ff948473ff958474ff9a8878ff9c8a7aff9d8c7aff9e8c7bff9e8d7bff9a8977ff92826fff948372ff9c8c79ffa08f7dff998876ff9e8d7bff9a8a78ff9e8d79ff9f8e7bff9a8a78ff9c8b79ff9a8978ff9d8d7dff998b7aff9a8b78ffa0907cfaa0756ae9a72f3df3100607ee0b0304f21c070adb150608ff948372ff91816fff897966ff978675ff907e6cff8e7e6bff907f6eff938372ff91816fff90806eff92806eff8b7968ec8c7a6133a87f22309a751f2f88671b2c7156162c493711eb7d6e5fff867768ff897a69ff887768ff8b7b6bff807262ff837465ff8a7a6aff807162ff847465ff7b6d5fff847565ff7a6b5dff78695bff7b6c5dff766859ff7b6c5df7463b2f513b434448343f3c4634413b694454546d3e4b4c6e3d47475236423f4c36403e45343f394f363f362d303731312f383127323a322a0e100e1b0e110e320f110f400f120f4d1013115f0f12105e030303ff3f3429ff42372cff3f332aff3e3328ff3f3428ff3d3226ff3e3328ff3e3327ff3e3328ff3a2f25ff3c3227ff3b3127ff3b3025ff3d3227ff3a2f2522130e061e110c06353725086938260aff332921ff382e24ff352c22ff372d23ff3c3228ff382d25ff392f25ff382e25ff362c24ff332a21ff352b23ff382e25ff362c23ff342b22ff362c23ff372d23ff392e24ff332920ff322920ff362c22ff372e24ff31281fff2f271fff312920ff352c22ff342a22ff332921ff312820ff302720ff30281fff2e261dff322920ff2f271eff2f261eff2d251dff312820ff2f261eff30271eff2f251dff2e251dff2e251dff2e251dff30261eff2e241cff2f261dff2c241bff2c231bff2c241cff2d251dff2c241cff2c231cff27201aff29211aff2a221aff2b231cff2c241bff2c241cff2b231bff29211aff271f17ff272019ff272019ff262019ff30271dff342a1fff382e23ff372d22ff3a2f23ff352b20ff362b21ff362c22ff32291fff332a1fff372e24ff372d23ff342b21ff392f25ff372c23ff392e25ff372d23ff372d23ff3a2f25ff3d3228ff5a4d41ff5a4d42ff5d5044ff5d5145ff5e5447ff63584bff6b6053ff6c6053ff74675aff6d6153ff716253ff796b5bff7e6f5fff817263ff857667ff7e7162ff857767ff8f7f6fff938473ff938474ff948474ff958574ff968776ff9f917eff9f907effa59584ff9b8c7bff9e8f7dffa79785ffaa9c8affa99c8bffa09283ffa59686ffac9c8cffa99989ff958674ff938371ff918171ff8d7d6dff948372ff9b8976ff928371ff958472ff9a8977ff9f8c7aff958472ffa08d79266a4f132917150f5d231e193d604515ff948575ff998979ff847567ff928171ff948372ff968574ff988776ff998877ff8f7f6eff958573ff9a8a79ff948473ff908170ff988976ff9d8d7bff978675ff948474ff9a8978ff9c8c7aff9a8a79ff988776ff988774ff9a8976ffa59481ffa69582ffa4927fff9a8a77ffa08f7cff998877ff9a8a78ff988877ff9b8977ff9c8a79ff9d8b7aff9d8c7aff9f8d7dff9e8d7cff9a8978ff9a8977ff948371ff968674ff9d8a78ff998775f02f211eeb382220ed3f2422f57d6c5fff938371ff918170ff918070ff908070ff8a7a69ff8a7967ff8e7e6cff8e7c6bff8f7e6dff8b7a6aff8f7e6dff8b7b6aff917f6fff8a7b6aff8b7b6aff8e7e6dff887868ff897969ff88786aff887969ff827465ff837464ff897968ff7d6f5fff837465ff807162ff7f7162ff7a6d60ff776a5cff7b6d5eff786a5cff7d6f60ff796c5dff796c5dff776a5bff4f4337ff40352a4c555a584234403c4a3642405f3e4b4b663b4545663d4747653d48475635423f4734403a3e303b3530323a333b333d3a550e100f331315132b0e100e300d100d330e100e4c0d110f56060504ff3d3228ff3e3328ff3f3329ff3c3126ff3b3125ff3e3328ff3b3126ff3e3328ff41362bff41362aff3e3329ff3c3227ff3e3228ff3c3126ff3b31261d0f0b0632100c081b2117071f362407ff372e24ff392e24ff3e3228ff3a2f25ff3d3228ff382e25ff352c22ff362c23ff392e25ff3b3127ff382e25ff372d24ff352b22ff362c22ff382e24ff372c23ff372d23ff332920ff342a21ff362c22ff372d24ff372d24ff322921ff332a22ff352b23ff332a21ff352c23ff332a21ff312820ff2e261eff322920ff322920ff2f261eff30271fff30271fff2a221aff30271eff322820ff31271eff2e251dff2e251dff2d241cff2e261dff2f251dff31271fff2f261dff2f261dff2b231bff2c251dff2c251dff2b231cff2d251dff2a221bff2b241cff2e251dff2e251dff30261dff2f261dff2b221aff2a221bff2a221bff262018ff251f17ff32291fff342a1fff342b20ff352b21ff372c21ff392e23ff372c22ff372d22ff32291fff322920ff332a21ff352b21ff342a20ff352c22ff382d23ff392e24ff382d23ff372d23ff3a3026ff3a2f26ff42372cff5d5043ff5e5044ff5d5044ff5e5246ff62564aff685c4eff685b4dff675b4eff685d50ff726556ff796c5cff796c5cff7f7060ff837465ff857767ff887969ff877869ff918271ff938473ff988876ff9d8b79ff9d8c7aff9e8e7cff9e8f7dffa39481ffa59683ffa59583ffa79885ff9d8d7dffa29381ffa49383ffa89989ffa89787ffb09e8fff948575ff928372ff8d7d6fff8e7e6fff8d7d6dff958374ff92826fff978675ff958575ff978676ff938371ff9e8b781f694b122f5c4216251b18131d1e1912ff938374ff948476ff867768ff978575ff948472ff978674ff968675ff958575ff938474ff968675ff968574ff958473ff948374ff978675ff998877ff998878ff948474ff938372ff968574ff998877ff9a8977ff9e8e7bff9c8c7affa2917effa08d7bff9e8c7aff988574ff988673ff9b8b78ff988677ffa1907dff978774ff968573ff988876ff988776ff968575ff938373ff958574ff968574ff958473ff9a8978ff9a8977ff968674ff938370ff968774ff9c8b78ff968573ff938271ff918170ff8d7d6bff8e7e6dff8f7f6eff908170ff90806fff8f7f6dff8f7e6cff8b7a68ff8d7c6aff92826fff8b7c6aff867767ff837464ff877767ff928171ff8e7e6dff897969ff817162ff827263ff807161ff837464ff7c6d5fff877867ff827364ff7f7061ff847465ff817264ff7b6d5fff78695cff7b6c5eff7c6e5fff706255ff786a5bff695c4eff44382cfe44382c433f494748354340513846425c3945435b3743415c3843425234413d47333d3636303b3532303a343a323c3a41101311310d100e380e110e2c0d0f0d300f110f2c0e100e95181410ff3e3328ff41362bff403429ff3e3328ff403529ff3f3429ff40352aff42362aff403529ff42362aff3d3328ff3c3226ff3b3126ff3a3026ff3d32271f332208190b0906180b0a072c2e2008ff392f26ff3b3026ff3b3027ff3a3026ff3c3127ff3b3026ff3c3228ff392e25ff382e24ff392f25ff382e24ff3b3026ff3c3126ff392e25ff382d23ff362d23ff372d23ff372d23ff362c23ff352b22ff352b22ff332920ff352b22ff332a22ff342a22ff352b23ff352c23ff322920ff312821ff332921ff30271fff31271fff332920ff2f261eff2e261eff2d241dff30271fff31271eff2e251cff2e241cff2e251dff2f261eff30261eff2f261eff2e251dff2e251dff30271fff2d251eff2e261eff2f261fff2c241dff2c241cff2c231cff2b231cff2e251dff2c241cff2d241cff2e251dff2e261dff2c231bff29211aff272019ff261f18ff31271dff31271eff342a20ff32281eff352b21ff372d22ff372c22ff362b21ff31281fff31281eff342a20ff332920ff362c23ff392f24ff382e24ff372c23ff362c22ff372d24ff392f25ff3c3127ff40342aff3f342aff453a2fff473b31ff4e4338ff584c40ff685c4eff6d6051ff6c6053ff716456ff6f6254ff776a5bff7b6d5eff817262ff857667ff807364ff887a69ff8a7b6bff8e7d6eff907f70ff968574ff918171ff938474ff988877ff978877ff988978ff9e8e7dff9e8d7dffa89987ff9f8f7fff9d8d7cffa08e7fffa89787ffad9c8bff9e8e7dff8e7f6fff8d7e6dff8c7b6dff8b7b6dff907f6eff938272ff978674ff948373ff988878ff968776ff938472ff9584723b6b4e156274531a1c4533111b1a1610ff8d7d6dff8f7f6eff8b7968ff938270ff958473ff8f7e6fff8e7d6eff938373ff928273ff938473ff978675ff948473ff968674ff9a8978ff998877ff948373ff968675ff978775ff968675ff988777ff968675ff9a8977ff9e8e7dffa08f7dff9f8d7bff978775ff9d8c7aff978675ff988776ff9c8c7aff9b8a78ff9d8b78ff9d8c78ffa1907bff968574ff8f7f6eff8f7f6eff948473ff928272ff9b8a78ff998876ff968674ff948472ff928271ff958573ff948371ff928170ff8e7f6dff948472ff8b7c6bff887867ff8e7f6dff807261ff867666ff8e7f6dff8c7d6bff887867ff877765ff8b7b6aff8a7b6aff877768ff847666ff897a69ff8f7e6eff796b5dff817263ff837465ff807162ff837464ff877868ff837565ff827464ff827263ff807163ff786a5cff827364ff736557ff736557ff786a5cff78695aff786a5bff736557ff77695bff524739ff463a2df442382d653a40405e31383b5c2b34315b2a3030582d33335c2f37375f30363667353c3c3c3d444176646a6d63171918651b1c1b5214161556111312430e101050111110ff3f3428ff3f3428ff3f3429ff403429ff403429ff42362aff41362aff41362aff3f3429ff3f3429ff41362aff3f3429ff3d3328ff3e3329ff3e3328ff3e3328193221081c251907160a08051c100c07ff3d3228ff3a3026ff3c3228ff3c3127ff3c3126ff3c3127ff3b3127ff3b3026ff3a2f25ff392e25ff372d24ff382e24ff352c22ff352c22ff372d23ff342b22ff362d23ff352c22ff372d23ff3a3025ff32281fff322820ff322820ff342b23ff352b22ff332a22ff342a22ff322921ff312720ff2f271fff332a21ff322921ff30271eff322921ff2f271fff30281fff2f271eff2f261eff2f261eff30271eff2c241cff2f261eff30261fff2f261eff2d241cff2e251dff2e261eff2c241dff2d261eff2f271fff2d251dff29211aff2b231bff292119ff2a221bff2c241dff30271fff2d241dff2d251dff2d241dff2a221bff29221aff272019ff352b20ff32281fff362c21ff362c21ff342a20ff362c21ff31281eff352b21ff342a20ff33291fff33291fff352b21ff352b21ff372d23ff382d23ff362c23ff372c23ff3a2f25ff372d23ff3d3127ff40352aff3e3329ff40352bff43372dff44392eff463b2fff4b3f33ff4c4035ff493f34ff4e4437ff52473aff52473bff605346ff746658ff817264ff7f7164ff877868ff8a7b6bff8a7a6bff8f7f6fff948372ff978675ff988878ff998878ff978777ff9a8a79ff988878ffa29181ffa49584ff958777ff9a8979ff9e8c7dffa29281ffa79684ff8e7e6eff8e7e6eff8b7c6cff8f7f6fff8b7a6cff948271ff928171ff928171ff928271ff968675ff998877ff928371ff9382722430240f317050152a715213272d2411ff928371ff948471ff897767ffa18e7bff9a8977ff988777ff978675ff978877ff988978ff988776ff988776ff988877ff9c8a79ff988775ff8c7b6aff958574ff918272ff8e806eff91806eff958472ff948372ff968574ff9e8d7bff9d8d7aff9a8977ff9f8e7cff9c8a79ff978776ff998978ff9f8d7aff9f8d7aff9e8e7bff998876ff948371ff948372ff988876ff9f8d7cff978675ff968473ff968574ff948372ff928170ff928271ff998978ff938473ff8e8070ff8d7e6dff8f806eff8e7f6dff8b7c6bff8d7d6cff8c7c6cff877868ff8a7b6aff8d7d6cff8b7b6aff887868ff8a7b6aff8b7b6aff877767ff8b7d6dff7e7061ff917f6fff91806fff7f7061ff7f6f61ff817264ff817163ff7e7061ff807162ff847565ff827464ff7a6c5dff897969ff7d6f60ff807262ff786a5cff7d6f61ff736456ff7a6c5cff78695aff756759ff796a5bff746657ff44392dff43372cff44382cff463b2eff42382c632d33315c252c2958212b276128312e4a272c2d6029302f56242b2a5e1416174f0c0f0e5b0d0f0f66151412da372e25ff41362aff403529ff3f3528ff403529ff403529ff3f3429ff413529ff43372cff413529ff40352aff3f3329ff41362bff40352aff3d3228ff3c3228ff40362bff3e33285635250c1c332308191a13071f100c07ff3c3227ff392f25ff3b3026ff3d3127ff3c3127ff392e25ff3b3026ff3e3329ff3b3026ff3a2f25ff3a2f25ff392e24ff3a2e24ff352c22ff382d24ff352b22ff342b22ff362c22ff372c22ff342b22ff312820ff332921ff312820ff332a22ff352b22ff372d24ff342a21ff322921ff312820ff312820ff332a21ff352b22ff30271fff332a21ff312820ff30271fff30281fff2e251dff2f261eff2e261dff2e251dff2d241cff2e251dff2e251dff2c241cff2e251dff2d261eff2f271fff2e261eff2c241dff2c241dff2c241dff2c241cff2c241cff2b231bff2e261eff2d251dff2d241dff2d251dff2a221bff2a221bff29221bff272119ff392e22ff372c21ff352b21ff352b20ff362b21ff352a20ff342a20ff352b21ff32291fff32281fff32281fff332a20ff342a21ff342a21ff382d23ff392d24ff372d23ff3a2f25ff3a2f26ff392e26ff3d3228ff41362bff40352bff40352bff42372dff483d31ff483d31ff4c4035ff4b4035ff4f4438ff53473bff594c3fff584c40ff615446ff5f5246ff64584bff625549ff6e6053ff6b5d4fff79695bff7e6f60ff8a7a6bff918171ff908071ff9b8c7aff9a8a7aff9c8c7cff9c8e7cffa39382ff948575ff9a8a7aff9e8e7cff9e8e7dff998978ff8b7c6cff8c7d6eff8a7a6aff8d7e6dff8e7f6fff958474ff998876ff998775ff938272ff8d7e6fff928171ff928171ff9180702430250f23392a113d75561559755518ff958373ffa08f7cff827264ff8f7f6eff958473ff938271ff978673ff928270ff978674ff938371ff958574ff958574ff948474ff928271ff8f806fff918170ff8e7f6dff877765ff91806eff948371ff8f7e6cff978774ffa18e7bff9d8b79ff978674ff978674ff998876ff978674ff978576ff988775ff998876ff9c8c79ff958472ff978775ff948473ff988875ff988876ff988876ff938372ff918170ff958573ff948472ff8e7d6dff8c7c6cff928271ff978776ff8d7d6eff918070ff8b7b6bff8e7d6dff8d7d6cff8e7f6eff8a7b6bff8d7d6cff8d7d6cff887969ff8b7a69ff8b7a68ff847564ff7f7161ff7e7060ff847565ff887868ff907f6dff887967ff807162ff817262ff817363ff7d6e5fff7b6c5eff7c6d5eff837364ff817263ff796b5cff786a5cff75685aff75685aff736659ff7b6d5eff7d6e5fff786b5cff756859ff736657ff716355ff79695bff4d4034ff473b2fff43382cff44392dff453a2eff443a2dff42372cff42372bff45392dff41372bff43382cff42372bff42372bff45392cff44382bff44382bff483b2eff44382bff41362aff42362aff3d3327ff403529ff42362bff41352aff41352aff3d3228ff44372bff43372cff40342aff40352aff42382dff3f342aff40352b8b171511263624094a32240c3f110d09ff3b3127ff3c3228ff3d3228ff3c3127ff3b3026ff3b3027ff3b3127ff3a3027ff3b3026ff3b3026ff3b3026ff342a21ff382e24ff372d24ff362c23ff372e24ff362b23ff362c23ff362c23ff322920ff312820ff332a21ff322921ff312920ff332a21ff352d24ff322820ff352b22ff322920ff342a21ff362c23ff342b22ff322820ff322920ff2f271fff2f261eff2e251dff2d251dff2d251cff2d251dff2d251dff2d251dff2c241cff2f261dff2c241cff2d251dff2e261fff2d251eff2e271fff2c251dff2c241dff2e261eff2d241dff2f261eff2e251dff2d251dff2e251eff2c231cff2c231cff2b231cff2b231dff28211aff282119ff372c22ff392e23ff362b21ff362c21ff352b21ff342a20ff342a1fff372d23ff332a20ff352b21ff33291fff392f24ff3a2f24ff362b22ff3a2f25ff382d24ff392e24ff3b3027ff3a2f27ff3a3026ff3d3127ff3e3329ff41362cff42382eff463b30ff463b31ff483c32ff4b3f34ff4c4135ff514439ff55493eff564b3fff5d4f43ff605347ff605246ff625346ff645547ff6b5b4dff6a5b4eff706153ff6b5d4fff736354ff726456ff736457ff79695bff847465ff8c7c6dff9c8c7bff9f8f7eff9c8c7cff9a887aff9a8a7bff9d8d7eff8a796bff8e7d6dff867767ff8d7d6dff938272ff8d7d6dff8d7d6dff958373ff978776ff988977ff938472ff938373ff938373ff8d7e6e211b160e2f231d14204f3a122d745414ff988876ff9a8978ff958573ff867564ff948371ff928170ff938271ff938271ff928170ff8e7f6dff918170ff968574ff907f6fff918170ff948573ff978876ff938372ff948472ff938272ff988776ff968573ff92816eff988673ff9a8975ff998975ff958673ff9c8c7bff938473ff968674ff978573ff948371ff968674ff988774ff938271ff988776ff958473ff917f6fff918070ff928171ff958473ff978675ff928171ff938372ff90806fff918070ff928171ff8b7b6bff907f6dff8d7c6aff8f7e6dff918171ff877868ff887a6aff8d7d6dff968573ff897969ff8a7868ff847463ff887868ff847665ff827365ff867768ff877869ff857566ff8e7c6cff837364ff7f6e60ff7d6f5fff837465ff807161ff7c6e5fff837464ff807061ff7d6f5fff736658ff6d6052ff76695aff76695cff756759ff7c6e5fff726456ff76695aff726456ff7d6e5fff6a5d4eff76685aff483d32ff44382dff43382cff463a2fff453a2eff44392dff42372bff44382cff44382dff45392dff46392dff43382bff483c2fff44382cff473b2eff463a2dff42372bff44392cff41352aff42362bff42362bff42352aff45382dff3e3228ff41352bff44372dff41362cff3f342aff4d4034ff40352bff3e342aff3f342a220d0a06301d14092e36240ac52d2213ff40342aff3c3228ff40352aff3e3229ff3c3128ff3a2f25ff3c3026ff392e24ff392e24ff382e24ff372d23ff372d24ff392e24ff362c22ff392e25ff372c23ff372d23ff362c22ff382e24ff352c23ff322a22ff312820ff322a22ff332a21ff312820ff332a21ff342b22ff362d24ff352c23ff332a21ff322921ff352b22ff342b22ff332b21ff312920ff30271fff30281fff2f271eff2f271eff2e251dff2e251dff2f271eff2e261dff2e261dff2e271eff2d261eff2e261eff2f271fff2f271fff2c241dff2f261fff2d251dff2e261eff312720ff30271fff2e251dff2e261dff2b231cff2b231cff2c241cff2a221bff2a221bff2a221bff362b21ff362c22ff362b21ff372d23ff362b21ff362c22ff332920ff332920ff30271eff332920ff362c22ff3c3126ff3b3026ff3b3026ff382d23ff3b2f25ff3a2f26ff3a3026ff3c3027ff3e3229ff3e3227ff3d3228ff40352bff41352bff3f342aff44382fff473b31ff483c32ff4c4035ff51443bff52463aff54483cff594c41ff5b4e42ff5f5145ff5f5145ff5b4e41ff615446ff635548ff736355ff6c5d4fff726154ff6e5f52ff756658ff766759ff7c6d5eff7c6c5cff7b6c5dff79695cff7f6f62ff837265ff9f907dff938273ff837465ff827366ff857666ff8b7969ff8b7b6cff8b7b6dff908072ff958374ff948575ff958475ff928172ff8e7f6fff908070ff8f8070236449131a17140e251d1a152f1c1b17472a251eff928171ff948372ff8e7e6dff4c4135ff928171ff938372ff928272ff978675ff958573ff918170ff8f7f6eff8f7f6eff938270ff948572ff9c8a77ff988774ff958472ff948472ff968474ff948372ff91806fff948370ff92816eff978573ff958573ff968673ff968575ff958575ff998876ff918170ff928270ff9a8875ff938170ff968573ff958472ff938171ff978574ff968573ff928170ff948472ff938271ff928070ff8d7d6cff958372ff958473ff8d7b6cff8c7b69ff8a7966ff8e7d6bff8d7d6bff8b7b6aff8a7b6aff827362ff8a7b6aff8a7b69ff8f7e6dff8b7a69ff847465ff8b7b6aff807264ff7e6f60ff7d7061ff817163ff817162ff837364ff837463ff827362ff7e705fff877868ff807161ff756759ff7b6c5cff847563ff887865ff7e6f60ff7a6c5dff6b5e52ff7b6d5eff716455ff756759ff766859ff77695aff736657ff6a5d50ff736657ff716557ff524539ff483c30ff4b3d32ff46392eff46392dff473a2fff493d31ff4b3d32ff483b2fff473a2eff473b2fff45392dff46392dff43372bff483b2fff473b2eff44382cff43372bff473a2fff46392dff44372bff42362bff473a2fff44372dff41352aff42372cff5f5143ff44382dff40352bff3e33295931230b881c160d200f0c06342e1f0a1f342309ff3f342bff3c3329ff3e3329ff43362cff3f3329ff3b3026ff372d23ff372d23ff342b22ff3a3026ff392f25ff362c23ff3a2e25ff342a21ff362c23ff382e24ff372d23ff362c23ff342a22ff352b23ff332a22ff332a22ff352d23ff312820ff322a22ff322a21ff322920ff332a21ff312920ff332a22ff322a22ff352b23ff312920ff312820ff332a22ff2e261eff30281fff2f271eff2f261eff2b231bff2d241bff2c241cff2e261eff2d251dff2d251dff2d251eff2f271fff2e261eff2d251dff2c241cff2f271fff2e261eff2e261eff2d241dff2f261eff2e251dff2c241dff2a221bff2c241dff2a221bff28201aff261f18ff261e18ff342a20ff352a20ff32281fff362b21ff372c22ff362b22ff392e24ff342a21ff352b22ff352b21ff382e23ff3a3025ff3c3127ff392e24ff362c23ff3c3127ff382e24ff392e25ff392e25ff3b2f27ff3d3127ff3d3228ff3f332bff45382dff42362cff473c32ff4a3e33ff4e4337ff4f4338ff51443aff504438ff55493dff584b40ff5a4d41ff625347ff625347ff615346ff655649ff615346ff6a5c4eff6b5c4fff6a5b4eff6f5f53ff766659ff78695bff7c6c5eff7d6d5eff806f62ff857669ff7d6c60ff7e6d60ff7a6a5dff867466ff827163ff847466ff8a796aff847364ff857667ff8b7b6cff8a7a69ff8f7e6fff928272ff998878ff948374ff8f7f6fff8e7e6fff948474276e4f17286e4e174c62491dc7594c36a13a362eff807163ff8f7f6eff978775ff928270ff897969ff92826fff8a7b6aff958472ff9a8977ff92806fff978472ff978673ff907f6dff93816eff92806dff91806cff93826eff968573ff958473ff92816fff978472ff90806eff93816fff92806eff998774ff928171ff938372ff968774ff948472ff928270ff938270ff998776ff9b8977ff958372ff968473ff958473ff958573ff968574ff978675ff938271ff938271ff938271ff8e7d6cff8c7b6aff948270ff8f7d6bff8c7c6aff8c7b69ff8d7d6bff867665ff8d7c6bff837464ff807162ff857666ff847464ff857564ff887867ff867667ff8a7a6aff847464ff857666ff847465ff897969ff796b5cff7f705fff7e6e5fff7f7161ff7f7060ff7f705fff7a6c5aff847462ff7d6e5cff807160ff817262ff746658ff726455ff746557ff786959ff746756ff746657ff6f6254ff6d5f52ff736456ff675a4bff716455ff6c5f50ff7a6a5aff625446ff4c3e31ff45392eff45382dff46392eff493c2fff483b2fff483c2fff473b30ff4b3e32ff4c3e31ff473a2dff45382cff45382cff47392dff43372cff45382dff45392eff46392eff403429ff43372bff44382cff43362cff44372dff4f4236ff4a3d32ff43382dff40352b202016073f35240a661a140c190d0a061e3120081e382508ff40352bff3d3329ff3e3329ff3b3127ff3d3228ff3b3127ff3b3127ff382f25ff392f25ff362c24ff372d24ff352b22ff362c23ff372c23ff362c23ff392e25ff372d24ff372d23ff382e25ff332a22ff322921ff302820ff312820ff352c23ff322921ff322921ff332a21ff312820ff312921ff312820ff2f271eff322a21ff342c23ff322920ff312820ff30281fff2e261dff312820ff2f261eff2d241cff2b231bff2d251dff2b231bff2c231cff2f271fff2d251eff2d251dff2e261eff2f261fff2d251dff2d251dff2d251dff2c251dff2d251eff2d241dff2b231cff2f261fff2c241dff2c231cff2e251eff29211aff29211bff29211aff332920ff33281fff342920ff362b22ff382c23ff352b22ff382c23ff3a2f25ff362c22ff372d23ff382e23ff3a3025ff3b3026ff392f24ff3b3126ff3c3026ff392f25ff3a3026ff3a2f26ff3c3027ff3c3027ff3c3127ff40342aff44382dff45392fff483c31ff4a3e34ff4f4337ff4f4337ff54483cff53473bff51463aff5c4e43ff56493fff594c42ff5e5146ff615348ff605246ff625346ff625549ff67594dff6c5e51ff6d5f53ff706156ff746559ff77685aff7b6b5eff79695dff817165ff7e6e60ff7d6c5fff817062ff7f6e60ff837163ff847365ff8b796bff837163ff877667ff907f6eff917f6eff8e7e6eff928171ff928071ff907e6fff8d7c6dff8e7c6eff8d7d6eac826c4f256e4e17266e4f16266e4e17326d50184d644b1ad588765dff988675ff958473ff928171ff907f6fff92816eff93826fff948371ff948371ff948370ff958572ff958574ff907f6eff93816eff92826eff958471ff968472ff978574ff907f6fff958472ff998875ff93816fff907f6dff968672ff90806dff907f6eff948372ff907f6eff8f7e6cff8f7f6cff928271ff8e7d6dff8c7d6dff8d7e6eff8c7d6bff938171ff917f70ff948372ff92816fff93816fff958471ff8a7a6aff908070ff988673ff958371ff887666ff897868ff897968ff887867ff887968ff817262ff867765ff847363ff877868ff817364ff827263ff847566ff807163ff857666ff817162ff827263ff827566ff7e6f61ff7d6e5fff817261ff837463ff817161ff857663ff7f705fff807160ff817160ff857664ff7f7060ff796b5cff7d705fff796a5aff7c6d5cff786a5aff776959ff756758ff736656ff706253ff736656ff6e6152ff736556ff6f5f51ff79695bff716356ff524539ff463a2fff4a3d32ff4b3f32ff463a2eff44382dff43372dff4a3c31ff4a3d30ff463a2dff45392dff41352aff44382cff45392dff473b2fff43382dff44382dff40352aff44392dff41362cff453a2fff56483aff473b30ff44382eff42382d681d18131b1f1607193021083b100d09150d0a061f322108ff43372dff43382dff3d3328ff3c3228ff3c3228ff3b3027ff362d25ff382f26ff372e25ff362d23ff372d23ff322a22ff332a21ff362d23ff322921ff372d24ff372d24ff362c23ff372d24ff352c23ff342b23ff342b22ff322921ff342a22ff362c23ff342a22ff352c23ff342a22ff332920ff342b22ff352b21ff312920ff312920ff322a21ff322820ff2f271eff2f271eff2e251dff2e251dff30271fff312820ff31281fff2f261fff2d251dff2e261eff2d241dff2d251dff2d251eff2c241dff2d251dff2d251dff2f271eff2d261eff2d251dff2c241dff2c231cff2b231cff2e251eff2f261fff2b231cff2e251dff2d241dff2a221bff2a211bff332920ff32281fff31271fff322820ff32281fff362b21ff372d23ff362b22ff392e23ff3a2f24ff3b3025ff3a2f25ff392e24ff3a3025ff3a2f25ff3a3025ff352b22ff382e24ff392f25ff382e24ff3b3026ff3d3328ff42372cff41362cff453a2fff463b30ff493e32ff4a3f34ff4f4237ff53473cff514539ff574b3eff584c3fff594c3eff594d42ff5a4d43ff5e5045ff615346ff635446ff68594bff6b5c4eff706154ff706254ff716356ff736558ff78695bff7a6c5dff7b6c5fff7b6e5fff7e7061ff7f7061ff837565ff857667ff867666ff867566ff8b7a6bff8d7b6bff8d7d6cff907f6eff897a68ff87796bff897869ff897769ff8e7c6eff8e7e6fff8e7e6eff877768ff918072c27465572533281623563d142364491621694a131d644814ff958473ff988775ff9b8976ff8b7b69ff948572ff8e7e6dff8f7e6effa2907bff988774ff9f8c7aff9b8977ff907e6cff948270ff948371ff998775ff928270ff968574ff978676ff91806fff948370ff937f6dff9c8874ff998774ff958472ff8c7c6bff8f7f6eff918070ff907f6fff918170ff8f7f6eff90806fff948372ff8f7f6eff918170ff91806fff8c7c6bff958473ff928170ff948271ff938272ff907f6eff8c7c6bff8b7a6aff8d7b6bff887868ff8c7d6bff837463ff857465ff8b7a6aff847464ff7b6b5cff877666ff8c7c6bff907f6dff847463ff8e7d6cff817263ff807062ff8b7d6dff837464ff817263ff7f7060ff796a5bff7e7060ff817162ff837464ff7c6d5dff7f6f5eff857463ff7f6f5fff847463ff786959ff746657ff7a6b5aff786a5aff796b5bff7d6f5fff807260ff7d6f5eff6f6253ff766859ff776859ff726556ff746555ff756656ff7b6b5dff766759ff78695aff7b6c5dff5b4d41ff4c3f33ff44392dff44382dff3f3429ff46392eff43372cff463a2eff44382cff3f342aff44382cff44382dff44382dff483b2fff46392eff42362bff41362cff44392eff42372dff4c3f32ff473b2fff44392d44231a0e26100d071a2419071b322108140d0a0617120d06f641352aff44382dff41362bff40362bff41362bff3d3329ff3a3025ff382f26ff372d24ff362c23ff372d23ff382f24ff382e23ff392f25ff392f25ff3b3026ff362d24ff362c23ff342b22ff352c22ff352b22ff352d23ff352c22ff352c23ff372e24ff382f26ff362c23ff362c23ff362c23ff382e24ff352c22ff342b21ff30281fff2f271fff2c241cff30261fff2f261eff2e261eff2d251dff2e261eff30281fff312920ff30271fff2e261fff2e261fff2e261eff2c241dff2e261eff2f261fff2d251dff2b231cff2b231bff2b241cff2c241dff2e251dff2b231cff2b231cff2a221bff2b231cff2c231cff2d251eff2d241dff2b231cff2c231cff2c231cff32281fff332820ff342921ff332920ff342a21ff362b21ff362c22ff382e23ff382e23ff372d23ff3a2f24ff362c22ff392f24ff3a3024ff3b3025ff382e23ff3a3026ff3a3026ff3a3026ff3e3328ff3b3226ff3f3429ff3f352aff44392dff483c30ff463b2eff4a3e32ff4c4034ff4c4135ff504438ff4f4337ff52463aff574c3eff594d40ff5b4f42ff5c4f42ff584c40ff615446ff635648ff66584aff6e6051ff6b5e50ff726556ff6d6053ff716456ff786a5bff7a6c5eff776a5dff796b5fff786a5eff7b6e5fff7c7061ff837566ff817262ff887968ff887966ff8b7b69ff877868ff928372ff90806fff89796aff88776aff8a7a6bff908070ff918070ff968475ff928271ff938272ff9382723b342a1c2d261f132e1b1714201c1811223a2c111d553e12ff8d7d6cff8a7b6aff90806fff8b7a6aff918170ff938372ff958473ff978472ff978572ff988875ff948370ff968572ff9b8976ff968472ff968471ff988775ff8b7b6bff968573ff8e7d6bff91806eff958372ff92806fff8e7c6cff887767ff8d7c6cff8b7b6bff938272ff928271ff928270ff92816fff8e7e6dff8e7e6dff928271ff8d7e6dff8b7c6bff91806fff968372ff907f6eff8d7d6cff958372ff958372ff887868ff89796aff857465ff897869ff867767ff857665ff887969ff7c6e60ff887868ff7d6e5eff887867ff847464ff8b7a69ff887766ff847464ff8a7b6bff857667ff827263ff827463ff847564ff7e6f5fff857564ff857565ff887867ff827262ff827160ff81705eff837261ff827160ff796a5aff746656ff7a6c5aff7d6e5eff827462ff796b5bff7b6c5bff7f7060ff817262ff766959ff6e6051ff7c6c5cff7f705fff7a6a5bff7a6b5cff796a5bff786a5bff7c6e5fff827364ff7e7061ff51463aff44392eff3f3329ff463a2dff43382cff45382dff45392dff44382dff3d3328ff42372cff41362bff473b2fff473a2fff44382eff42372cff42382dff4e4235ff483c2fff4a3f32e644372a211d15071c0d0a0618291b081c31200823110c06ff43372cff42372cff43372cff40352aff3f3429ff3f342aff3c3227ff3c3227ff3c3126ff3a3026ff3a3026ff3a3025ff392f24ff3b3025ff3c3227ff3a3025ff3c3227ff382e24ff372d24ff372e24ff372e24ff332b23ff352c23ff342b22ff372d24ff332b22ff352c22ff352c22ff382f24ff382e24ff362d23ff352c23ff352d23ff332b22ff312920ff2e251eff312920ff30281fff31281fff30271fff312920ff31281fff322920ff352d24ff312921ff302820ff2e251eff2e251eff2f261eff2e251eff2d251dff2d251dff2d251dff2c241cff2e261eff2d251dff2e261eff2c241dff2c241dff2c241cff2a221bff2c241cff2b231bff2c241cff2c241cff2b231cff352b21ff352b21ff342a21ff32281fff352b21ff382d23ff382e23ff3a2f24ff3c3026ff392f24ff392e23ff382e24ff3a2f24ff3b3125ff3a3025ff392f24ff3b3026ff3a3026ff3b3126ff3b3026ff3a3125ff40352aff40362bff44382dff483c30ff483c30ff4a3e33ff4b3f34ff4d4135ff4e4236ff54483bff574a3eff594c3fff5b4f41ff594d40ff5e5244ff615547ff5a4e41ff605447ff695b4dff6a5c4eff6e5f51ff716254ff716456ff716456ff726557ff7b6d5eff7b6d5eff7e6f5fff807160ff7d7060ff7f7262ff807262ff7f7060ff877866ff8b7b69ff8e7e6cff928272ff948473ff938372ff8e7f70ff8c7c6cff8b7c6cff938373ff938271ff978675ff988775ff998775ff978775ff9684744042341a2a1e1b171f1d181322221b10201a160e3e2d261dff968473ff988674ff978674ff77695aff968674ff938371ff978674ff968370ff93806eff948370ff998875ff998874ff948371ff90806fff928271ff968673ff938370ff91816eff8d7d6bff8e7f6dff90806dff907f6eff8b7b6aff938171ff8f7e6eff938371ff8b7b69ff90816eff8f7f6cff907f6cff8c7b6aff897868ff897868ff897868ff8c7b6bff897867ff91806dff8d7e6bff8b7b69ff90806dff8b7a69ff857565ff8e7c6bff877665ff7f7060ff837363ff847564ff8d7d6cff8d7d6cff817261ff8d7d6cff887768ff8b7a69ff877766ff847564ff8b7b6bff887968ff877867ff867565ff847564ff867565ff857464ff857565ff877665ff827361ff7f6f5eff796b5aff7c6d5cff7e6f5cff746555ff7a6a5aff796958ff7e6f5fff7d6f5fff7e7060ff7d7060ff726556ff7f7261ff7b6d5cff736554ff746655ff7d6e5cff6e6153ff726555ff706354ff7e6f5dff7d6f5eff7a6c5cff746657ff6f6255ff665a4cff483d30ff473b2fff473b2fff463a2eff493c30ff473b2fff45392eff483c30ff463a2eff463a2fff493d32ff42372cff44382dff5d4f40ff45392dff463a2eff493d301b3523082815100718130e06272b1d09203322099230261bff42372cff42372cff43372cff3f3429ff41362bff3e3329ff3d3328ff3c3228ff3d3328ff3b3127ff3b3127ff3a3026ff393025ff3c3227ff393026ff3c3227ff3a3026ff392f25ff352c23ff362e24ff392f25ff352c23ff372e24ff352c23ff372e24ff352c23ff342b22ff372e24ff392f25ff392f24ff3b3026ff392f26ff382f25ff322a21ff342c23ff332a21ff342b22ff322920ff322920ff342b22ff332a21ff342a21ff332a21ff473d34ff463d33ff473d33ff433930ff453b32ff40362dff3e352cff372f26ff2f271fff2c241dff2d251dff312820ff302820ff302820ff2e251eff2d251dff2b221bff2d251dff2e261eff2d251dff2f271eff2f261eff2c241cff362c22ff362c22ff342a20ff362c22ff362c22ff362c22ff382e23ff3a2f25ff3a2f25ff392f24ff3a2f24ff392e23ff392e24ff392f24ff392e23ff3b3026ff392f24ff392f24ff3c3025ff3d3228ff3f342aff3e3429ff3f352aff44382eff46392dff473b30ff4a3f33ff4b4034ff4b3f33ff4c3f32ff53483bff55483bff57493cff5b4d3fff5a4d40ff5d5143ff615446ff675a4cff645749ff6c5d4fff6d5e50ff736455ff726558ff6d6153ff6d6153ff726558ff796c5cff7e7160ff7d6d5eff756758ff807263ff7f7162ff7f7061ff847565ff867665ff8d7d6aff8f7f6dff8d7e6dff918271ff938472ff8f8172ff8c7c6cff8f7f6fff8c7d6cff928170ff928272ff958473ff9c8b78ff968774ff998776ff9e8c7a3c70521835644b18304c3914323026131d18160fb2665b50ff978674ff917f70ff928171ff8c7d6cff91826fff968673ff93826fff93816eff968673ff998876ff8f7f6dff938270ff8f7f6dff938271ff958472ff948370ff938371ff8d7e6cff8c7d6cff8d7d6bff8b7a69ff8c7b6aff968472ff917f6fff988674ff8c7c6bff8c7c6aff8a7a68ff877665ff847463ff8a7a69ff897968ff8e7d6cff968674ff907f6eff8f7e6dff897968ff8c7d6cff8b7a69ff8c7b6bff8c7d6bff8f7f6dff847464ff8c7d6bff867665ff867665ff897a69ff877767ff8b7a69ff8b7b6aff847464ff887767ff827263ff817262ff877766ff837564ff7b6d5eff837263ff847464ff827262ff807060ff807161ff7f7060ff827262ff827362ff877664ff796a5aff7f6d5cff786859ff7b6a5aff786758ff7d6d5dff7c6e5eff786a5bff796c5cff76695aff7a6c5cff726455ff6e6051ff7f6f5dff847461ff6c6051ff716456ff736655ff776858ff827463ff827363ff726456ff746758ff6d6151ff776859ff483c30ff42372cff453a2eff44382dff493d31ff43382dff493e31ff483b2fff483b30ff483c31ff43372dff655648ff4c3f32ff493c30ff463a2f172016071c3322082b150e07210f0c061e291c081a2c1d08ff44382dff44392eff44382dff41362bff42362bff41372cff3e3328ff3d3227ff3e3328ff392f25ff3f3529ff3c3227ff3f352aff3c3328ff3d3328ff3c3228ff3d3328ff3b3228ff372e25ff362e24ff392f25ff382f25ff362d23ff362c23ff372e24ff372e24ff362d23ff372d24ff382e24ff3b3126ff3b3126ff393025ff393026ff372e24ff372f24ff332b22ff322920ff332a21ff322920ff352c22ff332b22ff372d23ff342b22ff332a21ff483e34ff50453aff4b4137ff483d33ff473d34ff483d34ff463c33ff453c32ff433930ff312820ff2f261fff302820ff302820ff2f271fff2f261fff2c251dff2e261eff2d251dff2c251dff2d251dff2e261eff2f261eff2e251dff342a20ff342b21ff362c22ff382d23ff382d23ff382d23ff3b3025ff3d3227ff3b3025ff3d3227ff3d3227ff3b3026ff392f23ff3a3024ff3b3025ff3c3126ff382d24ff3b3026ff3d3228ff41352aff3f3329ff3f342aff40352aff41352bff44382dff483b2eff4a3e32ff4e4236ff4d4035ff483d31ff504437ff524639ff55493cff54483cff5e5043ff655749ff5d5143ff6b5d4fff65574aff695c4dff6a5b4dff6f5f50ff6c5d4eff6a5d4eff726556ff736657ff716555ff7c6e5fff736658ff786a5bff7c6e5fff7c6e5fff7e7060ff7d6f60ff847566ff8d7d6dff8c7b68ff8f806dff91806eff938272ff968675ff8f7e6dff8a7a6aff8f7f70ff918170ff988776ff998876ff9c8b79ff9c8b79ff9b8b79ff9a8a78f09c8a7425735316316c4f151d684c151e694b121a5e4512e08b7a66ff958371ff998776ffa79482ff90806eff948573ff978774ff958471ff90816eff887968ff938370ff958572ff90806fff958473ff968674ff988875ff958473ff908170ff938473ff958473ff897969ff8c7b6bff8c7c6cff8f7f6dff8f7e6dff8d7b6bff8b7b6bff8b7b6aff8f7e6dff807161ff8b7b6aff8a7b69ff8b7b6bff8a7969ff887867ff877666ff887868ff857665ff8a7968ff877666ff887767ff827262ff857565ff827363ff817162ff887867ff837363ff867665ff8d7d6cff877665ff8a7868ff897868ff7b6a5cff8b7a68ff877666ff867666ff847563ff7f705fff827362ff867665ff8e7e6eff817263ff857565ff7e6e5eff7b6c5dff807161ff7f6f5fff7c6c5cff7b6c5dff766859ff766758ff766657ff7c6d5eff7e7061ff817363ff7d7060ff796b5bff756757ff80725fff7b6d5bff766958ff726656ff7c6f60ff796b5aff7f7160ff7c6d5eff76685aff6e6053ff706354ff695c4eff685b4dff44392dff4f4337ff584c3fff4b3f32ff463a2dff493d30ff4e4235ff615547ff6d6050ff695d4fff988776ff706254ff736555ff6d5f502016110a18271b092335250a2316100768100d092a2a1c09ff44392dff463a2dff463a2fff44392eff44392dff3e3429ff40362aff3f3529ff3d3228ff3d3328ff42372cff41362aff3e3328ff3c3328ff3d3228ff3d3328ff3c3127ff3c3227ff3d3228ff362d23ff392f25ff362d23ff3a3126ff362d23ff352d23ff382f25ff372d24ff372e24ff372d23ff382f25ff3a3026ff3b3026ff3b3126ff443a2eff41372dff3d3329ff3c3329ff362c23ff332a22ff362d24ff4c4136ff4e4338ff50453aff50453aff4c4137ff4c4137ff4e433aff4b4137ff4b4137ff473c33ff443a30ff453b32ff41372eff3f352cff40362dff322920ff302820ff2f271fff30271fff2e271fff2f2720ff30271fff2e261eff302820ff312920ff302820ff30281fff312920ff342a20ff362b21ff382d23ff392e25ff372d23ff372c23ff382d23ff392f24ff3d3227ff3c3126ff3b3025ff3b3025ff3a2f24ff372d23ff392e24ff3b3025ff3b3026ff3b3026ff3c3127ff3e3329ff3e3329ff41362bff3e3329ff3d3228ff3f342aff473b30ff473c30ff4a3e32ff4b3f34ff4c4035ff514438ff564a3dff54483cff55493cff5a4d40ff5d5043ff66594aff66594bff605346ff645648ff695a4cff6f6153ff706253ff6a5d4fff706254ff726556ff726556ff77695aff746759ff7d6d5eff7f7161ff7c6f5fff847566ff877868ff8a7b6bff8d7f6eff8d7e6cff928271ff928170ff948472ff998774ff93826fff928270ff8f8170ff948473ff938271ff988776ff9c8a77ff9d8c77ffa2917effa3927eff9e8e7bae6d605025352810174b36101d6549132771521628705015ff968574ff9a8977ff958372ff998675ff91806eff93826fff92806dff91806dff93826eff998773ff948370ff958573ff948372ff90806eff928170ff92816fff90806eff938271ff948372ff8d7c6cff8b7a69ff8e7d6dff92826fff928070ff8f7f6dff8f7f6dff8d7c6cff8a796aff8b7b6aff8d7d6cff877767ff827363ff8b7967ff93816eff897968ff8a7a6aff867665ff8d7d6bff8c7c6aff8b7a6aff847565ff7f7060ff80705fff837464ff89796aff877869ff817162ff7d6d5eff857464ff887766ff8c7c69ff867564ff7d6d5dff867765ff867765ff817162ff827364ff887867ff817160ff857665ff8b7b6aff807061ff847463ff7d6e5eff847463ff877766ff7c6c5dff7e6e5eff776858ff776958ff746556ff756757ff7c6d5cff827362ff7f715fff786a5aff736655ff716353ff827360ff786a5aff77695aff7d7060ff796b5bff766959ff7d6f60ff7b6e5fff766a5aff6f6254ff453a2eff43382cff493e31ff695b4eff726557ff736656ff6f6252ff6e6152ff6d5f50ff67594aff685c4cff756757ff736454ff6c5e50ff7466565b372d1e261b160c2c412e101f513a101b1d160b2714100bff635649ff615446ff5c5043ff514539ff4d4235ff453a2eff40362bff43382dff40362bff3d3328ff3d3328ff42372cff43382cff3b3227ff3d3328ff3d3328ff3e3328ff3c3228ff3d3429ff3a3127ff382f25ff393025ff3a3026ff382f25ff372e24ff362d24ff393025ff382f25ff382f24ff3a3026ff382e25ff3c3328ff3c3228ff3f342aff554a3eff544a3eff53493dff54493cff504538ff4f4539ff51463aff4e4338ff4f4438ff4f443aff504439ff51463aff51453bff4e4238ff4b4136ff4a3f35ff493e34ff483d33ff453b31ff443a31ff40362dff443b31ff3e352cff393128ff2d251eff2e261eff312820ff312921ff312921ff2e271fff2e261fff2e261eff2f271fff302820ff2e261eff332a20ff362c22ff392e24ff3b2f25ff382d23ff392e24ff382e23ff3b3025ff3b3025ff3a3025ff392e24ff392f24ff3b3025ff3a2f25ff3a2f25ff3b3026ff3b3026ff3a3026ff3c3127ff3d3329ff3c3127ff3d3228ff3f342aff3f342aff42372dff463a2fff473c30ff493e32ff4d4134ff4c4034ff514538ff55493cff56493cff56493dff594c3fff605245ff605244ff655749ff625647ff685a4cff695c4dff6d6152ff6e6152ff6f6253ff746657ff77685aff786b5bff77695bff7a6c5dff786a5cff817262ff807262ff7e7261ff877968ff897a69ff8a7a6aff8f7f6eff968473ff91816eff958370ff978572ff958472ff938271ff90806eff968574ff9f8d7bff948471ff9f8d7aff9f8d7affa3927effa3917effa2917eff9d8c7a51362f261f18140f16251c0e1d2c220e29382b102f5c4618ff948272ff958372ff9c8a79ff9f8e7bff998775ff9b8978ff998776ff978674ff94816eff94826fff938371ff907f6eff938370ff938371ff8d7d6cff8e7d6cff8e7e6dff978675ff877766ff9a8975ff8d7b6bff8e7e6dff90806fff8a7b6aff887767ff837264ff877768ff877768ff8d7c6cff8d7c6bff857565ff887867ff897868ff867666ff91806eff857464ff8f7d6cff897968ff847463ff867564ff857565ff847565ff877869ff857766ff837464ff7e6f5dff827262ff847364ff867565ff827363ff7e6f5eff7e6e5dff7e6f5eff877767ff807161ff827262ff7d6e5fff7a6b5bff7d6d5eff857567ff78685aff837464ff807161ff867566ff857463ff847362ff746456ff837362ff796959ff786858ff796a59ff7c6d5dff7e6f5fff7f7160ff736655ff796958ff877764ff867765ff6f6151ff77695aff807362ff7c6e5eff796b5bff6f6353ff847565ff786b5bff736658ff4a3f32ff473c30ff483d31ff6d6053ff76685aff6f6253ff706354ff6c5e50ff746657ff6b5e4fff6e6152ff726555ff746656ff706152be66553d2030230c201f170b16432f0f164b340d1817130aff685b4dff635549ff6a5d4fff6c5f51ff685b4dff675b4eff64584aff42372cff42372cff40362bff42372cff3d3428ff3f352aff3f3428ff40352aff3d3328ff3f3529ff40352aff3e3429ff3c3228ff382f25ff3b3227ff3a3127ff3c3328ff3a3026ff3c3228ff382e24ff3d3228ff3b3126ff3a3026ff392f25ff3a3026ff3d3329ff3a3027ff44392dff584d40ff554a3cff504538ff564a3dff53493cff504539ff50463aff574b3eff54483cff53483cff52463bff53473cff52473bff53473cff4f443aff4c4137ff493f35ff483e34ff473d33ff433930ff41382eff443a31ff453b31ff463d33ff40372eff302820ff302820ff312920ff322921ff302820ff2f281fff2e271eff302820ff2e261fff2d261eff332920ff372c23ff362c23ff392e24ff352b22ff392e25ff3b3025ff392f24ff392e24ff3d3227ff3c3127ff3c3126ff3c3126ff3b3025ff3a3025ff3a3025ff3e3228ff3a3026ff3d3227ff3e3329ff42362bff3e3329ff3e3429ff44392eff463a2fff453a2fff453a2fff4c4035ff4f4236ff4c4034ff514438ff524539ff55483bff56493cff574a3eff5f5143ff685949ff655649ff645749ff645648ff695b4cff6c5f51ff6b5e50ff6f6254ff756758ff7a6b5bff766859ff806f5eff807163ff7b6c5eff827263ff827464ff897b69ff8a7b6aff847566ff8c7d6dff91816fff8e7e6cff928270ff998673ff94816fff968573ff978674ff958372ff958472ff9e8b78ff9c8a77ffa5927effa2907cffa89581ffa59480ffa69582ffa3927fffa69481224936111a261c0e2f3226112f272013281b1813251b1814ff9b8877ff9a8877ff9e8b7aff978676ff998675ff9a8876ff958373ff8f7f6bff9a8673ff958472ff988774ff978673ff988874ff938370ff9e8d7aff917f6fff958372ff8d7c6cff8d7c6bff8e7e6dff8f7d6dff928170ff958372ff8f7e6eff847466ff867667ff90806fff8d7a6aff8d7c6bff897766ff897868ff8e7c6cff91806fff938170ff887766ff887767ff8a7969ff887767ff7f7061ff7e6f60ff817162ff837363ff857464ff877666ff827363ff857665ff807060ff877564ff877564ff7e6f5eff817061ff827261ff827261ff807060ff837363ff827161ff7b6b5cff7f6f60ff837464ff7f7061ff7d6e60ff7b6c5eff877666ff7e6e5eff766659ff89786aff7d6e5fff796a5bff837261ff716455ff76695bff7c6f5fff807262ff7a6b5dff877765ff796a5aff7f7060ff7b6c5dff766759ff807363ff796c5cff756858ff7a6c5bff746656ff796b5bff736556ff564a3dff493d31ff4d4234ff706355ff746758ff706354ff716455ff6a5e50ff64584aff7c6e5fffa1917eff695c4eff7c6d5bff7a6a5a18553c0d232e220c17291e0c16402d0e154a330ee35c5043ff685b4dff695d4eff6c5e50ff6a5c4fff6c5f50ff6b5e50ff675b4dff625549ff493d32ff45392eff40352bff42372cff40362bff43382bff42372bff42372cff3f3429ff3f3529ff3e3529ff3b3127ff40362bff3d3329ff40362bff4b4136ff4b4135ff4d4236ff43392fff483d32ff473d31ff473d31ff41372cff41372dff3f342bff453b2fff594d40ff54493cff574b3eff584a3dff574b3fff554a3eff51463aff50453aff51463aff55493dff594d40ff54483dff554a3eff54473cff53473bff52473cff51453bff50443aff483d34ff4c4137ff483e34ff443a31ff494036ff473d33ff4a4035ff443a30ff40372dff41372eff312820ff30271fff2e261eff2f271fff302820ff2f271fff2c251eff302921ff3b3025ff372d23ff3a2e24ff3a3025ff3a3026ff392e25ff3b3027ff3b3026ff3b3026ff3b3026ff3b3026ff3a3025ff3b3025ff3c3227ff3d3228ff3c3127ff3b2f25ff3a3025ff3c3127ff3d3229ff3a3026ff41362bff42372cff42372dff45392eff463c31ff493e33ff4c4035ff4c4035ff504337ff514436ff534538ff5a4c3fff584a3cff5c4e41ff5d4f42ff5c4e42ff605245ff615447ff635649ff625648ff675b4dff6b5f50ff6a5e50ff6f6153ff736455ff736555ff847464ff7d6d5eff817162ff827363ff847565ff867767ff837363ff8f7d6bff91816eff8f806dff907e6cff968572ff958471ff9a8875ff998773ff968370ff9e8b77ff998875ff998875ff9b8a78ffa08e7bffa89583ffa89783ffa79480ffae9d88ffa59480ffa1907cff9c8a79216749122b6d4f14225d4312213a2a1228261e13a1635647ff9d8c7dff998978ff958474ff837363ff998676ff938170ff93816fff998775ff958473ff978572ff978573ff92806eff968571ff968572ff907f6eff91806fff978573ff988675ff8f7e6eff907f6fff9c8a78ff9c8a79ff9e8d7bff938272ff8c7a6bff877666ff907e6eff8b7968ff8b7968ff8a7a69ff8e7c6bff847363ff8b7967ff8e7d6cff897867ff897968ff897868ff827263ff7f7060ff847465ff847464ff827261ff837261ff897968ff867565ff817161ff887766ff857564ff807162ff827262ff867464ff847463ff867565ff857566ff827263ff847463ff807162ff837364ff7e6f60ff7e6f60ff806f61ff817162ff867565ff887667ff857566ff7d6e5fff7a6a5dff79695aff78695aff7e6f60ff7d6f60ff7c6e5dff847564ff847565ff75685bff837364ff7c6e5fff807160ff7b6d5eff7f7262ff786b5cff766858ff766959ff7a6c5dff736658ff746759ff77695aff736558ff736558ff786a5bff746658ff736557ff675b4dff6e6053ff8d7e6eff766757ff6e6050ff76675721392a0f1f533c0f162f220b112e210c1f47310e3d533d1aff695c4eff6d5f52ff6f6153ff6e6052ff6b5e4fff6d5f51ff695d4fff675a4cff695c4fff655849ff584b3fff45382eff43372cff42372cff41362bff40352aff41362bff3d3328ff3e3429ff3c3228ff3e3429ff3b3127ff3b3227ff3c3228ff564a3eff574c3fff5e5345ff584d40ff5e5345ff54483dff53473cff584e41ff584c3fff5c5042ff574c3eff574c3eff594c3eff54483cff4f4438ff584d3fff594d3fff584b3eff584c40ff564b3eff51473bff52473cff564b3fff594d42ff544a3eff55493dff54493dff52473bff4e4439ff493e35ff483e35ff4b4137ff443b32ff483e35ff4b4237ff4c4237ff4b4035ff493e34ff443a30ff453a30ff42392fff352d24ff30281fff322921ff302821ff2f261fff302720ff392f25ff3a2f25ff3a3026ff362c22ff3a2f24ff3a2f25ff3a2f25ff3b3025ff3c3025ff3b3025ff3d3228ff3b3127ff392f25ff3a3026ff3c3226ff3b3126ff3c3127ff3d3228ff3e3228ff3f342aff3c3227ff3f3429ff40352bff44392eff453a2fff483c31ff493d33ff4d4136ff4e4338ff4e4237ff4b4033ff5a4b3dff5c4d3fff5d4e41ff574a3dff5b4e41ff5d5143ff605447ff635748ff645949ff64584aff6c5f51ff685c4dff736654ff706454ff6f6252ff746554ff796b5aff776858ff78695aff7a6c5cff7f7061ff867566ff8b7b6aff8d7d6bff928370ff8f7e6cff8a7b6bff8c7d6cff8f806eff907f6eff978573ff958472ff9d8a76ff988875ff988676ff9b8a78ff988875ff9f8d7affa69481ffa4917dffa18e7affa1907cffa49380ff9f8d7be496846e226649131c6549121c63471226694c13246b4d14ff958474ff9a8978ff958474ffa08e7cff948272ff928271ff958474ff958474ff958372ff918070ff998775ff948171ff938270ff958472ff938270ff92816eff8f7f6cff92806fff9d8b7aff9e8d7cffa49280ff9f8d7cff9d8b7aff978675ff877667ff8c7a6aff8f7d6dff887766ff847463ff897968ff887766ff837363ff8c7b6aff8d7c6bff917f6fff897868ff8c7c6bff827262ff847364ff877666ff8a7968ff887766ff8e7d6bff887867ff887766ff857464ff7c6d5dff81705fff887766ff8c7a6aff8c7b6bff7d6e5eff7f7061ff7f6f60ff887867ff877765ff807161ff8d7c6bff837365ff807062ff7b6d5fff857464ff847363ff7e6e5fff7c6d5fff7b6c5dff78685aff776759ff786a5bff706354ff807061ff807060ff817262ff7d6f5fff7d6e5fff807161ff7c6d5eff746859ff7b6d5eff7e7060ff7c6e5fff796b5cff726455ff776b5cff76685aff746658ff746658ff726558ff746658ff706355ff6f6255ff766859ff6b5d51ff918170ff766657ff746455ff7466562f1a16132842300f1d513a0e191d160b161c150b4d523c1cff695b4eff675a4dff6a5c4fff6e6052ff68594dff6c5f51ff695b4eff685b4dff6b5e50ff685b4eff695c4dff695b4dff5f5245ff473b30ff41362bff41372cff40362bff40352aff40362aff40372aff41362bff41372cff3f352aff3f3529ff3c3327ff53483bff594d3fff5d5244ff635648ff544a3dff574c40ff564c3fff584c40ff5b4e42ff5b4f41ff5c5043ff5a4d40ff51473bff554a3eff554a3eff574b3fff55493cff554b3eff5b4f43ff50473cff53483eff544a3eff52483cff574b3eff53483dff52473aff51463aff53493dff4f4439ff473d33ff493f36ff493f35ff423a30ff473d33ff463d33ff453d33ff494035ff473d33ff473d33ff463c33ff41372dff463b31ff40362dff393027ff312821ff2f261eff2d261eff3a2f25ff3a2f24ff3c3026ff3d3328ff3e3329ff3c3127ff3b3025ff3a2f26ff3b3027ff3d3226ff3c3126ff3c3228ff3b3127ff3d3228ff3b3027ff3c3126ff3f3328ff3f3328ff3e3328ff41352aff3f3429ff41362bff42362bff43382cff453b2fff473b2fff493d32ff4b3f34ff4f4338ff4f4338ff4e4136ff56483bff5a4c3fff584b3eff574a3dff594b3eff5d4f41ff5e5143ff5e5244ff645749ff6a5d4eff665a4cff6f6050ff736554ff766857ff776957ff756654ff7a6c5bff867565ff7f6e5fff7c6d5eff7f6f60ff867564ff78695bff8b7b6aff8e7d6bff8a7a69ff887869ff8d7c6bff91806fff8d7d6cff938371ff968573ff978674ff998a77ff9b8978ffa08f7dff9c8b79ffa18f7bffa2917dffa3917dff9b8a78ffa1907dffa08f7cff9b8a78ff9d8c7b8662533f1f1b170e262d23101e573e111e63481226684914ff988676ff988675ff968573ff938372ff958475ff938273ff8f7f70ff8e7e6fff8f7f70ff978574ff958474ff978473ff8f7d6bff91806fff938270ffab9883ffa79682ff9a8978ff998875ff978777ff988777ff998879ff978777ff88796aff857465ff8a7768ff8a7969ff897767ff907f6eff867464ff93806fff8b7969ff93816eff8b7a69ff857564ff90806eff8f7e6dff8c7c6cff837363ff857566ff867565ff867565ff8f7d6cff8f7e6dff827262ff867564ff847362ff907e6cff8b7a6aff847464ff827263ff7c6d5eff857564ff847464ff7d6d5eff7f7060ff867566ff8a7969ff807161ff7c6d5eff827162ff807061ff78695aff806f61ff7b6c5dff807261ff77685aff7a6a5cff7a6b5bff887967ff796a5bff7f6f60ff807060ff7a6a5dff817261ff7d6e5eff817462ff786b5bff857666ff817364ff817161ff716556ff736657ff7a6c5cff756758ff796b5cff726456ff746557ff766758ff776759ff7c6d5eff7f7061ff837262ff766758ff6e6153854f422f2415110e1d3f2d0e184d370e1c17120b171b160aff6f6054ff6f6154ff6c5f50ff6e6052ff695c4fff695d50ff6c5f51ff6c5f51ff6a5d4fff6f6253ff675a4dff6a5b4dff6b5e50ff6d5f51ff64574aff493e32ff41362bff40362bff41362bff41362bff41372bff40352aff43382cff43382cff43392cff42372bff574b3cff5d5142ff584e40ff5f5447ff50463bff574c41ff584d41ff584b3fff5b4e43ff5f5246ff5a4e40ff554a3dff50453aff564a3eff54473bff544a3dff54493dff584b40ff584d41ff574c40ff584d42ff574d41ff544a3eff564b3dff564c3fff53483cff4f453aff50463bff4c4237ff4c4338ff4b4238ff484035ff473d33ff493f35ff483f35ff494036ff4b4137ff483e34ff493e33ff493f34ff473d33ff4a4036ff453b32ff433a30ff413730ff3c332cff342b22ff3c3126ff3a3026ff3a2f25ff3a3026ff3d3227ff3b3126ff3c3126ff3c3127ff3a3026ff3c3127ff3d3328ff3d3328ff3e3429ff3e3329ff3d3328ff3f3429ff3d3227ff3f3428ff403529ff41362aff44392dff41362aff45392eff43382dff453b2fff463b2fff483c30ff4b4034ff4b3f33ff4f4338ff52463aff54483aff55483cff55483bff564a3cff584c3eff5b4e40ff5f5244ff615446ff685a4bff6c5e4fff685c4dff6c5e4dff726354ff766857ff746655ff766958ff706453ff7b6c5cff7c6c5cff817161ff847564ff8c7b69ff837464ff958470ff8c7c69ff887868ff867766ff887968ff907e6dff8b7b6bff8d7d6bff8b7b6bff928171ff9a8976ff9d8c7aff998875ff9d8c78ff9f8c7aff9f8d7aff9e8d78ff9f8e7aff998976ff9f8d7affa18f7cff978675ff9989775e4c3f2a1d1e190e0f21190d1b281f0e472d241223473411ff9c8978ff958475ff958676ff897a6cff928272ff8f7f6fff928271ff8f7f70ff928171ff917f6fff948371ff978572ff948270ff8e7e6effa1907dff9c8b79ff9b8978ff9b8a78ff998775ff9b8a79ff968575ff938373ff8c7b6aff8b7b69ff857565ff847364ff857465ff897968ff8a7968ff857664ff8a7868ff867565ff897868ff857464ff867665ff847363ff867565ff807060ff7c6c5dff887867ff817161ff857565ff867564ff867665ff897867ff857364ff837363ff877767ff847465ff807061ff817263ff7c6d5fff807261ff857666ff7d6f5fff827262ff7b6c5dff7d6d5fff806f61ff7c6d5dff7a6b5bff847462ff7f7060ff807061ff827262ff827262ff867565ff806f5fff7d6e5eff78695aff7e6f5fff827262ff7a6b5cff7c6d5dff786a5aff80715fff786a5aff7e6f60ff7b6d5eff786b5cff7a6c5dff746758ff7a6d5eff796a5bff7a6b5cff726456ff756658ff746757ff736556ff756757ff7e6f5fff776759ff756658b266533a253d2d0f241e180d1e48340e18523a0d2e19150cff6f6154ff6e6153ff6f6154ff6f6154ff746657ff6d6053ff63584aff685d4fff6a5e50ff685c4eff695c4dff6e6152ff675b4cff615547ff65594bff635749ff605547ff64584bff574c40ff493f33ff473c30ff42372cff40362bff44392dff463a2eff4d4135ff5d5243ff5b4f41ff5b5041ff5c5143ff55493eff574d40ff5c5145ff5b5044ff5b4e40ff5b4f42ff5e5142ff584c3fff54493dff52483cff564a3eff574b3eff54483dff51463aff4e4439ff54493eff584d40ff554a3fff5a4f42ff584d40ff54493dff53483cff51473aff51483bff4b4135ff4c4237ff4c4237ff493f35ff483f34ff494036ff493f35ff473d34ff483e34ff4b4137ff4b4036ff463c32ff463c32ff453c32ff483e34ff443b32ff443b31ff443a31ff40362eff41382fff382d23ff3e3328ff382e25ff3c3227ff3c3227ff3c3227ff3c3227ff3d3328ff3a3025ff3c3228ff3e3428ff41352aff40362aff3f3529ff3f352aff3d3327ff3f3328ff3e3328ff403529ff42372bff44392dff44382dff43382cff453a2eff44392eff453a2fff473c30ff483d31ff483c31ff4a3e33ff54483aff54483bff5a4d3fff52453aff54483bff584c3eff5a4e40ff5f5344ff615446ff655849ff6a5c4cff6f6252ff716251ff706252ff756757ff766858ff766758ff726555ff806f5fff7a6b5bff7d6e5eff837362ff8a7867ff847564ff8b7c6aff8a7b68ff877767ff857766ff897a6aff8a7c6cff8e7f6dff91816eff8c7c6bff8e7e6eff9d8b76ff9a8875ff998773ff988773ff9e8b78ff9e8d7aff9a8873ff9d8c78ffa2907cff9d8b77ff9a8877ff988674ff998978ff978573234b361326342612172e230f232c221031221c1025201910ff928373ff968575ff978675ff918170ff91806fff8e7d6dff91806fff938170ff928272ff8b7969ff8b7b6aff8c7b6aff887868ff8f7e6dff938170ff8d7b6aff978575ff9b8878ff928272ff9a8977ff9a8977ff8c7a69ff877566ff847363ff8b7a69ff837362ff837363ff857464ff867565ff887667ff8c7b6aff8f7d6cff8f7e6cff8a7969ff867767ff807161ff7a6a5bff7c6d5dff7f705fff807160ff837463ff827262ff857464ff847363ff8a7968ff857565ff857564ff867765ff7e6f5fff817263ff7e6f60ff7e6e5fff857564ff837363ff857565ff877767ff857465ff817161ff877665ff817260ff7e6f5fff837362ff807060ff827262ff79695aff827162ff7b6b5cff7d6e5fff817161ff7c6c5dff7b6c5cff7a6a5bff776859ff7c6d5dff80705fff817160ff7e6f5eff827262ff827361ff807160ff736555ff766859ff78695aff756757ff726454ff706253ff726555ff706354ff857467ff756658ff7a6b5cff6f61542458400f1737280c58211b103a553e101c523a0edd605346ff716255ff706254ff6f6254ff65584cff716457ff675b4eff695d50ff685b4eff675c4eff665a4cff64574aff685b4eff6f6252ff675b4cff665a4cff605347ff615649ff5f5547ff63594bff605548ff5e5346ff605347ff635649ff5c5043ff635748ff625648ff5d5244ff5d5244ff594e40ff605546ff584c3fff5b5043ff5b5143ff5d5244ff605345ff594e40ff5b4e41ff564b3eff55493eff52483bff554a3fff53493eff574c40ff54483cff50463cff53483dff5a4e41ff584d40ff56493dff5b4f42ff574b3fff54493dff504639ff52483bff52473aff504539ff4a4136ff483e33ff463d33ff473e33ff473d33ff483f34ff4c4137ff493f35ff493f34ff4c4236ff473d34ff463c33ff493f35ff463d33ff463c33ff453c32ff40362dff423930ff3a2f26ff3b3126ff3d3228ff3a3026ff3b3126ff3f3328ff3f3428ff3f3529ff3b3227ff3f3429ff3f352aff3e3429ff3e3429ff40362bff40352aff3e3529ff3d3328ff3e3328ff41372bff45382cff42382cff45392eff483c30ff453a2eff44392dff463b2fff463b2fff473c30ff4c4134ff4e4337ff4d4034ff514336ff524639ff54473bff5a4e41ff584c3fff605345ff5f5244ff625546ff655849ff66594aff675a4bff6a5c4cff695c4dff6c5f50ff736555ff756757ff6a5c4eff7c6c5dff766759ff7f7060ff857663ff897866ff857665ff837564ff857665ff897968ff8a7b69ff8b7c6aff928170ff938270ff948471ff90806fff928271ff958571ff998672ff988470ff998975ff958672ff9d8a76ff9b8976ff998875ff9a8976ff9d8c78ff978675ff988775ff9a8978ff978775ff9887731e6345141b5d421317593f1438533c161c322611583c3327ff978674ff94816fff92806fff554a3eff968572ff938370ff928170ff917f6fff8e7b6bff917f6eff8b7a6aff8c7a69ff93816eff94826fff93806fff8c7a6aff8a7969ff8c7b6aff93816fff9c8a79ff897868ff867564ff837363ff817261ff807060ff847462ff817161ff817261ff7e6f5fff817061ff8a7867ff817161ff807060ff817263ff817161ff827362ff7e7161ff78695aff766758ff7f6f5eff7c6d5dff7f6f5eff796b5cff8c7c6bff8a7a69ff837262ff837463ff867765ff867766ff857564ff857665ff7f7160ff7f7060ff867666ff877767ff796a5bff807061ff7a6c5dff817160ff7e6f5eff857464ff847463ff897867ff817061ff806f60ff79695aff827262ff887766ff857565ff817263ff736557ff756759ff7a6c5dff7a6d5eff847563ff7c6e5cff817260ff827261ff7f705fff776859ff786959ff776959ff756757ff736454ff736655ff796a5aff8d7e6fff786a5cff716356ff7163561c1e190e235b4110173e2d0d17231a0b1c513a0e645b4623ff6b5e50ff716354ff68594bff716456ff706255ff6f6356ff6d6154ff675b4eff6c5f51ff665a4cff685c4dff6b5f50ff65594cff665748ff65594aff65584bff695d51ff5c5246ff685c4fff65594dff61564aff615649ff615648ff625549ff5f5245ff5b4f41ff5c5043ff5c5143ff5a4f41ff5c5144ff65584aff63574aff584c40ff5d5244ff5e5344ff625446ff584d40ff54493cff584c3fff574a3fff554a3dff5c5043ff594c41ff5a4e42ff574c40ff52473dff54493eff594d40ff594c3fff574b3eff54493dff544a3dff54483bff504539ff4d4338ff50463bff4d4338ff494035ff4a4137ff4a4036ff473e33ff463d32ff433a2fff4b4238ff4b4137ff463c32ff4b4237ff453b33ff42392fff463d33ff483e33ff463c32ff463d33ff40372eff453b31ff3b3026ff3a3126ff3a2f24ff3d3328ff3d3227ff403529ff3e3328ff3d3328ff3e3428ff3e3429ff41362aff3f3529ff3f342aff3e3429ff42372bff40352bff43382dff42382dff42372cff3f3529ff41362cff483c31ff483c31ff473c31ff41352bff42372dff493d31ff483c30ff493d30ff4f4336ff504538ff504438ff514639ff55493dff584e41ff5a4d40ff5e5144ff605244ff605545ff675a4aff6b5e4eff695c4cff685b4cff6b5e4eff706353ff736555ff776858ff796a5bff776759ff837362ff817162ff8a7969ff8b7a68ff8a7b69ff8c7d6bff8c7d6aff8f7f6dff91816fff90816eff8d7d6aff91806fff8f816eff91806dff938270ff978674ff938370ff93836fff988673ff978673ff9c8b78ff9a8975ff9a8673ff988774ff9a8b77ff9c8b79ff968674ff988774ff93836fff948473ff938472195e421219634411246a4c161c5d4312236a4d15fa9b8875ff988674ff9e8a79ff978473ff8c7b6aff8f7e6bff95836fff92816fff8e7d6cff887868ff8e7e6dff9e8b7aff8c7b6aff8e7d6cff91806fff917f70ff877767ff857564ff847462ff8a7866ff867565ff8d7b6bff847363ff817161ff79695bff827161ff7a695aff827261ff847363ff827161ff827262ff7d6c5dff837364ff807161ff8c7c6bff938372ff807263ff7e7060ff7d6d5dff827361ff827261ff8b7a68ff807061ff897868ff877767ff857464ff837463ff817363ff7e7060ff817363ff827362ff867766ff887968ff897969ff8b7969ff867565ff7b6c5eff867565ff877664ff837160ff857463ff867464ff807060ff78685aff817160ff7d6e5dff7c6d5dff837463ff847463ff827262ff7d6f5fff7a6b5dff7e7062ff847564ff827362ff7d6e5dff796a59ff867765ff7f705fff7c6c5bff7f7060ff7b6e5cff786a59ff796a59ff796959ff91806eff7c6e5eff76685aff7466581a15110b1e241c0c17563e101e3c2c0d1916120c4556401aff78695aff726355ff716253ff716354ff736658ff736658ff6f6356ff6e6355ff64574cff6e6255ff6a5c4eff6a5c4dff6a5b4bff695c4dff685b4dff625548ff645749ff675b4eff63594cff685c4fff665a4dff63574aff62584aff6a5e50ff64594bff5d5345ff665a4cff615547ff685c4dff625648ff5d5145ff5a4e42ff635849ff615548ff5f5446ff5e5245ff605446ff5e5345ff5c5042ff5f5345ff5c5044ff5d5144ff55493cff564b3eff564b40ff554b3fff574b3fff574b40ff5b4f42ff50453bff54493dff52463bff4f463aff51473bff52473aff4f4438ff51473aff4b4337ff4c4238ff4a4136ff4a4135ff4b4136ff473e34ff423a30ff4c4337ff493f34ff473d32ff443c31ff443a30ff4b4238ff483f35ff4a4136ff463c33ff41392fff433a31ff443a30ff3b3026ff382f25ff3a3126ff392f25ff3b3126ff42362bff3e3328ff3e3429ff3c3229ff43382dff3f3529ff41372cff43382cff3f3428ff43382cff44392dff3f3529ff41372bff43382dff443a2eff463b30ff483c31ff483c31ff493d32ff42382cff463b30ff463a2eff4f4236ff524639ff514539ff52453aff53473cff53473bff56493dff564a3eff5d5144ff605446ff695a4cff6a5c4dff6c5d4dff665849ff66584aff695c4eff6a5d4eff756756ff7f6f5dff78695aff7c6c5cff807060ff79695cff7a6b5bff7e7060ff887766ff8e7c6bff907f6eff8d7d6bff8c7c6bff8a7a68ff8a7a68ff8f7e6bff928371ff938371ff8f806fff918170ff948572ff948572ff978875ff988976ff988774ff9a8975ff9b8b78ff9c8a78ff9b8875ff9e8e7aff978775ff9a8b77ff948573ff918070ff948473ff8f806e90564c401b1a160e21382a1130513b151d60451223614613dc958168ffa3907fff998775ff968573ff988673ff92806dff93816eff998775ff938170ff827160ff907f6cff927f6cff927f6dff8e7c6aff8c7a6aff867565ff877765ff887867ff867563ff857362ff7f6d5eff897766ff827261ff8b7a68ff816f61ff7f6e5dff7d6d5dff806f5fff837362ff857463ff897866ff817161ff807161ff817362ff7a6d5dff827464ff807161ff847564ff817261ff837463ff827262ff7d6d5eff857565ff7e6e5fff837363ff837464ff7e7060ff827364ff867666ff877866ff837463ff7d6f5fff807161ff827262ff877665ff837363ff817160ff847362ff887665ff877464ff877463ff847363ff877766ff857564ff7e6f5eff877866ff807261ff807160ff806f5fff7e6f5fff796c5cff7c6d5dff7a6c5dff7e6e5eff817161ff7e6f5eff7d6f5dff7d6e5dff7b6c5bff7a6c5dff766858ff766658ff7a6a5bff847564ff837363ff796b5dff75695a7c4d402c1f16120b343c2e1024573f1129271d0d2016110bff746555ff716353ff766758ff756657ff756758ff736658ff726558ff716456ff6f6255ff64594cff685b4fff6f6152ff736657ff6f6253ff6c5f51ff6b5e51ff665a4dff665a4cff63574aff63584bff675c50ff665a4dff716356ff6b5f51ff6a5c4fff65584bff615549ff625649ff64584bff66594aff625648ff5f5446ff625647ff5a5044ff5b5043ff584d41ff5d5244ff615546ff605446ff5f5446ff5d5245ff5c5144ff5a5042ff564b3eff584d41ff574c41ff554a3fff53483eff554a3fff544a3fff544a3eff554b3fff54493eff54493dff53483bff52493cff51473bff4e4337ff50473aff4b4136ff4b4237ff4a4136ff463d33ff483f35ff433a31ff463d32ff443c31ff483e34ff443c32ff413a30ff463d34ff473e34ff493f36ff463c33ff483f35ff423931ff4a4036ff3b3127ff3b3127ff3b3127ff3a3026ff3e3329ff3c3127ff3d3228ff3c3228ff3d3329ff3e3429ff44392dff443a2eff43392dff463b2fff42372bff43392dff41372cff40362bff453a2fff473c31ff453b30ff483d32ff483c31ff44392eff453a2fff473b30ff4a3e34ff4f4337ff4f4337ff4f4339ff51453aff55483dff54473bff564a3dff574a3eff5d5043ff5f5245ff645749ff675a4bff635648ff68594bff645749ff635749ff6a5d4eff766758ff706154ff776859ff79695aff78695aff7a6b5cff7c6d5dff847463ff867565ff887766ff8d7c6aff8c7c6bff8c7c6aff8a7b69ff8c7d6aff8e7e6bff928271ff938371ff90806fff918170ff928270ff938371ff998976ff948471ff978672ff998775ff9c8a78ff9d8a78ff9c8a77ffa3927eff9d8c78ff9a8b77ff968574ff998876ff928271ff958370ff9a8a76ad685c4d371d1811522a20146f2e261632221c1022392b12ffa08c7aff968372ff958370ff8e7e6dff92816eff93826fff8f7e6bff92806eff8b7a69ff8e7d6cff91816fff8f7d6cff8f7d6cff877767ff8a7a6aff857664ff857463ff847463ff877765ff867664ff847362ff897866ff877664ff8b7968ff817160ff817160ff847362ff827060ff837261ff867564ff827262ff817162ff7e6e5eff7f7060ff78695aff7b6d5eff807160ff887765ff867563ff837362ff7a6a5aff857663ff857564ff857463ff837362ff867765ff827262ff807160ff827262ff867665ff887766ff847464ff8a7968ff867564ff8c7a67ff877664ff847463ff817060ff847362ff877663ff867463ff877766ff837463ff827262ff867765ff7b6b5cff7f7060ff827261ff7e6e5fff867666ff867665ff7f7161ff817261ff847463ff807060ff847564ff847463ff7c6d5cff786959ff796a5aff807161ff5e5245ff77685bff796a5cff7a6c5d6f614d2c1e392a0e1e1e170b2d403010265b41101e261d0cff7f705fff736455ff736554ff756656ff7a6b5cff756759ff736659ff736658ff6f6255ff716456ff6b5f52ff6b5f51ff6e6154ff706355ff6e6153ff6b5e51ff6f6053ff695c4fff64584bff64574bff65594dff695d50ff675b4eff6c5f52ff695c50ff625649ff625649ff615548ff5c5145ff665a4dff64594aff5e5447ff584d41ff5d5245ff594f43ff544a3eff5b5043ff5e5345ff605446ff605446ff615648ff5c5144ff5c5144ff584e41ff564c3fff594e41ff5b4f44ff584c41ff54493fff54493eff54493eff554a3fff544a3eff52473bff52463aff52473bff53493cff4f4438ff52483cff534a3dff4d4438ff4d4438ff4b4136ff483f34ff483e34ff443b30ff4a4135ff4a4035ff473e34ff493f35ff433b31ff453d33ff4a4136ff473e34ff463d33ff443c33ff443b32ff443b31ff3d3228ff40342aff3e3329ff393025ff3f342aff3e342aff40362bff3f352bff3d3329ff3e3429ff41372cff3f362bff41372cff43392eff40362cff453a2eff41362bff453b2fff483e32ff493f33ff463c31ff483d31ff493e32ff4b3f34ff4b3f34ff4b4034ff514439ff4e4237ff4b4036ff4f4338ff54483cff55483dff53463aff54473aff56493cff574a3eff615345ff605445ff615447ff5f5144ff655749ff695b4cff6d5e4fff6c5e4fff6f6153ff716355ff706253ff746656ff756658ff7e6e5eff806f5fff887765ff8a7a69ff877766ff887765ff897969ff867666ff8c7c6bff8d7d6bff8f7e6aff938271ff958371ff92816fff91806fff948472ff928370ff9a8a77ff9a8a77ff9d8c79ff9d8a77ff9e8c7affa18f7dff9c8977ffa08d79ff9d8b77ff9c8b79ff9f8c7aff9f8c7aff9e8c7bff998774ff96856eff9c8b76254f371225241c0f241a150e2119170e32251e112c191611ff9a8773ff988672ff988673ff998774ff9b8976ff958372ff93816fff8d7c6aff958473ff968473ff8c7c6cff8f7f6eff897868ff867565ff887868ff887767ff867565ff8c7c6aff8f7e6dff92806eff8b7a68ff857462ff8d7b69ff867564ff8c7a68ff897767ff827160ff887665ff8c7a69ff8b7868ff8e7c6aff837364ff796a5aff827362ff807162ff807060ff8a7867ff8b7a67ff857463ff8f7c69ff907d6bff8f7c6bff907d6cff8e7d6aff8a7967ff8b7868ff827262ff847364ff847364ff887766ff837263ff8f7d6bff877664ff817162ff867463ff887765ff8a7967ff877664ff847463ff92816eff817160ff817160ff847463ff8e7d6cff837363ff827362ff827463ff7e7060ff7f7061ff817364ff817363ff7f7263ff817363ff837364ff867565ff817262ff7d7060ff7e7062ff7e7061ff7a6c5fff7d6e60ff7d6e5fff7b6c5eff7d6f5f21583f101d36280e1e16130f374836131d594011f8766757ff796b5bff766655ff746556ff7b6d5cff7b6d5eff776c5eff736659ff716456ff77695bff746659ff736558ff746759ff76685aff6c6054ff685d51ff6c5f53ff6d5f52ff6a5d50ff625549ff615549ff63564aff63574aff695d4fff64594bff62574bff64584bff62564aff5f5347ff64584bff63574aff5e5549ff5d5347ff5d5346ff5a5043ff5c5145ff605446ff615546ff615547ff605548ff5e5345ff5f5347ff5a4f42ff584d41ff5d5346ff5b5042ff5c5143ff5b4f43ff594c41ff574b40ff54493fff574c40ff584c40ff564b3fff574d40ff52483cff55493dff544a3dff52473cff52473bff53493cff504539ff4e4539ff4f4438ff4e4338ff4e4439ff4a4033ff4d4335ff493e33ff4e4338ff4a4036ff493f35ff413a2fff4c4338ff493f35ff4a4136ff403930ff433b32ff443c31ff41352aff3f3429ff3f3428ff3e3227ff473b2fff44382dff42372dff41372cff42382cff42392dff443a2eff43382dff443a2eff443a2eff443a2eff44392dff44392eff40372cff483e32ff493e32ff433a2eff453b2fff483d31ff4d4236ff473b2fff4a3e33ff4a3e33ff4b3f34ff4d4236ff514339ff53453aff574a3dff574a3fff584b3fff574a3eff5b4d41ff5c4e42ff5e5043ff5d5143ff615446ff6c5c4dff67594bff66594aff66594aff6b5d4fff6c5f50ff6d6053ff726256ff796959ff877665ff827161ff807060ff816f5fff8f7c6bff7f6f5fff867667ff827463ff877767ff8a7a69ff8d7e6bff958370ff948370ff95836fff907f6eff968472ff9d8a78ff9d8b77ff9b8977ff998776ff9c8a79ff9f8d7aff9d8b78ffa38f7cffa89682ffa4917dffa28e7cff9b8876ff9d8b78ff9f8d7bff988773ff988673ff9c8b77ff9e8c79295f42132c634615216647151c4c381123241e0f3e272118ff968472ff92806eff968371ff958270ff93806fff8e7d6cff948472ff948471ff8e7e6eff8e7e6dff89796aff8b7c6bff847564ff897969ff897968ff877866ff8a7968ff897867ff887766ff82705fff917f6cff867462ff8a7866ff8d7a68ff867463ff877764ff887663ff897765ff877564ff7d6d5dff8c7a68ff817060ff867666ff8d7b6bff817060ff867564ff8a7867ff887564ff887462ff8e7a6aff927e6dff8d7a69ff7a6a5aff847262ff857463ff8d7a69ff817161ff8a7867ff877566ff8e7b6bff877565ff867564ff857464ff877566ff827161ff857462ff7d6d5cff7b6c5bff807160ff7f6f5eff857464ff857463ff877665ff847464ff756759ff7c6e5fff7f7060ff7d6e5fff7e6e60ff827264ff817262ff847565ff7f6f60ff807061ff7d6f5fff7e6f60ff7a6c5dff796a5cff736659ff7a6b5dff7e6f60ff7d6e5ee3483f2f295c431023271e102a17141142584012806e5832ff7b6d5dff796b5bff796959ff746657ff776a5cff7c6f5fff736558ff716556ff6f6254ff746759ff746659ff6f6153ff6e6154ff6b5e51ff6e6153ff6d6153ff706256ff6a5d50ff685d51ff675b50ff65594eff6a5d50ff685b4fff695c4fff65584cff5f5448ff675a4dff675a4cff625649ff605648ff5d5346ff5d5346ff5e5448ff5e5348ff5e5348ff635849ff685b4dff625749ff584e42ff5f5346ff605447ff5f5447ff574b40ff564d40ff584e42ff5a5043ff5a5143ff605346ff5b5044ff584c3fff55493eff5f5345ff55493fff5e5143ff564a3fff54493eff554a3fff54493dff50463aff52473bff564c3fff52483bff4e4339ff504539ff4f4438ff4d4338ff483f33ff4c4236ff4d4238ff4c4137ff494035ff494034ff483e33ff55493dff51463bff4b4137ff4b4337ff484035ff4a4136ff403429ff3f3429ff3f3529ff3f3428ff42372cff45392fff41362bff44392eff463b2fff41362bff44392eff453a2eff44392eff473c30ff463a2eff41372cff443a2eff443a2eff473e32ff473c30ff453b30ff463c30ff463c30ff4b4134ff483e32ff4a3f33ff4b3f34ff4c4036ff4f4338ff504337ff524639ff56483bff55483bff55473bff584c3fff584c3fff5d5043ff5f5144ff615346ff635548ff635649ff685a4cff645749ff67594bff6b5d4eff746656ff706253ff786b5bff7d6e5dff817260ff7c6d5cff827162ff827160ff877766ff837364ff837464ff827364ff887969ff8a7a6aff867766ff8f7c6aff92806dff93826fff978573ff968572ff9c8a75ff9d8a77ff9a8977ff998976ff9f8e7bffa08e7aff9b8977ff9f8c7affa79480ffa4917dffa08e79ffa4937effa28f7bff9f8c79ff9c8979ff998875ff9c8b77ff9d8977ff98897628593f141e6043121e604514275f4415316d4f16bd8d7658ff958270ff94816fff927f6dff948270ff91806fff8e7d6cff8f7f6dff8b7c6aff8a7b6aff8c7d6cff867766ff847564ff897968ff887867ff827262ff877664ff887665ff8b7b68ff887664ff837261ff887765ff8a7967ff867563ff8c7a68ff857361ff816f5eff8a7765ff897766ff847262ff837261ff79695aff7e6e5eff7f6f5eff827160ff7d6d5cff837261ff877463ff8b7666ff8a7666ff8c7868ff8b7868ff8d7969ff837161ff8f7c6aff8b7a68ff847463ff857364ff857464ff877565ff877564ff877464ff8a7767ff807060ff817161ff877564ff827160ff847463ff817161ff837261ff827261ff857464ff867464ff7a6b5cff756759ff7b6d5eff7c6d5eff78695aff7d6d5eff7c6d5eff807061ff7e6e5eff847464ff7e6e5fff7d6d5eff7e6f5fff78695bff77695bff796b5dff7a6c5eff7b6c5d371a1812b3574625255a401224271e102c1c181093695637ff796a5bff7e6f5eff766655ff736557ff7a6c5bff736758ff786b5eff726456ff706355ff716456ff726556ff736658ff6e6153ff6e6153ff736558ff6a5c50ff6f6154ff6f6254ff6b5f52ff6e6154ff685c4fff675b4eff695e51ff675b4dff6a5e50ff665a4dff64584cff685b4eff61564aff605549ff605548ff5c5145ff62584bff615749ff5e5447ff655b4dff625748ff5c5243ff5d5245ff5e5347ff625649ff5b5144ff574c41ff594f42ff5a4f43ff584d42ff554c40ff544a3eff5c5143ff5b5042ff5b5044ff5a4f43ff584d41ff5c4f42ff594c40ff554b3fff554b3fff564c3fff53493cff52483cff564a3fff594e41ff564b3eff4f4438ff544a3dff53483bff4f4539ff4b4137ff4b4136ff4a4035ff4e4238ff494035ff4b4136ff4a4035ff4e4439ff4f443aff4c4136ff4d4337ff4b4136ff453c32ff3f3428ff3d3327ff42372bff3c3328ff45392dff42372bff41372bff44392dff483d30ff40352aff453a2dff473a2eff473b2fff483d30ff483d30ff43382cff42382dff41372cff433a2eff43382dff443a2eff4a3f33ff4b3f33ff473d31ff493e32ff4c4134ff4f4336ff4c4034ff53473aff534639ff534739ff55483bff55473aff54473aff584b3fff5e5144ff5c4e41ff615548ff605447ff615447ff605346ff635648ff635748ff685b4cff6b5e4fff6f6051ff766857ff7e6e5bff796a5aff7f6e5eff827160ff827161ff837362ff8c7c6bff837261ff867667ff8c7d6cff91816fff9c8a77ff8d7c6cff8e7e6cff917f6dff978473ff9b8876ff9a8773ff9d8b77ff998773ff968470ff9b8b77ff9a8874ffa28e7aff9c8b75ff9d8b76ffa2907bffa4937fffa79581ff9c8a76ffa38f7bffa18f7bffa08d7aff968573ff9f8f7bff9b8975ff958673d78c7b68201e180e181e190f893d342244654b19374b39161b1c170f2a3c2e1169745519286f501235614814221e191127201a11301e1913ed5147343861471a266548156140331e2e281f12291c170f24382a0f2663471225614413235e4312291d1910461d19144a221c13275e44142a6849131f63461232271f12351a1613321d18133a4c39172d644a1823654813283b2c122b1a1711281b17112f362812276b4c15276d4e1527694b1536322613262c211026342710275a411226634713266649132e2e2412321917135e25211aff52493c2a5e4311205b4012254f38101c19140c1a16120c1f15130e1b49350f275f441136654913222a21102b19151025151210284f39112260441026593f112438290e2b1d170d1b1f180e1a30230d235d42121d583e10204d370f27221b0f2d18150f2315120d225a40114e5d4516365a431435231c112f1a160f251b160e203f2d0f29583e12311818165058431c265e42132c32261427221b10ff7b6a5aff7f6f5dff7b6c5aff7c6d5bff796959ff726456ff746759ff716456ff726557ff726356ff756658ff76685aff706254ff786a5bff786a5aff726455ff736557ff7a6b5dff6f6253ff6b6152ff6b6052ff695d4fff665a4dff6a5e52ff66594eff685c4fff695e50ff6a5e52ff63564aff615548ff5f5447ff63594bff615649ff5f5447ff685d4fff665c4dff6a5f4fff63584bff64584bff605446ff605448ff605548ff605548ff5d5345ff5a5044ff5b5144ff615548ff5f5648ff554b40ff5b5144ff5b5043ff5d5246ff5d5044ff605346ff5a4e41ff584c3fff564b3eff51473bff564a3dff55493cff554b3dff54493cff584d3fff5a4f43ff52473bff54493cff54483cff52473bff4e4339ff483f34ff473e33ff493e33ff494035ff4c4137ff453c31ff4e4337ff4c4136ff483f34ff4f453aff4b4237ff443c32ff42362aff3e3429ff42372cff45392dff41362aff44382bff41372bff42372cff43392dff493e30ff483c2fff483b2eff463a2eff4a3f32ff483d30ff483c30ff453a2eff443a2eff443a2fff43392dff453a2fff483c30ff493d31ff483d31ff4c4134ff4e4235ff4f4335ff4c4034ff54483aff54483aff514539ff504538ff54473aff55493bff55483bff574a3dff594c3eff5d5244ff5a4d41ff5c5042ff625447ff635748ff615547ff6b5f4fff695c4dff726354ff6b5d4cff796957ff7e6d5cff7f6e5dff7e6c5bff806f5eff847363ff847463ff867564ff887866ff887766ff8d7d6cff8f7f6eff8e7e6dff938170ff907f6cff907e6dff998674ff95816eff9d8b77ff9a8873ff9e8c77ffa2907bff998874ff9b8875ffa38f7bff9e8c77ff9f8c78ffa08d79ff9d8a77ff9e8c77ffa99580ffa69480ff9c8a77ff9f8d7aff9c8c78ff9b8975ff958673ff9a8978c98172611719160d231a160f191c170d241e19121e614711306e50132e70531325533d121c1816101b14130f1c28201040684e1a386a4d182f6147165e3d311d271e1a0e20201a0d21573d102a5f431229674913264834122018150f26191510292c2113396c4e1628694a142a593f12271a16112c1916112d29201232614518286447161f6144131b1d180f2c1e1811281b1711244d371226674a1425684a1424563e13282b211128231c10242d221120684a13306b4d1444684b161e1b161022181611321b1a15585e48222a614513285f44102237270f1e1c160c21251c0d34261e0f275c41111e5c4210285e44121e1c160c241b170f302f231022594010245b41101c50390e1833250c27241b0d21261c0d374f381322533c112c553d12262e230f231c160c1b15110b1b291f0d1a583d0f1c533b115f503d19261a1610241b160f261e190e2e553b132e5b41132b5c4213271c180f385a4215255d4212261d180fff7d6e5bff7d6c5bff837260ff80715fff7f705eff7d6e5eff746758ff746759ff6e6355ff716456ff6e6053ff716456ff706355ff76695aff786b5bff736657ff736656ff726556ff736557ff6b5f50ff6b5f52ff6a5e50ff6e6253ff695d4fff65594cff64574bff655a4dff62584bff65594dff635749ff65584bff615748ff615649ff605648ff65594cff635749ff655b4bff645a4bff675c4eff635548ff625648ff665a4cff5a5043ff5e5244ff5f5445ff594e42ff5b5042ff5d5246ff615649ff574c40ff5a5044ff5b5042ff594e42ff5b5043ff615648ff594e41ff584d3fff574d40ff53493cff544a3dff54493cff594d3fff53483bff574b3eff554a3dff514539ff554a3dff564b3fff50473bff494036ff4c4337ff4c4237ff4e4337ff473e33ff4d4338ff504539ff4b4136ff4e4338ff4a4035ff4a4037ff4c4238ff4e4439ff41352aff403429ff42372cff40362aff45392eff42372cff44392dff44392dff3f342aff43382dff473d31ff44392fff473c31ff483c31ff42382cff4c4033ff453a2eff473c2fff453a2eff453b2fff473b2fff4c3f32ff4b3f32ff4b4034ff4a3f32ff4a4032ff504436ff504436ff514537ff54483aff524638ff514538ff534639ff5c4d40ff594c3eff5d5042ff5a4e41ff5b4e41ff5b4f41ff5d5143ff66594aff665a4cff655849ff6b5e4fff6a5d4eff736554ff716554ff746454ff7a6b5aff796958ff796858ff7d6c5bff837261ff877563ff867565ff897765ff887966ff897a69ff8b7c6aff948472ff93826eff95846fff93826eff9e8a76ffa2907dffa4907bffa6917cff978672ff9c8a76ffa3907effa7947effa5937eff9f8b77ffa38f7affa7947fff9d8a77ffa28e7affa08c77ff9d8a76ffa08f7bffa2917cffa4937eff9c8977ff988572ff9b8a79ff97867549624c25183d2d0f2327200f3b6d4d176d70511a2b684a13202c210f311f1a121e17140e1f392b101f61471129654a164a4b3817221f190e272d22102929210f18573d0f3a563d1312563c0f19291f0d1e1b170f14231a0c133c2b0c1b5c41104161471626392c131d1b160e1b16130d172c220f275d4313155a3f10184d370f151a140c1a16140f1d201a1026604513246246132a6045146839301e1f251e13261d181135402f1324694b1328694d14394e3a1342221c10331916104e342a183261451527614513275a3f132a261d1129171411241a1611393c2d132c5d43112b5a41121f4834101820190c22261d0c3f413113235940101b523a0f24402f0e1819140b122d200d17271d0c1b4f37111a553b0f21573e12262a1f0f4d281e112516120c2b4430111f563b111d553c11232b22112316130c1a16120b1f2e230d22563c102a594013495941152617130c2e14120e295d4114295d4213ff7d6f60ff7c7060ff7f7061ff807161ff7d6d5cff827261ff796b5bff736657ff726556ff706354ff74695aff7c6d5dff766959ff776a5aff76695aff706455ff776a59ff796a5aff716454ff736656ff706455ff695d4fff6a5f50ff726456ff6f6154ff6e6254ff685c50ff695e51ff64584bff635749ff655a4cff665b4eff615649ff66594cff64584bff675b4cff665b4cff635849ff695c4eff695e4fff5f5347ff625648ff64584aff5d5144ff655749ff605345ff5f5344ff5a5043ff5e5447ff5d5346ff615648ff605445ff5c5042ff5e5244ff5a5043ff605549ff5d5245ff5d5144ff5a4f42ff574c40ff5b4f44ff594e40ff5a4f42ff564a3dff584c3fff5a4f41ff52473bff54483cff53483cff4e4338ff4f463bff51473bff50463bff4f4339ff4b4034ff4f453aff4b4137ff53483dff4b4037ff4f443aff4a4136ff463d34ff483f36ff473a2eff43382bff42372bff3c3327ff43382dff463a2eff463b2fff473b2fff44392dff463a2fff4c4034ff473c31ff463b31ff43392fff4a3e33ff493e31ff4b4032ff483c30ff473d30ff483d31ff493d30ff463b2fff473b30ff483e32ff4c4133ff4e4236ff4e4235ff534638ff4f4234ff514538ff504437ff54483aff54483aff524639ff5a4c3eff5a4c3eff5b4f40ff5b4f42ff594c3fff5f5244ff645849ff65584aff675b4bff6a5e4eff6b5e4fff685b4cff6f6252ff6b5d4eff736554ff7a6a58ff7a6958ff807160ff827262ff7e705fff827563ff877865ff837363ff867766ff8a7968ff8f7d6aff9c8c76ff9c8b76ff978773ff978673ffa4937fffa6947fffaa9681ff9b8a75ffa9967fffa9947eff9f8e7affa08e7bffa18f7bffa4907bffa5927cffa3907affa3907bffa2907bff9c8b78ff9f8e7affa3907cffa5917dffa5927dff9e8b78ff998876ff938270ff9c8a771d6c4c111f6b4f11165f42102957401124231c0e232c220e2119140e235c4311216346123d634817b53d372d261c1810301d170f294f381120634611206043111c4e370f1a231b0d1b1e170d1c2d210d24614411376244122c5f451295352f261c241d111f18140d1a49360f1a5c4210195a4010143d2c0e0f1c160b0f1d160b49372d1b43563e162461431322573d112c211a141b1e180f312f2310295a41131a644612195d4312272e220e1f231b0d4c231d123e4a3713276144132a6144132651391229221c132b241d104c1d191640594114275c4313296245121a251c0c2115110c1f17130d1e4d370f205d4310245c42102b231c0e2318130d1b1d170c2c36271019553a0f1a543b11183b2a0d1b15110b2216120c4f1b1711244f371026553a1122533a10261e170d171d170d1915130b1b49340e1b5c410f235a3f11265d44122b1a150d1d120f0d1b2e230f255e4312c276644cff827362ff7d6f5fff7a6c5dff73665aff7f7162ff7f7161ff7f7160ff7f7160ff7b6f60ff75695aff7c6e5fff7a6b5bff746658ff706457ff726658ff776a5aff756758ff726555ff716454ff706352ff6c6052ff6a5e50ff6e6353ff6b5f50ff6b5e51ff6d6052ff6a5f50ff665b4eff64594cff64584bff65594bff665b4dff625649ff625749ff63594aff605447ff64594bff615648ff605548ff665a4aff645648ff64584aff62574aff5c5145ff5e5446ff615648ff5f5446ff5a4f42ff5e5346ff5f5344ff655949ff655949ff635747ff5d5144ff605446ff655b4eff5b5144ff5f5345ff5c5244ff615446ff5f5245ff574c40ff5a5044ff594d41ff584c3fff5a4f41ff574b3eff51463aff54493dff4f463bff50473cff53483dff554a3eff544a3eff4e4338ff4d4438ff4d4337ff50453aff504539ff4e4439ff4c4237ff4b4136ff4c4237ff44372bff45392cff40352aff42372cff42372dff43382dff44392eff463a2fff45392fff4c3f33ff493d32ff463b30ff463b30ff463c31ff4a3e33ff4a3d31ff493c30ff483c30ff4b4033ff4a3f32ff4a3e30ff4c4032ff4c4033ff4b3f32ff514538ff504437ff504437ff55483aff54473aff534739ff524639ff504438ff55493cff524639ff55473aff5c4e3fff5c4e40ff5e5042ff615446ff5f5345ff5f5345ff645849ff685a4aff675a4cff6a5d4eff6a5e4eff6c5f50ff716352ff746556ff756757ff776959ff807060ff7a6a5bff796a5bff7f7060ff857765ff897967ff8d7d6bff8c7c6bff978573ff907f6cff978671ff9d8c78ff9a8875ffa6957effa2907cffa99682ffa08c78ff9e8a76ff9a8875ff998775ff9f8d7affa08e7affa1907bffa18e78ffa6927effa89581ff9f8d7bff9e8b77ffa38f7cff9c8a75ff9d8a74ff9e8b75ff9f8d78ff978473ff9b8976ff978574ff978773ff9a8977ff9a8874ff9c8976ffa5927cff9c8a76ff9a8874ff978571ff978572ff998572ff9a8571ff96816fff958370ff988674ff968472ff94806dff968370ff958370ff917f6eff978574ff8f7e6dff907f6dff94826fff948170ff8d7e6bff8d7d6aff867564ff897867ff837362ff877665ff8a7867ff8d7c6bff877766ff8a7968ff867765ff7d6e5dff847463ff827260ff817261ff827362ff827362ff827362ff847462ff867665ff847563ff867765ff877766ff817261ff7e6f5fff847463ff897967ff857563ff8b7b69ff8b7b69ff8f7e6cff8b7b67ff907f6bff907f6cff8f7e6aff92826eff91806dff90806dff897765ff887664ff817262ff857767ff8b7c6bff827362ff897b69ff897966ff8c7b68ff887866ff857564ff837361ff827161ff837460ff847461ff857563ff867666ff837364ff7d6f62ff827464ff807262ff807262ff807161ff807162ff897968ff7b6c5dff827363ff796b5cff796b5cff7b6c5cff7c6c5cff796959ff7f7160ff7c6e5fff7b6d5eff7d6d5dff7e6f5eff756757ff796a5bff746657ff736657ff756858ff746756ff736557ff6d6253ff6d6152ff6a5e50ff695c4fff665a4cff6a5d4fff6a5e50ff706356ff685c50ff665a4dff655a4cff615648ff65594bff615547ff63574aff5e5346ff625649ff64584bff635748ff65594bff615748ff665b4dff5f5448ff5c5145ff5b4f44ff5f5347ff63584aff5e5143ff645748ff65584aff665a4bff635747ff675a4aff64584aff625848ff63594aff645a4cff5f5448ff5a4f41ff594d40ff53493eff564a40ff5a4f44ff53483cff5a4f42ff54493dff554a3eff564a40ff51463cff4f4439ff4b3f36ff53483cff51463aff51463aff51463aff4e4339ff494036ff4c4237ff4a4135ff4a4137ff483e34ff4b4137ff4e4439ff453a2dff473b2eff43382cff41362cff41362cff43382dff45392fff473a30ff493c31ff4c4033ff493d31ff483c31ff483d32ff493d33ff4c4034ff4c3f34ff4a3e33ff4b3f32ff4d4235ff4e4335ff4e4234ff4d4133ff4f4235ff4f4336ff55493bff504337ff524639ff504337ff53463aff55483bff55493bff53473aff53473bff53473aff564a3dff584b3eff615345ff5f5144ff5d5042ff5d5143ff5d5143ff605546ff66594aff645849ff685c4dff66594aff6d6050ff695d4eff716354ff756657ff736556ff716354ff7e6e5fff7a6b5cff7a6c5bff837463ff827260ff887866ff8a7866ff8e7d6aff988774ff968571ff9f8f7bff988774ffa5937fffa89681ffa5927effa48e7aff998674ff988774ff988674ff998775ff9b8976ffa2907bffac9885ffa4917cffa4917dff9b8977ff9c8a76ffa5917dffa4917dffa08d79ffa18e78ffa38f7bff9a8774ff958371ff958472ff9a8874ff9c8a77ff9d8b78ff9d8b77ffa6947dff9e8c78ff978673ff9b8a76ff9a8874ffa18d78ff9c8774ff9a8672ff9c8975ff968472ff9c8977ff988571ff96836fff968370ff978472ff998775ff92806fff948170ff917e6dff938170ff907f6dff8f7e6dff8b7b6aff887866ff877765ff857565ff857564ff92806fff887766ff837363ff817261ff827261ff837462ff837462ff7e6f5fff817362ff7d6e5eff827361ff817361ff837362ff827362ff80715fff7d6e5dff847464ff7e6e5eff827261ff897a67ff857462ff877665ff8a7967ff897866ff928270ff8b7a67ff958571ff907e6cff988673ff92816eff8e7c6aff8b7a67ff867665ff807362ff867767ff807162ff877867ff8a7b69ff91806fff887866ff877766ff807160ff837361ff887765ff887867ff867664ff887766ff817262ff817061ff7a6c5fff7f7161ff7f7160ff837464ff817162ff867665ff867765ff867766ff817262ff7b6d5eff837463ff857564ff7f6f60ff7e6e5eff837464ff796c5cff7f7160ff7e705fff7d6d5dff7a6b5cff7b6d5dff77695bff776a5bff736556ff6f6253ff756859ff716455ff6d6153ff6e6153ff6a5e50ff6a5e50ff685c4fff6a5d50ff6e6154ff695c4fff605549ff62574bff63584bff65594cff615547ff5f5447ff5e5346ff615548ff615547ff625648ff65584bff615549ff5f5548ff5f5448ff605549ff5a4f43ff615649ff63584aff5f5345ff5e5244ff635647ff605345ff665b4cff605445ff655b4dff675b4dff685e50ff675c4eff605548ff5c5043ff574d40ff50463bff564c40ff51473cff564c40ff584d40ff5e5247ff55493dff544a3eff4f443aff51463bff564a3eff564b40ff53483cff54483cff53483cff4d4237ff493f36ff4a4136ff4c4236ff4c4338ff4d4238ff4b4137ff51463bff42372dff43372dff43372cff41362bff43372cff473b2fff483c31ff483c31ff483c31ff473c31ff473b30ff4b4034ff4b3f34ff4c4035ff453a2fff4b3f33ff493e32ff4a3e33ff4d4135ff4b4034ff4f4335ff52473aff4f4336ff56483bff54473aff54473aff56483bff55473aff524639ff504437ff514539ff4f4337ff55493cff584a3eff54483bff574a3dff5f5244ff594d40ff615548ff594c3fff594d3fff625647ff645648ff635748ff675a4bff645748ff695c4dff6b5e4fff726353ff726354ff746556ff7a6a5bff7f6f60ff837362ff827362ff837362ff837361ff877663ff8b7a67ff91806cff948371ff958672ff988875ff9d8e7affa59380ffa7947fffa08d79ffa5917cff9e8b78ff9d8b76ff968573ff9a8875ff978473ff968573ff9e8c77ff9b8774ff9f8c79ff9b8876ff9e8c77ff9d8b78ff9b8774ff9c8875ff9b8876ff9c8977ff998672ff978671ff9c8975ffa08d7affa89481ffa08e7bffa08e7bff9d8b78ff9c8976ff9e8c78ff9b8976ff9e8b77ff988672ff9b8774ff9b8774ff958270ff958471ff988674ff9b8874ff9f8d7bff9a8674ff9e8b78ff978573ff9b8876ff988573ff968371ff8f7f6dff8d7c6aff877766ff897867ff8b7b69ff887766ff877665ff867564ff8f7d6cff847362ff877766ff7f6f5fff7f6f5fff857564ff837362ff807262ff827362ff7f6f5eff807160ff857564ff817060ff837362ff867564ff867564ff8a7867ff867564ff897867ff887766ff857563ff887765ff8c7b68ff92806dff8b7a69ff8e7e6bff8f7f6dff8e7d6bff93816fff877665ff8e7d69ff8c7b68ff827363ff877866ff817362ff817262ff7f6f60ff827262ff897865ff857362ff837463ff847463ff847461ff857564ff827261ff847364ff837364ff837365ff837262ff807161ff877766ff867665ff887868ff857767ff817364ff837464ff837364ff7f7061ff807162ff817261ff817261ff817161ff847563ff7e6f5fff7a6c5dff827363ff837363ff807263ff827363ff817363ff7c6e5fff7d6f60ff766859ff726456ff6d6253ff706354ff6a5e50ff706455ff726556ff6c6052ff6b5e50ff6a5d50ff6f6355ff6a5e51ff61564aff62564aff63574aff675b4dff625649ff605548ff605447ff5d5143ff5f5446ff665a4cff625548ff615649ff66594dff665a4dff675b4eff5f5447ff62574aff63574aff5e5345ff635647ff645648ff685b4bff605547ff625648ff62584bff625749ff64584bff51483cff615547ff5e5344ff544a3eff574d3fff51483cff51473bff50463aff51463aff554a3dff51453aff52483dff51473cff52483cff52483dff504439ff52463bff50453bff51463bff4e4338ff4c4236ff4f4439ff4e4439ff52473cff4d4339ff4d4339ff4c4338ff44382eff463a30ff45392eff43372cff4a3d31ff483b30ff4a3d31ff4a3d31ff4b3f32ff4a3d31ff463a30ff473b31ff493d32ff4d4034ff4b3f34ff4d4134ff4a3f33ff4a3f33ff4a3f33ff4e4135ff514438ff55483bff4e4134ff524538ff524539ff54463aff514437ff514438ff534638ff53463aff4f4236ff4f4235ff574b3fff55493cff594b3eff5b4e40ff5b4e41ff5f5345ff5d5043ff5f5346ff65594bff655749ff675a4bff65584aff695c4dff625645ff6c5e4fff6d5e4fff6c5e4eff746454ff796859ff766858ff796a58ff776858ff827462ff8a7966ff867765ff8f7c6aff8e7c6aff94806dff907f6dff917f6dff9c8b78ff9e8d7bff9d8b79ffa3907bffa4917cffa08d79ff9a8874ff988675ff988674ff978573ff958372ff958472ffa0907cffa18e7cff958372ff94816fff95816eff9f8b77ff988471ff988572ffa4907cffa38f7bffa08c77ff9b8874ffa6937effa18e7bffa4907cffa38f7bff9d8a76ff9d8977ff9a8875ff978573ff9a8874ffa38e7bff9c8a78ff9b8a75ff958572ff968672ff938170ff988573ff9e8b79ffa08c7aff947f6dff998573ff948270ff978372ff94806eff907e6dff907f6cff928170ff877768ff887767ff8f7f6fff8b7a69ff8e7b69ff8c7b69ff8b7a68ff8d7b6aff857463ff8d7d6cff867666ff8f7e6dff857666ff847565ff877867ff837361ff857464ff7e6e5dff857462ff867462ff837361ff8b7967ff7e6e5cff837362ff8d7d6bff8e7c6aff8c7b6aff907d6bff917e6cff8b7866ff8d7c6aff907d6cff92816fff907f6eff8d7c6cff8f7c6aff907d6bff8b7a69ff827362ff837464ff817162ff827262ff807060ff867663ff8e7e6cff867464ff7e6e5eff7c6c5cff827261ff827261ff81705fff837363ff8a7968ff887767ff867665ff887765ff897967ff887867ff8c7c69ff847563ff8a7b68ff837364ff7c6d5fff7e7061ff837463ff847464ff827263ff817260ff7c6e5eff7e7060ff7d6e5eff7e6e5fff817162ff817161ff7b6c5cff7d6e5fff786a5bff766759ff786c5cff726656ff716555ff6f6354ff6d6053ff6d6153ff6f6357ff706355ff706354ff6e6153ff6c6052ff6d6053ff64584bff6d6155ff65594dff6d6053ff65594cff675b4dff5f5345ff65584aff645749ff5d5044ff66594bff63564aff5e5246ff66594dff594e42ff615549ff675c4eff64584bff635749ff675a4cff67594aff615346ff615547ff64594bff63584bff64594cff605649ff635648ff615446ff5e5246ff554b3eff544a3fff51473dff50463bff51473cff54493cff5c5346ff52473cff4c4137ff4c4236ff4f4439ff55483dff4b4034ff4d4137ff55493dff53473cff52463bff50453aff53483cff51463cff52473bff4f4439ff4e4438ff4d4238ff483c32ff43382eff44392eff43382dff483d31ff473b30ff4a3d31ff4a3d30ff493c30ff493d31ff483d32ff493d32ff473c31ff4a3e32ff493d31ff504338ff4c3f33ff473a2fff4c3f34ff4f4136ff4e4034ff524438ff534539ff524438ff504235ff534538ff534538ff57483dff584a3dff53463bff54473bff54473bff524539ff574a3eff5b4d41ff5d4f42ff5d5043ff605245ff635546ff5e5244ff655748ff6a5d4dff685b4bff66594aff695c4dff685b4cff695c4eff6e6051ff716152ff756555ff796a5bff817162ff7c6d5dff7a6b5bff827261ff837262ff887664ff8a7766ff907e6cff907e6cff8e7c69ff927e6cff9e8b76ff9b8975ffa4937fffa8957fffa08c78ff9c8975ff958272ff9d8a76ffa08c7aff9a8776ff978573ff938372ff958573ff9d8e7bff998977ff928170ff988674ff9f8a77ffa38e7bff9e8a77ffa4917fff9d8b79ff9e8c78ff9f8d79ffa2907cff9e8b7affa18e7bffa18d7aff9f8b77ff9b8876ff9d8a78ff988674ff958472ff9a8873ff998673ff9e8c7aff978573ff92806eff978572ff9a8676ff998573ff9b8674ff9e8a77ff998371ff95806eff95806fff978372ff9b8676ff998674ff958372ff8f7e6eff8a7969ff8b7a6aff8b7a69ff8e7c6bff8d7b6aff8e7d6bff8a7868ff8b7a68ff8e7c6bff8d7c6bff90806eff8a7a6aff897969ff8a7867ff827262ff837364ff847564ff867564ff897867ff8d7b6aff917e6cff8b7a68ff8a7968ff8b7a69ff8e7e6dff8c7a69ff8f7d6bff93806eff93816fff8c7a68ff927e6cff917f6bff917f6dff928270ff93806dff887563ff877464ff877566ff8b7967ff897768ff847363ff847463ff807061ff857565ff867766ff817161ff7f6f60ff857565ff877666ff8c7b6bff897968ff8c7c6bff867766ff877866ff8d7e6bff8a7b68ff887867ff887866ff8a7967ff887866ff807061ff807264ff7e7062ff7b6d5fff807060ff847362ff867667ff7b6b5cff7c6c5dff7d6d5eff7d6c5eff827160ff807060ff807061ff806f60ff796a5aff79695aff786a5bff7d6d5eff756759ff746758ff6e6253ff63584bff6d6153ff6c5f52ff6d6053ff6c5f52ff716557ff6f6255ff675c50ff726558ff6c6053ff6d6153ff665a4dff695c4fff685b4cff625649ff63584bff5f5447ff62564aff64574bff685c50ff66594eff605549ff665a4dff63574aff695d51ff66594cff695c4eff6a5c4eff675a4cff605445ff66594bff635749ff64574aff655a4cff645849ff5b5041ff5a4d42ff5a4d42ff5c5043ff574b41ff52483dff53493eff4e4439ff53493eff52483dff50473cff4c4237ff53493eff54483cff584c41ff564a3fff594d42ff53483eff51473bff53493dff52483dff4f453bff52473cff51463aff4d4237ff4c4137ff45392fff463b30ff473b31ff463a30ff463b2fff483c2fff4a3f32ff493d30ff483c30ff4b3e33ff4b3f34ff4d4136ff4c4034ff4c4034ff4f4236ff4f4337ff504337ff4d4035ff514438ff524439ff504338ff524539ff524539ff53463aff56483bff57493bff56493bff5a4b3dff5c4e3fff59493dff55483bff54473aff574a3cff5b4e40ff5f5143ff5c4f41ff625445ff665749ff625446ff645547ff635546ff6f6151ff6b5c4dff6d5e4fff685b4dff6b5e4eff695c4eff6d6051ff736556ff776859ff7a6c5bff7c6d5cff7e6e5dff837261ff817060ff847463ff8b7a68ff8c7967ff907d6aff8f7b69ff927f6cff93806dff968371ff968471ff9e8b78ffa4917dffa4927eff9d8a76ff9e8b77ff94836fff9a8774ff968472ff968472ff988775ff948473ff978775ff978876ff988976ff9a8774ff9b8874ff9e8b79ff9d8b79ffa08e7bffa08e7affa18e7cffa08d7cff9d8b7aff9d8b78ff9e8c7aff9b8976ff988674ff9f8c7aff9c8978ff9e8c7aff9a8876ff9c8976ff9c8a77ff9a8876ff9e8d7aff978674ffa18e7cff9f8b7aff9d8b78ff998573ff9b8775ff9a8674ff998675ff978474ff968473ff998573ff9c8975ff94816fff8e7d6dff8d7d6cff948370ff928170ff978474ff8d7b6bff95826eff988572ff8e7b6aff8e7c6bff907f6eff8f7f6eff91806fff8f7f6eff8a7969ff887767ff897969ff867665ff8b7b6aff887766ff8e7d6aff927f6cff8e7d69ff8f7d6cff8b7a69ff91806eff92806eff8e7d6aff8f7c6aff8f7c6aff8e7c68ff8f7c69ff8e7d6bff8e7e6bff94826fff978472ff8f7e6cff8d7a68ff897766ff847462ff877765ff837362ff867665ff837363ff847463ff837463ff877867ff827362ff857464ff857564ff8b7b6bff8b7b6aff8a7b69ff897a68ff8b7b69ff897a68ff887966ff877865ff887967ff857663ff817262ff867767ff857567ff857667ff807162ff847463ff837363ff7c6d5eff7e6f60ff7d6e5fff857465ff7f6f5fff817161ff7f6e5eff827363ff7d6f5fff7f7161ff7a6b5cff7c6d5dff7e6f5eff7c6e5cff726454ff6b6051ff6d6253ff756858ff716557ff75675aff6e6154ff746658ff736458ff6e6054ff6d5f53ff736559ff6a5e52ff6d6053ff6b5e52ff685b4eff64574bff64574bff63584bff66594dff64584bff685b4eff695c4eff6a5e4fff65584cff625549ff6a5e50ff6e6052ff685b4dff635648ff65584aff635648ff645749ff615648ff65594bff685a4dff685c4dff615547ff605345ff5a4e41ff564b3eff584d41ff53483dff554a3fff51473cff52473dff52483dff52483dff51473bff52473bff52483bff564b40ff564b41ff564a3fff54493dff554b3fff544a40ff50463bff4f453aff4f453aff4d4338ff4b4136ff4e4339ff483c32ff453a2fff483d32ff473b2fff493d33ff4d4135ff4d4135ff4d4134ff453b2fff483c31ff493d32ff4d4035ff4b3f34ff4f4336ff4e4135ff504438ff514538ff4f4337ff54473bff514437ff52453aff504337ff514438ff53453aff504439ff57493cff574a3bff594b3dff594b3dff5a4b3dff584a3dff584a3cff584b3dff5b4e40ff5f5142ff615344ff675847ff665748ff635547ff665648ff625445ff695b4cff675a4aff6b5d4dff6a5d4eff685a4bff736756ff6f6253ff736556ff766858ff766858ff7c6d5dff7a6a5aff79695aff827262ff877866ff887967ff806f5eff927f6bff94816dff95836fff978371ff9d8976ffa38e7affa28e7affa08c78ff9a8673ff9a8773ff9d8a76ff9b8976ffa2907bffa79580ff9a8976ff9b8976ff968573ff9d8c77ffa18f7bff9d8c79ff978572ff9b8976ff9a8877ffa0907effa3917fff9e8c78ffa28f7dff9f8c7affa08e7effa69382ffa3917fffa28f7cff958573ff978675ff988775ff9b8978ff998775ffa08d79ff998673ff9f8d7bffa18f7cff9e8c79ffa5927eff9a8775ff978574ff978572ff968270ff988573ff938272ff968473ff958371ff9a8775ff988674ff968270ff8e7c6dff968473ff91806eff968474ff988675ff9a8874ff9a8772ff988672ff8f7d6bff938170ff91816fff90806eff8d7d6cff948372ff8e7e6dff877766ff8b7c6aff8b7c6aff8b7b6aff8d7d6aff8e7d6aff8c7b68ff897866ff8a7a69ff8b7b6aff8f806dff8c7d6aff8a7a67ff907e6bff907f6bff92816dff927f6dff958470ff968471ff93816eff94816eff8a7866ff8b7867ff8a7867ff8b7968ff907f6cff8e7d6aff837363ff887867ff847464ff8a7967ff8b7b6aff877766ff867665ff877766ff887868ff8b7c6bff8c7c6bff887965ff8f806dff877864ff8e7f6dff8d7f6bff8f806dff867765ff827363ff7e7060ff827464ff867667ff827363ff897968ff817161ff857666ff857565ff817161ff847465ff827262ff776859ff827261ff7d6e5eff7b6d5dff7f7161ff7e6f5eff7d6d5cff7d6e5eff7e705fff756756ff706356ff766859ff6f6354ff716456ff776a5cff786a5bff786a5cff76685bff6d5f53ff6c5f52ff716457ff6d6053ff6d6053ff6e6154ff685b4fff6c5f52ff655a4dff675b4eff685b4fff685b4dff6b5e4fff65584cff625649ff675a4eff6a5d50ff695d4fff65594bff695c4dff65584aff675a4bff65594aff67594cff695d4eff685c4dff66594bff665a4bff5e5144ff5e5144ff5c5143ff5a4e42ff5e5346ff5b5042ff51473bff574c41ff53483dff594e40ff584d41ff53493eff53483dff50463bff54493eff564b40ff584d42ff51473bff574d41ff51473bff554b40ff554b41ff564c41ff52483cff4a4136ff494035ff463b30ff4c3f33ff4a3f33ff483c30ff483c31ff4b3f34ff4b3f34ff4a4034ff473d32ff4a3f34ff493e33ff4b3f34ff4e4136ff4d4135ff4c4034ff4c4135ff4c4033ff4e4135ff4f4336ff4d4034ff55473bff534639ff54473bff57493cff54473bff594b3fff584a3cff57493aff57493bff574a3cff584b3dff5b4e3fff594c3eff5e4f40ff635646ff5c4e40ff635546ff685848ff635545ff615445ff635547ff675848ff6a5d4dff726251ff716252ff6b5d4eff736454ff726353ff726454ff766758ff7b6c5dff7f6e5dff7e6f5fff7f7160ff807161ff7f7261ff887a67ff8b7a66ff8f7d69ff988774ff93826eff978472ff998573ff9b8774ff968372ffa28e79ff9e8c78ff948370ff978774ff9f8c79ff98856fff9c8a75ff9c8a77ff9f8c79ffa18e7bffa08d7aff9e8b78ff9a8875ff958572ff948472ff9b8a78ff9a8977ffa59381ffa89380ffa4927fff9f8c79ff9f8d7bff9f8d7cffa08e7dff9f8e7cff9a8978ff9e8e7dff998977ff9a8877ff9e8c7aff9f8d7aff988673ff978673ff978571ff998773ff958371ff968270ff9e8b79ff9b8975ff9d8b77ff9c8774ff998675ff9c8a79ff968471ff958170ff988574ff948272ff938271ff938271ff938270ff978472ff998875ff93806fff988672ff9a8773ff917f6cff8d7d6bff907f6dff91816eff897c69ff93826fff8f7e6cff93816fff8e7e6bff8b7a68ff8a7a69ff8b7b6aff8c7c6bff8d7b6aff8e7e6cff918270ff8b7b69ff8a7b68ff94836eff907f6bff907f6bff93836fff958470ff93816eff927f6dff92806dff917f6eff94806dff8f7e6cff8c7b69ff887866ff8f7d6cff8a7864ff8a7a67ff857564ff8e7b69ff927f6dff8b7a68ff857464ff817363ff847666ff7b6c5dff897a6aff897969ff8c7c6cff8e7e6bff8c7d6aff897966ff897b68ff8d7e6bff8c7d6bff857766ff867969ff827464ff837664ff857665ff867867ff8b7c69ff827361ff837564ff7d6c5cff837361ff7c6c5cff837362ff847564ff837664ff837463ff817262ff837464ff817364ff6f6252ff756758ff796b5cff75685aff7b6e5fff726557ff746759ff76685aff736758ff766859ff77695aff766859ff6f6152ff706255ff6e6052ff756859ff6d6253ff6f6254ff675a4dff706354ff695d4eff685a4cff66594dff685b4fff665a4dff67594dff675a4eff695e50ff675b4dff6c5f51ff726454ff675b4bff6c5f50ff6a5e4eff695d4eff685a4dff665a4cff665a4bff64584aff635747ff5f5446ff5d5244ff5b5043ff5f5347ff594d3fff574d3fff584d42ff5e5145ff615447ff574b40ff55493eff50453aff4e453aff493f35ff544a3eff564c40ff554b40ff564b3fff564d40ff51473bff52483dff544b3fff544a3fff51483cff4a4237ff50483dff483d31ff493d32ff493e32ff483d31ff4e4236ff4d4235ff4a3e33ff4f4538ff483e33ff4d4135ff4b3f35ff504438ff514438ff4e4236ff524539ff514538ff504438ff54483bff53473aff55483cff524639ff53463aff55483cff52453aff55483cff564a3fff584b3fff57493bff57493bff56483bff56493cff5e4f41ff5e5042ff5c4f40ff615344ff635445ff655648ff655647ff665748ff655748ff685a4aff6e6050ff6c5d4eff6e5f4fff6f6051ff726151ff716253ff746454ff766756ff7b6d5bff7b6d5cff746556ff806f5fff827161ff857463ff807362ff877866ff92816cff8d7c6bff94826eff92806eff998773ff95826fff8f7f6cff968572ff998774ff9d8976ff9c8975ff9a8672ff9d8975ff9c8875ff9c8875ff9e8b78ffa08c79ff9c8977ff9e8c78ff9e8a77ffa38f7bff978673ff9b8a77ff9b8877ffa2907effa08e7bffa28e7cffa28f7bff9e8d7affa69482ffa59481ff9e8c7affa89583ff9e8d7cffa08d7cff9d8b7cffa08f7cff9e8c79ff9c8a78ffa18d7affa08d7aff9a8876ffa2907dff988774ffa1907cff9a8975ff998773ff9f8c79ff988573ff988674ff9a8a78ff9d8b79ff998572ff968271ff917e6dff948171ff948171ff998675ff92816fff988574ff9a8775ff988574ff988673ff958372ff918270ff988875ff948371ff948371ff90806eff8d7d6bff917f6dff8b7b6aff8e7e6bff91806cff938270ff8d7d6cff8b7969ff968371ff907e6dff8f7e6cff8b7c6aff91806eff907e6bff8f7e6cff92806dff958270ff968471ff907e6dff887867ff8c7b6bff8e7d6cff92806dff8d7a68ff8a7866ff8c7a68ff897765ff8a7866ff897866ff8d7b69ff8a7968ff897967ff8b7a68ff897867ff887968ff847565ff8a786aff887969ff8b7c6bff897969ff8d7d6aff8d7e6bff8f816eff8e806dff8e7e6cff887969ff8b7b6bff827465ff8a7a6bff8c7d6cff877768ff887868ff827161ff897869ff867768ff877869ff837565ff877969ff7f7261ff807260ff807263ff7e7061ff817463ff807464ff7d6f60ff7b6c5dff756757ff736657ff7a6c5eff75685aff796b5eff786b5bff77695cff7a6c5dff776a5bff796b5bff726557ff706455ff776b5bff716456ff706456ff6e6254ff6d6051ff6d6052ff695d50ff685b4eff6d6151ff6b5f51ff63584bff685b4eff6a5d4fff6b5e50ff6a5e50ff685d4fff6c5f51ff695c4dff6c5f51ff6b5e50ff6f6153ff6b5e4fff65584cff5f5446ff605447ff615548ff615546ff5f5244ff5c4f42ff5a4e41ff584c3fff5a4d40ff5a4e41ff5b4e41ff5a4e42ff594e41ff5a4d41ff554a3eff53493dff53493eff554a40ff554a3fff574d41ff564c41ff564c3fff544b3fff5a5044ff574e42ff52483cff5a4f43ff50483dff50463cff493e31ff483c31ff493e31ff483c31ff4e4135ff504538ff4e4236ff4b4035ff493f33ff4c4034ff4d4135ff504439ff4a3f34ff4b3f34ff54483aff524639ff594b3fff52473aff594c3fff564a3dff574a3eff53463aff55473bff55483cff584b3fff574b3eff594c3fff594c3fff594c3fff5a4c3fff584a3dff5a4c3fff5b4d3fff5e5042ff615445ff615345ff615344ff655647ff665748ff675848ff685949ff67594aff6f6050ff6f6151ff706252ff796756ff766757ff796958ff7a6a59ff7a6b59ff776857ff776858ff7f6f5dff847462ff827260ff857765ff897966ff877763ff8b7b68ff9b8973ff958470ff958370ff958370ff978573ff948270ff9a8775ff9c8977ff9c8976ff93816fff9c8b78ff9e8c7aff9c8a78ffa18f7cff988571ffa08e7cffa28f7dffa38f7dffa18c7bffa08c7affa18d79ffa08d7bff9f8d7bffa38f7bffa08c7aff9f8c78ff9f8c79ffa5917effa69481ffa4917fffa18e7dff9d8a7aff9c8a79ff9e8b7affa18f7eff9a8877ff988675ffa28f7cff9f8c7affab9583ff9b8a77ffa2907dff9d8c78ff9f8d7aff978472ff998674ff9f8c7aff9f8c7aff9e8c7aff9e8b79ff998674ff988674ff968473ff8e7c6bff92806fff958372ff998875ff9a8875ff968472ff998775ff978674ff958472ff91806dff92816eff948371ff938371ff938271ff907f6dff95826fff948471ff93836fff94826fff938370ff907f6cff907f6cff94826fff94826fff958370ff8b7b68ff8d7b69ff907e6bff95836fff9c8974ff968470ff907e6cff907e6eff8e7d6cff907f6eff907e6eff8f7e6dff897867ff8c7a68ff8e7e6cff8d7c6bff8b7a6aff887765ff867563ff8d7d6cff8a7a6aff8c7b6cff8a796aff8a7a6aff8c7a6aff8a796aff8b7a69ff8a7a68ff8c7b6aff897865ff8f7e6cff928270ff8b7d6cff8f7e6eff8b7b6cff867667ff88786aff8c7c6dff817365ff86776aff827366ff847566ff877769ff89796bff877869ff877969ff857868ff847767ff827362ff7f7162ff837565ff837465ff837565ff807262ff7e7061ff817363ff7b6d5eff7c6e60ff74675aff796b5eff7b6e60ff796b5dff736758ff776a5cff75685aff766859ff6c5f51ff706355ff746859ff736758ff716557ff6e6154ff6d6052ff6f6455ff706455ff706253ff6b5f50ff665b4cff685c4dff706354ff6b5e4fff6d6152ff675c4eff635749ff6b5d4fff6e6152ff736555ff6c5f51ff67594cff675a4eff63574bff65594cff63574aff625649ff594d41ff605245ff5e5245ff5b5044ff5a4f43ff594d41ff584b3eff5c5145ff584c41ff5a4e43ff574a40ff584d41ff564a3eff574c41ff564c40ff564c3fff554b40ff53493dff554a3eff5a4e42ff594f43ff594e42ff53493eff51473cff50463bff4b4033ff4d4134ff504336ff4f4235ff504335ff4c4033ff4d4235ff4f4337ff4c4034ff4f4336ff524539ff53463aff504337ff53463aff54473aff544639ff54473bff54483bff55483cff504438ff54473cff56493dff55493cff594c3fff5a4d40ff5a4d40ff5a4d40ff584a3eff574b3dff574a3dff5b4e40ff5b4d40ff5f5143ff5f5042ff645646ff5e5042ff625445ff665748ff655647ff635445ff685949ff706252ff6d5e4fff6f6050ff726353ff6f6051ff786757ff7b6958ff7b6a58ff7c6c5aff776756ff83715fff806f5eff7e6e5dff81705fff7c6c5bff80705eff837360ff897866ff8f7e6aff8c7c69ff8e7d6bff958371ff907f6dff958371ff998775ff9b8977ffa18e7bffa08e7bff9f8e7bffa5927fff9c8a77ffa18f7bff9f8b78ffa18f7cffaa9785ffa18f7cff998775ffa08e7affa5927fffaa9681ffa5927fffa5927effa8947effa99580ffa6917dffa5917dff9d8a76ffa18e7bffa5917fffa18d7bffa59280ffa69381ffa3917effa08d7affa28e7bffa08d7affa38e7bff9d8977ff9e8b78ff9d8a78ff948371ff9c8976ff9f8c79ff9a8876ff9d8b79ffa08e7cffa18e7bffa08d7aff978472ff95826fff948170ff998775ff9a8875ff998675ff9c8977ff9c8a76ff948471ff988875ff998875ff938270ff91816fff968673ff9a8a77ff948373ff978673ff92816fff93826fff978571ff978571ff9b8975ff907f6dff93826fff988572ff93816eff897867ff8d7b69ff81705eff8b7a67ff8a7a66ff907e6aff94816dff8f7f6cff8b7a69ff8c7c6bff8d7c6cff90806eff8f7e6eff90806eff92816fff8d7e6bff8f7f6dff92806fff8d7d6bff8d7c6aff8e7c6bff90806eff8e7f6eff897869ff897869ff90806fff8e7d6dff8e7d6cff92806eff93826fff958471ff958270ff93816eff8e7e6cff89796aff8b7b6cff8e7d6dff887768ff8f7e70ff8f7f70ff8b7c6dff8a7a6bff857667ff877768ff8a7a6bff847566ff867769ff827365ff817365ff857768ff827464ff827363ff857666ff867666ff887867ff827362ff7e6f5fff7b6c5cff7b6c5fff786a5dff7d6f61ff7a6c5fff7d6f61ff796b5dff75685aff7a6d5eff776a5bff736556ff756859ff776a5bff766a5bff716558ff726657ff6c6052ff6b5f51ff756758ff716454ff726555ff64594bff6c5f51ff716353ff6a5d4fff65594bff695c4eff52473bff635649ff63584aff6b5e50ff6b5d4fff685b4eff65574bff615549ff66594dff675b4eff63574bff63584bff615548ff5d5245ff5e5346ff615548ff5d5144ff5c5043ff5d5044ff5f5346ff5e5347ff584d41ff584d42ff5d5245ff5a4f43ff5a4f43ff5a4f43ff5c5144ff5b5144ff5c5144ff594e40ff564b3eff544a3eff544a3eff5a4f43ff53483dff564c40ff4e4135ff4d4135ff504336ff4f4135ff4f4335ff4f4336ff4b3f32ff4f4235ff504336ff514437ff524539ff55483aff56483aff55473aff54473aff56493cff574b3dff564a3dff574b3eff594d3fff584c3fff594c40ff574b3fff534639ff584a3dff594c3fff55483cff52463aff55483bff584b3eff5b4d40ff5d5041ff605143ff645547ff615243ff5f5143ff5f5043ff645546ff665749ff645648ff625345ff695849ff695a4cff6f6050ff716152ff706151ff746354ff766655ff796858ff7c6b5aff7f6e5dff756555ff7f6e5dff7f6e5dff7f6f5eff847261ff857361ff857463ff867563ff91806bff8f7e6bff92826fff91816eff907f6dff948370ff988674ff978573ff9e8c79ff9e8c79ffa18f7cff998877ff9f8d79ffa08c79ffa38f7cffa4917dffa1907dffa69481ffa2907dffa08d7bff9f8c7affa7937fff9f8c7affa6927dffa6937effa9947fffa6927dffa5907cffa5927eff9e8977ffa6917effa6927fffa6927fffa4917fffa6937effaa9480ffa8937effa28f7bffa4907cffa5927dff9f8b79ffa08c79ffa3917cffa28f7bffa28e7cff9e8c7aff988573ff9e8a78ff9c8977ff978473ff917f6eff95826fff958271ff9d8b77ff9e8c78ff9d8a77ffa18e7bff93826fff948371ff948572ff968471ff968776ff90806fff8d7d6cff94816fff8e7f6fff9c8977ff917f6dff958370ff94816fff94826fff9a8773ff91806dff948370ff917f6dff93816dff907e6bff907e6bff927f6bff8e7c69ff8e7c69ff917d6aff96846fff907f6dff928170ff907f6eff8e7d6cff90806eff8f7f6eff8e7e6dff928270ff8d7d6bff91806fff8a7b6aff8d7d6bff8e7d6bff8f7e6cff8f7e6dff8d7e6dff908070ff8f7e6eff8a7a6aff8d7d6dff8f7e6cff8b7a6aff91806eff91816eff94826fff92826fff8e7f6dff8d7e6eff897969ff907e6eff8f7e6fff8e7d6eff8e7e6fff8b7a6aff907e6eff8c7c6cff867667ff8b7b6bff8c7d6dff867769ff857668ff897b6bff847567ff857667ff847565ff807160ff847463ff7f6f5fff7a6c5cff766859ff7c6d5dff796b5dff7e7061ff7f7263ff7c6e60ff807163ff736658ff716557ff796c5dff746657ff776a5bff6f6254ff726454ff736657ff706456ff786a5bff6c5f51ff6f6254ff706354ff6f6253ff746756ff695d50ff655a4cff6d6152ff6a5d4fff66594cff66594bff64574aff67584bff645649ff695b4eff6b5f50ff675a4cff675a4eff675b4eff64574bff685b4fff65584cff63574bff64584bff5f5448ff615549ff5b5045ff5d5244ff5e5144ff5f5246ff5f5346ff5c5144ff5c5145ff5c5044ff574c40ff594e43ff5c5245ff554a40ff5c5143ff594f42ff5b5042ff594e41ff584d40ff595043ff53483cff584d41ff574c40ff54493dff4e4136ff4e4235ff524639ff514336ff4e4033ff504336ff504438ff504337ff4d4135ff574a3bff534639ff524639ff56493bff534739ff53483bff55493cff564a3dff54483cff574b3eff594d40ff594d40ff574c3fff594d40ff584b3eff5a4f41ff5a4e40ff5b4f41ff55493cff55483cff584a3eff574a3dff584b3eff5a4b3eff605143ff605345ff5f5043ff5c4e42ff655647ff635548ff645547ff6a5c4bff6d5f4fff6d5d4eff716152ff6b5d50ff746557ff6f6051ff726253ff7d6b5bff7a6958ff816f5fff827060ff847260ff817160ff7f6f5fff7f705fff806f60ff837362ff897a68ff8a7a68ff8d7d6bff928270ff8f7f6dff8e7d6cff958571ff9b8874ff9c8977ff998675ff9c8a78ff9b8979ff9b8877ff9c8a77ffa3907effa3917fffa1907dff9f8e7bff9b8a79ff9a8a7aff9e8c7bffa2907eff9d8b79ffa89381ffa48f7cffa4907cffab9783ffa9937fffa48e7affa5907cffa4907effa38f7dffa08d7bffae9a84ffa2907dff9f8d7bffa3907cffa08e78ff9f8e79ffa18e7affa38f7cff9f8b78ffa5907cffa6927effa18e7bffa18f7cffa1907dffa08d7aff9f8f7cffa08f7bff9f8e7bff988675ff998776ff9b8876ff988673ff9a8875ff9a8673ff9c8a77ff938371ff91816fff8f8070ff928171ff948475ff938371ff968775ff928271ff8f7f6eff998876ff907f6dff938170ff8f7e6cff968472ff94826eff948270ff9c8a77ff968572ff968470ff917f6dff8d7c6aff8f7e6bff8d7c6aff8f7e6bff93836fff8f7f6dff938270ff8f7f6dff8d7d6cff907f6eff928270ff938270ff907f6eff8d7d6bff8e7f6eff8e7d6dff8b7b6aff8a7a68ff928371ff8e7f6eff8e7f6eff8d7e6cff908170ff897a6bff8b7a6aff877968ff8f7f6eff928170ff92816fff958471ff958573ff938170ff8a7b6bff90806fff8c7d6eff89796aff8c7c6cff958472ff897967ff8b7a6aff887867ff89796aff857767ff8a7b6cff897a6cff877869ff8e7d6eff8b7c6dff847667ff887a6aff857665ff867665ff847665ff847764ff7f7160ff7a6c5eff7e7061ff7d6f61ff796c5eff7c6f60ff7c6e5fff7d6f61ff75695bff73675aff776a5cff736557ff6f6255ff746859ff786c5eff736657ff706354ff726658ff736759ff6b5e50ff695e4fff756859ff6e6151ff6f6253ff746859ff736759ff6c6151ff675b4eff65594cff65594cff64574bff665b4dff695d4fff675b4dff695d50ff65584cff64574bff66594dff6a5d50ff665a4dff625649ff605548ff5f5448ff5f5348ff5b4f44ff5a4e42ff625649ff5f5347ff605448ff5f5447ff5d5246ff584e43ff584e41ff584e42ff594e43ff5d5146ff5b5044ff5c5145ff5f5447ff5d5144ff574b40ff594e42ff574d42ff574d42ff51473cff5a4f42ff4f4336ff4e4236ff534739ff4f4336ff514437ff4f4336ff514639ff55493aff524638ff514638ff54483bff54483bff564b3dff574c3eff594c3fff54483bff55483cff594c3fff54483cff584c3fff53483bff56493cff5c4f41ff594c3fff5b4e41ff5d4f42ff605244ff5a4b3eff55473aff56483cff57493cff5a4c3eff5a4c3fff5a4c3fff5f5143ff5e4f42ff5e5042ff635445ff645647ff655546ff6b5c4cff70604fff6c5d4dff706152ff6d5f50ff6e5f50ff6a5c4dff756354ff796959ff7d6c5cff7d6d5cff7f6d5dff806d5cff7b6b5bff7a6a5bff7f6f5fff7d6e5cff847463ff8b7b69ff8d7d6bff8f7e6bff968673ff907f6dff968571ff9b8977ff968574ff93806fff978572ff9a8776ff9c8978ff9d8a79ff9d8a79ff9f8d7cff9f8d7bff9e8c7bffa69382ffa2907eff9b8b7aff9c8a78ffa49180ffa59380ffa18e7bffa5917dffa28f7dffaa9681ffa5927effa5907cffa28e7bffa5917fffab9882ffa5927cffa6947fffa3907dffa3917dffa69480ffa79681ffa89481ffa3917cffa28e7bffa7927fffa28e7bffa4907dff9b8a77ff9f8d79ffa2927eff9e8d7bff9e8d7cff9e8c79ffa59380ff9b8876ff9a8874ff9a8876ff9a8875ff9b8774ff9b8876ff958371ff928370ff938270ff938170ff948371ff948373ff93816fff948371ff968573ff928270ff968675ff8f7e6cff8c7b6aff917f6eff937f6fff9a8875ff9a8875ff948370ff93816fff917e6bff8c7c69ff8c7b69ff907e6cff8c7c68ff93826fff958471ff938470ff93826fff9b8a76ff93816fff988572ff958472ff8f7f6dff8c7c6aff8d7c6bff8f7f6dff8e7e6dff90806eff8f7f6fff8e806fff8f816fff928272ff948473ff8a7c6bff8c7c6bff8f7e6cff928170ff938471ff91806dff91806dff948473ff948572ff918271ff8c7c6cff908070ff908271ff91816fff8a7c69ff8d7d6bff8a7a69ff8a7a69ff8c7d6bff8f7f6fff8b7b6cff8d7e6fff8b7b6dff89796aff87786aff8b7b6cff817364ff8b7b6bff88796aff887968ff877767ff817261ff877767ff7d6d5dff7e705fff7c6e5fff7d7060ff7a6c5dff7b6c5eff786a5cff75695bff75685aff776a5bff746758ff736658ff756758ff776a5bff756859ff726657ff736759ff6f6254ff655b4dff6e6052ff6e6052ff736757ff796c5cff706455ff6c5f51ff675a4cff63584bff63574bff65584cff605446ff6a5d50ff6a5e50ff6a5d4fff6a5d4fff6e6253ff6a5d4fff6c5f51ff675b4eff63574bff605346ff5f5347ff605347ff5e5247ff5f5347ff5e5247ff5e5247ff5d5145ff615448ff605448ff5b5044ff584e43ff5a4f42ff5c5145ff5e5446ff5b4f43ff5b5042ff5c5245ff5f5446ff5b5043ff594e42ff584d41ff544a3fff584e41ff544a3dff53493cff514438ff514638ff504538ff4e4336ff514639ff524739ff504438ff55483bff514439ff56493dff54483cff594d40ff554a3eff51463aff574c3eff534639ff514436ff574a3cff54483bff504539ff55493dff574a3cff594c3dff605142ff5c4e41ff5d4f41ff5f5041ff57483bff56493cff57493cff5b4d3fff5f4f40ff5c4d3eff5d4f40ff5b4c3eff5f5042ff625344ff625443ff675848ff6a5a49ff6d5d4cff6d5e4dff746352ff67594aff6f6052ff6b5c4eff695b4bff706051ff7a6959ff806f5fff7f6f5eff7f6f5eff7b6a5aff7c6c5cff7d6d5dff82715fff816f5dff827161ff8f7e6dff8b7a69ff8e7c6aff94826fff8e7d6bff8c7c6cff8c7c6cff8f7f6dff8d7c6cff958372ff998774ff9d8b79ff9e8b7aff9b8977ff9f8e7dff968473ff9a8877ff9b8876ff9f8c7affa18e7dffa39280ff9e8d7bffa08d7bff978372ffa89581ffa89580ffa5927effa28f7bffa5917effa7947fffa08c7affa8927fffa28f7dffa99582ffa59280ffa89683ffa69584ffa1907dffa69480ffa6927eff9e8975ffa4907dff9f8b78ff9b8b78ff9a8977ff9b8976ff9c8b76ffa5937eff9f8d7bff9f8e7aff9e8d7aff988673ff998b77ff998877ff9d8a77ff9e8b76ff998672ff8f7f6bff8f7e6cff8f7f6dff958371ff938170ff998875ff94826eff958371ff948471ff9b8876ff8a7968ff948272ff8e7e6eff8b7a69ff938170ff9d8a77ff978572ff9a8974ff8b7b68ff8f7d6bff8e7c6aff8f7d6bff917f6bff927f6bff9a8776ff948472ff918270ff948370ff94826fff91806eff8f7e6dff8e7d6cff8f7f6cff867564ff8c7c6bff958370ff91806eff918170ff8f7f6dff8d7f6eff8b7c6cff8c7d6cff91816fff8e7e6dff8e7e6dff90806fff867664ff8f7d6cff907e6cff958471ff988976ff8e7f6dff8f8070ff8b7c6bff90816fff8b7c6dff928170ff907d6eff907f6fff918070ff8d7d6cff8b7b6cff897a6aff897b6bff8a7b6bff847464ff88796aff847567ff887a6aff837465ff847564ff8b7c69ff8d7c6aff887766ff8a7a68ff807261ff7c6d5dff817463ff7b6d5eff7f7161ff80715fff7a6c5cff726656ff76695bff756759ff766859ff76695aff7c6f60ff756757ff746759ff786b5bff726557ff695d4fff6d6153ff6c6052ff6a5e50ff726556ff796b5cff77695aff736758ff62574aff675b4eff64594cff64584bff635649ff655849ff726456ff695d4fff685b4eff6e6151ff6c5e4fff65594bff62574aff62574bff63584aff5c5145ff5c5145ff675b4cff605448ff615549ff5e5245ff5d5246ff594d42ff5b4f44ff5f5346ff5c5144ff5b5144ff5c5345ff554c3eff5a4f42ff5a4e41ff5f5447ff5f5546ff574e3fff5b5143ff594f43ff595042ff50473cff584d41ff50463bff55493fff4b3f33ff514638ff504538ff4f4437ff504539ff54493bff54483aff524639ff54483bff55493cff55493dff55493dff564a3eff53473aff524638ff4e4234ff4f4234ff56483aff534538ff4f4336ff514438ff56483cff56493cff594c40ff5d4f41ff605040ff5d4e3fff5d4d3fff57493bff594a3cff605040ff615242ff5b4c3eff5e4e40ff5f5042ff5f4f41ff635344ff665746ff655646ff6a5a49ff70604fff68594aff6c5d4eff685a4cff6b5d4eff6a5b4cff6b5c4cff706151ff7c6b5bff7c6c5cff7e6e5dff7d6d5bff7b6b59ff7a6a59ff786859ff7c6c5bff82705eff807160ff8a7868ff8a7a69ff907e6bff94816eff907f6eff8e7e6dff918373ff918171ff918070ff917f6eff988573ff9a8776ff9b8877ff9a8674ff9f8d7affa18d7cffa4917fff988473ffa08d7bffa2907effa3907fff9f8e7cff9d8a78ff9c8978ffa18e7bffa79581ffa4917dffa08d79ffa3907dffa3917dffa6937effa4907dffa38f7dffa89481ffa59280ffa4927fffa79583ffa2907dffa08e7affa08d78ff9e8a77ffa38f7cffa18e7aff9c8b79ff9b8978ff9a8976ff978675ff9a8a78ff9e8c78ffa28f7aff9b8a77ff988773ff968674ff9b8b78ff9b8a76ff9a8875ff928170ff948370ff938270ff948371ff9a8875ff998875ff978573ff978572ff9b8a76ff92816fff938371ff918171ff8e7f6fff918071ff8e7d6dff948271ff9d8a78ff968472ff9b8976ff94826fff8f7d69ff8c7b69ff8e7c6aff917f6cff927f6cff91806eff938371ff938471ff988673ff998773ff948370ff8d7c6bff90806eff948271ff8c7a69ff94816eff907e6cff92816fff91806fff91816fff928270ff938372ff91816fff8c7c6aff8d7e6dff90816fff91806fff8c7d6aff8e7d6bff8e7c6bff91806eff928372ff928371ff8e7f6eff928373ff90816fff918170ff918070ff8b7969ff918071ff8e7e6eff90806fff8e8070ff877767ff877767ff867665ff897869ff877869ff8a7b6bff827465ff827465ff857665ff837566ff867768ff897968ff887865ff847665ff807160ff7e7161ff7d6e5eff817261ff7e6f5eff766859ff76695aff746658ff78695bff7b6d5eff796c5dff7a6d5fff7b6d5eff766a5bff746859ff6e6355ff6d6053ff6e6254ff6d6052ff6d6052ff726556ff766859ff706354ff716456ff695e50ff625648ff605548ff64584aff675b4cff665a4cff685b4eff695c4eff675b4dff6f6151ff6b5d4eff675c4eff605649ff62584cff695e52ff5e5246ff65594cff605447ff605448ff62554aff5e5246ff5f5347ff605448ff605447ff5a4e42ff5b5144ff5e5347ff5b5043ff595042ff594e40ff584d40ff5a4f41ff615648ff5d5345ff584e40ff5b5144ff594f42ff584d41ff554a3fff50453aff52473cff463c30ff4f4336ff4d4135ff4b4033ff4f4337ff4c4235ff4a3f33ff473d32ff4c4135ff4f4236ff54483cff504337ff4c3f33ff504336ff4e4335ff4d4032ff504436ff4e4033ff4b3d31ff463a2eff493d30ff4e4236ff54473bff5e5043ff57473bff554639ff5d4c3cff5c4c3dff544538ff514436ff564739ff615141ff5c4c3eff5f4f41ff5c4d3eff5b4c3eff5f5041ff5d4f40ff584b3dff5f5142ff675848ff695a4aff6a5b4dff645648ff665749ff716151ff6c5d4eff7b6b59ff756555ff766757ff766757ff7a6b59ff7a6a58ff7b6b5aff7d6c5dff7d6c5bff81725fff857461ff837361ff887866ff907d6aff8c7b68ff8c7c6aff8d7d6cff8f7f6eff998776ff918070ff948270ff988574ffa08e7cffa18f7cff9e8b79ff9f8c7aff9e8a79ffa38f7bffa18f7dffa3917eff9c8a79ffa18e7dff9f8e7cff9a8877ff9f8b79ff9d8b7affa69381ffa69380ffa18e7bffa18e7affa3917effa3917dff9e8d7cffa18f7dff9f8a77ffa4917fff9e8a77ff9e8a77ffa18e7aff9e8c78ff9f8b77ffa4927eff9d8b79ff9c8a78ff9b8978ff9f8d79ff978675ff988776ffa18f7eff9d8876ff9c8875ffa5907bff9d8b78ff9b8977ff998875ff998774ff9b8a78ff958372ff988674ff978573ff9a8876ff998775ff968572ff988573ff92816fff948270ff958471ff948372ff8e7e6dff918070ff968575ff938374ffa08f7cff968473ff938170ff9d8977ff94816eff95826fff92806eff988471ff94826eff978572ff93826fff91816fff948471ff988673ff958370ff91806fff91806eff958371ff988472ff917e6cff927f6dff958270ff998776ff938371ff938371ff948472ff8f7e6eff958370ff8f816fff8e7f6dff897968ff91816fff897a68ff8c7b6bff8e7d6dff8f8070ff928272ff918171ff918170ff928271ff908070ff8c7d6cff8d7e6fff8f7e6eff8b7969ff8d7d6dff887767ff887766ff887968ff897a68ff8a7967ff8c7e6dff867768ff857667ff837565ff837565ff7d6f60ff837565ff877868ff887866ff857463ff8a7968ff847664ff817263ff7e705fff817362ff7c6e5fff7a6c5dff78695bff76685aff7d6e60ff7a6d5eff786c5dff796c5fff75685bff75695cff74695bff726658ff6f6255ff6f6254ff716557ff74685aff736757ff6c5f51ff605447ff665a4cff605347ff5f5345ff5b4f43ff605446ff665a4bff675c4dff65594bff675b4dff6b5f4fff6a5d4eff695c4eff62574aff62584bff6a5e51ff685c4fff63574aff615447ff5e5247ff62564aff5e5247ff584c42ff564b41ff574b41ff645648ff5b5144ff5b5145ff564c40ff5b5044ff595042ff564c40ff5b5042ff584e42ff5e5246ff5f5447ff5d5245ff594e40ff544a3eff554b3fff4c443aff473e35ff443b31ff463a2fff463a2fff42362aff413529ff463b2eff493e32ff42362bff3d3229ff44382eff4b3f33ff524538ff4f4235ff463a2eff44382cff4a3d30ff4e4033ff504134ff4c3e31ff463b2eff42372cff453a2fff4c4034ff504438ff56483aff534638ff4c3f31ff514335ff524336ff4b3d30ff4d3f32ff594a3aff5d4d3dff604f40ff5c4d3fff5c4d3fff5c4d3fff5c4e3fff5c4e3fff5c4e3fff625344ff685a4aff655648ff5b4e41ff574a3eff5f5145ff6f5f51ff7d6b5aff7c6c5bff766756ff786857ff7b6c5cff7b6d5aff786957ff7c6b5aff7f6f5eff81715dff82725fff806f5eff867564ff907d6bff9d8975ff8a7a68ff8b7c6bff8d7d6cff938371ff998876ff988776ff9c8c7aff9a8978ff988875ff9d8975ff9d8977ffa18e7bff9b8876ff9f8c7bffa28f7effa18f7dffa18e7cffa08d7cffa08d7bff9d8b7aff998776ff9e8b7affa18e7dffa3907cffa18d7affa18f7bffa79681ffa18e7aff9b8877ffa28f7dffa08d7bffa6927effa28e7affa28e79ffa28d79ff9c8976ffa48f7bffa99480ffa3907dff9d8c78ffa2917effa08e7cffa08f7dff9f8d7bffa28e7bff9e8b78ffa28f79ffa4917dffa08d7bff9b8976ffa08d79ffa18f79ffa18e7aff9f8b79ff9b8a78ff9e8c7aff9c8a78ff9b8a77ffa08e7aff9c8a76ff968573ff958371ff958271ff9a8876ff938071ff958273ff9f8d7cff9f8e7cff9c8c7bff978371ff9e8b78ff9e8b79ff96836fff998470ff8e7c6aff9a8773ff978570ff9a8875ff92806fff9a8876ffa18e7cffa5917dff92816fff8d7d6dff8f7f6dff938170ff9b8877ff948270ff998875ff958572ff8f806eff968370ff928270ff928270ff8f7f6eff907f6fff8e7e6dff918270ff8d7e6dff91816fff8e7e6eff897a6aff8a7a6bff8f7f6fff8e7e6eff8e7d6cff8f7f6eff938473ff928372ff8d7c6bff8c7c6cff928171ff8e7d6dff938270ff897868ff8e7d6aff8b7c6aff897968ff92806dff8f7e6cff8c7c6aff867766ff8a7c6bff867767ff8b7d6dff897968ff857464ff847564ff8a7b68ff887868ff837464ff857665ff867665ff857463ff837263ff7f6f60ff7e6f60ff7f7062ff7b6e5fff7e7162ff7e7263ff7c6f61ff72675aff76695cff75695cff75685bff6f6155ff716257ff7e7061ff756859ff6e6355ff615345ff5c4f43ff675a4dff685b4dff695b4cff5e5144ff685b4cff685c4eff6b5f51ff665a4dff6c5f51ff786a5cff756657ff675c4fff62584dff695e51ff706456ff776b5eff6f6356ff6c6153ff61564aff605549ff635649ff5c5046ff564c41ff5d5146ff63574bff5d5246ff5e5347ff595043ff5b5044ff5c5245ff574d42ff574d41ff5e5447ff61564aff62574aff5f5446ff5e5246ff5d5246ff584c40ff4e433aff4a4136ff483f35ff44382cff3c3125ff372c21ff3c3024ff45392eff41362bff392e24ff3b3127ff3f3429ff453a2dff44382cff3b3125ff3e3327ff473b2fff4c3f31ff4b3d30ff44372cff43372cff413529ff493d31ff453a2eff463b30ff483b2fff463a2dff473b2eff463b2dff4d3f31ff4b3d2fff4c3f32ff504234ff504335ff4c3f32ff544537ff524438ff56483cff584b3eff594c3eff594b3eff5c4e3eff5b4e40ff5c5042ff51453aff473c31ff493f33ff5d4f44ff6a5a4cff7a6757ff7b6b5cff796a5aff7f705fff786a5aff746555ff786857ff7f6f5dff7b6c5bff7d6e5cff7a6d5bff81715eff877664ff8d7b6aff8b7a69ff8e7e6cff907e6eff8e7d6dff938272ff9a8877ff9a8978ff9a8a79ff968575ff9d8c7bff988575ff9d8b79ff978673ff9a8774ff988675ff9e8b7aff9a8877ff948372ff978374ff9b8a78ff998776ff9a8877ffa08d7cffa18e7cffa4917dffa18e7affa28e7aff9f8e7affa08d78ff9e8c79ff9e8c7aff9d8977ffa38f7bff9f8b76ff9f8a76ffa18e7bffa4917effa18c79ff9a8976ff998977ff9d8b7bffa2907cff9e8b79ffa59280ffa3907effa08d7aff9e8b78ff9c8976ffa08b78ff9e8977ffa18d7affa3907fffa2917eff9f8b77ff9d8a76ff9e8b78ff9d8b78ff9d8b78ff9c8a78ff9d8c78ff9b8875ff998775ff988674ff958472ff9c8a78ff9c8979ff978674ff998977ff9c8a79ff9f8e7dff9e8d79ff9f8d7aff958372ff988470ff97836fff97846fff978572ff968572ff948572ff91806dff988675ff998775ff948271ff978674ff998774ff917f6fff978473ff9c8977ff978674ff928270ff938472ff938371ff928170ff928271ff8d7d6cff8c7c6bff8f7e6dff8e7e6dff8a7b6aff877868ff8a796aff8b7c6cff867667ff8b7c6cff8e7e6eff918171ff8f7f6dff8f7d6cff8c7c6cff8b7c6bff8d7c6bff887969ff8a786aff8b796aff907e6dff897867ff8b7a69ff8a7a6aff8c7d6cff8c7b6aff857767ff89786aff867667ff8a7a68ff89796aff908070ff8c7d6cff877867ff867766ff7e6f60ff857465ff877666ff8c7c6cff89786aff837363ff857463ff7f6e5eff806f60ff7e6f60ff7f7163ff7f7263ff7c6f60ff776b5cff796d5fff786b5dff76695cff796b5eff77695dff756a5bff7b6e60ff786b5cff685b4eff746657ff706052ff806f5fff625649ff665a4cff64574aff5d5043ff635748ff64594cff63574aff605445ff564b3fff6c5f50ff61564aff5e544aff5d5347ff63594bff6b5f52ff726658ff6b5f52ff60564bff5f5549ff5f5448ff62574aff5d5045ff594e43ff5e5347ff65594cff5d5246ff52483dff4a4137ff544a40ff5a4f43ff51493eff564f42ff5b5045ff62584cff5e5347ff594e40ff594e42ff594f43ff54493eff50463aff50473cff40362dff463a30ff473c31ff493d33ff473b31ff443a30ff4e4037ff43382fff3c332bff4c4036ff483c34ff493c34ff493c33ff4c3f35ff493d34ff473c32ff4b3e35ff42372eff3e332aff4d3f35ff504238ff4e3f36ff4f4237ff4f4137ff4d4036ff504137ff54453cff5c4b3fff59493dff55453bff57473cff53443bff57483dff5d4c41ff5f4e42ff59493eff5c4c40ff5b493fff5e4f43ff5f4d43ff604d43ff635044ff665246ff675347ff6c584cff6a594cff5e4f42ff7a6b5bff776959ff7c6d5dff766758ff716353ff796b5aff7a6b5aff857562ff837260ff807160ff867665ff847464ff8b7968ff8e7c6bff8c796bff958372ff8d7c6dff938171ff938171ff968574ff988876ff9c8b7aff948373ff948272ff958473ff978674ff978573ff9f8c7bff9c8979ff9c8a78ff9a8876ff978474ff9d8b78ff938371ff998775ff9b8978ff9e8b79ffa18d7affa28f7affa08e7bffa3917cffa18d7affa08d79ffa08d79ff9e8a76ffa28d79ffa28f7affa4917bff9d8a77ff9d8976ff988672ff998776ff978675ff978575ffa08d7bff9b8a77ffa18f7bffa08d79ffa08c78ffa7927effa6927fffa4907dffa6907dffa5917dff9f8d7affa4927effa08c79ffa28f7bff9c8a77ff9e8d79ff9e8c79ffa18f7bff9e8c79ffa08d7affa08c7affa28f7dff9a8977ff9a8977ff9d8b79ff988675ff978473ff9d8c7bff9a8977ff9f8d7aff9e8c7aff978473ff998774ff9b8974ff9b8773ffa28e79ff9d8a77ff9c8a78ff988675ff958373ff9a8976ff998775ff978473ff998674ff917f6fff998775ff948170ff998976ff988876ff938473ff8f7f6fff8e7e6dff918271ff8c7c6bff90816fff90806fff90806fff8a7c6aff8d7d6cff887869ff8a7b6aff847666ff8d7e6eff8a7b6bff8f7e6dff8d7d6aff907f6dff8c7d6cff8b7b6bff917f6eff8b7b6aff8a7969ff8e7c6cff8d7b6aff8d7c6bff907f6dff877667ff8a7a69ff897968ff867667ff847465ff807062ff8a7a6aff897969ff877867ff887866ff897968ff867666ff8a7a6aff847564ff867666ff837363ff847566ff837363ff7e6e5eff7f705fff847565ff7e7061ff837667ff7f7264ff7e7162ff807365ff837567ff7d6f62ff796c5eff7a6e60ff796b5eff736659ff716356ff6a5e52ff78695bff736454ffa4907dff6f6055ff675a50ff594d41ff6b5c50ff706155ff6c5d52ff6d5e53ff67584eff685a4fff605248ff6b5b50ff68594fff5b4e45ff63564cff67584eff62554aff5e5247ff5b5046ff5d5146ff5a4e44ff584c43ff4d423aff594b42ff584c42ff554940ff5c5044ff594e43ff54493eff574c42ff53483dff4d4239ff4d4239ff4f453cff4d433aff4c4239ff483f36ff4b4239ff4a4038ff453d35ff473e36ff51473eff4a4139ff40352cff453a30ff443930ff493e34ff473c32ff473c32ff483c33ff463b32ff3c342cff493e34ff4d4037ff4e4137ff4a3d34ff483d34ff504238ff453930ff514238ff443830ff3e342bff514338ff4e4137ff52433aff504237ff534539ff4f4137ff55463bff4e4137ff59493fff59493eff54453cff58483eff5a4a3fff59493fff5b4b40ff5f4e43ff5b493fff604f43ff5a493eff5e4d41ff604f43ff665245ff614e43ff655145ff645147ff655247ff675349ff69584bff746758ff6d6152ff786a5aff756658ff796a5aff766958ff7a6c5cff7a6b5bff847664ff7f715fff817363ff817263ff8a7b69ff8b7a6aff8d7a6cff8c7a6bff948373ff958373ff8d7c6cff928172ff918071ff918071ff928072ff917f71ff968675ff958574ff998876ff988776ffa08e7cff9f8e7bff998776ff9f8b7cff9e8b77ff948472ffa28d7affa08e7cffa5907dffa8947fffa6927dff9f8c7affa08e7aff9e8c7aff9f8e7affa2917cffa28f7cffa48f7bff9c8a76ffa6937dff9a8975ff998672ff978570ff9a8877ff978674ff9d8a77ffa38f7cffa4927dff9f8d7aff9a8673ffaa9580ffa18d7affa3907cff9b8a76ff9f8c79ffa18c7cff9e8c7affa18e7bff9e8976ffa79581ffa08e7aff9a8976ffa08f7bff9c8a77ff9e8c79ffa18d7bffa4907fff9f8d7cff9d8a79ff9f8e7cff9b8a79ff958373ff9a8877ff968574ff948571ff998875ff9f8d7aff9d8978ff988673ff948370ff998674ff9b8876ffa2907dff998875ff9e8c7aff948372ff9a8876ff958371ff978372ff978373ff9e8b79ff978473ff91806fff938272ff8e7e6eff918070ff907f70ff8e7f6eff8c7d6dff8b7c6cff8b7c6bff8e7e6dff938372ff8d7f6dff8a7a6aff948173ff8f7f6cff877867ff938271ff907f6fff948170ff91806eff8f7f6dff8d7e6dff8f7e6cff8c7c6cff8f816fff938373ff8e7c6cff917f6eff958271ff8e7e6cff827363ff837362ff837462ff827364ff887868ff867566ff8d7c6bff8b7b69ff837564ff877765ff897867ff877768ff847565ff7d7060ff867667ff857467ff827364ff847464ff7e6e5eff847666ff837464ff847567ff867869ff7f7263ff7e7062ff807264ff807264ff807467ff7d7062ff7d7062ff74685bff736659ff695d51ff736557ff675a4bffa18e7aff6a5a4fff6d5d52ff65564dff594e44ff67584eff6f5f54ff6f6055ff6b5c50ff62554bff66574dff64554aff68584eff5a4c43ff625349ff695b50ff5e5148ff5c4f46ff554a41ff594d44ff5e5148ff554a40ff52463dff53483fff584b42ff594d43ff584d43ff564b41ff554a41ff5b4e43ff54483dff594d41ff4f453bff4e4239ff4c433aff4f453dff50463cff483f37ff50463cff423932ff453d35ff453c34ff493f37ff483f37ff644d13ff675116ff675116ff685318ff675217ff685216ff6d571aff685219ff5b4916ff6b571aff6d5619ff6d5719ff6a5417ff6c571aff725b1eff664f14ff705a1cff70581cff6d5618ff715a1cff725b1dff715a1bff725b1dff725c1cff755c1eff765e1eff776020ff796121ff765f1fff776020ff776020ff796020ff7b6223ff7c6321ff7c6321ff7f6624ff7f6522ff7f6522ff826824ff836925ff866b26ff866c26ff876b26ff876a26ff896d29ff6a564cff68564bff6a5a4dff6e6051ff766859ff786a5bff7d6e5eff7a6a5aff786a5aff7d6e5eff847564ff837563ff847563ff837261ff877667ff8e7e6dff8d7c6cff8a7969ff8a786aff8a7a6aff8e7d6eff907e6fff907f6fff907f6fff938272ff938272ff948473ff988876ffa1907dff9b8978ff9a8874ff978674ff9f8b7bff9d8978ffa08b7cff9d8a79ff968373ffa2907cffa4927dffab9781ffa99680ffaa9782ffa5937fffab9885ffa4927fffa5927fffa18d79ffa18e7bff9f8c78ffa08c77ff998773ff938271ff978572ff9b8977ffa28f7bffac9885ffa48f7bff9d8a79ffa3907eff9e8d7affa4917effa28e7affa18e79ffa5917cffa08c78ffa79480ff9e8a7aff9d8a79ff9e8c7affa08d7bffa08e7cff9e8b77ffa28f7bffa18f7affa5907cffa4907cffa08c79ffa08c7aff9c8975ff9e8b79ff998876ff9f8c7aff9a8674ff948371ffa18f7cff9d8a78ff998776ffa79381ff9e8c79ff988673ff978573ff9c8a77ffa08f7bff9c8b78ff988672ff95826fff9c8878ff9f8d79ff998775ff988574ff938070ff938170ff948371ff90806fff8f7e6fff907f6fff90806fff8f7f6eff938372ff918270ff968674ff928270ff8d7d6aff8c7d6bff908070ff907e6eff928072ff8e7e6eff8a796bff948472ff968572ff978573ff968673ff948471ff948371ff958574ff908070ff918070ff8d7b6cff8c7c6dff8c7c6bff887767ff817162ff807162ff817262ff8d7c6bff928170ff948371ff887866ff8d7e6fff887a6aff8b7d6dff887969ff8e7d6dff867666ff857665ff8b7b6aff867767ff847466ff807163ff847465ff8a7a6aff7e7162ff817363ff857666ff877767ff877766ff807161ff837465ff7d6f60ff7f7061ff796c5eff796d5eff736556ff716454ff68594bff9d8977ff3c3530ff68574dff756350ff91792dff8f762bff92792fff8e792fff8c7428ff8f782bff887025ff8a7124ff897023ff897225ff866d20ff866e21ff897226ff816b24ff867126ff846d23ff816920ff826c23ff806a21ff806b22ff7c6620ff806b23ff7f6a20ff7f681eff7c661cff7b631aff7a6319ff7b6217ff7c641aff785f17ff7b6018ff776017ff755e16ff755e18ff745d17ff725c16ff6b5412ff6b5615ff695312ff6f5a16ff6b5613ff664f14ff665015ff675116ff665015ff695519ff685418ff695318ff6f581dff594715ff6e5a1eff6e5a1dff6f5a1eff715a1bff715c1fff735d1fff6e581aff70591bff695217ff725a1bff735c1eff745d1fff745c1eff735c1eff755e1fff755c1dff796120ff786120ff796121ff786121ff7a6221ff786020ff796121ff7a6222ff7c6422ff7d6522ff7e6523ff806723ff806724ff816822ff826824ff866d27ff896e28ff886d27ff886d27ff896d28ff876d31ff645248ff645046ff655649ff6c5e50ff786a5aff756758ff756858ff746857ff7e705fff847462ff867866ff887866ff887767ff938271ff8e7e6eff917f6eff8c7b6bff8e7d6bff8c7b6bff91806dff8d7c6cff907f70ff918070ff988676ff918271ff958472ff968573ff9b8b78ff9d8d7bff9c8b79ff9b8978ff9f8e7bff9c8876ff978774ff978574ff9a8877ffa2917dffa7937effab9985ffa89780ff9f8f7affa28f7bffa89683ffa79482ffa18f7bffa3917cff9a8c79ff9c8977ffa6937effa89581ffa49380ff998877ff9e8d79ffa6927dffa48f7bffa6927effa3917fffa4917fffa08e7cff9d8c7affa18e7bffa4917dffa3917dffa79481ffad9986ffa6927fffa3917eff998674ff988675ff998776ff9f8977ff9f8a77ffa4917dffa5927fffa18f7aff9c8b77ff9b8975ffa6927cffa6927dffa4917effa08d79ff9d8a76ff968573ff9d8a76ffa1907fff9c8c7aff9b8a78ff9f8d7bff978774ff998a76ffa08f7bffa18f7affa2917dff9e8b77ff9d8b77ffa5917eff9d8b78ff9d8978ff9e8b76ff978572ff958572ff968671ff928170ff958473ff928171ff948372ff8e7e6cff92816fff8f7f6dff968673ff948472ff928270ff8f806fff918271ff8f7e6dff897c6aff8a7b6bff908171ff948472ff9e8c79ff9a8977ff948471ff918270ff907f6dff958374ff8e7e6eff8b7b6aff8a7b6cff86796aff8f7f6fff938272ff908070ff887a6bff867667ff8f7e6cff917f6cff958371ff8b7b6aff8e7f70ff88796aff877969ff8b7c6cff887867ff887968ff877869ff8b7c6cff867868ff867767ff847666ff7a6c5eff7a6d60ff7e7163ff827363ff827263ff857665ff847566ff817362ff7b6d5dff7f6f5fff817161ff7e6f5fff7c6e5fff80705eff6b5d4dffa18d7aff6b5b51ff3e3731ff71604cff977d2fff967f32ff957f38ff90792eff917a32ff8e752aff8e7529ff907629ff8a7124ff8c7326ff8a7326ff897124ff8c7325ff856e22ff8a7329ff856f24ff856e22ff846d23ff846f26ff826b24ff85712aff826d24ff836d26ff7d681dff7d671dff7f681fff7c641aff7b6319ff7a6218ff765d16ff7a6219ff7b631aff755c16ff755e16ff735c15ff7a651eff755e17ff6e5713ff655214ff6d5917ff735e1bff6f5814ff4a3e34ff483d34ff443831ff483d35ff463b32ff4f4238ff4d4137ff4b3f36ff3d342cff4e4238ff52443aff4f4238ff504339ff514439ff55473dff4b3f35ff514339ff4d4137ff54453bff55463dff53453dff594941ff57473fff57483fff54463dff5b4c42ff56473eff57483eff5a4b41ff54453bff5a4a41ff56463dff55463dff5b4b3fff655346ff604f43ff5c4d41ff5d4e42ff604f44ff5f4f43ff655347ff685448ff675547ff82682dff896e27ff8c722eff856a2bff635044ff4d4137ff736254ff6e5f51ff796a5aff766757ff796a5aff80715fff847463ff887868ff8b7b68ff8a7a67ff8c7b6aff918070ff94826fff8b7b6aff90806eff8f7e6cff95826eff907f6eff958471ff9b8a78ff90806fff958572ff948272ff968674ff978875ff988a78ff998876ff978572ff9e8d7bff978673ffa18d7bff988675ff9f8c7bff9c8c78ffa2917affa18f7dffa3917dffa0907bffa4927fffa4927effa69381ffa18f7dffa2917eff9d8c79ff9e8c79ffa4917effa59380ffa89683ffa28f7dffae9c8affa99683ffaa9784ffa28f7effaa9685ffa5917eff9e8d78ff998876ff9f8d7bffa08f7dffa2907effa5917dffa5907cffa6917cff9f8d78ffa08d79ff9e8b77ffa5917cffa18d78ff9e8a76ff9a8876ffa79580ffa89682ffa3917dffa3917cffa3917bffa89581ffa69481ffa39180ff998675ff9f8c7bff988574ffa2907dff9e8b79ff9b8977ffa3907dffa08e7cff988975ffa2907bffa2907cffa79481ffa5927bff9d8b76ffa18e79ffa28f7bffa18e79ff978673ff958672ff9a8a76ff9b8873ff978673ff978774ff998876ff958472ff928270ff92806fff90806fff938370ff938472ff928170ff90816fff928372ff8b7d6bff948472ff8c7d6dff8d7f6dff928370ff988976ff968674ff928271ff918170ff928271ff968474ff928071ff8f7f6fff928171ff847565ff8c7c6cff8f7e6eff918170ff918170ff8d7d6dff988777ff938372ff928272ff918171ff958575ff847665ff847564ff847565ff897a6bff877769ff8a7b6aff897969ff827364ff867666ff7e7061ff827464ff847666ff807362ff817362ff7e7160ff827464ff847666ff877869ff857666ff837463ff807160ff7e7060ff897a6aff6e6050ff9b8875ff62544aff736157ff38312cff907527ff9a7f2eff987f30ff6e5e54ff6d5e55ff695a50ff726258ff67584dff6e5d52ff66554aff6e5c50ff67594cff67584bff68594dff635549ff65574cff67594fff5f5349ff61564bff4e453cff574b42ff5f5248ff584d44ff63564cff5e5248ff5a5046ff584d42ff584d42ff564b40ff584d43ff574c42ff53473dff55493eff4f443bff50473eff50463dff50463dff50463dff494038ff3f3730ff544941ff534940ff544834ff473c33ff473c32ff4c3f36ff493d34ff4a3f35ff4c4137ff52453aff514439ff3b332bff493d34ff4f4238ff4e4137ff4e4238ff4c4036ff53463bff4f4339ff52453bff4e4137ff53453bff52443bff54473eff55473eff54453cff5c4c42ff5c4b42ff5a4a41ff594940ff5c4b41ff56473dff55463dff57493fff55453cff5c4b41ff5b4b40ff5c4c41ff604f43ff605044ff5f4f43ff665549ff625146ff655447ff6a5649ff665347ff6a5749ff856d2cff8b6f29ff8e732dff8d722aff41372fff5b4a40ff6d5d4eff786857ff7d6d5cff766655ff857562ff80705dff897966ff857463ff8b7a67ff8b7a68ff8e7d6aff8d7c6bff8e7d6cff8e7d6bff90806dff9a8873ff988571ff9a8774ff968673ff948370ff998975ff958471ff968472ff978774ff9e8e7dffa29180ff9b8977ffa0907eff9a8977ff9e8b79ff9e8a77ff998674ff9b8a76ffa79580ffa89582ffa69380ffa6947fffa28f7cffa2907cffa89482ffa2907effa2917dffa1917effa08e7cffa3927fffa4927fffa3917effa69380ffa3917dffa89682ffa79582ffa5937fffab9885ffa99682ffa4927dffa28f7bffa49380ffa89784ffa59380ffa79480ffa6927dffa6937dffa3917bff9c8975ffa4907affa7937dffa28e79ff9d8c78ff9f8d78ffa5937effa0907bffa5927eff9e8c77ffa08e78ffa18f7affa2917effa4927fffa18f7bffa38f7dffa38f7cffa18e7cff9e8c7affa5927fffa18f7bffa2907cffa4917fffa3917cff9f8d78ffa08e7affa28f7affa08d78ffa28e79ffa18d78ff9e8b78ff9a8975ff968571ff9d8c79ff9e8c77ffa08d78ff9a8976ff948471ff968572ff988874ff93826fff988673ff958571ff9a8a79ff988878ff928271ff968978ff8e806fff938270ff938271ff8a7b6aff958572ff9a8977ff978675ff938371ff978775ff918170ff958574ff928071ff8c7c6dff928271ff8a7b6bff8f7f6eff8f7f6eff8f7f6eff8e7e6dff998875ff968674ff8f7f6fff938373ff938372ff948373ff928272ff8b7b69ff8b7a69ff8e7e6eff8c7d6cff8c7c6bff8a7969ff8b7a6aff877968ff837665ff837767ff877968ff857766ff7f7262ff7f7363ff827463ff867665ff7c6f5fff827263ff7e7060ff7d6e5dff90806eff776959ffa59280ff68574dff705f54ff766453ff584512ff937729ff987d2bff736157ff77685cff6c5d53ff716157ff6a5b50ff6a5a4fff615248ff6c5b4fff625348ff68594eff695b4eff67584dff68594dff695a4eff615448ff63554aff65584cff5d5046ff54493fff605349ff5d5248ff5f5249ff63574cff5a4e43ff5a4e44ff5b5145ff5d5247ff51463dff564a40ff50453bff554a40ff4c4239ff53473fff50463dff534940ff574c42ff4e453cff4c433aff4a4038ff50463dff50463dff493d34ff4a3e35ff4b3f35ff493e34ff4c4037ff4b4036ff52453aff4c4036ff3f352cff4d4137ff4d4138ff4c3f36ff4d4137ff4e4238ff52453bff4c4139ff53453cff463b32ff55473dff57493fff5a4a40ff57493fff57493fff57473dff5b4a40ff5a4a40ff5c4c42ff59493fff5b4b41ff58483eff58483eff58483eff59493fff604f44ff5f4f43ff635145ff5f4f44ff665549ff635347ff625247ff5e4e44ff69564aff695649ff655247ff69564aff7f6730ff8f732dff8b702cff5e4a1bff604f44ff58483eff695a4cff706150ff806f5cff7d6d5bff877662ff897965ff8a7966ff8a7967ff867565ff877766ff8e7d6dff92816fff948271ff93816fff93806eff907f6aff92806cff94836fff9a8772ff9c8a77ff9c8974ff998672ff948371ff9d8d79ff9b8b78ff9e8d7bffa59584ff9a8a77ff968370ff998774ffa18d78ffa6937dffa3917effa3907dffa6927effab9581ffa99682ffa3927effa08f7cffa08e7bffa08e7cffa39481ffa69683ffa69582ffa99884ffaa9885ffa3917effae9b87ffaa9884ffa79681ffa4917cffab9883ffab9984ffaa9983ffa89680ffa5927fffa59480ffa2907dffa18f7affa08f7affa18f7cffa5937dff9c8974ffa28e7affa7957fffa2917cff9d8c79ffa0907bffa28f7bff9f8f7affa08d78ffa3917dff9e8e79ffa3927dffa69480ffa08e7aff9d8977ff9c8a77ffa18d7bffa69380ff9f8d7bffa18f7cffa18f7bffa08d7affa5927fffa7947fffa3917cffa6937effa3917cff9d8b77ff9a8674ff9a8874ffa08e7bff9d8b77ffa08e7aff9c8a77ff998773ff96846fff988672ff978571ffa18d79ff998775ff9d8a75ff998773ff8e7e6cff948472ff968675ff998979ff9b8b7bff8d7d6dff8f7e6cff907f6dff938270ff998774ff978775ff958473ff968673ff948371ff928271ff918372ff918171ff90806fff918070ff928473ff948473ff948472ff948472ff938372ff988775ff938472ff938373ff938373ff8e7d6cff978674ff968776ff8e7e6cff8d7d6bff8c7b6cff8d7d6cff897967ff897968ff897968ff867868ff857766ff7e7261ff847665ff867867ff847867ff807362ff837564ff867664ff7f705fff827261ff837464ff8e7e6cff796959ffab9784ff6f5e53ff65554cff77644fff967b29ff5d4916ff95772cff6e5d54ff6a5a53ff726156ff6a5c51ff6d5e54ff6a5b51ff6e5e53ff6d5c50ff6b5a4eff6a5a4eff65584dff65574bff65574bff65564aff64564aff635649ff635549ff63564bff63564bff5d5146ff60544aff594e44ff5e5248ff60544aff574d43ff5b5045ff61564aff584e43ff53483eff51473dff544a40ff51473eff54493fff4f443cff4e433aff564c42ff544a40ff4f453cff574d43ff4e443cff4c413aff4d4339ff483d33ff4b3f35ff4c4037ff4f433aff4f4339ff52453bff52443aff4d4037ff443931ff4f4339ff52463cff4c4037ff4b3f35ff4e4138ff574a3fff51443aff50433aff483c33ff53453bff57483fff55473eff55473dff57483eff59493eff594a3eff5b4b40ff5d4d42ff5d4d42ff5d4c41ff5a4a3fff5d4c42ff5c4c41ff5d4c42ff605044ff615145ff615146ff625247ff635348ff655449ff625246ff655448ff665447ff665246ff695649ff665348ff69564aff8b7037ff8e732dff644e17ff7f642cff5f4e43ff52443bff776657ff7c6d5bff82715fff827260ff867664ff8c7c6aff8f7e6cff91816fff8c7c6aff8f7e6dff91806fff92816eff917f70ff938272ff92826fff968572ff968571ff9c8a74ff9f8d78ff978571ff988671ff968673ff998873ff9d8d7aff9b8c79ff9d8c7aff9b8a76ffa49381ffa08e7bff9d8c78ffa59280ffa49281ffa5937effa6937fffa6937effa69380ffa79482ffa59381ffa69380ff9d8c79ffa08f7cff9f8f7cffa39380ff988875ffa0917dffa3917fffa4907bffa5917dffa28e7bffaa9784ffa6927effa4917cffa79481ffa99783ffad9c87ffab9985ffaa9785ffa49281ffa18e7bffa7937cffa5947effa4927dff9d8a77ffa6937effa1907cffa69580ff9f8e7cff9d8d79ffa4927dffa18e79ffa2907bff9f8f7bffa5927dffa69581ff9d8c79ff9d8b78ff9d8c7affa3907effa2907dff998775ffa2907bff9d8c7affa3917effa59380ffa08e7bffa08e7bffa08e7cffa89682ffaa9784ffa3917effa2917dffa2907dff998875ffa18f7bff978674ff9a8877ff968573ff9e8f79ff9c8b77ff9d8b77ff998775ff998672ff9a8a76ff958674ff938371ff988878ff968675ff958472ff998774ff958372ff91816fff978674ff9c8a7aff948475ff998976ff968573ff918271ff958675ff948576ff948576ff978876ff8b7c6bff948372ff90806fff907f6eff8b7b6aff8d7f6cff938271ff92826fff918070ff8f7f6fff938473ff8f806eff8d7d6bff8f7f6eff91816fff918270ff918170ff8e7d6eff8b7b6bff887666ff8d7c67ff897c69ff887b69ff817362ff8b7c69ff877967ff877967ff847564ff867765ff887865ff857562ff8e7f6dff695a4cffa5927eff67574cff69594eff69584cff937727ff9a7f2cff675118ff6a5950ff726056ff706157ff6f6055ff68594eff6e5f54ff67594fff68594fff6c5c50ff6b5b4fff6a5b4fff6e5f53ff68594dff6a5a4eff66574cff61554aff64564bff63564cff5e5146ff574b41ff5a4e43ff5f5148ff5e5348ff61554aff5b5045ff5b4f45ff60554aff5a5045ff564c42ff50473eff554c42ff584e44ff534a40ff564a40ff53493fff554a42ff564c43ff544940ff494037ff51463dff493f37ff4b4139ff4a4138ff4e4238ff4c4036ff4c3f37ff5a4c41ff54473dff50443aff56493fff4e4239ff443932ff4d4138ff50433aff504339ff4b3e35ff4e4238ff56493eff52453bff53443bff4f4339ff54453bff55463dff58493fff55463dff594b40ff5a4b40ff57473dff594a3fff605044ff635246ff5e4e42ff57493eff615044ff5d4d42ff605044ff5d4e43ff615146ff604f44ff635347ff615145ff655449ff5f5045ff615045ff6a574aff6c574cff665349ff6c574cff6b584cff6a574bff8d702dff675017ff876b2aff836527ff56473eff7b6659ff7b695aff877765ff887966ff817261ff897867ff847463ff8d7c6aff8e7c69ff897968ff897967ff93816eff948371ff948170ff988674ff9b8a76ff978673ff978774ff8f7e6cff968570ffa08e79ff9f8d7aff9a8a76ffa08f7cff9f8e7bff9c8b78ff9f8d78ffa08e7bff9e8d7affa2907dffa8937fff9f8d7bffa28f79ffa6937effa5927dffa79380ffa1907fff988877ff9b8a7aff9c8978ffa1907dff9f8f7dff9f907eff9a8b79ff9d8e7cffa5937fffa99580ffa89582ffaa9784ffaa9783ffac9983ffa99783ffa69480ffa79583ffa99884ffa69582ffac9b87ffb29f8cffa59481ffa5937effa79480ffa3907dffa7937effa89581ffa79581ffa89682ffaa9884ffa59280ffa59580ffa28f7bffa08e7affa18f7cffa28e79ffa2907dffa28f7cff9c8a76ff9c8a77ffa2907fffa4907fff998776ff9b8978ffa4917dffa4907bff998774ffa08e7bff9e8d7aff9c8b79ffa08e7cffa08d7bffa28f7dff9f8d79ff9a8977ff998673ffa28f7aff9c8b77ff9d8a77ff9f8d7aff9d8b79ff9c8a78ff9d8d7bff8f7e6dff9c8a76ffa08f7eff968675ff998b79ff9b8b7bff938373ff958573ff988672ff917e6eff978473ff968372ff9d8977ff958373ff94826fff948371ff948373ff948475ff8e8072ff897c6fff8b7b6bff918170ff938371ff918170ff918172ff897a6aff8d7e6eff968672ff968673ff948674ff968775ff928370ff998a76ff8e7f6dff8b7b6bff8d7e6dff8c7d6cff928371ff978673ff91816fff8d7e6cff8b7b66ff8b7b69ff827363ff8a7b68ff897b69ff8c7d6cff8f7f6dff8b7b6aff8a7a6aff887a68ff92806fff6d5f50ff968573ff6b5a4eff69594dff6b5a4eff9b7d2bff9f832fff9b802cff3d3630ff766459ff79685dff736358ff716054ff6e5f54ff726256ff6f6054ff6e5e53ff6d5d52ff705f54ff6e5e52ff695c51ff695c50ff67594dff67594eff62564aff6c5e52ff685a4fff5f5248ff65574bff5c5046ff65584cff60554aff5f5348ff60544aff5f5349ff61554bff5b5045ff564b42ff64574cff584e44ff534a40ff4f463dff53493fff5c5046ff5d5248ff5a4f44ff544940ff4e453cff4f453dff4a4037ff534941ff494038ff4d4238ff504339ff4d4138ff4f423aff52463cff4c4137ff53473cff574a40ff453a32ff473c33ff4e4239ff51443aff51443aff54463cff504338ff504439ff53453bff4c4036ff594a3eff56473cff57473dff57483eff57493eff5a4b40ff56463cff59493fff5e4d42ff615044ff5c4c41ff5c4d41ff615044ff5d4d42ff5e4e43ff625145ff665448ff604f43ff625145ff615045ff635246ff645346ff675448ff675449ff6b584cff685549ff6b574bff675347ff685549ff655449ff5d4a1fff896c2bff846829ff84692bff7c675aff7d675bff786657ff7f6e5eff817160ff837362ff877866ff897865ff887663ff877866ff897a67ff8e7e6aff8a7b69ff907f6dff948371ff978673ff978573ff958471ff8d7d6bff8f7e6cff968471ff91816eff948370ff918271ff9d8d7aff988875ff998873ff9d8d7affa69380ff9f8d7affa4937fffa2907dffa3917dffa3927dffa99681ffa89581ffa3917fffa08e7cff9d8c7aff9c8b7aff9e8e7cff998977ff998a77ff9c8c7bff9f8f7dffa5937fffa5937fffa5937effa4917cffab9683ffa89481ffa99683ffa39180ffa99784ffa79583ffa59382ffac9989ffa99786ffa5927fff9e8c78ffaa9784ffa69480ffa18e7dffa59380ffa69480ffa69583ffa99783ffa99882ffa3917cffa4937dffab9781ffa1907bffa6947fffa3927effa08f7bff9c8b78ffa4927fffa2927fff9f8c7bffa3907eff9d8b78ffa2907affa08d79ffa3917cffa3917cffa18d7affa08d7cff9b8978ff9f8c79ff9c8a76ff998773ff9c8c79ff9a8875ff998875ff958472ff9b8a77ff9c8a79ff9c8978ff9a8877ff9b8978ff8f7e6dff958473ff958676ff8e7f6fff938473ff968878ff948675ff918171ff92826fff9b8a77ff9b8775ff998674ff998674ff988676ff988675ff938373ff978675ff998878ff968577ff8d7e6eff8f806fff8f7f6fff8a7a6aff8b7c6bff8f7f70ff8d7d6dff928271ff948472ff918270ff90816fff91816eff968674ff958573ff8c7d6cff8a7a69ff8e7f6dff8e7e6eff8e7e6fff928171ff8f7f6eff847462ff897965ff857666ff857866ff867767ff887b69ff877968ff867869ff8e7f6fff8d7f6eff948471ff716353ffa4917eff68564cff67564aff725e49ff9e822eff9a7f2cffa08530ff716156ff3f3731ff706155ff706157ff746459ff716156ff6d5e53ff6d5c51ff6d5d52ff726156ff6c5b50ff6d5e52ff6b5c51ff6a5c50ff6b5d51ff6b5c50ff67594eff6b5d51ff64574cff66594eff685b4fff64574dff62554aff67594eff64584dff64584dff5e5348ff65584dff60534aff5a4f45ff5a4e45ff584d43ff63574bff574c43ff554a41ff53483fff584c43ff5a4f46ff544a42ff574b43ff554a42ff4f453dff403730ff4c423aff50463eff4e433aff55493eff564a40ff4f4339ff4c4137ff53473dff594c41ff50433aff443a31ff4d4138ff4e4139ff493d34ff4f4339ff54463cff524439ff4e4138ff52443aff50433aff54453bff54463bff524439ff57483dff5c4c41ff56473dff5c4c41ff5e4e43ff5c4d42ff58493fff594a3eff594a3fff5c4c41ff58483dff604f43ff604f43ff615044ff614f44ff604f43ff5e4e43ff604f43ff605044ff695649ff645246ff685448ff665347ff685549ff615145ff5f4f44ff705b4fff40372fff866b38ff866a2aff846724ff8e7434ff766356ff766256ff776456ff766757ff7d6d5cff807060ff867664ff897865ff887766ff897966ff897865ff8e7d6bff8f7f6cff968673ff988875ff968672ff948371ff948370ff978572ff92816fff968674ff978673ff9a8875ff998976ff9b8a78ff9b8b7aff9b8c7aff9a8976ffa18f7cffa69581ffa79481ffa49380ffa3917effa1907bffa6927dffa08f7bff9c8b78ff9b8b78ff9f8e7dffa0907eff9c8c7aff9e8e7dff9e8e7cffa08f7cffa3917dffa69681ffa5937fffa1907affa38f7bffa89582ffab9886ffa3917fffaa9884ffac9a87ffa39180ffaa9785ffa79482ffa3907dff9f8c78ffad9a86ffa18f7effa39280ffa89683ffa59581ffa69582ffa89682ffa89681ffaa9680ffa99781ffa18f7affa6947fffaa9883ffa2907cff9f8e7aff9a8b78ff9f8f7dff9f8e7cff9a8878ff9d8c79ff9b8a76ffa08d78ff9c8a77ff9d8b76ffa08e78ffa28f7bff9f8c7bff9b8978ff9d8b79ffa2927eff9e8b77ff9f8e7bff9c8c78ff998874ff9c8a78ff9b8a77ffa08e7bffa08f7aff9b8977ff998676ff978675ff978776ff948575ff968777ff978776ff958576ff978977ff928473ff958575ff948473ff92816eff9c8976ff9e8c7aff9e8b79ff968676ff958574ff968473ff968574ff908171ff8d7d6dff8d7f6dff918170ff8e7f6eff908170ff8e7f6fff8f7f6fff8c7d6dff958473ff958573ff928370ff8d7d6aff907f6dff938272ff948473ff8b7a69ff938371ff8e7e6dff897a6bff928271ff907f6fff857463ff897967ff857868ff897a6bff887b6bff887b6cff7e7162ff7c6f60ff7b6e5fff9c8b7aff766758ffa99680ff6f5c50ff6c5b4fff776351ff9b7c2bff987b29ffa0842fff6e5e53ff716156ff3b332dff77665bff736458ff78675bff726156ff715f55ff736157ff6c5e52ff705f54ff716055ff695a4fff67584eff6d5d51ff6b5d51ff67584fff675a4fff65564cff685a4fff64574dff6c5e52ff64574cff60544aff6a5d52ff63564cff665950ff5f564bff574b42ff5c5147ff584e43ff5c5147ff5e5348ff5b5046ff5b4f46ff544940ff584e45ff524740ff534941ff584c44ff554a42ff554a41ff544a42ff493f37ff53483eff4c433bff4b4037ff4f453bff4d433aff4d4339ff4d4239ff50453bff55493fff55483fff423930ff483e35ff50453bff4a3e36ff433931ff473c34ff514439ff504339ff54453bff483d34ff4f4238ff504237ff54463bff514338ff54463bff5c4c41ff5a4b40ff584a3fff58493eff493d34ff504339ff55463cff5d4c41ff55463bff56473dff5f4e43ff614f44ff625146ff675448ff615042ff5a4b3fff635145ff645246ff69564aff685549ff645245ff635145ff5b4c41ff5d4d43ff766254ff3d342cff68564bff8f7432ff8e712bff91732bff927532ff715e52ff7b6558ff796758ff7a6b5cff837565ff857464ff887865ff8b7966ff8f7d69ff8e7e69ff8b7966ff8f7d69ff988674ff988774ff928270ff968472ff958472ff998774ff978673ff958572ff988774ff988572ffa1907bff9f8e7bff978877ff9c8b7cff9a8a79ffa39281ffa49380ffa69482ffac9987ffae9b88ffab9784ffa99782ffa0907dff9c8b78ff9a8a77ff9a8a77ff9e8e7bffa08f7cffa1907dffa2917effa3927fff9f8f7cffa99781ffa2927dffa5937effa59480ffaa9785ffac9a87ffac9986ffa89582ffa89582ffa79582ffab9a86ffa89581ffa3907cffa6927dffa69581ffa49481ffa59483ffa79786ffa79584ffac9987ffa4927effa99682ffa99782ffa79680ffa4937effa08e7bffa28e7cffa18f7cffa3917effa08f7effa2927effa1927effa08f7dffa59480ff9c8c7aff9b8a76ff938473ff9d8c79ffa08f7bffa18f7cff9c8c7affa19180ffa49482ff9f8f7dff9b8a76ffa08e7affa6957fff9f8e78ff978571ff9e8b78ffa08d7bff9f8d79ff9a8976ff9d8b79ff998777ff9d8c7bff968675ff9a8a79ff998877ff988675ff978876ff948574ff968879ff958575ff978675ff9c8a79ff9d8c7aff9b8a79ffa29080ff9d8c7bff968675ff968675ff8d7e6eff8d7e6eff8f806eff8f806fff8f806fff8e7f6eff928373ff918271ff8f7f6fff918270ff988775ff928270ff91816fff938371ff998977ff948372ff938270ff8f7e6eff8e7e6dff8f7f6fff918170ff8d7b6bff897868ff8d7d6bff887c6cff857868ff897b6cff827567ff6b5f51ff605547ff7c6e5eff796a59ffaf9c87ff725f53ff725f53ff7a6559ff9d802cff9a7c2aff9a7b29ff7a685bff715f55ff6d5c52ff37302bff6e5e52ff6c5c51ff716156ff77655aff716156ff705f54ff5f5148ff6c5d52ff6d5e52ff6e5f53ff64574cff6a5c50ff66574dff675a4fff66584dff605349ff6a5c51ff64564cff685b50ff685b50ff62574dff62554bff5b5046ff6b5d53ff5a5046ff574c43ff584d43ff544b42ff544a41ff574c42ff574b42ff564b40ff5c5148ff62564cff50473fff51463eff574d44ff564a43ff534841ff4d443cff4b423aff4e433bff473e38ff443b33ff4b4239ff423a32ff463e36ff423a31ff40372fff443b33ff4e433aff2b2620ff423931ff493e36ff3f362eff3c332cff433930ff453a31ff4c4036ff473b32ff4a3e34ff4c3f35ff4b3e34ff4e4036ff4d4137ff4d4137ff504338ff4c4037ff4e4135ff4e4236ff4e3f36ff514339ff52453aff493d34ff4f4238ff53453bff52453aff56483eff53453bff5c4c41ff58493eff574a3eff5a4940ff56473dff5c4d42ff58493eff5e4f44ff5c4c42ff56473dff5f4f44ff5d4d43ff393129ff5d4d41ff5d4d43ff836a31ff90732dff8d712bff8b6f2aff635147ff6e5a50ff766658ff817262ff847463ff837363ff8e7d6bff8d7d6bff8e7e6cff8f7f6dff907e6cff94826fff968370ff9a8774ff948574ff948372ff938270ff978573ff998775ff988774ff9a8977ff9b8a77ff9c8c79ff978877ff998877ff998978ff9e8e7bffa49280ffa2907fffa79583ffa59382ffa59280ffa2907bff9f8d79ffa08f7bff9c8b78ffa1907dff9f8d7cff9d8c79ffa2917effa4947fffa18f7cffa2917dffa3927fffa59581ffa49480ffa49481ffb29e89ffae9c87ffa79682ffae9b87ffae9a85ffa59380ffa4927fffa79682ffa3937dffa5927dffa79481ffa59281ffa79583ffa79685ffa39380ffa1907dffa1907dffa99782ffac9a85ffa5937fffa1907dffa1907dffa08f7bffa0927effa39380ffa1917fff9d8d7cffa1907effa08f7dffa29281ff9d8d7dff9a8a79ff9c8b79ff998979ffa3917eff9e8e7cffa3927fffa1927fffa59481ffa08f7dff9f907dffa3927eff9f8e7aff9f8e7aff9d8d79ff9d8b79ffa28f7bffa18e79ffa2907cff998979ff998878ff9c8a79ff968575ff9c8a79ff998878ff9c8a79ff968775ff968776ff918273ff938374ff978676ff988978ff998877ff988877ff9c8b79ff988776ff988776ff938370ff958472ff8f806fff8c7d6cff938272ff8e7d6eff8f806fff918272ff928373ff918272ff958675ff948573ff968674ff928270ff958674ff9e8b78ff928371ff93806fff948271ff91806fff8e7e6eff89796aff8c7c6bff887866ff8e7d6cff8b7a6bff88796aff8a7c6dff726557ff5c5143ff61564aff766858ffb29f8aff746155ff736054ff73604dffa38733ffa38733ffa08430ff756256ff756356ff6a5a4eff6e5d51ff312a26ff6a5a50ff69594eff6b5b51ff6f5f54ff716256ff736358ff62544aff695a4eff695b4fff64574bff5f5247ff6c5c50ff61544aff60534aff62544bff63564bff66594eff64574dff63574dff5d5248ff5d5247ff5b4f47ff5b4f46ff6d5f54ff574d45ff544a41ff54493fff4b423aff50453dff52493fff594d44ff574c44ff564b42ff49433aff514840ff524840ff4e443dff52473fff5b5048ff4c443cff494139ff4e453dff4f463eff50453bff52483dff54493eff54483eff493f37ff4e433aff594d43ff52463dff3d362fff62544aff574a41ff584b40ff584a40ff54463dff54463bff54473cff56483cff4f4238ff4f4137ff4d4036ff4a3e34ff514237ff5a4a3eff54463bff5c4c41ff5c4b3fff5a4b3fff5b4a3eff5c4c40ff55463bff5c4b40ff5b4b40ff56463dff59493fff594a40ff5b4b40ff635347ff5e4f43ff604e43ff5e4d43ff50423aff57493fff5b4b42ff5f4e44ff5c4b41ff59483fff614f46ff5f4e44ff433930ff746053ff6c584cff6e5a4fff836a36ff91742eff93772eff927537ff7a6258ff766055ff837061ff7e6f61ff847361ff897767ff887967ff8e7f6eff958675ff918270ff948370ff958471ff958573ff948472ff958371ff968573ff968572ff958471ff938371ff958572ff9b8b78ff9d8d7cff958573ff9a8a7aff9b8a79ff9c8b79ffa0907fffa08f7dff998978ff9d8d7dffa1917fffa59481ffa99884ffa79581ffa99783ffad9c87ffa49481ffa5937fff9f8d79ff9f8e7bff9f8d79ffa3917cffa2907effab9884ffa0917dffac9a84ffaf9d89ffb09d89ffab9883ffa59580ffa59480ffa79683ffaa9984ffab9b85ffac9b88ffaf9d86ffac9a87ffa99786ffa79584ffa79583ffa69482ffa1907fffa2907effac9986ffad9c87ffa79582ffa69581ff9e8c79ffa08f7cffa3917fffa08f7effa59582ff9e8e7effa89684ffa59483ffa39381ff9d8c7bff948475ff938475ff9b8977ffa2917fffa2927fffa19180ffa3937fffa79885ff9e8f7bffa1907dffa28f7bff9e8c78ffa2917effa49380ffa1907effa2907bffa2907dffa08e7cff998878ff9e8b7aff9e8e7bff9a8878ff978776ff948573ff968675ff9a8a7aff9b8c7cff948473ff978879ff978878ff948576ff968879ff948574ff8b7d6dff938472ff978876ff968775ff998977ff948473ff9b8b79ff9b8b7aff998b7aff918170ff8e7e6fff8d7d6eff938371ff928370ff948373ff9b8978ff91816fff988773ff978676ff948271ff938371ff8f806fff89796aff8e7e70ff8f806fff928373ff928376ff917f6fff918070ff8a7a6bff786a5bff66594bff786a5aff716658ffad9c88ff6d5c50ff736055ff776552ff937934ff8c7533ff8d752fff6c5c51ff6d5c51ff6a5a4fff5e5148ff5c4f44ff2a2421ff463c35ff4e433bff534940ff494038ff4f463eff61554bff5d5147ff493f38ff594d45ff4d433aff4b4139ff4f443cff4d433bff52463eff544940ff50453dff52463eff4f453cff51473fff4b413aff483e37ff453c36ff463e36ff4a423aff483f37ff443d36ff433b34ff463e35ff423b34ff403a34ff433c34ff403831ff423b34ff423c34ff3d3731ff3d3631ff3c352fff423b34ff3b352fff37322cff3a322dff3c3531ff36302bff54483eff53473dff574b40ff564a3fff52463cff53473dff54483eff5b4e44ff3d352eff594e45ff584b41ff574a40ff54463cff53453bff524338ff594a3eff54453bff53453bff57473cff524338ff504137ff554439ff58483cff57483dff5a493eff57493eff5b4b40ff5a4b3eff5d4d41ff5c4c40ff5d4d42ff5e4d42ff59493eff5e4e43ff615045ff5f4f44ff625145ff5d4d42ff5a4a3fff614f45ff5c4c41ff635145ff625046ff5a4b41ff5f4e44ff604f44ff69564bff66554bff453b32ff756154ff705c4fff745f53ff7a6457ff977f41ff9c8234ff9d8133ff9c803aff81695dff836b5fff816f5eff8b7c69ff8a7968ff857768ff837564ff847567ff8c7e6dff90806dff8f806eff928270ff958775ff968574ff948572ff978774ff8e7e6dff9a8875ff988776ff978674ff9d8c7aff9a8a77ff948472ffa29281ffa39381ffa29280ff9f8e7cffa08f7dffa1907fff9e8e7cffa69683ffa3917fffa2917effa49380ffa49381ffa3927effa79582ffa2907bffa18e7affa99883ffa3917effa99682ffa99782ffac9b87ffaf9c88ffad9b89ffa99784ffb2a08affa99781ffa4937fffa59380ffa99783ffa89682ffa6937effa3917dffab9985ffac9a87ffa99985ffa79581ffa69482ffa59582ffa59483ffa79583ffa69684ffa1917dffa5937fffa79580ffa79582ffa99784ffa29281ffa29280ff9f8e7dffa18d7eff9f8e7eff9f8f7eff9f8f7dffa0917eff9b8b7bff9c8c7cffa3917fffa4937fffa79683ffa99784ffa3937fffa3937fffa2917eff9d8d7aff9f8e7bff9e8e7affa0907cff9e8d7affa08e7aff9f8e7bff9a8876ff9b8a79ff9c8b79ff9f8f7cff9b8b79ff928271ff9a8977ff968675ff958575ff9a8a79ff948573ff978777ff9a8c7dff9a8c7cff988a7aff978777ff958675ff958574ff968775ff998978ff938372ff958474ff948474ff928272ff998b79ff928272ff938271ff8e7f6fff9a8a78ff918272ff968674ff9a8a79ff958573ff9c8a78ff998979ff948271ff988776ff92816fff8a7a6bff8b7a6cff8e7e6eff8c7c6bff8a7a6aff897768ff918070ff837464ff6e6051ff796a5aff706353ffa99886ff806c5fff716056ff816c60ffa28733ffa28731ffa28530ff736156ff776559ff726155ff6f5f52ff756357ff756357ff322b27ff736157ff77655aff756459ff75655aff736459ff736559ff74665bff6f6156ff6f6156ff685b50ff6e6054ff6a5d52ff6b5e53ff706357ff6c5f55ff695b52ff706257ff66594fff64574dff62554cff64574dff62564cff675a4fff685b50ff60544aff5c4f46ff5e5249ff5b4f46ff5f5348ff60534aff63574cff5a4f45ff63584dff5f544aff5d5349ff544b41ff554a41ff5f534aff554a42ff51483fff635950ff554c44ff554b42ff53473cff53463cff54493fff574a40ff574a40ff574a40ff52473dff52463dff3f3730ff574a40ff54473dff57493fff594a3fff524439ff59493cff55453aff5a4a3fff594a3fff524339ff57473cff5b4b3fff57473bff5e4e42ff5e4e43ff5c4c41ff54473dff5d4e41ff635246ff615044ff5d4d42ff605044ff604f43ff615044ff5f4f44ff615044ff625146ff625146ff594a3fff655448ff5d4d42ff645146ff625046ff675449ff615045ff6a584dff665449ff604f45ff645147ff473d34ff766255ff725e53ff705d51ff776356ff826c5fff998038ff9e8337ff9e8133ffa28538ff7f685cff80685cff857161ff7f7161ff827464ff726456ff756658ff7c6e5dff8d7e6dff8e7e6dff988977ff988979ff908371ff968675ff978775ff958673ff938372ff968675ff998877ff9e8c7aff9a8977ff9c8c7affa39282ff9b8878ffa1907effa18f7dffa0907cffa49481ff9d8c7bffa79783ffa59481ffa2907effa59381ffa49482ffa6947fffaf9e88ffb5a38dffae9a86ffac9b87ffaa9985ffab9984ffac9a86ffaf9e89ffb2a08cffae9d8affac9a87ffa59481ffb19d88ffad9a84ffae9c87ffab9985ffa99783ffa89682ffaa9884ffa99682ffa69380ffa79683ffa89781ffab9986ffa59582ffa99986ffa69482ffa29281ffa2927effa4947fffac9882ffa39280ffa69582ffa69684ffa29180ff9f8d7cffa39182ffa08e7eff9e8d7cffa29280ff9e8d7bff9a8a79ff9d8d7dffa59381ffa69481ffa89582ffa89782ffa3927fffa49381ffa2907dffa59380ffa2907dff9b8a78ff9c8a78ff9c8b77ffa08e7bffa3907dffa99784ffa18f7eff9d8d7bff9c8c7aff9c8d7bff9b8b79ff9b8a78ff988776ff978776ff9b8a79ff978876ff9a8c7bff9a897bff978678ff998879ff958576ff978776ff988777ff928274ff9d8d7bff968575ff978676ff978677ff938372ff978875ffa29380ffa29280ff958574ff9a8a79ff978977ff978774ff958574ff978775ff9c8c7aff938173ff948373ff958271ff958372ff91806fff8e7f6eff8f7e6fff8d7c6dff8d7b6cff8a7869ff827162ff716354ff736456ff675a4bff948676ff7f6b5fff7e6a5cff7d6957ff9e802bffab903cffa38530ff776359ff78665bff78665bff756357ff776559ff7c675cff7d695eff38302bff756257ff766459ff766459ff6e5f54ff726357ff726357ff746458ff6a5d52ff6b5d51ff685b50ff6b5d52ff65584eff6a5d52ff6e6155ff685b50ff6c5f54ff695c50ff66594fff5d5148ff62554aff63564bff66594fff685c50ff66584eff61554bff5d5147ff5e5247ff5e5248ff5f5348ff64584dff65574eff5d5247ff5c5247ff61554bff5f5549ff5c5247ff5a4f45ff5b5146ff534a40ff4b433bff544b44ff584d44ff564d42ff55493eff54483eff584b41ff584c40ff584c41ff56493fff53473cff493e35ff413931ff56493fff55473eff56483eff584a3fff55473cff4e4037ff56483dff584a3eff594b3fff584a3fff5c4d41ff5d4d41ff5a4b3fff5d4e42ff5f4f43ff5d4e42ff5c4d41ff594a40ff5e4e41ff5e4e43ff5f5044ff665448ff5c4b41ff645347ff635447ff635145ff5f4f44ff625247ff69584bff615044ff635145ff625145ff604f44ff5f4e44ff635247ff605045ff6a574bff635247ff604f46ff4b4037ff715e52ff776358ff746155ff7a675bff7b675bff7b675aff967c40ffa08336ffa38a40ffa08640ff876f62ff8b7163ff867262ff746556ff736455ff605345ff6d5f50ff807161ff8f806fff938472ff978776ff958675ff968876ff988876ff988874ff9d8d7bff968574ff978673ff9b8b7bff9f8d7cff9e8d7bffa3917effa08e7cff9e8c7bffa08f7effa18f7dffa49280ffa2907effa79582ffac9986ffa69482ffa3927fffa89684ffac9c87ffb2a08bffb09e89ffaa9783ffa89680ffae9c88ffb19f89ffae9c86ffb19f8affa79582ffa89883ffad9b88ffaf9d89ffac9c87ffaa9885ffad9b87ffad9a87ffab9985ffa49480ffa59682ffa49480ffa99883ffa99782ffa7947fffa69582ffa99785ffa79583ffab9986ffa39281ffa3937fffa3927fffa99985ffa99984ffaa9885ffa49380ffa3917fff9f907fffa18f7eff9f8f7eff9f8f7effa0907dff9c8c79ffa2907effa89786ffa89886ffad9b88ffa79885ffa69480ff9f8f7dffa69582ffa4937fffa4937effa1907bffa2927dffa3927cffa28f7cffa49180ffa2907effa3917fffa2907fff9f8e7dff9f8f7dffa1917dff9f8f7bffa39280ff9c8b79ff998775ff9d8d7dff9f8e7eff9c8b7bff9d8b7cff998879ff988778ff998879ff9b897aff9b8a7aff9c8a7affa08e7eff9c8a7aff958374ff978676ff988877ff9c8e7cff9f907eff978676ff998978ff978775ff9f907dff9a8b77ff998976ff938471ff938371ff8c7e6dff978677ff8e7f6fff8e7e6eff8f7e6fff8f8070ff8b7b6bff8c7d6dff887868ff837465ff736456ff7c6d5cff736354ffa7937fff8e7b6dff867365ff847058ffa68932ffa48932ffa78c38ff816d60ff7e6a5eff746155ff786659ff766457ff7a6759ff806c60ff766459ff3a322cff715f55ff7d695eff786459ff716156ff74645aff726257ff78685dff706156ff6d5e54ff6b5c51ff6d5e52ff6a5c51ff6a5c51ff6c5f53ff6c5e53ff6c5e53ff695b50ff685b50ff675a4eff65574cff6a5c50ff67594eff695e52ff675a4fff60554cff62564cff5f5349ff5f5348ff5c5046ff5d5148ff61564bff5f5348ff605449ff62564bff61574bff5f5349ff5c5247ff584e44ff4f473dff49413aff584e45ff534940ff4f453dff574a40ff574a40ff56493fff574a40ff54493eff594b40ff53463cff55483eff463c34ff574940ff56473fff58493dff524339ff53453aff4d3f35ff56493dff56483cff584a3fff56483cff5d4e42ff5c4d42ff5b4c41ff615247ff5d4c41ff5b4b3fff5b4c41ff645346ff635347ff5d4d42ff5c4d41ff675649ff5a4c40ff69574bff625145ff645246ff615045ff655447ff655548ff655346ff635245ff635247ff675549ff625145ff625045ff665549ff635246ff5d4d42ff625147ff50443bff6f5c50ff766256ff786458ff7b675aff796459ff7a665aff856f61ff9a7f41ffa1873affa38839ffa18641ff836c5eff897061ff867261ff716253ff66594bff564a3dff675a4cff7f7060ff928170ff978674ff938471ff988877ff958574ff958675ff968675ff938472ff9c8c7aff9e8d7bff9b8b78ff9c8b79ff9d8c79ffa4917effa18f7effa3917fffa79584ffa89684ffa79582ffa49280ffa59381ffa08e7cff9f8d7affa5927fffa89683ffb09d89ffae9b87ffb29e8affac9986ffaf9c88ffae9d89ffb19e89ffb19e89ffae9d88ffb19e8bffad9a88ffad9b88ffa99684ffa99885ffa89786ffa59482ffab9986ffaa9885ffaa9885ffa89784ffac9a87ffab9986ffa89783ffa29380ffa39481ffa59583ffae9b88ff9e8d7bffa79786ffa59684ffa39581ffaa9883ffab9986ffa49481ffa39482ff9d8c7affa3947fff9e8f7eff9e8f7dff978674ffa08e7cffa69481ffa0917effa49582ffa99987ffa79582ffa39280ffa2917dffa3917cffa5947fffac9884ffa6947fffa69580ffa1917dffa3917dffa08e7eff9e8d7cffa69483ffa49280ffa0907dff9f8e7cff9c8c7aff9f8e7dffa08e7cff9c8b78ff9f8d7cff9f8e7dff9c8b7aff9c8b7bffa2917fff9f8e7eff9c8a7aff9d8e7cff9f8f80ffa08f7eff9c8b7bff948474ff9a8979ff90806fff93816fff968775ff9b8b7aff9b8b7aff9c8c7bff9e8e7dff988777ffa08f7bff9d8e7aff9d8b78ff978976ff938674ff938375ff908172ff918272ff8a7a6bff8e7e6fff8b7c6eff887868ff8c7b6cff867667ff756658ff7f7061ff756757ffa08e7aff8c7669ff887366ff826f5effab9139ffa68a32ffa5872fff836f61ff796759ff7c695aff7e6b5cff786557ff776456ff756457ff786658ff756457ff3d352fff776559ff7a685cff78665aff706056ff6f5f54ff736257ff77675cff76655bff716257ff706055ff6b5d52ff6d6054ff726357ff726256ff6c5e53ff6f6055ff695b50ff695b50ff67594eff675b4fff675b4fff6a5d52ff675b50ff62574cff61564cff63574cff5d5248ff61554cff605449ff62564bff64584dff60544aff60554aff61554aff605449ff5d5247ff5e5448ff584d42ff4b4238ff564d43ff574d43ff534940ff4f453dff574a40ff584a40ff57493fff53463cff56483eff5a4c41ff56483fff5b4d43ff40362fff5d4e45ff54463eff54463dff55473cff514339ff57483eff5c4d41ff594a3eff584a3fff54463aff615146ff605146ff5d4e42ff615145ff5f5043ff615144ff615145ff615145ff635346ff645347ff605145ff615145ff635246ff665549ff665549ff685649ff604f43ff665548ff645448ff5f4f44ff665549ff645347ff6c5a4eff604f44ff625146ff665448ff655448ff69564aff605046ff473c34ff756154ff736053ff756155ff7b6659ff7d675aff7a6558ff7f6a5bff816b5dff9d8036ffa38535ffa18434ffa28434ff826c5eff856d5fff8a7563ff7e6e5eff605144ff615244ff766657ff8e7d6bff958573ff968473ff948473ff958473ff998977ff928371ff928374ff908372ff988a77ff998978ffa3927fff9d8b7affa18e7dff9f8c7bffa3917fff9a8a77ffa2917effa08f7cffa3917fffa59480ffa59380ffa5917effa69482ffa79481ffb29e87ffad9b86ffaa9a85ffa99784ffab9a86ffaa9884ffb09e88ffaf9a87ffaf9c89ffad9a88ffae9b88ffb19f8bffa79583ffa89684ffb19f8cffa79584ffa89684ffaa9884ffae9b89ffaa9a88ffad9b89ffa69483ffad9986ffa89684ffa0907fffa49383ffa79583ffab9986ffa2927fffa59783ffa89985ffac9d89ffac9c88ff9c8c7cff9d8c7dff9a897cffa29181ffa3927fff9e8e7dffa1907fffa19080ff9e8f7cff9f8e7cffa79582ffa59381ff9f8d79ffa1907effa89683ffa69481ffa5937fffad9c86ffa5947fffa1917dffa79682ffa59380ffa38f7eff9f8e7cffa1907fff9e8e7dff9e8c7bffa3937fff998977ff9d8c7aff998876ff988878ff988977ff9b8b7aff9d8c7cffa29381ff998979ff9c8c7bff9c8b7bff9c8c7cff968876ff9a8c7aff988978ff998a7aff9a8c7aff988976ff978777ff998977ff988976ff9b8c77ff958774ff9c8e7cff9b8c7aff958574ff988875ff968674ff9c8b78ff938373ff918375ff918475ff948475ff8f7e6fff907f6fff917f70ff8f7e6eff877767ff776959ff766859ff7a6c5dffaa9985ff887467ff8d786bff8a7568ffae933effab9139ffa88c35ff776558ff856f61ff7d695bff7c695aff826f5fff776457ff6d5d50ff79685aff7a695bff78655aff3b332cff79655aff7b685cff776659ff726256ff6f5e53ff766559ff77665aff6d5e53ff726155ff6f5e53ff716256ff6c5e51ff726257ff706156ff6f6053ff6b5d51ff706155ff6a5d52ff685b50ff695d52ff675b50ff655a4fff665a4fff64574dff62564bff60554bff60544aff62564bff65574eff665a50ff64584dff60554aff5e5348ff5b4f45ff594e43ff5b4f44ff61564aff5d5247ff574d43ff5b5147ff564b42ff584d44ff534941ff55483eff56493fff54483eff53473dff564a40ff594d42ff574a40ff5d5045ff413830ff5e5147ff574840ff52443aff52453bff56483dff504339ff55473dff54463cff594a40ff584b40ff615146ff5b4c41ff5c4d41ff5e4f43ff5f4f43ff605144ff645548ff67574bff645549ff615145ff625246ff645548ff605044ff665548ff68564aff655448ff665548ff635346ff655548ff645247ff645347ff675549ff6c594dff635347ff69574bff68564aff645348ff655447ff5e4c43ff4e4138ff715d51ff745f53ff766054ff796458ff7c665aff7b6558ff806a5cff836c5dff80695bff9a7f3fffa28535ffa08231ff9f8237ff7e685bff8d7669ff95816eff897867ff776656ff887664ff998573ff948472ff918170ff958674ff928172ff978776ff988977ff978877ff9b8b79ff9a8c7aff9a8b7aff988877ff998978ffa08d7cff9e8b7affa18e7cffa4927fffa4927fffa1917dffa08f7cffa69480ffa4927effab9986ffa79482ffa99582ffa59482ffa89884ffa49381ffaa9886ffab9986ffab9986ffb39f8affb49e8bffae9987ffb19f8cffb3a08dffb09e8affab9885ffa69483ffb3a18dffa79584ffab9986ffaa9985ffa79583ffaa9986ffa59381ffac9987ffad9986ffa99684ffa39281ffa49482ffa39281ffa59482ffa59782ffab9c88ffab9a88ffa59582ffa89985ffaa9986ffa0907fffa49382ffa39281ffa49280ffa1907eff9d8d7cff9f8e7effa29280ffa79583ffa08e7cffa08e7cffa59683ffab9986ffa99785ffa99784ffae9b84ffa7947fffab9883ffa69581ffac9987ffaa9883ffa59280ffaa9785ffa79683ffa39280ffa08f7dffa1907dff9e8d7bff9c8b7aff9f8e7cff9e8d7cff9e8e7cff9b8c7cff9d8d7dff968676ff9a8b7bff9b8c7bff988979ff9c8d7cff978a78ff9b8d7bff968878ff968877ff9a8b79ff988976ff9f8f7eff978977ff958472ff938573ff978875ff948474ff988978ff9a8b79ff998977ff9d8c79ff998876ff968676ff9c8f7fff998b7cff938474ff938373ff8f7e6eff958370ff8d7b69ff7c6d5cff80715fff746556ffaa9987ff887467ff857265ff907b62ffae943dffa78d35ffa98f36ff806c5fff836f60ff826f61ff7e6b5eff7e6a5dff7c6a5dff736256ff786658ff776658ff7c6a5eff7d6b5dff3a322dff756458ff746157ff766559ff7a695dff776459ff736256ff736256ff6d5d54ff6d5e53ff716156ff736358ff6d5f53ff6f6054ff6c5e52ff6f6155ff6b5c51ff6e5f55ff6b5d51ff675a50ff665a4fff66594eff665b4fff64594eff63564bff64584dff60544aff63574cff62564bff62554aff64574dff62564cff60554aff605449ff5b5146ff594e43ff584d43ff5e5247ff5c5146ff584e43ff5b5046ff5b5046ff554b43ff52473fff51443cff574940ff55493fff55483eff53473eff584b41ff5b4d43ff5e5045ff423831ff5d4f44ff5a4c42ff584a3fff56473dff594c41ff4d4238ff5b4d41ff5a4c40ff5d4e43ff52453bff5e5044ff5e4f42ff5d4e43ff5d4e42ff665649ff635346ff67584cff625246ff665549ff655449ff645448ff69584bff645448ff68574bff6a594bff645348ff645347ff645347ff655449ff68574aff655346ff645347ff645347ff69574bff6b584bff605045ff625145ff635246ff614f45ff524239ff6f5a4eff6c594dff756053ff756154ff756053ff786356ff796457ff7f695bff7d685aff7d6658ff957b3fff9f8232ffa38736ffa08640ff8d7668ff8f7869ff998471ff867764ff8c7b68ff92816eff8f806fff8f8271ff948575ff9a8b79ff968776ff998a78ff978776ff988978ff998978ff988978ff978877ff9c8c7affa18f7dff9e8d7aff9f8d79ff9f8d78ffa2907bffa3917cffa69681ffa5927cffa4927dffa99783ffa79582ffaa9783ffac9984ffaa9986ffaa9a85ffa89885ffa99986ffa89481ffac9886ffa99584ffaa9888ffb09d8affb09d8affaf9c89ffb39f8bffb09d8cffb6a390ffb4a08cffa49381ffa79883ffa49381ff9f8e7dffa39080ffaa9786ffaa9886ffaa9888ffa79583ffa99885ffaa9a88ffa49582ffa99a86ffaa9b86ffb2a28dffab9a87ffad9c88ffab9a87ffa39382ffa59482ffa69682ffa3917fffa1907dff9f8f7cff9d8c7affa69380ffa69482ffa79583ffa79683ffb09d8bffa49481ffa3917fffac9987ffa99680ffa3917dffa49380ffaa9784ffa79482ffa2927fffa3937fffae9d88ffa3917fffa29180ffa19180ffa79582ffa69582ffa69582ffa2917fff998978ff9d8e7eff9c8e7dff958676ff9e8e7dff9e8f7eff988a79ff968877ff9d8e7aff9b8b78ff9a8c79ff9c8e7cff988b79ff9a8b77ff988b77ff988979ff988978ff9a8a77ff988876ff9a8977ff958574ff988a79ff958675ff948473ff998878ff958576ff958777ff988a79ff9b8c7bff968775ff9d8c7aff938372ff9a8774ff857260ff837463ff746757ffa99784ff877366ff847063ff88735dffab9037ffaa8f37ffab8f35ff7e6a5dff7e6b5eff7f6c5eff7e6a5cff7e6a5cff7c685bff796559ff7c695cff7e6b5fff766659ff79675aff7c6b5eff39342dff78675aff736256ff776559ff6e5d53ff726156ff7a6a5eff7a6a5eff77665aff79695eff78675bff74655aff74665bff6f6156ff6e6055ff726256ff685b4fff706156ff6e6054ff6b5e53ff6b5e53ff67594eff685b50ff66594eff66594fff62574cff665a50ff63574cff63584cff62564bff65584eff62564cff63584cff63574cff5f5348ff594f45ff594f45ff5b5147ff5d5348ff5f5449ff60574bff594e44ff594f45ff4f453cff50433bff574a40ff54473eff564940ff54483eff594c42ff5a4c41ff605246ff463e35ff625348ff5d4e43ff594b40ff56483eff584a3fff55483eff5d4e43ff584a3fff5d4f43ff584a3fff5c4e42ff5d4e42ff615146ff5a4b41ff645548ff67584cff66564aff67584aff66564aff69594dff66554aff695a4eff66554aff68574bff67564aff645448ff635348ff625247ff69574cff69574aff69574bff6a594bff6f5a4fff615044ff675449ff5c4c42ff6a5649ff615045ff5d4b43ff514439ff705c4eff705b4fff786256ff745f53ff6d594dff6d5a4fff7c6659ff735f53ff746153ff796356ff7e685aff997c38ffa38737ffa48737ffa58b3eff8a7365ff927c6cff937f6bff928371ff8c7c69ff938371ff938472ff938572ff958674ff918371ff9b8b7bff998a78ff9b8b79ff978675ff968775ff948574ff9a8977ff9d8c7aff9f8d7affa0907bffa2907dffa6937effa6927effab9782ffa89580ffb29c87ffac9884ffaf9c88ffac9b87ffab9885ffad9d89ffa59683ffa79885ffa89888ffaa9886ffab9886ffae9b88ffae9b88ffb29f8cffac9986ffb4a08dffaf9d8cffb19e8dffb19e8effa79585ffab9888ffa89884ffa59482ffa1907fffa59382ffab9887ffaf9d88ffae9c89ffaa9988ffa89888ffaa9b88ffa79684ffad9c89ffb0a08bffac9b87ffb19d88ffaf9d89ffa99985ffaa9986ffa99886ffae9d8affae9b88ffac9a87ffa0907fffa5927fffab9785ffab9986ffad9a88ffb19f8bffb6a593ffa18f7dff9f8d7cffa69481ffa69481ffa69481ff9c8c78ffa79481ffa6927fffa3907fffac9a88ffa69480ffa79581ffa99784ffa79683ffa59481ffa59481ff9d8d7bffa29181ffa1917fff9f8f7eff9a8a79ff9a8b7aff998b79ff9b8a78ff9a8b7aff9c8d7bff9b8d7aff9e8f7dff9f8f7cff9e8e7bff9b8a78ff9d8f7cff9f8e7cff9b8d7bff998b79ff978978ff9f8d7bff978778ff948475ff918373ff958578ff98887aff948474ff998978ff968776ff978877ff988977ff968777ff998a79ff9b8b79ff857564ff8f7d6dff807261ffaa9984ff8a7669ff887366ff877265ffac913affaa9037ffa88e35ff877163ff7d695bff7e695eff867163ff756255ff7b6759ff826e60ff7e6c5fff7c6b5eff7c6a5dff806e61ff7e6c5fff766659ff3c352fff7b6b5eff78665aff79675bff756557ff6f5e53ff76665aff806f64ff78685cff736458ff77675cff76685bff75675aff706156ff736458ff6e5f53ff716255ff726559ff6f6156ff6d6053ff6b5e53ff66594eff665a50ff675b50ff685c51ff65594eff64584dff665a50ff62564cff62564bff63574dff61564cff5d5248ff60554aff534a40ff5b5045ff584d43ff5a5045ff60554bff5f5449ff62584dff544b42ff5b4f46ff564b42ff716255ff67594eff56493eff594b3fff57493fff584b41ff5a4d42ff5e5045ff473e35ff5a4d42ff5f5045ff594a40ff594c41ff5d4e43ff5a4c40ff5e5045ff5e4f44ff5e4f44ff594c41ff605146ff615246ff5c4c42ff605145ff65564aff69594dff67564aff645449ff66564aff67574bff6a5a4dff68584cff68574bff6b5a4eff69574cff645448ff615246ff5f5045ff645347ff6b584bff69584aff5e4e43ff675548ff6a574aff69584bff655348ff6e5a4eff645348ff5f4e44ff4f4137ff735d50ff715c51ff735d52ff776154ff6c584dff725d51ff755f53ff7a6457ff7b6557ff756154ff786256ff766054ff997d38ffa58a37ffa68a38ffa98d3aff8d7566ff8f7767ff887563ff8f806fff8c7c6aff938371ff928271ff928372ff958674ff9b8b7cff968674ff9f8f7dff978775ff978976ff928172ff9b8b79ff9c8c7affa2927effa08f7dffa2927dffa2907cffa5927cffa28e79ffad9883ffad9782ffa79582ffa99784ffab9983ffa69682ffa79884ffa79784ffa99886ffa89785ffae9e8affac9b86ffb29f89ffab9783ffa89582ffaf9c88ffac9987ffb4a08dffaf9f8bffb09d8cffaf9d8bffaf9c8affa49481ffa89985ffb09e8dffab9989ffae9d8bffb5a18effb19e8bffb2a08dffb09f8bffae9d8bffaf9e8cffad9c8affb09f8bffad9d89ffab9a88ffad9c87ffa69582ffa99784ffad9d8affaf9f8cffa69684ffa99986ffa3907fffa4907effab9a86ffa2907dffac9884ffb7a38effae9a88ffa59280ffab9985ffa79782ffa89884ffaf9e89ffa59481ffaf9d8affaa9785ffa69382ffa89581ffa99682ffab9a88ffa3917fffa59381ffa49180ffa49280ffa89684ffa49384ffa29280ffa39381ff9d8d7bff9c8d7bff988878ff9d8d7cff9c8c7bff9e8f7dff998979ff9b8d7aff9e8e7bff9a8a76ff9a8976ffa08f7cff9b8a79ff998b7bff998a7aff988a77ff918372ff958676ff938374ff998879ff938375ff978877ff968775ff978874ff928271ff918271ff958675ff958573ff988976ff8f826fff8a7a69ff8b7a69ffb09d89ff8c7668ff887366ff8b7661ffac933affaa913affac9239ff887466ff847062ff857163ff836f61ff826f62ff736155ff796559ff7e6a5dff776459ff7a685aff7d6a5dff7c6b5eff827062ff7c6a5dff3c352fff7a685dff756358ff736156ff706052ff6a5c50ff716255ff726356ff6e5e51ff756457ff716155ff6f5f53ff6d5e52ff6a5a4fff67584cff6c5c51ff67584cff6b5e51ff6d5f53ff6a5d52ff716357ff66584dff675a4fff65574dff685a50ff62564cff675a4fff60544aff63574dff61564cff64594eff675a50ff5f5449ff61564aff5a4f45ff594e45ff5c5045ff5d5248ff5c5147ff5e5349ff655a4fff534a40ff5a4f46ff584c42ff6b5d51ff685a4dff66584bff66584cff67594dff65574aff5a4c42ff5e5044ff4a4137ff5c4f44ff584a40ff55483eff594b41ff594b40ff4f4339ff57493eff5a4c41ff54463cff574a40ff625348ff5c4f43ff5d4d42ff5b4d42ff615147ff6a594eff6c5b50ff69584cff67574bff67574bff655549ff67564aff665549ff69584bff67574cff655449ff615146ff665549ff665548ff675549ff635245ff625146ff645347ff625045ff614f44ff635145ff665449ff5f4f45ff5f4d44ff50423aff755f53ff6e594eff745f53ff735d51ff715c50ff735e51ff725e52ff7e685bff7c6657ff786356ff786255ff7b6557ff836c5dff987d3effa58937ffa88d3affa58a42ff907868ff8b7362ff857361ff857766ff877969ff8e7f6dff938371ff968674ff9d8d7bff9e8e7dff948573ff998977ff958673ff938272ff978777ff9e8d7cff9d8c7affa59380ffa08d7affa2907cffa79480ffa6927dffa6937fffaa9681ffa69380ffab9986ffae9c88ffac9b87ffab9a87ffa79784ffa99a88ffac9c88ffac9c89ffa89784ffa89683ffa99683ffad9a86ffb19e89ffaf9c88ffaf9c89ffae9d89ffb19f8bffaa9886ffa89683ffa39280ffb09e8bffac9a8affa99886ffae9d8bffb19e8cffad9b88ffad9d89ffad9e89ffae9e8affb09f8cffb2a291ffad9e8affab9a88ffaf9e8bffa79885ffa69683ffa59583ffa49381ffab9d8bffaf9f8bffad9d89ffab9885ffaf9d87ffaa9985ffaf9b87ffb39e89ffb3a08bffa99584ffa89582ffa79681ffaa9985ffa89785ffaa9986ffac9b88ffa99885ffa89784ffab9885ffac9a84ffab9984ffac9a86ffa49280ffa49182ffa69382ffa49381ffa69583ffab9a88ffa59483ff9f8e7dff9c8c7aff998a78ff968677ff99897aff9c8b7bff9b8a7affa0907eff9a8877ffa0907dff9d8d7aff9a8976ff988977ff9d8d79ff9a8a78ff9b8c7bff9c8d7cff968877ff97897aff938375ff928374ff978777ff948575ff918271ff948473ff918271ff938473ff988876ff928371ff918371ff978875ff746455ffb3a18bff8d7669ff8c7768ff857058ffae923affac9037ffac933aff8b7568ff826d5fff7e6b5dff867163ff7d6b5eff7d6a5cff7d695cff7d6a5cff7b675aff796659ff7c695bff857163ff756659ff7e6c5fff816e62ff39322dff766559ff756357ff706053ff756558ff726256ff726154ff726155ff756456ff736357ff756558ff736457ff706254ff6d5e52ff716356ff6b5d51ff716256ff736458ff726257ff706256ff6d5f52ff6d5f52ff6b5e53ff685a4eff6a5c52ff6a5c52ff62564cff63584eff64594eff61554bff66594eff5f5349ff5f5449ff5f5449ff5c5046ff584e43ff584d43ff5a4f44ff5c5046ff5d5247ff5e544aff5e534aff5e5449ff51463fff6d5f51ff6e5f52ff695a4eff695b4fff6e5f52ff6c5c4fff6f5f53ff6e5f52ff5e5247ff66594dff5b4d42ff53463cff574a3fff54473dff51453bff56493fff594b41ff574a41ff5c4e43ff625247ff5e5045ff5e4f45ff594a40ff56473eff67574cff65554aff635448ff68584bff6a5a4eff68574bff625246ff635347ff67564aff68584bff645448ff635348ff67574aff635246ff635348ff594a3fff645147ff5f4d43ff675549ff675449ff67554aff68554bff6a574cff5e4c43ff51453bff746053ff725f53ff746055ff6f5b50ff705c51ff766255ff766255ff735f53ff776254ff755f53ff7b6657ff826b5bff80695aff7e6859ff9f8440ffab8c39ffa98b37ffa98d42ff8e7564ff937b69ff7a6858ff897a6aff857665ff847563ff91816fff938474ff958673ff988775ff988775ff9c8b78ff9d8e7dff9b8c7bff9c8c7bff9d8c7affa3927fffa59480ffa4937effa6947fffa6927effa79381ffae9a84ffad9a85ffab9986ffa99885ffab9a85ffad9d8affa99785ffa79784ffad9c88ffad9c88ffac9b88ffac9a87ffaf9c89ffae9d88ffa99683ffb5a08bffac9a87ffad9c88ffb7a590ffb4a18effab9986ffaa9986ffb7a491ffae9d8cffab9987ffae9c8affb09e8cffa89785ffaf9e8bffaa9a87ffb1a18bffb5a490ffb3a492ffafa08dffac9b89ffb4a390ffac9d8affa79684ffa2927fffaa9a87ffac9c8affad9e89ffaf9e8affaa9985ffb2a18bffa69481ffbca893ffaf9c87ffb5a38dffaf9c88ffa79582ffa3927fffa69683ffb0a18cffa89785ffa69683ffa49582ff9f917dffa99783ffac9b84ffaf9c87ffab9883ffac9986ffa2917fffa1907effa0907effa49482ffa09281ffa1927fffa39280ffa1907effa1917fffa19282ff9c8c7cffa1907fff998978ffa2907fff9d8b79ff9d8d79ff9e8e7bff9a8875ff9f907cff9e8e7aff9c8c7bff988978ff998a79ff988a78ff9a8c7dff918273ff938474ff998a78ff978877ff978877ff958675ff988978ff8f8170ff948473ff968774ff9e8f7cff7b6b5affa5927eff917a6bff8a7466ff8a7566ffb1953affae9339ffae9239ff8c7769ff887465ff867162ff826e61ff857264ff826f62ff836f62ff78665aff7c695bff7e6b5eff746256ff7a675aff7f6e60ff806e61ff826f61ff89776bff3c3530ff776659ff79675aff786659ff766557ff766558ff736355ff776557ff726254ff776558ff736355ff756456ff716255ff756658ff6b5c50ff6d5f52ff716155ff6d5d51ff6d5f52ff6d5f52ff726356ff6c5d51ff6b5d51ff6d5e53ff6c5e52ff695c51ff66594eff62564cff665a50ff64584cff5c5047ff61554bff5c5147ff5c5146ff5c5045ff574c42ff5a4e43ff5e5347ff5f5248ff5b5045ff5f564bff574e44ff5e5349ff4e443cff695b4eff6a5a4eff6e5f52ff6e5e51ff64574bff695a4eff6a5b4eff6b5d51ff5f5449ff746559ff706053ff6d5d51ff695a4fff66574cff57493fff55483eff54473dff5a4c41ff5c4e43ff58493fff615147ff5e4f44ff574b3fff54463cff605146ff63544aff645549ff66584bff68584cff68574bff6b5a4dff68574bff665549ff645449ff68574aff5f5044ff615146ff5c4d43ff655449ff604f45ff5c4c42ff655348ff614e46ff6c584cff69564cff68554bff655148ff614d45ff51443aff705c51ff705e52ff786458ff715e53ff766256ff735e53ff735f52ff735f52ff7a6456ff7e6659ff7b6557ff806859ff816a5aff866e5fff877060ffa48739ffab8f3affab8f3bffac903aff8f7665ff897060ff766756ff8a7b69ff867665ff8d7e6bff948471ff9a8976ff988975ff9a8a78ff9a8977ff9f8f7eff9c8c7cff9c8a7affa2927dffa1907dffa69581ffaa9884ffac9a85ffac9886ffa89482ffa7947fffab9985ffaf9e8affa89984ffb6a58fffad9a87ffaa9684ffab9985ffae9b88ffb09f8bffaf9e8cffa59584ffb3a28dffb29f8affab9986ffae9d89ffb7a491ffb19f8bffb3a18dffb09e8affaa9885ffaa9987ffae9c89ffae9d89ffab9a86ffaf9e8affb2a08effa79786ffaa9a88ffae9e8affb09e8bffb2a08cffb09e8cffae9c8affaa9987ffbaa991ffaa9987ffb3a18effa59581ffac9985ffa39483ffad9c88ffa99888ffb1a18cffb9a591ffaf9c88ffb7a592ffb09d8affaf9d88ffac9985ffa69684ffa39483ffa39484ffaa9986ffac9b88ffa1917fffad9c8affa79784ffb4a18bffb3a28dffa99783ffac9a86ffaa9784ffac9c87ffa89684ffa49683ff9f907effa39381ffa59481ffa59583ffa59481ffa49483ff9c8d7dffa09080ffa1907eff9e8e7cffa1907fffa39280ffa59582ffa1917eff9f8e7dff9b8c7aff9b8b77ff9c8d7bff9a8c79ff978a77ff9f907eff998979ff958475ff988876ff9b8b79ff968776ff8d7f70ff918373ff968876ff968673ff8f8170ff998978ff7c6c5dffab9784ff8b7768ff927c6dff917b69ffb59a3effae9439ffae9338ff887464ff867162ff887363ff816d5fff816d5fff816e61ff836e60ff826f62ff836f62ff7a675bff756457ff776557ff7a675aff816f62ff887568ff816f63ff867567ff3f3831ff76675aff756458ff716055ff7b685bff7a695cff776658ff79695bff776658ff6f5f51ff736355ff716254ff726355ff68594cff695b4eff6a5b4eff706152ff6b5d4fff6a5b4eff6c5d4fff6f6155ff6a5b4fff6a5d50ff6d6053ff716357ff6a5e51ff685a4eff665a4fff685b4fff605449ff61554aff62564bff62554aff615549ff605448ff5a4f44ff5f5349ff5d5146ff605348ff5e5248ff574d42ff554b42ff584d43ff4b4139ff685b4dff65584bff67584cff69594cff695c4fff6c5e51ff6c5d50ff6e5e51ff63564bff78685cff6f5f54ff6a5b50ff69594fff635449ff65584dff6c5d52ff6a5b4fff695c50ff605246ff50443aff5c4d43ff65554aff5d4f43ff5e4f44ff6b5b4fff5e4f45ff625348ff68584cff69594dff67574bff655548ff655549ff67574aff6b594dff665548ff615045ff67554aff6b5a4eff66564aff645448ff665449ff6b584dff665349ff6d594eff655349ff6a574dff68554bff5f4d45ff4e423aff6f5c50ff6f5c50ff746155ff725e52ff745f53ff725e52ff766153ff766153ff7d6557ff7a6455ff7d6557ff7e6658ff7b6758ff7e6959ff7f6859ff876f5fffa08542ffaa8d38ffaa8e37ffac9042ff8f7565ff907665ff796858ff8a7b6aff8a7a68ff988774ff9a8a76ff9a8977ff9e8c7aff9e8d7cff9b8d7bff9c8b79ff918272ff9c8b79ff9f8e7cffa49482ffa89786ffa79784ffa69481ffa79683ffaa9885ffaa9986ffaa9a87ffa89683ffab9986ffac9a86ffb2a08bffb09e8affb19f8bffb2a08cffac9b88ffae9d8affac9a88ffb09c89ffab9a87ffad9c88ffaa9784ffb7a491ffb5a28fffb7a490ffb09e8affaf9d89ffae9a86ffb5a28effb6a490ffad9c8affac9b89ffac9b8dffb4a190ffaa9987ffb3a190ffb9a793ffb5a390ffaf9f8cffaa9a88ffb4a18fffb19f8bffad9e8affa79683ffa79583ffa89783ffb19f8bffb8a791ffad9d8bffb4a28effb3a18cffb3a08cffb4a18dffab9886ffad9a87ffac9a87ffaa9985ffa99885ffac9a88ffa99985ffa39483ffa39381ffa89785ffab9b86ffae9c85ffac9a85ffaa9783ffa79683ffa49181ffae9d8affa89785ffa59683ffa89885ffa59582ffa79683ffa49280ffa89988ff9d8f7eff9b8b7aff968776ff9d8c7cff9c8b7bff9e8f7effa29281ff9c8b7aff9c8c7aff9b8c7aff9c8c7aff9b8c7aff9a8b79ff958675ff988977ff968776ff9e8e7cff9a8977ff9c8c7aff998a79ff988978ff938473ff948574ff918170ff998a77ff796a5bffb19e89ff937c6cff927b6cff9a8268ffb2973bffb3983effae9338ff826f61ff826e60ff857164ff7f6b5cff816d5fff857162ff776458ff776457ff7e6b5eff7b685cff766359ff796559ff796659ff786559ff847063ff837062ff7d6d5fff7c6b5dff38322cff6f5f53ff706055ff726155ff6e5d52ff726155ff6f5f53ff716254ff705f52ff716054ff726255ff6f6052ff706053ff6a5b4fff6b5d50ff6f6053ff746556ff6f6053ff6e5f52ff6f6052ff706153ff6c5e51ff6e6053ff6d6054ff6b5e52ff685a4eff66594bff665a4eff64584cff60554aff62554aff5e5248ff615449ff5f5448ff5f5348ff61554aff605448ff5b5045ff5b4f44ff5b5045ff594f44ff5a5046ff60554bff534940ff66584bff645749ff605245ff67584cff67594dff605247ff66584bff6b5b4fff63554bff6e5f54ff68594eff68594eff65564bff66574dff6d5e52ff706055ff6f5f54ff6d5d52ff6a5b4fff6f6054ff6e5d52ff6e5e52ff625348ff5b4c42ff625348ff5e4f44ff635348ff68584bff69594eff6a594dff68574cff665649ff6a594dff69584bff68584aff665548ff675549ff69584cff675649ff69574cff6b584cff68564bff69564bff6a574cff68554aff67554aff635148ff5e4c44ff52453cff705c50ff6f5c50ff705d51ff746054ff725e52ff7a6557ff766053ff766152ff796154ff755f51ff735e4fff7c6556ff776053ff796355ff7a6354ff816a5aff7e6858ff9f8340ffab8c36ffab8d37ffaa8c41ff937967ff967c6aff836e5fff90806eff998774ff9b8977ff988775ff9f8e7cffa08f7dff9c8c7bff968777ff998b79ff998a76ff9d8e79ffa08e7affa08f7cffa89784ffa99884ffa79887ffa59685ffa39483ffaa9885ffad9c88ffae9a85ffad9c88ffb5a38fffb09f8affa99884ffac9c8bffaa9a89ffab9b8affa99887ffab9988ffaf9e8bffae9c8affbaa593ffb4a08cffb3a18cffb8a691ffb7a590ffaf9d89ffb9a692ffb6a490ffb9a794ffac9b88ffb3a18fffb7a493ffb19f90ffa59487ffb3a190ffb09e8cffaf9d8bffbaa996ffaf9d8bffad9c89ffb09e8bffaf9e8bffae9d8affa89887ffac9885ffb09f8affb19f8bffad9c89ffb7a490ffaf9e89ffb09d8affb6a28fffaf9d89ffa79683ffae9c88ffab9886ffaa9785ffae9e88ffb09e88ffac9b87ffad9b88ffb09e8bffab9a86ffab9985ffa79782ffa79683ffa99885ffa89683ffa69583ffa69683ffa79884ffa89985ffa89785ffa59482ffa99885ffa79684ff9d8e7eff9c8e7dff9c8e7cff998a78ff9a8c79ff9e8d7bff9f907dffa0907eff9f8f7dff9b8d7cff988978ff938676ff9b8c7aff9b8c7aff9b8b79ff9a8b7cffa0917eff988978ff988a78ff958878ff948677ff918273ff8f8070ff9a8977ff706152ffa69480ff8e7869ff846f61ff907964ffb3963affb19439ffb3973bff887365ff867162ff816e61ff7b675aff7f6a5dff847060ff887364ff7e6b5eff7a685aff7e6b5fff7c6a5dff7f6d60ff7a695cff7a685bff7a685bff89776bff857266ff776659ff726256ff39302aff67584eff6e5f53ff705f54ff716055ff6c5c50ff766557ff6e5e51ff63554aff6a5a4eff645549ff5f5146ff6f5e52ff65564aff605246ff635549ff6b5c50ff6a5c50ff67594dff68594cff695b4eff6f6155ff6b5e51ff66594cff6a5c51ff64574bff66584bff605448ff594d42ff615449ff5b5044ff584d43ff5a4e44ff574c41ff5b4f44ff584c41ff52483eff4f453cff554c3fff584d41ff5a4e43ff5c5248ff5f544aff51473fff6b5c4fff655749ff685a4dff65574bff635549ff6a5c4eff69594dff67574cff605348ff6e5e54ff6e5e52ff67594dff685b4fff65574cff716156ff6c5d51ff6d5e53ff6b5d50ff68594dff746457ff756356ff716155ff6d5e51ff68574dff7e6d60ff695a4fff705e51ff69594dff69584cff6a5a4dff6a584cff6a584cff6a594dff6a594cff69584bff6a584bff665548ff675549ff6a574aff67574aff68564aff69574aff6a584bff6b594dff69574bff695549ff604f45ff5b4b41ff4f433aff6c5a4fff69574cff715e52ff796559ff715f52ff796456ff7c6657ff776053ff786153ff705b4eff7b6454ff715c4eff7b6455ff786153ff7f6757ff88705fff8b7361ff907764ffa6893bffaa8b35ffb0903affb1933dff917866ff927968ff816e5fff9a8977ff978574ff9b8977ff998978ff9d8c7aff9d8d7bff968878ff9c8e7affa0907cffa1907bffa5947fffab9a85ffaa9985ffa59482ffa79787ffa39382ffa39382ffa79785ffab9b88ffab9883ffac9b87ffa79784ffad9b86ffa89784ffa39382ffa89885ffac9c8bffaf9b8bffaa9887ffac9a88ffb09e8cffaf9e8bffb5a18fffb6a38fffb8a692ffb19e8bffa89783ffa99985ffaf9e8affb5a390ffb4a390ffb5a490ffb8a593ffb5a492ffaf9e8dffad9d8dffb1a08effad9c89ffaf9d8bffb3a28fffaf9f8affae9e8affaf9e8affb9a792ffac9b88ffb4a08bffaf9e8affad9c88ffab9986ffad9b89ffb4a38effb19f8cffb4a28fffb6a490ffa99885ffaa9986ffab9986ffa99784ffac9c87ffa79682ffa89684ffa89784ffac9a87ffaa9785ffaa9985ffaa9886ffa79584ffa99786ffac9b89ffa49381ffa59682ffa99884ffa79885ffa79785ffaa9a88ffa59583ffa69583ff9f9180ff9a8d7dffa39481ff9e8f7dffa2917fffa79784ffa89785ffa0907fff9d8c7bff9a8b7bff968776ff998978ff998978ff958676ff978776ff958778ff958676ff9c8d7cff968777ff8c7f70ff928575ff998b7aff998978ff756657ffac9986ff897264ff8c7667ff8d7769ffb19338ffb09035ffb19437ff8e7869ff8b7666ff90796aff7b675bff816d5eff826d5eff7b6759ff806c5fff7d6b5dff7d6a5eff796759ff816d61ff837163ff7a695dff7a685cff7c6a5dff827063ff816f63ff79675aff6d5d52ff39312dff67584fff67584dff69594fff6e5e52ff746257ff6f5f53ff66574cff68584cff635448ff67584bff615346ff5e5045ff65564bff615348ff625549ff63564bff67584dff66584dff65574cff5f5248ff6a5b4fff6e5f53ff706257ff6a5b4fff64574aff65584bff63574cff584c41ff5e5144ff5a4e43ff5c4f43ff5d5145ff5f5246ff53493eff51473cff594d43ff5a4d42ff52463bff564b40ff534840ff584d44ff5c5047ff4e453cff6b5b4dff655649ff625447ff695b4eff6a5a4dff6d5d50ff6b5b4eff706053ff61564bff706256ff6d5d53ff6c5d52ff6c5d51ff705f54ff756458ff6c5e52ff6a5c50ff6d5e53ff6e5f53ff766659ff736357ff756357ff736154ff6f5f53ff7c6a5eff6e5f54ff766459ff79675aff7c6a5cff746356ff6e5c50ff6c5b4eff6b5a4eff6b594dff68564bff6b594eff69584bff6e5c4fff6b594cff69574aff6c584dff6b594cff6e5b4eff6f5b4eff685549ff6d594cff67554aff5b4b42ff4e4139ff655349ff68574cff735f52ff756154ff7a6457ff776355ff7b6557ff7f6959ff756051ff755f51ff756052ff776152ff755f51ff826a5aff7b6657ff7d6658ff887261ff8e7564ff836b5cffa78a43ffae913bffaf913affb0913dff937968ff907666ff826f61ff968672ff8f7e6eff998978ff9a8977ff9e8d7aff988878ff9b8c79ffa2937effa2927effa4937effa99982ffae9d89ffa99887ffa59382ffa49381ffa49481ffa29381ffa89885ffa89683ffa99783ffad9c85ffb4a28cffad9b88ffa69684ffa79785ffaf9e8cffac9a88ffa49482ffa79684ffa79684ffa89685ffab9887ffb5a38fffaf9d8affb09e8bffb09f8affa79683ffa89785ffa89885ffab9a87ffbaa894ffb4a090ffb1a08dffb9a994ffb3a290ffb1a18effaf9e8bffb2a08effab9a87ffb0a08cffb8a692ffb6a690ffbbaa93ffb09e8affae9d89ffb7a591ffb8a694ffae9e8bffa79887ffab9b89ffb8a893ffb2a18dffb19f8cffaf9e8affac9c8affaa9a86ffa99985ffb3a18dffac9c87ffa89685ffa89685ffad9b88ffad9987ffac9b86ffb09d89ffac9a88ffaa9888ffa59484ffa99887ffa79583ffa89682ffa79684ffa49482ffa59786ffa99987ffa59583ffa39482ff9b8c7eff9c8e7cffa0917fffa19281ffa0917fffa59583ffa39482ff9d8d7dff9a8876ff988976ff9b8c79ff958775ff948573ff928474ff938574ff9b8c79ff9b8c7aff908272ff807364ff847766ff9c8d7bff837362ffaa9783ff897263ff897364ff968066ffb79c41ffaf9135ffb09338ff887365ff897566ff887365ff847063ff7f6b5eff7f6a5dff836e5fff7e6a5dff796658ff7d695dff79665bff7b6a5dff7e6b5eff78685bff816f62ff7c6b5eff776659ff806e61ff6f6054ff76655aff716155ff37312cff6c5c51ff695950ff6d5d52ff6c5c50ff716155ff736357ff716054ff6b5b50ff695a4eff635448ff67584bff65574aff625348ff65564aff685a4dff6a5b4fff6f6154ff6d6053ff66584dff6a5c50ff685a4eff6a5c50ff67594cff66584bff65594cff63574aff63564aff63564aff5e5146ff5f5246ff5d5145ff625448ff5f5246ff5c4f43ff5b5045ff5b4f43ff584d42ff5e5348ff52483eff564b42ff52483fff594e45ff544a40ff695b4dff695a4cff6a5b4eff66584aff6a5a4dff706053ff6e5f51ff706154ff60564cff716257ff6b5c50ff6a5a4fff6e5f53ff6e5e52ff6c5d52ff6a5b50ff6a5b4fff756357ff6b5c51ff706053ff796659ff756356ff716054ff6b5b4fff7a685aff736256ff776659ff79685aff7b695bff7a695bff7e6a5dff7f6b5dff7d6a5cff7b685bff726154ff6c5b4eff69584bff6c5b4dff6e5c4dff69574bff69574bff6f5c4fff705d50ff6f5c4fff735f52ff6d594eff69564bff604d44ff5a4b41ff68564aff6a594dff756155ff796457ff766154ff786355ff7a6455ff7e6858ff776152ff796355ff7d6758ff766053ff80695bff796456ff806a5bff806a5bff866e5fff8b7363ff887162ff8e7768ffa78b49ffaf943effae9037ffab8e40ff8e7565ff917868ff847162ff928372ff928473ff988a78ff9a8a77ff9a8a76ffa0907cff9e8e7affa4937dffac9a85ffa99783ffaa9884ffaa9882ffab9886ffb19e8cffa59481ffa69580ffab9a87ffad9b88ffa2927effac9b85ffad9a85ffac9b87ffa2937fffa99785ffaa9784ffa89785ffaa9887ffad9a89ffa89585ffa89685ffab9b88ffb09f8cffb2a18fffaf9f8bffb2a18fffac9b89ffad9b87ffb7a490ffb7a390ffb8a493ffb6a291ffad9d8affaf9f8cffb9a693ffb7a692ffae9d8bffb2a08effb5a38fffb2a08cffb8a791ffb7a58fffbca994ffb6a48fffb19f8bffbaa792ffb7a592ffb1a18effaa9b89ffad9c89ffafa08effafa08dffb3a48effaf9f8affa99a87ffa79785ffb19f8cffb5a38cffa99a85ffad9c88ffb4a28fffa79784ffb19e89ffb29f8cffad9a88ffa69483ffa89887ffa49485ffa69684ffaa9887ffb09d8cffac9c88ffab9a87ffa39583ffa89986ffa69886ffa1927fffa79785ffa0917effa79784ffa69582ffab9b89ffa99885ffa79884ff9f8f7bffa59380ffa08f7dff9a8b75ff948571ff998a79ff928474ff928574ff938473ff918271ff7b6d5dff675b4cff807261ff6e6152ffa99683ff856f61ff907868ff8f7861ffb3963affb4973bffb09337ff8e796aff917a6bff8c7667ff846f60ff897465ff816c5eff826e61ff837061ff806c5fff7b685bff806d60ff7b675bff796559ff816c5eff7c6a5dff806d60ff7e6c60ff806e61ff7b6b5eff746358ff736357ff78685cff39322cff6c5c51ff716156ff6d5d52ff726255ff716154ff716256ff6c5d52ff6d5e51ff66574bff66564bff66574bff645449ff5d4e45ff5f5147ff695a4dff695a4eff65574aff68594eff66584bff695b4fff6d5e52ff6b5c4fff66594cff695a4eff64564aff655749ff66584bff605347ff615347ff5c5044ff635649ff64574aff5e5144ff594c40ff5a4e41ff5c4f43ff5a4f43ff5a4e43ff5a4e43ff594f45ff544b41ff5e5349ff554a41ff6e5f50ff6a5b4eff6a5d4fff68594dff716254ff706154ff716154ff77675aff61554bff706256ff6a5b50ff6b5b50ff6d5d52ff69594eff756458ff736157ff726156ff6d5d51ff6a5b4eff695a4fff6b5c4fff6c5d50ff776457ff756557ff756456ff726153ff79665aff7b695cff796759ff7b695bff79685aff7c6b5dff7d6b5eff7b695cff79675bff6c5a4fff6b594dff68574aff715e4fff6c5a4dff69584cff6d5b4eff6b594dff6b574cff67554bff6d594eff68554bff625046ff594a40ff665449ff6f5c4fff725e51ff746053ff796556ff7b6758ff7d6859ff7f695aff816a5aff7f695aff806959ff816a5aff7f6859ff80695bff826b5bff887161ff816b5dff836c5dff866f61ff907869ff8f7667ffaa8c44ffb39641ffb3943dffb09140ff917768ff957a6aff857364ff938472ff9c8b79ff9c8b79ff988775ff9b8a78ff9c8c78ffa2907affa99783ffa89683ffaa9784ffb4a28fffaf9b88ffae9b89ffa49282ffa49382ffa79584ffac9988ffac9a87ffaa9984ffac9a86ffa79683ffa89685ffa69584ffa49583ffa99786ffaf9e8bffaf9d8affae9b8affaf9c8affae9c8affad9b8affb19f8dffad9c8affa09180ffab9b89ffaf9d8cffb7a592ffb4a290ffb6a08effbba896ffb5a391ffb4a290ffaf9d8cffb3a08effb5a491ffbaa893ffbeab96ffbeab96ffbba994ffb5a38effbdab94ffc0ae97ffbaa691ffb7a48fffb29f8affaf9e89ffb2a08cffb5a491ffb2a08effb5a494ffb9a896ffae9f8affae9f8dffac9c89ffab9a87ffae9c89ffab9b85ffac9b87ffa79887ffaa9988ffab9a87ffb39f8bffab9b88ffaa9887ffa99787ffab9989ffab9a8affa89787ffa69684ffa1907effaa9a88ffa69784ffab9b88ffad9c8affa69584ffa19181ffa0907fff9d8e7cff9f8e7cffa99886ffa49382ffaa9a87ffa79884ffa08e7bff988977ff978876ff978977ff938675ff958574ff928573ff928574ff807262ff6a5d4fff6f6253ff625748ff998775ff8a7263ff8f7768ff8e7768ffb49539ffb19339ffb2963bff897367ff937d70ff90796cff8b7669ff8b7567ff826f62ff7f6b5fff877063ff867163ff857063ff7d6b5cff7e6a5dff7b685bff7d6b5eff806d61ff79685cff867266ff857265ff847366ff77675bff736357ff736155ff817164ff39342eff736458ff726056ff716054ff736357ff746357ff79695cff76665aff726255ff6c5b4fff726153ff6a5b4eff695a4dff6a5c4eff67594cff68594dff67584cff64574dff685a4dff68594dff726356ff716355ff695c4fff695a4eff625347ff605348ff675b4eff605446ff615547ff5c5044ff615448ff645749ff5e5244ff615547ff5c5044ff5c5044ff5c5044ff605448ff5d5246ff5e5246ff5b5147ff5b5148ff574c43ff51463eff6d5e50ff726254ff6d5d4fff6c5c4eff726355ff746557ff756456ff756558ff5e5449ff66584dff6a5c51ff6b5c51ff6e5f53ff695a4fff766559ff736457ff6e5e52ff67584dff6c5d51ff706054ff746357ff6b5b50ff7a695cff7b6859ff826f5fff7a6759ff806d5fff816d5eff796759ff7a685bff7d6b5eff7f6d5fff7f6b5fff826e62ff7a685bff6e5e51ff6a594dff6e5c4eff6b5a4cff6a594dff705d51ff705d51ff6d5a4dff715d51ff6e5a4eff725e52ff705b51ff645148ff54463dff6d594eff6f5c4fff715d51ff7e695aff7c6758ff7c6759ff7e695bff7d6759ff816b5cff846c5dff846d5eff826c5cff866f5fff836d5fff866f61ff857060ff887062ff866e5fff8b7365ff8f7769ff907769ff93796cffaf9246ffb3953effb4943cffb5953bff927768ff957a6cff887768ff9b8a77ff998a78ff8f7f6fff907f6eff95856fff9a8976ffa4917fffa69481ffaa9784ffad9b88ffb09d8bffad9a88ffa59583ffa49281ffa89582ffa69483ffad9b89ffad9c88ffa89884ffa89988ffa59482ffa89685ffa89785ffac9a88ffad9b89ffb1a08cffb09e8cffb29f8dffaf9e8bffb29f8cffb29f8dffb4a28fffb0a08effb6a592ffab9a89ffb6a492ffb9a594ffbba795ffbda997ffab9989ffb5a491ffb7a492ffb7a392ffb6a491ffbaa894ffb4a290ffb2a18fffb1a08dffaf9e8affb19f8affb6a38effbaa58fffc0ad97ffaa9784ffad9987ffae9a89ffb6a391ffb5a391ffb2a08effb2a08effae9d8affaa9887ffa69786ffb29f8bffb09d8bffae9c88ffaf9d8affb3a18effaf9d8bffae9e8affaa9786ffb19f8cffb8a590ffa29283ffaa9988ffad9a8affa99987ffa49282ffa39281ffa89785ffa59583ffa69684ffae9c8affa49383ff9c8c7cff9e8f7bff9b8b78ff9f8f7dffa59583ffaa9885ffa1917effa39481ffa79684ff9a8b79ff9a8c7aff958675ff948473ff948473ff988976ff817362ff6c6050ff6a5f50ff65594bff9b8a78ff947b6dff937b6dff9a826effb5973affb6983cffb4963bff8b7467ff907a6cff957e71ff978071ff90796cff8d796bff8e786aff846f62ff816c60ff846e61ff836e61ff857063ff7d695cff816d61ff7b685cff816e62ff7c6a5fff877366ff7e6c60ff816f63ff847266ff776559ff7c6c5fff816f64ff3d3630ff716056ff726256ff776558ff79675aff746457ff736355ff77675aff746357ff746457ff706154ff746457ff6f5f52ff6c5d51ff6e5e52ff6b5c50ff726255ff6a5d50ff6a5c4eff706054ff726357ff746657ff716456ff6d5f53ff6f6255ff685b4eff665a4eff6c5f51ff605246ff605446ff625548ff645749ff615647ff5e5345ff64574aff605448ff594e42ff5f5348ff5f5347ff5f5145ff64584dff554b43ff5a4f45ff534840ff6b5c4fff6d5e50ff716153ff736456ff6d5e51ff6f6154ff746558ff726357ff61554aff6d5e53ff6f5f54ff6f5f54ff726256ff716155ff756559ff716255ff716054ff615247ff6e5d51ff6d5d4fff64574cff736355ff7c6a5bff7d6b5dff847162ff7e6c5dff826f61ff847162ff847060ff7d6c5eff867364ff816e60ff816d60ff7f6b5fff756458ff705f53ff6c5b4eff705f52ff6f5d50ff726052ff705d52ff6f5c50ff715e51ff6a564bff6d5a4fff6f5a4fff725e51ff635147ff584a3eff6c5a4eff705d51ff756155ff7b6659ff7d685aff786457ff7e695bff7e685aff7d6759ff7f695bff856e5fff7c6759ff7e695aff806a5cff846d5eff806a5cff897061ff897162ff8f7666ff8a7263ff8d7566ff92786aff967c6effac8f4dffb3943dffb79840ffb39547ff927769ff917768ff887567ff8c7d6dff8f7e6dff817263ff897866ff958371ffa79482ffaa9785ffa99683ffab9986ffa49482ffab9887ffaa9886ffa89785ffa59280ffaa9786ffa89685ffa59584ffa99987ffa59786ffa79684ffad9b89ffaa9786ffaf9c8bffb2a08dffb29f8dffb19e8cffb39f8dffae9b89ffb5a28effb6a390ffb3a28fffa59887ffb1a28effae9d8cffae9d8cffb7a492ffb8a492ffb9a694ffb8a593ffb6a491ffb5a390ffb7a592ffbaa793ffb8a692ffb9a692ffb6a693ffb6a493ffb2a18effb09f8cffaf9d89ffb8a48fffb7a490ffa89785ffaa9785ffac9888ffaf9c8bffb09e8dffb2a18fffb09d8cffaf9d8bffae9d8bffab9988ffb6a28fffb5a390ffae9c89ffb09e8bffae9d8affb09e8bffb09f8bffa89585ffaa9886ffa99886ffa79786ffa59484ffa69583ffa79783ff9f8e7effa59483ffa29383ffa59584ffa69585ffa29181ffa39282ffa39383ffa2927fffa29180ffa2917fffa89885ffa79683ffa08f7cffa49481ff9c8e7cff9f8f7eff9d8e7cff988977ff958473ff988876ff887967ff716454ff77695aff665a4dff8f8070ff987f71ff8e776aff9c826affb89a3fffb79a3fffb6983dff947c6eff927a6cff957c6fff90796cff8e776aff917a6dff907a6dff8f786bff8e786aff8b7568ff8d7669ff816c5fff867063ff846e62ff7b665aff7c695cff7b6a5dff7f6c60ff816e61ff857265ff827063ff877569ff816e61ff79695dff7c6b5dff433a33ff746358ff78665bff77665aff756559ff79685bff77665aff7c6b5dff736458ff6f5f52ff6c5d51ff736356ff6f5f53ff736356ff706054ff6f6053ff6d5e52ff6d5f52ff695b4eff6f5f53ff6e5e51ff6b5e51ff6c5e51ff706257ff685a4eff6b5e52ff6c5f51ff675d4eff63574aff625648ff635748ff625849ff5e5446ff605448ff64584bff635649ff64584bff5e5247ff605448ff61554aff5f5549ff484037ff564b41ff574d43ff6e5f52ff6b5b4eff6f6052ff766859ff77675aff756659ff766659ff726357ff63584dff736558ff6f6154ff6a5c50ff736357ff716256ff746357ff6c5d52ff69594eff6b5b4fff6a594eff67574cff6c5b50ff766457ff7a685aff816e5fff857161ff847162ff816f60ff7b6a5bff857161ff816e5fff7c6a5bff826e60ff7e6c5eff786759ff7d6a5cff6b5a4eff6e5d50ff705e51ff746254ff705d4fff67564bff69584cff69574bff69574cff67574aff756154ff6f5b50ff66544aff56483eff6f5c50ff7b665aff7d6a5cff7e6b5dff7e685cff7b675aff756255ff7d695bff806a5cff806a5cff877264ff836e60ff816c5eff856f60ff856e60ff8b7365ff897263ff897264ff846c5fff917869ff947b6cff957b6dff957a6cff967c6effad904bffb6983fffb6983dffb49648ff947b6bff93796aff8b7768ff928272ff807061ff81705eff8c7b68ff968674ffa3917fffaa9785ffaa9582ffa99583ffac9987ffa59381ffa69482ffa69482ffa39280ffa49382ffa29382ffa69786ffab9989ffa69684ffb09e8cffae9a8cffa79486ffaf9b8affb8a492ffb39f8effb19d8bffae9a89ffb9a591ffb1a08effb5a392ffb0a08dffb0a08effb09f8effb7a693ffb5a491ffb8a592ffb3a291ffb5a492ffb8a694ffb9a895ffb7a693ffbaa996ffae9e8cffb6a592ffb2a290ffad9e8cffb5a692ffb2a190ffb3a290ffb6a591ffb4a28effa79686ffab9a87ffae9c89ffac9a89ffad9c8affb4a491ffae9b8bffb19f8dffb19f8dffb39f8fffb8a593ffb4a290ffb39f8bffb29f8cffad9c8affad9a89ffac9988ffa99786ffa89785ffa79784ffa89885ffa69686ffa39480ffa89683ffa3917fffa49280ffa19080ffa49484ffa49485ffa29283ff9f8e7effa79685ffa49382ffaa9984ffa59480ffa49482ffa59381ffa2907eff9f8d7bffa08f7effa1917fff9d8d7cff9a8a79ff968675ff8d7d6dff766859ff786a5bff726556ff9d8e7bff977e6fff9c8375ff937c6effb89c41ffb8993cffb4963bff947e70ff927b6dff8e786bff988072ff927c6dff957e70ff937c6fff957d6fff947e71ff8d7769ff8c7669ff857063ff8d7669ff897264ff847061ff7d695cff806b5cff7d6b5dff826f62ff7e6d61ff7e6c5fff7e6c5fff847265ff847266ff7f6f63ff7d6c5fff403832ff78665cff766459ff766458ff746459ff7b6b5fff7d6c60ff746458ff756558ff77675bff736356ff746558ff706256ff716256ff695a4fff6c5e52ff736458ff736457ff6d6053ff756659ff706255ff706256ff6d6053ff706255ff76675bff695b50ff675a4eff6d6051ff5f5347ff5d5245ff6c5d4fff6a5d4fff63584aff605347ff594d42ff675a4dff605549ff62564aff5f5449ff605449ff62564cff584c42ff5a4f45ff5a5045ff6f5f53ff736355ff6e6052ff726255ff756659ff6b5e52ff685b4fff746558ff61564bff726457ff6f5f53ff6d5c50ff706054ff726256ff746457ff766558ff766457ff6c5b50ff705f53ff746357ff746256ff6b5b4fff796859ff7d6b5bff7d6a5cff7f6b5cff806d5eff7f6d5eff7f6c5dff7d6b5cff7a685aff826f60ff847162ff7b695bff756456ff705f51ff6f5d50ff6d5a4dff736051ff705c4eff665448ff6a584bff6c594cff705f52ff69584cff715e50ff705d51ff655249ff584a40ff736054ff7c675bff7a6659ff7c675aff7f6a5cff7c675aff746154ff7e695bff7c675aff856f60ff856f60ff897263ff856e60ff856e5fff867061ff8b7466ff8b7264ff8b7264ff8e7567ff8b7263ff907667ff927869ff957a6bff92786aff967c6dffb69945ffb4963cffb7983cffb9983dff927768ff937869ff8d7c6dffa3927fff867665ff80705fff887766ff978572ffa5927effa3917fffa28f7cffad9a88ffa49382ffa99683ffb09c87ffb09d89ffaf9d8cffa99888ffac9c8affa99788ffab9b89ffaf9e8effaa9789ffa99888ffaf9c8affae9b89ffb6a290ffb3a191ffb29f8dffb3a08fffb2a18fffb2a290ffb1a18effb5a292ffb3a593ffb6a795ffbeab99ffbdab98ffb6a290ffb4a08bffae9a86ffbca792ffb4a491ffb8a794ffb0a08effb3a28fffb0a18effb1a08fffaf9f8effb3a392ffb2a290ffb9a895ffb1a08dffae9f8dffaa9887ffaa9988ffad9b8affaf9b8bffb5a38fffb1a08cffb8a693ffb7a492ffae9c8bffa99886ffb4a18fffb3a18fffb2a28effaf9e8bffb19e8dffb09d8cffab9988ffab9988ffa99686ffa59482ffa89887ffa69583ffa59482ffa89985ffa29380ffa69584ffa49583ffa29283ff9f8f7fffab9989ff9f8e7effa39282ffaa9886ffac9a86ffa28f7effa79681ffa29180ffa19080ffa2917fff998a7affa1907effa18f7eff9c8a77ff867566ff77695bff6f6254ffaa9886ff947e6fff9f8778ffa08776ffb99e43ffba9e42ffb59a3fff957f6fff957d6eff917b6dff947d6eff988171ff8a7465ff907869ff957e6fff917b6bff917c6dff917b6dff8d7769ff8b7769ff877263ff846f60ff836d5fff806c5dff867163ff836f62ff7e6c5eff8e7a6bff816f61ff7c6a5cff837264ff847165ff756558ff78675bff3d352fff79685dff7c6b5fff7a6a5dff7e6e61ff7c6e60ff7e6c5fff756459ff746358ff756559ff7f6e60ff7c6c60ff6e6055ff706256ff6f6256ff746558ff716255ff706154ff746456ff706255ff64574aff6b5d50ff736356ff756658ff706255ff6f6053ff66594dff67594dff665a4cff5f5447ff635749ff6a5c4fff675a4dff62564aff5e5247ff63594cff61554aff63574cff5e5349ff5d5147ff63584cff564d43ff5f5449ff554b41ff6f6052ff706154ff716255ff6d5e52ff766558ff736355ff726256ff756558ff60554aff63544aff6d5d52ff746458ff766559ff7c6a5cff7b6b5cff7a685aff736256ff7b6a5bff79685aff746457ff79675aff766558ff7c6a5cff816f5fff816e5fff7d6b5cff7e6c5dff7e6a5bff816d5eff846f60ff816e5eff857060ff867262ff7f6c5cff7d695aff6f5e4fff6c5a4dff735f50ff735e50ff715c4eff69584bff665649ff6e5c4eff725f51ff645247ff68574bff6e5b4eff655348ff5d4d43ff725f52ff766154ff796559ff7d685bff7d695bff796456ff7c6758ff7a6556ff806b5cff7e695aff816c5dff836d5eff776357ff856e5fff866e60ff816a5dff816a5dff876f62ff8b7365ff8f7567ff907768ff947a6bff907667ff927869ff967d6dff967d6dffac9047ffb6983effb89b3fffb69743ff8f7565ff997f70ff927f6fff9d8b7aff7e6f5eff6e6052ff7a6b5bff8b7b6bffa49280ffa3917fffa29180ff9e8d7bffa08e7cffa99684ffb2a08effb5a492ffb3a190ffac9a8affaf9e8cffaa9a8affaa9b8affb1a08dffb09c8bffae9a86ffac9a88ffb19d8cffaf9b88ffad9b89ffaf9e8effae9c8cffb5a290ffb8a694ffbba999ffb1a08effb3a391ffbca999ffb9a895ffb5a28fffad9b89ffa89785ffad9d8affb2a08effb5a592ffab9b8affb09e8effa99988ffb3a291ffb4a492ffb3a390ffb09f8cffab9b8affad9c8cffaf9d8effad9b8affb2a38dffad9988ffab9b8affad9d8bffad9d89ffad9987ffad9b8affae9d8cffac9d8bffb29f8dffad9d8bffb09e8dffb2a08effaa9987ffa99786ffa99787ff9f8d7dff9f8c7cffa08f7cff9c8b7affa49281ffa39181ffa39280ffa29281ffa69783ffa69685ffa29280ff9e8e7dffa79485ffa69484ffa69484ffa49282ffa29180ffa29180ffa49382ffa19080ffa39383ff9d8e7dff988979ff988978ff918171ff857567ff88796aff7c6d5fffa69584ff937c6dff97806fff9a8267ffbb9f41ffbb9f42ffb79a3dff987f70ff988272ff927b6cff8c7667ff937d6dff927c6dff957e6fff957e6fff97806fff907a6bff8e786aff917b6cff8e7769ff8a7565ff8d7768ff887465ff806c5eff826c5eff867060ff7e6c5dff826f61ff887466ff7e6c5fff7a685bff806e60ff7e6d5fff7f6e60ff79685bff3a332eff77665cff7f6c60ff77675bff7b6a5dff766558ff76665aff706053ff756558ff756558ff776659ff756659ff746458ff716256ff706055ff736357ff716356ff6b5b50ff6f6054ff6d5e53ff706154ff706255ff74675aff6e6154ff6e5f52ff6d5f53ff665a4eff675b4fff5c4f43ff64564aff685c4fff685b4eff615448ff61554aff61554bff5d5046ff60554bff62574cff60564bff61554bff63584dff574d43ff594e44ff574b41ff6f6054ff746457ff716355ff726355ff746457ff736357ff746558ff7a6a5cff5d5147ff5e5148ff76655aff79675aff756457ff756457ff7c6c5dff7f6d5fff766658ff726355ff79685bff786659ff766558ff7b6a5dff79675aff7b6a5cff7f6c5dff7b685bff7e6c5eff847162ff857263ff847162ff857262ff867364ff887464ff836f5eff7c6a5aff715e4eff6e5a4cff725f51ff68564aff69564aff69564aff6d5a4cff6d5b4eff6e5c4fff6b594bff69574bff6a594cff665549ff56483fff715e52ff725f53ff746155ff7d695bff7e6b5cff7f6a5cff816b5cff7f6a5bff7d6759ff856d5eff836d5eff836d5dff856f60ff7e685aff826b5eff856d61ff836b5eff826b5eff8c7466ff8c7366ff897163ff907768ff907868ff927869ff927969ff907868ff927969ffab8f48ffb89b3fffb79c3effb49949ff977f6cff967d6cff9f8c7aff9f8d7bff6e6050ff64574aff827162ff9a8877ffaa9785ffa39180ffa2907fffa59382ffab9987ffad9c8affb3a190ffac9b89ffa89786ffb4a290ffa89887ffaa9a88ffaa9987ffac9988ffb09c87ffa79584ffb6a18fffbaa591ffac9a88ffb4a391ffb9a795ffbfae99ffc0af9bffbcaa98ffb4a390ffb3a290ffbca997ffb9a796ffb9a694ffb4a291ffb2a08effb2a08dffa89686ffad9d8affa89787ffaf9e8dffb29f8fffb3a290ffb4a391ffb4a290ffb5a391ffb6a492ffb1a090ffac9a8affa79585ffa99686ffb4a08fffab9888ffad9b8affb19f8cffa59281ffa79885ffa79884ffa59681ffae9e8affb0a18fffb1a18fffad9c8bffaa9a88ffa79685ffab9987ffa99586ffa59182ffa18f7fffa59382ff9c8b7affa08f7effa89585ffa19180ffa29080ffa69583ffa69684ffa1917fffa69482ffa39381ffa19180ffa08e7effa28f7eff9f8d7dffa99787ffa69584ffa09182ffa49585ff9a8b7bff988878ff8a796bff908070ff76695cffb2a08fffa08878ff937c6eff99816affbc9e3effbea143ffb99d3fff957e6fff927b6dff967e70ff937d6eff90796aff8c7668ff957f70ff917b6bff8e796bff998373ff917b6bff8e7869ff90796aff887365ff8b7566ff8a7465ff8d7768ff8d7869ff887364ff877364ff7f6b5dff827062ff836e62ff7a685aff7f6c5eff7a6759ff7f6d60ff766559ff756458ff3d352fff79675cff817062ff806e62ff7e6c60ff7d6c5fff7b6a5cff7f6d60ff726255ff746356ff6c5d51ff78675aff756659ff6f6154ff736558ff6e6154ff6e6054ff6c5d51ff6d5e51ff736357ff746557ff6d5f53ff716356ff6c5e52ff67594cff695c50ff655a4eff675b4fff63564aff615549ff64574bff685d50ff63574bff62564bff63584cff5c5248ff62564cff594f45ff5f5449ff5c5147ff61584cff534940ff53483fff5a4e45ff716356ff736457ff75685aff726356ff756557ff78685bff78685bff7c6b5cff574d43ff5b4f46ff716155ff78685bff766557ff756457ff7d6c5eff7b695bff766357ff726154ff766457ff796759ff7c6a5dff78675bff7b695dff7b685aff786659ff796759ff816d5eff7d6b5dff7f6d5fff897566ff897465ff887565ff836e5fff836f5fff816c5cff725f50ff726050ff725f50ff6c5a4dff665548ff645449ff68584cff736053ff6e5b4fff67554aff6f5c4fff705c4fff655347ff584b42ff736154ff7b6759ff786457ff7f6b5dff7d695bff826f61ff7e695bff867062ff806c5eff877060ff7b6658ff897263ff836f5fff816c5eff806b5eff826c5eff876f62ff866f61ff8a7365ff8a7366ff8a7264ff8b7365ff897264ff8f7768ff8c7567ff8c7667ff917b6cff90796affb29643ffb5993affb7993bffba9d41ff9d8573ff97806fffa79380ffa5907eff7f6f5fff877666ff9a8877ffa4907fffac9886ffa28f7fffa89485ffac9b89ffb1a08effb2a18fffab9a88ffb3a18effaf9b8affac9d8bffab9c8bffa89887ffa69585ffab9884ffa89683ffaf9c89ffb6a28fffb09e8cffb4a391ffb8a694ffbaa794ffbcab97ffc1af9cffb9a894ffb3a18fffbdaa98ffb09d8cffae9c8dffb09f8fffb2a08fffad9a89ffae9b87ffa79686ffaa9987ffb1a08effac9c8cffae9c8cffae9d8cffb19f8dffb5a290ffb3a090ffb7a595ffb09e8dffa99787ffb09d8cffb49f8fffad9989ffad9988ffb09c8affad9986ffac9c88ffb3a08bffae9c87ffa89886ffad9e8dffaa9989ffa69686ffa49483ffa29081ffa59483ffaa9787ffb39f8effaf9c8bffa79484ffa39181ffa69483ffa2917fffa2927fffa59381ffa08e7effa1907fffa0907fffa99683ff9f8f7dffa1917fff9e8d7cff9d8a7bff9d8c7dffa49484ffa89786ffa09183ffa59586ff9f9181ff958477ff978677ff7b6d60ffaa9a8cff9a8376ff9b8475ff9f8778ffbea444ffbfa548ffb89b3cff9d8576ff9f8676ff927c6dff927c6dff8f7869ff957e71ff8c7568ff947d70ff937d70ff90796bff8d7769ff8a7568ff8e776aff8a7568ff8b7567ff897466ff856e5fff877164ff846e60ff826e60ff827061ff7b695bff7d6b5eff806e61ff766457ff78665aff756356ff7e6b5eff77675aff79695cff3f3731ff77655bff78685cff7f6f62ff807163ff7b6b5fff76675bff7f6f61ff7d6c5fff79695cff7c6d60ff716255ff766659ff726154ff756658ff706155ff736458ff796a5dff6d5e51ff76665aff716255ff726356ff706155ff6c5f54ff6b5e52ff6b5d52ff695d51ff6c5e52ff685b4fff6a5d52ff6a5e52ff675b50ff685b4fff665a4eff65594eff62564aff5e5248ff64584dff61564bff5f5349ff685c50ff483f38ff544a42ff60534aff736357ff75665aff7b6c5fff79685bff77685bff77685aff706254ff77685aff594d43ff5f5247ff6b5c50ff756557ff786659ff7b6a5dff806e61ff7d6b5dff7d6b5dff7b695dff7a685cff7b6a5dff7a695cff776559ff7b695dff7a6a5dff79675aff7a695cff7c6a5dff7b695cff806e5fff826e5fff837061ff8b7767ff7c685bff837061ff857162ff716152ff67574aff6e5c4fff68564aff635247ff635247ff6f5c50ff6f5c4fff6a584cff6d5b4eff68574aff6a584dff67564aff56493fff736054ff7d685bff786558ff7e695bff7e6a5dff806b5dff7d6a5cff816c5fff806b5dff816c5fff857061ff7b675aff7f6a5cff7a6558ff826d5fff816c5fff826c5dff856f60ff897263ff8d7566ff887264ff8c7567ff8b7566ff8b7668ff887264ff8a7467ff937c6dff937c6eff947c6dffb19445ffb9993cffbc9d3effbc9d40ff9d8271ff967b6cffa28d7cff998777ff948271ff988675ff9f8d7bff9f8c7cffa59281ffa79582ffa99784ffab9987ffa79584ffaf9d8bffab9987ffae9d89ff9c8b7dffa89786ffa89885ffa49481ffa89885ffaa9a87ffb5a390ffb09e8cffb7a592ffb4a390ffb5a491ffb8a794ffbba897ffb7a796ffb4a390ffbdab98ffb7a592ffb3a08bffaf9f90ffab9988ffab9987ffae9c88ffb09e89ffb19e89ffb6a490ffb4a390ffb6a491ffb1a08dffb19f8cffb09f8cffb3a28fffb4a18effae9e8affae9e8affaf9f8cffb0a18effb1a090ffb09d8bffb19d8cffb4a18fffb6a28effb2a08bffb2a08bffaa9a86ffa59888ffa39483ffa49385ffa49585ffa59786ffa39382ffa29180ffa99686ffad9b8affaa9887ffa79586ffaa998affa69584ffa2917fffa69482ffa59582ffa39381ff998977ff9d8d7aff9b8c7bff9d8c7bffa08e7dff9c8b7bff9a897aff9a8b7cff9b8c7dff9b8b7effa19283ffa19383ff9b8b7dffa69583ff938272ffbaa897ff9f8676ff9d8575ff9a846bffbaa03fffbda13fffbea242ff9a8375ff8e786aff957f70ff8c7769ff927b6dff907a6cff8f796bff90786aff957d6fff957d6fff90786bff816d60ff8c7669ff8b7568ff846e61ff856f63ff8f776aff8f776aff867063ff826c61ff826e62ff887567ff806f61ff806e61ff7c6b5eff746358ff77675bff79685cff746558ff7b6c60ff79695eff3f3931ff706056ff79695dff746459ff78695dff7a695cff78685bff746457ff75665aff726257ff77675aff78695bff736557ff766759ff79695cff77685bff736456ff746357ff756557ff736356ff726456ff706154ff716256ff6d5f52ff6a5d52ff685b50ff665b4fff675b51ff6a5d51ff675b50ff665a4fff695d51ff63574cff685c51ff695d51ff64584eff66584dff675b50ff61564aff61564bff62574cff483f38ff4f443dff594f45ff75655aff756559ff7c6c5fff7a695dff78685bff746558ff78685bff796a5bff574c43ff61544aff6a5b4fff736355ff756457ff76675aff806f61ff7c6c5eff827063ff7d6c5fff7b6a5dff7d6b5fff7e6c60ff7b695dff806e60ff806e62ff816d60ff7c6a5eff79685bff806e61ff806e60ff847162ff867162ff846f61ff826f60ff877363ff806d5fff6e5d50ff6d5c4eff725f51ff69574bff69574cff635348ff68564bff6e5c50ff6e5b4fff68564aff6a594dff66544aff625248ff52453cff736053ff7b6759ff796558ff786458ff7b6759ff806b5cff7e6a5dff826d5fff7d685bff856f60ff836d5dff7e6a5bff7a6558ff7b6658ff7d685bff806c5fff7e695bff7e695cff846f61ff8a7466ff8a7366ff887365ff8f7969ff8a7467ff8b7466ff887365ff907a6bff937b6cff927a69ff927969ffaf9148ffb99a3dffbb9b3cffb29242ff917766ff987e6eff8c7869ff847263ff94826fff9a8977ffa2907effa49280ffa59382ffa59481ffa49381ffab9a85ffac9b85ffad9a86ffae9d8affae9c8bffad9c8bffaa9a88ffae9d8bffa99986ffac9c8affac9c89ffb4a391ffbaa793ffb6a38effb9a894ffb8a694ffb4a391ffb3a390ffb4a390ffb5a491ffb9a793ffb5a491ffb6a490ffb3a18effad9d8affb1a18cffaf9f89ffb3a18cffb8a892ffaf9f8cffb7a791ffad9d89ffaf9e8bffb4a28fffb7a592ffb1a08fffaf9d8dffaa9989ffae9e8cffab9d8cffb0a08fffac9b88ffb3a08dffb4a18cffb4a18cffb3a18effb6a691ffafa08dffa89988ffa69587ffa89987ffa89a88ffab9b8affaf9e8dffafa08dffae9d89ffad9b89ffa99686ffaa9986ffa99686ffa59382ffa89785ffa89785ffa69484ffa49481ffa2927fffa1917fff9f8e7cffa3917fffa0907eff9c8c7bff9e8e7eff9d8d7eff9c8e7eff9c8e7dff9d8e7eff9b8d7eff9f907fff948270ffbfa995ff988273ff998374ff9c866cffbfa443ffbfa545ffbea140ff9e8778ff998173ff947d6eff8b7668ff8f796bff967f70ff8d786bff8c7568ff887065ff90786bff947c6fff917a6eff866f65ff8f786bff8c7569ff897366ff856f63ff8d7669ff8a7367ff887264ff856f62ff816c5fff867265ff816f61ff7f6d5eff7b695bff756558ff756458ff6e5d51ff7c6a5eff76665aff7a6a5eff433b34ff6d5e54ff76665cff7b6a60ff7b6a5fff746559ff77675bff756658ff78695dff75665aff7a6b5eff76685bff756558ff726356ff79695bff79695dff726357ff746457ff746457ff746559ff6f6156ff73665aff716256ff6f6257ff6f6155ff6c5f53ff675c50ff6d5f53ff665a4fff695c51ff64584cff6b5d52ff695d52ff665a4fff695d52ff675c50ff62564cff695c51ff5f5449ff63584cff63584dff484038ff50463dff574c42ff6f6155ff746458ff79685cff79695cff726354ff706153ff716254ff776658ff594e44ff5c5046ff695b50ff736357ff78685bff7e6e60ff7c6c5fff7f6f61ff7a695dff79695cff7b695dff78675bff7c6a5eff7d6c5fff7f6d60ff806e62ff7f6c60ff7e6c5fff847164ff857264ff837163ff826f61ff816e60ff857162ff7e6c5dff7c695cff7b685bff6e5c50ff6b5a4dff725f51ff6c5b4eff6c5a4fff68554aff756355ff766356ff6e5c50ff655549ff69574bff66554bff5c4e44ff594b41ff746256ff7d685bff7a6759ff7a6658ff776356ff7e695bff826c5dff846e60ff856f5fff806b5bff7e685aff7b6658ff7f6a5bff7e695bff816c5eff7c685cff7e6a5dff786559ff7f6b5dff847063ff857063ff887366ff8c7769ff8c7668ff8d7869ff8e7869ff8d7869ff947c6dff937b6aff917868ff917968ffb19446ffbb9c3effbe9e3effba9943ff927a6aff927869ff9f8d7bff7b6b5aff978674ffa2907fffab9887ffa39180ffa89482ffa99683ffae9c88ffac9b87ffaa9886ffa08f7cffac9b88ffa59583ffa69683ffa59383ffa69784ffae9d8cffae9e8bffb4a291ffb8a693ffbaa995ffb9a895ffb6a593ffb7a693ffb3a08dffb9aa95ffb8a692ffbaa894ffbba994ffb8a794ffb6a591ffb6a793ffac9e8affac9e8affb6a592ffb0a18effb6a593ffb4a291ffb7a693ffb0a08effafa08effb9a995ffb2a18fffb1a08bffac9d89ffae9f8cffad9c8affad9d8affb2a08bffb3a08cffb8a58fffbba893ffbaa895ffb9a894ffafa18effaea090ffac9c8affaa9a89ffa99987ffad9d8affaf9f8effb2a28dffb2a18fffad9d89ffaa9987ffa89785ffa89785ffa79682ffaa9a88ffad9b89ffac9b88ffab9c88ffa69383ff9f8f7dff9c8b7bffa69583ffa59482ffa69685ffa19181ff998b7bff988877ff9c8d7eff9e9080ffa09382ffa09181ff9f8f7dff9c8676ff977f70ff957d6fffc0a241ffc3a745ffc1a543ff9c8374ff9a8070ff917a6bff8d7669ff8c7568ff8f7969ff8f7a6bff8e786aff8d776aff816b60ff8b7367ff8f776bff8c7568ff887267ff8d7668ff8f776aff8b7568ff8a7266ff877265ff8c7568ff897365ff877163ff836f61ff837062ff827062ff7f6d5fff7c695bff826f63ff736256ff7b695cff78675bff746458ff7e6d61ff403933ff6c5d53ff6d5e53ff746257ff6e5d50ff6f5c51ff756457ff786759ff6f6054ff746457ff756458ff79685aff726355ff726455ff77675aff706154ff6e6054ff6e5f52ff716154ff6e6053ff6f6155ff6d6055ff6f6255ff6f6155ff6f6155ff6e6054ff6b5e53ff685b51ff6a5d52ff695c51ff6a5d51ff6a5d52ff695c52ff695c52ff605449ff695c51ff6a5d52ff61574bff5f5246ff5f5347ff5d5449ff484038ff52473fff594f46ff726255ff716255ff78685cff79695cff76685aff706154ff6e5f53ff766558ff5c5147ff695a4eff6c5d51ff726356ff726257ff79695dff79685dff7d6d60ff7d6d60ff7a695dff77675bff7f6d61ff736256ff746357ff7d6c5fff827063ff857265ff7e6c5fff847163ff806e61ff816f63ff7f6c5eff806d5fff7e6b5dff826d5eff7c6a5cff7a685bff726054ff715e50ff6f5c4fff716053ff726053ff786457ff776355ff725f52ff756154ff6f5c4fff6a594cff655348ff746053ff615146ff7c685aff7c675bff796458ff735f52ff736053ff786557ff806c5dff806b5dff816c5dff7d6759ff7f695bff7a6558ff7b675aff7d695bff776356ff7d695cff7e6b5eff7d685aff816b5eff877365ff857064ff846f63ff8a7465ff8c7567ff8e7769ff8d7668ff8f786aff927b6dff957d6dff927969ff937a6aff8e7565ffb5963fffbe9e3dffbe9e3dffbc9b3bff8a7364ff988270ff726252ff948372ffa18f7fffa89685ffa79584ffad9b87ffab9884ffab9985ffa79682ffa5937fffac9b88ffaa9987ffa19180ffaa9985ffa89786ffac9b8affac9b89ffab9b89ffb3a08fffb3a08cffb5a491ffb6a593ffb8a896ffb1a08effb09b87ffbbae99ffb9a690ffb4a18dffbca894ffaf9d8bffbcac97ffb2a28fffbcab97ffb2a38effb6a692ffb7a693ffbcaa97ffbcae9affb7a793ffa99b88ffae9d8cffb3a390ffb5a591ffb1a08dffaa9a88ffb0a18effae9e8cffb2a08dffb4a28dffb8a58fffb7a58fffb6a38dffb7a691ffb6a692ffb3a490ffafa08fffa79685ffab9c8affaa9a88ffab9b88ffa99a88ffb3a38fffb2a290ffad9e8affae9d8affb7a592ffae9e8bffa89785ffa89887ffa79684ffa59482ffa69783ffa49381ffa18f7effa39180ffa49381ffa79685ffa29281ffa29282ff9d8f7fffa09181ff9b8c7cff9c8e7fff9d8f7fff9c8e7eff968776ff998272ff947c6efeaf8f39ffc1a240ffc2a444ff998374ff9a8373ff947c6cff927b6aff8d7667ff927b6dff8e7869ff8e7868ff8c7667ff8c776aff867163ff867063ff8b7669ff8b766aff8b756aff8e776aff8e7869ff8e796bff8d776aff8a7467ff8a7568ff8b7669ff857063ff867264ff826e61ff7d6a5dff826f61ff836f61ff837062ff756458ff78665aff78695dff7a685dff7b6a5eff413935ff716056ff7d6c60ff78685dff79685cff756459ff79695dff7a695dff746457ff76665aff736357ff77675aff756557ff706054ff746458ff756659ff716255ff746558ff6e5f51ff716256ff6c5e52ff6d5f53ff6d6054ff6d5f53ff6f6155ff706257ff6f6157ff6a5e53ff6a5e52ff685c51ff685a50ff66594eff685b50ff64594dff62554aff63564bff65594dff6a5d51ff605448ff625549ff60554aff453d35ff574c43ff544b41ff6c5d51ff67584bff756658ff756659ff746557ff746557ff706154ff726256ff62554aff6b5b50ff6d5d52ff6c5d51ff716257ff76685cff79695dff79685cff79685dff796a5dff78685cff7b6b5dff78665aff766559ff7d6b5fff7d6c5fff847164ff806d5fff857163ff837063ff836f62ff816e5fff816d5fff7e6b5cff7f6c5eff7f6d5fff776559ff766557ff726052ff726052ff6e5d50ff6c5b4fff736053ff705e51ff6e5b4eff6c5a4dff67564aff69574cff645347ff6a594dff5d4e44ff766356ff7e6a5dff725f52ff6f5b4fff705c4fff796457ff736053ff786456ff7d685aff7b675aff7c685bff796658ff7b675aff7d695bff7d695bff7b685bff7f6c5fff826d5fff816c5fff857163ff836e61ff857163ff8c7566ff8d7768ff8b7567ff8c7667ff8c7667ff917a6aff927a69ff937a6aff8e7565ff8e7665ff947a69ffbe9f3effbf9f3effbe9c3cff937b6bff947e6cff6d5f4fff9b8979ffa79585ffa79483ffad9b87ffab9885ffab9886ffa79681ffa49480ffa79684ffa99784ff9e8c7cffa0907fffa99787ffaf9d89ffae9c8bffb09e8bffac9a87ffac9a88ffaf9e8bffb4a08bffb7a591ffb9a794ffbba995ffa89784ffb3a28dffb6a58fffb6a48fffb4a38fffc1ae9affc1ae97ffb3a28effb9a894ffb2a08effb7a792ffb6a390ffb8a58fffb3a08cffae9e8bffb0a08cffb1a08cffb1a28dffae9e8bffa59786ffae9f8dffac9c8affad9d8cffab9b89ffae9d8affb4a28fffbaa893ffb39f89ffb7a58fffb9a793ffb0a08dffb7a693ffaa9985ffa89687ffaf9f8dffaf9f8dffb1a08effb5a491ffb7a694ffb2a18fffb0a08effb3a28fffb09f8dffad9d8bffa59584ffa49482ffa39482ffa08e7eff9b8979ff9c8c79ff9e8d79ffa29180ffa2907effa1917effa39583ffa39483ff9e8e7cff9d8e7effa09181ffa39484ffa29383ff9a8a77ff937f6fff8e7767ffbe9d3affbc9d3bff8f796aff8d7969ff9d8574ff937b6bff907869ff937d6eff8e7869ff8f7868ff887466ff897366ff8d776bff847064ff917a6dff8a7468ff887368ff8f796cff8c766aff8c776aff917c6eff8a7568ff8b7669ff8a7668ff8a7567ff8a7567ff7c6a5dff7d695bff7f6c5dff847163ff837162ff7c6a5dff79685cff7e6c5eff7c695dff806d62ff816f64ff443c35ff79675cff76655bff76665aff756559ff736357ff746357ff7b6b5dff6b5e52ff766659ff736458ff77675aff776759ff756557ff746456ff766658ff746458ff746457ff726357ff736459ff6e6156ff706257ff706256ff716356ff706358ff6e6055ff6d6155ff675b4fff695d52ff6a5e52ff675a4fff64594eff675a4fff66594eff685a4eff665a4fff685c51ff665b4eff594e43ff605449ff5b5045ff4e443cff544940ff574c42ff5b4e42ff6e5f50ff746457ff746456ff736356ff756558ff6c5d51ff6d5d52ff62534aff64544aff66574cff6d5e53ff76665aff76665cff78685cff77675bff76675aff786a5dff78685cff7d6c5fff816f62ff766659ff7e6b5dff806f60ff816f61ff806e60ff837062ff8a7667ff847163ff857161ff806d5fff7f6c5eff826e60ff7f6c5eff7e6d5fff7c695cff766254ff726052ff6f5e50ff6e5d50ff705e51ff766355ff736052ff746053ff786457ff6f5c50ff67564cff625148ff5e5145ff736155ff786558ff746054ff735f54ff735f53ff766355ff766456ff7a6759ff7c685aff7e6a5dff7e6a5cff7f6a5cff7f6b5eff7a665aff806c5eff826e60ff7c675aff826c60ff7a655aff877264ff806d5fff8b7666ff8b7566ff8c7567ff8e7667ff8c7667ff8e7768ff8e7768ff947b6bff947b6aff947b6aff937a68ff997f6dffbc9d3cffbf9f3effbe9b3bff937968ff947f6dff675a4bff8f7f6eff9e8d79ffa89683ffa89682ffa79582ffa69481ffa59381ffa2907fffa4927fffa69583ffa2917effa2917fffa39381ffa89885ffa79684ffb09e8bffa69582ffa3927fffab9a86ffb9a792ffb6a590ffb7a691ffb6a490ffae9d89ffbdab96ffbbaa95ffb5a490ffb5a38fffbba994ffbeac96ffb8a892ffbba994ffb7a591ffb9a48fffb3a08bffbbaa95ffb7a693ffad9d8affb1a18dffb3a28effa99986ffb3a28effb3a28fffb3a28fffb2a28fffad9e8bffb6a693ffb4a391ffbdac99ffbbaa96ffbbaa93ffbfad9affb7a692ffb5a592ffb8a691ffb1a08affb1a18cffb0a18dffb1a18effb09e8bffb4a28fffb4a28fffb7a692ffb6a593ffb3a28effad9f8cffab9c8affa89987ffa59583ffa49382ffa19180ff988877ffa69683ff9d8d7cff9e8e7dff9f8f7dffa49381ffa79683ffa59685ff9f907fff9d8e7eff9e8f7fff998b79ffa39380ffb09e87ff927c6dff917b6cffbc9c3affbfa03cff917b6bff927c6cff967f6fff978171ff967f70ff8f776aff927a6cff8c7567ff8d7869ff8f796aff8a7667ff8b7568ff867165ff877367ff837164ff8c776aff8f796cff8c786bff8b776aff8a7669ff897567ff897669ff887568ff857265ff857264ff827062ff826f5fff806e5eff806e5fff796959ff786658ff7a675bff796759ff7d6a5fff837165ff4a403aff746258ff76665aff76665aff6f5e54ff6a5b50ff6a5b50ff78695dff6a5b50ff67594eff716255ff736356ff6f6054ff746558ff756557ff726356ff6e6053ff7b6b5eff76665aff6e6054ff6e6154ff6d5f53ff6d5f54ff6c5f54ff6c5f56ff6b5e53ff6c5f54ff685b50ff675b50ff675a4fff5e5247ff65584cff5f5348ff5d5045ff5d5045ff695b4fff63584dff685b50ff605448ff5d5247ff564b42ff4f453cff554b41ff544a40ff574a3fff5b4d41ff67594eff6a5a4eff66584cff6c5d50ff67584cff695b4fff5f5349ff6d5c52ff6d5d53ff726257ff726458ff78695dff7d6d61ff776659ff746458ff7c6b5fff736357ff816f62ff826f60ff7a6a5dff7d6c5eff7f6e5fff816d60ff816e60ff847265ff826f62ff816f62ff857264ff7e6c5fff867364ff837063ff7f6d60ff867365ff806e60ff736355ff766557ff766557ff746357ff78675aff7b6b5dff79685bff736154ff756456ff79665aff6e5c51ff6d5b52ff51473eff756457ff766458ff736155ff7a6759ff736155ff7a6658ff7b675aff7a6658ff7d695aff7d695bff7b6759ff796558ff796457ff776256ff806c5eff846f61ff7c695dff806a5dff7e6a5cff877264ff806b5fff8c7566ff8f7767ff8b7465ff8d7667ff907868ff8d7767ff907868ff967b6bff967d6dff927a6aff987e6dff967d6cffbe9e3effbe9f3fffbe9e3dff977e6dff927d6dff6a5c4dff8a7b69ffa18f7bffa4937dffa3937effa28f7effa2927effa89683ffa59482ffa49280ffa29380ffa49382ffa2927fffa59582ffae9d8affa99584ffac9987ffac9a87ffad9b88ffaf9d8affb7a490ffb4a28effb9a792ffb7a691ffb2a18dffb5a390ffb9a892ffb8a792ffb4a48fffb6a490ffbfac96ffb8a690ffbaa793ffb5a48fffbaa791ffbaa792ffb8a793ffb5a391ffb5a493ffb9a795ffbba997ffb7a692ffb6a592ffb2a28fffb3a28fffb7a693ffb4a390ffafa18bffb9a895ffbaa996ffb4a390ffbba994ffbdaa95ffb6a68fffb8a690ffb8a691ffb4a490ffb1a08dffb09f8cffb8a691ffbdab96ffbaa893ffbeac96ffbbaa95ffb9a893ffb9a894ffb7a694ffb3a391ffa99988ffa69686ffa79786ffa29280ff9e8e7cffa79684ffa59480ffaa9a87ffa49480ffa1927fffa29382ffa39382ffa1917fff9f907fff9d8e7effa29380ffa59682ffb59f87ff947d6dff9a8372ffc2a33effc5a540ff957f6eff907b6bff947f6eff927c6cff968070ff907a6bff8f7a6bff8f786aff947d6eff927d6eff8c776aff887567ff847165ff927c6eff847164ff8f7a6dff8c776aff8a776aff8d786aff887568ff877367ff8b7768ff8c786aff857365ff8a7667ff806e5fff816e5fff867363ff867363ff7a685aff7b685aff7f6c5eff786659ff7b6a5eff7d6c5fff4a4039ff736157ff78665aff706055ff6f5f55ff695a4fff716154ff695a4fff6c5d51ff66574dff726055ff786659ff746558ff726256ff776658ff736356ff77675bff78695bff736355ff716358ff716458ff716258ff65584dff695c50ff6e6257ff71645aff63584cff695d51ff655a4eff695d52ff60544aff62554aff5e5247ff5a4e44ff615449ff63564cff64584dff5d5146ff5a4f44ff594e44ff584d44ff51473eff54493eff574c428e89827c8e8b867e8888827c7a7d78717e7e7873687d78718b85817a80847e7883807c76af8b8681da95928cfc9d9993f49d9892fea19c99ffaaa6a1ffb3aea9ffb0aba5ffaba6a1ffaaa5a0ffaca6a1ffb2ada7ffa9a49fffa6a39fff9d9a95fc95918fe58b8683a8827e7ab77f7b79ce807e7ae4817f7bc37b7773ab76736dde7f7a77f485827cfb84807ce87d7a75e87f7c78ff85817bff837e78ff807b76fe7e7973fe7e7872ef7a736dfb827a74c56e6761ea736c65e9736c65c56c655fe06f6861ca6b645d8d625c547b605951c66a645cc56b645cbf676058ce686158ff756c63f2726960ec736a5fb86d6459d36c6458ce70665ae171675bd16e6458b06a6053c16b6255ed706659c86c6156ba655b4fd36d6255ff71675aec6a6154e5696053d7655b50f0696054ed665d52ef695f54dc675e53ac60574dbb625a50915c5449ac61584d855c52485a574d449b5f554bb4665b4fb1665c50a361574cc3665b50815e544ab7665c519c63584e765d534a755c544a8161584d84645a50575d554c5d5e564c63635a5064645b5177665e53555e564d615c554c5259524a4b585048675c544c515650497d57514ba15a544eb95e5750c05e564f58df682b5ae46c283fb34a1863b14e1c4e9a4217598c3e17457532124d6c30115e652d11255120095aa03b1361983a15c967625db66a635da16b655f9f6b635fc0726d67c4736c66937068629b716a64c17a716dde807973da7f7974c47c7673c9807b78f488817dfd88817cf3857d7af1857d79fd887f79f6867d78f4867e79b679716db8756e6bc47b7370a8716d6bc076716ec1756e6a8a6c66606e69645c836c655da5706a63ad706b64916b655dbf6b665fd0736d66ce706b63af6e6960aa6a655dae67625aae69645bc068625ba9645e5693625d54a4635e56c9645f589f615b53975a544cab625c55db655f57c2605a53bc5c564fbe5c5750d25d5750d059544de15a544ec559534c93524d4596524d4593514c45864e49438b4f4b455c4a4540704b4743b9524d49da57524bb755504a9c4e4b45b2514d47744d48439d524e498d4f4b46674b4743694b4743724f4b4679504c484c4a4742594947415d4b48435b4b49436c4c4a44634b47425b45423e5445423d4744403a6948443e56443f3a6a433f398e48433faa4a4541cc4d4944c54c4844d54f4c48ec54504cfe5b5651f1595450ec595450ea5c5753d6645f5aff6f6a66ff706d6bec73716fe4717170fa7e7e7fa470717184757372837a7878827a7978a5858685a1828280797f7d7ba5878682b58c8a89bb908f8cb9908e8cbb8f8d8aac8e8d8bd3918f8dd88f8d89d58b8987da8c8a87cf8b8985c38c8884e595908b9886817cb388837dad89837e92817d78b0837f79b2827d777e78736d6875716a9c79756f958a77696effaf4fb396928cd79f9b94e2a39e98cf99948dce95938dc5938f8bfea39e98ffa6a29ed696918ce99b9791eb98938dfea39d98ffafa8a1eea09b96ffada7a2ffb6afa9feaca5a0ffb0a9a2ffafa7a1ffaca59effa9a29cffa39d97ffa59d98ff9a938dcd8b837dcf867e78ae807872fa8e867ffc8a837ca677716aa57a736cbd7b746cbc79736aff89827ade7d7771d37a746deb7a746df07e776fff857b73f57a726afe7f766cff7f756cf4796f65d7746a619f696057ac6b6158fb796f65ff796f66e7756b619d675f54a7685f54c36c6359d970665cb2685f55b9685e55cc6b6157bf695f55be6f635696685d4dae6a6052c6726657e9796c5cd7776a59ce756758cc766958f67d6e5dca756756d6796b59cc746657ef796c5bef766958c26e6251b2716251de736555d6706453ee726656ea756859ea756859b66c605393685d50ae6a5f53d7736659e1776959d0796a5bcb756657b0706456b8736658a27164567c6b5e52806d5f535c66594e74655a4f976d6256a272685cad776d6091766c60796e655a7a70665b7c72685d8b736b5f9d786e63af796f649970695e956b645bb770685fdf736d65a467615ba967605ac36c665ece6a635cf570686048d45c2250d9642451c5561c48af4c193d943e1449843813577f3a174a6e321254662e111e4f1f096daa431754923713b4665e58ad645d56bc6d645de8756c64db736a6288686058906e645d9f6f665fac716861f77e756fc0746d68bc746e69d3766f6cd77c746fff857b76f77f7771f5837973f9867a73dc7f756ec77b716ba0736a648c6d6561c6746d68f97b7470f57a746f876d655f99716a629e716a62c0766f67b3746d659a6d655f9269625ba56b655ea06b645c926d6459826860549d676258b76d675eca6e675fb269635ab1676159af676159dd6c665daa645e56b2666158a5615c55ce635f58ca5f5a53ab5b5750ab5e584fb55d5851ae59554fb558544db958534cb256514ab5544f4874504b458d504b46aa524d48b254504aeb5d574fb157514aab54504995514d47bb55514b92534f4876504b454e4c4743584b4641644a4541784d494492524e499355514c7c53504a6d4d4a456e4d49446b4d4a446e4c4944824d4a459d4e4b468149474283474540984a4642c94f4b46bb4e4a45a34a4541b34b4642b549443fd54c4743fb504b46c94c4844f1534e4aff5a5450eb56524eff5b5651fd5f5a56fc67615ef96a6663ff6e6b6bff747171ec767473b372706fa773706f83706e6ca582807ebd868382a583827f74807e7a7b83807b7c83817ca28b8a87c492918ea08a8a89a1898987a5878685b38b8a89cd8f8b8ab2878582cc8e8987c68e8a87a98c8883a78c86827d847f7a8887817dba8c8782c68a8783c38a87836b7f7a727a7e7b7489807c75a28a7f7568ffa55141ff8b31ff857768706559506763594fb7726459a5716659a16d5f54cc76685da76d6358a66d6257b970645ad2786c62c875675c5e64584e2e564d44996a5e56cf7c6e63eb7d7066716b6055c1796c62b67b6d63fa827468cf786c61ba72655bfb7a6c62ff77695ffd786b60ff7c6f62ff786b60b86b5e54da70635ad471655ad5716459ff73675dff7a6d61e86d6359e76d6157f36e6057ff776a60ff74655ce66a5e54f5695c53cc64584eff6f6458d4685a4fb262554ad763564cc45c4f46f462554de55b4e47cc554940d1574b43c153493f96494039c8554a42cb534a42924d433bad544940a553473fb7574b43e05d5047f760544ad15f5249ea605249a2574a4098574a42b75c4f45a5594d42cd5f5045ac5d4f44d367584d8e5f5147b45f514797625348cc695a4ee46f6053e16f5f52c6716155685e50475f5a4e432a574a418468584b8668594f94726153a3776556b27767597c6c5d5087726553977969578b766757907b6c59ab776655e47c6f5cb9776a58bf80715ea17d6c5bd08a7863f18f7f69a681705efd917f6ad98575623567594a7b756757e0887562e2867663d47e6d5df48a7767b67e6c5c83716154f78b7967d88c7667d789776853e16b2952e56b284bc5551945ab49173a97411549903f154f7e37133b66290b3f612a0e1f502009415a250a3d8b3210fb887971e387756bcf807369e8807167f07f6e64b174655aea7b6c61f47c6c61fd7d6f62ff78695eff74685dff71645bff71635afd665a51df5f544ae15a4f46ff66584ef95f5047ff625348b2594a3fa454463b9d56473dc654483dde56493edc53483fff64564bc755483dae54483ccb584b41a551463d8f51473d9c53463ba153473cc45b4f44a753473ed3574c40c654493fd85b4f43cc584b42cb564a3fa753473dd1584c439c4f453c9850473ed4564c429950473ed3594f468250473fb7524941a5574e44c3564c44e1595048c1534a429f4b443c814f453ea050473f4a413934714941397a463e3972463f3968423d367e443d3782463f3981463e386e473f3a6941383288463f38b54c453fb74d4740a548423ec757504aa4544c45f261584edb65595194564d44c15f544aff776a5c654a433a474d453ede64574ea15f554bbf62564cca61554bf56d6054a7594e45a35c5349cd5e5249a15e54497b574c436a5b4f45755b5147b66c5f54e97a6a5eee807165a0746659be817266c4817265e889796bc87e7063d4806f63f9837266fc7e6e62f17b6d61ff85776bf3817267f2847468a2786a65d082746ad17f7469e285786dd284786edf8a7f74e28c837bf793867dfc91857bfd998b81f0938579c58b7d73d2908275be908072dc8b7f73d08f8377e3928376ce8d7f75d3887b6cf58f8276f28b7e75bf7f7568a17a6e64be7d71675aff924247ff833258ff9142aab4b1a7a5b1afa64398938fa4b9b6afa1b7b2ae95b4b0aba6b7b2ae91b3b0ac94b4b1ad97b5b4b1b2bab6b49bb9b5b264a8a49e8ab6b3b095b8b5b1bfc6c1bceed1cac6bec7c0bdafc4bdb6abc8c1bbc1cbc7c2c2ccc8c3c3c2bcb8dec1bcb9bdb3aeadc8b4aface4b2aca8e6a8a39edda49e99c3999592c896918cc8908b85c58d8781dc8b8883c985817bd086817eda837e7bd67f7c77e1827c77de7f7973c17b756eaf7c766dba7c766edd7d7871ab7b756ed17e7870c07a756ce3807a72cb7d776fc37b766fae79746cad78726bb177726abe78736c9975716a8b706b6281716b647c726e669c77716993746f68df807973d57f7971a5726d67c379736e8c736d67ab756e6aa476706be47e7a72eb7f7971d97f7870b17a746dc8837c74aa7b7670aa7d7870b2807b73ba857f79a27c78718f7d78729378756d79736f697a76706b9a7f7d7682807c75667c7871a4908b84928e8882a4938e87a198938b85958e86b69e968db79b968ed29f9a92c5a29d96d5a6a199cca6a098ddb1aca3b5a8a29bc4aca59dfac0bcb1d4b3aca54b8e8a849ea6a09ac7b4aea6e7c1b9b3d3b8b0aae8c1bab4b1aca69fa5a9a7a0e9bdb7b0a1afa8a294a9a29c38db65275bea702a43ca581946b2501b2d8c361050924017417e371237672a0b586931123855240c3c5a240a48903612ffeee6e3ffebe3ddffeee5deffe2dbd4dcc8c1bcecc8c3befcd3ccc6f7c6c0b9ffcac5beffbfbab3f4aaa6a0f59b9691ff96918bff938d88ff948b85ef847e77fe847e77e37e776ff9807a72fe807a73d87c766eed7f7870e07a746bf97e7870fd7f786ff67b766ee579736bde78726abb706b61e1777169c4726d648d6963598c6b665d98706a62a1726b62cb777067ce7a7369fe827b71cb777169ce767068da79736aae746f66db7b736bd57a736cff827d73ff857d73fb827b71cf7b746ce4807971c978736bc97b756dc87b766de0827c75be7b756eb37b766ead7571689e736e66b777706ad67e7a7196736e66776b665fbc79736bd17c7770df817b74e9867f78cc807971c07e7770f889827ae5847e77ff8b857eff8e8981d9868179ce827e76f68f8b83dc88827cff938d84fa89857eef8a867f5d64605cf187837ceb87827cde847f79e687817be088827dd4857f79d084817bff918d87ec8c87829a7b7671bb857f7bee918d89e6928e8affada8a3ffb3aca8e9a59f9afcaea9a3e6aca8a2fdbfbab5ffc2bdb7ffbfb9b4ffc0bbb6f9b5b0aefebfb9b5ffc7c0bcffcac4bdffc5bfb8ffc5bfbbffc6bfb9ffc8c2bbffc4bdb7ffd2cdc8ffd2cccaffd8d1cfffcfc9c9fecac4c3ffd4cdc8f8cec6c0ffccc4bef5cbc3bcf6c8c1b9ffcbc2bdffcdc4c0f3c3bbb5f9bab3aefabab4aeffbfb8b6ffb5aeaae2aba5a0cfac998e66ff9d494fff8f3760ff9a4854f16b31b1b0a9a1aaada9a2a9aca8a3b3afaba6ccb6b5b0c2b6b5afaab7b4afecc8c4c0e1c2bebbb0b5b2afc1bebab59eb7b2adbdbeb9b4d3c5c1bddac4bfbbe4c6c1bcb4b8b5b2e3c6c1bcb0bab3adc2bfb8b3d0c7c1bbf1cbc8c2fbc1bfbabea5a2a1ac9d9a97b49e9a98ffb8b1acffafa9a4ffaaa49ffda29e98fba29d96ed9a958ecf908a84d3908984a7837d76d089817cea8a847feb88837eff8f8982ff8d8681f288817bec867e78e1847d75f3857f77ff89837cdf7e7873eb807a74bd78736ef6847e785e6a645ea5746f688a706a63c97c766fcc7a756df9827c74a8726d66af78736cb377726bb577726bcf7e7770eb827c75dc7f7972df7c7670d87a756e906f6963b4756f69d57a746df1807a73fe827d75e57c776de97e796ee9817b71cb7e7970b479736ccc7f7a73c97e7972a878736c9b76716ac47f7a75a577736db276726cd0827c76977b7770aa837e76eb959088dc958f87f99d978fd5958f87a8888179d9958e87b78e8781ffa49e96f8a29b94d19b958db48f8782ed9f9890e9a49c92fea9a298ebaaa197c19690889e8b867fb5918c85e9a4a098bf9b958ff8b0aaa2dba9a39cdca8a29ae3aeaaa3edb2aca4e3b3aba3d5b2aaa1e7b9b1aa4fea6f2a44cf5d1f34ad4817499d44173c8e3d15417e371434692b0d48662d113157260c5e632c10438e3612dac7c1bdfcece5defffdf4edffebe4dcfff2ebe3ffddd7d1ffe0dad2ffcbc5bff9bfb7b2febeb7b1f7b0a9a3f8aca59fffa69e97fb98928bffa19a91ff9e968dfe928a82e28a827aea888178ff908880fc938b83f789817af7878179f587807aff8e88807f716a6492726c64b7767068d17b736cd57b746cfb837c73e77e786fa9746e65c17a736bca7b746cd67b746cee817a71e4807a71e77e776fe07a746bd279736b9f726b63b6746e65f27f776fff847d74ff817b71ef7f786ef880796ff980786fca79726ab8746d67d37a756ed77a746dbb767069a5726c65c77a736eaf726d67b9726c65d2766f68b8756e67a16f6a62c8757069e37a756dec7b756ff27f7972c4736e66d2756e67d076706af5827c75ff858078ff87817ac177726cc375706adf7d7871ff8e8880f67e7871ca767069bf716c66c1706b67cc716d68f47a7772d976726dcc79746ffc85817af7827d78d87a7772e8817c77c47b7570ca7d7873d37c7874e3837f7bf0888480d98e8885ec928f8be798938fd49e9993ba9c9793e0a7a19dffbbb8b3feafada9c4979393ca9d9997e1a9a4a1ffc6beb9ffc4bdb6ffc6bfb9f9c1bcb5f9c4beb8efbcb6afd0b1aba5d2b3aca7afaba5a0c8b1a9a7e8bdb6b4eabfb9b7ffcfc6c6ffcfc9c7ffcdc7c3fec2bbb6fdc5bdb9ffbfb8b4ffc6c0bcf5b6b2aedbaca6a3cfa8a2a0f1aea9a6dca7a2a0a7a18d845aff98464fff822f5fff994763f47537525f260ebfaaa79fe8b6b2aed7b6b2aecab6b3adbcb1aea9beafaca7e9bab7b1c9b3b0acf6c3c1bcb4b1aea8e3c1bdbaeec6c1bde5c6c1bde8c4bfbbefc5c0bccdb6b1abfac3bfbbffcbc6c1cbb2aca7a5aaa39defc6c0b9fcccc4bfffc5beb8fdbbb6b2d5a6a09ce7afa9a57f8d857e32756d67fda29e99e899928fa98b8581d2908a85af88827a8c7d786e8d827a74a7837d77d08c857ef998908aff968e88ff928b85ff928a84fe8e8881fc89837cff8f8982fe8f888197706a629f716c66b475716ac777726cc979736eb5726d68b8746f6bbe75716a8f706a63a76d6963b4716d67bf77726bf8807b74e6807a72f6827c75ff8a847dff837d74fe868078fa7d776ffc817b73ba6f6961ad6f6961d1756f66d1736c64ed787269be6e6961fe7b766ee77b766ea86c6760cf78726ae67e7971ab706a63b1736d66b2736d67ce77726cc8726d68a56b6661936d68618b6f6a63c87c7670bd7a756dbe7d7770bd7e7971f787827bf38b867ee887817aff8c867fff918b83e087817974736d66c07f797096767067dc847e75d4847d73d2827e75f58f8a82d689827cd98a847dc8878179f7948d86d38c8680f0959089d9928b84d3969088c0958e88ad958c85b7968f8943e46b2837c9591c31a546162f943d13208438121d73310f2f6d3010436730112e58270d52602a113a66250be7ccc6c3ffe9dfda6cafa49df7dbd2cbffd9d1cbffd4ccc7e5c3bcb5f0bbb4aeb2a59f989d9a938d8e938c86c69a928cd99b938cffa29993ffa29a93ffa49c94ff9c948dfe9a928bfa938b83ffa09891ff9f9890dd857f77be7e7871ba807a73ec88827cdc837d776969625ca0726b66cf7c776f99746d659d6e6863af757069bc78726af1837c73d47f786ee180786ff5827c73ff857f74fb80796eff827b71f8807970f980796f9f6b645ca86f685fcf756e65cb70685ffc7a746bb16a645ded736e66d8736d669f66625cc3716b64cc756f689c68625bb36e68609f6c665f9b6a645eaf67625ba565605a9965605a715f5953765d5851a2635e58aa655f59a6635e58d66b6660d76b6660cb6b6660c66b6660bd6b6661c76e6963b66b665f9e67615a87645f589a635e5698625d57a7615e58af5f5d59ce6a6561a864605ca6635f5cac635e5ad36a6661c96a6661de6d6a65b7676561ea706c69b3696662ab6c6964b76b6765df777370bb746f6ccf7c7773eb86827fe4888481d08c8782ac8d8883efa09b96e7a39c98e8a6a29ed3a29e9b98948d8ad9b0a9a5478d847a69958d87b3aba6a1cbb1aaa695a69f9b96a29e988fa39d9770979287699e9892839f9a979fa9a3a0ddbab3b1f4bbb4b2ffb8b2b0deb4afacdcb3afabefb3afacf8b9b2b0d4ada7a5839e96939e9d999577928e8b738d88846c8a83805aff8a414aff782d4aff883b7bfc7f3c5560280f79fe8c42edafaca5ffbbb8b1fcbab7b1ffbbb7b2fbbeb9b6e1b3afabc9ada9a5b4a8a39f919b969398a09c99fbc1bdbbffd1cdc9fac9c4c1fcbfbcb7ccaaa7a2e3aba7a4fcc8c3befdb4b1add4a8a39fffb8b3afffc5bfbaffc2bcb6f5ada7a1b198928ca6918b86ca8f8c88d6928e897b7c7772e68f8a86e78e8987b0837d7aca898480f7918c86fd96908afd948e89f4928d87ff908b85ff96908bff9b948fff8f8984ff938b85fc8a847eff86807ad37b756ffe847f78db7c76707767635ee378736fff827d77ff817c78f079766fd0726e68e577736cc5746f65bd6f6a6159605952bb6f6861ff7d776fff807a72fe807a72ff79736cf977716a88615b54ad6c665e67615b5285605b52ac6560586e5c574e8a5f5950925e584f865c574fd269645dc569645cdb6c675ee56e6961f16f6a63ef6f6a62f26f6a63af635e58ab635f5a875c58527b5956516359554e7e625e579868635c9d68615bbb6a655eb86a645faf6a655f8f66605ba46a65608d645f5ad1706964bf6c66606d5e5953ad67615998625c549b625d55c868645cdb6d6962d26d6861b06c685fc06c6862d36f6b66c66b6762d46f6a64c9746e69d978726ce67f7973fa89827cda8a837dfe96918c30d25b1e2ebe521c259438102b8d3710398134123074301038692d103a652e113057250b415a250d48461b09c9b3ada8d3bfb9b3bdb6afa84c958f86cab5ada9adaaa49fb3a7a19dc5aba5a09c9b948f9399938cab978f8ac99e9993fca39d98f5a19a94ffa49c97ffa09791fba09891e6968f88ef958e87e6908982d48b867ecf8c877f9a7e78729a7a756eb57f7973f2877f7ad07f7a72b776716ae07e78707a6f6961656963595e6b635c806d665ec3787067f17e776df97f776ded7a7369ed787168b06f68607d635d54b170696049615a506360595085645e55505c564c785f58507e5d564e7f5d5750b9645e58a4635e57bd666159b7666159cd68635ccd68625bc767615a9a5f5a538f5d58527d5a564f7055514c434f4b455355514a795a554f8a5b56518657524d9f5a5550a05a55508557524d6156514c4e514d4891595450bc605b57965a5651875c574f66504d488957534d9f595550a758554fb2595651a6585650a5595550b3595652a9595552975653509155524f74534f4c7155514da3595552df65615eaa615d5ab0635e5bb2625f5c8f605d5bb969676598706d6a8f6f6d6ab17c7875c586837fea938f8cde97928ea8918c866e8a847e6f8c8782828f8c88919b97916a97948da4a4a09ca2a7a2a0719c96937ea19c98aaa6a19db7a9a4a2a9a5a1a0bbaaa7a5bba3a09ed5aca7a6c8aaa5a3b3a39e9ec0aaa3a1bda9a3a1bea5a09db99f9a98b49c989589958f8c698e8a866c8b87839f978c8745ff7d3655ff8a3652ff903e5cf977345e7330125eff843963ff9e46efa5a09bfdaea9a4be9b9692cba19e9ae5a9a5a1838d89835e817e7b70878480eca9a4a1f4aba8a5ffb8b5b1eaaeaba8c0a39e9baf9d9994efb1aea8d89e9a96d79b9793ffa5a29effa39f9bfea09c98f39a9592f398928fee938f8b7c797471977b78759b797672fb8e8b87d7817e7abd7b7773e17c78758c6c6967946c6866ad77726ff087837ffc8e8985ec8b8480ff8f8883fa8a847ff88a837dff8b857fef7e7974e77d7773ef7f7975ce736e6a8265605b9868635fe9746f6afc79746fff7b7772dc6f6a666e5c5853eb6e6a65ca696560c064615ad469645de16c6761ff7a746cfb777168d96b655ed86b655ff46d6760e868635cd7635f599d5b5650ce605a54af5a5650bd5c5851c55c5951c05a574ee05d5952d15d5950f0625d54d75e5a52d75e5a53f0615d56de5c5751b159544ec85b564f55504b45534d4742a356514cac56524c8a54504969504b4572514c459e55514b9c55514c8e534f4959504c4772514d47a558534db959554fd85d5852c75a554f8d534d47da5b554d9f514d46a34e4a45ac504b46be534f4a98504c47de5b5551ae55504b8d504c47774c48448c4f4a4684504c48a1585450d565605be26d68638768625da76e696429c7521c16af451317872f0c378c35124b843614316f2a0e3463270d44622b0f3559250c1e522009599b3c14628c8a856b8c8886b7a3a19bb5a19e99bfa29e9bc89c989691928d8a978d898793908c899a8e8a87d4999491d79b9591e49b948ff49b9490d797908be99a938edc958d88be908a83be8f8a849f837e789a827d769b817b74b1837d76d6868079dd88817bda7f7a753b655e57a2726d67b2736d679a6e6861a9736d64bd756f67f77c756dfb7d776ec9746d64c4736c64b06f6860de716b629b676059a0645e5692625b5492605a53895c57509b5f5952a15e5851935a544da45b564fb05d5650c75e5851ad5a554fb25c5851cb5e5a54b959554f8e59544d9958534d4e534e47414f494385544f4a9355504a8a54504a65514c455a4f4a43744f4a45714d4a448a4f4b466d4e4a46574c48447d504c47ae534e49bc55514cba55504bab54504a524c484396504d478b4d4a45784845419c4f4b47a04e4b47794b48448e4d4a46964f4b486a494641544743404044413e834a46448b4b4847ab514e4bb455524f7c53504d75534f4b8a5956529c605e5a90605d5a78605e5cb96f6d6b98706e6ca17b77758b7b78759c85807d8f8683814b807b7769888582778e8b87a99c9a95899f9b97699c9793899c979458918d8c578c898570979292a0a09d9ba4a4a1a09da39d9cc2a39e9daea09b9aac9f9998caa29d9cba9d9999ac9a94949f999494a5989394508b85834b89838296928c8b929a867d5dff853d41ff762955ff923f54ea692c5c98421a78ff8d3f7effb15366ffb34fdb9d9b988b8a8686bc979493b99c9895b99b9895d4a29f9de6a6a5a1ab989491ffb6b2aeffb3afabffb5b0adfeb5b0adf5b7b3aff3b1aea9ffaeaaa5b594908df8a8a39fcd979390ee9d9896e5979290f29a9794b98a8481a5847f7cd48a8583ff94908ef6928e8bfb8e89874f66625cf68b8785ca7d7a77df837e7bfe86827efc8d8884ff8d8783fa8e8782fd8c8681ff8d8783f989837eff8b8480ff86817bf17b7671e07a7470d377716da7726a667d67605cd4746e6ad3716d69e8746f6bd56f6a669066635eff7a7570ff757068ff76716aca68635dc867615aef6d6863e269635dec69645edc65605ace68635c8d5a554fb65e5a54dc635f58e9656059fa68645cbe5c57506e504c459955514caf58554e94545149aa57544ba058534cbb5c5750d05f5a54f3625e57df5f5953b35a554eed645e57d05e5953b35a5650b15a5550c25e58539d59544d9859544e58524b447c55504ab159544ec75c5852a5595650a85a5650bf5b5751a159544e9857514cc35b554e714b48419e524d4790504b469f4e4a45bf524e49d456524cb5534f4a98504d478f4d4a454744403d6e49464368494642b7575350ba5c5a55de64615da1635f5c8968625e856c66622bbf4f1b1da942152c8d3310347d2c0f437b2e11376d280e4061250d3b5b240d2d56220b1d52200a5d9a3c15b09f9998ab9b9896dbaca6a3508a8480c7a39e9aa896918f8e8d8a88a4908c8abe959290e2a39e9ad69d9894ca9b9693de9c9692d09b9490ce97918edb948d89bf8c8682c2918b86b9918b878b8a837c527a72709b827b78ba847f7bae817d79b17e79774a6f6865cb7e7874d77a766fde7c7670d277716ad67a736dd376716bc7736d68e2777069b56d6862b06c67608768625aa166615aa0625e57b3645f58d368635ccf6560597557524c5e55504a925853508858534d8057524c8956524c8656514b9b5b5650ad5c5852c35d5853b75b56509257534cb35d5852ad5b57509357524c9e57534e9d59544f8857524b7755514a67534c475f524c467f514d4695534e49a2524e498d54514c9f55514c7b4f4c488b53504ba154504b8b514e492d45403d804f4a46794d494674494643964d4b486d4b484562484542814a4844674946436b4745437c494845704947459e4d4a4894504e4bbe52504d9c53504e8f53504dcd5e5b59b9615e5b96615e5c7e625f5daa6f6c69826c69689a767472877975739882807d6c827d7b738783818a8b8786a494918f9e9995949e9d9997328f8982aea6a1a089a09d9a8da39e9c999d9c99b8a8a3a3a9a6a2a1a2a6a1a0a9a6a0a0afa49f9fb2a39e9dbea29d9db79d9898af9692929894909086918d8e9b9a92935f8e8686508a848287958f8c4eff813945ff862f4dff883a56e76d34509b421a64fe8b3a76ffb64d5effaa4660ff9d484174726fba989693b09a98939b928f8cc19e9c97fab3afaafbafada6f0ada8a4d4a49f99febcb8b2ffb7b1aefeb0aba7fdafaaa6e09e9a96a9908c89d7989491b7918c89ffa9a3a0d293908df09c9795c0908a8681807b78b0898482fe9c9793df8f8b88df8b87843868635eff97938fcb827d7aff979390fe918c89bb7c7774f28c8683f08d8782fd928c87f58d8682ff8f8883ff88837dff8c8681ff88827dff908882ff87827dff88827efe827a754f615a54b6706a65e875716df075706aff7c7771ff837e77ff7f7a74ff7b7670fd75716add6c675eaf645f56c1635e57e76a665fa05e5752b9615b54f7706a61df66615ad3655f59b9605a539c5b554fce615b52ce5f5b52de615e569755514aa756534cbb5d5951b25a564e8957524aa45b554eae5b5750c6605a539d5e5750bf605a54c8605c56a95d5852c05e5852b25b5650c35f5a53b75c57518957524c8055504b9d5c5650ac5e5852b35c5752c65f5a54a85a54509356524da45d5954be5c5752d25b57518f514d478d504b46a3504d4893504c488f4e4a46964c49459b4e4b48834c4945944e4a46824e4945ac504e4aad524f4bca5b5753d1645f5bdd6a6561c16a6561c9716d67e97d797328be4e1b27a942172c892f0f3b832e10467b2e114b732e133f5f240e2e56210b3656220d3656240c5b993b15cea9a4a1b8a09998347e7b79d5aca6a4caa9a1a1ad9f9999aa999492bb9d9796c1a29a9ac39d9897dea8a3a1c7a09a98e29e9996f2a09d9ac995928fee9d9894e195918ec88f8b8ad895908e8e88807d427a726d9b837c79a6827d7ab17d7a76bf7e7a75f186827def837e79dd807c77db7b7771c977726d8c6e6761866a655fbb706b65c0716b65a16b655da16c675fc66e6961ae67625c9f635e588e615b55945c5650ba615c559c5a5651a85d5a547553504b8055514c975a56508555514b7a56514b7c55504b9057534da45b57517a5b554f955a5651a85c59548757534ea058534f9456524d8253504a8a57524d7253504a6b524e4877534e487e544f498c54504a95524e499154504c6a4e4a4777514f4a9553504c88504d4a95514f4a43494441704d4a45634b484540464440724c4947784b4947654947455c474442744d4a47804c49469c4e4c48974b4a477b4b49469e514e4d9e5653509654514f7c5652508b5754529a5e5c5a735f5d5b83656260816c6867a075716f847774728d837f7d5e807a784e857f7d9093908d9296938f8c999593969c98952c908a83aaa7a29d769e9995b4aba8a4a5aba5a2719e9a99a4a8a3a298aaa5a3acb0adaac0b0ababd5aeaaaabcaba7a7c5aaa6a6c3a39d9fdfaaa7a2daa49e9dc19e9997cba39c9b4f8a838179908e8c46ff8a3847ff7d335eff954244d35a2550903d185cff7a3568ffb44ca9ffca636bffa64b6bff9a48d7a2a19dffb1afaafbb3b2acffbab9b3feb6b4aefcb2afa9feb7b3adfab1aca5e5aaa59effb9b5aef1ada7a0f9afaaa3d99f9a94e39e9895fea59f9ef3a09d9ac7908c89e99b9691e699948fd4938e8aef999390a389847da887827df298928ef298948ff996918cfb93908bffa7a19dff928e8af38c8884ec888380e388827ffb928d88ed908a85ff9a938efe948e8ad0857e787c736b65ff928c86ff928b86ff928c87ff87807ace7a746dff88817bf77e7771b7726b66ec78716cfa7b7570ff7c7671fe7a7570ff7c7771ff7b756ee76f6a63d469615aee6c665d67544e476957504966554e48d068625bd869635bd06a665ea8635e56895c564fcb666158d7666059dc635e57b8605c53ae5d5750a35b554e78544f47775550478f5a544ca45c5650895a544fb8605a53d2605b559e59544e9d5a55508e58534d8a544f4cad5a5551a85d58527d544f4a7e544f4baa59534ea85a534ed5625b57c05d58538b554f4c9055504c9b5a55519857534ea756524e96524d49714c4744694a4742904f4c469b4f4c46804b4845a0504c47a14f4c4737423d39a3524d48bf58534ec457544f9b524f4ab65a5652dd66625de56f6b65d6716c68d577726d9a716c682cc7551f22ab451a2e8f31105c933916487e301346722e133b6429103859230d3457230d3757250c60953a14bea8a3a0b6a5a09ccaaaa3a0d4a9a39fb5a19a98c7a8a2a0c6a49e9db1a19a99ceaca7a5f4b0aaa9ffafa9a8fbada9a9fbaba6a4a595908deea19d9befa09d99fca29e9bd596928ecc968f8dd495918db2888582b885817fcb85827fb77c7977c47f7c78e783807df283807cec817e79cc78716ca56e6863c2766f687a6b655d7168615c5b655d588868635eb7706a63bb706b64a06a6560735f5b5692635e599d645f59b5635f5bb25f5c568b5b57527f57524d8457534e63534f4a5e534e487355504b8e57534e7056524d8f595550ad5b57518054504b7c56524d7d54504b6f504d497f53504c7953514c634f4c465c504d497a504c4687504d469d544e4999534e497a4d49458f4f4c4882504d4997514e4c804e4b4994504e4a95504d4a5f4c49466f514e4b77514e4a744e4b498f504e4b9b514f4ba1514e4b944f4c48964f4c49b053504c884e4b48994e4c49874d4a4797514f4c9354524ea15b58548458534f8b5e5b5794635f5ea0676563806967647f6d69678575716e8e7b78757d837e7b938e8a854b89837e7695918b959f9a95a3a29d99a6a3a09a99a2a19acfb5afaba2aaa5a1a1a7a29f91a5a09e82a4a09e98b1aba88aafaaa7c1b4aeacb4aca7a6459e97935ba29a95d1aca6a5d3aca6a6daaba7a7c1a29d9cbda09c987e958e899ea28e8752ff863c4bff822f50ff953b57cc5727488e38164efe763057ffa44650ffaa4571ffb5516effa64d64ff9b45fab7b4adf4aeaca5cba09f99ffc2c1bcffb5b3aeffb7b5aff4aeaba4f1aea8a2e8a8a29cf9aba6a1eea5a19cbf95918d9e8d8885d396918fee9b9894f29d9895e0989391ffa39e9bb78e8986d599928efda59f9aa28a8481c2908986f69b9592ea928f8bffa19c9affa6a19cff9f9b98ff9f9b99ff9b9694ff98928ed38a8480ef8e8883ff9e9690f88e8782ee908882fe8c847fbf7d7671ff928b85ff938c86ff968f88ff918a84ff8f8881aa766e67e97e7773f07e7671b36e6861d8777169d0726d65e1716b649a625d55de726c64e06e6a61fe716b63f66b665e544f4a4450524d464c534d46795c554d99635c53b1645e56805e59507e5e584fcb666057a95c574fa55d574e9e5e584f9c5d574f7858524a78554f476a534e468159534d9c5c564ffd68615bf3645f58ff6c6560e3615b55f566605bd15f5954d35f5954e2635d57f866605bca5f5854b65e5852f2655d58e0615b55c4605a54e8655e58e7655d58dc605b55cb5e5854b3595550f2605b56d85a5550af524e496a4a4641bb56514cbf57524dab514e49ba54504ccd55514ccf56524dbb55514cce58544fc057544fbd55524dc55d5954c765605cb56964609c6d6662936f6a65ac7a746f93916f6130b4481c399e3c1638853010387b2d1140732e114363270f3f5b250e4b5a250e3d55230c65923813bea98e81f4b7b1aeffb9b3b0fcb8b2b1ddaea8a8cbaba4a3bca7a0a08c9c9693c2b0a8a6c4aaa3a1dba8a3a16d938c8a9c989391d9a5a09efaa8a5a4ffaca9a9ffa9a6a5e49e9c9ad5999692d395908cb7888483a47f7a79a17d7877b2817d78a57b787391726e6a866e6a65bf7b7873df7c7773e17a7571ba736d6a70645e5952625b5742645d5859655f597a6a645d9e6c67618a67615c6a635f5876635e58a465605b8159554f865c57517c5b56507457534e5e534f4a60514d485a514d4866524e4a8656524edb5c5853c4595651e45e5b56c3585550dd5c5854b055524fbe575450a255514ddb595651aa57534ea456524dcd59534eb855504ab157514aaa57524bbf56514bb8534f49a1514d499a4f4c486d4a4744ac53504d98504d4b6e4d49469c524e4ca755524f9f55524e9353504c9953504b864f4c4abd55524fa6524f4ca9514e4c934e4b49a24d4a488d4c494798514e4d9a5452508156545154575350775d5a598263615f846a686695716e6c8574726f9c7d7976627a7472a38c88859e96908c418d8784b0a49d9a93a29c99a1a6a4a0acaca7a4b9b2aca7a9ada9a6bdb1adaaa8aca7a7a4aea9a670aaa39fabada7a4c5b4afaeafb3aeadbbb3adabb3afa9a6b1aaa4a2c4ada7a2cdaea9a4e0b1aba7e6aaa2a0e0a69f9dd4aa9b9442fa652d37fb61214bff7e366ad4612e49963e1943fc712d50ff993f43ff993e52ffa44472ffb85a59ffa24a69ffaf58ffc0bab6bfa9a59feeb6b2acfbb6b1abfdbbb6b0ffb3aea9f4ada6a2b09c95909b918b868e8e8783c59a9690cd9d9892bf99948fc698928eeea59f9bd69b9793ec9e9994d594908bf39d9792d395908b83827c79eea39c99c1928b86ffaea6a1ffaaa39cffa09994ff9f9893ffa49d98fba19992ff9a918bfb98918afa99918bbd837a74ff938b87ff978e8afd8c8480ff908782ff8a827dff888179ff8f8781ff938b85ff958d87ff8d867fff8b827be6777069f37a736aec787168d9736c63de746d64d3716a61bc6b645cc16e675fcb6f685fb96c645d96635c557f5d57514558504bab6a635cc66d665ede716961b8676058bb6a635cdc6d665fe0716a63b1675f5896635b54766058514f554e4849564e4779605750675c544cc16a635cf0726b64d266605ae46a655ed66c6660c369625bc669625cf369635eaf5d5752cf605a55f567605af167605afe6f6760ff67615ad6625c55f76a645dd8615b56b85e5853d1625c57bb5f5954f3655f5acb605a56b95e57529c58534e9155504ba05a5550b65a5551b95853508a524d49854f4a47cb57534fb456524fc85a5653bc5a5653e95f5b59d9605c5bc0676361a86c67657a6c67659e807976b88e878792a3807039c04e1e38a74118449337144d8635144c7b34153f682b10495f290f4859250e3c5321096286331293a27664fcc8c0bdfcc4bdb8e7bbb5b3ebbfb9b6448f8382e6bbb4af729c928df9beb6b2fabdb7b4e5b4aeabffb2aca9eca7a19df2a59e9af4a09a95ed9d9693d99d9691f99d9793ffa09996e9958e89cb8c8680a4867f786a7871696f756e687b79716c59716a624f6e6860526c665f706f68638e766e6884736b66786d6661295d57554a6b625e95766e69a6766e68aa716b64936d66608c69635fab6c6661af6c67628c635c576e5c56505d5c564e3f514b4536514a435f58504952544e47815a544dd8615c55b558544da656524db65b57518656514a9c5a544db3585550a557534e9e54514ace5c5751bc5b5650cc5c564fd25d5751e05d59538a57524cb05a554fa756524eae585550a956534fb2575450a757534eb25a565285534f4b7a524f4b8f53504c9556534ea55855519854514d7f504c4a724d4a47b754514ea653504da0524f4d9d504d4b98514e4c834f4c4a5f4c49465a534f4d7a5d5b577765615e786d6a667d75706d95837e7b908a868491938e8a8697928e83a09a9578a49d994f9b959082ada5a39fb5aeaac4bcb4b1c9b9b4b0bfaeaca8cbb5b0adbeaca9a8a8a9a6a69fa5a19e8aa19c9a9aa3a09e91a8a4a396a7a5a3b0b1aeafd0adaaabd8a7a5a3c7a5a19fc9a6a2a0bea59f9fe0a8a4a2cba5a1a0b59b99963afc6d2f32fa632744ff7f3872e0672f55943f194afd75313dff853342ff91343eff9d3c53ff9f3e5eff93474dff933d5fffa147d0b7b0a9d2b7b0a7cfb2aaa2ffc4bbb3ffc9c0baffc2bbb5fcb2aaa6978f8984e9a9a19ac59e9791b39a948d9a938e88fcaca6a0fba7a19effb8b3adffb6b0aafba29d96fda29e97fca5a09ace96908c4f76706dffa9a29deda49d99ffb5aea9ffb5ada5ffb1a8a1ffb0a7a0f9928b86f3968f89c788807afd948e89fe968e89fc8d847fdc867e7acd7c7671ff928b85ff8b837fff877f7bff88827deb7f7873ee7e7772ff9189838e69625bff867e77c6716963ab6b615ad9756c64c8736a61cd706a629c655f586f60595083625a52e2716b6493635e56b16a635c8a655e58846760599b645d56b0676059bf6a635bae676059a9645d57b669615bba676059b66a625b725d554e695a524c3b524a446c5b534d4e564e479b655e56dd6e6660f6716a63fa716962e36f6760835e56506258524ad56a625bff706861ec67605bf86b635efe726b63d8655f58d8655f59fa68635eeb66615b9e5e5952b7605a55ca615c57b15e5854f869635dfc6b635db3625a55bd5d56519558524daa5c5651d2615a55ab5a544fcf5c56529b534f4a8a4d4945b4504d49c557534edd5d58559a544e4d82524d4bb4595553945e5958a26c68659c75706d81797471b5928a89bc9c939141c6531e40b04618509939134a8b361237772f103267290e3d5c250c3d5e29103f53210a6da23e169ca17663ffcac1bde8beb8b5f3c1bdb8bdb5aca6769d928de3b7b2ace4b9b5af6a9e9792cfb4aeacf9bbb5b3ffb3aeabfda7a19cf9a59e9afba59e9af0a19a96f3a19a96e699938e9a867d79dc938c88d08f898499847a74a0827973c18c847da8867e76a380777275786f6972766d6686746d68736f6863686b65617a6e6662656d63606d7168637a70696498736c67836a645f866a645f7b655e5a8d68625d90655f5988645d57605a544e54554f492e4f484155544d47404f494173585249af5d5750ba5d5851cc5f5952b35e57508f58524b594f4941905a544cd45d574fb859554ea657514bee635e57b55d5851ae5d5952b65b5650c05b5650a858555071524f4a94544f4d8b54514d9655524ebb5b5852b85a5652a258545093534f4a78524f4a9456534e9a56524fb05a5551ab57534f68524e4975504c48754e4a458a504c48b8534f4cad514d4ba74e4b49764a474499514d4a6c54504d705d59555a625f5ca0716d6a9d777371bd888480c295918c9a98948daca5a09ba9afaaa476afa8a3359f9794a9b8b1ad87aea9a6c2beb7b5dcc0bab6dbbcb6b2c2b0abaaaaa5a2a2aba5a2a0a9a8a6a48b9f999c919a9898b1a4a1a1a8a5a1a05f93908ccca5a3a3d1a4a2a1cba4a1a0c8a5a2a19c9e9a99cda29f9ed3a89a9445fb683049fe6d2837ff733261cf5d2a4f8f3c1949ff803234ff8b343aff893638ff8e344cff9d3d6affae4735ff84344fffa0455cffc157f5b3aaa2edb0a69bffb9afa5ffc3b9aeffc0b6abfeb7ada3fcaba198e79c948cbf958c86c8958c87ca928b84da99918ae299908ad8948c86fb9e968fba8a817d907e766fd68c847fd98d8481526d6462ed958d87fba19891f59d948cffaa9f97ffa29890fe999088fd9b918aff9b918be08e847ef6918780ba7f756eff90857ffb8b817bff948981d97f7570ff91867ff3837a74fd837973ff90877fff958b84ff998f88ff877e77846b6159ff847b74f67e746de1766d67ee7a716bee7a7168e1736a63df716962ef736962c96a625bad675f56b66a615ac56c645c845e564ec270665d8b635b52b46d645bcb6c635bc76c635c9c635a528d60574fb1635a53695a4f49a8635a539060574f55594f47725b52496e5d534b7e61574ebd6b6158fc746b61fd766c62f270665cef71675dd46d6359e36c6359ff766c61fb756c62ed6a625ae36b615aff746962ec70665ff46e665df16e655cbf696058fa6e655ccf685e56e46b6159de6c6158c3675c54aa635950af62584fb3645a529661564ec3635a52ba645a52e0675d54b35f574ef0665d54f1655b53f3686058ea655c55ec645b55d3605751b95c544fb3635954ab6b615ba7726761cc847771ff988a83e9988a834dd157224bbf4f1e61a8411769983e1857823513547534134c5f270d5b612b124455210a5e9b39129e9a6d5affb7aaa2faafa39ceca99e97fbb1a59de3a99e97b2958a84d89e938defa49993ae958b83f3a29891f7988e8affa29791f7998f89d18e847eff9b918bff9e948cfc958a837e7a6d66f78e847ebe877b74c0847972ac80766fa68277709d7c716ba37a716bc2807670bc7c726d96736a6393736a639e756d688f746b6558675e58a1796f6860685e5999736a629c6e66618d6b635e76655d587f645d588e625b565a59514c8e5d58537359534c48544c4559534c455b544e4657564f478e5c564ec7615b54cb625c54b95b564eda605952da5f5952a558534ccf5f5951d65f5a52ba5d5851c55d5851dd615b54b95f5954c65e5a53c15d5953af5956509a5b5752b35d59539f58534faa57524fae5954508155504b75544f498354504b8956514c8c58534e75534f4aa1595451a356534d9e55514cb056524cb355514bca56534dd656534db6514d4a9b4b48448b4745427d4b474576504d4b7b5754528b64605d8569656285716d6aa2817c7870827c7a44817b747997928d83a49d9a4499908f84a9a19ec5bab4afb0b8b2abbcbdb5b0c2b8b2aeaeaea8a6a2a9a3a2b6a8a5a671999495ada4a09e8b9f9a9892a29e9da2a39f9e94a29f9ea2a19b99a6a29f9db8a5a19fbda49f9ebda6a1a0e8aba7a6e0af9e9852f668313ffa63244eff723261c15525589d431f50fe742f4bff95393aff8a3735ff913430ff933538ff9f385affa8422eff803457ffc0565fffd45fe99d9386e49c9084d4978b81dc988e83d695897ffe9c8f86f3968b82c58a8077a1817770a281766eb082766f9e7e746de58d837be48d817aff92867fd6857b73bc7c736cdf857a73a2786e68c980766fff978c84ffa2958cffac9f95ffa2958bff9c8e85ff998b83ee8c7f77f790847bff9d8f85ff9f9087d8877b72ff8c8178dd827871e980746dff93857ee97f736cff9c8e85ff9b8d84ff9b8e84ffa19289ff95887ff6867971a16e645beb7d726aff887d74ff827770fb796f68ff7e746cff776e66ec706860d5695f59cf675e57df6a605ac0665c54a163585069594f487e5b5248875b5148d86b6058cd665e54f26e655bc8645b51e1685e56b761574fa35f544b7c594d438e5e514865554a407e5a4e448f5f5248c26a5e51d16b5e52d56d6054d06c5f53da6b5f539064574ce6706255c46a5c51b9695c51c2665a50fe74675cf0726458ce6e6055fb796b5dff7f6f62fd7b6b5dfb7a695be6736557bb6b5d50ea726256e3716155ba6d5d51cc6f5f53c46e5e52a267584dba6d5c519364564ad5706155e4716155c86b5c4fe56e5f52ce6b5d51ef706154f6706054f26c5c51e867594fa35a4d459f605149a363554cbd705e55e07d6a5fdd816e63e587746868e1632765cb54235aa93f176b9d3e1961853515687934155b5f270e6b662e145157230b5a8932119d8c5e49ea907e73fc9a877da37e6e66df8b7b70f398867bea8e7d72f88c7c71ef8a7b71c47a6b61fd8c7c72f082736aff938277fb87786fff938378ff948379ff88796fff82746a7a665950da786a61f17d6f66c4786a62ff84746eff877971ff897b73df7d7069eb81736cc9776a64a36c615b9b6c5f5a8e6b5e5870675b5474675b54926e625998685d56b872665fcd70665ccc6f645ba8655c53bd675d569c5f56508c5c534c69544c4478574e47564f473f6a534a427c574e46b25f574ebe60584eb360584eb85f574ebb5d554d83574e47b760574fb85e544c82564e47ae5c544cc15f5750c8605850c6625a52945c554de0625c53e8625d54dc625b54ee625b54a959544da459534dbe5b554f9d57504b9558514c965a544d9759524b8f574f4a7e534d487f544e49aa5a544ebe5b554f87544d469e57514993544e47a3544e48a6544f48a7504a46a04e4a45724944406e4b464265504a46825b555070605b55976e676296756d67ab81797490857d76738780799b9b928b6d998f8976a29990c7b3a9a1e1bdb2a9f9c7bcb1efc4bbb2e4bbb1a9c3b1a8a2b6a79f9aafa59e99b3a8a19db2a7a19da9a49e9ab9a8a19e8fa19b99809b9795b8a59e9cd3ada7a4caafa9a4dbafaaa9f4b2abaaf7afa9aa58ea612c49ee5f2546ff702e59b94f2552b54b2156fd7d3559ff963d40ff95393cff8e363fff9b342eff852d4dffb04740ff923635ff9f405fffd25d44ffad44f0877a70fe8a7f73fa877b72e783776ec5807469d282746aff918377d47f7169b57b6d65916e635b73675c549870645cee84756cd97d7168d67b6f6682695f55ea7e7269dc7a6d65bc766960ff84776dfa7f7168e5807268ff94867bff98897efc8a7b70ff958679a577695fffa08f84ff8e7f76df7e716ad87d7069ff88796ffe8b7c73fe887970ff93837aff877870a574665dfb83746aff908078ff8b7e75ef7d7068a86f6058bb6f635bbd6d615a7d62554ea8655a51e26e625be56d625bbd635952e8685e57fd6c6159e4685e55b760564ec060554d76574c44a15b504793584e46af5b5047c561564de064594ff4675c52cd60554c96574c449c594e44d1615448f16a5b4fcb64564aa85c4f43c9615448fe706051fb74635475594a3e5e55463aa65f5044bb6253476956463ba661534696605246a6635548d76e5e4fc26b5b4da36a594cc4705d4fd2756252d0725f4fc7735f4ebe745f4dde776351d9776250e9786251c4715c4de5776252b4705b4cde766050986c5748a26d5849a36e5949cb75604fc774604fde78614fcf75604fd07561509f6a5747c76c5849e66c574adc6854469b59483cab624e41a6624e41a2634f43d96f594bcf705a4cd2715b4c4bd5561e69d3592571bb4a1f619e3e185688351571803a1a61682e136c672f145d57240c527c2d0e9f784a35ff7f6a5bfe7a6558ff7c675bff7e6b5df1746256ff79665ad16a594fb664544aff766358ff796659ff7f6b5ee26b5a4fff7a675bff7d6a5fff79675bff6f5e53cd5e4e458b55463fd2615048af615047ea6c5b51f4726157d16e5e55be6a5c53e871625adc706058e2706158c76a5c53b8665950a965564d715b4d44915f51489a5f5249a85f534ac366594fda695b52d2655850c863564e8c584d459c5a5047c85f534ae0645951bf5d534ba1554c45c0595148ec62584efa675c526f5248405650453c7050473e95564c432e483e37705248407e544a4273524840a15a5048b95d544b85584f46a95a5249b45e554dc660584fb75c544cbb5c544bd7615950e5625a53be5a534cb459524a98554e46bb59514989534b447450494381524b456c5048426451484299554d47b05a514ae25e564edb5a52499a504943a8534c45a1554e46a1544c45d158514a945049447f5149446f514a4557554d467b625852b27568619f786d64a27e7369697970659c8b80779c93857d7594847ac6a7998ca89f9084d0afa093cab3a498f9baaca0ceb0a195e7afa194cba4978c95978c85dba59993ad9a908c858e8583b09a918c9d988e89b09c928db89f938ee5aba09bada39792cca69a94829d8e873fe25a2936e9581f4cfe73354baa451f4ebb4d2263ff78384dff8d3650ff933b38ff8c3233ff90322aff8c2b47ffa03a3fff973a48ff993d34ffa83f40ffb24f52ffa1487b4f220cc2695c54cd6c5f55a565584fb9695c54f775665dff7c6c62f5786a61af685b52b7675b529b64574fbd6b5d549462564ea364574fc36a5e54d76d6057a965584f5c584c44dd706158ff796b61ff7d6e64ff827368f97c6d62ff87766aff8d7c6fff9583756768584bb6736459ff8a786ef9817167e47c6c63e87a6a62fa7d6d64f37d6d65ff88786dff978479ff8f7d729a6d5e55df7a695eff8d7c70c2705f575c5a4c43db726259a46758505c574a41a464564ecb685a53c6655950d463574fe8665a51e462574ebc5a4f45ce5d51488d54473f7950443b9053473dc25f5147d961544afa65584deb61554ade61554ad15e5047c45b4e44ef66574acf5e4f43da645346c55f4f43a35a4a3ebc5e4e40b05d4d3e7f5545375a5342347658483aae5f4d3f905c4b3c905c4b3b975b4b3c725948395b584738735f4d3d8c635040976853429e6b5745cc755e4ae27e644ec9795f49c3785d47d97d614ac97a5f49aa705744d3785d4af680644fd57a604cae725946966b5341ba745a488d6f5543b7775d49be7b5f4afc886a54c37b604bd47e624dbe755b46c3705642f57b5d48fc755844e2684d3cb1604737a55b433490574031b35d4536d1634a39e0664c3a69cc5c258ef4713475c5502156a140184e8936156f853d194c5f270e5a602a114353210b5471270da96e4029ff735a47a2513f33ff695245ff624e42c5504037f659463cf958463bfb554439ff59473cff624e42ff614c41ff624e427745362dff5e4b3fff604d41bc4b3a31623d30279945362de3513f3655413229984f3f35d05b4a40d6615045d6635247fc6a584cfc6a584cce605044ba5d4d42c55f4f447e53443b8953443aa258483ed7645348da625246fc68574beb615246eb625347c1594b41cd5b4c43f0625449d25a4e44d65e5148c2574c45a4524740b9554b42b0554b418951463c534c41376651463b8b54483e8053473e8453483d8452473d7850453b5b4d4238584f433a7a52483f7250463d8053483fa3574e45a7594f46ad595046ca5d544abc5c5249e762584fdf60554cbb5a5047cf5c524aba5b5046b35a5047a1564b44b3574d45b6584e46ae574c45e05e544bd05c5249cb594e469352473fbe584d459150463faf544a43de5b5047e95e534add5c524a8554494290594e46835d524a98685b5270675a527a6c5f55a0796b61b47f7268948170654f79685ea48d7c70d799897df4a29185faa59586be9e8c7ed2a59283e8a49385ffa89789eea090835c837568c191847bc691837ba68b7e77b68f827bb28f807bc0958881d7988b85eba09188f4a3958ce2a28b7e2ed3501e31ef5c1d3bfd6c2b5fa0401e4dab421e58f76d327fffa24950ff8b3846ff8a3737ff8f3627ff822d2dff8e3335ff8c334fffae453aff9d383bffa03d4aff96415aff8c434c461d0951492313b8645951ba645a52df6c6159b1665b549562564fae675a53665f52496a60524aa6625750a9635751a6635750a7635750a261564f995e544cae62575165584e46cb675c55bc665b54d2675c55db6a5f58d16b5f59c86c6059e072655dcf72645adb75675b7761534bb0675c55c7695e58a2625750e06e615bc2685c55d16a5e58d96c6059de6f6259eb72645bd86f6159a26659509a675a52d76e6159545a4e45e572645ceb73665db5695c54c56c5e57ac675b518e62564e8e62554cb6695b52ba655a51aa62564c7f5e50468d6052488f6154499f61554aab63564cd66c5f53d96a5d51dd685b50e366594ecf64564aab605347e66b5c4fb7625447b9675649be69584ab165544692635344b1685849b06d5a4c7d645243505c4c3d6f6251426f62514274605041836453446e61504170625042926957487864534586695647b2725e4e98705c4aae78604ddb846b57d0836955d0816853dc876d58cc816753d9836956a0765e4d68675241cc79614fee7d6351c8755d4bd4755d4bc9755d4bf47a604df17a5f4ca86b5241cc705744bc644e3ddb67503fce675140e0675140dd654f3f9d5a4738a05b47399859463a9e5c4a3d825444389759493d5b994d2a6ee3632a55bb4818459c3b145a903c194b7831133c5f260e4b5a260f4554220b4a5b210b6b6e3115f94936293a35251bb73d2e24ca3c2e24b03a2c24c2392b23ce382a22d6382a22dd3a2c24e93c2d24fe3e2f26fb403027cc382a22512f221bcd382a22e9392b238c32251eff3c2d25d43b2c24bd3e2f27d646372dd24c3b31d6524136bb534236cd574539db554438ca514035ae4f3e32944c3c30954c3c319d4b3c31c0514135bd504034e157473aed59483cef59483cef57473a83493a2fc8534438dd57483cba4f4237b752443abd51453ba94d42388e4d4137ac4f4539a352453b7a4d403655493d32614a3e33604a3f336c4b3f347f4e4238894d4237884e4138a352463c774a40387f4a4039a952473f9b4e453c9c4f453cb6534a41a8524940a251483fc5584e44c2574d43c45a4f44bc554b4154483c334344382fa851463dc053473fa551453dab52473f9250443cc1544840ca554a41bd53483fd2534840da564b42b9554940aa53483f9251453cba584b426453453b81594b41a960524a9b65574daf6f5f54af716156966e5f53a17061559a72635897746458c6806f63c0837065d3877569de8b786ccc8a786cce8b7a6dd58b786dcc87766ad687776a4566564b9374665dd183756cd786786fd8887870a77e7068c185756dd38a7a72ca87786fe0917f7332a63e172ed6521d37ff6d2f4aa1411b7dc2562844ed60285dff813b77ffa34959ff903d46ff99413cff903630ff91352bff822f4bffa73c4bffb8413eff9b3d2aff782d44f86d2d52d05a2744421a094c451c0a423f190a9540372fa6443930b0463b339c4439329b4539326141352e323e322a9e473b33744237318d4439328d443932a6483c34a6473b357e453a3389443932814237318f463b339a453b34d24a3e38a4483d36aa4b4038c252453eca554841d7584b43704c3f38924f433c854d413bac52453f874c413aab51453ea552453e8c4e413cbd544740c4564943a551463fd85a4d46c05749429351443c774f423a9652453d5f4c3d369953453d9851443ca953463da852453caa51443b944d40378d4a3e359e493d3599483d349c493e3595483c338e483c3280473b328c483d33af4c4036b24c4037b34d4036d450433877483b30a34c3f33ac4e3f349c4c3e32b0514133a3524131d15644358b4f3e2e844e3c2e724e3c2d4d483729594b3b2c4b4737295d4c3b2c744c3c2f80503e307f503f306b4f3e308e5644359d5d4a3a955a4637965f4a38bc6a523dc46e533ea26b503b7462493592664b36996a4f398d6b4e3960664a34405e432f946b4e3a84654a37a96e503cb06f513db972543fa071523d9870533dac75563fa3785841c8775840d272523cb9644834a45b412e664f3625344a3222a0533b2a9e51392a9b50392a9550392a8d4f38296792452048c6501e44b34315489a39164d8c3816447630134162280f3053220b3c52200b42501f0a44702a0dbe3e2e23a0382a215632251c95342720a9342720a632261faa31251e902d221b902e221cc931251eb530241dd532261fd331251eeb34271fd632251e8c2d211b33281d16922f231c9f33251e6232251e93392b23863d2e25a345352baa47372ca147372cb749392da947362cb247372ca045352ab047372ca245362a984434299143342996433429ab46372cba46372cb546372cc047382c6e3f31289442352bb144382ea844382fa042372fa2453a308d44392ec74a3e346843372c7844372d5340342a5541342a5541352a473e32285941342a6e40352c8f453930753f352c5d3d332b94443a328a463c348e443a339e473e36a2473d35ab483e3677433a326d4138306441362d5f3f352c74453a2f5741362c3e3e32296c42362e6a41352d6d43382f80473a3184483c326a43382f5240342b7f453a3097493d34b54e4237b44f42379d4d4136a44f4237935142374a4d3e335c534438855b4b4070584a3f925e4d428c5b4b419f5f4e42b4614f45935b4c417858483d9b5d4d418f615044c367574ac76b594cad675649ac635448e36c5b51e46a5a50ec685950b35e52489a5d5047935d5048a063544c805f5249ab6758509063554d8361534b8461524a466f2a123eb3421939f7662a56aa4a1e74c856266ffe72324cff76315dff843b58ff863a5bff9c4059ffa04035ff91352bff8b2f38ff923553ffb63e45ff9d3b4cff9e4337fe6e293ec5532058983f1853813a1853401a09393a15074d38150762312821723329237d352b2590392f287d392e2755372c247d372c256332282254302721593128225b31282357322822443128215d352c2577382e2888392f2a82382e298f372e299f39302b943c332db4413630a5413730b3453932984539327641352f763e352f763f352f663b322d613c332e5d3b332e633d342f623c322e553a312c613b322d653e332e6d3f352f5f3e332e483d322b70433832734438325741342d5e41352d603f342c503d322a4d3b31294e3b31295b3d332b623e342c643e342c553a312a663e342d633e342c7240352d643d332b713f342c7740362d904439308e443931a0463b319e473b3195473b3193463a2f93483b30ae4d3f33994a3c30914a3b2f60423428574133264f4132265042342652423426504134276b46372b804a3b2f78493b30774b3c308b4f3f32754f3f328251413493564436b45d4a3baa5e4a39965d4837a4614b3a96614c397e5c46359e634c3aa7634c397d5f4836785d46357f5c45367e5e4737815e473791624a39a2654e3d4a58433288644c3a90694f3d93644c3aa3624a39ba5f4737be584233934e3a2c4d4b37286c513c2d745440327f5a4536725b4638735e493a75614b3c4bcf582346af4116509c3a154185321247783113516429113654210d5659260f364b1d093b65230bbf544238a54e3e348a483a328f483a32804537308d43362e803e322b793d322b65392e286c3a2f285e362c2671392e27853a2f287e3a2e287c3b2f28823c30294d392c246f3e30296e41332b4c4333295a49392e6c4d3d33634f40354e4c3b32524c3c31634d3e34795142376a4e4035694d3f346a4c3f356e4e3f356b4d3e34764d3e346c4b3d336c493c328c4f4036985143378c4e4036905042379d52443a8d50443a8c4f443a8c51463ca255493e9154473d7951453a5a4c3f334d4a3e3248463a2f4e44382d5241352b503c3228683c3229783f352c6b3c332b5f3b322a733e342b6d3c332c753e352e7d3e362f904038307d3e362e543b31297b3f362f8340372f7540362e7e40362da34339318c43392f7b463a306f43372e7043372f674439306d46393079483b3266473a314e463930664a3d336f4e41375c4b3f356f4e4138754f41388e55463c8759493e6559483b5e5646396f55463b5f53443a534c3f365b4d3f36654d3e353045372d654b3e346b504238765343398656463c8655463b8e56473ea55c4d436c56473db7625349b0605249bd64554d695548405553453d5d55483f62574b426d594d45695a4d45685a4d456557463d4a64260f499436153dd652214a983e1960d0592575ff7d357dff8e3c63ff813a59ff73334fff8c3957ff993c42ff8f3637ff983435ffa63a66ffd75535ff8d3149ff8e3a37f0622850c95925368d3c16424f1e0a5a61240c537232154b3d1808393614062f31110560291b1345231b1662271e195d271f1954271e184e261e1749251d1758271e1857261e1859271e1954261e1937251d1845251e1952261f1a56251e1a6127201c6928211d6d28211d6d28211e4e27201c2d28201a412c221d4c2f251f4f302721322c231d292c221c442f262064332b265d322a264b2f28233c2c2421422d2621472e26215b3128246f352c286b362c294531282358352b2655352c2652332b2536312721473429234a342a233c3128213d3229223d322a2241332a234c352d2548352c2547342c244e362d2554372d26673b3028613a2f28623a3029793d332b7e3e342b7f3f332b6a3b3128773f342a6e3f3329673f342a7541352c6d40352b603f32294f3c302634382b2038392c204b3c2f24503c2f25553d3026503c3126563e32285f40342b4b3d32296241352c6e43372d6844382e76493c315f47392d5147392c4548382a9d5745377f52403375504033815241347c514033434636295a4d3c2e815340337c514031534a3a2d6c4f3e3083544234564f3d306553403375564435795543346e4f3d3089503e317a47382d6e4333285d433429554a3a2e655243385a5b4a3f4f62514652655349586d594c53cd57254db9491d2e92331033823010487a30123f65290f505c2610605c270f394c1e0a375b20097f63534a8861534b4d52463f2c4b3e3627493c32655449426050453f614f453f514a3f394d463c374a433a344542383263463c366b493f39654b403a4e483d36624f423a544e423a5250443b334d3e364554453c4c5949404056483f46564a3f4153473e4152473d3e50453b4b53463d4350443b5052463d5a56483f6456483f65584940655649406b57493f77584c427b584b426a54473d73574b4170594c4166594c40625c4e43755f52476c5e524753584c414f594b402d51443634504336424c413450463b31543f362d4b38302852352d2656372e274f352e276b39312a69372f296838302a6237302a5f372f2944342c2541352d255d3a312a783b332c5c362e2860372f2867392f284e362e2736362c2444392f274f3d322b553e332c2d392f275140372f64463b3356473c33564b3f36614e42396850443b4c4c40375850433a5951443b5652433a47504237455042375854463c5d55463c494f41385c51433a494c3f362646382f50493d3454483c34694c3e37614b3e366d4e4138684d40376852453c5a5648402a534339425d4e44395d4d45385c4e44365c4e452e5c4d40355e4f44676a5c555462554e3e5b4e46335a473d4e69270e4a88331438ce521f5e973e1c52bf51215cfa6e315cff753262ff7d3752ff6e314eff7a3353ff89374bff98394bffab4351ffb7443cffa73b65ffa34643ff903940ec672956bd522548762d1138471a093e54200c574b200d543c170853753314423916084637150648421d0a304b200b364c220b354e230c3351260c3955280e4051250d474f230d394e230d4e52270f3f52280e3550250d3250240d3653270d4654270f4553250e4051240e3f53260f4e53260f4a51230e4d53270f715f3113675c2e126e5e30136f5b2e12554f240e4e53260f4451250d3f4c210c605427116555281163542811605327105651250f555427104c52250e6255281166592a127e5f2f167f5e2e15865e2f15795c2d147c5b2c13825f2f158a623116745b2b12745828117a582a12685629117256281174572a12715729127c592c14675829116d5e2f13755f3015615f2f145d5f2f136a64321574673415675f2e14615e2e136b6131166a613015645f2e1365643313595f2d12565c2b10645e30145a5c2c124c55280f4953260e4152260e535527105055260f5f592a12685c2d155c592a124b56281141572a1050592b12836433186e5d2d165f5b2c13505729114f5527104654260f4c53260f70592c1367572a117b5c2f15895e30167b592c137e5d2f17735c2c1457572810625a2a125e582912795c2e16705f2f15696130167e6533196f653216596330155c5f2d13555c2b12686131145f5c2d1260592c123bc24d1c4cbe4c1d58a53e164f943a164e8739164e6d2d1255612a126c652e1333481b094e5b220a4750240e665529125550250f4d4e240f484c240d444e240e58512811374b230c354a220c3a4b220c3c4b220d404e240e414f250e3f54290f3e562a0f495529104e52260f4352260f4d562b124b572c113353260f3e5729113057290f555a2d12515326104d4f2510464e250f544a230e5147210d4e48210e75542b1364562c116d552c1375562d134f4c230e605227114a50260e474d230e6b572b136b562a1272572b146a5328125a4e240e5f4f2510554b220e5c4a220e5e4d240f76542a137d562a13945a2e1684582c148b592e16865a2d158a5e30167e592d157a562a1389592d1575572b136a562a127d582c157e572b147c572c156b562a136f5a2e14705a2d1463562c135d562b12715c2f157b5f32156c5b2d14665a2c146a5e2f1673613217665d2e14625e2f145b5e2d135e5d2d12686032165c5d2d1458592b1253592c1343572b115a572a1351552810625b2c146e5f3017615d2d14535b2c13415b2b11445b2b12816b371a7d69351b646632175163301453622e1344632d12496630126e6e371978723a1a7571391b8f763e1f7e70391b80713a1d6e6c35184d642e12566630155c663016766934196b68321862713518518d371364a2421a47983b183cb5491d3ff863284dfb682c45f964294bff70305dff803a56ff823750ff89374dffa94254ffb8424affaa3d31ff8a3251ff923b4ff06d2b3ba442193561240b394b1d0a4059240d4d5a240d38451c0957471d0a51421b0952692d125f451d0b2349200a26481e0a2a4a200b3850250c3150250d3f52270e4d53270f5553270f3e50240d374e230d3c50250e4955280f3d50240e3e52250d4e55280f4055280f3550230c3e52260d50582b106f6132135e5c2d11675e2f12575c2e1063592c125d5d2f113d56290e454f220d5b5a2d124551240d64592b1268552712625226106153271172572a12715a2d13795c2e16755a2b146d5929117e5e2d1481603117875d2d147f5f3016755d2e157a603117845f2f15735a2c13875d2e158c5c2e15675528117b55291276552812875b2d157f5c2e15895e2f16755d2e14825f2f15665d2c13666130146a6331145d5e2c12675e2c135e5d2c12625d2c125f5e2c125f5e2c116362311360602e135f5f2e125a5d2d12635e3014625a2c124456280f50582910725f2f14615a2b137d6132187161321779623218756433176b62321764643317806635186a602f15625d2e16635d301659582a134251240e4552260e4153260d64582a116c5b2d13705d2f156a5d2e157a6030187b623117726330156f602f15715f2e166d5e2c147b66351a4860301456653418546632155d6a35166069361656612f136862311653582810665b2d124bd0551e58c74f1d48a43d14388d351233782d0e476f2d1163672d1363602811434c200a5652260f5552250f565327104d4f240f31471f0b2e481f0b3f4e240d4e51270f4651270f314c220c2e4b220c294b210c374e240d4654280f3f56290f41572b105a5d2e1460592c133d54270e4356281049572912505d2d1249592a12415829104b59291048582b113c50250e404d240e4e4f270f68542b115951281067572b1262582d1163552a12735d32144a562a105250240f675b2f154a53260e5954271074592b15665327126553281278562a1476552b137e542b15785328137e54291383572a13995e321a905a2e168f5e31187e5c30187c5a2e168f5c30177c592d14985b2f17965c301871562a136b5529127a552a15945c2f1878592d158c5c3018825a2f16895c2f176f5a2d15685a2d14685e2f145f582a1266592a1268592a136e5d2e14625c2c135b5a29116862321660603014616030135a5d2e145d5e2f145e5c2f134c572b11525729117f6333175c5a2b137a6334197465361a746533187266341865653216666936197a6a371a6f6835195e6431176269371a6066321842612c1146662f13466931126f733c1a687038196e723a1b6c70381a81753e1f7971391c70703718646c3517756e371b69673117736d361a496934174a7c36174c953c1763cb552636f96a2740fe742b47fe6a2e4bff733054ff733161ff863952ff84354effa3434bffb14241ff9a353aff8a3330ff852c65fb76353b9d3d15385720094c50210d4559240e5d5e2710705e261046471c0a634b210e4e431a0959421b095157230d344c210b364d230b3a50250d4051260e3050250e58552a104252250d4e53260f4150250e3e4f240d3950240d3a50250e3b52260d3a53270d4c5b2d104a5b2e104c5d2f11465c2e115a5e2f12555c2e11655f30125f5d2e115b5d2f11565d2f125a5f3213475a2d104556290e49582b10525528106d5d301473582b126355281062552710705729116d592c13735a2c14725a2b13785c2c13715b2b13775c2c14845f3016755e2f146f5c2c1385613117785e2e147e5c2d14845e2f1789603117755a2c136a5b2c13865f301798603117976434198f63331786613116735d2d1470613015746232166c612f13585e2b11615c2b125a5a2a12645d2d13675f2f146d63311472663416645e2d1462602f1372602f1467623214515b2d124b57280f535e2e116e6431167d663518585b2a126c61301761613015646332174f5c2c14495c2c13405b2b135b6131164258281149592b1249582a113852240d50552910665d2f13655829115c5a2b13886533189067361b8067341a7c67341a565e2c13626532168169341a8169361b69653217806b371b606c361854673115616834185c663216626130155d5e2e13545a2b1159582a1135b74b1749c54e1c3b9e39122e8b33102a7a2e0e346c2c0f48642b10535e271044431c094951230c4a51250e5c5428107254281264562b114d53280f4f55291058542810555429104552270f3b4f240d334f240d3b55280e4b5b2c1137592c11646133164e5d2c12616030154a5b2c1346582a114a5c2c12475d2d13475b2c12435b2c1152603113585f3114525c30124e592e125e592e1359572c11745c31156a5b2e135e5b2f13595b3013635f3315505c2f1348572a10545c2f13525729117f643619805f301670572a13695528127c572c1477572c1479552b137f572b1482582b147e592c147c582b15915e31187f5c2f167c5c2f16865e31188a5d30178a5b2f17925a2e18985f331b825a2f1671592e14885d3219a15e321a9d5f331a985e32198f5e3218845b2e17715d3016725f311770603015605d2c13675c2d145e5a2b13625b2c136d5f301673623116706333166c603117696030157c62321773643517595e2f14495629104c5d2e12716533167b693719565e2d146363311662633116696b371a48602e134d65321641612f144b6431153d5f2b1243622f144a6531153f652f134e68321463723a185e6d34165e7037187d773d1d937c432276733b1d7e763d1e6b7138196270391978723a1c7570381b6d6e371a6b6c36195d7f33155ccb522332fd672638fe6f292df35f2248fb6b2a51ff743256ff7c3551ff8f3a4cff8c3650ffb54548ffa23c48ff993934fd742b39d65a20368b3811464f1f0a2a52200a3059230c435a240c565a240d5856210c44481c0a56481d0b6c481f0c53421a09533f19084957260d555b290f575c2a0f63632e104a5a280e3f59280c3b59260c4e5d280e6268311248622c1042612b0f4c6a3113526d34145c723513547639145c7c3c15627e3d16567c3c155d7c3a14647f3d166d803f176b7e3d165d7b3b148d84421b61803e145c8140174b7d3a124b793914597b3a16647937156d7836147a813e18757b3a18777d3a18747938176a743313707132147d783816747231157373321583783717596e30126d733215707333147f793818877335168a7335188a7234166e703315a773371a8f6f3316996e33178a6930159f6e35178c642c127d622b128a622c1289622d1386632e126c5e290f4b55220b3d5120094f54220c5f5a250d875f2910855c280f765c280f6c58250d6859250e4753220a4b55230c5356220b71602a1082602a10805e290f6756210d6957220d6056210c6b59240d4953200b5256220c42531f0b5555200c4c531e0a4f55200b45501c095b531d0a4c541f0a59571f0b57531e0958531e0b54531d0a7358210c7259220c765a210c785d240c59561e0a67581f0a805c210b7a5f230b825f230c615b210a6762240b5b561e08765f240b755c220a62541d095b511c085e501c083cbb4c1648c34f1d429d3a11358c3410337d3210326a290d2e5b240c3052200c52431c0a5b481b0850471a07704c1d09694a1c095d481c096a4b1e097050220c62491d0a5f491d0a4345190754471c09614b1e0a694f220c744f210b44451b084c451b084d491e0a5a4b1f0b654e210c49461c094d491e0a504d210c6251250d5c52240d5652250c5952250c6256270d5d55260d6f57260e6e58280e7c5a290f7c5a2a0f6e5a290f865b2a11695b2a0e505a290e5058280d5356260e6a57270f6a58270f7c582710805d2b127e5e2c127f633014765e2b12785e2c13845c2a12825d2b137d59281272572610855c2c135f52240d6350220d7a5527107b5728118a5729118e5b2b138f5d2d14645a291093602f15885f2d1499622f157c602d139b663216805e2a11675d290f906630157e65301477662f126c622a113c57220a3856220a5a5f280e64632c106860290f75622c1069602b105c5d280e585b270e3856240b3a55240b5257250d61602c1077602b11795e2b115c58250e6159250e6159260f645926104f55240e4453220c4151210c4c54210c4755210c4158230c3e541f0940531f093c56210a4055210a495520094a55200a48531e095a551f0a685a230b6657210a5858230b4d541f0a52541f0a6f59230c6f5c260e83612c115ca8461c47fb692b48ff6e2b34ff692833f360243eff6a2d4dff793369ff913e58ff933c4cff9e3a58ffaa4346ff9b3b4bff82323ccd5920408a3814324a1c082c57210a2e58220a2e531e0933511d0a374b1a094f3f1b094d481d0a584a1f0c61471e0b5a411b0a543e1808533f190848481f0d43471d0c484b210e4d4c220e49481f0d4c471f0c4a451d0c4c451e0b45441d0b49461f0b4548210e524d230e3f4e220d575629114053230e4855260f555c2c124f5e2b114e602d135767311551652f15536a33165a6b35175969351650633114555f31154d5728104855260f585a2a11645a291267572812765e2e14715628126c542712665326115f532611675528145c572812595729145f552612675527136c53251265542713615325126f572a1567572a145c5223116d582914695829146758281468592a14645c2c15595a291267602e177164311864602d15716632198a6b361d5865301657622f16675f2e176c5c2d1662532712615025116b5328126b5428126f572a136c592b1370562813695527116a5a2a1368592813685e2d157b6d381b6c673118666832185b622d1555632e15465725118769361b8b69381e725c2a176a5f2e16735f2d167e622f196b602d168368341b8f67331d8366321b746631196f663118515f29145f6530185b642e177365321a9669371f8f64331c855e2e19785d2c17655929145f562713745d2d176b5c2c16651d0f066b1d0f07aa2010099e201109731e0f073fbb4d174cd25b2340a13b104493391243883a153f743212305c260d3652220d49421c094c1b0d054f1c0d05501c0d056b1e1007641e0f06591e0f06511c0e06791f1007771e0f076a1e0e066a1e0e06601d0e06411b0d04521c0d063c1b0c043f1b0d0421180a033e1b0d05531c0e05441b0d05591d0f064f1c0e05611e0f0664201007411e0f05602010066e211107672011076a2011076920110679211207802111076a1f0f065c1f0f065b1d0f065e1e0f065b1e0f06611d0e065f1d0e05711e0e06821f1007701e0f065f1d0e06781e0f066e1e0f06741d0e06811e10067a1d0e067e1d0e066b1c0d065c1c0d05681b0d057b1c0d06731c0d06881d0e079e201007781d0e06831e0f077a1e0f078e1f1007901e0f077f1e0e078d1e0f076e1c0d05931d0e07701c0d06a21f0f08881f0f07641c0d0546190a04571b0c05581c0c05751d0e067b1d0e065a1c0c05521a0c04661c0e05651c0d05461b0c045a1d0f054f1c0d05671c0d056d1e0f065e1c0e05591c0d05671c0e05581a0b04581a0c04441a0b0549190a043d190b0539190b04451a0c04431a0c042f190b04371a0c04331a0c053b1a0c0444190b04521a0c0447190b045a1a0c057b1c0e067b1b0d056a1c0d05641c0d056f1c0d05761b0d057b1c0d067b1d0e05619d421b4dea5f2546ff67294dff743324ed5b204eff723243ff76323bff772f70ff98404dff883257ffa73f4aff953849ff772c4dc355214e8035113a4b1d0937662b0e3a61270d3956200a36501d09384b1b094e53240c474e210a58461b0a59491d0b56471b0a56431b09543e170858411a08474a221030451c0b4a49210d4749210d4249200c41481f0c3c411b0a45401a0a363f19093b401b0a3b441e0c434a210d4f51250f465528104a5d2d125365301552673115596e361872753a1d5773381958773a1b5673381966743a1b69753c1b626a3619525c2b115d5c2c136f60301574613114716030158063321887633118765d2d15806231197c65321968612f176c632f1864612e17555d2a15675e2c17665c2c176b592b15735729156455271371582b15775627155f542512715d2c157a602f18655c2a1573622e188c69341c906c371d826d371d826e381f6a6731196d6b331b686c341a596b3218646630177065321a6c612f17775e301865522611645327116a54281271582913725a2a14745c2b1474602e16775f2c176f6430187467321a5d66301753612b1562652e185b652e17435c26124657241178612f18916a371e465323104a56251177602e187a63301972663019826c351c8167301a7968321c7668311b7d6e361d5d652e175f652e166f6732195a5e2b15765f2e187e5b2c186156281456562813555729135d5a2b157763311972622f187e66331b7767331a746d351c8072371f7673391f6d6f361b4dcc572059a8421451933b144c8436133d712e10385e270d3354240d49421b09594f24114d4f24102d4b210d514f26124b4e2410524d2411504e23104551220e415725104f622b155571351b517a391d5578371a5373371a576e35194c612e145052260f3c471e0c4f4b210e3c4a1e0c3c4f230e3e53240f4c5c2a125568331842652d13507538185b7d3e1d547f3d1b7a8442225a753718536b311654622e145b5527125b54291169582d155a562a135b532711675c2e157d6734197c6b361b88703a1e8d753b1f796e351b89773c208c783e216b6b331a66653018675e2c165c5427144b4820106d502615664d241277522916714d2413724e26146f5228146b50241366542713845e2f186f5a2b15605a291483622f19826331198163311a7c5f3019755b2d18765a2b17685728155b5929145355281267582b16715a2b15655d2e1770602f177364301771653117846c361b786e331a7470351a687233177171341a6d73341b6871351a626e3318405b26114c5827114250220e4250210f3c50200f505b28148270381e6c6f331b3f7234175c7f3d1e748943226a91472487a3532d769f4d298a9c4c2b688e4324718a42216179391c50662e15696631176e67321a58662f1788753d20606e33195775361a5278381b54b2481c59f1682b4aff712d47ff6a2b4aff712f46ff763245ff7b3339ff7f2f44ff823043ff843251ff8d3650f9732c57c056213f6b2a0c455e270d476f2f103e61250d4d5c240d3d501d0a3656220d4d7a3c1c4a793a1a4a7c3a1a4d43190a5a481c0b56471b0a5a481e0a4a3f1708554019083e461d0c41491f0c46481f0c47481f0c4448200d45441e0c42421d0b3e3f1a0a43411a0a3f411b0a35441d0b3a4b200c3e53240e435e2b12586c35184f6e341752763919587b3d1c597d3d1c537f3e1c5d8442205e83421f6080401d687d401e71743c1b68673216695c2d147a62311771633115886d391b7c703a1a88743c1e6e6a341a86723a1f736e361b7a71391e79743b2081743b20806f381f6a653019565f2c15675d2d176d5427136f55271477582815735b2a15735d2c16836a361c836c371c746a341b806f371e7d71391e7f733a1f7c753c20897a3e2377763a1f7e7b3f226a763a1d68783a1d6c72381c6f6e371c65622e17615a2a14796131167a633317675b2c147b6230187966311a8068321a7b6b351b6d683218736e361b6d6e361c7674391f6b70351d3b642b1442622b1455682f1755612c167a67331b7d69361b6f6431197c6a361e776631197268321a7d6d351d8f72381f8772391f867139205d672f1857693017736d341c5a662f187e69341d7063301a5c5c2b166a592b16665728155d5a2a155f602f17676431186a632f186f6a341c85723a207573381e7e7b3e2379824124607c3b205f75371c7bd45d2551a54115468734103d792f0f3d6a290f385b250d3152210c3b471c0a4b4f220f53522611555024105c5328124e4e220f534b210f4d4c210f4e5426124a5d29144a692e165079391c4e8a3f1d4181381756813c1d5a7a3b1c516730164b5728114250220e4c5726104b5d281248602b133c5d29114c642d14496b30155177391a527e3d1c5787401d4f8b411c538a411d6486411e56783a19586b33175b5f2e145d532711715c2e156d6132176d6432187e6b361b7571381b807b3f1e8b814321818141206b7b3c1d7c8140217c8242216675381b7f743b1f7e6d361d7f602f19765026145b4e2412594f2511725629166e5327146c562714846030197b602f186e5e2d168168341b826b361c66663017756b351b6e6832196e6733197966341b8463341d725e2f186a5e2e175b5a2a145b5b2a13665e2d1565602e17565f2b156167311785783e1e7b793f1d786f361b7174371b8078391e6c743619667435186c77381959703318616e3217676a3118555f2c152752210d4356251044612a126274381b72844322638c47227592492767994c275a9344216ca14f2974ad542978b3552a70b4582b6fa44f2944873b1b5d823c1d586f331a5c5e2c156669331a567135195a7e3c1e6c86402257873e1f528a411f669b4b2343eb5e2441ff6a2851ff783461ff843d48ff803647ff7a2f40ff873337ff722c40ff782d49ed692755b24c1c5563270d3b5a220b436b2c0f3559200b38511d0a3e4e1d0a466d3016547e3d1e50833e1c4b843b1b5387411f4542190a59441a0b69461c0b5d451b094a4017084b4119083a431b0b3d451d0c47471f0b45471e0c42431c0c40401b0a46421c0a48451d0b45481e0b5e5125104454250f4d5b29116768331948693117497235174978391a5785411f5486421e74914b2769934e276a934c27899c562f7b945029828b4a267d8143208778411f806b351a81743b1b8b743c1e807b411f807b3f1f9b8245267d793c20837c40238d7f4124877f4225807f402481804126857b3e2489773c23686a321a776530196b592914725b2a1672602c17846b341b66663019776d371d7f733a206b70361c7572381e6f773c20817e4224857f4124807e3f226176391c607a3b1d5578381b497333186f783b1f5a6c32195e6a321862632f17675e2d16665e2d166e6332196b6430187e6e371d7d6f371d7d74391f7374391e7275391e837b3d216573361d5e76371b5c73361b5570331a44642a1446632b158870391f676a351a6c68321a786f381e636a331a6d72391d8b763c2190773c22957b40246e72381e48672f176e70351e7573381d52672f166267301963622f187c64311b8061301a7263321a4a5b2a147569351c746c361c686a341b89743c226373381e83814326627e3d20618642235c8e4526678843266dc7552241a240153f7c2e0f3a732e103d692a0f2a57210a3650210c3b491e0a5e572913555225114f50241057552a11484d220e565026114b4b210f42532510415c281346682c154679351a4b8d3f1f4f9646205c8f4220537f3a1d4f7334184f6a301652683014627136186073371a5c723419426d31156c7a3c1f58793b1e497f3c1b49843e1b4c90441e5097471e539949205e9349226086431f68773b1c746e381c8166341a7f67341983703a1d88753b1e7d793c1e7e8242218a8746237d8a46227f8a46236f823e1f6f8742206c843d1e7f8542236977381c7873371d7868321b7f5d2d197d5e2d18746231197e602f19725f2c176e612c177f6833198a6d361e6b6a341a656e361a67703519616f34186871371a75743a1e6c6f361b786c361c65633117555c2b144f5e2b134c602d154b5e2a1257622d154f632c144d662e14656b3319606a3118666f3519636f34196471331869743519637534186b7836195a7332165a733315596e3116546d301553692f1550672d1445692e133d6a2c13617f3c1e6a8e44225e9549237fa7552d569e4a245aa54d2463b5572989c363336ec5602f7bcc65334cad4e243f984521759a4c29497e3a195475351a557b3a1d6086412279954927749d4d275f9e50274e9a48225aa74e233ff4602540ff722b4fff773262ff883d4dff7e3243ff85323dff782f30f9662736c8521e7da0441d3d4f1f093d5c250d3a62260d3456200b3e501e0a344c1b095778391b62823f1e50813c1c578a431f58944a204e91451f47481c0a53441a0b5e421a0a5c3f18094f401708484619093d441b0c43441c0c3f441c0b48461f0d44431c0c40421c0b3f451e0b464c210c4751240f615e2c1458662f15596e341876804222537c3b1c5583411f528743205e90472463995028729b512a6b9a4f29739e532c799f542e849b542e9297512d8a8d4b25958a4b27907f42229c8445249a83452579804122958849288d864627748241227f864526808947287c8644278e8e4a2d98924d2f7c894628797d3e23867a3d238171371e716630197167311a68663018736d341c49642c154e6c33199b7f4428777a3d227f804225747d3e2162793a1e7a844326688140215e7e3d1e6b8241235f7f3c1e627d3a1e5d78391d5e75391d526a31185e6d351a6a69331a6268331a656932197571381d7774391e73763b1f767b3d2072793b1e767a3b206d7d3e22747b3b216f7e3c226d7b3b215d79381e516e31196172371b80793e219f8347257570371d656d351c7e70381f7e753b216b75391e7c783b2073773b2141692f17556c331a4d6b31173b642a1244652a144f622b153156240f455a28127166341b776c371d4d66321755632f177a6f382056652d1780763d23727e41248189482a758c45277b9a4f2d79a655326ea152302faf421634963a12366b270d3468270e3363270e2559220a3752220d35471d0a55542610575428114f5125105e542711575125105d512411444a200e4e5426114e632d14447033174c803a1d598e40224d96432051914220588e43214e813c1b507c3a1a4d793818577c3a1c6e8642226d87422160874120668842207b974e2946893f1c498e421d4a97461e479a471e599d4b21669347216387421e6a7d3c1d6873381b7e71391d99773f208b7b40209282432394884624898944227d8b4523738b4421758b43216888411e6e89401d628a401d6b8740206d7d3a1d8a803f237f75381e5d6530187566301a7b6c351d67663018746a321b58663017606930185f6c331733612810557033176276381b5f763719567535175d74351955713418626f3619606b341953652f17596a31175e6c331850683016526930164d69301543692e14516f331857733519507134174e6e30145f7634195c74351659723217597533155970311455702f15506d2e14597031175c733419567b3919487c37184c833b1a5c8d421f82b05c2a7cb8612c5ba24d2648a34a226bb3572a51b6532654be552672d2642f3fbb51233bb754264ca84f24419a471f3b8c3d194c893b1c377f3616438a3e1b358a39167ab0592d4ca64c214aa1492054ab4c2341fb63243fff752e3bff6c2b68ff883d57ff813742ff6f2b2ce85e2433ba4d1c2b7f2f0f30471b093059220c325a210c3058210b324f1c09374f1e0a5c783918597b3a1b5b823e1b4e843d1a4f8b411c649a4b225595451f3f4d1c0a594d1e0c55461c0b49391508473b150752451a093e461d0c4f49210d44451d0c48461e0c41441e0c3b411c0b46481f0c3d4d210c49592811526530165c753a1b81894726748e48257b984f2a4c8b442059934925629b4f296a9d502a75a3552e77a5582f81a4593093a85b3598a55c35a8a45d36a79f573099924e2b82884625928e4d29908f4d29768a4725908f4b2b9d954f2f798d48277b8f4b2a7c914a2a999d5534a5a15a39949850319398533198914e2f87804227827a3d247873381f7371381f83763b22847b3f2372793c217e7e4126777a3c2273804024738241237585422468823f21748743257a8b4929698340226a8440226582402169813f21647f3e2061793a1e60783b1f5c71351b7a753a1f6b70361d70763a1f68763a1e6a783a1f6f7a3a20717d3e21697d3d2073813f2272813e226579381e6d7e3d215177351b4f77361942713217476e31177a7b3e226072371d4e682f184a6c351d3c682f17526f331a707b3c20797a3c217276391f6372341c6b72361d466a2f1635642a1341652b14596930183c5c27123156230f5c68331a6e6d381e6c6b341c676a321c736e351e7b7339227a753a228d884a2d69834025588941216f9d4f2c67a14f2e579b492828a83e112c8e35113860210a3a62260e3a64280f3460270e3050200c36481e0b5e55271157512410454f220e56542812655528125b542812534e220f4f5225104e5d2a134c692e16557c381d5590432259a14c2755984723579444214a8a411f4d883f1d4a873e1b518b421f5a914723538f462066994e286f9c4e2780a6582f57984a2253964721579748214891421c4990401b6190431e688a451f7e884622898144238b7c4122917e41219b824424757d3b1e76874220808f4823719247216c8e431f768f41205d8a401c5889401c618c431f678a4120868c47267d813f217e803e217f793b1f85773e236971351c5d6e32196a6f341a5e7034197471351a5c7537195b733519567635184d73311653753415557633155c7736185475351862763b1c6074381c56703419577135195c73361a5b723418567134175271341750713217547336185d7434184c723116597633164d73341554712f1456723216577132155273331655773416557130154f733015547d381a377f36133c803715378b3d185498451e57a04a2236903d1a3ea147202da950253aaf4d2054bd542753c1562761c75d2c46ba4f204dbe552647ad4b2039a3481f30943e1a489d451e3c933f1a368f3b182d943c164eae51254caf4f2243a9491f4ead4b2149fe65284aff813358ff7f335aff7b3340fd672832de591f30a94215286e270c2c4217073a62260f355f260d3655200b34501d0a4358240f566f3316637a3b1b517a381953823b1954853d1b4e8c411d5b934720669a4a215256210d47501d0b524b1b0a5043190a5c3b15085b4118095149200e4949200d44471e0c43451d0b4f451e0c49431d0b474a200c4851230f5d6430166674391d708644256a914c28769e522d7fab5e3456a1532980ae5f3568a6572e69a5562c6a9e512b719f532d8aab5e3591ac5f3595a95d36afad633b849b512c97994f2da49e57339499522ea4a05734a3a159348e9b54318799522f78944c2978954c2a77934b2993985031a8a058379f9c5333a09b54329b96513182844227807f3f248781412596834328a085462a848141269789482ca18d4a2e8a884529928b472a948f4b2daf985233878c4829888e4a2b6485412367854123768c4726718b47267386442566823f215f7e3c1f707d3e215974361b707c3d20747b3d21767e3f226d803f217a8946267e8442246e7d3e217c8443255f78381e6d7e3d215e7c3b1e667f3c2061813d1f5d7f3c1d447334183f6e3016737a3c21586f321a2b6329113a672c132763281040692c15466c2e156e76371e6875371d6975381d6974381e6872351b6472361d646f351c5c6c331b4f652d1660672f197870371f6d6d341e83793f247672382188783d24907b3d26a086472c978d4b2e628a44255f944927629d502b46924222519d4a252bac40122e842f0f4462220b4763240c335f240c2b59230c2c51220d394b200c4f5728115b5a2b134b5326105a552812575226105052250f5852251059522610575c2a14546e3318597d3b1e5e8e4323589a4923529e4a23579b4822579848225c9c4b22599c4b24629c49255ea3512864a3512a5c9b4c26589a4a23759f522a5e9d5026569a4e24569245205292451e508f421d5e8a411e6087411e7e884622828443217a7e3f1f837f40206f7e3b1c75833d1d788b43217f924823809448226d8c4321668c421e59883d1a5d8a3f1c638b401e6089401e748a422082884221988b482779803f207177381d6574351a6573331967743519797a3a1d657332177479391b6a78361a707a36196d77361963783618717c3a1b727d3a1c747c3b1d6178381a5377391b5c793a1b5e7b3a1a5678381a647d3e1e50773618507737184e7432144f743113527533155d783618547635185e7b3a18557434166c76371a59723216567232164c6e2f144f7230144678331656863b1a3f8438143f8b3c18378d3b173d953f1858a44921389c411a209d4217279b40152da4431c2da6411948ba512356bf532559c0552650c4562552b8502249b34e2245a9482160b2522846a8492147ad4a2057b14b2356b64f2552b7532561b856295fb04c254aff692a54ff803257ff813758fb6f333ed656212d9c3c142660220a3f511e0b3b65270e3259200b284e1d0a2d4a1b0955672f164f6a3016526d32164f6e3117487936175486431d5a88401c4b86401c5c90472149873e19435b220d5560281144521d0a444c1b0a60441b0b603e1809524b210d4b4b210d43471e0b3b451d0a54461f0d46431e0c48481f0c4a53240f50652e1467783a1d55833f20739f522e639e522b559a4e284b954a227aab5e3367a3552d62a15329669e512a74a458307ea758318eaa5c3592ab5e3696ac613584a55a318ea1563099a55a3494a3593384a0552fb8b0653e8fa15631899d53308599502d81954d2b85954b2c83994f2e8d964f2e82954c2c84974f2ea49851328c8d492a858c47297c8442258a8945287f8743276e7f3c21828844288e914b2a9c944e2e9e914d2f728440237f8b472968823e227e8b47287d8f4a29828e4a2a5d7f3c1e788946287d8a47287a88462672854427677e3e21738140237c8443267884422576824023668040225e7d3c1d6a803e20748543256f814023627d3b1f67813f21677f3d2068823f21597b391b5d7e3c1e547a391c4e76371b5f7b3b1e5776361c5173361b4773371b4672361a486f32185172351968783b1f5071341a6e793c207a7b3e216273371d7a773d2131622912456a2f17656e341b6e73381f7b793d227374381f6b73371f7b773a22887c3e266276381e8b8e4c2d688944255e904626659a4d2a5f9d4d29579c4a27489e46245aa75029429137124b60210a6965260f405a210c3958220d3250200d33481b09615a2a126b5e3016685c2f155e572a137c572a156856291358532611474d220e5e5d2d15556a3117577a391b5f8d4421559a492258a651253d98451d5ca8532956a44d244c9d47214da0492154a04c24649e4e27458f411e709d5029549348243d893f1a428a401a569146214d893f1a528a411c53823d1a6084401d63803d1c6d813f1e7381401d5a7d3b196a7e3b1a6b85401e6385401d7e8c4521768a421f768d4421658b421f6789411d6c8f4320638a3f1f5a8b3f1d5e873e1c7688401f6f86412074833d1f727e3a1b6b7d391b707d3a1b67773619697735185b723015556e2e15687b3818697a3818627c391a5f7a3819507532153d702e13587937185f7b3a1a5d7b3c1c697b3a1b477333165d7b3a1a4d7433155f793718587836184c733215597533175f763518687c3c1f4f7536184c71311345703012587534175573321755703014497331144e743114517e391951883b174d8c3d184994411a3d99411946a2491f51ac50214aab4e2246af512543b558273bb04e2132ad491c53bf582645be57263ec0552459c65b295bc357264dbe542645b44f2124a740193bba4f2258c2552469c85d2f5fc0572958b8512853a948236fbb582b6cff793361ff813755fe763742c84e20308c331133591f085355200c4860240e3a511d0a354b1b0a304519085b6e35195d7236195e73391a5c73381a5d763b1a59793b1a5f82401c648846215588451d5e86411f6688421f4b5d240e56672a12525e240e535a230d4c511f0b543f17094e4c220d504e230e4d4a210c574b210d4e49220d4847200c48471f0c5254261045612b124e7436196a904c296a9a4e2a619b4e285c984b26559a4c2564a2532a60a051295d9e4e27569b4d276ca65a326ba0522b7aa85a3075a3562e73a2542d6d9f512a749d512a7c9e522e7d9b502c879d522d879c522d7b974d296f924a2780964e2c869b522f7c92492988974e2d81924b2a9c9b5232949a50318a91492c848f492b60823d205b823e218b944c2b94934c2d838b462991904a2c838a442871844124848945297b8844268e8f4a2b71874124798f4929858e49297d8e492a768c462882904b2b748a46267085432565814125657e3c216b7f3e227b8442268d86442782854326677f3e205d7c3b1f667f3d20647d3a1f7c8c462585944c286d8a44226c843f2273854124718541237387422466803e204b78381b44703218426f3217356c2f15346c2e15456f3217407234183e6b2f156c783b205874371d4f6e32194e6e32185470351a3f672c15476a2f164f6d32186674371c74773a1f66783a1e66783a1f5175381c6e814225728241257a894528708e47297f9b5130709f522e709f4d2c609c4a2960a8522d50a34c2750a94f2623842e0f3e5c1e0935571c0936581f0a4158210d4555220e3e4d1e0a605c2c1486603119705c2e16655a2d1575582b1579592c1558532611515226105b5628114b662f1355793a1a628f47226ea4532966ae562968ae562a65b05a2b4fa34e2455a24d244796441e4695451e5a9d4b23519446224e8e421e5d934722578f4420538f431e508b421d4d853d1a41823c1a59833f1d5a80401f5a7e3b1a5d7e3d1c577c3a1a637f3e1c53793818587938195c7c3a1a68813c1b60803c196a833d1c5e813c1a4f813b1b678a4120648b411e608c3f1e688b411f7d8c432171893f1f6f823a1d727f3a1d537633154a733216517734156a7a38195e773517777c391a747c381a50733215537331165e7735165e77351661793417517633165a7a3617677d3b1b657d3a1b567d39195b7a3818597735164f7234154a7432164e7231154f7031145d74331666753517557535174a6f3114446d2e13446f2e12547733147086401b5e863f18517c3516507f3717578b3c1b5695401b4f9b431945a1471d32a3461c329f4118209a3c142da3451b30ab4c1f36ab481b39b7522050b6522450c1582938b94f2030b2481c34b34a183eb950213cbc4f1e37b74b1d50bc4f204fc154225bc55b2849b7502258b654294aaa4f245bd05a2953ff773043fd702e41c5532227812f111d46170734521c093b5a200b4b561f0b5e521e0d434c1c0a526b32173c632c13517137196474381b5d73381a5b773a195a7d3e1c5a7c3c1c9e8d4c2a6382421f6584432066813f1d39541e0a435c210c4e64260f5d662a124d5d240e464619095751260f564d220d674e250f664c220f4e49200d4748200c47471f0c5155261051652e1555743519648b44236f994d2a6a9f522b619d4e265b9e4e275c9e4e2667a4542b74a85a3067a1502967a4562c68a1542b74a4552e81a65831689b4f2967984d296b984d297f9b502e899b502e949a502f81974d2b6c8f4625668e462578954c2973914a2878934c2a949b51307d934a2b999851318d984e2f8e974c2e6f8942263f7b361a5a833e20748d452574884225828d462893914a2c8f914a2b7a8943277f894527878e492b7e8b4527778b442682944d2a9d9a53307b8b4627898f4a2b7b8e4a2b74874325597c3a1e4977361a7f8845287b874528697e3d227f82402577824123667d3c20607e3c1e63803e1f6d894423758b44246b843c208aa55c2c758a44247a8a44255a813d1f7f8c48275d7d3c1f4a73351a3b7132175076371b5777381d667a3b2037692d14366a2e145570341a6075391d6d7b3e2364773a1f3d6f311651713419527034196671341b70763b1f5f71331b79783b2176783b20747a3b217a7f3f255c7d3b206a8843256e90482879994f2f719f502e77a754317db45c3658a14c2a65b55c345fae522d4ca64e273f8b34123e581b093b521b093b521c0a475b230e4356210d414f1f0a64613216635c2e146f5d3018765d2f17715b2d157b5a2e1669572b136e562a135a5327105c6630166a7b3d1e728e482378a0522a81b05a3074b25c2f5faa542853a24e255ea44f26509b49224392411d619747245b984a245c904420508e421d518e421f4d8c421e588d441f5b89441f56833f1d54803e1b577d3d1a6181401e587b3b1a607b3b1b52763618437132155d763519687b3a1c6c7b391b6d7c391c57793618567b391a4f7d371754813b1a59853e1b628e421f698c412069873f1e6c89422072873e1f617c361942712f14316f2e114d733115587532165875331666783518627937186179351859753316557733155e793618637d3919577a351664833d1b6d7e3b1a4f753414617d3c1c577a38195d773518316d2d115d79371959773417547233175a7232176c733417496e2f13476b2e12496e3012547332145e803d194d762e13608b411a5a964a1b5b8c3e184b8f3e1a549b461c479c451c409d441d309d411a269e401847b450234eb2502432a7461c25a244193bad4b1f42b34f224bbb532453bf572937b54d1f40c7552039b94e1e46bb50205dbe542458ba4f234bb74c1f64b8532852ad4b2164ad4d2672a9522d4ae55b244af2652a49c55123337d2f103445170737561d0a3d591f0b4b5b210d4d521d0b4e5e2a1348642f1654673017546c33185c6f3519577337186375391a647f411d6280421d6580431e697f421e667d401e737f411f777d3f1f3858210c365d250d4462270f4a65280f4d672a113c531e0b565025105c4f250f604f25105c50250f584f240f5551250f4e5026104b572710596a30145c7b3a1a76904725719c4f29669d4e296ba2522c85a8593357994b25629c4d286b9e4f297faa5a3274a4552d7ca95a316aa0532c699a4d295d9449246694492573964c2a6f914927929e52308e9c522e6f944a27658f472579924b296a8e47266f8f46256c8f4a287c8f49298a994f2d82944c2a83944b2a9ca0543173904526418037194e7e381d8e944b2b828d45287a8a43267f8a452773874225798a4528668642237e8c4628778d492984924a2a92954e2d90954e2c7a914a28ad9a5333818c4729778942246d823f22587d3b1e728442247c844125617d3b206f813f23818541276f803d22657e3c1f74823f236e803f228089482a82884527708643247b8844256f88432489904a2991914b29918e4a2a68803f226e814123798545266b7f4022768343245875391d356a3016306b30155373371b5576391d4e6f331931682c134d72361b37642b144c6c31175e73371b5670321a4d72341a5373331a737b3a219387442a96914b2e8a964d2e92a256347aa2512f7ead593486b95f3a90c1653e9ac6694288c2653e8ebe633b6cab532c36802b0f2f531a08344818084254200c435b250f4c5c261036501f0a615a2b136b5d2e156b5a2b146c5b2c147b5d2e15a664351c5d5629126d572a13635629125d632f1465773a1d7f8e4a277d9c522c85ad5b306db0592d60aa542860a7542957a250255ca04c225e9e4c235e9c4a236a9b4c265690472255924622558a411f568d44204d823c1c58823d1b56813d1c5d803e1c5b7d3b1b5a7d3d1c607c3a1b487335155274341658753619567234176a7a391c7d7e3d1e5777361850763516677c3d1d4e7a3818577f391a56813c1b4e7e38186e8c411f69873f1d5c853c1b728a421d6a833c1a577b34173b7833124a743114607c3617567230165474321554743315557735185d7b381a5378361758793817537a37176d833f1b657c38186d7f3b1a5c793717657a3919607a3516787b391a4f743315496f30146b7b371a56723216497030145b733217526f2f14506e2f14496f2e12587131166d7c391a607d391863823b1950873d1a598f3e1a5e9e4b215da84e2176b3532363b052244bb04e225dbb542356be582763c25b2b5fc45d2827a3461b1a9f401729ae4b1d44bc55264ac056252cb1481a40c1562429b24d1f34ae481c38b0491d51bc52223ab0471d44b14b1d49aa471f66a74b287ea7512e41cd521e3dae41183975280d223611053d64260e4062260e4962250e4f59220d846f372056632e145d6a32186e71371d5b6c34186c73391d6372381a5976371965793b1a58763a1961793c1a66763b1a777b3e1e6d7a3d1d898143223e491b0a7f4c2512674c241070512612435e230d455d230d58522610625527126f55271265542611574e210e555326115552261054522510615426115351230f575627106b5d2b14625b2b1557582713665b2a155b5e2c1559602b15676630175e6a32185b6c3117566a311759652e16505e2913545f2a135a5f2b15675b29146f632e1770632e176c602c1662622d156b6631186f632f176b632f176a622e176a612e175d5d2a158b6d361e876d361e90723920947239217b6f361d61652f195c6830175f673018977138226d662f1b7067311b786a341c7067321b7a6b341d776d361e8070392089743b218c7a40249c7d4125bf874a2ec486492e80793c2288783b23947c3f255b6d32196f71361d927e41267874371e9a80432795804026807c3c21777a391f727c3a1e797f3f229b87442782813f216c7c3b1e77813e2180853f22868c4726898b452596924c2aa8934d2d868743268f8643259185422472814224366c2f15346729125977371d687b3b1f647b3b1e5977361a4c763519386e2f162e692c1334692b135777361a416f2e1438702c13547c361b7a8f452899a6533296b5583596c8673c7ed2693964cc603376b958307eaa532d899447286c78361c70672d1862632915806b31193a7f2c0e415d200b5d662a136f7032186e7333184259250f4858240e928342227c7d3b1b867c3a1c7877361a887e3d1e988140217f813e1f7d8a4120789144226d9644216b9c49236f9e48226a9a462180a148257e9e49255c97421e609946205797431e699c4721739b4821448c3b176898441f5d93411f66944220659141205f8c3e1e5b91421f628e3f1e70994a246492421f5a8d401d648d412059843a1c517c32195b83391b5f7d361a6f853c1e78883f206a7f391c6e873d1d68873e1e67833d1d65823c1d68833e1e6e843f1f607b381a82884222858d462377894020828f47227188401f5f823a1c57863c1b51843d1960873d1c63863b1d61843d1d69843d1e5e813c1d67843c1e67853c1e61833d1e60833c1b7b8d4624758f472299944b288e8f47277e8d47267b8d4626978f48295a7f3b1d517a37196b844021687f3b1d6e813d1f848641237783402168803c1e5d7b381a5b7d3b1d7e8842237787402064853f1e5e853d1c698d4221678f42207796492373984b2580964a2579974c297f984c28849e522b6b984b262c82381823792f11458b3e1e5e924625588c4220638b412243863b192b7f37192d7d3617377f3819347e3616417832152f6f2b114b7130156272341c816f361f826a311c737232193b782a0e52632c1362672f17616931195162291141541f0b59632b1560632c1753602a1459612b1353622c1359642a1455622a125b693015617035176e7237186d753b1b71703619747236184e652b12706e33167c723618824b25126649210f654c2410694f25116651251168552712685628125d542711585326106a5527126c542612595325105f542611575326105551230f645225103f4e200c665929135a5928125f5a2813695a2914515624114d5a2611545f2a125a5f2a135c652d1460662f155f632d1565622d16545e2b13515b2813595b291351592612675e2a14625d2a136e612c15655f2b14635d2a136d5f2b15685e2b156c5e2b15615a29137b6531198169341a7b6630198868321b8366311b78652f19575e2914435925105e622c155c5f2915675d2a166f622e188066331c6f612d178d69341d6d612d178467321c7568331b686a3318847239209b763c228671381f8870381f8b733b206469321a6f6c32198273391f53642b155f6a30185f6d30187a73361d646f32197b77381c877b3e227575351c69723419777a3a1d747a3a1e727e3b1e898441228685412188844021988947268e844223988544258e82412368793a1c39672c133063291143662a145a6f3118526f321839652912225f240e216328102d642a1144692d146e7a391d6074341a466f30165474331878823d216d8a402394a5522f8bb056306cb6552d89cf683b6aa64c277b99472679883f207476341b5e62291369632b156d642a1469672d146063291275692e1663652a136d6b2e156e7335176b743618606c2e14997b391b89773719706f30168d77381b75703317747536197b7e391c75833a1a758a3f1d6c8e3f1c628c3d1a5f8d3d1a7691401d6e8d3e1c628b3c19638b3c1a58893a18578637176986391944803313638c3c1a5d893a1a64883a1b68853a1b537c3317527f34175a8137195f7f36185d83371964843a1b68843b1d75843b1d527c361751763216547531165e7733186f7a3519627733176b7a3419617834175f7533176677351867783619667836196277361873813d1d7984401e74823c1d79833d1f70803b1d6f833b1c537f381939753013558239185881391a5a7a341963833b1c71853f206080381b7c884121637e381b69813b1d5f7f3a1c61813c1a738743228188422273823e1f78813f206f7f3e1e637a3a1c697d391a79823f20446f2e1455743318597835196b79361a57733217747f3c1c768241226e7f391c667f3a1b6b8942206c863f1e688b411f778e4521728e4420778d432084934a247d90452289984c277a9648245c8f431f28792f112d7931143d7d34164f833a1b4e843d1d337730141d702b0f207631132b7832153a79311662893e1e5a7e381b467130154b6d2e157971341c67642d17886c331c806c321a686a31187d71371d5f662d16736b321a6c6b31196a6d321954692f155a693016636c30175d6c321755682e15626b301754682e15636c3117647639195d723819536c2f138476381a6c703416586b2f13676f3416536a2f12754b21105547210e5349200e534b210e6b51251166532610675627115d5426104f51240f484f210d6e572913715829125853250f5c5426115252240f5b52240f5e532410695727116659281258552411555524105456251050582511505c29125b5c27125e5e291264612c14565e28125c5d2a13585b2a135c5b2b1461592914585625115e5a28126a5c2912645c2912625b2812685b2813625c2913675e2d16635a2914605a29147d6330189f69361d9b6b371e7f63301982622f1976632f196c5e2c16495424105b5a2813565826125d582613885e2d1963592914725c2a168962301b705d2a156e602d178768331c6c602c177f65311b9e70391f986c361f61632d167168331b55602e1669622d178c6b331d7367321a916e361e8e6e351e8872361d746c331a7f71361c8471361c8e76391f97793d21987b3d207673361b70773b1e7b7c3d1f767d3d1f93844123927d3e218d804021897a3b207872371d8879391f6672371b44632a12636a301845632911706f351c356127126f72361b5169301862703419706f341c656d301960702f19596c31176a73361d6e77361d74813d2083924827859e4c2977a8502a82bc5d347ca44e297f93442469783218666b2c155758210e685d2611655e271171612812786129136c5e26115e5a2310766229126d642a12515f260f6c682b125d64270f77672b137b672b135f642a125d6329115e662a11756f3015747633166f7a33166a7a3416657c34164d742e116f8138188f873d1d687d3415658136174f752e1153762f126c7a33178e83391a76803619657b3317657430156074301557712d134c743014627530166d7832166573301763742f165e7331166e76341860703116596b2d157c723218606c2d156d702f15666f2f15727130186d6d2d165d6d2f15636f3016656f31176374351a7a78371aaf8a462585823f1f7b813e1e7e823e1f74853f1f5c813a1b527a34184378331549793316567d35197a853d1f667f391d627c371b76873f1f6781391c66823b1c7c874022677c381b6f7f3c1c9185422296864323587030176678391c6c783b1e4d6b2d14887a371d7975341b7973341a7c75351b8a79381d6d7335197676371a6f743518857d3a1d88833f208e8841206e823c1c6d823b1c68833c1c65833c1b9b9046248285401f7987401e808b422289894122828d41216d894020587c35185c7b361a537d36195d7a361b3e742f1577873e1e67823d1f5b843b1a637e381c657e361b5f7c341a6a79371b617031188375361c6f662d1777652d1683693019756a2f17716d3119746d31198474371d65672b15676a2d165b662a1358682d15576a2e15596e30167075371b637032175a6d3016686e3017697333174b6d2f13566f3115506d2f126a703115676d2f15516d2e124a6c2e114a6d2f12614e24106449210e5049200d4d4a200d6b5125115f5024106953261170572a144d4f210e585326104f51230e645728115f5828115855250f5553250f4f50230f5852230f5c5525106d572612765b2b144c52220e5f5929135155240f4d562610565a27105c5c2912595d29126f612d14645a28115d5827125a5825105c5526116c582813605726105856250f605726115f5525116558271157592812735d2b1564582712815d2c17815c2d18845d2c179162311a765c2b15935f2f199f61321d755829166c5326144c4d210f545426114e5023105f5123117b572816595023116c5527147e542615815a2b16785b2b16815d2e19675b29156a602e168a68361f7462301a5f62301a6b62311b7565311b8867311c8768311b62612b158067311a986e351e8969311b926c341c996f381fa9753b20a4753c22ae773e23776c331ba8773e237773381d85793d2185793e2185763a1f7573381c8a763d21786f361d696c351b6a6d351b56662f16746c351c65632b167f6e361d6f70361c7e6e361d405e270f53632a146c672f1a816e351d726c341c7b6c331d726b321b7d73381e7b7c3b1f8f8a44277f8b42248b9b4a2b7e9f4b29869847267183391d69712f16666528116c59230f7357220f795a2410835a24107357230f7755200e5d511e0c58531f0c5756200c535a230d6460260f7560260f7d652a1298672e15755f28115b5b240e575b230e6f6229116f652a12806a2e1368692b125865280f5f682b10716c2d1275712e13616c2c11636b2b115b692b115a67291060682810646b2b117b6d2b1387723216576529105d682c1363692a125a652a1161682a115d67291167692a1269692b1371672a1366642812676629136b642a1373652a13686227106b63291265632811665f2711585f261069652c146c662c146e6b30169577391d8973351c8578381c8b8140217d7d3a1c90823e209285422375833e216176351a50773416547d381a527f3718707f3a1d74833c1f647a371a6e7c371c82843e2076823d1e7f85402180813f20677a391b6478381a797a3c206271351a6473371c5e6d32197373351a7e73331a666e301664692c148d73351b7a7031187c6e32198d73361b8674361aaa833f209d813e21a3854122867f3b1e97833f21737d391c6a7836197f7b391b7c79381a7b7c391c87803d1f707b361b627834185f7b371a547331167a803b20767a361c837d391d6e7e391c7078341a506f2d135e722e167b7c381d777a351b68723119776f30195e652a147b6d31187d682e1784692f186d6429147d6c2f186f692d156c6b2e16746d2f176b6c2e155a6b2d145a6c2d156f7332186d7532187975341964743217566e2d13546f2d12546f2d134a6d2d1249703013557131145f713014607333167373331763703114436c2c114b702f12573316097133160b4f301508493216084d3316095235180a5e37180a5d38190a5b38190a5937180a5938190b5c39190b7e3c1d0e583a1b0b5b391a0b673a1b0c5b38190b69391a0c743c1c0d6d3a1b0c613a190b5f38180b5438180a5e38190b5f3b1b0b723b1b0c603c1b0b6a3c1c0c6b3b1b0c703c1b0c6d3d1c0d683c1c0d793d1d0e733c1b0d5f53240f6053240f5752230f6153240f645526115a5425105a54241166572712745829157d58291580592c168f5c2d187c5628147755291466502311694f24117c522613564c210e524b200e524c210f604b210f6f4f24127e4f2412785125136f522612645325117756271382592b16755829146b582a15755d2c187d5f2e186d5d2e188262331e9062311a90632f1a7a602d1783632f189965301a81622e178365311988652f1873612c168a6c351c8168321a65632d1568682f16666f361a7a73381b54682f1564662c156d6930178d6e361d936d361e9570371d876a351e806c371e716430197568341c6f683119806e361d6b66321a6d652f1765642c16766530198769321b8468331c8065301a7367311a696630188f793c1f6f72341b777c381e657d371d6b893e217a883f206b76331872692b146e5f25105d511d0b6d521e0c6a501e0c70511f0c624d1c0a654c1c0a6a4e1c0b604f1d0b55511d0a6d57210d6859220d5f551e0c5b541f0c7456200d5c511e0b51511e0a52511e0b56531f0b6256210c6357220d6058210c5d58210c5e5a230d615a230d836028105c5b240e655c250e6c5c240e5d59220d615a230e785e250f725d260f695c240e675a230e5857210e6359220e6960270f7a6027116b5f260f785f26106c5d250f795f2511735f2610725f27107a6027117a5e26116459210e6959230f6058220f6a59240f675a25105b59240f625e27116b642b1379692e168a7132189175381ca07f3e208c7d3a1d827d3c1e6f7b381c727d3a1d908541225c7734175b79351952783417667a3619777f3b1e767d391c7a833d1f74843e1d6980391b717a371a7c7a391c7675371a596c32176b6e33197e71351a5b6a30178172391f857034199273351b786c2f16816d3017936e321976682e157e6b30168d6e31186e6c2e157578371a7b77351966743317637634165c783516757b3919596e2f136a6b2c146d6c2d158874331a8c77351c957b381d8d7a381e8c7d3b1f8477371d7175351b7477341a7c79371c7175351b7572311868702e177b74331a9078351c8172331a846e3119756b2f1766652a148c7132186a612813766429145c5e241163652913726c2f16686b2d1562672a12656c2c1352692a1168722f14677431166676321754722e1358722e135f752f146176311551722e136377331562753315546e2d124f6b2c115f6e2d13506b2b10446d2c0f456c2b0f456c2b0f4a3a18094a3715084b371508553a1709423e1a093e3d180840411a0951441b0a61491f0c44461c0a43451b0945461c0a4d481e0b4a461c094b471d0a57491f0c4b471d0b3a431b094e471d0b47491e0a4b481d0a46471c094e471d0b3e451b0941461c0a4b4b210b4c481d0a54481e0a59471e0a4c471c0a52491e0b53481e0b58491e0b5c491e0b4b471e0a52481e0b5d491e0a5a481e0c5b481d0b5d471d0b4e461d0a52441c0a5b491f0c5e471f0d73481f0c7649200d6e451e0c5a441c0b6a431b0b523d1808523f1a0a503d1809573c1709463e1a0a493e1a0a4e3e1809593d180971411b0b70421b0a69411a094c3f190958411b0a5a431c0b4b431b0b48431b0a68461e0d60461d0c5a451b0a6949210e6b491f0c51461c0b63471d0b65481e0b55491d0b5b4b200c594a1e0a69491e0b614a1e0c5b4b200c724d200d75522410795528118f5b2c135854230c4f4f210c6c4f210d664e210d614c1e0c6d4c200d624a1f0e704c210f664a1d0b57491f0c66481d0c704d220e62491e0c5c4a200d634a1f0d65491f0d5e471d0b6d491d0d69461c0b64461b0c60491f0d5d4a1d0c504b1d0c5d52220e5353210c5159230e5157220d5352200d564b1b0a5b4618094d3d1406583e15074e3a13065f3c1507563a14074a3712064f3a13063c391305393a12064e4116075b43180845411606483c14064a3c1406563f1607443f17073c3a14063e3c1506463c1507683f1708453c1506433b1405453c15064e3e17074c3d15064f3e16075b4018084d3d15073a3b1406463c1506473e16064b3d1607443d1506553f1708413d1507423d16074f441a094f41170756431908564218084e41170859421809524118085c4218095c4118084d4118085542180861421909584319095341180863411909474118084f441909584b1e0b5f4f200c6952220d7557250e7058250e655a260f6f5d28105758240d5759250e5d5a250f615a25104d5b27104d5c260f515d270f625f271073632b137a652c126b6129104f5b240e5b5a260f5c57240e4b53210d48501f0c6551230e6350220d524e1e0b6353230f6552210c4f4e1e0b624e1e0b634e1f0b564e1e0b534e200b564f1e0a6551200c6354220d6257240e7c5f281184642d1487632d139c6630155757230c5152200b7252210d65521f0d65511f0d6e53210f6953220f725724116b53200d5952200e6b53210e765825116553210e5e52210e6555210e6853210f63501f0d7754220f674e1d0c6d4e1e0d644e1f0d5d4c1c0c56491b0b5d4d1d0c564b1b0b504d1c0b4f501f0c5453210d53531f0c5856210d4e531e0c585b240e44561f0a5d5e250e555d240e485a200b4f60240c3e5c220b375a210b485e250d545d260e4257210b45531f0b4354200a4c57230c3b59240b3655200a3957220b3955200a6c1f0f08691f0e06741f0f075b1c0d064f1c0c055b1d0d064d1c0d055d1d0d067c1f0f07691e0e066c1e0e06611d0e06681e0e064e1d0d0674201008761f0f078821110981201008661f0f077b1f1008661f0f076f20100788201007771f0f07792010086a1f0f075d2010076d2010075f2010076c2010077e2111087a201008741f0f075e1e0e076e1e0f0774200f0785201008902111097a1f0f07731f0f07791f0f08671e0e07731f0f078f22120977201008932311099b23120a7c2010089324120a9923120a8d2110095b1d0e06801f0f087d1f0f086d1e0f076e1e0e077e1f0f0885201009902211099d22110a8120100890211109681f0f08852010087d1f10088c2212099622120989221209752111098d2212099a231209ae22110a9320100996211109821f0f087a1f1008a62111098d2010087d2010088e21100997231209b124130a652111086a2111085b1f0f066e201007a424130ab624130ba323120a9e23120aaa23130b671e0f07a822120a811f0f08771f0e0878200f08761f10088e2010097a1f0e07601d0e078a201009701f0e088b201009771f0f08751f0f07972010097c1f1008922010097b1f0f075e1d0e06651e0e07601d0d06621e0e074f1d0d06481c0d06451b0c05581d0d066b1e0e07621e0e07521d0d06581d0e066a1f0f075f1f0f07772010085e1e0e077d201008561d0d06581e0e06581d0e06511e0e06842010087b201008702010076c1f0f07521d0e06721e0e06521d0d066d1f1007771e0e0788201008741f0f0779201008731e0f07631f0f066d1f0f07751e0e07741f0e07681f0f075d1d0e06561e0e065f1f0f0663201006701f0e07671f0f076f1e0e07621d0d065b1d0d06621d0d06751f0e077f1f0f077f1f0f07641d0e06731e0f07681d0e06531c0d066f1e0e077a1f0f07781f0f0790201008892010087a1f0f089e211109731e0e077a1f0f07621d0d065f1c0d06701e0e075d1d0e06711d0e07761e0e077b1e0f07781f0f0783201007751e0f07741f0f07681d0e07771e0e07691e0e06721f0f08801f0f075a1e0f077120100765200f0685201007801f0f07781e0e067c1e0e07661d0e06631d0e069e2010086e1e0e067a1f0f077a210f07822211087321100751200f0653200f06491e0e0682200f078f211107881f0f08771e0d06821e0f077c1e0f07671c0d067d1f0e07711f0e075e1f0e07621e0e065c1d0d066c1e0e075a1e0d06541d0e06701f0e07541d0c06731e0d064f1d0d06621e0e066d1e0e07641d0d05691c0d065b1c0c05551b0c054d1c0d054f1c0c05411c0c04401b0b04341b0b043a1a0a044e1c0d05521d0d05461d0c054d1d0d054d1d0c05641e0d064e1f0f06521e0d054c1d0c05511c0c04461c0b054b1c0c053d1d0c043d1d0c04621e0d06501d0d05561e0d054e55240f54562510605828114252220e4053240e404e210d394e210b474c200e444b1f0d494f230e4b56290f354e210b5755270f5d592a1051592b0f4254270e3f54270f4f5428104d572a115b562a12665529115e55281054532610354c210c434d210d5053260f4251240d394f230c4854270f60582a12625a2c13585b2c11575c2e13645a2b12535527104a55260f615c2c14655f2d154f5d2b115e663216536531154e66321557683215586832154e662f1440652e11526d35196a6e3619566933166367321664622f15756331166d5f2e155e5c2b13605b2b13625d2c145f5b2b12635e2f1573603016776030166c5e2e148b64341a966434197d6432187063311578643216926735199c67351a9567361b785e2d164a552710665829135e5928127a5f2d166a5c2a13545a28115b5a29135d5c2914545a2912555c291260622e14696b34188279411d6c753d1b556b35167d773f1d78773f1c857d4420827c432084773f1e776e381d726b351a796c361b636530165b653118506431176e68341a50602c144f612c14756c371c7f6e371c9a743e2195733d208e713b1e7f6b351b9d763e2293753e209a7a41229c753d217d6d361b7368321a5f642e1661683118636832187769331a6c6832197a6c371c555f2b144e5f2b135d5d2b1571633017685f2e15405727104a572711364f210e49592711555c2a135a5d2a13555a2813555b29124d5a2810575324126c6131175b5c2c134355260f464f220e545a2e146d5f32183152250e455528106a5c2e155c5b2d144c572a115d592c13585629114e54271057532812524f25114d502711524d24105d4c241043471f0e514c230f504a220f584d2410554b23105a4a2310564c2410675128135e50261163532a13525126104d5025105e5227124650251065572c15775b2e16785c2f1663572b135756291263582b1464592b146d5c2c157e6030187b61311872613018565f2f157d6433198466351b996a391d8c67371c9667361c8a66341a68623016766634189469371d8d67351b9b68371d7c6332198463321a7c613119745f2f176e5f2f165159281273622f186a6230166a63301761612e1567612f1760633017656633186d6f391b5e6e35195b6d341770773b1c73793b1c72793b1d94824524737b3e1e79773b1e75773b1d66763a1c6c78391c748342235e824121748c47245788421e648b431f5f8b431f759248259099502b9f9c532e8a965129878c472578813f2178783b1e7875391d6f773b1b6c6f3619586e35195a683116667037195b6d34186f71391b4e662f1351653015646b35184b642d144d662f15576d341771773d1d657238194b69301555683016546f3517576e3317646e351a6b70371b49652c144e662e1458662f16506931163d6a331444642d133a602a1240642e13455f29115a662f1549622c124e602a124b5d2a114258250f4053230e4e53240f4551240e4955250f565a2a115c5c2c116d5b2c124a57280e58592b104a57280f4d58290f555a2d13725a2d135b562911605427115c5528104c51250f4452250f4550240e3a52250e4555270f5653260f4f54250f555728105c5c2d125860301366643415516330124b5f2d1254622e135b693217576c35184d6b331555713818506f361857753c1a737d41208a814523817d42215a773c1c6d7c4220777c42216b783f1e6f6f381a656430156f61301569612f15705f2e155a5a29115d5c2c135d5c2b135c5a2b1271602f167e6232177e613017836232189764341a886232187a5f2f17645f2e147d6533188c6633197b6331176a5e2c14605d2c14695d2d1570633016806b361a6b69321766683218676a3319686c3619626a3217646f36197a7b3f1e92854923838245218b874c24858348238e884d26908c512888874c269e854b279b8149287c743e1e756f3b1d736c371b646833185d6a3619526432185b65331a4b612c1452612d157569331a87713a1f8a773f208f733c2097753e21ab7b4526a87d4524ad7f46269d7c4423ad7e452692763f207b6e381c716f381b666c34196b6e361a8f7940227d753b1f74753a1d91793f2170733a1d6869321971662f19776330194d5827134b5b291341592611465e2b1256612d15515d2913535e2a1359622f153b57250e666430146a62301564633115505d2d13585d2f155e5b2d14545b2e1461592c14725d2f16645b2c145f5a2c134251251050522510685a2d1452552811505428114f5227106c562c1468542a13544f2610554e2611604d2511594c2310524a230f5a4f26116a5127135850261163582c145a572b1355582c13575a2b13545a2c144f582912435829115c603117706332186062301665653317716431187c69371b6d6634195f633015646430166968341964693418666c371a7e6f3b1d8a703b1e836c381c866b381c9e6d3a1e846b371c7c6b361a7f6b371a946e3a1e9b6f3a1f9c6e3a1e8b68351c545b2b145d5c2b14585b2b148365331b75612f1769602e165e5e2c1565612e17615f2d15595f2c14646532185868331674783f1c627c411c4c75391878854520708946207e944e2573924d248d995329788a45237c8f4a25708f4923658b421f538d421d4c914620709f51294d97451e569a482179aa582d83ab572d91b15e308aab572c739e5027658f4520838c48247d804220877b3f1f7f73391d746e351a666933185a68311758693216556832156c69331860663016686934194c5f2b1242602a1249632d135b6c33166873391a4a6e3416446a30143561291141692f13587235175c713517596a30174e682f16566c321552612b15686e361a5a6c33163f66301347642d134b6a3516ab80442657723619446c31146274371a516c321647662e143959250e485a2811545c2a1162612e145b5c2c126a5c2c13605a2b11625c2e1350582a1056582b10525628104f582b1155572a105955291153512510484f230e5a5429125051240e5754270f595729105a5a2c11705a2b135e5628114852250e57582912485e2e105866351463713c1758713b175d7036175776391a5a7a3d1d54783b1a597c3f1d4b783a1a6c8344216a8344215a7f401d658243205b7d3e1d638142206b814321707c3f1e6f753b1b7f6e381b6d622f15766331167e623017715e2d145f5b2a12655e2d14685e2e157e6232187a6231178d67371b9368371b986a381c8b6b371b856a351a876e391ca5733c1fae763f219b743d1f8070391c876e371c9270391d7d723a1d84743b1f8e793f227d783e207b7d42207a7f4320667b3f1d7e864822798b4b228c9353296c8e4e2275945326aa9c5c30baa463359090522a998f522c988549287e793f216c713b1c6969351a5f6634195366321747602e164c6230176868361d6568331a796b351c756b351a716c351b94753f22ab7b44258c6e381ea17a4224aa7e4425a38149279f844925af884e2b9f894e2a8c8547247e8848226f8143206e8343228286462478864322617e3b1d6e86432073793a1e4d6a2f166c6f351b48622d135a632d1653632e1651622c1557652f1658602b165d642e1650612c145067311457683213816e39195e663114796c38185d613014575b2c1351582b12786033186f5d3017725b2d166e5c2e15695a2c1463592c14525326114455291051562a1159562a135b582a125e5b2d135a5b2d14685f3115695f32175b5c2e13535729125156281261592b146f5f3017515c2b134f602e1465643319596633176f6b361b866d391d5c6532174d633015736d391d726e3a1c646e381b646d3719736e381b7a723b1c79733c1d6c6e371a616e37195f7037195e72381a5870361870753a1c79783f1f82753d1f97753e21a3754023836e3a1e86703b1f6068341880733c1ea4794224896f3a1d70653218555f2d14676232177967341a886f3a1d6c6934196467331964693318686c381a576831165869321689824823737a3e1c84834521738a4b226b8a4820688f4b2181a65d2a6ca1562696ab5f2f90aa5f30729b4f266d9c4f2770a05228639f4e255ba6542753a450265fab542944a1471e46a3481f62b254276cb1542887c2643389c3653295c0683391ac5d2fa0a65b2d98914f288b7a3f1fa47d4323736d3619786d371c686733186164301772683519716c381a706c371a6a6d34197170371b6b773b1c6375381b7176391c676e341a3d632c133f652c1335642a114d703416466e3215486c301644662d144d682f152f5f280f626b3217636c35186e72391a4d6a3416516a35165d6f3a1b597d3c1c62803e1e60813f1f4e79381a587a3a1c5174361845682f1340602b10505f2a135e602d13655c2912745c2c145e5729105455260f4e5829105f5c2d12424e220d3e4d210d4350240d4550240e3e4f240f545024105f54291361572a12675b2c135957291151582a114a54270f59582a114755270f605b2b13616132135f6938156e77401b647e451b6380431d778f4c25769350275d8845214c7e3d1c47803f1b628b4b267893512a5b88462256894621668b4a247994502a8492502c6c834421747c401f73723a1b72673318766633176b643116716330166864311670673318626531176c673318736a35199d764021a2763f2192763e2093763d1f7370381b987b4121a6804625a88045268d7b4021877d43227c7a3f2081793f217c7b3f205e71361a807f42236e7e4020667c3d1e888a48267d8b4a2482925028949c582c949d572e989f5a30a6a66035a9a15f33909b5a2c749251297c8e502a7c814624797d43237e763e207c6e381e816f3a1f5b632f164b612d154b6332194f66331a716c361b82703a1f7d713a1f84763d21927a41227f783e219f7e44279c7d4325917d422397824625b38d502da28b4d29a392502b9c96542c79934e2563904c226d8f4b2596a35c2f769f542883a1542a79954c256a8741219c8947286673371b50683017636c321957683117526a31174a662e144e652e155e6c34186972391a6770381970703819646833156b6a35175a63301361623014565d2d126e6334198966381c6d5e301662582914645b2c155b5c2e155f5b2c14635e2e15606231165c673317796b371b756a361a55632e14556530156e6e391a77733e1c7e79441d60733e1a636632175c6531175e69341952673316546933174d6832165b70391971773e1e65733a1b6472391a5f6f3719576f371967743b1b6d773d1d767a3f1e807a40207e7d402081804321737a3e1e6476391a587437188381422179814220868446238c844725928146259f7f4726a87a44259479402284763e2076743c1ea77e4525aa804626ad7f46267a743d1f726e381b756e371b796e381c6e6f391c7d733c1f74743d1f6b763d1d67753b1a61773d1b6b7e421d85864821788b4c216a8d4d207298532590a15c2b99b066317fab5e2a88ae602e91ae60307caa592c6aa6552760aa572850a34e224eae542442a94f213eac50234bb3562845b451225dbb582966be59276cc55e2b7dc8633075c8622d7dbb5d2c95ba65338da6572a95934f289583462394854823858447227a82441f7285471f5d7b3c1a7282421e677c3b1c627d3b1b56813e1a6486411b597c391a48733216587736184b6d311544662c1441692f14496a2f15446e311445662b14516f3216526e34174c7135164770351366723719607137176a743c19536d36164b6833164e6531156585411f668742206e8c4623658742215c813e1c577f3c1b4f7c3d1a527236185f71361853642d145f602c13545929104f54260f5454270f3e55280e4056280e3a53260d3b50240e4150240e454e220e474f230f545127105050250f5a5427105e522610595528104853260f4354260f575d2e126961321470653516756637175f673516817c451e5e7d401a6189471f5e8e4822779c552c729e552a55924c2459904c26538c48225f8e4a255b8c48235c8e4924638e4a267f93502c788f4b278a8e4e2a7b844623787b3f207a753b1d7571391b8c793f207f743b1d7b743b1d867a3f2076763c1e506e35178d7c43239180432399814525b2894c2aad8749298a81442399874927ae92522ca88b4c2aa18d4e2a958a4c2a998e502e9b8d4e2b938e4e2b828545259d924f2da096522e84904d289ca35c3094a55e2f94a65f3080a1592ba3ac62337da1582c80a0592b8196522a5f8d4a258295532f999858319d8d4e2d98864a2a9a8247279f7c44268e763e22576a3318506a341960713c20516b351a646f361b7e773d21847a3f2270763a1e7a7c402172783c1f7d7a3e2197824627948446269c8a4b29a3904e2a998f4e29a39c582e909b542a71944c254e8f461f6d984d2681a6582d78af5d2c80b35e2f78a4522a659045225786401d69813f1f5972361a5871371a566f351a506f331844662e1448682e14596c3217656f36186a6b32178371391b61663115666b36166a6a35176c6c38195c5d2c1454592a13555b2c1363613117505c2e15696131187667371d7568351a80743d1e79763e1e747c421f767c401f6e7a3e1e5974391a68763a1d6781451e6981471f8c8d50266f84491f667b401d717b3f1e68773c1d4e7136174c713717477137175d7b401e6e814320567a3e1c567a3d1b4d753918587a3c1b697d401e617d3f1c6b7f401d6e82421f6f81411f6c82421f6c83421e6e803f1d647e3d1c5c7d3d1b5a7a3c1b6f81411f87854725998749269c844826927f43248f7f43237c7a3f208f814523a98b4e299e84472692814424747b401f75783c1d77773d1e72773c1d6572381b5f743a1b69783c1d5a75381a6e7e401d6a7f421d73884821778d4b218893502674934f24789d56287aa35c2887aa5e2966a657266dae5d2d6caa582963a953275eae55265baf532660b5582846ad4e1f3eaf4e203ab2522240bb5b284ebc552360c7602c60c75f2a55c65d276eca622a6bc9622b8bcc6a348fc4683384b15a2c84a5572b9b9e562b959f572b98a45b2e8ba45a2b6fa05525569e522156974b2166994b21619c4d215c9d4b1f5f98481e518d401b57843c1b567f3919447232144d6c31154d6c3115466c30143f6b2e13436a2f13446e3214517335175e793b1a6e7c3f1c64733918626f36175b6b34155c6a34164b663013656d3a1b71944d24718b46237b934b27698e47237191492263904920558a431e5185401c577b391a576f34176b6d35165f5d2c133a51230c4655270e3b55270d3b53260d3c52250e3a51240c354d210c4c51250f4750250f384b210c32481f0b4f51250f5d52250f6e5629125254270f4356280e65603013716534157e6838175d6030134c6634136f79421c5b7a3c194d7e3e1964914b24799c542b7a9a512a59924d2340843f1b46884420598f4b265d8e4a25608c482472914e296b8e4a277a914d2a728a48257487462475804222787f41207e7f42217d8043218a8344237d82452387844524707f40206b7f401f93894b28ad92512ea791502db2945330af96542fa394522cab95522ea794522cb095522ea496522ebb9d5b35c09f5a35a59957307d95512aa6a15b32d7ba7040ada55c3572954e27749f56297ca55b2c75a55b2b97aa6031328841183f85401977914c276b8d4a26497f3d1c85914f2b9a945330a4955632988b4d2c777f4425887e44259882492a7d7a40214e7036195974391b4f7439197b8042236c7e41217a814322908a4b267e8444228f8949278e88492788854524978b49289c8c4c2aaf9a552fa59e582f979f572e90a65b2e79a4562a689f52275599482060a14d256eb3592c79bf632f6ab25b2a65a14e25689549236587411f718240216578391d5e76381a577435195b7b3e1b557034186875391c516930166c70351a6c6f371a5b693216626933164e673315596b35174e6532154b5f2e145e643217475d2b1354612f16636532186868361b6e6d371b686e371a6c7a3e1e6a80421f477c3c19648b492272924f267d935026889a582a799352256c9150235e8a4a1e507c3c1a537e3e1b668544206d8d4b22467e3e19487c3c1a487d3d195782401d537e3d1951803e1a497b3b18687f3f1d637d3d1b667e3f1c6d83421d68813f1c6e84411e6883411e788947227d8845217385431f838b48247486432043763716768242208b884724988a4b279b894a278f8647257d824321858545229a8f4e279e8c4c28888546237a8245227c8043228a8547248b8546245c75381a757f3f1f80854421677e3e1c758a48206f8b49207d924e2373924d217a954f2268924a1f65954c1f759d53235095491f5f9e4f257bb05e2d73aa542876b15a2c71b65b2a75b95b2b68b959284db251203daf4f1f43ba5b2935b6542246bd572364c8622e6ac7602b66c75e295cc55d2650c35a255cbc59277ec0602f78b85c2c80b35b2c8cad5a2c84b15e2c8ab8632e6bb15b275aac54234db0592253aa522270b75d2959b95c2460b95b245cb6572256a34c1f5898471e508b401b43763415486f3316466e3215447133153b6c2f113c6d2f124c773816627e3e1a637639186f76391b6d7238196e70381972723b1a636e3818606732165b65311678914c247c924b2679944d266e8e4623698d452165954b245a91492169995026778d48226f79391d666c3317515e2b103e52240d3d52240c4053260e3451240d3a51250d364f230d2d4b210b2a4a200b284b200b21471e0a2d4c220c3b4d220d3c4d220c595326105d5729114951240d5b5b2d115c5d2d125f5d2d1270673515596736156e743e1a4a773c166783431d6485442171924d2574995328518b4921568d4b244384411d538b4623638d492569914d28588a472274904c288194502c95985530969756306a8242217d8847257f8948258c8e4b278f914c2957813f1d8d924e2a7b8f4a26618744217f904c28b3a05a34c1a25c379898522e8d96502b9d9b552fa39b552fa09a552fb8a35c3584934e298795502aa49e5931a6a25c338c9f592f7fa0582da3a45d348b9a522d5f924b247798522a709c54289eb0663486a0592d4d89431e5f9049228798512b7e97502b668c482483924f2ba79c5833a7985733808f512d908c4d2a808144258a844727707e40216e7d3f20707f4021868747267a8443237d854423738140207d8442237a854523958f4e2a8a8846257d8745238d8e4b288e8e4a2793955129979c542b839f532b7ea7582c8baa582f74ad5b2b60aa542661ad55276ab75c2b87c6693576b55a2d7db6602f67a04f2575974c277390472467874221748a44215e84401c5e813f1d657e3e1e617c3d1c5e74371a6d783c1b6973391b4a6a32145d6d3517426a3313436932144368321545632e133a5e2a1152632f165a6430174b622e1548612e146b723b1c6b763b1c6a7c3e1e4d803d1a5390482070a2562877a45a288cad632f71a05828649c552487a35c2b5c8e471d4a833f184f86411c708d49236f8e4923618d4a21387a391644813f1c47823f1b477e3c195282411c567d3d1b5d7d3d1b6a803f1d5d7e3f1c6580401c5c7e3d1a6a84411e6f87431f758b47227f8a4722748845217084411e6d83411e6082401d8a884825938d4b27948c4a27988d4b27a092512a8b8a49248d8c49258a8d4b23988d4b268b8a4823948b4b26968b4724828747226d84431e888a462294934d258086421f6483401c65904a1e69914b1f548d471b6b8e481e4a8841183c823d15658e471d49863c19388a3d1763994a2171a551277dae592b76b0582979b55e2d71ba5f2d74c0622f58b5552338b34f1e43b956223cbb562058c9602a60cd642c5fcb612869ce642a66ce632977d3692f6ecb642e75c6632d80c8653083c465308ac86a318ac96a307dcb6c3070cb692b5dc5622854c35f2646bd58204cc35c2459d2682762d267284fc85c224bb3501f4aa0471c4f91401a5b873f1b496d30144c6d30134d713216467435153d6d301145733315426d2f136b7b3c1b6f773a1b5c6e3416606d3317506a3214596f37174b66301340612c12708b46228c99512a85934c286a92492370954d2664964b245d9549225c944822588e441f6c84401e49692f14495c28103b50230c4655280e4856290f4454280f3650240d354e230c324f230d284a200b2b4b200b284a200b22491f0a3a4f230d384c220c4451250e3d51240d4a54260f4751230e5052240e726130136562311367663515646e391656753d165a7b42196381441c577b3e1b547c3e1c3f7a3d1a467e401e307e3e194183411e4686431f598d49237c97532e7a95522d8b99552f8698532d8394502a7e924e297b954f2981954f298398512a8797502b82964f2a979f57308398502a7d974f2a839a532c96a05830b2a65d36919f5830939c562e7f954f2987964f2a8997522c9d9b552f70914b259a99542e919a552e959d5730a1ac64359ba55d33919f572f969e57306b924d265e8c46216d914a256f9650297f9b542d528e472176954e2980944d29628c47229399532fa8a65f35a8a15c379394502d7c8d4b28a496542f938c4a29888847276d854522687e3f20768643237f894526868a46267386442367813d1f61803e1f7d8a472489914c277d8c4a25668542207e8b4825828f4b278e96512a929f552d84a1562b89a95c3098b260348fb35f316aae5a2b8ec369377ebe62337dc4663385c3673777b25a2e79ae592d82aa572d89a8582e74994d2769914722648f4722648643215f80401e7f8545236f77381e757d3e1f63753a1951703617486b33154a6d36164e6e37174e6d361741652f1434602b1139632e133c673114225d280e31632e12506c331751763a19738a47236b964d245c9a4d236aab5b286ba95a286ca4572783af622d61a25926639f57255798502062934c205b8a441f628c471f64914a20458441194c88451d437d3c194a7f3e1b59803f1b55813f1c4d7d3c1a597e3c1b708342207184421f748745215f81401d6b884420708b4721768d4822788b452150813e1a6e85421e5d803d1b517e3c196783421e968e4a268f8d4925888d482579894520858b46228c8a47238d8b4823948c49247185421e7587441f898e4b247488441e5e87431c70954e227d8d48226a84401d4c7f3b1858823d1a6990491f6f954e2085954f23357f3a143e803b16658c441d5c94461e3d8a3d185896471f86ae592b88b45d3071b75f2e59af562560b3572767b85a2959b5562550b7542257bb572458c25d265dc75e2962cf642a59c35a2462c65c2963c961286dd46c2e6ac9602966cd652a6ec9622c6ac65f2a74ce682c78d66f2f65d2672b60da6d2b6ada6a2c52d9692547d6632347d15c234edb672561e4702a51ce5d2253c960234eab4d1d5497451b5e89401c55743416537032145077371647753515527738174e7a3817537535175b74361657723517547135155a6f3516416b33133f6c32133e6a32133d652e1173914a247d934b268f9e562c77994f2670994d2675a153296ca1542864a151276a994e255e88411e547033174c5c2812454e210d4450230e3e52250d3d52250d4655280e3f52240d334f240d324e240d3150250e334c220c2e4a200b3d51250e3e4e220d4f512510304b200c364c200b5055260e4f58290e605b2c105f5f2f126d6a3a17636c38164c643012516d38155f733e184b68311531642d1120622a1010652c0f156d30102b7b39173f86411d65934e26839a552e899c5730979f5a33949e59318f9e57317f98512b899f562f8fa1572f95a15831a5a55c35879a522c809a532c8a9b522c99a25830a2a65d349ba35a3295a0572fa1a55d348b9d562e85974f29bba8623a929b572f9a9d562f8898512ba29f59339a9c57318995502ba5af67398da35c31769651287999532a5a89452271904b2880954f2b76944e2a7896502a6f954e277b97502a5d8e48225f8e48238b98512c979e5730919b542f9998512e91954f2d9b96512e808b4625a498543064823f1f8689472794904c2b7c8c4727a3985230948f4a2a96904c2aa8934f2fc39e5834b7975330878e4a2880904d27718c48237f924d268798522b8c9f562b7aa0562c8fa85a308da5562d84af5f316fac592a5eb0582896c2693988c568378fcc6c3976bf613081b45c3092bd64358bb15b3268a8552977a5552b6a994c27648e47236686432176884623707f3f1f5d773a1b58713618486f341556753c195f79401b4b703817366a32133e6831143c6932152c622c112a612a102d622d1128612c102f642d113b6e33145c83421e57914a20569549205394461f5e974a2188b1622c72aa5b276ba55b28619f5423529a512051974f1e5591491e5e8c471f5889461e41813f1a4884441e397f3e1831773716487f3e194b7e3d195681401c6684421f6c84421f6d8845206f8845206186431e5e87431e6d8e4721698c4620768e48226a894420818d49236f87431f62803e1c6884421e6e88441f9e914b27738c48216d8a451f5f85411b6385411c6e86421d7b86431f5f813e1a6f83401c7185421e7e8e4b237f975123738f4a226c8c4520738a451f4e8341194e803d1855823f1a6188431e5e88431d3f803c184f833e1a6989421d498c411a5f93451f6fa24f257dad572b6eac522760af57277cbc602c6db6592866b657265bb95a2658b8572563c05c296ac45d2a71ca612d61ca622a56be542350bd55235ac85e2667cc63285bcd652752c55d2465cb602866cf652a71d66b2e70dc6e2e66da6b2b59df702c6ee06e2d61de6b284edb6a2865e4712d56de6b2857dd6a2757cf602554bf572159b354215d9f491e698f441d627c3b19537536145379391650773917437435145e7e3b19587535175c7636175d763817426e32133e6b3112436e3413406e35133e6a311341672f1277974f2579994f26969e552c90a5592e8a9f542c92ad6234699e50276aa757297da5572b678b4320507335174c5c2711494f220d4c51240f4550230d4853260e4054270e5b5428104154270e364f240d2a4d230c29491f0a344e230d3e50250e324a200b454f230e3c4f230c545b2d105a613211575e2f116f653514666232145b6233145c6433135a68351353612f13586735152053250d2b5a290f205e290f20662e111a7032134285421e538d492367934f277496522ba2a55f3798a15d358799542e77934e2b73934d2971964e287a99502a809c532c7f9d552c819c542c869e562e88a2572f91a4593190a1572f8ca0572f839a522b6f944c278e9d562e949b552fa9a55d35a4a15b349ca05931999e572f899a532e939c5732899b552e92a059317596512867914d256c904c265e88462387934f2d9e9d58349c9e57328f9d562e759c5429869b532d93a45c3293a158309c9f5730b4a85f38ada25b359e9d5531aaa059338b934e2c8d904b2a94934d2c75874324758a46258f8e4a2a778844247889442462864121858b46268b8f4b298a934f29858f4a2789904c296d8947248b914d2a83924e289197522c79924b298198502c9eae623792b0623283aa5a2e7faf5c2f74b45f2f81bd653478c1663385c96a3781cc6d3671ba5f2f72b95c2e87cb6e3880c8693671b45c2e78b05c2f76a1532a72934a26698744227489452460783a1d5c71361b4f6d33174b6d34164d713718437137164e713816496c3316446832153d67321436632e123b632e132f602b11466b351651713618477536183b7c391842893f1b4e94441d5694471e71a254277caf612b7fb5692f74ab5f295d9a4f2151954e1f5d9853215084401c2c77381514672a0e106a2d0f166d300f236f30112d78361451833f1a6786431e6a8a4722798c48237f8d49246f8a45206989442077914a237e934c257b914a238c934c26878d48247888442181894623728643207e8a4522798944217288431f82904a236d8a451f778a45208f8f4b26738945207b8845206f86421e758946207887441f758a46217b974f24889e5728718f4a216c8c471f4f7f3c1a5a7f3c19587f3b1952803d1b5c83401e5689431e6188421d4a853c18488d431c749b4b237fb5602a6faf562772ae542769b054276ab558266eb557276fb959284caf4f1f45ad4d1e5ebb582760c35c2968cb612c59c1582559c3592558c35a2787d76a3268ce632857c45a2559c85e265acd632763d0652968d5692d73dd712f63d76a2b65e1702c63d0632666e0722f51d8672544d665226cd6672a5fd6662869d9692965ca5f2556a74a1d6b9d471e638b3e1b577c39185f763717537334154d7334145c7b3d1963803f19647a3a1957753716496d3112396b2f11407036134f723814346a3010366a3010356931116a924b2276995127739b512686a2562a799c512880a5592d729f512871a354286f9f5226739148225a7939194c652d134752230e5251250f404f230d4651240e495529104d56280f4c56291040552910314f230c2e4d220c3e53280f324f240d3b5227104252270f4554280f45582b0f585a2d113c54280e3e57290f72653616626333155c653414505a2b115d5c2c12455929103c5a2b1047633014416932163a733818387d3f1b598c4a25568c48246f924f2978944f2b7b95512c7593502b829a57317595512c6d924b2876954d297399522a7b9a512b7b9b522971994f286e964d2692a4592f93a75c30a9ab613891a057308d9d552f7a97512a849f582f9ca35d33baab633ab6ad663aaea861398b9b562e869b562e72924d287b924e2871934e2770934e28618b472360894724507e3d1d6f8947258796522d72914c275d8e48227a9d532a8ca2592f66954d266a974f278d9d542dbaab61399fa25a33a5a35b32989b552f9696512d83914c298b944f2b75894625708843227b8e4a27788946257e904b27758a45248a914c2a7b8d4a265f8541208994522c7e8c4a276a884523748b48258a94502b718e4a257e924b28969f573092a85c3190ac5e3188ac5d2fa1c16d39a8c8744187c1693698d2783f96d7794088cd6e3a85d0703886d3713a91d06f3b87d06f398ec2683888b862356fa052296b974d267f904b27748845235d7c3d1d556e3318546e3417526e3618506e351859723819476f371761713a1b456b3416396631143865301435622f1330622d124d6b35173f6a321451763819417f3c185d974c2165a95a265ba1532172a95b297bad5f2c65a75c285ea256245b9b502257954d2072a059282f7b3917217031111e6d3011226f32120f6a2d0d3a7a39174c7f3d1a6086441f688946207c914e267b8f4a2483904c266b8a452264884320648b441f6d8f482175934b24749049236f8b4621698744206885411d87904b25778a4420708b46206b89421d6989441e6d8b461f6d8a451f838d48237a8a4621798945207c88441f7487431f788844207588441f74924b226c8f4a206588441c56803d19497b3918617e3b1c7184401f60823d1b7089441f5589431b5c89421e6192492063994920739d4c227fa854297eae572a77b153287fba5b2c71b65a2a68b3542572ba592955af4f214db2502166bc58275bbc57254fbe552346bf552264c65b285fc65c297bd56a2f6ace632b6bcc622b63c85e295dc75d2761ce642a6ad0662b60ce652c62d1662b69d86c2f6bda6c2b52cb5e225cd568285cd669295ad3672a5ecc60255bcb5e245cc95e2350ae4f1e5d9f4b1e67974a1e6186411a5c7b3a175d7f3e1a5a79381752743515407535145c793817486d2f134e6c301438672c103e6c3212396a30103c6e34123e6e331234682f1071964e2572964d2566964b226f954b2579a2562a65994d245e9246224e90441e74a255286a914a236b7e3d1d5c6c33155456250f655226104e50230e3e4e220c3e50240d4353260e4456290f4353270f3850250d304a1f0b3650250d314f250d3a52260f3f50250e3d51250e4b56281050592c114a5b2e1038582a0e56603111666436155c6333146769371570653215596432144d633014566c37175672381a5b7d401e447f411c4487441e4d88452169934e277b97542e6c904d28698f4d287696522c69914c285c904c246d954c277498502a68934a267a99502a87a4572e96a65a3199a85c3293a960348ea65e338499532c7e964f2a839a532c839c532d97a15932a0a55c34899e562e8799532c98a058326b914b266a8d47258397512b8197522c9b9d58327d914e2a568341203d7a3819668c4c267a924f2a5588442040833f1b629049237d9a522b6d97522a7299532b7797502a7d98512b5c8b462071954e287f96502c6d8c492458813f1e718847244f7f3d1c6a8e4b2473934f286e8c49256988442265874220577f3c1d7685432462803f2072884524838d4c2a6f8543236f89472566874522748f4b26718f4a268f98502e7d984f298aa0542e81a2542d81ae5b2f88b864337abe67328dc76d399dd9784094cf703b85ca6d3784ca6d3876cb6b3382c869358ec269378fb663357ea2552c84a0562c7c914b26808d49256483421f607b3c1d5871361a5e72381a4e6c3417566f37195571391962733b1b60723b1b4d6d38183864301434612e1246683415416431144b70391a4a773b1a43813e1b498f461e5a9e522348974d1e529e51217daf612c72ab5e2b69a659275e9d53226f9c5325538d451f3f86421b43813e1b3b7a39172b7938152b7a3a16427d3b1851813f1c6184421e5f85411e718a46216c8947216c8a47235c8743205b85401d6689431f5f8d461f5c8b431d698d46205a88421c5884401c7189441f838f4a238b914d266d8944206f8a45206088421d668f4921778e49219d954f2896955027828d49237187431e6b89482257823e1a60823f1b5e85401c5987421b52813d194f7f3b1948743516667e3c1c7182401f64833f1c5386401a6491481f6c9149204e8c411a5a9749206a9f4c218bae582b76af55287eb65a2a72b457286eb256265eb0522467bb5a275fb4542454b5522261bf5b2869c05a2866ca622a61c45a2769ca5e2a5cc55b274ac55a2368d46b3162c861295aca60295bc85f2961cc622952c55b245fc35a266acb622a6ed4692b68d4672960d467266ddb6d296fd96d2f5dd164265fd66b286bd76d2c60c860245eb8582067a951206693451c5f87401964793818657d3a1951773716517d3b175c7d3b18537b3917487333143f64291042672d103c682f1137682e10406b31123a6b32113e6a3111666a2d0f4f672b0e57692d0f54692c0f4f672b0e576b2d0f506d2f10496b2c0f3f6c2c0e476c2d0f5a6c2d11536f2e104a6b2b0f4a6b2a0f52702f11456a290e3868270d3b7431103d7631103a783311286d2a0c39773110206d290b2979330e327331115923110743210f06562411075524110727221005502411064c2714075228140859281408572713086d2713085a241007682a1709662814095d26120852241007502411074b24110745241107722713097a27140a75271309712713097627130a802714096d2511086f261308662511077426120874261208852713097b2612087c2713088b28150a8527140964241107712512085e2311076f241208902614098b2613098d2613098b2613098726130a6c23110766231007712311077624120864210f0752200e065e200f063c1e0d055f200f0757210f0649200f0550200f0656210f0657200f0654210f076e2211076b221108712110075b200f06802412086c221007431e0d065f1f0e0769210f07752211077e2411086b2210065c200e064a1f0d057221100771210f077e2110075d200e06611f0d0672200f077e22100773200f0769210f075e200e06631f0e0678200f0776200f076d1e0e07681f0e06782210076a21100761200f069d2513097c2210078a24110878221007752210075e210e0670210f07782110076a210f07601f0e065c1f0f0661210f066221100771210f075d1f0e06571e0d066d1f0f065a1e0d064c1d0d054d1e0e0655200f0652200f06521f0f05441e0e05461d0c043c1e0e04321d0d054a1f0e06491e0e064b1f0e0655200e065f22100759200f0649210f066d24120774251308662412076c2311077c2311076321100757210f0657200f064d1e0d054a1e0d05391e0d053f1e0d05471e0e0563210f066c2110075f20100657210f0663221007622110065a22100756210f0758210f066823100771231007702411086f2411078b26120877251207882513097323110765210f066e2110066623100677221007862412086c220f0673231007732210074f210f0554200e0566221006682310076a23100659210f06431f0e05331d0c044c200e0557210f063f1f0d0542200e0556221006742310075d231107507234145f7131136e753416516e30125a783715587938164d7534144e7635147085421b507f3c16587b381660803e1a5975351576793819456d2d105c6a2a11696328115c60260f74672c1272642a126a622a1163652b1279682d1366692d116c6d2f148971331889773516847633168a7633178b7a3616917b3718717634158b7d3818857a3517857935176d733214807734178a7c37177c783415957d38197f7a3618657330137c7c38167f7b3816656e2f115063280f585e2710535c260f535f280f4859250d535c270e4c5a260d715f2b1067401d0d65411e0e4b3d1a0b63411f0f56421f0e51421e0d5d45200f4f451e0e624821105947200e5449200f4b4b220f4f49200f5149210e5c4c2210584d22106a52271389572b1567522713585226114c50240f5d5729125d56291172592c1561572a13515427115d572a1364592a1367592a1368582a135b5729135758291258582a14795d2c17815f2f17665b2b14635d2c13505728125f5c2c156f5c2c165855271365592a146b582a1570592b166155281463532814584e23116354271568532615815b2e1a7c5a2d197a5a2d197e582c1883562b187e5328167a51271683562a18644d24127652291667502414735228166b50271559502613695227155a4f251371552a174f4c2210935c301c585125126e5a2d18895e2f1a8b60321d9d66361f9768381f95683720986c3a21866a381e7b69361d7b66331b7f67331ba2713b21a3723c229f713a218f6e381f9d733d2399723c229c733b2398703a21b3774027a0733c248c6e38205d642f187d743d238a753d23776f361d9f7d412686763c2184763a208f7b3f247e773b207572361c85753a20736c341c6968311a8d6b351f5c662f16606731185b68311861652f186e6b331b90794025967a3f23987e42269e7d4124b985482a9c7a3d2377783b206771341a827a3c206672341a7078381c6874361b737b3a1d6a7a391c6d79391d83803f226e7d3c205e7b3a1d667a381d68813c1e6a843e1f6f89432264873f1f648a42215f88411f5f894121668c43226d974a26779d4f297b9e4e28739a4a26649546235d93442064984923729c4d2698a6562f6b954a245a8f45216b924725719149247c944b2779914a26678a44225f8943219795522e92914d2c9694512e7d8b482672854422607f41206d814222778344246d7b3d207b8041228781442670773b2078783c216670371e726f381f626c341b7472392087773d2490793f268b793f25927a40278f753e259a763d268c723b227f6e39206865301b776b36206766321b6e67321b6c642f1b6566311a5a632e177768341d7b6b371f585e2b179e733f275b6431196367321a6869341b8d743e2489743c2280733b2076733b1f807a4023877e442666753b1f7b733b1f83743c22b5844b2daf81482baf7f452aa981482bab844b2da783472ca4864a2e977d4128a382472a94824629867e432873794024748449299c9054347c8948288e935230748b492676874325838c4b2a7a8c4a29758b49286e864324628342225d833f20718644254e863f1d5287421f4b813d1c64864223719048289e9c56348d974f2c7191482585964d2982954c2a7c8f4828708f452559873f1e6e9046244d89401e57873d1d54823c1c56873e1c51863e1b5e853e1e6b8843225986402053833c1c5a823d1d58843d1c5b833e1d5687421e56833d1b4f813d1b5f3f1c0d68411d0f573f1c0d4f401d0d51411d0d4f411d0c59431f0e5d45200f5c49220f5e4a22105f4b2310534b220f4d491f0e554a200f564c23105e4f2511564e23105651260f534e230f54502310525225105c5428135f5629125f5427126f5829145f572a1360582a146c5a2d156d592b156e592b146a592b1561582a14725c2d169261331b6c5a2b148e68361c6f5e2d155f5f2f167365341a6a5f2e16675c2d166a592a1564582a1562572b156d592c165d5126135c5125136e55291672562a1773572a1767552816825d301b62532714945b2f1c92582c1a7250271678532816654f2514554b221272542916564e251232471e0d21441c0b23461d0c32461e0d5a532815595226134c5024123d4d2210334c200e6d5e2f1896683720a36d3b239b6c3a22b0724025946e3a217e6a361c7f6a361d7769341c7667331b876b361c836a351c756a341c826d381e64693219776d351d736f371e6d69331b58632e178f723c228671391f786d381e7b723b208f753d2298793e249b7d4025847a3f237374391c83793c2286773a217974371e9f7c402588753a207a6e371e776a331c5d642d176169301756672f165a6830176d6c321a92753b218c763b218f7b3e2297804224897d3e217b783a1d7375381d7377391d777a3a1f6e77381c6d7a3a1c83803e217079381d7a7e3c20456c2d156a7c3b1f5876371b78803e2171803d206a7f3b1e71853f2169843e1f62843c1e628a40205f884021628e4322759649276a9648266a9a4b266396472275984b2768994b265f9648226f9749256695482394a1532e73984c27689248246991482379964926749249249b9b542f6d8d4724688b4522738d4a26878f4a297989462493924f2b6682401f60844523788a4b277581412261783a1f727e402267783c1f69783c206572381e6171381d686f371d6e72391f7e733b22767239217e763c22847a402586773e25a87e452b857039218e713a237c6f3820636430196f68331c756c351e60632e19445e2a15355a28132e5725103a5b27136667331d6266321a51622d173e5d2a13546732198b763e237172391e88773e238b7c42247e773d216e7a3d1e6a763a1d71793f2075773d206471381c87763e2283753c2170743b2078783e215c70371c757a3c216e7c402375763c2161733a1e8b81452966793c1f4a73391c728549286c844524b59754329995502d7b89472665823f2084904b2a6c8642236c88452482914c2a6e8a4626668743245f813d205c89412155853e1d367936165e894222628d422282954c2a778f472579954c278b9b522c80994e28608640205b884120608d4623608e4422638e442054893e1e5f89411f65883f1f58823b1e40773315507e3d1e497e3b1b62843e1f52813c1c54823a1c5a843f1f52823c1a52843c1d4c853d1b63401d0d65411d0d63411e0e583f1c0d4e3f1b0c4a401c0c4c401c0c55451f0e5649220f5349210e5a4c2410594c230f504c230f4e4c230f544d2310664f2411655329145a5226115652261172582a145f552812595528135c582a135b5124106e572a1476592b1665582c1460592a15675a2c1569592b15695a2c15795d2e178f61321a765e2d16695b2b15795f2e16706030177b65341a7163311761602e1661592a1463592a1466572914685627146f56291567532715725227156353271571562a17805a2d196c5629175753261470582b178a5b2e1b89582b1a88572b1a6a5227155850241239481d0d464a200f3f49200f4e4e24123c4c2310394c220f4d52271164572a16635a2c1753542714384d200f344e23105e5d2e188563321b8965341e7f65341d946b3920866c381f836b371d7a69341c7667321b6c6431197566331a8c6c371e8a6e39206c68331c716c341b776f381e8f733b2196763f24716a331a837039206c6a341b5466301788743a218373392078753a1eb4824529b0824428857c3e20867b3f226d72361c6f72371d7973371e776f361c716c341c776a341b6f69321b8b6f361f5e6a3117606d3318686c321a7973371d8d773a208b7c3d21907f40228a7c3d21616f32197378391d727b3c1e6a78391d707c3b1e717e3c1f767e3b1e777b3a1e7c7e3c206c77371d6978371c5e78361a4e702f175d7b391c5f803c1d60833c1d658943216e8941225b873f1f638b41227291462663904422619447246e9a4a264c91431d749a4c266d9b4b275392462065944824609044226994472484994d296f934925669047236e944b277a934a2782934b287c9049269497522e8d954f2a7a8b4826858c492685904c26858f4e2a7f8e4c277a8d4b2569803f1f6f7e3e1f6e7a3b1f66763a1d6972381e5e6d361c656b331c6569321c6d6e361f7470391f696f371e6e7239206070371d83753c23aa7d452c96763f277d6c37215f622e1a3c5b2611465b2713515f2d1735582612365b2a142f5d2a143c602b126366311b566530196a6b351e4f652f19345b29133c602d167f713d2384733d218c7840247a743b2081793e20887d4022807e422271763a1e6774391e606e361b6d70371c7d783d226771371e6674371e767b3c2276804225797f4124647b3e22717a3c216e7d40225075381a607d3f208c8a4a29828c492898904b2aa096502d748d4724718b4724718844236d8a46256a8a4825648340206e874424698642215a803c1e58833c1e4f843c1c427e3819688b42216f8a42236c8d42227792462476964b267c974d28618d45216289411f608b4220608f4622598a411e638d43215e8b401e6387401e688942225b803a1d4e7d391a51813a1b467a35184f7f3b1d5d843f1e5988401e5c8a431f5b89421e52873f1d4d833b1c5c3c1a0c79401e0e68411e0f5b401d0d6345211056431e0d53441e0d5e49210f684c25115c4b230f644e2411574b220f524d230f514f2610594d23105a502410564d23106c5327135951241154502410565225115a5528135c55281258552711715a2c1573592b15735b2d16695a2b1567582914735a2c15765c2e17715a2c15886031198f6231197c5f2f177a5f2f1774613118685d2c146c65331770622f16555c2b147f63311a6a5d2c16715d2d1761552714595024117d562a186e562a168d592d1a7c582b177b582b19845a2d1b8e5e311d945e2f1d975d301da15d301e7e5629175c512512535124126a542815615427144d4e2311394c210f575628132e4b1e0d61582a1655582a153b522511214b1f0c445428137561311a6c6130198467361d7362321b68602f19926b381f966f3b20906d381f7265301a7b67331b886a361e866a361d916f3a217168331b616830186e6c351d786c351d827139206368311a7c6e361e7e733920566730176b6c331a7a71361d7f743a20bc83462a877a3d2187783c21887a3c217375381d79753a1f7a74391f7b7439207972381f746c341b756b331c796b331c8a753a2059672e174e672d157170341c8f7c3e2185783b2081783b1f8d803f227777381e6c78391e6d7b391c6379381b7c803e21677b381c6f7c391d9e894526807f3c21687a391c697a391c627a381b687b391d708541226b854021728843217b8d45256f894121638a4121598a421f648a42225d8e422163914724729a4b266f994b26749849256a964922669649246f9b4e28719a4c277c9f522b82994e2a7c974c2777974c297291472473924a2684954e2979914a26a09c56309597502c798e4926878e4a28828e4c277d8a4725738947237789462363813f20828444266b7a3d20847f422576763b206c6d361cae7b422aa67941298e753d2589763e2484753b248a7b4127897c4227927941279d793f28876f38235b612c186266311a53622d175e6530194c5f2a1556612d173e5a27145c6b341b5a6832185f6c341c626d361d3e612c1447602c162f5b29127a733d207e70391f736f391e6f6d361d646b341b7d793e218d7f4224777c422470773b1f6f743a1e73743b1f72753b20827c422574773c215a73341b5674371c667c3d1f737f40245f77381e778041247a8446264f793d1e7d84442471823e20938b4828a0914b2aa0944c2a91934e2982924c27738e48257e8c49277a8d4c2765864221688240215f823f1e577c391c67813c2059833c1d39793316618b412061893e1f77944924728c44225a833c1d719045225a853e1d5c89411f5c8c411d678e45225989411e5889401e678d4422708b43206987402051833c1b4b7d37194b7e391850803a1c54823c1b53863e1d5689411d5888411e5b8a421c52863f1d4d88421c7c411e0f73401d0e6b421e0e61431e0e54441f0e6046210f6648220f5e4a230f644e2612534b230f5a4e24105d4e24105b4e2410514e230f4f4f2410554f24105c5026125d512511645226134d4e230f58512511595226115353271160572a13725a2d17835b2d17745b2c16735b2d1666582b15615729136756281370592c157a5c2e188b603119725f3018735f301876613118726533186b673318696631177268331964652e164f5f29136d602d175d5b2b16505327135d5226136254281568512614775729175d5326137a5a2e1b7b5c2f1b5e53261460572a1681592c1a855c2d1a7f5b2d19805b2d196856281574592c1769552815575427135855271342532511765e2f1b7860311b58582915525729153651230f4f592914615d2d17585d2d1739572712495728145d5d2d177f68351d5b612e177f69341c7667341b8d7a442166612a167b6d371d6d69331a6367311860663019666a321a98743b227f70371f786f371e7e73391f696d331953672f177772371d7b763c2189753a2082783b209a7f41247a793b1e7875371e7a75371f7774371e7570361d847438208173391f8c713720766c331c766e351c5f682f183b5e2812696a311a8376381f877a3b21957d3f247a7a3a1f8c824023727c3b1e667b381b6f7f3b1d6b7c391d6b7b381c84813c2189813e227b7f3d21707c3a1e5878361a677e3d1e77833f20748741216d854120688942206287401f6b8e4623678e4521578b411e5c8a41205e8a401e66873f206a8a412171863e215180381a59863d1e638e43226292462369964a2695a2552f8b9c502b7a964b2675974d2774954b2774914a2582944d298997502b9297522d8c944d2b9597512d8c95522d7a904e2776914e277c934f277a89472567803f1f80834326707b3c2170763a20556b331a636c341c6f6c361d6165321b7d6f38217b7239217e793f247f783f25817a3f256b713820716e36208b703923575e2b167c67321e7668321c8c6c36217c6a361e4c5f2a154b612c155269301758663019676a341d57693219486630183d612c152156230d5966311a6869341c516832193a602b143d602b145d6d341a74783d1f6e773c1f73793c1e71814422757e3e20707d3b1e7c8547256c7b3d1f5875381b63773a1e7f7f40246f7d3e235a78391e728141238186482841723318597a391d6d8340206f85422268803c1e898e46257e9047246988401e718c4624758a452665843f1f678440206e88452363823d1e6b84402060803b1e6a8640203a783417447d381b64863d20749348256b8d4423638740216e8d4424618b42205d8a42205b8a401f55883e1b59873e1d58853d1c7789422265823c1f59833c1e58823d1d5e843e1f55813b1b648b421e5e8b421f668c4521578b421e588c431f5187401c4e8a411c568c441f6558230e625a250e5959230d565b250d535d260e5561280f575f280e5c61290f505e270e495d270e445a260e405b250c445b250d425c260d3e5b250c475e260e415c240d3f5b230d435e260e465e260d3a5c230c405e250c4464290e4c692c10546b2d104d682a0f4d692c104964280e4164280e4563280e4463280e4d692b10506a2c11656e2e1255703113607635146c7836165d7633144d793513507a3414517a32134e7a34134377301248752f1148763113406f2d11416a2910496a2a114b6b2b1155702e135d723014637332165a722f155c6e2d145e733217466c2b1254702d1355732f145b6e2b11556c2c114567280f3762250d3f63260e4263260e3a62260e3d61260f4f672b1251642a113e63290f3a5e250d325b250e2e58230d3156220c3756210d3c59240e4d5c260f5f5e26105c5f27105c5e2710595d25105961270f6e682d125f612710505c240e4a5b230e4e5d250f5b6026106c61271165602610565d240f535c230e4c5b230f585d250f5e612710656329115f61271164612811676026105d612710605e250f6d5e2610665d250f645c25105e5a230f7c5e27117c5e27116a5a240f6d5a250f5757220e5054200d6258230f68592310745d2611775d2611675c2510675d2510635c240f655f2610555b230e575b230e615d240e625d250f675d250f5c5c240f555a230e535d250f5c60270f5a60270f5a612810555f260f54612911485e250f485d250e4c5e260f4e60270f475c240e505b240e4959230d4a58220e575b240e4055210c4155210c485b240e4a5f270f556229115560280f56612810596229115a602911495d260e565c260e535c260f5e602811626129126b622a1262642c1369652d147a682e155b672d1351672c1157662b115a652a114b6429103e5f240e4860260f4d642910405f260e475f26105262281157642811606b2c13656f2f14586f2f165a702f155c71301757702f154b6b2b135a6e2d14586d2d125b6c2b12566a2a1146672810496829103a62260e3862260d3760250e48672a124d672a124c64281140682a114463270f2f60260e3961250f325f240d345f240d41642810516729115c6d2d13586b2b12576a2c12576c2c1265793615727c3815596e2d114865260f4866281049662911596a2c126c692c1356662a1253642912506428114463281152642a1160682b12626c2d135c6a2b12666b2d14676c2d13596b2c1260672a1165652a115f6328116764291365642a1274652a1277672c12606128105f6228104a5f250e3f5c230d5c64291168672a1369682b136b672a125d6729115e692a1256692a105a692b124864260f4d64270e57682a105e6729105866290f576629114665280f4e692b1052692b1052692c104f6a2d1148662a0f486a2d12446b2c10456e2d11467331123f7330116060250d6c64280f6a68290f69682a0f6e682a106265250d606a290e68692b0f5a66280d5c682a0e4f65290d4c61260c4662270d4765290e4b64280e4a672b0f46682b0e686b2d114765270d4d66290f4a66290e4966270d3d66270c3e68270b4168280d476c280d3a6b270c3a67250c4269280e4567270e3865250d4168280d47702d0f43742d0f44772f0e49792f0f39772d0e3c792e0d3e813410417f3010467f2f10417d2f0f427e3010417e2f0f438032123f7d3011467b2f1132742b0f31722a0f457d31113d7d3112507d3013678034155f7b2e14657c2f1456772d13577d32144e7a2f1354792f133e70280e356e280e4d752d113a6c270e3f6f290f486f2a0f4c6e2a0f4f6c2a0f586c2a113e66260d305f210c245a210c305a210b20551e094156200c4a57210c3457200b3659220b455c230b515f250d4559210c4e59200b48551f0b595a220c5559200c5b5a210c565e230c4f5b200b575b200b575a1f0a555b200b4a571e094e5a210b48581f0a5258200b4f58200b5558200b4c551f0a46531e0a5f551f0b63541e0a7757200c66541e0b69521d0a63521c0a6a521d0b6d531f0c5c4e1a096f521e0c5f4d1b0a5d4b19095b4b1a09694e1c0b694e1d0a704f1d0a754f1d0a644c1a09544b1908514c1a08504b1907564c1a085c4c1a0973511d0a74531e0a68511d0a664f1a085a4f1b087455200b64521e0a5f521e095d511d094b4c1a08474b1a07444f1b08464d1a084b4f1c08434e1c08574e1b08454b1a08474b1a084f4c1b094b4c1b083e461706404918064248180744481706444a19073f47170744461707444517074148180745461707474c1b08464c1a08434d1b084e501d0948501d094b531e094a57210a3e531d0941511c0944541e0944571f0a485a220b425b220c4459200c4c5e230d375a200a345a200b4b69290f486a280e486e2a1056702a1069712c1166722c12596e2a115e732d12516f2a1059702a115369250e4168240c3d67250e4469270e4b6a270e5169260d4b6b280e5767260e4e67260d4163240c2e5e200a245d200b215c210a2b62240c4661230d5569280f3962240c3463230c3e67250c4368260d4064230d4664240c4a62230d5264260e5364250d5a65260f4d63240d4c63250d4f62250e5261250d4e60230c445d210b4f5d230c5660250d515e240c515f240c5561250d475b220b4f5d230d5f5c220c675b230c6b5b230d6759220d6656200c7458220d61541e0b5f531f0c554e1b096e521f0c5e511e0a56511d0a5b521e0b63531e0b6e5b230d695a240d6d59210b6158210c5e59210c595a210c545a210b525a210b5257200b6b5e250d6e60240d605c230c665d230c605b210b4d5c220b635e260d635d240c565b230b45561f094459210b3d5d230a4460250c4062250c3f64280d3860260c8a461e0c83461d0d924c200e8b4f230f965225119c57281392562713905b2d16905627128b54261186512510815025117d4e23107f4d220f7d4c220f774c210f724c2210724b220f754c210e804e220f7a4c200e7e4e220f8b5225107750220e7251230e735426137452220e795525107454230f744f200f705122106e51220f705223107454241072552511785d29137c5e28117e622c123f702b0d44742d0f41722c0e3e782e0d46a0411743a4471a40a3512041a359234ea4602646a4642448a4612551a565244ca4531c4ea6551d5f92511f619b4c1c48a3491782a16c597aa36e586ea26f587fa26e587fa36f59709a69556496665472996756689767546a966855759769576b976957749669588b9a6c597e95695785946857868f66557d8e66568891685691916956868e6756748b6454768c6354808d6555808a6254818862537d8a635583896153838b6253858c6354848b6353868c63547c8960527b8a62537e8a62537588615370876052758760527986605279865f52788660527b85605276845f51808561537c8660537e845f537d856052868761538f5f36257a5a322274583222894c251588482112924922138b4620119147211290451f1184441f1193462011984620118b441f108f4f281986441f108546211290482314974b2414894922135a421b0c8048200f9b4b2312964b23119d4a221091461e0f8a441c0d87431d0e8147201182472011784620107a451f1076441f1070431e10884720117e451e107c451f118246201279502a1b75552e1e725630206f7f5d51717f5c5072805d51717d5b50737c5a50707c5b516b7c5b50757e5c51727e5c5179835f527b835e518385605271835f5175856152768560517686615279896252788a635376886254728760537a8962547a8c64547e9067577e936757829568567c96675582996a57869d6c588e9c6c597a9867567c9a6a577c996956719c6a568ba06e586a94655462906353658f62526d9364536a9165537093665478956957729166558b986957819366557d94685781926756668f64547e956857516f2f0f5a9d591e437e38123a91501d3a92512042914f1f489054204b9053205793511f5192451a4e903c1649702b0f445c220b455c220b495b220b82542614894c200f7a4a1f0e7c4b200f7c491e0e7f481e0d84491e0d7e471c0c7d461c0c83451c0c83441b0c7849201083421b0c8e411a0b88482111833e180a813a1709863d190a883a17097a3815088a3a15098e3c17088c421c0e97461f118745200f8f472011934a22138d40190b844820107e481f10924a2212944c23138e4d2413904f25139c4e2311914e2412964e24119c4f25129f4e24128d4b2311904b2311844a2311844921117c4821107546201077462011754621116e482111444e1e0a4c4d1c09ff15120fff171310ff16120fff2b241fff221d19ff2f2822ff392f29ff26201bff26201bff171310ff15120fff171310ff231d19ff221c19ff211b18ff1e1916ff1f1a17ff211c18ff221c19ff1f1915ff201a16ff1f1915ff201a16ff201915ff201a16ff201a16ff302a26ff201a15ff1e1a18ff2c251fff211b16ff211b16ff221c17ff231c17ff241d18ff251e19ff241c17ff231c17ff241d186a4e210e4465280d3e56210a2c6a270a3de7652445ff8b3a44ffa24144ffc14c4dffda5135ffc34033ffbb3c25ffac3335ff902b5dffa734626135123eff812839f2661ecaeed8ccefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffff6f645aff71655cff88796eff3a3028ff382f26ff362d25ff352b24ff332a23ff322821ff312821ff2e251eff2e261fff332a23ff322a23ff413932ff2c251fff2f2822ff3f3730ff3d362fff3b332c271b17129725201aff322a23ff2e2620ff2f2822ff2a241eff251f1aff231f1dff372f29ff352d27ff332b26ff332c26ff302924ff2e2823ff302a24ff312a25ff322b26ff332c27ff322b26ff4c423bff7b7064ff786c62faaba29aefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffff555c270e52f5923554732c0a45ffbc455dffc85437ffb2423cffbc4c4bffcc5253ffd14e5effa64949fa7c32458d3d15344e1e08294b1c082b491b08a62d1a0fff1e1915ff1e1915ff1e1915ff1b1612ff1a1511ff171310ff16120fff16120fff13100dff120f0dff2a211bff1f1b16ff1d1815ff191512ff0d0b09ff0c0a08ff0a0907ff0a0806ff080706ff080605ff080706ff1c1917ff1f1b19ff211d1aff24201cff211e1bff181512ff27221eff27221eff28231fff292320ff2a2521ff2c2724ff292320ff28231fff28231fff27221eff2a2420ff29241fff29241fff2a2520ff2a2520ff2a2520ff29241fff2c2721ff2f2923ff322b25ff322b26813f201136451908ff15120fff0f0d0bff231d19ff221d19ff302822ff362d27ff261f1bff251f1aff14100eff151210ff151210ff151210ff16120fff171310ff201b18ff201b17ff1f1a16ff1e1916ff1f1a17ff241e1aff1e1915ff1e1815ff201a16ff1e1814ff1d1814ff1d1714ff1e1814ff1f1a17ff2d2723ff1f1b18ff1e1916ff1f1915ff201a16ff221b17ff221b16ff221c17ff231d18ff261e19ff251e18ff251e18ed2c20193d61220b35541f0837521e0824b5481441ff833042ff973d49ffd14f37ffda4639ffbd3e2dffb53834ffb1384fff933058ff892b5ae58931569445164bf76c20f088786dfd847b74fd837b75fd8c847efd958c85fd9c938bfd999188fda39c92fdaca19afdb2a79efdbdb1a8fdc5b8b0fdcabcb3fddecdc2fdfff1e4fdfffdf3fdfbede2fdefded3fdebddd4fdebd9cffdeddcd2fdded0c5fdd8c9c0fddcccc3fddacac2fde1d2c7fdeddcd2fde7d8cdfdded1c5fdd2c6b9fdccc1b4fdcbbfb3fdcabcb2fdcfc0b4fdd1c1b4fdc5b5aafdb4a79bfdb1a499fdaea096fdab9d94fdae9f96fdbbada1fdaca195ff928478ff766b61ff817368ff50433aff342c25ff352c26ff362d26ff342b24ff322a23ff332a23ff322a22ff2e251fff302720ff302821ff312922ff322923ff39322cff2d251fff2d2621ff342e28ff3c342dff3b332b281d18142b1d1915ff312a23ff322b25ff2d2621ff2a241eff26201bff231f1cff352d27ff362e28ff352d28ff342c27ff302924ff322b26ff322b26ff312a25ff2e2822ff312a25ff332b25ff322a24ff362f29ff594d43ff7a6f64ff897c71fea2948afdaea29afda79b8ffd93887dfd9a8e83fd9d9187fda2988dfdaa9e95fdaca397fdb1a69afdbaada4fdbfb2a7fdc7baaffdd1c3b8fddfd2c6fdebdfd3fdebded4fdefdfd5fdf3e6dbfdfdf2e4fdfff7eafdfffdf3fdfef1e7fdfaefe4fdfff8eefdfffcf2fdfffdf4fdfffbf0fdfef2e7fdf7e9ddfddfd1c9fdc6bbb6fdbdb3aefdb2a8a4fdaca39efda7a09efdaba29ffda09793fd8a837ffd797571fd76716dfd746f6bfd746f6b4e56230d50f6792c546f2e0c59ffb83d56ffac435dffc14c31ffab4133ffb4463dffc84542ffae4062fc813a4568290e384c1e0833471b0733491d08f5241c17ff201a16ff1f1a15ff1c1713ff1b1612ff1a1512ff181411ff17130fff15110fff13100dff171310ff1e1815ff1f1a16ff27211cff0f0d0bff0c0b09ff0a0907ff090807ff080706ff080706ff070605ff181512ff1f1c18ff201c19ff231e1bff2a2623ff0f0e0cff26211dff27221eff26211eff27221eff27221eff27231fff26221eff28231fff28231fff27221eff27221fff27221fff29241fff292420ff29241fff2a2520ff2a2520ff2b2621ff28241fff2c2621ff302923ff312a24ff312a25ff322b25ff332b26ff1c1714ff29231eff25201bff2b2520ff29231eff241e1aff241f1aff0d0b09ff151210ff161310ff151210ff151210ff161310ff161310ff16120fff1a1512ff201b18ff201b17ff1f1916ff1e1915ff211b18ff241e1aff1f1916ff1e1815ff201a16ff1d1713ff1c1714ff1d1814ff1d1815ff2a231fff221c17ff201b18ff1f1915ff1c1613ff1f1915ff1f1a15ff1f1a15ff201a16ff201a15ff241e18ff241d17ff251e185759250d4560250c4453200930993d1046fd7c2d50ffbe4b36ffb73e4bffcf4a35ffb83c35ffa53b43ffaa374bff993446ff78254dff882d529a45163fe15d1c5a8c411eff6a6259ff776d66ff857a71ff8e8178ff8f837aff938880ffa0948cffa89e94ffaa9e94ffafa197ffb4a59cffbfafa5ffdcccc2ffebdbd0fffaede3fff4e0d5ffefdbd0ffd8c7bcffc3b6aaffbcafa3ffcbb9adffd8c9bcffe1cec4ffe7d4c9ffe9d5caffe0d0c3ffccbfb2ffbdb0a4ffb7aa9effb3a69affb1a598ffb1a397ffae9f94ffa8998eff9e9085ff97897eff93867aff92857aff92837aff9a8b7fffa09084ff9a8a7eff918175ff3c322bff3d342bff3a3028ff362c25ff382f28ff372f28ff362e27ff372f28ff342c25ff362e27ff372e27ff3c332cff413831ff41372fff3c332cff372e28ff352d26ff342e27ff3b342dff3931292c1e1a16311f1b16ff393029ff352d26ff302923ff2d2620ff27211bff24201cff302a25ff342d27ff342c27ff322b26ff362e28ff312a24ff322b26ff302a24ff312a24ff302923ff2f2922ff302823ff38312bff3f3731ff3e352eff4b4038ff85786eff9c8e84ff897d74ff786e64ff7e7269ff80756cff897d74ff91857bff91857bff95897fff9c8f86ff9f9388ffa4978cffb0a297ffbcafa3ffc4b7adffcabdb3ffc7bbb0ffc5baaeffcec4b7ffdccfc3ffe8dbd0ffe7ded2ffe3d9d0ffe4d9cfffecded4fffdece2fffdeee1ffebddd1ffe7d9d0ffc7bab3ffada09bffa49993ff9b908bff948b85ff918882ff978d89ff867d79ff6d6762ff625d58ff5c5752ff5d5852485a250c44e6692353bc6b2263ffca4857ffc03f54ffb34350ffb94a21ff973123ffba3d4affb64247f77d2e4154220a30491c07364a1d0833481d08ff221c18ff1f1915ff1f1a16ff1c1714ff1b1713ff1b1713ff191512ff181411ff15110eff13100dff1e1915ff1d1713ff1b1613ff251f1aff0c0a09ff0b0a08ff0a0907ff0a0807ff080706ff080605ff0b0908ff211d1aff211c19ff1e1b17ff2a2623ff1a1816ff25211dff26211eff28221fff282320ff26221eff28231fff28221fff26211eff25201dff28231fff26211eff28231fff28231fff292420ff2a2520ff292420ff28241fff29251fff2a2520ff28231eff2b2621ff2c2621ff302a25ff312a24ff2f2823ff312a25ff322b25ff3b3129ff221d19ff26201cff2b2420ff231e1aff231e1aff100e0bff15120fff15120fff151210ff15120fff151210ff151210ff161310ff161310ff161310ff161310ff1b1714ff201a17ff1e1915ff1e1916ff1e1a16ff221d19ff261f1bff1e1814ff1e1815ff1d1814ff1c1713ff1d1714ff1e1814ff1d1814ff28221dff1f1a16ff1a1613ff1f1915ff1d1813ff1d1813ff1d1814ff1e1914ff1f1a15ff201a16ff221c17ff241e18c03d2315526d2d0e445620093861250a3feb67202bff852b41ffc34530ffb63c3bffb13f4dffb53e43ff9e324eff8d2d49fb671d3eff6d1f4e451a0840d552186d7a3617ff382f27ff392f27ff3c3229ff3b3228ff3c3128ff3c3229ff42362dff44392eff483c31ff483c32ff483d33ff493f35ff4d4137ff4c4137ff4c3e34ff4a3e33ff493e34ff4a3f36ff483d35ff473b31ff43382eff42382fff443b32ff3e362dff433930ff41382fff3f352dff3f352eff3d332dff3c332cff3b322bff3b322aff3b312aff372f28ff393029ff3a3129ff382f28ff362d27ff342c25ff352e26ff352d27ff362e27ff342c26ff362e27ff362e26ff352d25ff352d26ff382f28ff383029ff383029ff3a312aff3d332cff413931ff443b34ff463b34ff433931ff40362fff40372eff372f27ff342e27ff39322cff3c342d2b201c16271e1914ff383029ff3a312aff322a24ff2b251fff251f1aff181513ff322b25ff312a25ff312a25ff332c25ff332c26ff332c26ff322b25ff322b25ff2f2923ff2f2822ff2e2722ff322b25ff37302bff362f29ff352e28ff302a24ff312b26ff332d27ff322d27ff342e27ff36302aff37302aff383129ff3a322aff372e28ff322b25ff342c26ff342d26ff372e28ff383029ff39322aff3c332cff3b332cff3a3029ff3a312aff3c342dff3d352eff3d342cff3c332bff3f362eff3e362fff3f3731ff413832ff403732ff3c342eff39322cff38312bff352f2aff3f372fff3e362fff3b332cff362f29ff322a25ff2d2722ff28231dff25211cff26211c5251210b3edf601d47b6571d53ff962f5cffb13b65ffc23f4fffb64353ffbd4542ffc0493bff9e3a59e16f2c504e200a3a4b1d083e4b1e09743a1c0dff221d19ff211c17ff201b16ff1e1915ff1d1814ff1a1512ff16120fff15110eff130f0dff15120fff201b16ff28211bff231e1aff0f0d0bff0c0a08ff0b0907ff0a0807ff090706ff070605ff070605ff1b1713ff201c19ff211d19ff221d1aff1e1b18ff191613ff241f1bff27221fff27221fff292320ff292421ff28231fff28231fff282320ff27221fff282420ff27221eff27231fff27221fff27221fff2a2521ff292420ff28231fff28241fff2a2620ff2b2621ff2c2722ff29241fff2b2621ff2e2823ff302924ff302924ff312a25ff332c26ff221d19ff221d19ff2a231fff26201cff221d19ff181411ff171411ff15120fff15120fff15120fff15120fff15120fff15120fff151210ff151310ff151310ff161310ff161310ff161310ff1b1714ff1f1a16ff1f1a17ff201b17ff211b18ff221c19ff221c18ff1c1713ff1c1712ff1d1814ff1e1814ff1c1713ff1b1612ff1e1a15ff231e1aff1e1815ff1d1815ff1f1915ff201a16ff1f1a15ff1e1914ff1e1914ff1f1a15ff211b16ff221c17fc241d173e65270c59682a0d6e62290d43bf4f1660ff9d3d3dffa43839ff9f3646ffa63740ff963156ff943143ff822732ec5c173eec5d185a42190834bf4914268a350fff372e26ff372d26ff392f27ff3b3128ff3a3028ff3b3028ff3c3229ff3e342bff40352dff3f352dff41372fff443830ff42372fff443930ff41372eff433830ff413830ff3f372eff423830ff453b33ff443932ff423830ff3e342dff3b342bff3d332aff3d352cff3e342cff3d342cff3b322bff39312bff3a312bff3f342dff3d332bff3b3229ff3f352cff40352dff3d332bff3f342cff3d322bff3b322bff372f28ff322a24ff332b25ff362e27ff352d26ff352c25ff383029ff3c322cff3d332dff3b322cff3f352fff3d332bff40362fff433932ff443b33ff443b33ff403831ff3f362eff3b332bff39322bff3c342e2d201b16251c1815ff3a322bff3a322bff2f2722ff26211cff201b16ff171513ff39302aff382f29ff312a24ff322a24ff332c26ff332b26ff322a24ff332b26ff322b25ff2f2823ff2f2722ff2d2621ff2f2822ff312a24ff322b25ff37302aff352e28ff332c26ff342e28ff37322dff362e29ff352e28ff372e28ff39302aff342c26ff322b25ff352d27ff372e28ff382f29ff3a302aff3b322cff3b312bff39312bff37302aff3a322bff38312aff3a322cff3e352fff3f3630ff3e352fff3a322bff3a312bff3a322dff3a322cff39312cff352e2aff332d27ff3b322cff3e342dff39312aff3a312aff322a25ff302824ff2d2722ff2a2420ff28221d4a491c0948b8471631c8531842ff71225aff862d5cffa23666ffb64246ffc44541ffbd3f36ff953539ba4f1b6456250b5d51230a4d4d200bd4291c14ff201b16ff211d18ff201b16ff1d1814ff1b1511ff16120fff130f0cff120e0bff100d0aff181411ff16120fff1c1712ff221d19ff0c0a09ff0b0908ff0a0807ff080706ff070605ff060504ff0b0908ff1a1714ff1d1815ff1e1a17ff27231fff1c1815ff231e1aff221d19ff25201dff25211dff28231fff28231fff26211eff27221eff28231fff282320ff26211eff27221eff27221eff27221fff26221eff28231fff292420ff28231fff27231eff28241fff2b2621ff2c2722ff2b2621ff2d2723ff2d2722ff2f2924ff312a25ff302a24ff312a25ff332c27ff1f1915ff393029ff2a241fff201b17ff1c1814ff1b1713ff15120fff15120fff15120fff15120fff15120fff15120fff151210ff151310ff151310ff151310ff161310ff161310ff161310ff161310ff161310ff1f1a17ff1e1915ff1f1a16ff1f1a16ff1f1a169b29221bf21c1713ff1d1713ff1e1915ff1d1713ff1e1814ff1e1914ff1d1814ff27211bff1e1914ff1a1714ff211a15ff1f1914ff1f1915ff1c1713ff1c1713ff1f1914ff1f1914ff211b16ff231c179347221068723012555b240b5184360f4dfd7b2845ff7f2b46ff953740ff8e3045ff882c1fff711e2dfc6b1d32eb5e194ad4521549923a1146b549173e88350ff7372c22ff332b23ff332a23ff322922ff362c25ff362c25ff372d25ff382f26ff3d342bff3e342bff40352cff41372eff453930ff463b32ff443a31ff453a32ff413830ff413830ff41382fff3e352dff3c332cff3e352dff3d342dff41372fff40362eff3f352eff3b322bff3a3129ff3a332cff39322bff3c332dff3f352dff3e342cff3e342bff3f342cff3b322aff372e27ff3b322aff3b322aff382f28ff312a24ff372e28ff352c25ff362c26ff362d27ff383029ff3c332dff3b322cff3d352eff3e352dff423831ff40372fff40372fff3a3128ff382f28ff383029ff372f27ff39322aff3e362dff302a233f00000057000000ff382f29ff352d28ff2d2620ff28211bff231c17ff2a241dff312a24ff332c25ff2e2621ff342c26ff352c26ff382f29ff372f29ff322b25ff302923ff2f2823ff302923ff342c26ff36302aff332b25ff322b25ff322b24ff352e27ff302923ff322b25ff342e28ff352e28ff352d27ff322a25ff312924ff322a24ff302924ff302a24ff332b25ff352c26ff362e27ff383029ff3a322bff38312aff39312aff352e27ff373029ff373029ff342f28ff362f28ff342d27ff362f2aff362f2aff352e29ff342c28ff342e29ff322d29ff352f29ff38302aff352e28ff342d27ff302924ff2a241fff2f2923ff2d2721ff29221d45521e0a41b4451443a43f123ffe6d213fff6c245dff852c58ff983562ffb44243ffb3423fff8d303ca54918544e210a544d20095f4e220bff221c17ff201b16ff201c17ff1d1814ff181411ff15120fff14110eff13100dff100d0bff100d0aff1b1613ff1a1512ff211b17ff0f0c0bff0c0a08ff0a0807ff080706ff070605ff070605ff070605ee181512ff1a1714ff1d1915ff1e1917ff161210ff221d1aff211c19ff231f1bff25211dff231f1bff25201cff27221eff25201cff25201dff27221fff28231fff28231fff27221eff27231eff27221eff292420ff26221eff2a2420ff29241fff27221eff28231fff2a2520ff2d2722ff2c2722ff2c2722ff2c2622ff2d2622ff2f2824ff312a25ff322b26ff322b26ff342c27ff362e27ff342c26ff211b17ff1d1815ff1e1915ff1a1512ff161310ff15120fff15120fff15120fff15120fff15120fff151210ff151310ff151310ff161310ff161310ff161310ff151210ff151310ff151310ff151210ff14110eff1d1915ff1f1a16ff1e1915ff1e1914762a231b6d28201a87231b16ff1c1713ff1c1713ff1c1713ff1c1713ff1e1814ff1c1713ff241e1aff1c1814ff1d1815ff403a35ff403b36ff443d38ff443c36ff423b35ff3f3832ff403932ff413a33ff433b35566d2c0f445b230a5060250b3cd0531846ff752836ff822a32ff822829ff70232df2631b32ec601a2dcf4f1537bb44104d7c300f538d3b133681300de97e6e64ff827971ff827870ff857b73ff8a7f78ff8f857cff948a81ff948981ff8a817aff8d847dff90877fff928881ff938982ff988e86ff998f88ff8b8077ff7d7267ff7a6d61ff796b5eff7c6e60ff7e6f62ff796a5eff7a6b60ff7c7065ff7d7165ff7d7064ff7b7166ff7b7167ff766c61ff6f655bff645b51ff5d5349ff5e544aff5f554bff5e544aff595148ff574f46ff584e45ff554c43ff564c43ff574d44ff574d44ff564d43ff5a4f45ff5e5248ff5f5247ff5b4f44ff574d43ff554940ff554a3fff54493fff52473dff504339ff4b4036ff2a2521ff2f2821ff382f28ff373028ff372f273e0000004b000000de2c251fff332a23ff2d241fff29211cff201a17ff4c4036ff68594eff695a4fff67584cff67584dff695a4eff64564cff60544bff5e544aff63574dff6a5e53ff6c5f55ff6e6056ff6e6155ff736358ff75665aff75665bff7b6d61ff7f7266ff83756bff887b71ff8c7f75ff8b7f74ff8d8074ff928376ff8b7c71ff86776bff8b7a6effa29083ffb9a89bffbfaea2ffc6b6a9ffbcada0ffb3a599ffb4a69bffb8aa9fffb5a59affb5a597ffb7a699ffbba99cffae9d90ff9a8b80ff8a8075ff81786eff7e736aff857a70ff897d73ff877c72ff7e7368ff6f6257ff6b5e55ff7a7066ff7b7168ff736a62ff645e5740491a0933963510379037105ef969203efe71222ef8631e41ff792b48ff9a3661ffb84442fa7a2a51803612484a1e0852481c0949431a08ff312a24ff362d27ff2f2722ff26201cff221c17ff1e1915ff1e1915ff1c1713ff1f1a15ff231d18ff13100dff13100dff1f1a15ff0c0b09ff0b0908ff090806ff080706ff080605ff070605b5110f0c45191510991a1613ff1f1a17ff1d1a18ff201c18ff211c19ff231e1bff1f1b18ff221d1aff241f1cff231e1bff231f1bff25201dff25201cff25201dff26211eff27221eff26221eff28231fff26211dff27211eff26211eff25211dff28231fff26211dff29241fff292420ff2b2521ff2c2623ff2b2521ff2d2723ff2d2723ff2f2924ff312a25ff312a25ff342d27ff332d27c6201c18ff372f28ff201b17ff1e1a16ff171411ff231e19ff201b16ff1e1915ff1b1613ff171310ff15120fff15120fff15120fff151210ff151210ff151210ff151210ff151210ff15120fff151210ff15120fff15120fff15120fff14110fff14110eff14110eff1e1815ff1f1915ff1f1914a828201a80392d225a251e18861f1a14ff1c1713ff1c1613ff1c1613ff1b1612ff1a1612ff1c1714ff221e1aff26221fff26221fff26221eff24211eff25211eff26221fff27221fff28231fff272320ff282320875127123e5e230b465721093e91391033f7681d20ff6f2129fa6b212cec601c3ee65c1b30d2521837ce52173baa3a0e45b346154360240c317e2e0c7a502615ff4b4741ff4d4844ff504c47ff56514cff5d5853ff68635dff6d6764ff726d6aff6f6b66ff75716dff77726fff75726fff726e6bff797671ff7e7873ff7e7872ff7d7671ff7c756fff7a736dff7b736dff78716bff756e67ff746c65ff746d65ff78726bff7a746dff746e67ff716a64ff625b54ff564f49ff534b45ff4f4842ff4f4943ff4d4742ff4a453fff49433dff46403bff443d39ff453f3aff433d38ff403a36ff423b37ff433c37ff403934ff3c3630ff39332eff3a342eff39322dff37312bff37302bff37302aff342e29ff322c28ff2b241dff312821ff352e27ff362e27490000004800000055000000ff322921ff2b221cff271f1aff1f1915ff4a3f36ff4b4138ff4e433aff50453cff51463eff544940ff544941ff574c43ff54463dff4a3b31ff4c3d33ff4c3c32ff4e3e33ff4f3f34ff4c3e34ff4e4036ff534539ff56483cff594a3eff5d4e42ff605245ff645649ff625549ff5e5148ff5e534aff62574eff64584fff665a4fff685b52ff706258ff72655bff76685eff796c63ff7d7067ff82746aff887b70ff988b80ff9f9388ff9b8f85ff998e84ff8d8178ff867b73ff80756cff80756cff7d736aff746a61ff6b6159ff685f58ff6a6159ff6f655eff786e65ff6e645cff6c635bff6d635c2d3e14063a8c2f0f4395360f2fce50154de75f1d48ff732147ff6f2342ff812b3eff90315fe36c254661280c444a1d085a4e200a5948210eff4c4136ff4b3f36ff473d34ff443930ff41372eff3d342da0341a0e8a2b140a822612098225110a8525130b8b2110099524130c8a1c0d078f190c0682160a0581150905811509048f16120f5b15120e720e0b09ef171411ff211e1bff100e0cff1f1b18ff201b18ff231e1aff211d19ff211c19ff211d1aff231e1bff231e1bff231e1bff24201cff25201cff26211dff27211dff26211eff25201cff25201dff27221eff25201cff241f1dff25201dff28231fff2a2520ff2c2722ff2b2621ff2a2521ff2e2823ff2d2722ff2e2823ff2f2824ff302925ff302925ff312a2598110f0d5300000045000000ff1f1a16ff1e1915ff1a1512e7070605ff221d1897181411ff1e1a15ff201b16ff1e1915ff1a1613ff171411ff15120fff15120fff15120fff15120fff15120fff14120fff14120fff14120fff14120fff14120fff14110fff14110fff14110eff13110eff13110eff13110eff211b16ff1f1915fc1f191552272019a12f271f8f251f195b1f191554201a145f2b1207592b1207622c1308612f1508633015084f2e13075c3115085e32150960341509673315096e34160a4a3516094a3516093538160861441e0c4a461c0a4c6c2c0e2f512009325720082ede571920d8581927de5b1d4ae65d1e36d8561738cc551939b6461446ab3e113c9b39104a461b09307b2a0b82974c21629a482165b4552560c25b2967d1642d57c65c286cd267314cb4502556b9572a45af4d245dc55f2e65bf5b2f6ac15f3366bf5c3258b2522a5dbe5a2e7ed86e3c6ad0663373dc6f375ed467316ddc70385ad168316dd66f3765c9622f5dc05f2d5eb6592a55ad542741a44c20439f481f45a04a20519b4823529c482165a5522865a14f256c9c4d2677a1522a7ea1542a719b4e267c9a51287e9c53297c944d27658943206c88432176864322697d3b1e7078391d7077381d5d74351a577435193b692e136b7a3b1c577234174a6e32154a6b3014586f3317bd482d1f600000003c0000004f000000530000005e000000ff2a221c828c4825708a451f77934e228f954e268f9750267b884322798e462165843e1c62813c1b5f833d1b6c863f1e4974321652793619537d391c617f3a1d6e8a422360863f2056843c1d60863d20749b4d297ea5532c5e9d4b236bac562955a44e2462ad572b5eb05a2b6cb9613060b55a2a5cb75c2b64c0633052b256273cb052223fb04f2141bb57264cbd5a2b55ce653068dc703760d76a3169d76a356fdf71387ce6793f71dd703a7ce67b3f83e97e416ed46b3865d1693362ca643071c8643464bd5a2e5eb656295ba14a2452873c1c5977371a3452220d5d4b210f3d4b1907368d2f0d51832f0e50c84d182acf52163cdf5b1b40ff71233fff692031ec611f3dd65e1f41461d08394d1f08494e1f0a663f1e0b81391c0c75341a0b662e160978421e0c643e1b0b6a441f0e6547200e7845200e4f381708412f1207432e1307442a11075328110855250f065e230f074e200d053c1b0a04511c0b05a4211b16a11a16124f0b0907ff2d2722ff13110fff1d1915ff1c1815ff1f1b17ff201c18ff1f1b18ff211c18ff221d1aff221e1aff221d19ff221d19ff231f1bff231f1bff25201cff25201cff26211dff28231fff25211dff28221fff24201cff25201dff24201cff28241fff2a2521ff292420ff2a2521ff2d2823ff2d2724ff302a25ff302924ff2e2823ff312a25ff2e2823790101014b000000490000003600000031000000ff1e1916ff100d0bff26201bff201b17ff1b1613e6090706520f0d0bc5181410ff1d1814ff1d1915ff1d1814ff1b1613ff171411ff15120fff14110fff14120fff14110fff14110fff14110fff14110fff14110eff14110eff14110eff14110eff13110eff13110eff13110eff13100efe16120fff241c18ff26201bff2d261f5b211c16742b221a732f23196231160a4d2e140859311608462f14094a3014084c3316097137190b6737180b5c3416096135160a543314083b3113074f3717094a3b190a5f431d0c4a411a0a46461b0b1f531e08244b18072f48180729af411223bf441333ce511838d7571934c34e1845bc491647b749162d91340d3699380e493e17087794491f7dac562582c0612d6bbd5a2a72cc643274d3673262c85e2c58ba552a54b653284bb5522755bb5a2f6ac3603369c25e334dad4e2860b5572f59b7572e71cc643777cc64379ff180497bdb6d396dde6f386bd3673470d96d3675d46b356dc7633074bf613080c166355caf56294ca24b22429c481e509e4a224e98442067a4512768a14f25689e4e27749e5029709d4f276194492272974d2667904a255e87411e63894320758643217b8643238e8343259c854527817c3c21406a2e1555733519597839196877391a4f6c2f154d6e3015547234174f6f33164f3a1a0b450000003b0000004e0000003800000056000000624822106782401e89954e266f914b2177934b2383974f247a904920808f48237786422077844121768b44216f89422054783619517836194d7c381a5d833e206b89422268874022447934185f853d205c8a4122759c4c297ca34f2b83ae572e7aac562d76b25c2e68b1592b6cb95f2d70bb602e71bf623070c569356cc5673359c1602e4cbb582843bd5a274fc35d2b4dc0582a64d86c3567db6f3763d76c367ae6783e6fdc703a64d2693368d86e3770da733d66cd653264cc66326ec7633179cc673675c463359dcf6d4090b55b34588e43204873341747612c126c512611463e1a0b37782a0c56ae411448b8441323cc501531da581a3dfb641c33e66021269e4014284819073245180730451a0861411d0b5e3e1f0b613a1c0b6c371c0b60301708703e1c0b703b1a0b7845201073461f0d643e1b0b50341508462e1307442c11064328100646250f065f2610075b230e063e1e0c04461e0b05571b0b054e1a0a045a1a0b05ff1b1916ff110e0cff181412ff1b1714ff1d1815ff1e1a16ff1f1a17ff1e1a17ff231e1aff201c19ff201c19ff221e1aff221e1aff231e1bff25201cff26201dff26201cff28221eff27221eff28231fff27221eff26211eff24201dff24211dff292420ff28231fff282320ff2d2723ff2d2723ff2e2824ff312a26ff2d2623e927211e76000000490000003f00000028000000350000004300000027000000ff0c0a08ff1c1814ff1e1915ff211b17ff27201bff201b17ff1a1612e8100d0b7f0a09076815120ffb1b1712ff1d1914ff1c1813ff1a1612ff171310ff14110eff13110eff13110eff13110eff14110eff14110fff14110fff14110eff13110eff13100eff13100eff13100eff13100dfa0d0b09ff2a231eff312822ff231d18ce2517114d311607352a1105492d1407572e1407622f1508582f14075b301408623316086a3416085b3616086b391909743d1b0b7c421e0c8c48220f934c240f8e4e2410925226118a5326117251240f694e220e5051220d4b5f240c474e1c083a73290b3cba44144cc14b1740c34f183aae421240b04514359b38103197380e3e92330c578f431d53a04a214dad52235ab454256ebd5a2c7ecb653362c45e2a90dc71396fd4683068d76a3041c45a243dba552251cc642e51c6612c4ec55f2c4fc45f2b59ce662d4cc6602b2db5531f48c05d2949bd5a2763ce67306fc9653251bf5c285fc4612d5bc3612b67c4632e5fc4642d61cd6a2d5ac4632965c3642b5fb95e2977ca6b2f7fc86b306abf662c459e4a1f5ea7532575ab572a7ca8562a72a04f25779d4d267c9e4f26859d4d2772974a23879b4e27909d50289ba1542daba55a31b0a2572faa9c532ead9b532da799522d8790492582894422718742215b803b1b6985411e6f8a45216f88442078924a228a964e25808f49236c8742206285421e52823d1b6385401e61833f1d59833e1c54853f1c6188401d788d452288984c276b9247209ca4552c779149226570361a516830145d632d13546a3317586c3518566c34194f6c34175a73381a5a7337194c6b311457743719577637186783411e6a8341205a7e3c1b58813f1d59803e1b58813f1c5183411d498b461c478d461d57964c2159944a2067a75a2869a65c2966a85b27478e431b62984d236d9c51286c9950285b9048225f9047225f8f462071914824648b4420628d46216e8e472373904a267d934f2874914d2777874623747b3e1e6d6d361a339e37103ea33a1141bc471427cf51162dd24f1650c84f1833963d153e4d1c09404d1d093a481b095c451e0b56421d0a4f401b0a60401b0a5e3e1b0a57471e0a533616076b411d0d7c401d0e7d3f1d0e6239190a7e3a1b0b983a1b0c5032150860331608502f1407492b1307512c1308482b1307422b130759220e064b200d05631f0c06ff15120fff161310ff191513ff1b1714ff1c1815ff1c1815ff1d1a16ff1f1b17ff201c18ff211c19ff201c18ff221e1aff231f1bff241f1cff26211dff28221eff26211cff26211dff27231fff28231fff27221eff26211eff24201cff27221eff2a2421ff292420ff2b2622ff2c2622ff2e2824ff2f2824aa1411105d0000004f0000003700000029000000420000003d00000049000000430000004b000000ff12100dff13100dff13100dff191512ff221d18ff1d1815ff221c18ff1f1b16ff1b1713fa1c1714c50404032613110eff191512ff1c1713ff1c1713ff1a1612ff171410ff15120fff13100eff14110eff14110eff14110eff14110eff13100dff13100eff13100eff12100df60c0a08ff2e2721ff2f2621ff201b17df231914683a1b0b4e301707432e1407462f15074330140746301406352d11054c2f130660331608643416086d391909733c1a0a7b401e0c7c441f0d8147200d7e4b220e724e230e6f4e220e644e220e785326107c56271169552711725b2a126264270d4556200a46581f093fa3390f43a13e1245b546163bb4471440a43d122d92330c4193390f4f94451d3f9d461d54b4552563ba59294eb5522468c55e2c87d46a3497db713960ca612b72d4683154c85e2755c8622b5ccf673143c2602c4dc6632f45bc59284fc9632d30b351222bb5532047bd5b284fbf5b286bce68326fca643156be5a2966c5622d4db4552549b85b2548bd5e264cc264274ebc5e2665bd602b54b0572577c1642e76c0652e65bb632b58ad58265dab5726559d4d235897481f46893b185f8f431f77994b24809a4b258ba0522991a0512a97a2552c9ba1542c9d9e522b9b9d522b86984e2683924924788e47238f944d289d954d2a7b8b462385914925778e48217c914a237c8f4c267f924e259f98502a9597502884914b25738744226486401e798e482457813d1c447d391859853f1c6b8b431f52853d1b6c91462191a15329a1a6572c6c994b23799f4f255b94461e589249205f984c244791482151984d254793462053a250253293431c2b98471b47a14d2250a750236eb95e2e6cb95c2d56b3562767bd5e2c50b0562648b45a2546bc5d264acc69284cd06a2a63de723353da6d2e75fc873d75fd8b4063fc8b3c53ea7c345be9793752d96d3258d3692e43c0552357c55f2b70d4693376d3693480d86f3787d86e388cd9733b89d7723993d5703a90d470397cc8693279ad56296e914821379a340e3fa33a113fc34a1537d5531732ab3f1159843511484f1e09404e1e0a47471a08864924107546210e653f1d0c583d1b0b683f1d0c4f3b1a0a3e3a1708483d1a0968411d0d4e3a190a633c1b0c7f3f1d0dab401f0f7d391a0a623517096b3317094c301508452e1508482d13074e2e1509542f15094c2910074b2b120754281007ff15120fff161310ff191512ff1a1614ff1b1714ff1d1916ff1f1a17ff201b18ff211c19ff201c19ff221d1aff221e1aff241f1cff24201cff231e1bff28231fff26211dff27221eff28231fff27221fff26211dff24211dff26221eff27231fff292421ff2a2521ff2d2723ff2a2621830606054d0000004e000000430000003400000057000000270000002900000054000000470000002e00000042000000ff18120eff130f0cff120f0cff1a1612ff221c18ff120f0cff1a1612ff1d1814ff1e1916ff231d18ff221d19ff241f1ade0706053f100e0bde171410ff1b1612ff1c1713ff1a1612ff181410ff14110fff13100eff13110eff13100dff13100dff171411ff12100df70c0908ff3a312aff27201bff231e19e8231a1549351708523016075632170852371808543c1c0a5f3b1b0a523817085236170852351708663518097a39190a7b3b1a0b803f1c0c74401c0c8a48210e7a4a220e864f250f835226107255260f825928117c5b2a116f5c2a11615b28106e612c127c6a3314585b270e5961260d3c57200a46842d0b419f370f309a370e3da03c113693330e428e320d4893421d44a0491f40a74c2044ac4f224aaf4f2276d0693291de733b92de743b69ce652e66ce652d4fc35d2749c25d2959ca632e53c45e2e52c45f2e4cc05c2b3fb453253bb9562429b3521e46c25e283db5542455c15d2a93eb804092e87e3e7adb733688de7b3e61c9682f5fce6d2e79cf70354eb359256cc3652d6abb602c7cc1672e6ebb622b72b75f2c6ab25d296cb6622c76ae5c2b6da04e256a994a2266974a22839f52299da6572d9ca5562e9ea5562e8f9e502ba9a65930939f512a9aa1552b9fa0552d87994e279a9b512a9498502984954c266f8d452182934a248f9f54268199502481944d269aa1572c84964f2587995127768d4723778f4923728943216d8842214f803c1b497d381a477c38194b7e3a1955813c1b7a984d25a0a9592f9ca9592e719c4d246c9b4d235591451d4d8c431e5c93492157914622559448234e9347214290431e3f98471e2c95451a47a550233e9e4a1f52ab532593d7753b96db793d7dd3703586d6773c65c868305dd06e2f7fe07c3b49c965286ae87b3869ea7c3973f7863d6bfd893d70f9863e66f3813a69fb8b3f71f3853f69e1713564d66b3161d46b317cdd743a94e5793e92df753e94db733d86d16b389bdb753e88d26d378dd6733993d4743c7eb75e2e90a2542a46a039113aa93b103cc54c133aaa42123e66260c394f1e095454210c6a4f230d784c250f7b4b251069441f0e66421f0d633e1c0c613e1c0c473a190a423e190a393d18084e3e1b0b543d1b0b5c3f1c0c6d3f1c0b853f1e0d793c1c0c72391a0b5d3417084a3014074b2d14084d2f1408532e1508482c13084a3113085d31150959351709ff161210ff171411ff191513ff191513ff1b1714ff1e1a16ff1d1915ff1f1a17ff1f1b17ff211c19ff201c18ff221e1aff221e1bff25201dff26221eff25201dff25201dff27221eff27231fff25211eff24201cff24211dff27231fff292420ff2b2622f326221e71000000490000003b0000002b0000003b0000003b0000001e0000003e00000045000000260000002b0000002f0000001f00000028000000ff1b1410ff1a1310ff19120fff1a1512ff211d18ff120f0cff120f0cff120f0dff171310ff1d1714ff1d1714ff1f1a15ff211d18ff211d19e0100e0ce70d0b098014120eff191512ff1b1613ff1a1512ff181411ff15110fff13100dff12100dff171311e90b0907ff383029ff241d19ff251f1bff1e1916463416094e3418084c3819084a3b1a08463d1a0958441f0a6c451f0c65401c0a5e3d1a0a4a3817086c38190a723818097f3e1c0b74401c0b7c451f0d954e240f6b4f230e7e5527109b5e2e13775b2912705c291277612d1377632d138067301575673014836d3516886a33167b673216445e240b415d230a2d6322092e872e0c388d340f339335103b8c310e4997451c4ba34c203ea74c2042ab4e204db453234eba562478d46a3379d56c3368c8622e6ece652f5cc7602b55bf5d2b51c35f2b51c5602d50c4602f47c15c2942b956272aaa4a1c52c5612e5ccd672f50ca652d6ed46e36a3f38945abf48a469ae57c3f7ad974388edd7a3d75cf6e3555b3592848ab532236a14c1d64b65e2966b25b2866b15b2860ac572659a653236bad5a288ab05e2e82a354297e9e50275d8f441f899e512993a0522ba3aa5a2f93a3552c9ba5552db9af5e337f9c4e2798a1542cbbad5f328f9c512a88984f278c98502889974e27929a502885974e2598a055299799502888954d26959d542b82974d2595974e297e9149256a8b4520698a442167894320507f3c1a547f3d1b457b3818457b381851823d1b53883f1b829e502782a2522870974b24769a4d24619247205e8b4521548b441f528d4520519047224b92471f4490441e2b893c1653a451275cad562752b058286fbe63319bdb7a3eaee68343a1dd7a3f7cd372388ddc793d78d8743853c1602a48c4612934c35d2363e77a3565ef7e3963f280385eef7d3559e8773465f17f3987f787447ce7793d73dd71365acd652d82df743b8adc713a98e57a3f8bd970398ed87039a9e27a4174cc68328cd37039afe5834384be643382a4562942912f0c2b94340d3e9e3d103f61270c33511f093751200a784e251086502812724b230f864923107246200e60421e0c5f411e0c5b3e1c0c453a19094a431c0a3c431b094b401c0b53411c0c493f1c0b613e1c0b7b401d0c68391a0a633417095e311508582e14074c2d1308482e1407432d14074a2e1408443a17096d3e1b0c593a180bff15120fff181411ff191512ff1b1815ff1c1814ff1e1a17ff1e1916ff1e1a16ff1f1b17ff221d1aff211d19ff211d1aff231f1bff272320ff272320ff26211dff27221eff27221eff28231fff26211eff25211dff24211dff26221ec0161412660000004f0000003a00000034000000500000003f0000002d000000380000002e0000002800000039000000310000002a000000440000003400000015000000ff1f1712ff1e1612ff1c1511ff1a1612ff221c18ff18120fff16110eff120f0cff120f0cff120f0dff14110eff1b1713ff1c1814ff1a1613ff1e1a17ff1e1a17f81a1614b10606043713100dff191612ff1c1713ff1b1713ff181412ff14110ef60a0807ff392f28ff211b17ff201a16ff201b174732140826361707543e1c0a58431e0b4e461f0a41471f0a564e230b604e240c5b49200c5c441e0b473d19085f3b1a0955361708543a19096d421d0c7748210e7f50240f6d572811725a281185602d1476602b1278642e1473672f15726830148a6f34178d743a1886723817886f36178d753b1892763c1b4a5d260d30521d0931561f09267426092f7c2c0c39862d0d54a04c2147a54e1f40a94d1f48b1512345b351215abc592870cf663080d46a3379cf65306acb622e5ac45e2b5cca652f47c25d2861cd6a3466cd683255c4602d40b4562561c5603050c45f2b61cf693461ce69318ce1773c89e1783b97e97f417fd6713787d9733b58c2642c43b459244aaf562456af582539a14f1d3a9e4c1d6cad582876b15c2b62aa572554a3522269aa582677a9582877a15227779c4f275b8f451f7e9b502771964b256a964a23869d512992a1532b9fa5562e85a1542b859c50289ea3562e8d9a4f298f9b51298a9b512984984e269e9f542b9ba2572a98a1572a999c522a9ea55a2b9fa4592e7a954c25969a522a87904925738e47245b85411e5d85401e5e84411e517e3c1a477b39184f7f3b1a467f39185f87401d79974b248ea05129869c4d2672954922608c431f658f49234d85411b5f8d49236191492259944922418b421d5f9c4c2552a04d225fad572b63b25c2a8ec76a378dce70389ada793f80cc6e3587d3703a5dc9692f43be5f2649bf602955cb682c38c8642433ca63256be87a3971f3823c5ff07e3652e6773167f2803773f17f3b72e7783a71dd713856cc632c77d9703669cd663162c9642e7ace683486d06b368ed36d387ed2703979cb693493d0703a86be633384a2542a438e310d267a2b0b39501e092a4c1d0929491b08845428118f582c138f542b136b4a230e834a241078441f0d6b431f0d503e1c0b523e1c0b51401d0b46461e0b3e481d0a56451f0c49431c0b59431d0d5a3e1b0a733c1b0b6f37180967321508632e1408572c1207542e1408462d13073e2d130753301508423e17094b40190a60421b0cff171311ff171310ff171411ff1b1613ff1c1815ff1e1916ff1c1815ff1f1b17ff201b18ff221d1aff231e1bff221d1aff25211dff26221fff25201dff28231fff27221eff28231fff28231fff25211dff25211d910908075d000000470000004700000047000000580000002700000035000000440000003100000036000000360000001d000000250000003a00000024000000440000003e00000037000000ff221813ff201813ff201713ff1b1613ff221d18ff1c1411ff1a1310ff19120fff18130eff120f0cff120f0cff110f0cff120f0dff191512ff1b1713ff1c1614ff1c1815ff1f1a17ff1d1815ce0303022d110e0cf5191511ff1a1612ed0c0a08ff191411ff241f1aff2a241dff1e1a16442d11073b361708333e1b094e49220c5850250d5152260c4d53260c5757270d5957260d5c51240d4d491f0b43421b0958401b0a543a1809513c19095d411c0b5e481f0c6850240f74582912665c2811685e29117c662f145e632c1264672f1354642d11696b3014696d32156e703615827037177f733b197a7036186870351673783a19424f1a08324a180737591c083c71260b499e4b1f4ba24b20379b411943a54a1f42a74a1e43ad4e206ec6622d76ca63306cc6602d70cf672f58c05b2a51c25d2b54c25f2b72d26e3991dc764283d46d3a77cd693776cb673473d671356cd16e336dca66327dcb6a3686cf6d3981c969355cac51266fb75b2d6fb55c2d4ea65123459c4a20549f502252984b214294481d589f502273ab5a2966a7572661a2542369a254256ca051256f9b4e246091471f528a411d719349246a8e4521648b431e758f46237390462280964b268d994f2977934822768f4522939b51296e8f4622748f48225786411c7991492379934b2377964d23919a52288b9e552a85964e27718e482280914a256d8842215e813d1e6a88442160833f1d4f7d3d1a537a3a1a3e6f30144c763617447534164b7c39187991482284954b26778f462277924a235e86401e5485411e5682401d75904c278f9b532d839b512a789d512a76a0522970ad5a2b6daf5c2a6ead592b81b45e3088bd643682bd64335da64f266db4592c6bba5f2e4eb2572744af552456bd612a52bf612a43c3612861dd743371ee813a63f07f375fe87a3468e87a3667e173346cdb70355dcc652d4ec05c286bca643163c05d2c5db856276db8582a69b7572977be5f2f87c365356db75a2a75b2582b8cb76131619346202e65220a344116073a421808384418086e592b1081572b127b572c13765026116549220e7648230f62421e0d533f1c0c5e44200d55421e0c45431e0b49451d0b3543190855471f0c48441d0b53431e0d68411d0c713b1a0b673216095f2d1308622c1408522c1308512e1509502e14086d34190b562b12083e41190951431b0b58431b0cff161310ff171311ff181411ff1a1613ff1c1814ff1b1714ff1d1916ff1f1b17ff201b18ff211c19ff211d19ff221e1aff231e1bff241f1cff25201dff292420ff27221fff26221efc26211d920807064f0000003c000000300000004f0000004a00000035000000440000003700000021000000410000002f000000330000002b0000003b0000001b000000340000004a000000450000005a00000055000000ff231d19ff231914ff211814ff1b1512ff231d19ff1f1612ff1e1611ff1c1410ff1b1410ff191310ff18120fff13100dff110f0cff110f0cff110e0cff171310ff1b1612ff1b1612ff1c1815ff1b1715ff191512dc0b0908ab0c0a08ff211c17ff231e1aff2c251fff1d191436290f063e351608423d1b093f47200b4454260c665d2d11645f2c0f67612c1061642d0f6d68301258652c1165692f135f692f135b652b125c662d1264662d1266642c1267652c1268672e136f682f1464652b11816f311590723317726c2f14a278391a917236189574391962692e1363733514727b3a166b7636156a79391661743316697635166676351754713013537132145975341548753313487a351337753010437a33123b7a32113f7e3512558d3d165d9a451769a64d1b579f491864a04a1a66a04c1e6f984a1e5791451a638e421c628b3e1753893c17789e4a1d46984418439d481b4f99441a689d481d629a461b579442194f893a1553893b16538a3c1742893d164c92461a438a3f18498d4219448e42184b99481a62a44f1f6eaa532370a7512378a9532373a14e226295451e6e95471f648f421d5f873c1b6989401c62823a196b7f3a1a70813b1b74823d1d75813d1d6a7d38198987401f8f87412079843e1da5924a24988d4722938d472165823d1a698d451b7a8f471e7188421c718b441d67843f1c7086411e65823d1b4c783515567b3919587d3b18447635144b7434143d6d2f114e7031134d70311449703113727e3d1a7782401b7c84431d6c7d3f1a7983431d7b8646208589482371884821828d49257385411f6a82401d7c8e48205385401a48843f1a6289411d6c8e451e6890451e578c421a5b8d411b53893e184e893e18438c42184791471b418a3f18438c4117388a3d1545964818559d4b1a61a1501f5da04d1c6ba452205f9e4c1d5696461b6099491c5593431a508e3f195e92441b4f8a3d165b8a3f195e8e40195f8f421c6390411b5c8c3d177195421a6b8c3e1a6a863b198d88401c897c3a197e72351661682e13657335136e6f3313696a3013676b31135e652e136b662f145b612a12495a260f5059270f4f5a28104052240d4c481e0b3a441b0947441d0b55451e0c433d1a09643c1a0a68371909733217096d2b14076b2e15087532180a7431170a85351a0c76351b0c5f35170a51421b0b55411b0b61421b0cff15120fff15120fff171411ff191612ff1c1815ff1b1714ff1d1916ff1f1a17ff201b18ff211d19ff24201cff27231eff241f1bff25211cff26211dff26211eff27221e6700000056000000460000002c00000048000000390000003700000044000000390000003b000000480000002500000026000000340000001e0000002900000046000000530000006a00000061000000901b1715ff4d433cff1d1917ff181411ff1d1915ff241e19ff201b17ff221d18ff211813ff201813ff201813ff1d1612ff1d1611ff1b1411ff191310ff18120eff17110eff110e0cff15110fff110e0cff110e0cff16120fff191511ff191512ff191512ff201a17ff2c2420ff2f2721ff211b165032150a4c3216073c3919083d421d0a484f230c7467321593582c147f552a136e612d116c612c0f65632c0f62632b1063672e105f672d115f692f115a662d105862290f5f6229106a632a1270682d1374692e1378692e1370682c12746a2e12736c301368682d12766e32147a7034147f6e331563692f13646e30137c763715767536156c713314647031137174341565743314647334156b77381758743313527632134b7a341141753010577f36125b8239145c8b3d1460924215669d491764a04917659d48175f974519568b3c15438134114b7a310f695727106b5a2a12625e2c115f622f135a5e2c12585c2a10605b291159592910625b2a11715a2a12675929104f55260f565728115f5e2e11495a2b10505a2c10565b2b1174623015836835167c6835177a643216716130146c5d2c136c5c2d13615829116a592a1265582a1165532711655226116e5025118154281482562a1483542813835429137851261183562a136c5328117f562b137d572b138b5a2e157b572c1465542711835b2e14825b2e1470562a126754281175562a136e5529126954291370552b146c542a134f4a220d524c220e48481f0c795329126c5127117353291279582c13835a2e14805d3014895d3115825a2f1577572d145d5026105a4e230f76552a1474572a146e582c15695a2c135c562a12565428116155281163582b1357532710765a2d146b572a1266582b1363572a1358592b125d5c2e124c592b0f4a56280f645e2e12746332157266341575653416736532146e623014675f2d13695f2e12655e2d12665e2e12605c2c12615b2b1268592912715a2a13765d2d14785c2c147b5b2b136e57281176582a1272572a1173542811715329117f542a1283512811654b230f6d4f250f7f5128106d4e250f6c4c240f684a230f6d4a230f6349220e6247210f6747230f57421f0c4f4d210c4f461e0a644b210d5c451e0b583f1b0a5039180857351707602f15065d291205632a13055f2c1406612e1507542b1206592e1307462810064a341408623b190a73431d0dff1c1713ff15120fff15120fff171310ff1a1613ff1b1714ff1b1714ff1e1a17ff201b17ff201c18ff221d1aff231e1aff24201cff25201cff28221ee5201c19600000003f000000540000006900000054000000250000004500000045000000310000003a0000002d0000002800000040000000240000001b00000037000000440000005b00000069000000800a0908e53e3731ff322c28ff1d1a18ff1e1b18ff231f1cff100d0aff100d0aff100d0bff1a1512ff221c18ff241914ff241914ff221814ff211813ff201712ff1f1712ff1d1611ff1b1410ff1a120eff18110eff17120eff17120eff100e0bff100d0bff100d0bff100d0bff0c0a08ff29231eff1b1613ff201b17b722140e4d2a11064f321607573d1b09594c230d605a2910765126118a562a13a05c2e166d50240d6c331508683516085a341507613717085f391709593a1708593c1909403b17085e411b0a64441c0b61441c0b48441b0944431b0950481d0b4d491e0b594c1f0c534d1f0c6254240f7e5d2a1294612d146b5d291179632e148966301583683016876b31177b6b3115756b311684723517757335166a6f32156b6d30155d6d331475723718667134169083441e7c7a3b1978783a1a73783b1b70763819516e30135576351666803c1a7185401c728b431f628c421e72974b24769d4f27719f502776a9562973b35d295da4502456a24f245fab56266fae5a2b6fab59295ba250237aae592c79a7542a5d964822548d431e629046215b8b411d4b843c1a648f441f618f431f558c401d7e9f5126628f43205f9446204f91431d54994a20699d4c2379aa57297ead5d2d619849235e964720679a4b2368984a236293461f7c9c4e27acae5e32a4a95a2f809a4d275e8c421e919a50299d9e532c9599502a999c512a959a4f299a9e522a88974c27999e532a7a924924819048247c8d4623758a45238b944d289d9e562c989b542b778e4824698743206d894521718c4622648a4420688e4823739149247a934b266f8d4523879d532b77964f2a65944c27799f542b6495492483a75a2d82a8582f7faa592c6e9e4e296ba15028629e4d2677ac572b5ca34f265ca250284e9a4823529a4822468e3e1d559644205798472163994823438a3c19548f431e4e893e1a4b8c401a5690441d4e8a411a77994d256d91472170924a216388411d55803b195e833e1a65853f1c64803c1b7a87421e848d462174833e1d71803d1d6a7e3b1b91874221857f3d1d8c7d3d1e7c74371a7f74371a8873371a876f36199b71391b73632f156a5e2b12855e2d15905b2c15825328128a562b1384522812814e26117549220f814824127e4421107f422010643b1b0b64381a0b6334170a663116095f2f14085b3015095c30160a5c31160a543116085b260f0757230e0658230e06ff161310ff201a15ff14110fff15120fff181411ff181412ff1a1613ff1c1815ff1f1a16ff201b17ff201c18ff221d1aff211d1aff26211da80e0c0a550000003c00000025000000460000005f000000770000005000000025000000310000004a0000002400000031000000330000001a00000026000000420000004d0000006c00000066000000f6423b35ff221d1aff1c1815ff1e1b18ff211d1aff25201dff2a2522ff282422ff0e0c0aff0f0c0aff0f0c0aff161210ff231d18ff16100dff231813ff241914ff221913ff211913ff201813ff201813ff1e1611ff1d1510ff1b130fff1a130fff18110eff16110dff15100dff14100df40b0907ff2a231eff251e19ff1d1814cd2a1a124a2b11074c281106543015075b3c1b0a6749210d7a512712765227118b562a13644d220d7a371a0b5b2e1207592f130760331408453314074f351607543717094e381608423a170862401b0a60411b0a71461e0c60431b0b58431b0b5d471d0c4c461c0b52491e0b53491e0c5c4e210e835928127b5a2812685c281175612d148f69321781683116936f35186a6a3014776d3216877336188a7739197e7436178e793c1b596b3115706f35175a6d3315767b3d1a827b3c1b7e783a1a867d3e1d8c7e3f1e60733617667a391a637d3a197385401e68833e1c738e4521759147226794452275a152277aa9562983b7612f56a04e225e9d4b2565a7532782b3602f6caa582875aa582970a8572a6a9f4f25759a4b25829a4c27879a4c287f9348247a9045228d994c288a9b4e287c974a25879e4f2879994a24729749246b9548225891441f79a04f2783a552297aa251285a9947205691421f5c9647215e9446206795472363904421779a4c2699a7582ea7a7583075984b2490a0552c999f532c919a502a949a502a7c954a2589964d278c9b50277f9a4f256d904621748e4522618c4720798f4a2477954d269aa35b2d8898512884954f297c934e2876904a255a853f1d5d8a43206c9148246f91482474954c266c934a25779b51297a9d532c769c522b7ca4572b72a75829549448215e9c4e2665a7552771ac592c6aae5a2a64ad58297fbb623179b65c2f5da9512858a44e256baa532b5aa14b224b9a461f65a44d25609f4a24589a48217ea8552a5e9444215c9647204e91431d5a984a2167944720789d4f2576984f265d853f1d5e843f1c6887401e68823e1c607f3b1a83874320aa934c26a48f492580813d1d63793818948441209b834221987e3f1f967c3e1e91773a1c92763a1b98743a1c946e371a6f632e15795e2c14805a2b156d522611905a2d1592582c148c552b13714b24105d45200e7447221065421f0f593e1d0d5d3c1b0b6a3b1b0c6b371a0b563216095e34190a6935180a5b34180a5c34180a5535180953240e066c240f066d230e07ff14110fff211b16ff161210ff161310ff171311ff191512ff191512ff1b1715ff1e1a16ff1f1a17ff211d19ff211d197000000048000000470000002e00000046000000260000002e00000065000000740000005500000031000000230000002f0000002800000026000000390000004500000067000000690000008e100e0dff3d3731ff24211fff231f1dff24201eff282422ff282421ff231f1cff110f0dff191513ff25211dff0e0b09ff0e0c09ff0e0c0aff15110eff231d19ff0f0c0aff0f0c0aff0f0c0aff18120eff231813ff231914ff221712ff211712ff211712ff1f1611ff1d1510ff1c140fff1a120eff17110df90b0907ff29221dff201a17ff261f1aff1b1613552d12073527100535291106512f1407493818095a4c220e634f240f71502612684b220e523b1909552e13074b2c1107492e1206513113074e3516085237170849381708303414073a3816085e401b0a64441e0b68451e0c52431b0a4e421b0a51441c0b3d431b0a5a4b200d5e4e210d6252240f895a2913685726105b58261087642f158b6a3316906c341871672f14866e35176e6d3114747034177b75371870763817767438184c6930135e6b31155a6e331568763917787a3c1a7276381971793b198681411d797e3d1c677b3a195e7d3a198e8c46226b853f1d728c44206e8d4420668e421f7396492376994a24749f4f2869984823659747227da5532b87a9582d95ae5c2f81a2532a77a051277a9c4f268a9d502a889a4d278c9c4f2983924825778e4522728a421f7c8d462481954925618d421e678f441f69904522608c401f558d421d7b9c4d267e9f4e2785a25129739848246a9144226d954623588d411e608e411e5e883f1d6b8e44229a9e512c89994e297094482282994d279a9f532c959b502b9b9d532b79954a237c934a238f994e27979f532a88974e268f9a522963894521768c48245f8b4821809751278c97502882914a26a09c552e939a532c688a452173924b256b9048227a954c276e8f472375954c2676954c276c964b267a9f552a7fa7582c80ae5d2f4d93461f5997482469a855297cb5603072b35e2d72b65e2d6fb85e2e69b45a2a7bb5582d7eb6592f78b2562d7fb0562c78ae532a89b3592f88b45a2f77ac542a84b0582d77a7512870a24e276b9e4c2559964620759f4e26839e4e27719448225e8c411d5c823b1b567f3a1a597b3818617b391a61773518777f3c1d9a8845229783412066763618917f3f1f967d3f1f8e793c1d8873381b6f6c3217866d3418886d351879693316665e2a126e5b2a13515427106d5328127d592d1489592d1478512811774e2612704923107d4a251254411d0c63421f0e593c1b0b5a3b1a0a4f3618095735170a5935180a5235170954381a0a60391a0a623b1c0b792711088826110981240f07ff151210ff211c17ff161310ff161310ff181411ff191613ff191513ff1c1815ff1c1815f01c18156700000047000000300000003a000000440000001d000000400000002c0000002a0000006900000073000000560000002f0000001d00000031000000460000005d00000069000000a91b1917ff3f3934ff2a2624ff201c1aff221f1cff26221fff292522ff2b2824ff100e0cff1a1715ff221e1bf31a171459110e0b32110d0bff0d0b09ff0e0b09ff0e0c09ff15110eff1f1915ff0e0c0aff0e0c0aff0f0c0aff0f0c0aff0f0c0aff0f0c0aff17100dff241813ff241813ff231813ff211712ff1f1610ff1d1510f60b0907ff231d19ff231d19ff1a1512ff1a1512572d13083b2b120621270f042d2b1206413015075e4b220f594a210e86542913684b220e5f49210d542b1107462b1006492d1107522f120754341508523615084535150847381708563c1909393916075b3f1a0962421c0b5b431d0c48411a093e4119083c3f18083f431a0948471d0b534d200d5251220d5253230e6c5928105b57250f6e5d2a1372632f156f652f156b652f14816d33177f70351883733818947d3f1b837d3d1a7f7538195f6e33157773381969703417667538178483421d7677391a827d3e1d9085431f8e83411f9384412079813e1d7d823f1e657e3a1a67853f1c6f8a421f6288401e668a421f7d924825809b4e288fa0512b789a4c268fa7562c859f5129929f512b7a994c27799a4e27678b432157843c1b60843c1c8d964d2866843f1e68843e1e63823d1f63823c1c738a4221718f4622678e4421608c431e3c7e381649833b197e9b4e267a9c4f267f9c4e285d8e411f638d42215e8c422046823a1a709046236d8f4420749249239c9c502b6a8b411f678b4220999a502a959b522a9c9a512a768d46228c964d27739047217991482388984f278a9c53277c904a255382401d62823f1f6a8c482171904b237e924c257c904a2479944d268d9c552a7a944d2671934b245d8c461f899a512a6f924a2575984e2775964d2672964c2777994e287b9b4f28759e512a6e9b4c26669a4a257cac582e88b660329bc169377cb45d3073b85d2e72b75b2c87be603383c061327fbd5f327cb75a2f77b4582d6da84f2884b1593078b0562c5da44c2361a24d2261a04c2558974420559a482174a24e2681a351287f9b4d26738f432166853d1d68853d1e547a36175c7935185c7232166b763619a08140217876371a6b7335178576391b90763a1c9575391c9372381a756b321676683116906b3418916a3519826330157c5d2e15635529136a512711595127107c562b137f532912764d2510884f2813905029147d4a2512744722105c401d0b75401f0d663b1b0b4f381809523618095a391a0b653a1a0b5e38180a603b1b0a5f250f0677240f075b220e06ff171311ff201a16ff161310ff171411ff191613ff191512ff1b1713b80e0c0a5e0000004200000043000000500000002f0000002d0000004b00000023000000350000002900000032000000690000006800000049000000440000004e0000006d0000006f000000e6352f2bff262220ff1e1a18ff211d1bff221f1dff25221fff292622ff110f0dff1a1714ff1f1b19ff1b171499201b18380d0b0952120f0d5719141188171310ff0d0b09ff0d0b09ff0d0b09ff0e0b09ff0e0b09ff0e0c09ff0e0c0aff0e0c0aff0e0c0aff0e0c0aff0e0c0aff0e0c0aff0e0c0aff0e0c0aff1f1510ff221711ff211712e70a0807ff251e19ff28211dff28201aff1a1512582910073f2d1306492f1507332c12063a301407503b1b0b5b4a220e855328127b4d241053451d0a48270f0640270f054c2b1006413313064b2e11056f391809543415085a34150853381708523b1809553e19095f411b0a5c421c0b59441e0c3f3e1808343d18084e431b0b33421b0a564a200d3f471c0b4d4b1f0c5451230e63572510645927114254230d6d5f2b13595c27106a652e14897036198a74391a5d6b30138576391a85763919787437188c783b1b6d723517516a2f13566f3315827f401c79793a1b7d7a3c1d8b7e3e1e807c3b1c83813f1e8d823f1f7079381a727d3b1d5d783618617e3a1b537c38195b7f3a1b71873f207e934826718e44226d9246218da2532a92a6562b909d512a578a421e51813c1c4f813c1b5c833d1c597e391a6e823d1f697f3b1d587a36196a7f3a1e77854120788b43226e89422158833d1d58853f1c6e8e46214b823b1a758f4521789349256990472456893f1c4d823a19467b3518467d39195c843e1d5e883f1d648d441f5b89401d738d44215f853e1d768b452384924c276a8844207c8d4723818f47227b8e462288934b25979d54298e99502783914b256c894520758945226f854220708e492187975127768b46238c945028989d552b94984f29a29b542e81914a277f904a26648943206a90472374934a256590482474954d2680994f2a82a0532d8fa6573072a25129a5be67388cb45d328eb65d3375b3592f7ebb61335ea8502759a94e2559aa4d257bbd5e3068b0552b5eab502758a34b2562a44d246eac53296fb1582b64ab52285ca64f243e94431b3e92411b81b15b2d73a653287a9e4e2754893c1b63863d1d557e3a1a46773417707f3c1c6778371977793a1b8f7a3a1d686c3015706c32169572381b897137198f6f361a7a683217876a33186f642f157465301589663317866533166c582a1252512711594e230f615228106d53291170502611714f26106e4f271191552c15784d2611784a23117045220e7745210e5a3d1c0b533b1a0a503a1a0a4e39190a4d371809573718095f38190b55260f077a2610085a230f07ff171310ff1a1612ff181411ff181512ff1815126f0000004c0000003600000034000000540000003c0000003e0000002a00000024000000430000001e0000002700000031000000280000005f00000057000000660000006d000000a4181614ff39332fff191613ff201c19ff24201dff26211eff231e1bff0f0d0bff110f0dff1a1715fc161311dd110f0db1211f1cf824211cff3a332dd90a07066d0f0d0b5a14110e93181513ff0c0a09ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0e0c09ff0e0c09ff0e0c09ff0e0c09ff0e0c09ff0e0c09ff0e0c09ff0e0b09ff130f0de40a0907fc14110eff29231dff201b16ff1b161247260f07322b1205332e1407362f1407253013062c3516084c451f0d5e47210e4f451e0c283d18064a260f0648280f06402910064e3817094a3614076538170a673416094a35140739321306553a18084c3a1808523b18085e3f1a0a68431d0c60441e0d54431c0b58441d0c48451e0b5c481f0d5e4b200d4f4b200d43491e0b4b4b1e0c434c1f0c5752230f4053230e5b5b27114e5a26105c5f2a127d6d3317666930147372361789783b1b7d7538188575391a807739197e783a1a566d30147c7c3d1b77793a1a7276381974793a1b7c77381b7f7d3d1d767b391a7b7e3c1c727b391b5e7433185873321755753519547636195d79371a6d833d1e7c9047246887411f6489411f78924a235f8c461f5c8b441e5d8d471f6b8b4521678a431e597f3a1a547937185f7b3a1c427030155f7c391c69803c1d958f48258a8e482570803d1f7a833f2164833e1d6e86401f6287401d788d4321759047236e8d4622497c3618447a3617577f3a1c3f7936175d823d1d477a3718577d391a60833e1d70884020708841204778361775854120617d3a1b7387412090924b268c934b255e85401b91954e26898e482386904a2492924b267186421f517939176183411d8a934e267d8a4623888d492691934d2888904a2685914b269a944e2a778842226f88432261833e1f6688422159843f1e60854021728f472477984c2972984b276d9f4f268db661328cbd64338db9623355a6512654a5502755ab52275faf532861b0532868ae512963ac4f285aaa4e2668ac502a7bb75b3076b85b2f69af542a50a34c2352a6502363ad5528459c481f74aa53286fa5522960994a25508b3f1b4d80381845783316367130126177371959743316657537175c6d311469692f145f632c136f652f16886c361963602c137a66301679632e1477612e14866431168c6733178761301670592b136754281167512611604e24106953291074542a12674c2410794e27119c572e1796512915984e281471431e0d673f1c0c5a3d1b0b4e3a1809553a190a453a19094e3a190a6a3c1b0c6a3c1c0c3d220d05612510075f230e06ff161210ff201a17f615120f980807065000000034000000400000003b0000002d0000003a00000035000000340000003000000028000000420000001f00000032000000450000006100000077000000ab1a1715ff332e2aff1f1c1aff1e1c1aff211e1cff25211eff282320ff1a1715ff0f0d0bff181613ff12100ed1181613a81b19168b0c0b098a171411981d19169d0e0c0bff26221dff2e29249e12100ea61c1a17ab201d1bff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0d0a08ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0d0b09f0110e0bff13100dff261f1bff261f1aff19151157240f0726250e053f2b1106302d1206382f120644361609573f1b0c3b3a160953401b0c273915075028100649270f065a2b12073f301207283111053f341508513416084b3013075637170853361508633b180a583b1809613e1a0a5c3f1a0a69431d0c6c451e0d5b451e0c5e471f0c47431b0b654a210d734c210f56491f0d4c481d0c514d200d404c1f0d364c1e0c4652220d675d2a13575926106f632e155d642d1353652e13646b3115797135187c7638196e6f32166e6e32166e72351764723416837c3c1c857e3d1c8981401d84813f1d8882401e707a3a197d803e1d7a7e3c1c67753518586f30164b6d2e154b6b2d1452703116587435186b7d3a1c7286412079854020687c391c5e7f3b1b4e7c3817457c39173e793615387231136986411e6f85401f627d3a1a7a834120687b3b1d677c3a1c78833e1f79823d1f7c8641216a7f3c1d557435176c823f1e5e7e3b1c677f3b1b7d894222748843217a8c462464833e1e64823e1e507f3b1c6a823f1f6f843f20537d391b4b7635175577351849733317627a381c48763517617b391b55783619657d3b1c7c8842216a833e1d798b452095944d256a85411d8e8d4724848d4722858c48235a7f3d1a878f4a247986432179864320758843217f874222838d4925798a4421788a452270843f205d7b391b567b381b567f3c1d577f3c1d5f833f1f6e8c43227b994e28649147246597492574a6542859a3522556a754265caf592969b25a2c68b55a295aaa502655a84e245ba84f27439d451f5dad51286db2572c94c3653685bd613369aa51297cb3592f5caa52266cae552a5aaa502680b4582e74ae582b6a9e4e26448439194a823a19537d381a3d7332145673341741692c1251662b125e672d146c662d14635e2a124955240e6f5d2a13635a281279612d14846330167b622f1459592910886230157b5a2a12865d2e1486582c14695025104a4a210c614f25107c542a126b4d2410744e25118e532a1690522a156b49220f7345200d5a401c0b593f1c0c4a3b1809493a190a45391709473817094e39180a683e1c0c5c2710077627110965230f07ff161310ff251e1a42000000370000004f000000330000003d0000003600000022000000340000003b000000370000002a0000002e00000043000000570000006d00000067000000d32d2824ff272320ff211e1bff23201dff26221fff231f1cff100e0dff0b0a09ff151210ff110e0cb11d1b18a312100f920b0908661e1a168013110f880b0a09d725201d761a1614ba1a1817b3201b18ff24201cf624211da2221f1c9a161412ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0d0a08ff0d0a09ff0d0b09ff0d0b09ff0d0b09ff0d0b09ff0d0b09fb0c0a08ff0e0b09ff28201bff241d19ff1915119e23120b24210c0426230c043d2a1005402d12073b311408383716093e3918092c38160827371506482e13073d260f055a2b1207513014082f2e10052f31120539321407282d110542341407583a1809503a1707523a1708613f1b0a6a421d0b63431d0b7149210d784c230f6d461f0d7a4e2410806931168a78391aa48544238d7b3b1c837b3c1b717c3b19857f3d1c9587431f948945208485421f71813d1c607f3a1a5c7f3a186785401c5f833e1a678c441e6490471e698c441e709049226a8e461f71964a216591471f5993481e6d9c4e2481a554297fa7552873a35327609c4c2175a6562974a35126529a4b20639849227ca45229649c4b254f96461e589e4e246ba0502873a1512a87ac592f8aad572f6da14b254593411b3c893a174a92431d5c9b4a226f9e4d2565984a2547863b1b44823819487f37196f8a41206e833e20928f47296a823b1f7b88422361803a1c677e381d62803b1e77843e21998e47288f813f249a834126a08141266773351c6f74371d556c2e165c6e30177f78381e58672d167871351d646d321a55662c15656c32199f7c3e249b7b3d22b48646299c7c3e215b6f3017597032186873351aa8854427b389472987803e227679391d928f4a248d834220a18542247c7c3c1e8c8746228c8e4a24a2975128a79650298a8d49229f8e4b26848b47237384401d657d3a1c657e3b1c778640206f87421f91964d28899a4f278e974e289e9c502caea9572eb2b15f35b3b15e34bbbc6537a4af5d32a2b05e32afb26137a7b762369eb863358bb65f3275ad572a74af56297ab95f2e7aba612e71bb612c8bca6c3385c1673281bc653088c2693274bb602d66b0562558a44f225da24f246ca050257da454287ba35226558f451e5d8b421d48884119428e411a42853a1562873f1d62813e1e527a3615517c3717617d3b19657738197a753a1b8074391a696b311553652e132d57240c2f56240c495a270f645c2b12855c2c146a5325114d441d0d7b5128126a4d26114646200c4946210e5146210e4d4c1f0f393916083c3b190a473d1a0b563e1b0b583e1c0b642811076c26100875261109ff171310ff241e19520000003200000056000000220000003f0000002a0000002d0000003c0000003d0000003f000000510000006c00000062010000fd352f2dff181613ff1b1917ff201c1aff24211eff2a2623ff181512ff080706ff1c1815fe12100ec00a09088b1c1a18770b09089c24201bb20c0a093e0b0908a02d2521921412119f1c19179d1e1a16cb242120af23201e9f13100ef8221f1bff1d1a17ab1f1c196d16120fff0c0908ff0c0908ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08f50b0907ff0c0a08ff271f1aff28201aff181410ac28150d5e29120931230e053e260e053b291006423014075b3d1a0c5e3c190b4d3a170a343614074e2f130755281006532a1207522c1207453214074f35150737321407352e12063c2e11063c30120652391708553b1809523d190a6a431d0b5b421c0b5c431d0b6a4b220d5e52240e5c632c12686a3014856c3217937238197b713618967a3b1b937e3d1c7a7d3d1b8583411d8687421f78853f1d7386411d69823e1c607734155d7330125e783314647c371569803a16848d431a828b421a7988411978873f1a69863d1864843d1749793413547e371563843a177f90461f7b90431d63853b185a83391748813814528a3e1858883d196b8f401d7a964520698e411c598c3e1a6c92451f678a3f1d88944a24889146217d8d421f6c883d1c437f3615397b3112658a3d1b6e8a3f1ca092472375893d1d52712e14526327116c6f2f155b692b1363682c146d6b2f1763672d1664692d1573703119747231177d75341a7678361c777d3b1f88854124a58c482b71813e21747a391f7478381f6273351d7477381f7779391e77793a1e586e31163d652b136575361a937f3e219d7e3f238f7d3d206675361a55733417566c311889793b208d803f22767e3b1e6e7f3c1d8d904b24838440228a874323968f482669813c1d7e8943246e88421f9aa2572c93a4572999a1552a9da5582b8d9e5229628e441f8a9a4e29809f4f26789c4e267c964c257b994d26719b4f288ca8592eb0b46337baba673abbba683bd0c06e40babf6e3e99bf673695c2693795bb6336a1bc663896c267367ac1633068b95c2c67b5592b5bb2552869af562a79b85f2e7cc368307dc1693076b7632d7dbb663075c0652d5fb85d285ca955276da95b2a7ca4592c7e81431f7e75381a7d783918476930114e682f1250682e114f5d2810615a261071682f147168301558612a11685927114e4e200d624d210f614f220e544e200d564e200d36421a093e3f1909473f1b0a573e1a0a5a3f1a0a5b3f1a0a5147200d43461f0c4e48210e4948210e544b230f4b48210e3b4a1d0b3b3b1808463e1a0a4b3e1b0b573e1c0c5c411d0d3d260e065e26100784281209ff14110fff241e19500000002e000000420000002a000000450000002e000000350000004c0000005900000071000000960f0e0dff2a2623ff191614ff1f1c1aff23201dff252221ff1d1b19ff080706ff161310ff110f0ddd12100e871b1916c3090807c80b0a089a0a09088714120faa1f1a17880b09086f110e0c711815118d1b1917ce1f1c1bb2171412ce24211fee1f1c1bda141210c6242220ff1a1714e41613108a141210ff0b0907ff0b0908ff0b0908ff0b0908ff0c0908ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0908ff0c0a08ff1e1814ff241d18ff29221df9191410602710073f210d053d250f0548291106442c12074d3a180a5c3d1a0b4f3b190b4235150848361507652b1207612b1207602c1307553415085f3517095b39190a493214083f2f1207443113074f3515085838170953391708673e1a0b55401b0a6e451e0c4d411a0b594b210d5e59270f52612a10686c3014756c3216816e34179676391b997e3e1d817d3d1b7e7f3e1c78803e1c79833f1d8388431f818b441f7e89431e58853f1958853d19658b411c58853c1a668c431c628f441c7da052237ca353257ea959277aa7552663a14f225b994a2062a050237aab5b2b7bad5b2b7aac5b2d84af5c2e5ea7532450a4502250a64f2155a64f2462a64f2777ad532a7fb75c2f5ca9512684af582f689c4c2454883f1e71954927538c411e66994c275b8e44214e853f1d5d8e4620659048226f934a236691462078964a2567893f1f8f9649275e853b1d69833c1f6b813c204e753319527333195c7a351a6c7d381d888842247a833e216c7e3a1e717f3b1f70803c218f8b4628677b381d787c3a21737c3c207e8340247f8541224a7232174c7433175e77371c848642239e904a2a928a4626a68e49297d8b4523bd9e5932888d4a268f8c4726a098502d6f8842207c8a44235c7d381b4d7433176e823e1f5e833b1c5b813b1d65863f1f83934a2773924722809c4e277e9c4f267d984c24889c50289c9f522c96a8582ea5bf67369ab15e327f9b4f286995492393aa5c3084aa5a2e99b05e33b1ba6539aabc683aa7bd6938a1bc6739a1c0683897c2693899c468389dc269389ac265389cce6f3a8ec266377ec0633261b65a2b5daf57287bba64326ab65d2a82c36c3384c269337fc26c3266b05b296eaf5c2a6cad5b2a8cb463327ba7592b63944c2373974d246494491e4c8b421a3a823a1542813a174c7937165177361875813f1c607d3a186e813d1c70793a1c4e6e301438652b1151662d134560270f355b250e65612c14495c29104f612c114758260f4b56270f5c5928105d58291152491f0c4f34160946481e0c564e2510534c250f404b1f0c49421c0b56421c0c4b401b0b58411c0c513d1a0b5e2a11077029120883291309ff161310ff251e1a4a0000003000000032000000280000005100000057000000730000007c050504ff282320ff1c1916ff1c1916ff1f1c19ff24201cff161412ff090807ff14110fff13100ec51b1816c415131196090806771b17148f12100db41816139b161310960b09078e1814119314100e810b09078f0f0c0a7d0e0b0a9a1514127713110fa61a1917c52423218111100fb8191715d2252320fa131210ff191411ff15110fff0b0907ff0b0907ff0b0907ff0b0908ff0c0908ff0c0908ff0c0908ff0c0908ff0c0908ff0c0908ff0c0908ff0c0908ff0d0a08ff1b1612ff271f19ff251f1aff17131066260f074f230e055c260f065b2a11075f2d1207753a1a0b5f3c1a0b924420107e3c1b0d6a36170959270f06652b1208632d1308563215089f38190b543717095c3516095a341609332d110654331508583516084e3615085a3a1809603d190a4a3c180953411b0b6e5a2a11715c2911575d281067632c11736b3115716930147b6b31167c7235177374361678793919767b3919757d3a19757f3a1b79853f1c8089411e7d88401d7b8f452074944921508f431b48883f185c91451e6292441e689b4e217ea857276ea8552572a7542676a9552773ab592a70a754278bae5c2f5f984c22869c502775974c2371984d2331863c1543873d194e8a3f1b548f431e7ba9542a80af582c83b15a2e96ab5a33639448235a8e452255914522588f432049873d1c658c432181934b265a853f1d55813c1a608b441f6e974b247ca2552c7496492580974927929a4e2b728f45256785402162823d2064823e20487331187e8942256a833e2170833e1f6079371d75863f2473803c207c823e228486432688813f2498844227a6924b2a778942234e78351942753618386d2e134871311782874423908b4727968e492793904b28a294512baf995530af96502d7b8c4424708641216a813d1f687e3c1f497031166079381b497333175d7a391b6d853f208a9249267b8e4524718b4121738e442287994f2879924623a09f532ea7b05e319ab15e3094a7582fa0a4583197a3572e90a5562c94b360327fa6552a92ae5a3087aa572cbac5703faec06a3ca8be663793bc633387bf643383b75e2f9ac1673797be64348db861346eaf582b65af58295ba754265fab582868b35d2c6cb25c2b72b65f2d74bd662e73b25e2b81b15d2d84b3622f73a9582a72a4552b73a4572b72a45627629e502131873d162b843b1438813a16407f3b18497c3a1855823f1a537836177786421f5e773617567132154a6e3114566b2f1455662c13395c260e4d602a1261642d13425e280f3957250c4b59280e5556260f5457270f504f220d5f451d0c52481e0c65512812514e2510414d200d48451e0d58441e0d57421c0d3e3c180a4d3c190b7e2f150a6429110876281109ff171411ff261f1a470000003c000000520000007100000074000000f224211eff1d1a18ff1b1816ff201d19ff24211eff2a2724ff070706ff1b1713ff13100eff1f1c18ff26211dad0807068f26201c7f0c0a088d090806bd0a0807840a0807711c17155d1512107e0e0b0984100e0cba0d0b08c40c0a08690f0e0ca51c1a19a421201ea9110f0eaf211f1c8c221f1cad070605b6201e1bbf22201d88060604cd191512ff1c1714ff0c0b08ff0b0907ff0b0907ff0b0907ff0b0907ff0c0907ff0c0907ff0c0907ff0b0907ff0b0907ff0b0907ff0c0a08ff1c1612ff29201aff1f1915f01a130f6d260f075725100652260f05612b11065f2e12076e38180c783e1b0d803d1b0e7b3a1a0c572f13076b291107692b110759291007412810063a290f06472a10065536170a493013072b2c1005362d11064a3315085d38180b5b391809613c180a533c18093c391508403e18096e542810584b200c43481d0a44461b0a614d1f0b564f200b38471a094b491c093c481c084444190836441908384a1c09394819083a4c1b0841511f0a8288411c738c421e678f451f4d893e185391431c756a2e126765280d6869290e5e68270d626e2b10546a290e5d6c2a0f6c722e13807a33176d732e1462712d125e712d13436a290f55752f12627e36136e8036155a823914558038145d8038144c8b3e19709e4a2588a7552c779b4e266695492468974a246591452362893f1f5d8d3e185e843a1663773313677b33125b7b32117f8238157d8137157f8338167b803715617530127d7534148472321462682b10575f250e645d250e685b250e685a240e645b240f7058220d6f57210d52501c0a52501c0a61531f0c5b501e0c6f4c1d0c7c461a0b5f3e15086a4016096841160852431608564a1a096455200d5e5e230e6264260e6d7a3619878b4625898d47268d8e45258888442671813d2172703315655e28106b5d29114453220b4a53220c4554230d4856240d585c291073612e145c5c281176622d146b622b1467642c1365632b13516029115a602811575e270f66632a116b672d1463672c14666a2f1564682f1559602912555d2810545d281167622c146a612b1473632e1469662d14395b230c71642c13675e29115556230e609b4c226aa854286eaa58296eac592975b4602e88ba653180ba642d679f52215351210d5057240d485c260e5f5b250d4858240c3f4f1e093c52210a4257240b4857250c525d270c5458230a585e290c5e5d270d5e5e290d66632b0e5358240c5357230b47501f094e55220a525e280e516a2f1456652c134e602a114d5f2911595e2a114054230c583d1908522f1306452e1206482e12053e2a100547461d0b454f240e575227114b5123104c461e0c6e49221055431d0d4a3f1b0c543e1a0c6d311509692e1409802d150aff161411ff241f1a4e00000080000000df1c1916ff161310ff191714ff1e1b18ff221f1cff1c1a16ff090807ff1b1715fd13100ed50c0a08990c0a09a5110e0cbd171411ff221d1ab8110f0dae090706b40d0b09a61815125f13110f8816131287100e0c91171412ac0c0a08a410100e861b19187e1b19188e131210ad24221fb424211e8b11100fb922201da51918167b050404c4110f0ebf161210ac0b0908d10f0d0bff211d19ff130f0cff110e0bff100d0aff0e0c09ff0c0a08ff0b0907ff0b0907ff0b0907ff0b0907ff0b0907f70c0908ff1e1914ff271f19ff231d18ff15110f742d120958230f064f2610064d2911065b2e13086836180a8347211185421f0f6639180b4f3013075f29110759281007612b12075d2b12074229100633280f052c280f053c2c11063a2e1207352d12063d2e12074a31140848341608493615075d3b18094f3a16094d3f1a0a7f582a115952260e655628105059270e34562209992810079f261007a42912089a2c140a992d150a9a2f160b9a2e150a82270f059c2f150a9a30150a962f14099e2d1408657b38176a8e441e588d411b5f91441d3e62280d4965250c545c210b55461b0956451b094f42190955411909514019095f451b0a604a1d0b5c4c1e0b654f1f0c6756240d5859250d675f280f61622b0f63632b0f5a632b0f535f280e4e4e200a5e99472286a5532b89a5532b76a250296d9c4e27668f45216e8f421b6e7830106ea24c2062a04a204e9a471d599c4b2167a35027619f4c22699f4c2367a351236a9d4b2179a35227719d4f265f88411e56803b1a4d7b37154c7a371545733313547937165e7f3c19537b3a175f7c3b196172351757662d1359642d145e642b146c652e166d6730176e66311873632e16776530176c652f16565e2a116c66301664663015434b1b0963763419a9974e2d9d944a297c8c4425637031135754240d4c5d2810545e2810585f2a10706b3216796d33176b6c33165868301551642d12636f35196170351865733618637537185b7b3b19627e3c1b7188422066853f1e60843e1d4b813b1954813b194f823c1946893f195a994c21569d4d205c9f4e215e9c4c235d964720598f411d6190431f6590431f69904521708e45214e531d0a596f2f137eb35d2e7fb0592e72af5d2a77b35f2b71b9632c6fbc642b6555250f6a4c200e5b4a1f0c574b210c5549200c5249200c4a481e0a53461e0b50401b0a5d3e1a0a643c19096336170855371608463616074f3818084e3b1708553f190aa32c150ba22f170c46511e094d62240a666f2f1240692f14435f280f4c5b2710404e210baa29160ea829170eab27170f9927160e374319083e4a1e09434a1e0c4e53261069562a14665728125d4b22107b4a23115d431e0e5b421c0d61411c0d8237180b7735180c7a2e140aff1a1715ff251f1aff1c1916ff181513ff1c1a17ff1f1c19ff211d1bff0f0c0bff120f0dff14110fd9100d0ba50f0d0ab6110e0cae120f0d7b14110f9e1c18157b100e0c9413100dff28231e841614139b0f0e0c8d11100f9a1d1c1b97151413cc1e1c1c921312118c1c1a18b723201e99151211991f1c1ace23201e911614128e16141287100e0ccf141210a8100e0d9c0c0a09810b0a09c7181513ff181513ff1c1917ff161411ff110d0bff120e0bff120e0cff120e0cff120e0bff100d0bff100d0aff0f0c09ff0d0a08e40b0908ff1a1510ff2a221dff201a16ff14100d7d27110856200d054d230e055c2811063a281006432f1207483d190a7144200f623d1c0d503515094a280f0651270f06502810074d2a1107512a1006472a1006372a1005472c1106532f1307382c110627290f053b2d1107492f13074d3415084a3615084d3816094a3b17087b562a11845c2d125052250d5a56260e234c1e084358250aff130e0cff100c0aff0f0b0aff0b0a08ff0b0a08ff0f0d0bff12100dff14120fff0e0b0ab8070504560c0a09ff120f0d4a692c104c853c187094481f45703212395f250c297c300e6448220c6946220d5d421d0c5e411e0c5d3f1c0c603e1c0c673d1c0c6b3f1e0d6a401e0d7d43200e73431f0e954925119348241163431f0d694b250e7048230f6948220e684a230f559647215f97482261964922859f4f29879f502a81a0512c68823c1a657d3511627536115d73361265723614586d34146a6e3314576b2f12647737144d7736135374331362763514557132115a6d2f114e682d114768301046622d1042622c0f46642d105e6b3312696e3614787439175e6d3314667136165b6730146a69321562622d136b642f147165311672652f148d6d361a806d35188f70391b866f3819666e3615756f37173f501e0a99924829a5994d2d6f90442553672e13425c29104259270f4c5a28105b602b126b6932157a7038176f6d361674713a197d7039196f6e3719706c331775713619476e3313497134156d7d3c1a64823d1a5180391652813a1743823a164989411843873d173b823915569246186292471a5f914519608e43195a8a3f1956853c1858823b17567b361560793615657636174c4e1d0b57873d1975b45c2d81b45f2e98bc67326aad5b2764b45e275fb7602964431f0c68421f0d5c3e1c0c503b1a0b4f3b1b0b4a421c0a443d1b0a50421e0d4c38190a7031170a792713076d2511077a2a150a8a2e180c8030190c563215095c34160aff13100eff14120fff1614114764240b508734108c8542223b5e260e3f5c280fcb291a12ff1b1816ff1e1a17ff1e1b18780d0806485a230b4a55230c4150210c50552810805f301857532511624d23105449200f4f441d0d413e1a0a423f1b0b6d38170b4f3515097a2d150ace231813ff27201cff1f1b18ff23201cff0c0a09ff1a1614ff161310b70f0c0aa90907067d0f0c0a86120f0d7c110f0dc11d1a164c0b0a08670706052b080705110d0a083013100cf728231ef225201c961a191981201e1d810706069c1b19178b1f1c1ab1090707961c1816f024201ed20908077a0b090884110f0d620b0908b70c0a09ae0c0a09ee100e0cfc231f1cff1f1b19ff171513ff0f0d0cff1c1816ff302924ff302824ff0b0907ff0b0907ff0b0907ff0b0907ff100d0bff110d0bff120e0cff130f0cf8110d0bf817120fff181410ff342a24ff120f0c6a2d13095c240f0562200e0536210d043e250f05462c12066445200e65431e0e6e411e0f48381609412c120635250d0547280f0652291107551e0c055a210d05552a10073c290f064f2c11065c2d1107412a0f06472a0f0651301308533114086a35160a593716095d3a170a714f260e7f562910875c2d13765c2d12424e2109534f220aff14100dff15100dff140f0cff140e0bff110c0aff0f0b09ff120f0cff110e0cff100e0cff100d0bfe0e0c0aff110e0cff181511546e2f12407f3714598c401a315c270e3b8438158842220f57481f0a4e461e0857481f0957481f094a451d0844421b08474019085e441c0950441c095e471e0a574a1f0a554b200b584e220c5b4c210b524b210b5f4c220c5848200a3e7731104b8c3e1d54904521588f431e779b4b24759b4b2698ab59306c9749235864270c4c6c300b496f300b4c70320c496e2f0c4e6d2f0c5271300c466e2d0d4c7935104976320d3d6f2f0e3d692b0c47682b0c3c6d2e0e43702f0f46703010497031104d71300f5e773411537533104f773410557a3510547a35104a76330f45702f0f456b2b0d5d6f2e0f4b6d2c0e616f2f105c7131105d733312577333105e72321154723211617735125974321070853e219a974e2db2a75633486e2e0f4c6d2d0f486a2c0f47692b0e5571300f5474320f5977350f5679350f57813a1057833a1159883d135f8e3f144d87391355954417589844164394401444953e1351a045163f9d4115439e4214439f441445a246164ba3451456a749164ea3461547a045134d9e4513529a431449913f1241843711427b310e577a311045742d0e496d2a0e63a5542669ad562863b2602a6ba253255889431a60a3542260b05b2558813a16573d1a07533918074a3717074a341607523a1a0a6a2f180b812d170c7927140a7b2312096d1d0e07711c0e078c1e0f08711d0e0749240e065e270f069325120aff13100eff151210ff1614113758220c4c9c3b147d813d1e3e612a10415e280fe9221914f11815135800000033000000420803014e61260d505e270e5f5c2912595a2b134e56281170532613665127134949210f4d441d0e3e3d180b463816095b37170a7a30160b7d31160b5a241007d816100df5080505ff251f1cff1f1b18ff1f1c199f0a0806bb0b0908a50f0c0aca171411540a08067e07060513090705370f0c0a4916120f9d1b1715a5241f1b91141312ba1c1a1aff2c2722e724211db11f1c1ab1060505851e1c1971191613a9040403bc0e0d0bc115131174090807d10d0c0bd912100eff23201cff211e1aff1a1715ff141210ff1c1916ff312b26ff201c19ff0f0d0bff221e19ff221e19ff221e19ff0a0807ff0a0907ff0b0907ff0b0907ff0b0907ff0a0907ff0b0907f0110d0bfc19130fff181310ff2b231dff110f0c9d26130a6e2912073f25100638200d043f220e04562912076748220f5c46200e6b47211056401c0c5d3a190a35280e053d280f0542280f0671200e06581f0c055430120860321408442b11074e2b10063d290f06452a10064f2e1108522e1207512f1308623314095f3a190b5e45200b7c52281086562a11875b2d123f4c2009424d2009ff14100dff18110eff19110eff17100dff160f0cff150e0cff130e0bff110c0aff100b09ff0c0907ff0f0d0aff0c0a08ff201a16d9130c09556d2f11668e451e508b411a3a652e12338c3a146d34170960281007762e140956301408563315094d351508633e1b0b76441e0d71471f0d62471e0c654e220f5f4e210e5e4c200d8f58291373552711805a2b148a5d2d15915e2e16458c3c1b538b3f1e4d803a1c517e371652802d0c6d9545217e9b4e28869c4f2a6f7f3b1a5b692a0d6d6831167e75391b7478391b70813e1e6e8b422078994d2583ac592a5f9e4c2363a2502574ac592a78ab592b72a75629739f4e2783a050297a994c277d9a4c28869e512b7e9c4f29809d512a76964c275f8f45207f9b4f288b9d512a66904522688d44225c8a411f658d44216d8f4522b4ac5e3479994d2596a3572e98a3582e96a2562c73954b2478854023798e4527969a4c2d6c954c247a9d53298ba5592b809c522a809b512a5a89421e6890472173914924678e462177934a2574954b267f984e276c984d2449873e1b679a4d2375a2532772a3542779a554296e9d4d26739f4f286b984a25699b4b256d9a4a26769f5028709849246197492257984a20729c4e25799d5127568a411e678f45206e8d442067843d1b5d8a3f1b6dab5a2c589f50255b8a441b6c793613626f321169964c2170b6612c6fb25c2878542a146d4a2411a4512d1691462512793b1f0f72341a0d642e170b632813096d241108611e0e07701e0f076a1e0f07661e0f0758180a047d100704ff141210ff13110fff151210ff1613113568270d4db1471968843e1c616d3315626a3215490c05023e0000004900000031000000410803014f6a2b0e5a672a0f4b602910415728105d6030155e47210f564e2210574f241037421b0b43411b0c4d401a0c633b1a0b672b130872241007501c0c055f1b0c054d190b05ff2e2723ff211d1aff24201cc00f0d0b780a0807550806051c0b09062e0f0d0a5e191512901f1a169c1d19178a151312ba1716159f0f0e0d89080706a3070606930c0a08ff25211c8a0b0a089f0f0c0b9b0e0c0a9b0d0b0a6c0b0907be110f0dff1a1714ff221e1aff1a1714ff151310ff1c1815ff2b2621ff211c19ff181513ff141210ff1c1816ff211d18ff211d19ff221d19ff211c18ff221d19ff0d0a08ff0c0a07ff0a0807ff0a0806ff0a0806ff0a0806ff0c0a08ef181310ff17120fff29221cff100d0b902d160a612a12063928100537250f052f210d042c1f0c044f3a1a0b5f47220f5d47210f4e451f0c473f1b0a5c2d11074b2c10065d2f1208521e0c05511e0c04593315095b3315095e321409412a0f063a2a0f06442c1106472c1007512f120853301308623215097138190b633f1c0b5e421e0c7e5026107552261045471d094b4d2108ff0a0907ff0d0b09ff0c0a08ff0a0807ff130d0bff1b130eff18110dff160f0cff140e0bff130d0aff110c09fe090706ff191512ff0f0c0a411a0b04627032135a8b411c6091472145642c1235953f166226100744250e065d2d120868331609573516095739180a523c190a7245200e56431c0c50441c0b3f441b0a544c200d584e220e6f542611735326107a562812895b2d1567572812448a3e1b53883d1d5b8a3f1e5b61260c5168280d70582a13819c4d27679548228aa053295466290c8c6a351a8571391b686f34176879391b647e3b1b748a431f7a9148257b994a2688a0512a849e4f2a819c4e297e9e51295c8b4220729047247b924a266e8d452462843f1f79904825688d45225b87411f447e39187e944c2681944d266c89422167843f1f54803c1c6e8a43216e89432195954d296b8c4521959b522b959d542b8a9a502885974d268b894327758941247e904527618e472163924b238ba4592b7d984e2793a45a2f839950296f9349238a994f29758f4723748f47237892482579914725739348246d8f45227d9d502883a5562a78a353297da8542a89a8542c8fae592f7da250297ea6522b81a5522b6ca450286ea451276da250285a9c4a217ca653298caa572d739549256c8f44215e843d1c4c722d0f84ad5c2f7aaf5b2c62984b237f7b3a19838b451f5a52210a718f481f58a8532361ab572559643114704f2813744e2a13844a27127f4121108e3d21116b31190c602b15096926130960200f07611f0f07672110076d211007751a0b0589100704ff161411ff14120fff161310ff16131137732d0e46b74a1863803c1b657237185c6931143a0b05024700000043000000340000003c0904015a73311167753212616a3015575f2e14535c2c146b3d1c0d525024105d4d22104b451d0d50471f0e4a431c0c50441e0d57491f0c623e1b0c583a190b532c13084d1d0c045e281208ff292420ff211c19ff201d195d100d0b5d18141169211c17841816139d161513980d0c0b9f0a0908a3070606ba0806059e0705045f050403960705049a070504e91f1b18e8241f1bcd12110fff26221eff231f1cff1c1816ff14100fff1c1917ff2a2722ff161513ff2d2824ff322c28ff2f2a26ff2d2724ff2f2926ff302b27ff2c2724ff201c18ff201d19ff221e1aff231f1bff24201bff15110eff14110eff120f0cff100d0bff0e0b09ff0b0a07ff1b1613ff181310ff1c1612ff130f0dff0f0d0b822711064c3013074e2f14073e291106352610054f3a1a0b51431f0d6f4a24116146210f4a411d0b542e1106582f1206573012065a1f0d05441c0a045531130855331509583315094e3012074a2c1006402b10063e2b10064a2e13084a2d1208442d12074c2e12075a3315095f3d1a0a57401c0c5d441e0d45461d084c4a2008fe0d0c09ff0a0807ff0d0a08ff0b0a08ff090806ff090806ff0b0a08ff0a0807ff17100cff18100cff160f0cfe090807ff1b1714ff110f0c421e0e054a200e05767335166b88401d568c411b49692f133c9842174f240e0649190a038333170a623014096f37180b6239190b573c190a7245200e55431c0b44431c0b5149200d5a4c220e48491f0c594d220f6d5225114e4c210e6c502411318c431a4b8d451d3a7f3819686b32145a5d240b875b2c146251250f5e7934126ba051256da6522775a04f264d5f250b906a3419746a311861692f16586e32176377371b7e8a43236e8a412083984d267e9c4f2578934a2454813d1d6385402064803c1d657f3b1d617c391d76813f217e8d46255d7f3d1e58803d1c517e3b1a7787432175884523577c391a4e7635184a783819637f3d1d6a86421f748a44216885411e768c47237a8e492483924b2685914a25968a46297c844124858f4627778f4924698943217b9a5125778e48248c9850299799512b97954d28848e472468833f1e768943216284401d898f4927829048277d964b27a7ad5b319ca757306b9c4c266d9d4e27569443206a9f4d266ea24e27599a48245b99482272ac562b67ab55294da04c224498461d7ab15c2f77a7562c5391421f53843b1c41722e1287a054288aa95b2d699e5126597835139380401f88783b1d5954220b71833f1e6bb25d2871b3612d238b42166451281368502912824d28137f462411924525127b391d0e7131180b6c2914095c2210075d211007551f0e0669200f0759190a0476100704ff171412ff171311ff171411ff1714123e782f0f48bf4f1963803b1a5f7539195a6631133c0b05022a000000390000002400000040090401697b3513597531124662270d6b6631177f69361b9e6c3a1f593316095750231150481f0e524d220e5e4c230f5747200e5f431e0e5c3c1a0c5639180a5435160947311408482a11066b391b0dff1d1916ff27221efe201c1980151414750605057c060605a90505048e060504af0605039f070605d107060589050403a20b0a08740a0907fd1b1715ff27221eff231e1aff181512ff0f0d0cff292420ff241f1cff090807ff211d18ff211d19ff211d19ff211d18ff332d29ff332e2aff302b27ff312b27ff322c28ff393430ff2c2723ff231f1bff231f1bff231f1aff221f1aff0b0907ff0a0806ff0a0806ff110e0bfd120e0cff231d19ff201a15ff1e1915ff14100ee1170f0a7d2510065c39190b553516095c331609502d13076a32180a6644200f5f48230f6f4a24105f45200d5d2e1106532e1206613213085e230e06461f0c04642a11085e331409563113085e301307562e12074f2d1106542d1107502e12074d2e1208382a10064c2d12073d2b1006813c1d0d5b3d1b0b4f3f1b0b46421b0941461e08b9211108ff0a0807ff090807ff090807ff090806ff090706ff090706ff0e0c0aff120f0cff120f0cff110e0cfa0a0908ff1d1915ff0f0c0a321d0c042e2410053b261006717a39186588411b5f90451c448f3f184aa1471b35190a035328120753241006643315096a35170a5f38180b653e1b0b70431d0d7248200f634a210e5b4b210e754f241150491f0d52481f0d3a441c0b3b441b0b5c4c210f4191431a4091461b27813a16635b260e545b230b6750250f72522711825b2c137ca7552a72a75429719f5126496c2c0d6f612c14555a27114c5b261153652d146772351a717e3c1c6f7f3d1e617e3b1a507c3817477939185c7e3c1b6d82401e657a3a1c6e7b3c1e677c3b1d888541227c83412159723519667b3b1d6477381b7d814021748141205d76381a61793c1d61773a1d67793a1c4d7335175e79391b667b3a1c5c7a3a1b647e3b1d868a45247c89442272813e21707f3d204e763318848f4a24597f3d1a88924d257f8d4823848c46258d904b278b8d47247b854020637a381b5c79391b5b76371a6b7f3b1d798c452368894221769b4f256d9c4f25649d4f24669d4d23639a4a2363994a244d92421f629e4c2492b85f3378b0592f67a7522a68b0582c5bae54287cb75f326ba8562a41883d1a59893f1f5f723010598f4420609b502360914c205b6a2e136c6e3317656930166c5d280f59682c10699e522566ad5c27318e45196f582c15534e25107a532b147148241193472614943f21128133190c672913084f210f0651200e0650200f0663210f07501809046d0f0603ff171411d2110e0d50000000360000003878300e4cbb4e197286401e586b35145f683314330b05022c00000048000000660000009017100c657a36146a7836145b6c2e10726b351894713c1f8868361c56582a14632c1309644f2311675025104f471e0e6c47200f60421e0d67401c0d5339180a5b37180b4f311508592f14084b38170aff231e1aff181512ff25211dff191614e6060504a10504038e060504a3050403ba060504bd0e0c0afd1e1917ff2c2623ff231e1aff1a1613ff110e0cff0f0d0bff0d0b0aff110f0dff211d18ff211d18ff211d18ff211d18ff201c18ff1f1b17ff201c19ff211e19ff2a2521ff312d29ff342e2aff352e2aff352f2aff342e2aff463f38ff25201cff25201cff25201cff25201cff120f0cff120e0cff110d0aff0f0c0aff221c18ff251e19ff13100dff1e1914ff0e0c0a7d2811073d2c110759351609573415097d39190b883a1b0d7c41200f77452110704721105b431e0c593013085b2d1106512d11065f30120764220e0560230e066331150a5b30130860321307562f12075a301307482c1107552f120754301308482e1207382b10063f2b100677391a0c773c1b0c663d1b0b423d1a0936411b07bd21120aff090807ff090806ff090806ff090706ff080706ff080706ff090706ff0b0908ff0a0807ff0c0a09f70a0908ff1d1814ff15110e551a0a042f1f0c04432810063f2c120757793a164e813e176492471d4aa5481b4ba4491b362610052d210d0441281006623416096837170a753e1c0c77431e0d7948210e7a401e0e8446210f8b602c139c6d3519948243207d7d3d1d87793c1d94783e1f588d411c599a4c204d984a1e67763716575e240b41692c0f739b512676a6572965703618657a381874a2542774a35428699248203e60250b4f6a3115706e3419626a3117636c33176c6c33187b8141218b9f542d619045223c833b174c8a411d72994e275f894321437635164c783718717f3e208384412578823e21617d391c687d3a1d7a813e2187824023948542268d8643256d7a391d4d723117757a3a1f5f73351b5c74351b536e3118847f3e229a8543259f8644256f813f218186432581834022808442227d86432182904b23958847249287462388924e268aa5592a889f53278f9f54286d8d451f6685411e6588421f738f482286964e278fa0542caeab5d33b0b26236b8b7663797ad5b2fa7b461339cb25e318db15c2f70a451286ba4512870af5a2b74b6602c82b8632e7eb25e2b71ad582861a351244d702f126f8d462164964c2465924823587034134b8d421d5e8d43206c9347235c7f3c1a585e250b607b3c1964a95826368f44183c853e163c53250f5f582b1385542a1448431d0c6d3e1f0e4b32180a4e2d150942431b0b41200e064a210e065d231007661a0a04780e0603ff1614114a00000036000000350000003c742f0f49bc4e1b6f86421f44602c115a653213600b0502c4181614ff1f1d1aff13100fff1e1b18506c2e105f6c2e10667032105c652c0e7e6f391c656331176a5e2e166d5d2e16592f1309594d210f6b4d231264461f0e5e411d0d74411d0f723d1c0d61391a0c56311509552e13085e3d1a0b564b220fff231f1bff211d1aff211d19cd0e0c0ab80a0807e10e0c0bff14120fff201b18ff181412ff151210ff110e0cff0e0d0bff181512ff211d19ff1f1b17ff201b18ff1f1c17ff1f1b18ff201c18ff211d19ff211e1aff221f1bff231f1bff231f1bff231e1bff221e1aff322c28ff342e2aff342e2aff352f2aff342f2aff362f2bff3a342fff26211dff26211cff25211cff0b0907ff0b0907ff100c0aff211a16ff3d3029ff14100eff1c1713ff0e0b099727120750271006432a100645311308443415096438180b7c371a0d7d38190d773a1b0d673b190b753b1a0c4c2b10055d2d11076a2f1308662e12077032140852311206663114096d32140965311308583112075d3213085e321408482f1207392d1006402f12072e2a0f05893d1c0d8f3e1d0d7b3e1d0d593d1a0a43401b0743451e08ff090806ff090706ff090706ff080706ff080706ff080706ff090706ff090706ff0b0908ff0a0807ff0a0807ff161310ff1d19145c1c0c053a1d0c043d230d054d2c1308572f15095873341651823c18768e481f4aab4a1d56a74c1d4626100642240f05502c1107623316097038190b663c1b0c5c3e1b0c553f1b0a595a280f69622e138f6c35189071391a99793e1c837e401d7e81401d8385421f5f91451e689f4f2463974b2156662a0f415b220a8383441e7687441e7a8f49216789441d6082401c55883f1d6ea0522679a5542a527f3a15598b421d5b8d431f749549236d954a247a954a2764894120748b44236a8b43214e813b1a487f3918618b43206e89421f778a4321667b3a1d6479381c617234195d6c31185a6e30176f75351b897f3c2071823e1f788a4224748c43256c853e215b7c381d68823d2170843f21547d381a637f3b1f9a944b2b8f93492874863f1f677d3b1d717f3e208586422475954823648d401e64853d1d688a411e64843e1e789149238f9e532a92a3562b95a4572b7893482395a2552c8ea6572c81974b25789a4e2590a8582ea9b56035b7b86538a6b86335a0b661349cb96335a7b46337a6b8653686b05d3175ae592e66a956297ab15d2e8bbf683283ba63306fac58295f9d4e234d692c11528c421d518e441e54883e1e43612b10475e2a1058612b137d6330176a622f15585d240b6b7a37144e9e501f4f944a1e5189431d4d45200d56451f0d6145200e56421e0c513b1b0b413216094d2e17094a3c1a0b4f230f064f231006562410074d1909047c0e0603ff15131042000000340000002f000000477a32104cc0511d828744225b5e2b1259633014ed18120dff171513ff221f1cff0b0a09ff0a0908c207070656622a0d6160290d655e290c4f5b260b8369341a8d67341ba167361ea965361d5a1b0b04521e0c0568261007772c140a7732160b84391b0d76391a0d6632160a672e1409592d130839471d09a0452616ff28231fff26211eff181513ff151210ff141110ff14110eff0b0908ff1e1a15ff211c17ff221d19ff211d18ff211e19ff1f1b18ff1f1b18ff201c19ff211d1aff221e1bff221f1aff221f1aff221e1bff211e1aff23201bff231f1bff24201cff24201cff24201cff342e2aff342f2aff36302bff38312cff36302aff352f2af82c2723a224201caa24211cff0a0806ff0a0806f81f1916ff3b312aff110d0bff241e19ff0e0c097b38190c73240f075a260f064d2c11075b351609803e1c0e9c361b0d99361a0e7c31170c7130160b532e1207602d1207592e12077e3114096c2f1308552e120762311408653214086932140864321408603013085b3012075d3214085c3314084c3113074e33140857341609733b1b0b8b401e0e7e3d1c0c6f3c1b0b563c190753391908ff080706ff080706ff080706ff080706ff080706ff080706ff090706ff090706ff090706ff090706ff0a0807ff100e0cff15120e8a190b064d190b04561e0d055d240f065c2f150a7b30160a456d30137882411c6483401951a4491d60a74d1d4a25100642270f065e2d13085e3014086736170a5337170a513c190a6854250f6458271074632e147b652f147a6d34177c733818887e3f1d7b7e3e1c607f3b1751853f1d6f994e236c8f4521435e230b4c5f240b698f492079924c21738d461e778e4820708e471f617835136f9447246c9c4d256e91472147682c0c52813c1b7aa1542a709f4f288ca5562f6294482454924623548f432055843d1d6d833f1f53793818607a3b1a7a8744216d7d3c1d817d3f207177381d626d32195e75371b6e77381d6a7d3b1e6b7a391c727d3a1e7078381d8381402494824025a08b462979813e223e6d2f15476f2f16667c3a1e93954b28849147256d7d3b1e6d7c3a1e727d3a1d7393452364873f1e5f823b1c507a36196a843f2085914926758d4522718c4421899a4f29989b502b91a1552b98a1552d9aa0542d98a5572e99ae5c3091ab572e97a9572eb5bf683aa6b961348cb15c2f81a9582c9eb261348ab15d315fa14f265ea552276aaf5a2a76b35d2d78a65629789d52254566290e5f90441f4889411b5791451f5b61260c2f672c0f3b652c1150672e134d622d125d602b135b53230d5f64270d468a4219629c5323749c542442713412384b210c554b240f554b230e57411c0c3d471c095d33190b4b3f1c0c512611085a26110841220e0678210d06820f0703ff1613113c00000034000000520000004c7a331054bb5320687a3a1d5e5e2b12555b2911ed120b07fc0e0c0aba0807069a0706059c06050470050403910404044c50210a4f4f200a5c4a20094e431b099b6c391e8e65341b945f311a98613319634e2511714c2512754a25126e4422105d3f1e0c9242221267421c0d5b2c13085c2a1207522a11075f50250ec3382519ff161310ff26211eff2d2823ff292521ff100e0cff201d16ff201c18ff1e1916ff1f1c18ff211d19ff211e1aff221e1bff201d19ff221e1bff211d1aff211e1aff221f1aff231f1bff231f1bff23201bff24201cff24201cff24201cff25211cff25211cf9292420ff332e29ff312b27ff37302bff37302cff342e29ff332e29e12623209f24211cff0b0907ff14110eff2e2620ff13100dff29211bff0f0c0a83291208641e0c04371e0b0437220d043e2a1006553215087d34180c9f31180c7c29130956230f0654251007582a1006532a0f06632d12075a2d11064e2c1107522f13075e2f12075f301308552f12074b2e1107562f1207502f1207553415085a351508613716096136170a87401d0d823f1c0c7c3f1c0c7b3f1c0c563816074c361506ff0e0c0aff0d0c09ff0c0a08ff0b0907ff090807ff090706ff090706ff090706ff090706ff090706ff090706ff110e0cff1c1713991c0e085b1d0d05641e0d0568220f068235190d722e150a5d220e06506d31136a7a3a1a7a85431d61a64e1e57a94c1b33240e053b260f05522c1208663215095c3315094c3516095e46210d684d250f353213059b210f079b29150d94301b11493617094f3a190a543a1a0a548b431a80a353267a964a2562793416595e250c4167250a6a3817095f3315095a331509533114085c3214085e331509788742227f974d26678b4521527434114e5c270d4d59291157823c1c8ba4552e7f9f512b71994d28648942205f5d240a687d3a1a7085401d6d863f1c667d39196f7b3a1a75783a1a6f6b31156b662d1469672f155f662c146d692f1664662d145c622b13546029116a652d145c622a12606128125c6229125d6229127c6c321865692f156f6b3117696a301572813d1f6e7e3a1d6579371b59682a0d6b703416656b3115636e31155c6a2e1360692e1368642c1264652c136c6b311457682d1358692e146570331661773517607e3718667c3618587732165e7c3517587e36175e873b1956873a1761893e1a60873c1a4a762d0e71a755287eac592e72ad5b2b91bd6a34759a52246d5c2c153e63280f267a3312267b3413528b411c6e3d1b0a653d1a0a60421c0b5a431c0a613a18085d3917085e371708505b230b727737184186421755964e1e448540178c3c1d0da422120ba320120b3f3e1908394f210b433417096346210f5d2c1409632913095a271108722b11077d130804ff16131163000000b2110f0dff1b1715517f371152b750207b7f3d1f70632f15515b280f88120c089c08070696070605a60504039d04040497050505a51717167819181744451b09503f190859361607473014069364351ca660331c504b220e714f26124245200c874e29127d48251176401f0fa9422313a2402211573b190c51281007502a120753351709594e250fff26221dff3b352fff292421ff2a2622ff1b1816ff1c1916ff1f1b18ff211d1aff211d1aff211e1aff221e1aff231f1bff211d19ff231f1bff24201bff24201cff24201bff24201cff25211cff25211cff25201cba24201c7e221f1a89221f1bd624201cf225211ce62f2a26ff312c28ff322d28ff352f2aff312b26ff312c27ff37312cff25211de50d0b09ff1b1512ff15110eff231c18ff0e0c097e2d14085f1f0b053a1909033c1c0a0430200b043f2910067d31170b6528120875261208521e0c053d1a0a0449280f0554280f063d280e05541d0c052d180803282b0f05582c1107652e12086b2f1208582e1207552f1207563013085631130853321307583716085b3717097d3e1b0c87411e0e83411d0d80411d0d503314064a321406ff080706ff080706ff090807ff0c0a08ff0d0b09ff0e0c09ff0d0b09ff0c0a08ff0b0908ff090706ff090706ff0d0a09ff0d0b09f0100c09611c0c055e1e0d05401e0c04592d14096e31170b48250f0655200c05547637175a803f185c7c391873b355205cb1511a2e220c0444260e05532911074e2d120852311408874a25106447220e27371605ff0c0b0aff191512ff1915124d31170b3831160a593c1d0e73401f0f5f8d421d78a556249cb25b2a6c67290f535c230b4739180a6d2e170c49261209452511095b27120a642b150b6e2f170d6448210f738f4a2484934c286184401e3e662a0b6268371c52873f1d5a94462173994b267f9d4f2994a4572e5e5d291169763e2262783f22817f4629827d4428a28a4e2f8b7b4429757841245b6d371d7c773f236a6c371e5e61311a6f6b371d5e663319485e2d147b6d3a1f6468341b5f6531195d69341a6d6f381d8b753d2281773e228f7f44247e783e2080884023868640238f8642246772381d797c4120827a3f21917f452476723b1f86743e21706d381d6f6c371d776c381e7069361d776a381f857640237977402376794024898046287a7a41256e763d22777d4326677b412258763c1f798348287f84472867753d2061a2502484aa5b2d83ac5c2b6ca6562669a75826465e260d5189401b39823c181b692b0e5a46200d692b170c8027150b92331c0f6e361b0f7224120a692311096d24130a4251200a5e622910527e3c183f84401875914a21cc27170fff181512850605054d662b0f445e270d573b1c0c694a23116a31170c5a2c130a4d281108673615085a2d1207ff1a1714ff151311ff1c1916ff0d0b0a437c351055b34d1c9e8f49276b67311461612d13d20f09069a05050491121111871010108d070606a91312128e0c0c0ba11b1918901414124b3f1908533415064e2910054f210d0357220e04592710044f2a1105582f13065b38170853401b096a3e1c0d7c3a1d0f7435190c703f1e0f5930150a49281006482810063c3c1a085b4a2410ff28231eff39332eff282420ff26221eff1d1a18ff201c18ff221e19ff231f1aff231f1aff241f1bff25201cff201d19ff24201cff24201cff24201cc0231f1ab5231f1b87231f1bb924201ca8241f1c8b241f1b82241f1bc725211ce326221dff26211cff27221dff322d28ff302b27ff312c28ff302a26ff312b28ff2f2a26ff2d2723ff0c0a09ff191310ff27201cff120e0cdf170e09571b0a03531c0b042e190803331a09033f200b044d28100750271007622310074a1d0c0534170803652a110751280f0637270e0437210c04521a0a04411d0b045e32150a732e1309702e1208522e1207562f1308432b10065131130753331408593616095e38170a6f3d1b0c723e1b0c7f401d0d80421e0c3e2f12054a2f1306fc090705ff080705ff080706ff080706ff080706ff080706ff080706ff080706ff0e0b09ff0e0c09ff0e0c09ff0a0807ff0c0907f80f0c0a5c1f0e05561c0d05471e0d056331170a5f30160a4829110749220d0546210c054571331464803f1a6f89431e6faf531e63b7541a57240e06602810075c2911075f2d1309713e1e0c8447230f493f1c08ff0f0c0bff13100eff211c19642e170d4c33190c4232170b5c351b0d5d7e39165f8c431d69944b229fa253276a5c230b405b260d5f2e160b6b2e160c5e29140b5a27130b62341a0d433f1e0e44422010424621107a8844239a99532b6f8c472159833e185a6d34154b883d1c4c833c1c6571341779904623869f4f295c7f3918576c371e5e723b217079402468743e236f7c442459753e1e69763e20606f391d5a67331b5c66331a916c3b227266341c6e68351d6769351c7b6c3a1f51602e175b63311a5767331b4f6430176d6f381e5e6d351b7070391e867a3f228e874325848742249285422471743a1e6b763c1d7c773d208f77402392743e22806c381e626130195e6030196d63331c7265341d7e6e3a218b7942255269341c596e371d6571391f5f71391f62703a1f777b42265d733c2062784022747a412464753e214f5f270e5e9b4e23679e53255f863a136288441b5894491e557936164e873d1a498b421b41773413624926135d351b0e75371c0f874725148d3e20127d29150b632411096626130a602c150a4757220b647b3a1b51833d193f7c381555863e163d020202470101014b71311146682b0f4d3f1e0d5a46210f61371b0d4e2f150a46281108581d0c0575190b056332150974100704ff161512ff1b18153a74300f51b64e1d758c44227d733919565e2a11e9251d188f1a1a198d19181795080707831a1816a80202023c13110e390100013f0706054d060504ff221e1aff191614ff201c1aff0e0c0aff171412ff26211e66230f05663216085c3d1a0a4d3d1909883b1e1083371c0e7734190c4c401b0b4a2a11074d2a11074828100635411c09603e1f10ff363029ff25201cff292420ff292420ff0c0b0aff221e1aff23201aff24201bf624201b7b1f1c18ff201d1a6e221e1a75231f1a6d231f1a8d231f1b7b241f1bff28231eff28231eff27221dff26211cff221e1aff221e1bff231f1cff25201dff25201cff24201cff2f2a26ff302b27ff2e2926ff2e2a26ff2f2a27ff2f2925ff28211cff28221dff201a16cb1d120c641b0a044f1b0a04411b0a034e1c0a04401e0b0457291107572b12085f28120862230f06621c0b053f250d054c270f055d2a100750280f0652190a0338210c055e33160a602d1309632c1208582d12075e2f1207562d11074e2f12074d3214084f3213085a38170a6f3c1a0b743f1c0c83411d0e76401c0c5b3316084c2e1206da140d09ff0c0a08ff0d0b09ff0c0a08ff0b0908ff0a0907ff090706ff080706ff080706ff080706ff080706fe100d0bff13100dff0f0c0a6e2310063a1d0c04341a0b044a220f066e34190b522e14085c250e0556250e054b1809035d75381570803e1c75a2542284a853235bab4c1951250f065a2810075f2911076835180a7a3d1d0d5a3c1b09e5120c08ff110e0dff191512691f0f084732170b3e31150a442f160b402f140a76924c2645833f1a5c8c4620857734165759220b3e5928107231180c78351a0e5156281363401e1078372014754623115645211065582b14646c3217708c4621758d47236a86401d4c7835114a893e1c4d7b37194c55210b47632b107e9b4e277d994d265f5a270f7a7c401e66452311804524137d432313623e1f1166391c0e5f3b1d0f5b3d1e0f4d3c1d0f56371a0e67371b0e7c3b1e0f753b1e0f683c1e0e61391d0e55371c0d62351a0d5733180d5532190d4f381b0e553c1e0e4060271089814023898241248e8443256a3b1e0e7344231162391c0d59381b0c53381b0d50361a0d4633180c5134190d5a4523116040201051341a0c5b381d0f49371b0e5b381b0e553b1e0f4b5426114c5a27104f60291151622b125456260f575d2a114c5a260e88ab592d6da353274c602a0f637437186f7337174165280e5f8e45204c883e1b74984b23586d31135e52261159552710624f26115d48221073542b165153281350411e0f512b150b5b24120a6161280e53753314638d451d5b88411b6187401b3b0403024a01010158803913547733135f4723106543200f5b3a1a0d4d31150a522e1409512c13095e210f0646190a044c16090367180b05ff12100e5981381558ab491ca393512a72753b1a5b5f2b124754230df0211e1a570e0d0c3e110f0d1f0907065a090806a70a0908fd191513ff1c1917ff181512ff191714ff1a1815ff0e0c0bff1f1c18ff1f1b18ff1f1b18b92015106a2f1507673a1a09463e1a095e3e1a0a7434190c7332180c94351b0e4c3f1a0b512a1207542c1308562b13074545200cdc2a2019ff322d27ff27221eff2f2925ff181413cc181512aa1f1b179f201c1897211d1897211d19ff201d1aec24211dff25211dff24211cff211e1aff221e1aff231f1cff24211dff25211dff25211dff24201cff24201dff24201bff26211dff29241fff29241fff2a2520ff312c27ff312c28ff2f2b27ff312c28ff302b26ff1e1915ff1e1915ff1f19157f2210075e1c0b04541e0c04481e0b04481f0c0449240e065d30160a6a2c140955240f065d1e0d0558220d053f260e0550270f053f250d05461909033f1b09036c34160b702e140a6f2a11076b2d1107612e1207632e12076f301409703214095b321408643616096e3a190a79401d0d7a3f1d0c76421e0d6e351709612e13069a221108ff0d0b09ff0d0b09ff0b0907ff0a0907ff080605ff0a0807ff0e0c0aff0d0b09ff0c0a09ff0b0907fe120f0dff0e0b0aff0e0b097a2410064e230f0541200e054a220f065d30160a6831170a59260f055d270f064f1f0b0450763413587c3c165f803d1977914a2073994f21649748195aa34d1842230d057c2e150a5d311609553517097e2a1306ff100e0cff1d18159627140c4636190c4532170b5a33180d4d612b105789421c6d914b225b8d4922558b451e72984e2467733011417131126230170b4c5b2e1555412515552f2017ad262320722f251f5633241a5e38281e6a823e1c7c8f48246f894320788944207092492552883e1965441d0b644f3b2e6b553f306d8e47216e9e4f265d823d1982594536885f49388d614a3a815c4736835d463584554031855540317f57413178513c2e613d291d96362f2b782b241f71442e1f75533d2d7e463f3674533d2e6b513c2c7f563f318554403275553f2f5a6a2d1383884623758543206c77381d867d3d227a7f3c1e7d613b264b582914785642317355402f78543e2d81533d2f8158331f8a5d443279513928833a2b22b03b36307c402d2285463d33834c3f348d47423a775a44347e5e46377a56433676544133755742346b7a371778a5542862964b2167393631703b3834447c3314578c421e5f8e43204d873e1a809e50265c8b421b602a27225c2825205123201c7437261ccc1e1a163b49210f5c552b165b31180d5724120957763111548c421b52863f1a4c833d195b843f1a527e3a194f4c220b6259280e547533127c5129159050291665391a0c5f38190d5934170a5a2f1509752c150a622410084f1e0d064f1c0c058f2d180e4b712d0e6a7d3c1b87763d1c696a34165f602b1362622f136548210ea413110eda161412ff141311ff12100fff1d1a17ff0e0c0bff161312ff1c1815ff1f1b17ff1f1c17ff1f1b18ff1e1b18ff1f1c19ff201d19ff201c19682f140767381908613d1b0a4f3f1a097f3c1c0d8434190d7d34190d93351b0e68391a0b5a2c1407632c1408513517084545210dff231f1bff302a25ff25211cff26221eff100e0cff24201aff211d19ff211e1aff201c18ff201d19ff231f1cff231f1cff231f1cff221f1bff211e1aff26231dff26221dff29231fff292420ff2a2420ff2a2520ff2a2520ff28241fff29241fff2a2520ff2a2520ff312a25ff312c27ff312b26ff312b26ff322d28ff211b17ff2d241eff14100e661b0b055c1c0b047d230f067826100659260f066f33160c7831170b7529130957200d0653210d052c230d0425230c0447270f06421c0a033c1c0a0340301409482b11074c240f06692b1107662d11065d2e1207552e1207582e12074b301307563415085834150865331409673515096d39170a693c190a573e190a69421b0b62451c0a6f4d220f6d4d210e6452240f5a51210e5550210d4e54220c5559240e555d270f4d5c250d4e5d260e576029105c642c12666d2f146c6e32154f632b1159652b1246642a10506a2f13527132154f723214637a39185b7637164c7233125a7f3e17768b471f748a461d6185431a5586411940783816517b3a1850763617517a371854833d193b7e381446813a1752853d1844823b166d8e441e6689421d4d833d1a4d87411b5488411c598e461e6e964d21608d461f74924a227f9c512871994c2393b05f2fa2bd693487b5622da3be6a3585b25e2ca2bb663480a8572a77974b247d924c276d88431f8c914b26a597522d798b4625778b46247d8b4623798a46227b894422617f3b1b7085411f7786411f85844021998c4725998d472577843f1e69833f1c7e8945207888441e7c87421f8b874422ab965027978d4b248b8b472493914c2688874421878e4a24748443206583411d5b823d1b6a833d1d7e82402096854324737f3f21757e3e216b79391d7779391e797c3a20827a3920857b3c218f7d3c228f7d3d238d7c3d22927c3d228c803e2291834124837d3d207c7e3e2177823f206d823c1e647f3a1c82833f217c8641208c904926878f4825728a4421728a43227d8f47248191492572904622748c4322858d462562863e1f718c43236a8d4220648d43206c904622668f44205b8e431e74994e226fa1532575a1532388a2552963a5542372a556275b9046205886401c52893f1c6da351256b934a2152853e1956843d18487b371663813d1b677b3b1b4c743616366f31123c7333134a753617447133155a7134176c743819686c34187573391a6a7034176c6e341770743b1976733b196c7038166d6f38175a6b3514546531146a612d145557250f5d693116927e40209466311775592b145850240f615528115552250f5151230e584d210d5f4b210d6c4b230e5d431e0c71431e0c5d451f0c6e44200e583b19096c3c1c0b583719095b32150854301607632c15077a32190c7031180c93341b0e5c441d0d542b13084e2811065a29120742411d0a3c401d0bff231f1aff26211cff25211dff231f1cff0e0c0bff1f1b18ff1f1c18ff1e1b17ff201c19ff28231eff29241fff29251fff2a2520ff2b2721ff2a2520ff2a2520ff292520ff2a2620ff2a2520ff2a2520ff2a2520ff2a2520ff2a251fff2b2620ff29251fff29251fff302a26ff2f2a26ff312b26ff302a25ff251f19ff16120ff019120e541d0b04471b09036b200d05702911077d3e1d0f7534180c5e2d1409692a120852220d05672a11072e240c043e250d04521e0c05331b09032c2f130827280f063b240e065b2b1006662c1106622b10065f2c1107572d1107532e1106553012075d311308643012086e32140965311408623214096e36160a6f3c190a6e3f190b633e190a5e421c0b55471d0c58491e0c4c491e0c6b4c210e5a4d200c6751230e6d5424106155250f5853230e5c55250f5e56240e685f291159612a126e662e145f672d135062291161662e145e6d331762713416557332155d783816627b3b165e7f3e176989451b8285431e687d3e1965803f1a5079371749763616507b3918577e3a1854803c19537e3b1852823b1761863f1b6b883f1e708c4420608a431d3c7b39173e7d38155587401a40823b1760883f1d778c45219197512b6d8d4622719248238ba0542b87a95b2d91b0602f8bad5d2c74a6572782af5d2b6f9c5124999d552c758c44226b8943209f96512cb198532fa79a552e7e8845248f8f4b267a8a4824667e3e1c627b3b1b828944228d8c4825758a46208d89452490894625978c4a287e83412192894724828745227b8442207e7e3f208a8a492282874721878846239a8b49276479391b6f803f1d607d3c1c6c83421f417234165f7537196077371a7380411f82824221827f3e227777391d7c793b1f7072351c7871351d86783b208f7a3b228f7a3c21917d3e24a2854628a28544269d8241258f8140226f7b3b1e747e3d1f7f8340226a7f3c1e7e864021918f472498954c28798b4323758a4321828f48258d944c288a964d2987944a2870874120718a4321718c42215a833b1d62843d1f728941217b8d44236686401d7b9f5725789f54256e9a4f247e9b51276d8c421f6494471f5995481f518f461e5091471e4b92471d4d95481d468740194f813d196886421c6e85421d62813e1b5f7f3e1a557a3917356c2e13377233134a743617426c3013536d31155d6e3317676d3518717035187973371a5d622b128371391978713a17676e3714656b3514626b351460622d12665e2d1470582a1366582912695b2b12715d2b1365592a135e5225105e4f220e584f230d5950240e4c4b200c6c4c230d47441e0a6648220d72441e0c69421d0b633f1d0b623a1a0a613717096337190963331709763017096c2c1508642f160988341a0e7230170b8532190d52431e0c512811074e271107482710064246210cdc2e211aff24201cff211d19ff2b2420ff1f1c18ff0b0908ff26221dff28231fff28241eff2a251fff2a2520ff2c2621ff2b2621ff2a2520ff2b2520ff2a2520ff2a2620ff2b2621ff2c2621ff2b2620ff2b2621ff2c2621ff2b2620ff2b2621ff2b2620ff2c2621ff2a251fff2e2925ff2f2925ff312b26ff221c177f22120a4638190a421b0a03571c0b04501e0b04743a1b0d87411f10823b1b0e6e34170b6b2e14096c29100663280f0655270f066328100774240e0663220d054a2c12075c271107682a100657290f0658290f0657290f06552a10065a2d1107612f120762321409562c1107683114086531140964331408623415086e35160a7d3b190b6f3b180a673c190a53411a0954431b0a5b451d0c4b451b0a59481d0b644c200d724f220e5a4d200d5151210d5e54240f75592812665726106c5b2812605a2711665f2b135e632c135e612a114b59250f63652d14636a301556672d1260793b157883431c7781411b7786451e7280401b5a733416577636164a7334154f7537174c7a391645743415467a3916437635145b813e1a67853f1b758c45206087411c5a84401b4a7c3a18387d381640843c1947843c193a7a34154e853e1b83984c288c9e51288d9c4f29678e4320839f4f268dab5a2b79a957267baa582886ae5c2b7ba1532876974d258c974e2985904a267f8f4c268c97522d7d924b26769049257a8944237e8744218188452366803f1d738542207e8946226e87431e8d8e49259b8f4a27888946248e8a482587844221848a46228f914d259c924d2898924d267d8e4923728846207a834021858240205f7939195e7737195e7b3b1a556e331670763a1c73773b1d72783c1c95844625a18042248d7c3f217570341a60662e17766c331b706c331b7f70351f716e341d96793c238d793d229c7c3f258d7a3c21847b3b20757b3a1e777c3b1f717b3a1e777c3b1e6f7d3b1e7584401f7685412062813d1e67853e1daa9b522e9899502c7d91472594984e2b6c8d4422678f4321739548246f8e4422697f3b1d637d391c63853e1e6d8a432182a05527619b50218da4572b89a356297c994f256091462049833c1a51843d1b4987401c3a7e38164f863e1c4c803d19347030113e74351463813d1b8189462159773a19497838173a7b38152c793612217430102a733011317334143e6d311257642e13786732176d693419565f2d13525b29106e673314676734146963311369612f13605f2f12795c2d135e51250f665629116f5c2d135c5a2a115e592a105351240e5f50230e564e220d634e240e5f4c220e5749200c4d451e0b52421d0b55421d0b6e45200c71411e0c653b1b0b5836180a5a331608663317097632180a7b30170a5e2c15077237190b9b351c10b2371d1095331a0e6b3d1d0e472710064126100645301507624a2410ff25211dff2b2522ff201b18ff2e2925ff13110fff161310ff28231dff29241fff2a2520ff2c2721ff2c2621ff2b2520ff2b2520ff2c2621ff2c2721ff2b2620ff2c2621ff2b2621ff2c2721ff2c2620ff2d2821ff2c2620ff2b261fff2b251fff2c2620ff2b251fff2d2822ff302b26ff312b265e1c151145270f05483d1b0a621d0b04611d0c0576220e0687401e0fb0482414964120117738190b732810066e2810066a2810066b28100666270f06762b11075b270e0564271108732b11065e290f0654290f05702b1107672b100650290f054e2c11075c3315084b2b100660301208532f1207613013085531130866321408663515096e38170a57381608593c17094f411a0a4e411a0a4f431b0a52441b0a49451b094f461c0a56491e0b4d4c1e0b6252220c865726106c55250f6355240e725d29125357250f5059260e67612a115e5d2810545c27104b60281057642c1356622b125f6c3213636d33145c642c12666b3315616b33155e6c32154d6d3013457131143c7233123c6f31123c6e301250773716437534143673311160823d1a6b89421d5f833e1b4679381734773714287535123c7d3816377c36153c7b3616447e3917618b431e80964c2673944a2467974d246190451f7ea152257ea757267fa55525769d4f227c9b5124949c542893954e27768945218f904b27788d47236f8b462070894420677e3c1d7883411f6e7f3e1e77823f20697f3d1d607b3a1a6c7f3f1e7582421f8a8c4a23928d4b257880401f7c86442273823f1e7a8440208a8d482399954d25788a471f757f3d1c8380401f577234167b7e3e1e677a3a1964793a195f7134164a6a3013536d3315616d33177a743a1b92763c1e8370361a706b3117866e341b716b3119796c3319836d331c726b311a796f351c8875381f8975391e7975371d7777371c7878391d6d78371a7276351b7671341a67682f16716a321a7075381b65753619747a3a1b978442228e8240216378391b6079381b687b391b6a813e1c86884221767d3c1e64713418677a381b6c843d1f57823b1c5c7b3a1b667d3d1b5f7838186e803f1d4673351674773a1a566f3315466b301336652c1137642c10476c321448682f1246632d12395e2a0e5b673114636a34165567321343652e112b682e0f31662c1132682e1238672d123b652c123e682e124a662f1351653014626933176b6b351768683316616b3315656f371572713715636a3113696b34147a6d36168068331658642f117b6a3214635b2a1172582b11584f240d4f49200c6047200c57461f0c4c451e0c48431c0b43431c0b43401b095c431d0b5f441f0b63411e0c593a19095036170967371a09563015085d2e14085e2c14075e2c1408512610055c2511079031190d99321a0e6e451f0f4a2911073a2610053c2710053d421d094747210eff231e1aff312b26ff201b18ff221f1cff0e0b0aff26221cff29241fff2a2520ff2b2621ff2b2621ff2b2520ff2b2720ff2b2620ff2b2620ff2b2620ff2c2721ff2c2621ff2d2722ff2d2822ff2d2822ff2c2621ff2d2721ff2a251fff2c2620ff2b251fff2b251fff322c27ff312b266b1c17124c2c1206473d1b0a421b0a035c1e0c0472230f079b2d150c91411f1096441f115939170b69270f06712910066f281006732910075b270f065d29100653270e0556260e055b291005712b1006662c1107652a10065f2a10065c290f06682e1308893b1b0d873b1b0c522d11054f2d1105532d10054e2c1004442c0f05462d1004492e10054b2f10054c301105503312054f351305513713064d38130545391405403a14053f3c14053f3f16064242170746451807424619073c47190739481a073b481b07444b1d08494d1d08424c1c07404d1c07424e1c07444e1c07414f1d073c501d073b511e083a521e083d551f083b582008405720083f57200835561f072c541e072a551e072d561f08355920083258200832561f083a5920083b5a21083d5b2209405e2309355d2309355d2309345b2309305520082e531e0830552009345520093656200934562009385721093f582209455a230a4b5d2409505f260950602609506027094f5e25095660260a575e250a5559230a45531e09474f1d08494a1b0848441907473d1606443b14054538130546361204413310043e320f044933100454361204503310044f300f044d300f044b2f0f03442d0e033f290d0343270c034c280c0246260b0249260b0241240a023f230a0240240b0240240b023e240c033d260d03402c0f04432d10044630120543321205453915064c411808494118074e4419084f4519094b4519084645190848471a0950481b0953481b09554a1d0a584b1d0a594d1e0a5c4f1f0a524d1d09494d1d09414b1c083c4b1c083f4d1d09404e1d09434f1e093e511f0a3d501e093c4f1e093e511e094655210a4b54210a455220094550200946501f094852200a4451200939522009375220093a5321093d5422093a5421094254220a4453210a395120092d4f1e0828501e072c5220093553210936511f09374e1e083b4f1f083c501f083b512009415121094051210936512009335120092f4f1f082d4f1f082e4f1f09314f1e09324d1e08334c1d08344a1c073a4a1c07424b1e08464d1e084b4e1f074b4d1f074a4b1e074a4a1d074e4c1f074f491d0744431a073f3e18063e3b1706493c17064b3b17063f3816063c3515064234140644321305413013053f2f1205422d1205492b11054b2911054727110444261004402510043c2510043e240f044224100442241004442a1205432b120553421e0a9b32190e7f2f170c3f2610075e431d0b4c281006482912064a2911064f47210c604f2710ff211c19ff221e1bff201d19ff1e1a17ff12100fff29241eff2b2721ff2b2621ff2b2621ff2b2621ff2b2621ff2b2621ff2b261fff2b2620ff2c2620ff2c2621ff2d2721ff2f2922ff2d2721ff2c2720ff2c2620ff2b251fff2b261fff2b251fff2b251fff2a241fff312c2669191510643115085f401e0c6d220e065f220d05682711078137190da134180d9d4622124f2a11074a240e045f270f0648250e0451270f0654270f0658270f0658280f06702a10066a29100663290f065f2a10065d2b10065d291006702e13097732150a8737190c8b391a0da43f1e0f8335180b73291107f81e1915ff14100eff13110eff12100dff12100dff100e0cff0f0d0bff0f0c0aff0e0b09ff0f0d0aff110e0cff100e0cff14110eff13100e631d0c055d1c0c05511b0b0456210e0662240f07521d0b053a200c0550240f063f1b0a043f3716096837180b662a1208722d1409622e14096f31150a6631150a6535180a6c37180b673818094f32140753321305b7251109ba2e190f682510064f37160a513b180a5d3a190b5239170955401a0b65461e0d6f4e230f5f451f0d57431d0c54471f0d46481f0d494c220e58612c115873381469763b187184431c48682f0f55462a1a5c472b1a51472817824728186c4d2e1d624e2f1d7a573722695132205f813e1b6c86431e6385431e728c4720656038218364422b7f65422b7f68452c76603c268a66432d74723d22818945227e854121748342225d7537198162422e8361402d8161402c7c5c3c29855e3d2b755434217a50301e704d2d1b7053331f9266442f8f65432d8c64432e9264432e8460402c795b3d2b80593d2a835d402d82613f2c7c803f1f707a3a1d7876371c68733417925e402f855a3c2c945e402f845c3d2d915e3e2e8e5f402d8c5c3d2c865d3d2b78543423834d2e1e894f3121694f301f8d5f3f2d805b3c2a875c3e2c855a3c2a4b6d2f136281401e6286401e7a8d48225f803c197460412a895c3b25645839256e5237266d4a3223665234235c7d3b19497a3916547c3b195d773a196655321e54462c1b5b482d1c75462c1b93402717643e251672442b1c7d562c1588582f175e5b2b1180743c1b6c5d2e156552261266512611ce2d1a10b929180fb624130bb424150eb322150eb220140db720150eba211711b6241b16b11c130fb61b130f58251006532a1307722b150a7f28140a6234170a602712076b25110761371b0cff24201dff23201cff090807ff1a1715ff1b1815ff1c1916ff1e1a18ff1d1b18ff201e1aff201d1aff201e19ff282420ff282421ff312b27ff26221dff26221dff25211cff24211dff24201cff25211dff26221dff28231e8f3a221251451f0a47421e094f441f0a743e1c0b8d30180d9a321a0e8830180d7046200e4d281106462710064a2e14073648220bfc25201cff362f29ff201c19ff2c2722ff221d1aff13100eff2a2520ff2b2621ff2b2621ff2c2620ff2b2620ff2b2521ff2a2520ff2c2721ff2c2720ff2c2620ff2b2620ff2d2721ff2c2720ff2b2620ff2b2620ff2b2520ff2c2620ff2b2520ff2c2620ff27231eff24201c6919140f5d3416095f3f1c0b5f220e0653240e056a2b120876411e0f96482213563c1a0b442b110744230d0451250d055a250e0557250e055a280f065a270f064d290f054c270e0552280f0550280f055c2a10066b2c11075c2b1007742f15096d3014097933160a6e3316096d3616096d2f14087621120c3114110e461714104b1714108216130f7f15110eb6120f0cff0e0c0bff0f0c0aff0e0c0aff0e0c0aff0c0a08ff0b0a08ff100e0cff1a1613551d0c0579210e06772410086b2510086b210e076f24100730210d054b220e06281e0b04292f12073f270f066c2c1308702e1409682f15095b2f14086334170b6935160a6838160a6a38180a6c3b190b71411b0c67431c0b5e451c0c57471d0b5b481d0b5f4b1f0c654d210e5c50220e5f55240f675a2810635d2912715f2c14515b26105f602b1257622c125b662e12576a31136272381570753b18687338175d7438174f6e34154f6e32155b7538184f713515597436176376381a6b7e3d1c3e6f3214537a3a184c7637176c7f3e1d8a884623828945228a8f49248b9651258e9651258696502678904b23818844236b7f3c1da18e4c29ab914d2a79813f1f798342206f7b3b1c7b7c3d1e88854321817f3f1f8e8242218b8343218b8542217d81401e777f3e1d8d8a46218a87442187844320707b3b1b6c7c3d1c597738186776381a6777391a777a3b1d79763a1d7774381c7f70351c8a75391f8873371e96773c22a17d40249a7c3e228077391d7575381d7579391d7f7c3b1d8f823f21888240217a813e20888843238486422276803c1e737f3e1e6a7c3b1c6d7d3d1e7c834021687f3c1c77954e216b8f481f8a9a4f256b89431e5b82401c547c3d1b5384401b467e3c185e7c3d1a6c7c3d1b66793b1b67783b1b3a642d12506d34165268311555642e1474693419786a341971632f16856d3a19776835177161321567582b12705329136d4f2511764c2512744a241066421f0e603a1b0b562f16095b2d1509522a14077127130871211007641d0e0662190b0562180c0469150a046b110803802d170c852b160b572e15095e29120849321607cd291c15ff1c1917ff191714ff12100eff1d1a17ff211d19ff221f1bff221f1bff24211cff25211cff25211dff26221eff282420ff2c2723ff413a34ff26221dff25211dff25221dff25221dff26221dff27231eff29251fff2a252054451f0951451f094f421d0a383f1c088634190d9931180d7b2e160b7c3b1c0e7234190b4f291206532912075a421f0b4f4a240eff211d19ff362f2aff231e1aff322d28ff0e0c0aff1f1c17ff231e1bff24201dff221e1aff231f1bff24201bff231e1bff1d1916ff1d1a17ff1d1a16ff1e1a17ff1d1a16ff1e1a17ff1e1a17ff1e1a17ff29231eff211d19ff211d19ff221e19ff1e1b17ff24201b751b1611593316085b401c0b2d200b0330240d04442a1006753f1c0f854420115e3d1a0c4e2a10063f220c0453240d0552250e056e2810065c270e056b2910064f291005692c1206622c1206552c1206552c1106612b1107592c1207702f150a673015097531150a773b1a0d7e39190a6428150a4c161210481a1813541c1a14471b1914491b1914541d1a15561e1c16571d1a154d1c1914481a1712471815104716130efb13110efa0e0b094b25110759200d055e200d06882d150b8128120a61210e067e2611086f2611086c2711086c3a190c5c2b1208762c1309662c1208622c13085a2f15096531160a7638190b62351609743b190c6b3a190b7a401c0d76421c0c64431c0b5640190a52431b0b56461c0b6a4d200d5c4a1e0c524a1e0c7a5627116c54250f70582711685928115858260f4d55230e595b28115359270f727139167b743b187c753b195c672f134a672e134b672f133c682e114c6d33143b632b0f5b703516767b3e1c4d7334164e743617327033132e692d103a6d311376813f208c8a472475803f1f7e8643207e8f4b21818f4c23748c49207b884622888645247882422181854421707c3e1d7c7a3b1d827c3f1f68763819757d3d1c797f3e1d938141218f814221817f3e1f8683411f998846228d8645206f80401c797c3d1d6273361763733618596d32156a753a1b74773c1c9e864725ae8446267875371c786f331b746f341b8673371e8e72381f98753a218f773a2084793a1f7274361b7377371c6b77361b767e3b1c697a381a84803e1f9c8946258183402077813d1e617b391a78813f1f6d76371b6a74351a6b7e3b1d7b904b217c8b45217a934c226786411d5e803d1b477d3b1939743313597e3e1a3c6d3113577538177a7f411d466b321538662f12295f290e335e2a10415f2d145d622e147a68341a66633217625e2c1279683716685e2f12715e311486572c156d4f2612754d27125c49230d57401d0c633a1b0b5f2e16095d2d1509512a13075425110770211007681b0c055e190c0559170a0470150a046c130903613e1d0ba0341b0f9631190e5d2f1509482c130750401d0bfe201d19ff1f1c18ff050504ff1d1a17ff211d19ff221e1bff24201dff24211cff24201cff26221dff27231eff26221eff282420ff2b2623ff39332eff26221eff26221eff26221eff26221eff27231eff28251fff2a251fff2a251f3b401b084a451f09243f1b07363c1a08ba331b107a2e160b732d150b653f1d0c5f2f1608552e1508502c1307323f1b0833411d0aff1f1b17ff302a25ff1f1b18ff25211dff0c0a09ff29241eff292520ff2a251fff2b2620ff221e1aff1c1815ff1c1816ff1e1a17ff1f1c18ff1f1c19ff201c19ff211d19ff221f1bff24201cff25211dff28231eff28231fff29241fff2a2420ff241f1b9e251f19663316094f3e1c0b40250f063d291006452f130870401d0f65401d0e663f1b0d552c12073d220c043d230c0468260e0552250d0552270e055c2810066a2e130774301507672f1307552c12064e2a1005642d13077d301509692e1308722f13095f3215088a431f0c7537180a491a1712661613104f1c1a15581e1b164d1d1a154d1d1a15531e1b15501e1b16501d1a154d1c19144c1c1914511b18144c1a16117817130f562711074a26110759230f067f2612099e2d160c702510077b28120880291209792812096c29120851250f05592a12077b2e14096f2e15096b2e1409612e14096e38190b72391a0c663b1a0b5b3516095c38170a6139180a5b3c190a5d401a0a543f190a5a431b0a57431b0a5f461d0b54461d0b674a200d6c4d220e534a200c544b1f0b544e210c6451230e524e210d574d200d4b4b1f0c5a53250e514d220c5150240e5d52250f484e210d3d51230d3854240c4359270e4257260f4e5f2b11636831154e642d12335d280e345e280f3a5d281041622c12526731155d6d35196f723a1b6770371873793e1a767c3e1a727d3e1a857f421d627237187e783b1c72773b1a677136176c6e3417686d3317676e3417566a3013666c33167c783b1a7c773a1a6a733617707839196d7436187b7a3c1a6671341664703416697236175d6c3114596c3114576d3214637035176e7034176a6f33177e74371b706c31176e6b3016726b30186d693017766c3118716a3016766e321978703319786b3017626029125f5e291265652e1472693116736b331657642c1258642c12746e3418656830155f662e1465713417556d30145f642e1467632f156a643015635c2b134654250e3451220b3c54250e4b5828104555250e575b2a1158602d1156602d113354240c4353250e4454260f3c4e220d474f240f4b51260f555528106b592c13705a2d126e5c2e1267582b1170592d126d562a116749220d6847210d59421e0c553e1c0b5f3d1d0c4e311608462811064a241005642310065a1e0e054f1a0b0458190b045a170a034c13080259130803601c0d057a33190d4c37180a5434180a5c34180a5c47220eff1f1c18ff282520ff100e0dff201c18ff221f1bff241f1cff24201cff24211dff25221dff27221eff28231fff292520ff282521ff2c2825ff2b2722ff27231eff26221dff27231dff27231eff27231fff282420ff27231f9e3320143c431e0836411d0833401c085a3b1909882f170c702d150a662c140a51411d0b412d1307432b1207512e14082d411e0992372012ff312a25ff231e1aff26211eff231f1bff0a0908ff201c18ff241f1bff26211cff231e1aff1b1815ff2a2420ff2a2520ff2a2621ff2a2520ff2a2520ff2a2521ff2a2521ff292420ff292420ff28241fff29241fff27221eff23201bff231f1b8a1915114c3014075f421f0d3e250e06442a100656341609643d1b0d74431f10533f1a0c582a100747230d0542250e0562270f055d2810065f2810067e2f1407612e13064e2b12064d2c1206552c1206592c1207722f1409792f150a732e14096e2f14096c401c0b683a1a0a4a1b1814591c1914861a16124d1c1914531f1c16521f1c164a1d1a15541f1c164d1e1a16511e1b164b1c1a144f1c19144b1a1713491917127217130f6d311609622b14096f25110877271209a02c160b57230f06572611075d2711075e2812085e2a1208652b13087a2d1409712e1509692e14095d2e14086733170b79381b0d873c1e0e63220e05ff0b0908ff0e0c0bff141110a0291811642c140a872f180d661d0e097c1f0f094d2611095829130a4333160a6830150c7133170c6b33170c5d33160b923e201261361b0e6425211c6226221c5c25211c6c29241e6228231d6729241e6628241e50241f195c26221c4d201c16e028231d882b27235d27221d6929251f782d28227b2f2b2584332f298536322b8038332d7d3a362e853c383086403c32964742398d3a342d9d433b33884540368f4741378b463f35944943399b4c4439924a4137924840368b453e346e3e372d7e433c327541392f822b27228b2d27225d38322885463e3392494137994a43399b4a43399f4c463b94494339914741379d4c453b9b484238a14c453ac9443b3382433d339047403688443e348c4540359f4c44398e463f359448413690453f35753c362d84403a32813c362b95282420ba312c27562d2922823b362e90403a3398413c359b423d369f443f3893423e378f413e3692423f378b3f3c348d413d36962e29256b34312a7937332d6a322f287334312a74332f29672e2b24692e2a24652a27215326231d5c28241f622a26207b24221eb91e1a18421a17135e26231d6325211c6724211d6623201b6923201b6a211e1a6e231f1b6a3e1f0f954223135f31170c502f160be5201a16ff322d2aff1b1815ff191614ff181513ff181614ff191714ff1c1a18ff35312cff1c1917ff1c1917523d1d094a3d1c09943b1e108c3b1e10633b1b0c58391a0a543c1b0b6740210eff27231fff23201bff110f0dff231f1bff231f1bff24211cff25221eff26231eff27231eff221f1bff211e1aff26231fff2a2824ff312d29ff211d19ff211d1aff26221eff221f1bff25221dff26221dff1d1b17ff1e1b172d411d075445200a3a401c08333d1a086a34170b712f160b6d2e160b7031170b49391a0b402f1407442e13073b3516083e3f1d0bf2231d17ff352f29ff1e1a17ff302b26ff161311ff14120fff27221dff26211dff231f1bff1b1814ff1e1b17ff1c1a16ff1d1916ff27221cd11a1814b91a1714b51a1715c2211d19ae211d197d1b1815751c1815731d1a167b1e1a17ff231e1a721c18135230140850401c0c692a1208442a1107282b10063d3b180b5b401c0d513e1a0b5b2c120754240e0547270f056729110665281006602810067c2e14075d2c1206542910054f2b11066e3116098231160b7f30150a8030150a7a2f140a6b33160878331709551e1b16521e1a15581d1914871b16124a1d1a15501e1b1654201c16501e1b1654201d17531f1c16511f1b164e1d1a154a1a18134f1b18134f1b18137019151165351809612c14093f220e066c2711098528130a4d220e06542710065f2811077a2d150a732b13095c2c1308703016096630160967301509583015096534180b7235190b67240f05501916124c191511451815106723130b7a2f170c782e160c9a2b170e752b140b8931180d792c150b6e0b0704661e0e087230150c7532170c5d30140b5a2a130a7d341b0f55211c1753221e196125211c57231f1a6728231d5c25211b6327221d6928241e5f26221d45201c184c1b1714cd231f1b8824211d51221e195f26231e66282520682b272179332e278936322b7b37332b7035312a7739352e753c3730703c372f54302923773a332b723e39307d423d338e4740378f4842388e4a43378b473f358e463f358c463f347f423c315b3530275b2d271f842b2622892b2520602e282076403a307d423c3381443d338a4740369d4c463b8b4540357c403b3287423c3383423c347b3f393087373029773e372f763d382f8d453e3480413b32964a423784433c318c443d3395453e3484403a3260352f285b2f292194292421af2f2924712b26207336322a7e39362f803b362f8c3e3a33a0433f378c403d357d3a37307e3a3830773a37306e36332c7e312c275f312c2663302e277235312a68302d276f312e27612c2922662c2923672b28225f2a262144221f1a4a221f198a24211da51b18154a1815115523201b5a23201b50201d1859211e1965211e1968201e1967211e1a571d1b17923e20126d361b0e522f160b4735190aff282420ff272320ff181614ff191514ff191614ff191714ff1a1715ff1d1a18ff1b1916ff1c1a17fd1d1a18453b1b08323618079f4223137a3c1d0f6d3f1f0e603d1d0c413f1c09ff1f1b19ff1e1a18ff1e1a18ff1c1a17ff1d1a17ff23201cff24211cff25221dff28241eff28241fff1b1815ff1c1916ff2a2622ff2c2926ff39342fff1e1b17ff201d19ff1f1c19ff211f1bff23201cff23201cff23201cff26221e333f1c0846421e0a2f401c083e3918086e2f160b6a2f150a752f150b6f36190b493416084b301408422f1307363718085b3a1c0bff1b1814ff322b26ff1d1916ff312b27ff231e1ba415120f7d181613ff221f1aff1b17157d1f1b17b6201d19c3211d19d5221d1975211d1954211c1962211d1a74221e1a78221e1a67221e1a9024201b8a241f1a60231f1aff231e1a5d181411573216086146210e5b2810072d270e054d2e13086f421e0f60421d0e573f1a0b4d2c110654250e056a291006832a120766291106682a1106682b12075929100554291006542a1106762f1409792f140a762f14097f2f150a662a12086c2a13075e201c16561f1c165e201c16561d1a148d1d1913481e1b15491e1b154f1f1c16511f1c175a211e1854201d17541f1c164b1e1b16491b1914521c1914561c18133d17140f72311609562d14093f230f064a230f076c26110859230e0643261006702c1408652c13086a2e150978361b0b80361b0b6633180a6f33180b7534180b6e33170b74230f054b191712501916124b181511441714117326150b6a2e160b6b2c150b922b160d4f2a130a632e150b622e150b632a130a8030170c712f160b6e31160c6b1c0e08822b170d7724191371201b16541c18145b1e1a155b1e1a155a1e1915641f1b166b211c18641f1b175e201b1760201c1879201b16d5221f1b8f221e1c78221d186e221e1a70231f1a5c211d1a6825211c772a2620822f2a2486312c2687342e2781352f298238312a9d3e362e923b342c6f352e277a38312a7f39322a7a383129893c342c943e372f953d362e883b342b833a322a853b342a91332c24a6302a24ae312a248c322a237b3730288338312a68312b2478352f2783373029903a342b8e39322a8c39322a813530287f352f2876322c256f30292276332d267c352f267d3730297d372f288c3a332b923a342c8a37312981352f288a38312ba23a322aa62c2723c8322c27902e2822742e292387322d286b2c2823792f2b2684332e289136312b89332e298b3430297d312c277b312c266029241f6027221e662a262069292520662825206527231e6d28241f7127241f6724211c5f231f1a6524201c7424201b92221f1cb21b1715681a1713501a1714621e1a164f1a1714521916135a191613621a17136b1a171467191613661915128b371d1173391d0f5831170b40351b0bff1e1a17ff1f1b18ff181513ff191714ff1a1714ff1b1714ff1a1815ff1f1d1bff181714ff1a1816be22181138381a08803a1c0e763f1f105a3c1c0c49391a0a4c36190a333e1d09ff2c2824ff1b1916ff090707ff171512ff191613ee1a1714ff1b1915ff1c1916ff1d1b17ff1d1b17ff1d1b17ff1d1b18ff2c2926ff2b2825ff26231fff1f1c18ff1f1c18e41e1b18e41e1b18e71e1a18e426221df82a261fae241a13483d1b0856411e0a4d3b1908513616088533190d8534190d7a33180d60411d0c5a38190a56391b095334170864371b0b7b2d180bff201b18ff231f1cff1e1a17ff2b2622ff0b090892211e1aff221e1aff1a1713a123201bdc25211bc826221c9825211b8726211b8526211c8827221d9428231d8f28231e7829241e982a251f982a241f5e29241eff221e1a6015120e643115086747220f5d250e064d280f067d31170b6c421e0f72451f10433e180a4b2b110642230d0468281006752b1106832c1307812e1407852f15076b2c13075a2b1106612a11067b30150a7a2e150a752e14097f2f150a67220f066d210e055b201d17551f1c16581f1c16591e1a15901c1813431d1a154f1e1b154d1e1b1653201d1755201d1755201d18541f1c16501e1b164b1b1914501c19144f1b18135717140f582e1508552c140846240f0646240f06682611083b200d054e2a1208702f160a692f150985351a0b76361b0b6433180a72361b0c7d361a0d7234180b63200e05531c130d511a18134f1916124918151148171411832b170d46281108412711097626120b562b130a662d140b7730160c6f31170c8435190d6732170c682d150b72361b0f6d2d19105e1c18146a1e1915661f1a16691f1a16651f1a165c1e1916631e1a16601d1a165b1c18155d1d1916611c18155f1a1713e2231e1b8e211d1a611c18145f1b1815621c1816621e1b17681f1c1871231f1b7126211d6e27231e6c29241f6f2b26216b2b2620612c272175322b2674322b2575312c2574302a2577322c266f302a2576322c2570302a2471302a2470302a23752f2922722a241e7827231e8f2b26218328221d722f2923732f2923712f2a237c302a2385312b257f332c247d322b247a302a247d302a24782e2823762f292380312b247c322b247f302a247c322b25712f292379302b24762f2a246e2d2722702d2823742b2621722d27218b28241fb82d28247925211d6f28241f7027231f6d27241f7427241f7d292522772b2622742a26216f2a2521702925216d2824206b2925206e29251f6c28241f6d26221e6825221d5e23201c6523201c62231f1b5c211d1a5d211d19611f1c185d1e1b1787221f1cc11d1a175d1815115e1c1915601b1815601a1713631a1713611916136f1a1613671a1613681a1612651915124a381b0c7f361c1064341a0d5d2a150a6f2a170dff191715ff1c1815ff1a1714ff1a1814ff1a1714ff181513ff1e1b19ff2b2825ff191714ff1916145a361b0b363a1b096f3d1d0f703e1d0f4d37190a51391a0b4937180954381b0aff36312cff24201cff141210b9151311ba171412c8171513be1f1c188e1a1815881b19158f1c1917b41d1b18c524201dff282521ff292722a323201cd3211e1aa525211daa27231f8e28241f8628242075292521892b26235a3a1d0e56411d0965401d0a4d38180877381a0ca73c1f11a23b1e1091381c0e68421e0e543e1e0a5c3e1e0a5935180996341c0dda221914ff2a241fff1d1916ff27221dff191614ff090807ff211d1aff191613c7322d27e0332d27fe352f29b6312c26e0342e279c312b25b8342d27d9352f2898312b256a302a23ad332c25aa332c2579322b24ff221e1a6d181410652e13076f48210d78250f077d2b12087a30150a884a2413844c23137e4b2211512c12075c250f06622810066b2911067b2a1207792d1307842f15077c2f15075d2e14065b2c12067f33180a7c2e140a722d14098b28120973200e056b1f0f07571f1c1651201c1759221d185d1f1b168d1c1814461c191458211d1852201c1757211e185a211e1954201d18501e1b16521f1c17521d1a154e1b1813501b1813801c17135f2f1608662f160941250f064d240f07612912092f230d047030160a97351b0c7834190b84371b0c6a33170a5c33170a72361a0c7335190c872a140a621e0c044f1b1814501a17135119161246171411491714117a28160d4229120946281209682a140b612e160b5e2e150a6b30160b85361b0d6533190b5f2c150b8131190e752d170c511e1a16661d18155b201c1766221f1a6024201a5d24201a7528241e7127231e7428241f6d28231d6c26221d7026231e661d1915c6201d1a841f1b17591e1a167227231e6326221d6227231e732c27226b2d282183353029833631298e3d39307738332b6837322a572b26217a39322a87413c3284423d3382423c32914842389f4c463ba64c463b994942388b473f348e453e33944741367d352e2661231f1a7626211c87322b238a423c31783e372d7a3e382e853f392f803e372d97453d338f413a3096423b327a3b342c67352e27cb443a326f38312b883d372e813d372e883f3a30a34942379b4641369e4640368c453e3492433c3395433e346d3a322a8526221e9f28231f872a25208238332a743530297836322b8139352d7d38332b943f3a318a3b362f8e3c37306d3430295d302c27ad36312b632f2b267533312a69302d276e302d277a312f29732f2c26732f2c26642d28226a2c29236d2c2a245c26231d83211e1bb61c19166c1a17135e231f1a54201c1757201c185f201c17591e1a165e1e1b166f201c17631d1a166c1f1b175c1b18146f341a0e73331a0f4c2f160b402a1409d91e1713ff191715ff1b1814ff1b1714ff1c1815ff181614ff1a1714ff1d1b19ed312d2a93171513c6191815533d1d0a4d3718098c402112843f1f106c3b1d0d653e1f0d563317088d25150bff211e1bff1c1916721c1916b71f1c1898201d1a95201e1aaa221e1bbe25211dc425221e9126221e8626231eff24201eff25231fff302c28dc24211cca2d2923b02c2722942e2924de221f1c832f2a25832f2a26d5312d284a3d1a097243200b66401e0a553a1a09aa3e2011a33e2011983e2011913f21106a46220e5d3e1e0b443818096c2d160872251208ff1f1a17ff1b1714ff1c1915ff302a26ff0f0d0cff13100eff181512b62e2924d42e2923f22c28228428231fa528231fae28231f6b27211da227221daa27221d6a241f1b9325201b9f241f1a9b231f1aff221d198f1c17135b2b13067e4c26116f240f066c281107782e1409954c2414ac552b187a492010522d13085f250f06642810066929100669291106762a1106822d1307782e1407602d13064b2910057531160a8b30160b8e30160b872b130a682711065524110758201d174a1e1b15541f1c16591e1c168f1e1a154d1f1c1658201d1755221e1859211e1859221e1855211d18501e1b154a1e1a154e1e1a15521c1914551d1914811b1712733217096a2f150964281108792a130a8531170d552a11066830170987361b0c973a1e0d993d200e8d3c1f0e68381b0b7a361b0d6d35190c661c0c054e1b1713521b1814511a1713501a17134a181511471614106b29160c7a2f160c352610086228130b5a2f160b8732190d7b34190c7834190c6032170b6e27130b822f180e551d1a165f201d18721e191670231f1a7526221c6a25211b60231f1a6b25211c6525211c7226221d6f26211c6d231f1a69231f1a431b1713be1e1b178e1f1b185e221e197426231e6b25221d7026231e7d2d2923732d2a2383342f288034302974332f296c333028763a352c6a302924933d37309546403683413c329447423894484137944842379648423792463f3593463f348c413b32893f393065332d255e221d198027211d5e2e272090423b31853e372e893d372e903f382f863c362d973f38308c3b352d8037322a73332f277a3731299e322b268e3c362f973f3931943f39318a3d372e95413b318b403b329a433e3490423b3294403a328d3e39317b3e372f78231f1ba227221e5a26221d8c39342e7f36322b8438332d8d3a362f8238342d913c38308738352e7935322c6b312e286d322e297d2823207732302a8135332d7b33312a71302e28712f2c26672c2924702d2a25682c28226c2a2822662826215c28241f78201d19b41b18163e1614116b24201b5a201d1863201d18631f1c185f1d1a165e1c1a156d1f1c17611b19155d1b1814571a1813581a17138f3c1f1277331b0f642d160b65321a0bff2a2521ff1a1715ff1c1815ff1c1915ff1916147c15131194171512ff1b1916a01d1a17cd1e1b19ff1a17156e41200b6b3a1b0c9d4424139a4324126e42230e583b1d0b8c2b1509f6201b18ff181714ff0b0908b5201d1995211d1aa3201e19a9201d19d3211f1ab9201d1a97201d1a96211e1aa7211e1aff24201eff26231fb5322e288326221e9a24211c8226211da426221efd26221e8427231ea126231eac26221e493a1909493b1a09553b1a09573a19097e3b1d0f823e1f0f6e3b1d0e5f4b250e4c401f0b4b3c1a0a593e1d0b762b15096e231107ff1c1815ff312b26ff1c1815ff2c2723ff0e0b0aff171411ab1e1a17811f1b17a3201c18bb201d199e201d198b201d197d211c19f62c251fff2c2620ff2c2520ff2a241eff2a241eff2b251fff211e198d1f1914632710066f46210e77251007682710069131160c864a22117d4b22127a4b22117c3a190c64250f0557260f055d2810065f29110665291106702c13076a2c1307712e1307582c12068833180a9731170c9030170b862e140a702f1508512912085c221e185a211e184f1f1c164f1c1915831b17144b1f1b1756211e1855211e1856211e1854211d184f201d1753201c16501e1b15511e1a154f1c1914531d19148b1c17127e33180a7731170a7b2a12097c2b130a9c3b1c10693114087234190b74361a0b82381b0c933c1e0e873c1f0d5f361a0b8f381c0f8c381c0f631f0d04501c1915541b1814501a18134e1916124d1915114c171410782b170d7f2e160b782e160c872b160d5b2e160b7832180c8c361b0e92391d0e65361a0c7a2c160d802d170d60201d175e211d1893221d1970231f1a6c24201b7126221c63221f1a7927231d6a25211c7626221d6a231f1a74231f1a6a211d194c1a1613c01e1b18981e1b186c231f1a7025221d6b23211d7226231e7a2a27217e302c2581322e277f3430298938342c7a36332b773a342b82362e28a43f3a318b423c3390453f3691453f36944741369d4943389647413796463f3687403a3195433c34883f3a3171342f267625201b80241f1a6f302b238c3c362d8539342b8a3a342c8e3a342c8f3c352c903a332b903a342b9139332b7f332f268639322acb3830298638332a8d3a342c953d372f8b3a342ca1403a318d3e37309b413b32843a352d923d3830853b362e883e393185221d1aa425201d6e2b28228639352d7e36322c8638342e8939362e8d3b372f8e3b36308f3b38308939362e753330297836312ba32d282474322f297933302a7d33312a712e2c26782f2c26682b2823722c2924622926216e2b28236328251f6728251f831f1c18b91b1917481a18136823201b5e201d1863201d18641f1c18641e1b16661e1b166b1e1b16671c1a16671c1a15601b19145a1a17134e2c160ba2351d116d371d0d592c160b83341c0fff1b1815ff1c1916ff1c1815ff1816147514111085151211d2161412ff201d1ac01a1714ff1917155a2d170b543a1a097f402111834223116942210d563c1e0b623a1c0c761f0f06ff2b2723ff24201cff0a0908ae1a1815ad1b1915c51c1916b01e1b17c31e1c18c71f1d19bc201d19ae211e1afa231f1bff1f1c19ff201d1aff2c2721ff2b2721ff2d2923ff2e2923ff2f2a23f62c2721ff312c25ff322d277c361f122a33150633391807423a1908513a1a0a6e3e1f0f6a3d1e0e5f381a0c5947210d45401e0a3c381808293013065627120766211007ff27221eff221e1aff1c1815ff24201cff090807ff25201aff241f1aff25201bff241f1aff241f1aff24201aff25201aff231e19ff2c261fff2b251eff2c251fff2b241eff1f1c18ff211d196f1c161151240f057547210f5d270f065b291006622f13096c4520106d47201075482110573e190a56250e05682810058e2c1307622910065d2a11066a2c1207612c12076f2e1407612d13067c33180a9331170b7c2e150a8332160b663717085631160957211d1861221e1850201c16551e1a15881d1914451e1b165b221e1950201d1753211e1855211e1851201d1753201c174e1d1a15521e1b15501d1914531c1913861a161271301509722e15097d2a1309862c150b82371a0d572f12077234180b88391b0c6d371a0b813b1d0d803b1e0d72391c0c90381d0f72351a0d66240f05511d1915521c19144e1b17134f1916124d181511461613107c2a170d812f160c832e160d8a2c160d702f160c6d32170b7033180c83371b0d77371b0d892f180f882f180e67221f196e231f1a92221d1975231f1a5f211e196c25201c6723201b7826211c7025211c7825211c7523201b72221e1a74211d194e191613cc1d1a179a24201d6e211d196f231f1a7325221d7627231f782a26217d2d2a24712e2a2477312d278738332c8339342d893b362f7d312b26aa3e38307c3d382f88413c3394463e36994740389f4943399c48413896453f358d423b338f403a3293413b32783b352c7e25211c8b25211c6d302a228839322a8f39322a8f37312989352f288c3530297f332e2788352f279838322a8a332e2788342e27cf352d2785352f277d342f289039332b9139342ca13d362e933c362e9c3e382f933d372f8c3a342d933c372f8c3d372f891c1a16ae26221e622d28218339342c8838352e8b38352e8538352e8939352f7b37332d8538352e8f3b38317f36332c7b33302aa82c282372312e286c302d2878312e2976302d28792f2c266e2b2823732c292369292621682825206c27241f6927241f7f1f1c18ce1f1c19461a171367221f1a61201d18631f1c17651e1b17651d1b165d1c19155e1c1915601b18146d1e1b16661c1a15641b19147d181512672d170c6a28150c5b331a0c33271208b7241911ff161312ff1b1814ff13110fff151211ff161311ff161412ff161312ff24201dff181613ff1a17142d331607443919096d3e1f0f643d1e0e6345220e3a331809392711057d1a0e08ff292521ff2a2521ff0a0908ff181513ff191613ff171512ff161310ff161411ff171512ff191613ff191613ff201c19ff201d1bff282421ff1e1b18ff1f1c18ff1f1d196b211e1967201d1969211e1b65211d1a68211e1b263416072c36160732371707433b1a086a3f1e0e7040200f6f3f1f0f69411f0e6346210f3d3b1a092d361708412c130653251107b41f1610ff27231fff1b1714ff29241fff1b1715ff0a0807371a17142a19161222191612271a171322191613211916122019161223191612241916122319161222181612331a1713251815127f1b1610602611067347210e47260e064f2c1107603014098b4822127b4720116b3b190c5a3d190a59270f0561291006562a110658291006562a11065a2b1206712d1307702e13076f2e13078936190b7331160a6a30160a6134160a6b411c0a653f1e0b5f221e19571f1c17481f1b165b201c178e1d1915441e1b165b221f1953221e1854211e1858221e1855201d1753201c17531e1b15531e1b15531c19134d1b1712801a16126b301609732f160a562610076f2a13097532170c682e13096b34180a6535190b6b35190b73381c0c873a1d0d843a1d0d933c1f1068361a0d66281206531d1a15501c1914511b18134f1a17124e181511481614107229160d592c140a672c150b7029140c6927120b6832170b6933180c6d33180c7c361a0d86311a0f682c160c60211e186a231f1999231e1968211d1869231f1a6b24201b6a24211c7425211c6e24201b7825211c7b24201b70211e1973201c1845181512bd1917139124201b681f1b1777221f1a7024211c7b28241f882a2722842c2923762d2924752e2b25863430297d3530298338342c80302b259d39322c813c372f863f3a3195443e3598463f379f48403895453e3596443e3596433c338b3e382f8f3f39306b3730296d1f1c188e24201b662c271f903630288a342f279737302899342e2792342f2784302b24822f2a2495342e278a312c2589312c25d4322b25722d282288332e268c332f279437312a9a38322b8d363029993a342d993b352e8636312a8d37332c803a352d991c1a17a525211d532b2620863a352d8138352e913d39319139362f8e39362f8237342d8037332d8f3a37307e35322c7a33312aae2c2924652c2a2579312e2878302c277b302d27792e2b2667282621732b2824702926216726231e6826241f5f26231e90211f1cba1c19164318161266221f1a601f1d18661f1c17711f1d18681d1b165e1b1915621c1a165b1b18156b1d1a15641c1a155d1a1814821916125116110e692d180d612b170c522c160b4e261309ff171513ff100e0c39100e0d3912100d33110f0eff0d0c0bff0d0c0bff0d0c0aff0c0b0aff181614ff191614212d120556351809683d1f0e683f1f0e593b1e0c4b36190b581d0d05fa191614ff12100eff0f0d0bff151311ff151210ff181614ff1a1816ff1c1a17ff1e1b19ff211d1bff211d1aff070605ff070605ff070605ff070605ff070605ff070605ff070605ff070605ff070605ff070605ff070605ff0706052f3416082032130644361607633b1a09603f1f0e724221107343221053441e0b52421f0b433b19093e3c1a094e2a120767241107ff1d1915ff2f2924ff1a1614ff1f1b17ff1a1612ff1e1916ff1d1915ff1b1713ff1b1814ff1f1a17ff201b18ff1d1916ff1e1a17ff1f1a17ff201b18ff1f1a17ff1e1a16ff1e1a168b1d18145e28120660451f0c6c2e13085d2f12077b37190c8e462112873c1b0e7a3e1c0e603e1a0b56281006652a110654291005612b1106602b1106572b1106642c1207622d1207622e13077133170a7a361a0b7b33180b6738180a71451e0b62401e0c62231f1958201d1754211d1759201c178b1d1915481e1b1657221f1957221f1953211e185a211e1854201d18531f1c16521f1b154f1d1a14501b1813511b18137a1a151164301609612f1508682911087a2b140a882e160c652c140a603418096a36190a76371b0b6035180a73371a0b72391b0b803c1f0f703a1d0e72291206501d1a154f1c1915511b18144d1916124a171511461613107d2a170d682c140b6e2e160c862c160d491f0d075f33180b7535190c6632170b6a34180c7f2e170d712e170d5d211d186923201a96231e197524201a7125211c7626221d6e25211c7926221d6f241f1b7524201c75221f1a7f211e1980201c184c181512ca19161384211d19631d19156c1f1c1875231f1b7d26231e85292620862c2823802d2923832e2b259134302976322d278336322a802e2a24a53a342d90403a3294433e349e4640369c453f359f46403694423c328d413b3290403a30993f3930a04039306b302b2471201c1879201b176027221b83302b238a302b2395312c2595302b2593302b248c2e2a238f2f2a23902e2923792b2721872e2922ce2d2722882d292294302b249a332e2798332e279e342f288e322c2591342f288c3430299a38332c9838332d7f342f29801715129c23201c5827231e7936312a8338342d8e3b37308e39362f913a36308b39352e8d3a36308a37342e6f322f2978323029a92b282377302d2882332f2982312d287e302c277a2c2a256b282520712927226a26241f752826217527241f6425221e811d1a18c31c1a17411815125f211d19611f1d186a1f1c186d1f1c18691e1b17651c1a166c1e1c17641c1a16651c1915581b19155d1a18147e181612581513105d20160f662f180e6e321a0c532a150a5d26140ad21f1612ff151412ff13110fff110f0eff090807ff0a0908ff0d0b0bff0f0d0cff0c0a0aff0b0a097f211109352c12065736190b6a3d1f0f7a43220f57381b0c4e371a0a6e180b05d914100eff0c0b0aff080605ff080707ff090908ff0a0908ff0c0c0aff100f0eff0d0c0bff050504ff060504ff181614ff191614ff1a1715ff1a1815ff1a1815ff1a1715ff1b1916ff1b1916ff1b1816ff1b1917ff1c19178e26140b3634160830331507463516084a3818085c401f0e6f4422106f4321105c46200c533d1b0b403b1a09483a1a096b29140863200f06ff1f1b18ff1f1b19ff13110fff15120fff151210ff161310ff191613ff191613ff1b1714ff1c1815ff1d1916ff1e1a16ff1d1916ff1e1a16ff201b18ff1f1a17ff1d1916a6221c16502710055e411d0c6a2f13087434160a7d39180c8a421f11733d1b0d793f1c0e523e190a59291006492a1005612e14076d2e13075c2d1206512b11065d2b1106582d12065d2f1307673216097833170a7233170b723c1b0c76441e0b5b3e1d0b58211d1853211e1854201d1759201c17911f1b164f211e185923201a55221f1955211e1858221e1953201d17521f1c164e1d1a144a1b18134b1b17124e1a17123a18140f7633190a6a2e15097b2c13097c2b130a992f170c6f2d150a6e371a0b73391c0c823a1d0d71391b0c72381b0b5f391b0b783b1e0e783b1e0e65271106531e1b16521c1915501b18144d1a1712451815114516130f882c190e742d150b6a2c140b852e170d7525120a5e2f160b7f361a0d7234180c6b371b0d692d160b81331b0e6b24201b5f221e1989211c196d221f1a7426221d7627221d6b24201b7927221d6e24201b7a24201b7b231f1a77201d1878201c1743171410c217141284201d19721f1b177c221f1a7e24211b7c25221d8327241f83292521872d2924862f2b25913530298835302977322e28702a252196352f29913f3931923e38309d443e3490403a3195433d3398433d33923f3932963f3830913b352c9439332b612a251f7a1f1b17811e1b177127221c92302a23952e2922942d28228e2b2721922c2720912c2721932c2721952c2721882a261f7d28231ebb28221e882b2620912c27219a2d2922912d28229c312b248d2f2a2398322d2690312d2792332f28923430297b322d2787151210a4231f1c632925208837332b8b39352d8c39352f8c38342d8f38352e8f39362f9138352f8e38342e8133302a72302d279e2a2623752f2c2783322e2883302d27772d2a25792d29246e282621732926216e2725206f27241f6f27241f5b24201c861b1916c91d1a174a1a18147024201b651f1c186b1f1c18681e1b17661d1b17681d1a166c1e1b17681c1a16691d1a166a1d1a16551917136f1614125014110f651b19155027130a692f190e5d2312096d2b160b6828140a7327140a7b26140a8026140bc91e140ee51e1713aa1d110c9f1a100b98170f0b9511100e9611100f36271106432a130757381b0d50371b0c5f3c1e0b573a1c0b7d26130968150a0472150a0471160a056e170b057a180b0579180c0580180c05d61e1611ff0c0b0aff0c0b0aff0f0e0cff0e0d0cff0e0d0cff0e0d0cff0e0d0cff0d0c0bff0d0c0bff090908ff090907561a1a17691c1b18ff26221eff0f0c0b37351708383416083f3617086239190a4e3c1b0b61411f0e734321106343200f75532a12453c1b0a4b3e1d0a5d31160855220f06521d0d059c160c07ff100e0cff0a0909ff15120fff161311ff151211ff1b1814ff1d1916ff1f1a17ff1e1a17ff1d1916ff1d1916ff1e1a16ff1d1916ff3c352dff1c1714c2211b16632912066b411d0c75351709753817096e3a180b8c411e109944201077411d0e62401c0c61431c0b482d1205602f14076b2f140873301508682f1407672e1307472d1206523115076a34180a97391c0d7937190b7f401e0d63421d0a5f3e1e0d5c231f195b221f1958221f1958211d1893211c1651221f195b23201a51221e1856221f1954221e1953201d1755201d174d1e1a144d1c19134b1b18134c1a17124b16130f7132180a672e150959291107712b13097d2b140a92341a0d662f15085634180a80391c0d6f391c0c893b1d0d693b1d0c61381b0c683a1d0c70281106551f1c174f1c19154b1b181449191712451815114616130f702a160c7e30170c732d150ba5321b0f8530190d4e2913096733180c6736190c6a381b0c652c160c6b2d170c64221e1a5b221e199d25201b6c231f1a7727231e7327231d6c25211c7a27231d7324211c7823201b78221f1a75211e1875211e184c181512ca18161391201d1a6e24201a7f25211c8425221c7e25221d8a28251f84282520872c28237d2d2a2487342f287b322e276c332e2781312b259838322c8b413b328f413a3095433d3497413b329e423c3399413c33953e3930953c372e9539342b973631296f2a251f8b1d19168c1e1b187026211b952c2720962a261f8f28241e9328241e8926221d9028241e9328241e9527231e8a25221c7b24201bd227221d7824201c9629241f8f29251f922925209b2b27218d2b2721962d29228f2d2a2491302c2596322e2788302c269f13110fb5231f1d6729251f8e37322b8c37342d8938342e8f38352f8b38342d8b38342d903a362f8f3a362f7b34312b6d322f28af2f2a256d302c278335312a7c323029792d2b257c2d292470272520762926217127251f76292721732826206727241f911c1917cf1e1b18471c19167024211d66201d196a1f1c186b1e1c18671d1b16641d1a17671e1b17671d1b176b1d1a16631b19154f191713801815135213110f611b1915611b18146c361c104a401f104e36190d55361a0d46341a0d3332170b3d30180b342e150a5432190d5b30180d6531180e3e0f0e0c4610100e4b12110f4c13121038220f0549220f05663c1f0f713d1f1056361a0a6e1108036f1108037b1108047e1108037b1108038812090497130905a6130a0599120904ff1e1b18791008046b11080463100803531615124f16161255181714521817144c1818148f181612521b1a175a1c1b18571b1b17b51e1c19ff120f0e701b1915373417083a3315073a331608573819095f411f0f64411f0f523f1e0d5f4c250f4c47230c4b3e1c0a5e3d1c0a76291308732b14086d2b1308742913087c27110767251107762310078922100774210f068a2411087c231007842310077a2310078f25110862200f06511e0d05ff221e1bff221d198e1f191556291207603e1c0b5f321307673314086f3a190c6f3f1c0e76411e0e8047200f8548211065461e0c4d2d12064c2c1106632e13076e301407562e13066d3014086b331608573215077a381b0b5e3216096c36190a823f1f0e73441e0b5e3e1f0c58221f195d221f1853221e185f221e1899211d1757241f195d24201a53221e1854211e1853221e194d1f1c164b1e1c16481d1a144a1c19124a1b17124c1a17118b1c1712692f16098331170b692d1409802e150aad351b0d8a331a0b5a2f14064a3417096a371a0a6a391b0c873d1e0d5f391b0b6b3a1d0d5f391c0c5e271006501e1b16501d1b154a1b181342191511421815113a15120e6f29160c8134190d7630170c992e190e862a160d432511084931160a843a1d0f66381b0d652b150b632c160c5f24201b6d26211c8d241f1a6e25201a7026221c7a28251e6c26221c7c28241e7025221c6f24211b6d23201a69211e1869221f193e1a1713b1191714791b19165c221e198228241f7f27231e852925208b27231f85292520812d29236e2c29237f3430297436312a7d39342d702f2a238f39332b87413c338f433e3593453f3598413c339c413c33973e3930913b352d8e38332a8f342f2792322d266227231d7c1a1814911e1b1764211d17962a251f8e28231d9326221d8f26211d8924201b8a23201b7d221e1a9b24211c9123201b8b24201bc7231e1a7f231f1b9124211c9926221d9226221ea029251f8e28241f8f2926208f2b27218f2c28228f2e2a247e2e2a2486100e0cb6201d1a5d24211c8a35302a8635312b8e37332d8a36332d8e38342e8b39362f7f37342e8f3c3931803a36307c39362f9d2e2a246c332f297836332c7b35332b75302e277a2e2c2671292722752a2722732a2821742b29236e2a27215929261f761d1a16c31f1d193e1e1b166225221d5f221f1b62201d18691f1c18691f1c18661d1a17661d1b17591b19166c1e1b17621c1a165f1b1915731715124f14110f611a1815611b1915611b1915641b19166a1b19165c1817135f18171361181613581614115e1615115c1614116616131076100f0d3e0f0e0c42110f0d4212110f411312104218110b491b0b045c1c0d0564381c0d462d14084c2b12075d3015094b2f1408382c1308312a11063c2a12072e27100531250e0551281107572611075c2410076d2510074e1515114f171612451615124e181714541a1814511b19159a191715561c1b175b1d1c195a1d1c19561c1c18571d1d18561c1b174e2219123a2e13063c2a120635271005572c14076045220f5c421f0f70462211524d230e4d3c1b0a5f2e15085e1f0e055c1e0d05651f0e055f1c0c056a1a0c0561190b046a170b0474160a0470160b0486170c0581170b058c170b058f180c0572160a04561509045915090342140803ff2a2520761c1713672f15096e401d0c63331508643414086239180a81401e0f80411e0e8a4b2410894e2611814e240e4c2d12064e2e12065b2e13076831140860311508713215087a3416085a331507623518096736190a75381a0c663c1b0c6845200c6b411f0d53221e1858201d1758231f185d211e188e201b164f221e1858221f1957221f1955221e1851211e184d1f1c16431e1a14491e1a14491d1914481c1813461916107616130f642d14087b32180a6c2e14098331170b95331a0c8031180b643115094634180950331709783c1e0d9b40210f633b1c0b663a1c0c58391c0b6e2610065d1b18135b1a1713521814105716130f5915120f5315120e702a160c87371b0e90391d0f9a2c170d7126130b4b200e064730160a65371a0d6e381b0d6c29150b772c160c6c25221b6926221c9625201b7a28221d7728241e7528241e7127231e7928241f6b26221d6a26231d59231f196124211b5f24211a4b1f1c179a1815127a1916135c24201b7529251f7929261f862c29228e2c2822822a27217f2f2c25712e2b257b36322a7837332b753a352c72322d26a04039308c443f368b4440369146403693433e349c403b32953e3a318a38332b7e322e268a322e26623f3529603a312667382f255e382d2361372d234928221b8c25211c9426221d9425211c8d23201b9223201b841f1d18621e1a155e2f271e603129206730292062342b215f2e271d5328211b9825211c9b26221d8f25221c8f26241e7b25231d862926207a3830265d3e352966372f275d3a31286341372c603730277239342c8d36332d8e38342e8e3a362f923d3931843c38308a3f3b33803d39307039362ea5332e277137332d7a3a372f7235322b7635332b73302d276f2e2c25742e2b25652b292271302d26672d2a23642d2a24861e1b18a7201e193f24201b5f2925205a26231e6223201c63211f1b681f1d19671e1c18711f1c185f1c1a16671d1b17661d1b17591b1915761816135c161310651c1a16601b1916601b1916651c1a17671a19165c19171461191814551715125015141159161411581614114d14121095110f0e5d100e0c52100e0d4b0f0e0c5911100e5711110e5213110f6314110f5119100a561f120c5a21140d4e21140d4e21140d451e120c421c110b541c110a541b0f09601b0e08481c100a571d120b581d110c551d120c44151411461715124116151247181713501a18154f1a1916641513104a1b1915541d1c185d1e1d1a571e1d19581e1d19561c1c174f1c1a16432a13083a260f053f200d04451d0c045d31170a5c421f0f684220104e401e0c4a391a0a49341708533417094b321608473014084b2f14084a2e1408432c1307531d0c045a1c0c04551b0c04551b0c045e1c0c055e1c0c05571c0c05511b0b055b1b0c0550190b04621a0b055f160f0a851f19146c3016089c472310663215085b3415088c3f1d0eac4b2511a64f2712864c25107349210e57451e0a392b11053d2d12055e3013075f2f1307543114076c33160761351708543416075d3718096737190a4e331608583b1b0a67461f0a613d1d0c4d211d1856211d185c2420194c211c17651b16133b1e1b1549211d1850231e1854221e184a201c17451e1b154a1e1a15421c1813451c1812501a1611431815107918130f5e291207762e15097632170a9034190c7e30170a712c1509702e150a393316084f36180a56371a0a7f3f1f0d653b1c0b663b1d0c663c1d0d60250f064a1e1a164d1d1a154b1c1a14471916124718151142161310792b180d8d381c0e99321a0eab2d190e882a170c4f210f07522e150a60381a0c753d1f0e6129140b742c150b7126221c6626221c9f27221d822a241e7c2a26207629251e6925221c6c27241e6026231d6229251f5c28241d5e27241d5f27231c4b1c19159b1715127f1513115d25211c762b28217729261f882d2a23862f2c257a2d2a23792f2c25652f2c257638342c7e3d393074443f35862e2a24b6403a339b423d358f514c428f4c473d8949443a8e403c34893b372f8337322b85322d2685302b237a302a234919141277221c17711f1a155f241d185a221c179325211c9826221d9223201b8b221f1b91211e1a861f1c18663a33296a1d19144a120f0d721915126e18141066211c17791f1a168c221e1a9324201c8924211c8725221d7d25211c8327241f8527221c441a16136e201c176b27221c56241f195a433b3089403a339339362f8c3a372f8b413d35904340378247433a894c493f8549453c7d35322cb4302c288435312b80423f367038352d6e35322b6f33312a68312f286f3331296c2f2d2670322f276d322f2763302c25711a181496211e19471c1a165e2b29235b2826206027251f6124221d60201e1a5f1d1c18681e1c185b1c1a17621d1c18681d1b175a1b19168019171462171412691d1b175f1b19165b1a18155d1b1916621a1916551816135c191714541715125215141155161411581614117e181512820f0e0c3e0f0e0c4611100e4412110f4c14131141131210461615123512100f41171513481717154a171613491717144d17161352171513511514116711100e5b0f0d0b6a0d0c0a94161411711412106613110f6312100e5612110e54141210541715114d1817134818171341181713991e1a172d171512451c1b17571f1d19561f1e19501d1c18521c1b16561d1c194c1c1a164c260f04491f0c044b1709034a140802714120106741200f413a190b41361507483214074d3414085634170943321608392d12072e2910052928100530250f0532250f062b2510052f250e0530230d054b2710066328110756260f0655240f065f250f067422130b5d18161296221c155a3015087d45210e6f3114086e3415096d38180ba1452110994a2410834d2510974c251161451e0d61441e0c462f13074b2e1306442e1206713618099a3a1b0b60351708643618085c371909453115086037190a673f1d0c79451e0c5e3d1d0c521f1c164c1e19154e1d191489231d1877221c174117140f7c1d18147e1e1a15701d19155a1b1712571b1812561c1813521d19134b1c18124c1b17123717130e8c18130f61261107702c14089e3a1d0da63b1f0e9c361a0d812f170b6d2c14094c3215084a34170949351808743c1d0c663a1b0b723e200e6d3d1f0e4e240e05501e1b16511c1915501c18144e1a17124c1916124a1614107827170e49140c089230180da22b170d7f26140b4e27120868351a0c713c1e0e793f200e6527130a7828150b63241f1a6e28231d64201b166826211c6627231d792a261f6a27241e6829251f5828251e5328241c612b27205d2b271f6129261e43151310ad1816138012100e6019151282302d266d2b2820782d2a2476322f2868302c266938352d613c3931694e4c41745451467c514e4563413c358259514a715a564d936c695e9569675a915f5b4f9156524780443f367e3c372f8536322b83312c25742d272185241f1bd81f1a17901f1a164d16131065211b178022201a8e24201b83211e1a781e1b177e1f1c18701c1915523b32296517141190181411d8161310891815115213110d861e191691211f1b90221f1b79221e1a7e24201b8327241f8127251f821d19156f231f19d12a2520d1362f29512e292368574d4481534d448946433b84514f477855534a7e636055756460557f69655a815f5b51745351497e443f396a3f3b35854b48407d4e4b40733f3e346f3a372f6537332a653632297236332b7137342a6d37332a4c22201b941a1816b123211c4d191714732b2822552927215527241f4e25231d52211e1a4e1d1b175a1d1b174e1a1915561c1b17611d1b17601d1a17651a17144d151310521a1815611b19165e1b1a16601a1916611b191653181613501816135a1816134d151411541615114e1513105f14120f690e0d0c44100f0d4a12110e4812110f4a1312104214131047171613461312104818171449171714491717144e1818154f1817144e171613491615126713120f74100f0d740e0d0b3813110e4d1615124e171612491716124d1817144e1818144b1918144b1918144a1a1914361614116b191613651c1916621c1a16791d1b177a1c191773191613741614116d1815126617151361191713511a1714571a18144f180a034e0f07034a35180b3b2f1307422f12075e3416095b34170a4b3215095330160a432b13083127100631240f063c2411073d251007382510063f25100743251007482510075b2510075a230f0756210e0663241008601817135a1917137d1f19136a3317097f45210e69311408663315088b3f1d0da04723108449230f7148210e6c441e0d59411c0b4e3f1a0a3b2e1206412f1306433114065e341608723819095a351709583617086038190a5d37190a6138190a6a3f1d0c85451f0c5c3f1e0c53201c164a1f1b1651221d173b1b17127a1f19153f1f1b164e221e1850211e174d211d1754211e174f1f1c16471e1b154b1d1913491c18124b1a17124c1a16117b191410772a14086c2e150989391b0cac3e200fa83b1f0f95371c0d6e31190a4e3316085436190a53381a0a723e1f0d7840210d5b3a1c0c723f200e4d230e05511f1c17531d1a16511c1814541a17134c1815114b1613107d28180f5e19100a7c31180c8d2a160c9628160c5f2f170b513a1c0c8841210f8741210f6e24120a8e28150c7a231e1973221d199828221ca52b251f7e26211b9528231e8326211d6f24201a6a26211b6e27231d7329241e792b261f781f1b17941b18145d1513117a1512108e1b1815982d292397332e278f39342c8437332c7c403d3585514f458159554c86727163827671647d6b665f6075736d6665625b81777068a28b867eaa9b93899b8d857994787266966c645a9b59534b9e49443ca93c37305637312a6929241fe325211e90201d19831e1a1564221d1892211d198d1f1c187e1d1a167e1b1816861c1916901c19155a3b342b5914120f8015120fe9181513871815117f191612861d1a169a1f1c19901e1b178c201c198d211e1a9523201c9825231d4f1c19145926221db5302b27a035302c6a4d473e586960548f69625695656057897170678c7d7b71948b897e9e9c998b9b99988882777268696a655e595d5b586b56524c945a59529868645b885550477f4642387b3f3931863d39308f39362d9138342c8434302aae2825208b1f1d195f1a1715851e1b186e24211c772c28226c26231d67221f1b581e1c186a1d1b176c1c1a16761c1915711a1814681a171464191714831b1815871a1714601815127b1917157e1917156f1816136816141264161411691514116d1513116b1412106e1412106f1614107c14120f6e0e0e0c41100f0d4b12110f4e13120f4914131047161513421817134b1615134b1b1a174e1a1a174a1918155319181553181815521817144d1616136d13131070110f0d8812100e441513105118161355181713531918144e1917144f1a1915481918144e1b1a164f1e1b174b1d1b175d1917134b1e1d184e1e1d18541e1d19501e1d195b201e1a541e1e19571e1c19501d1c185f1e1c174d1c1a16551c1a164a1918146e1b1915b7161412480d0c0a60100e0c8d14110fc7211e1a7e16141181181511771614116d151411611514115215131051151310541714114b161410551716125b191713521716125a1917135218151251191613561917134f1816136d1c16116233170a76421e0d6a3115086c341609873d1c0d85421e0e7e421d0d6c431e0d65431d0d6e48200e59431c0b2f2e1205483215073c3114065b351708703919095a371708583617086f3a1a0b6a391a0b62391a0b73411e0d523f1a09553a1a0b53211d1752231e1855231e174f1f1b15611b161251231e1856221e174f201d1754211e1857201d17541f1c1654201c164c1c19144e1d19144b1916114f1a16113e17130e6028150b6a24110788381a0baa3e200f9f3b1e0e7c351a0c632f160a5035170966381b0b6b3c1e0c6f3e1f0c7d42230d613c1d0b7440200e562a13074d211d17541f1c17541d1a15511a17134c1714104c16130f6728160d1e160c065e2a170d8c27140c8f26140b7a2e170b613a1c0d833d1e0f6e3c1d0e8c28150c8628150c6526221c6928231c61211c176e29231d702a2620712a26206229251f682d2a225d2d2a225c2d292162312c2461342e25771f1c17f8f2f2ebffffffffb08f8c8654201e1b792e2a237946413877524d4169626153686c695c697a796c58817e7062969484618e8c81b2bbb9b4fffffffff5f5f4f466615d5866a7a69c76ada99a7ab5b5a27ba5a69473939183717e7a6c736e695d76565349274038314a322d287036312961201d185a25201b6726201c84221f1a8b221f1b79201d1988211e1a86201d197a1d1a175c3e392e2b0f0d0b5813110e801714116214110e51191511831d18158c201e1a8b23211b8323201c8123211c8a27231f8527241f4d312b253625221e5f49433965554f45524b473e48a395807a80776a73928f80679a988974aaa89972b4b6a966abac9b6bafae9e66a8a79984a39e98fffffffffcffffff6a7372696e8685796b7f7d71707271636d636052705450447d514c407d4a453a732a272159201d19c689887afffffffff4eaeae37225221d5c302d26582e2b23582a28224c25231d5c23211c5c211f1a561d1b185e1e1c185f1f1d19581d1b165f1a17144b151311641d1b17541a18165e1a19155e1b1916611a19155718171357171612591716125516141158161411511513106b151310730f0d0c39100e0c4d12100e4f13120f4815141147191814481b1a174b191815471d1c184e1d1c194c1b1b17531a1a16551918155519181552181714731514117013110fb61614124e181612561918135419181452191814501918144d191915491919144d1b1a15511e1c174a1e1c17931c1a164b1d1c17561f1d19541e1d19571f1e1a5e211f1b5a1e1e195a201e1a551e1c18601f1d18511e1c17501b1b16521d1c17421a1814af16141174110f0e6c11100eb4191714371715115f1d1a16601d1a174e191814641c1b165a1b191546181613571a18155e1a18155d1917146c1a1815751a18156e1816127318161276171511801715127717141071171411841c17126234170975411e0d873518097a38190aa243210fb147231187431f0e7f47211063421c0c66441d0d66411b0b363013064b3215073f32140750341607693818096f3818095d3718086338190a7c3d1d0d713c1c0c653e1c0c4e3d19095d3b1b0c5a221e1850221e1756231f1853201c16871e1b164b211d1656231e1951211e1854201d175a211d18571f1c16521f1b16541e1a15531d1914541c1913531a17115019140f7226140a842519117835180a943b1d0e90381c0d8f361b0c7c32190b5935180957361a0a9943240f7a3f210d8342230e6e3c1d0d863f200e743d1d0d34210c0454221f19521e1b16521a17134e1815114e16130f5829160c24180c064731170b7320120c6e23140d63291409633b1d0e6b3c1e0e873c1e109129160c8628150b6226211b6929241e9b28231d6f28231d722b2621722b2721642a261f682d29235d302b2364302d24663330266938342b652b2722ffffffffffffffffd2f6f2e3531c1b18613b3832786863576869685d687d7c6e63838376628f9082599092815ba5a18f67908b7ad4cac9c7ffffffffffffffff5366605a689a978e7ac4c6b675b7b8a97db3b2a775a9a89b6b8e8d806f818377716a6b6165a195836562574a6b504a413b433b3289564f43573a352b8c24211c8c23201b88221f1b8f211f1a87201e1a791c1a165e312d275d2d2820761c1814621613104a1c1814a92d282169312c2490211f1b9924211e8825231f98272521932d2a2585282520b5534e463a544b3d8168625753786d5f4aa09583aadbceb87d8d88756b97998c6da6a7986fadafa16db9bbac65b7b8a66bc4c3b1728480726e827f7affffffffffffffff525e5a546aa0a093669897876c8e8c7f617b796c6e706e617a6a675a8162605581545046732b2924d5bdbcbbfffffffffffffffd641f1e196239362d5e3330285b2b2a23542826205a24231e5f22201c551d1c185f1e1c18611f1d195a1e1c187c1a181551161411641d1b18571a19165f1a1815611a1915661a181557181613621817145b17151258161411571513105a1514114d141210790e0d0c3e0f0e0c4b12110f501413104a171613471b1a164d1e1e19531b1a174a1f1d1a5421201c511d1c195a1c1b1854191815561a19164d1817146f151512811513108111100e47181612591a1814591a1915551a1915541b1a154f1b1a164e1b1b17441c1b174c1e1d1754211f1a811b19154f201e1956201e1a58201f1b571f1d195e201f1b62211f1b5d211f1a5a1f1e1965201f1a541e1d194b1a1915531c1b174d1a1914bb1614126a100e0c6f12100e8b161411561c1a165c1e1b16601d1b164b1b1914611e1c17611e1c17471a18145c1c1a16641d1c18521b1916541b191651191814561b1915551a1814581b1915591b1915581b19142b15130f821c16116d38190a72421d0d8d3317098c381a0a9d42200e9e4522108e47230f7f48210e7a4d250f6b481f0d6b411c0b36301306382f1306393013064033150660391808663b1a095b391908733e1d0c5a391a0a56391a0a75421f0c503d1a094f391a0a50201d1753221e185625201a5b221f187b1e1916512320195624211a53231f1955211e175d211e18511f1c1655201c17551e1a15501d1913521b17124f1a161184191511622713095b23140b6131170989381c0d7f361a0c95351a0d7631180a5034170954371a0a743b1e0c793d200d8b3e210e633b1c0b934424108442221033200c045424211b501f1c17501a17134e1815114f1613105829160c1d170c064530170b8a21130d881e120d5a1e100969381b0d6d3c1d0e6b32190d8d26140b8b28150c5d24211b6428241d8f27221c7028241e732a2620772c2822652b28216f302c25602f2c246c3530286c3733296d3c382e7f27241efeffffffffffffffd6fffff05635332f614e4b42687e796a5f7a796c65898877639392815f9798875b989a8b5eaaa99964807f6fd7bab9b8ffffffffffffffff717c79726e99968e7bc1c7b779b8baac77b3b3a772a6a898739c9a8e6e8f90827285877b8e37332c7529261fa51a1815a8221e1c6b211e189b26231e9024211c8d23211c8d24221d8f211f1a851f1c18851d1b187f1b1915811c19168a1e1b18bb1c19158c1e1c19921d1b1899211f1b8f23201d9d292622882a2823943935308e413f3890292621882a27228a2c2823b41c1b18c123201e4f25211b8d322f287096968a699b9d9170acad9b70b1b3a26cb4b6a76dbcbeae67babdac6883817260868280ffffffffffffffff7b716b5f73b5b6a866a5a5966b9f9d905d8a86796b8481756d7a786977787667766b685b5d32302bdff0ede4fffffffffeffffff79221f1b633b382f6234322b5a2e2d25602b2a235925241e6123211d62201f1a66201e1b5c1f1d19581d1c18731b181552171412601c1b185c1a1916651a1916641a19166a1a18165717161366191714661715135a1514115d1614115f1513115615130f890e0d0c48100f0d4f11100e4f1514114a1a19154e1e1c174c201f1a581f1d194a22211b5623231e5922211d5b1f1e1a541c1b185d1a1916541918156b161511751413108212100e3f161511551a1914541b19145c1c1a16541b1a164a1b1a164e1e1d194e1f1e194b201e194b201f1a821e1b1847201e195722211c5921201b581f1e1a6421201c64211f1b5f211f1a63211f1a67211f1b591f1e19581d1c18561d1c17611f1e18c417151366110f0d801513103c181612491a18145e1e1c17631f1c17531d1b165f1e1c17621f1d18521c1b16591d1b17681e1d18541c1b165a1b1a16541b1915551b19155c1c1a15591c19155a1d1b16591c1a15561c1a15811a1611693a1b0a66431e0c773015087e351709a941200f9842200f9e492410894b2310704d240f634e240e66421d0c38311406583718085c361808553818095e3a1a096c3d1d0a693e1c0a8d45220e6e3d1d0c76401f0d673f1c0b543e1a095639190b512320194f241f184c25211a51231f1979201b16462320195425211b4f23201956221f1957221e1858201d1755201c16541e1a15521c1813541b1712521a1611951b161150291308302a15095826140b672d180c8230180b96351a0d92341a0c6f371a0a69381c0c783b1e0d863c1f0f773a1d0d8f4021108742220f8641221033200c045427241d51221e19521c1914501815114916130f5527150d21180c062d2c14097427150b7925140b6e23130b593a1c0d643d1e0e653e1f0f7726140b9729160c6927231e6d28251f9c29241f7c2b2620742c2821772d29226a2b28226e2f2b2567322d2669353129693a362d6e3d392e8229251fffffffffffffffffd6f4efe251423d39626160565d8281705f838073648f8d7e639090815a909282559495835fa4a7975fa0a392d3c0bebdffffffffffffffff54615f5a7094918978babdac72afb1a27aafb0a372a1a1957299988d6c8d8c81698382776b7c7a716e45413a7a3e3b38723c39345e2a28237244413a6f33322d8237332d8c2926219024221e83201e1a871e1b198e1d1b18881c1a17861c1a17c41d1a18861d1b188e201e1b9623211e902625219633302b773533307e46443e7a53524c725c5b53736b6b607077786f70494642976a6660595a564d718e8b7e679696886b9b998d6da5a3956da7a89962a7aa9963aeae9e6dbbbeae62a0a396597b746fffffffffffffffff622c292466acac9e66a6a7986a9f9f91608c8c7f648b8b7e67858477687e7c6e656a685b59413f3adef1efe6ffffffffffffffff6a22201c643c3a306136322a65312e27662c29235d2826215e24231d6821201c6821201c67211f1b621f1d1a821c1a175b171513611d1b18621b1916661a1916671a19166f1a181560181613641715136617151258151310621513115c14131082161411720e0d0c450f0e0c5011100e4e1614114f1b1a164f201f1a4c23221b4e1917144e23221c5926251f5524231e5c21201c531d1c18551b1a16561b1a16711716138c1715128313120f3d171511541b19155c1c1b165c1d1b17561d1c17461d1c1744201e184c22211b5023221d5224221d89211e1a5223221c5323221d5722211c5c21201c6022201b6222211c6021201b6122201b6f22201c591f1d19581f1d18591f1d1959201d18d119171355110f0c7f16131141191712571e1c1766201e1965201d194f1d1b16611f1d1865201e19501c1b155d1d1c18651e1d18531c1a165d1d1b17531b1a16581c1a165f1d1a16581d1a16591e1b17581e1b16591e1b168b2d1c126e1f0e066c421d0c733115087e3417099a3e1e0e8a3f1d0d9046220f7f47210e65451f0d49441c0b603f1b0b3c3215065d3618085736170860391909643c1c097a401f0b6d401e0b8e47240f5f3c1b0a703f1f0d6c401e0c533e1b0a523c19095926221b5726231c5328241d5727221c7e241e184f26221b5327231c5427221c5825211a55231f1858221e17511f1b15541e1b15561d1914551b1812561a1712941b17133b2812073e30170a3d2e15085f2e160a7c29160d8429180e8033190c5c39190a6a381c0b693a1d0c763b1e0e873c1f0f954324118a4323108a4323103d200c045328251e4d231f194e1c19154e1915114216130f6a2d180d1c160b063830160a6e27140b8728160c6925140b633d1e0e623e1e0f613e1d0e7526130aac29170e6b28241e7029251fa92b25206e28231d782c28227a2e2923732e2a236f312d2666332f28673a362e65413c33723e392f561b1916ffffffffffffffffd3f3efe1745f5a54606f6e636084857563848177648a887c66908f815d8c8e7f578a8b7d64a6a49359959587ced0cfcdfffffffffdffffff5656504a72908e8474aeb0a076a6a79974a2a2976c98988e709694886a89887d6a8282776b7a78716f49463f683f3c3a663a3632572f2c2768504e457f5b574f4c403c365638352f533b363165413b356238332e5c2925206326221e5f201d1a5722201c5f282521632d2a26712b28256535312e5b4d4842535a544c42433f3658645e5567766f68727a776c757d7c747d4e4b498b5b5752575c564e658785796a9293866d96948a6c9b9a8d6d9fa092639d9e91629ea1936bb2b3a25874736a6475716bfffffffffcffffff5d3a363266a3a3966ba4a5976598988a5e88897d648f8e80648a8778628280736276766b6134312ecbc3c2c1fffffffff9fffffe64292521663d3b31653b383064323029642e2c26612827226b2524206121201c6a23211d6c22201c611f1d1a8c1e1b1853161412601c1b17651b1a1765191815701a19166c1918155f161512661716136a1715125e141310651413106314120f881412107f0f0d0c440e0d0b5011100e4f1615124d1c1a164f21201b4e25231c4c100f0e4a1514125a2a2822592625206224221e5f201f1b561c1a174f1a1916731816137d1715128a1312104b1a1814531c1a165e1d1b17591e1c18531f1e194c201e1a4b23221c4f25241e5026241e5224241e9524211d4d24221d5825241e5f26241f6124221d5f23211c6522211c6221201b62211f1b6823211c58211e1a511e1c18581f1c1859201e19d11917147713110e7c14120fa4191713531e1b17621f1d1864201e19531e1c17601f1d1962201e19581d1c17601f1d19621f1d19511c1b175d1d1c18591c1b17501b1915561c1a16561c1a165a1e1c185c1e1b175c1e1c18422c16096d20160f6d1c110a703014086d3014088e3b1c0c8f411f0e7d411e0d8248220f7748210e6248210d593e1a0a41311407483315076e3b1b0a6d3e1d0a683d1d0a713f1e0a623d1c097441200c603e1d0b80411f0d7a3f1e0d473e1a0a3a3a18085429231a5a29251e5329251d602a251e8e27221b4125221c5629251d5129241d5426221b5825221a54221f184b1f1c16541f1b164e1c1914551b1812591b1813991d191436251005302b1508332c14075b2b15099228180f6827160c6926150c5b2311086435190b64371a0b853b1e0e883b1e0e984324119a4424119843231039200c034d15120f4e25211a4a1e1b154a17151148161310672f190d22160c065531190c772b170c8c2b180d6928150b5c391b0d57391a0d543b1c0e9e2b160d9a2a170d6b28241e762b261fa42b251f7f2c2720812e2a237f312d256e2f2b246c332f285b36332b5e3e3a3263403d34773a352d9027241ff9f9f9f7ffffffffb4a09e9b433734306667685d6179786b647f7c71668482766788887b5e898879618c8b7c689b9788736d6a5eb6bbb8b5fffffffffaf8f7f7703f3e3a7286847977a9ab9a709a9c8d7096968b669391876d8a887e688381766d80807572797771704a453e583b3a365c3936326635322d67666058462b2825441c1a16391b18145e1c1917571b18155e1b1816651c1916611b1916511b181564191714661d1917601e1a185c1f1b195c211e1b6626221e6827231f5724201c6026221e7a29241f62655f57737572676f504d49925c5854625f5a526f8b8c7d698685786d8e8c806c9292866c959589649a998b6ba0a0936e98988a7877746969605c57fffffffffeffffff8135322d698c8c8164959487639090835b87867b608785785f807f70658181746468695f5c47443daeb3b1b0fffffffff4f5f5ef882f2d276936332c6d3a372f6435332b652f2d26662a28226f2927217024221e7625231f6f23211d69211f1c891e1b18631817146c1e1c19691c1a176b1a18156c1918156d1817146016141165161512681514115e13120f6113120f6a13110f8d14120f6b0d0c0b3f0e0d0b5111100e501716124f1d1c1759312f294e0f0e0d4e0e0d0b440f0e0c5325231e5a2826206027251f5c201f1b551c1b17511b19166a1716136312110e8113120f511b1a16511d1b165e1e1c17561f1d195321201b4a24221c5125231d5326251e5328261f5226251f9c25221e4823221c5b2726205f2827216026251f6626241e6423211d60211f1a5e221f1a7323201c5c211f1a5b1f1d185f201e1962211e1aba1816137914120f7a14120f9b191613521f1c1864211f1963211f1a541f1d1861201e1967201e195f1f1d1965211f1a65201e19581e1c185e1e1d185e1f1d195d1e1c18541d1b17541d1b16561d1b175e1f1d19611f1d18692f180b83271b127e2e1d13653417096a3316098b3d1d0d89411e0d80431f0d8346200e824a220f734a220e69441e0c583718094e361808693d1c0a7c401e0b743e1e0b6b3e1e0a693f1e0a8745230f753f1d0c9544210f86421f0e6b411c0c2d37150643331d115a2d281f542c2820622c271f9129231d4428241d592c2820552b271f552a251d5426221b53241f194d211d17561f1b15501d19134f1b1712541b17129b1e19145822110938271309392b1307502b14096a2b150b7a2c160c802b160c462511086f351a0b6b371b0b70371b0d64371b0c743b1c0d7d41220e8b42221063291005fffbf6e1c7c1c0bb4f201c17451714104816130f842f1b0f1e170c0650351a0d652b170b6d28160b6426140c4a36190c4333170b4f391b0d9b29150c8f2a160d742b2620722b26209328231e752a27217d2f2b2577302d2768312d276736322d553a38305e45433b6647443a723632297b363128521e1b16911d1a18883734305b51504866757568657676696479776c677e7b6e667f7e736684847765858578688d8b7e718883748836312a692a26228139352f9237342d7383857a71999a8c6d8f8f826d8e8d836786867d6a7e7f766a7b7a6f6575746a676e6e62634341385a3a3936633a37346836332d55423e37521f1b186f26221d581f1c185f1d1b17681d1b17661b1916541a18154e1a17154f1b1916711e1c184b1a1714501b19164b211e1a472a25203c23201c4325221e4f27231e64292520712f2a255328241e574a4640694c4b468353504e645957507183857c6c8180766c84847a6c8c8a7c6c8e8c7f6b9493876b9595886d9fa092737a776c8336342e8e302c286e33302b973b383269888a7e6187897d6486867b577d7e72617d7f725e7b796c5d7775685d7170624e5a584e822a282594201d1b5d2827228f3a38326838362e723937305e38373064323029682c2a24752b292470272520762624207325231e68201f1b7d1c1a17591716136b1d1c186b1b19166a1918156b181714701715135c1514116b141311651413106012110e6412100e60110f0d8412100e640d0c0b3e0d0c0a51110f0d521817135d302f2bffffffffdbd3cba360141210651412105923231e5c2a2922682927216124221d5a1e1c18521c1a176317151284151310791512104f1c1b16521e1c185a1f1d195722201b5123211b4f24231d5026241d5528271f5028261e502a28209425221c4f27251e5f2a2821632b2923632826206927251f6125221d5721201b5e22201b6923211c5921201b5c211e195d211e1961211f1bc91917146b13110e7f15130fa0191713481c191563221f1a6b22201b531f1d176a211f1a7123201b5c201e1964201e1a63201e19521e1c175c1f1d1962201e1a621f1e195b1f1d18551d1c17551e1c18541e1c18561d1c175f33180a6d2d1a0f632a191039170c066738180980401e0e7f421f0d72441f0d8e48210f8c47200e6a47200d67461f0c41331607433617084a361708733b1b0a6e3d1d0a873f1f0c733e1d0b8144220f6b3f1d0c8a45220e8644210f7f49230e3939160742331d125b2f29205b312b225e2e29208e2a241e482c281e582e2920542c2820532b261e522a261e5224211a52221e18521f1c16561e1a14511b1812521a1712901c171340241006352812082e281006492a14086d2f170a6f30180b8b371c0e43281207573217096535190b5e361a0b67391d0c773e1f0e97432411a74626127b2d1307fffffffff8ffffff4c201c16441815103914110e652e190d2b180e084e371b0d6f29160c6c26140b5722120c4f371a0d58361a0d5d381b0e9828150c8628150c6b2a251f712b26209d2a2621762c28226c2f2c2565332f285e322f295e3a362f53403d345a49463e5b4c4a4074342f27723430274d1e1b17843936326f49454152514e475f6c6b60686e6c6263727065657774686174746a637b7b6f647c7c71648886785f8784777e59544a862c2823a535302b854d4a40618385796f9091856888877c6b8684786c807f756779786e6672716867737166606a6a5f5c4240387b474540613b3733575b58514d201d1a5328242083231f1a8623201b74231f1a89221e1a922a26228f221e1a7f211d1970201c196f302a24712a26206f25211b7225211c7a2a2621513c352d7038322a4b3e372f782c2823331f1c17582b27214626231d56645f577e4945435249453e6577776f707a79706b7d7d7368817e7465807f75688b8a7e688b8c816892928663918e818147453eaf302c277a33312b796d6b605d7f83765e7d7f735f7c7b705775756a5c7273695c7371655d727063576c6a5e475d5b506b413e39b72b29265224211d7b3a37307639372f634341395c46453c5b37352f5f2e2c276d2d2c276c282622712725216f25231f66201f1c8a1d1b1760171613621b1a176018171468181613691715126c1614115c13110f6613120f6712110f5f110f0d62110f0d59100e0c7d110f0c620d0b0a370c0b09410f0e0d4c171613d2d1d1d0fffffffffff6eec75c1816145c0e0d0b5620201b64302e26642a28216726241e551d1c18501b1a16611716136613110e881614124e1e1c1758201e195622201b5423211b4e22211c4d25231c5327251f56292820552a28205023211b8a1715124d1e1d186126241e662b2a23652b2922692827206626241e5e23211d60221f1b6723211b5c22201b5b211f1a62211f1a5d1f1e1ace1a18156c14120f7615120fa81a1814441c191560201e196922201b541f1d187123211c6e24211b64211f196922201c6922201c4f1e1d195a201e1a58201d1960201f1a60201f1a5d1f1e195d1e1c195e201e1a5c1e1c18482f15096c2a1a1019190d06692f1a0e55351c0e763e1c0c6f3f1b0c8a441f0f954a23108549210e804a220f864b220f4b3617084e34170842351608753c1c0a7b3d1d0c543718096b3a1a0a8342200f8742200e7d43200d7d43200e5d421e0b3f3917084a3620135e312c2256342e23592b261f8d1d19144a28241c5b2e2a21532d2921552d2820552a271f4d27231b4d231f18511f1c16551e1a14531c18124b191611891a1611572711061f210f0631281106402712086a32180b7f371c0d993d21103027100665361a0b64371b0b62381b0c68391b0c6d3d1e0d99442411c14a2a155b2f1206ffffffeaffffffff47201c163c1815113b14100d5a2e190d1d180d0748371b0d702a160c4f2311094c23120b543a1b0e51371a0e68391c0f9129170d7b29170d692a27216d2c29238c2b2722672e2b266332302a6336342d5936342e5a3f3b33534440385548463c574f4d446a403d346f2f2c2548221f1a80383532794f4d4a4d545147596360576265635a6368665e666e6c63646f6e646576766c6277766b6479796f5e7c7c725f81817585302c2796443f39607b7d71627f82756b85877c637e7e72687e7b6f66767469606e6d635e6969606266665e5e5f5f575c3e3b35593935314a5b564e46211e195b26211e591e1a1685211d198b3d38316d433e377146413b79403c3695413c35823a3731703d3932984e463e77413c358345403a6e4e48406e5751476358534a695c574d67615950874b453e712e29225129251f652e2a264939342d58524d46514440385f6d6a62687371686875756d68797970657c7b716983847a65818379678182795e7f81775d77786ea7383330793f3d3663817e72627d7f755d7879705e757367566f6d625568685e5564645a59636259525f5f5547615d526a45413c902c2b274d25221d763c38317437342d544949435a43423d593b3a345d35342e6932312c632b2a256d2826226b2624216722201d821d1b1859161512661b1a176218171468171613661514126b1413105a12110f6112110e6111100d590f0e0c600f0e0c5c0f0e0b720f0d0b630c0b094a0a09082f0c0b0a3f141310ffffffffffffffffffebe5bb7b1c1a17600c0b09521d1c175e2e2d256e2c29236b282721581e1d194c1a19156418171364110f0d88161411451c1a1653211e1a54221f1b5224221d4d23221c4f27251e5027251e512a2820542c2921531514108813110f491615115b191813622a29226a2b29226f2a28226726241f6323211d6622201c6722201b57211f1a54201e196122201b60201e19c01a18157f15120f80161411a51c18154f1e1b1666211f1a6522201b541f1e196722201c6b23211c60221f1a6a23201c6e22201c521f1d1958201e19551f1c1863211f1b5d211f1a6321201b64211f1b5d1f1d1966211f1b4d37190956331b0e121d0d053b251208402e15087d3c21135f3a1f0e8246200f8949220f7e471f0e884b220f814b220e67391b0b703a1b0a703a1a0a6c3a1a0a723b1c0b5d391a0a6739190a703e1c0d8547230e7a47230e994a26108048220e3c3917084a372013663631265c2d281f561e1a158c1e1914491f1b155b2b261d502e2921552c2820512c281f4e28231b5524201a4d201d164c1d19144f1b17124c1a16117d1a15114725100631271208412a1307552d160a7a381d0d883c200f97402311563016095e35190b5d36190b5537190a69381b0d8b422311a64626148e4525124c321306ffffffdfffffffff5718151157120f0d3c100d0c5f2e190d13160b063331180a5427140b4b2411094b23120a5b3d1e10693d1f11673a1c107e2c180d7c2b180d682b2823692f2c258f2e2a2468332e285533312a583a3730583c393258413e355546433a5d4e4b41584e4c43504c4941575552494c4440378d43403c6d4f4b494a5553485d5e5b526964615b6562625a6a66665d66676860626c6c62607170666674756a5e737569608080746367625a7778736a617e7e7161787a6e697e7e70677b7a6d6877756a68727066666d6c625e65665d565e5d535c61605768423f374649443e4826211e672a25216425211d8c27231e9b37322c7f58524a774e494288524e47814c4640864f4a438a4f4a43aa58534c98655e54505e5a514c69655b516c645b47776e64375b322e4f62433f54674a4270625a51693a352d622f2a255f2c2924582d29245658524a64625c52636b69606e716f686a7171696e73746c6973746c6575766d6176776e6b7e7f765e777a6f58797a6e8f6c665f5a77766a5f78786c5b727269617474695b6a6a5f5967675d5d66655b545d5e554e59594f515c5a504f605e526442413c9c31302d472d2b26515552495a55514b564949435a44443f573c3c38593736325f3535305a2f2d296e2c2b27662726216423221e871e1b18641716136b1a191665171613631514116b1513116913120f5f11100e6b12100e610f0e0c570e0d0b590e0c0a5d0e0c0a6b0e0c0a590b0a09420908084c0b0a094d0e0c0bffffffffffffffffffede2b57711100e610c0a09491b1b17582d2c246b2c2a246326241e581f1d193e191713631817147915131197191715441e1c1752201e1a5623221d5725241e5025231d5228261f4f292720551413104f110f0d5a0d0c0a4c0c0b0946100f0c511715115a22201a6f2b29226f2b29226726241e5f23211c5f201f1a5f211f1a5c211f1a58201e195a211e19581e1c18c41917147213110e7d1513119f1b191557201d186b22201b6622201b5c201e196923211d7324211d5f221f1a6823211c6e23211c5b201e1a61221f1b62211f1b6722201c6122201c61221f1b64221f1b5e211f1b6722201c363518085e341d0f16210f053e2f14083e31140766411f0e6b3f1f0f6b43241373341b0e6a411b0c6b441e0d724a210e583719095b391a09613a1a09563a1a09693d1d0c6e3b1b0b693c1b0b73401e0d8f4a25107c45220e8448230f7047210d443a1708543822156438312757221e1861201b1563191410761b17115a1c19145128241d512f2b224f2d29204d29251d4f25221b4c211d174d1d1a144e1b1712501a16118f1b17125528120730261309412711076f31190d723a1e0d693b1f0e6c40210e432e13076035180b5534180b5335190a5936190b984525139b4726136841200f44351406ffffffe9ffffffff4a1815125315120f4c13100e6b311c0e12150b0638341a0c4c27140a652b170c4723120a5a3a1c0f5d3b1c0f45381a0d7d2f1a0eaa392113622e2c256a34312b792e2a2554332f295136352e4d38372f4f3c3a335c45423a5344413a5949463d564a483f4a46443b4c4c4a41453a382f8f3b39356d484540474c4a3f525452495c5a564e605c5a53656060586964645c6367665e5c67685f61707066616f7166687a7b706b636259666a635a597171665f706f645e707165657172676a727066616b695f656a685f5d6261584e58564c515a595051605a53533d39336c2f2a2550302b269b2c282383292521835a544c855a544b805650488457524a885a544c7e5651488f5d5650ff848b87825e59513b6b6659457570664d736e6472655c533d60373261644f465b674e4776655e557b68605869312c265f2d2822602c2824582b272351696359704e4b436066635b65696961696c6c656b6d6e66656f70675e6c6e656573756c6273756b6276776e7257524d5068675e596d6f655065665b5765675d5e66655b545b5a51575c5a525356564f4953524848535147485554497442423da23737324733302a494e4c444f4b4942544848415343433d5a40403b593a3a355a3a39345331322c6030302c642b2b2667272622781e1c19531714125d1a181560161512581312106113120f6912110e5b100e0c62100e0c600e0d0b520d0c0a510c0b094c0c0b09460c0a096d0c0a094c090808530b0a094d0e0d0ba3848382ffffffffffe7e0ba6a1a1714650b0a09431513113c23211b4925221d5925231e59201f1b431b1a155b1615126f141210bc201d19451e1c1753211f1a5a24231d5825241e5126251e4f27261fc7bbbbb9fffffffbeef3e3b96c13110f4c0e0c0a540f0e0c5214130f6221201a6a2927216c2b28216e27251f6d24221d62211f1a65221f1a5b201f1a58211f1a5b221f1b57201f1ac119161355100e0c7a141210a61d19165a211e197025221c5d211e1a5b211e196d24211d6d23211c6222201b6923211c7125221d56211f1a6b24221d6923211c6924221d6522201b6122201b6724211c6122201b6623201c323215084d361c0e17241006443015073f321407523d1b0c6e3b1e10853b211455401f0f583f21126c170b063f1609035c2812076236180a50361708643b1b0b6f3b1b0c863d1c0c833e1e0e653d1b0c8e4925108d4a25107544200c7847200d473d1a094c3922155e312c2267221d175614100d5614110d6b1d191480433e33f5f1edca7357544a4f2d29204c2a261e4e28241c4e211e174a1c1914441a16114f1a17113f17130e52281206352512083e2c14075d33190b613d1f0d6e40210e6e3d1f0f3d2e14085134170a443215094e35180a5b381a0ca548261498472513794523113b371607fffffffffaffffff521a17135a1714115516121062301b0e1e150c073b381b0c4a2a160b622c180c4b28150b633d1e105d3e1e0f533c1c0f8c3d2212834124144f2e2c25452d2b254c28242042322e284132312b4c393830473b3932504340384a413e375145423a5648453d4e47453d3e413e365f3d38308c3937336745443e494441384c4a4a434f4e4d454e514f475a5b5a52656162595b5f6057515b5b53536062595366675d495e5d543f50494459625d544b6161585465665a5d67685f5d67675e5a69675e5c66645b5d66655b5d616057535b5a51435c564f3d514c4663312d285f36312cd537322c5c2824207d6059507e5d574f7f5b554d815a544c875a554d7c5b564c79615c52896a645aff949a997e726b5f7c5c554f886a6359836a62587b675f5578645d5372625b517c635d536c5d584f74665d54726960585b292520542a261f5b2c28234a27221d4c726b62796e6a61525c5b525e64645c6566685f5e65685e515c5e575660625a5061635b495d5d5689726f68445a5851495b5c53546061584d5a5a51525d5c534e54534a5055534b525150484a504f473944423a4347443c663d3c3992393632682d2a244245433c4b44443e4141403947403f385440403b533b3c36533b3c354630312c4d2e2f2a4e2c2b274123221e61211e1b3c141310481716144e151411541312105e262117401f1a133b1d19125b2923185a2b251a4a1d1a114c0b0a09410b09087c0c0a095e0b09084b080706590a09084d0d0c0b6d3f3e38fffffff4ffefe7b8520d0c0b54121110611916156b23221d7c1c1917781716144617161236181613541716136814131073171511411e1c17451f1e194d23221c5125231e5626251e4d282720fffffffffffffffffffffff560110f0d70181512600d0b0a5213120f581615116c2826206b2b28216f28261f6824221d5c211f1a5c201e1958201e1954201e1958201e1a4f1f1d19c919171456100d0b6b14120fa81d1a165d201e196123211c6524211b6022201a6924211c7124211d6723211b6924211d7326231d58221f1a6b24221d6823211c6d25231e6a23211c6122201b6823211b6424221c6c25231d3236160751361c0e14240f0533311507383114074d38190b71371d1078351c116f381e126e3d20125541200f4f34190b4e3917085e3618095e3718096238180968391a0b623a1a0b603a190a663d1c0c7b44200e8347220f8747220f7c46200d4b3c19085b3923155a2320197c1d1914701b1713731816117d25201afffffed9ffffffffffffffff502e2b21512b271f5228241c4a231f194b1e1a14401a16113c17140f4817130e472711054728160b462d14075432180a6b3c1e0e6b3f1f0f653a1d0f3a2b12075835180b5036180b66391b0c5b381a0c9d4a2714904926138047251241381708f7fbf8d49675726a4d1b17135018151153161310543b1f0f1c140c085c3c20114827150c5229150b542b170d69412012924d28166b4822128742251486472716a325201ca5231f1ca3221e1ba2231e1bb625201db325211db325211db325211daf24201dae24201da3221e1b96201d1b911f1b19901e1a17a23936325e34322eb31e1a18cd1f1c19cb24201cc5231f1ca7221e1bbd272421c92a2723cd2d2a26b92d2825bc2e2a26b6302b27b62f2b28b6302c29cc322d2acd332f2bd535312ecf34302db12f2b28d1332f2cbb2f2b289d2a2724a92e2b273a4a453e492e2b275a312e2789332f295f2d292389655e5188645e55815b564f7e5f59517f625b527a5a554d755c574e77666055816a655bfd9a9f9e7a6762566a4f49437a6b645a766c6459736a625778655e5373625c5174625a506f5f584f6e60594f6d5f5a5168615b4f602a2721241f1d1849292520502a2621982d2a26bd262321a725221fc7272421c9282522c5292623b2272422bd2b2724b52a2623b02a2624bc2c2826c32d2926c92e2a27c32c2825a8282522bf282522a82623209023201e90221f1d8d211e1d91211e1c6533312fa23a3834b9282522cb2d2a26c62c2926c52926259e23211fae24211fb823211ebd22201eae221f1da71e1b19ad1e1c1aa11a1816a51918169d161413a8151311a112110f980f0e0d6f2e281c542620174b262016522b251937231e1556221e14532d271a4d18150e6f110f0b53110f0b520807075b090807511815104b15131094625f4c642d29234f12100e50141311671614137325231f7323211e6e1e1c19471917144b1512106b1312107f1614115f14120f47191713441e1d1940211f194b25231e582827204e282720fffffffffffffffffffffff163100f0d5a0f0d0b5c0b0a09510c0b0953151410782e2c24722c2a226f2927206a26241e6422201b5f1f1d19551e1d18551f1d1854201e1a4e1f1d18ab17151268120f0d78151310a61c19165b211e186222201a6f24221c5e211f197025231d7426231d6022201b6222211c7126231d6123211c7125231d6b25221c6e26231e6f25221d6624211c5b22201b5d23201b6324211c5030170a54311a0f11230f0533301407323314064738180a5a391a0c5f3a1b0c6e3d1d0e943a23166b4621105736190c39371608613618095c35160964391a0a6b3a1a0b4c38190a5c3b1b0a6c411f0d6b421e0c7b49230e8048220e8648220e4f3c19086e3b231558231f194c0b0a0860110f0c6e221e1ab5766f5dffffffeaffffffffffffffff9b94918d4e2b271e4928241c49221f18491d1a14411a17113717130e8a191410412711053d29160a462f15085833190c6a3d1e0d5b3b1c0d673b1d0e3a2c12075936190b50381a0c683c1d0f603b1c0e7a482611b0502d17734926123d3214076027231e5a221e1a4d1a171355191613511713103e3e1f0d1c170d0844391f10332a150a4727140b5422150e6537221658422315744e26147e4b28156b4d28156927221e772b27237c2c2924812f2a2687332e297c302b2785332e297c302c287f2f2c27772e2b26752e2a26812f2b27712c282669201c19b63736335d34322f5936322e683b3633733c38347a403d397f45413e7946423f824d48437c4e4b46704946427a4f4b47724c49469153504c7a534f4b8358544e7f56524d8b57524c875b55508f56514c6548433e7b4c4a457f4c49456e4c4841491b19178436332d76302c26723430298e5f574e8869625889665f567d5f595185645d537e665e5578635d54876b655b8b6d675e796d685da2727067d78f918c6c6962586f7169607f70695e77716b5e726660546f655d5375675f5574665e5479655e537d665e556c60594f6a544d45532b272039211e1a1a1f1c18794844417e34302d8c3a373572373431833b39359a3e3b38763633308c3c3a37733a38345536333080413d3993443f3c9748443f8e403d398b3d3a366c37332e7134312e7e373431893835328136322f532c2825643e3b36b13d3c376226221f8033312e68322f2c8934302d7b312f2c81312e2b722d2a287c2b292781292725792a28258a2826236e201f1c4e1c1a17711b19176d181715781514125f0f0e0d7a36302260342d205b312b1e5e302b1e2e252016432b26194d2f2a1c542e281b462c26195e362e1f613a3321623b332372473e286d473c28853f36255513110e640f0e0c5e1312107324221e632623208024211d6a1e1b18601918165f1816145f161412721513117d171513671917147d18161359161411341a181437201f194325241effffffffffffffffffffffdab3aca5876c110f0d650c0a094f13120f521514106b292720702928217b2a28217426251f6722201b5f1f1e19551e1d18521e1c1858201e19561f1d18b718161366110f0d82151310a61b18155c201d186222201b6f24211c5b211f196c24221d6f24221d6323201b6623211d7125231d5e23201b6a25231e6c24221d6d25231e6e26231e6a25231e5f23201b6324211c5e22201b3f3115086b2f1c1115220f0639301407242c11054138180a60401c0b60401d0c5f411d0c74482210894f29155e36190c363514075b361809513617095d391a0a5a3a1a0a523b1b0a5c3c1b0a7746220f66431f0d7c49230f9d4f28129149220f723f1b0a84422a1b5c27231c751815116d191613762b2520dfc4b993ffffffeeffffffffffffffffe1ecebea492c28204726221a40211d163a1b1912321814104015110c7313100d472a13062d2a1509372b13073d30160a623d1d0e533b1c0c473a1a0b352d1206613a1b0d6f3d1e0f7d3f20116d3b1d0f874f2b158a4e29148b512d153b2f14075c27231e57221e1a4f1b17145a19161350171411413d200e131a0e07353f1f0e4431190c482e180c4f2217104e3c2113473e21135e502f1e5b4d2d1c73462413732f292569332f296e35312d6e383330693b37336b3a36325d3d3834733f39356f3c3733623a3733663f3b3877423e3b643b38339328232091221e1b5a3838356b403d397a43403c7b4c4944774c48446f4d4a45744c48457e55514d6b55504b65504c497b5a54507356524c8d5e5956785b5753755b5653695a5653725b5653775e5a568058555066504b467955514d8357544f684845424a211f1d4c292520a73d3832b1585248866a6257856760568967605781655d5485645e557865605472615b5181655f578166615a896d696077726a5ff29ca29f846b665d70756e6266605a51635d585075696357716761577568615678686055836861567d675f5478635b5274625c525b2a251f4927221d4128241e7843413e7f5e5a55714c4946684844426d4c4a46754f4c4a784e4c498152504b694d4c47594b4a457252504c6d55524f765b56536e56514e6e4a4944604845406746433f69494642714745416f44413d633e3b395b3e3b365d1616147829252387413f3b63413f3b733f3c38613a38356b383734653835336533312f642e2d2b7e3936338032302c642826235b24221f69201e1c561d1b19751a181648100f0e693b3627664139295f3b342463393323422b261b58352f2055322c1e63393221633b3322663d34236f3e35245d322c1d8a3f382665372f1f72352d1f53110f0c5b0e0d0b611312106b24221e6c23201d7022201d681f1d19611d1b18631b1917731716147416131184171513541c1916591a18165d1d1a173f1b181569191714791a1915fffffffffffffffffffffed2aab6ab8a6a100f0e670c0a094612110e4d1413106726241e782c2a24762a28216925221d5d211e1a621f1d18521d1b17481c1b16541f1d1959201e18b718151253100e0c7e161411a81c19164f1f1c185d221f1a6824211c57201f196a24221d7125221d5d221f1b6823211c7025231d5f23211b6924221d6823211c6d25231e6c26231d6825221d6724211c6224221c6023201b3a3215084a381a0c13230f05362f1306292d1206493b1a0c60411d0c653f1c0c69441e0e824d26128c5129154134180b3d361507543516085c38190a5f39190a4e381809643f1d0c633e1c0b7c48230f7347220e914c2511b2532b148f46220f6f411d0a7240291b6129261e7d1714107114110e6d1b1713e1b6a987ffffffdbffffffffffffffffecebeaea28201d153a1c18135d1b18136513100e4c120f0d27110e0b6915110f4b2b14071e2a14082728110639311609533c1d0d47391a0b4438190a412b1309703f1f10683d1e0f6d3e1e105d3b1c0e764c2813854f2a147c4f2a13352c13065225211d60201d19461b18143c1815124516131151472610121e0f074349260f4d361e0d40321a0b3022140c4a422211464023155b4b2d1c3b3e22133f4626154b3720127038332e6635302c693834307d3e3835613935317a3f3b367b3c3934673b3734623d39346b3e393661433f39643f3b358d27232098221e1c563a37314b39363164413d39724743407b494642664c4945804f4c487e54504c85585550624e4a46775855507f5955518258544f7257534e835c56546556524f7e5a57527a5955517f5855506c524d4973514d495d484441694b48455024211f3f3c383162322e288a6b645880635e537b625c527f655e5581655f56836761587b6963575f5952488266615a8167625b806a655d7571685ef39da19e76726c627e80796c63625c525b5d574e6e6862576c665f556e665f546b675e537c6a6257846b645877635a50705c554c6b5b54496f302a233d39342c6a44413e754846406c4a4845704845437a4d4a487a4e4c48704e4c488053514e664c49455147443f6a504c4a6e53504c7958555172504c496e4c4a45664845416244403c734945426a4946417047443f513b3833623c38355c191814612623206c3e3a37603d3937743e3b385c393734793d3a385f3633317334332f65312f2c743b38357e343230632927244f26232057211f1d651f1e1c671a1917661312117a423b2d80453d2e88443c2d773e3728622e2a1d6c3831235f332d20623b3223663f36256c3c3422693b33214a242015663b34235d2f271b7b2f291b5a100f0c5a110f0d5f1513117324211d6521201d6c22201d661e1b18671d1a185f1c1a176d191715a71715127f161512541c1a175e1d1b185d1e1c1872221f1c4f1e1c18511f1d18ffffffffffffffe1fffffcd49e9e967956100f0c6b0c0a09300e0d0a4413110e5b22201a712a29236e2927216424221c62201f1962201e194e1e1c16461d1b16501e1c185c201e19cf1a18146613110e7e171411641f1c184a1f1b1762221f1a6d25221d5d211f1a6723211d7525231e6222211c6924221c7426231e6223211c6c25231d6624221d6825221d6724221d6024211c6223211c6224221c6623211c5439190845341a0c071d0c032e2e1206292d12063e36190a5a411d0c65421e0d7047210e8353291298582f173935170a32331306523617095c39190a56391909553b1a0a563b190a5b3d1a0a7d4621107a49220f944e2712b2542b15a1492410573b19095a3e28195728251d7b1613107113110e6929241ed7c0b28fffffffdafffffffffffffffff2eaeae95f1d1915551c18144e1b17135e1916125c1814103d14110e7c1814104e2c1507212512072a2a130646361a0b4b391b0b5f3f1f0d4c3d1d0c332c1107633b1c0e683d1e0f643e1f0f4c3a1a0c704c2612a2552e18a2562f182d38170742211e1a521f1b17591f1b17401b1815411815125f502d1518251208414b260f3a391d0c3b341b0c2925140c534326163b51261136572b133146230f31502610384b26106638342f6835312d74393530813c38346f3935306d3f3b36673b3733613a3632653f3a375a3d383363413d3a69403c3882342f2b95221f1c5c39373250403b376644413d7045423f7649444165494541724e4a477f514e498356534d6d4e4b477556534e7155514d8156524d7d595550865854507455504c7d5a57517056534e7f58545074514e4a6e514f4a6e4945415b45413c4622201d333c3a324c58514693686256685f5a4f433d3a314e524b3f78666055806a63597b6862575e5750487a635e56765e5a52725f5953706c645aec979a9575716a607779706567655f545d5a554d756b63586a675f55716963566c675f5361615a4f5049443b6d5c554a81615a515647413a524f493f333f3a306a413e3a6349463f6c4745425e42413e794b4a46804e4b47694b494579504e4a6e4c4a475b4946416f4c4a46754e4b487a5855506c4f4c48704e4b476d4845425c42403d704744406245423f7545423f463a3733613a37336117161474322f2b6e3f3c385d393734733c3a385a3735326a3a39366334322f7234322f6c31302d6c3a373477353230692a2825512624226023211f67201e1d741e1c1a57141312643f382a674c43317649413073463e2d572e281d48312b1e4c332d20813e37275f3c3423683c342364393121582f2a1d6c3831215c2d271a772d271a3f0c0b083413110f681c1916731f1d1a66211f1c651f1d1a651e1c1a641d1b195e1c1a185f1716137c14120f7e171613531c1a1772201e1c58201d1a6d24211d5d201d1a56201e19fffffffffffffff7ffffffee60110f0d6313110f5c0c0a09860d0c0a6e0d0b0a5b191712441c1a153c1e1b16551f1e195c1f1d18631f1d19531e1c18441c1a15411b19144a201e18bc1917136a110f0d92181512491d1b164c1f1c175e221f1a6a25221d5b211f1b6824221d7525231e6523211c6a24221c7525231e6625231d6c25231e6624221d6b25231e6724211d6225221d6625231d6526221d6a25221d493718085c2e1b1111220f062c2e13063e351708453b1b0b6a44210d6d45200e764a241086572c13905a2f1761421e0e6d3e1b0b5437180852391909543b19094d3a19094c3a190a663f1d0b81472211964e2612a1532a14925229137f47210e5a3f1a095a3c26184825221b6b13100e7014110e6e353029d8c0b590ffffffe7fffffffdffffffffe1ebeae95825201a5d201c16551e1a16621a17136a1c18145818141081191511472e16072b24140a402e15083833170a55391d0e5a3f200e61462310322f14075e3b1c0e814121115e3d1c0e593b1a0d765129137e532b145e4e271122461d084a221e1b3b1f1c19421f1b18441e1a164a1b1815655731171b2a150a2443200d2f3a1c0c2d381b0b30351c0e344d240f2f51250f38562a13374c261047572b143b4f28116837322e51322e2a6c3934308c403a366736332f633b36326737332f6538342f583a3631583c383466403d396e403d39563a37327e211f1b452d2c2846342f2b5f43403c7246423f7a494642764d49456c4c48445548443f8353504b6c4d4a467c5855506e504c4769504d477657534e925e59556b534e4a7154504c7a55514d8554514d5346443e69524f498056524d5b46413c3e22201e324b473e284e483c555850452f3d382e41534d40344841344d4b453b806962586c666054515852497c645f589a635e5c6f56524b68685f54ec939692706a6359706c645a73655e5460575149726861546a655e5367665e535f635a4f4649433a6b605a4e49514a3e755c564d71555048394944383c3e3a30543c39357a3b37336e46443f5642403c5f4644407d4c4a46744d4b4783514e4a5946433f49433f3c7b524e4a744e4a4772524e4b744d4a4673494542503e3c3759403e3a6e43413e7044413e7944413e4835312d4c302e2a4c1413114e32302c6a3c393765393735753c3a376a38363366393734462f2e2a6e32302d672f2e2b753b3834813533305d2826243a23211f622524216923211f6b1e1c1a4c15141265484331554b4330624c43306648402d5c302b1e3a302a1c4c2d281c44312b1f3d3a352c46342e22572f281c48252016642e281c390f0d097c2c261a430c0a084b0f0e0c521412104c191613551c1a17691c1a17551b1917611c1b18571c1b18621917157714120fb9201d19591d1b1769201d1b69201e1b7423201d64211f1b59211f1a8f737270fffffff6ffffffe16212110e6613110f610d0c0a68100f0d6e13110f711b1916791a1815831a1715911b1815611918133c17151133171611411b19143d1a181438191712ad1815127113110e6a161310431b19144d1e1c1756201e196623201b59211e1a6d24221d7925231e6623211c6924221d7125231d6023211c6a26241f6223211d6d24221d6c24221d6424221d6324221d6424221d6525221d4e3717095b341d0f1a231006582c150a3c351708503d1c0c6b44200d6945210d7b4c261089572d14795128145d411d0d4e3c1a09513618094b36160849371608453917094d3b1909563d1a0b78472210a9552c168d52291397552b14774b23105e411c0a65392315801a16127413100e7315120f7029241fe7ccbc9afffffffcffffffffffffffff652c27217227221c5d201b1765221d19661e1915651b171353191512751814104b2f1608202512083530160840381c0c453a1d0b473d1d0c5046230f3c2e140986412112824221117042201064401d0f8d5930169d5c321989592f172258270c4d27221f4625211d4825221e47201d1a481e1b18474e28111b2d170a2d46210e32391b0c393b1e0d37351d0f334e230f3053260e3155280f2148220e385025103049230e6137322c5d332f2a5c322d296035302b6137322c6437332e643a352f663c3631613935305b383530643f3a35583b3833593a38339625221e5032302d693c37326743403a7046423e724a45406949443f6e4b4742684b474175504c466e4f4c4676534f487454504a71534f4871544f497355514a7556514b7656524b7a58534c7b58534c7757534c73514e497454504a61413f393822201d424440393c524e4639514a403a544e43746760555059524650504b4064534f457d69625840504c4275625c538c5d59547c59554f6667605371686157675e574e74645d536e655e536e655f536c655e5267625c505a5f59503a453f356b5c554c665a544c57544e454447433a4a524d433747413a3c38332c6f43413c7c44423d6745423d6e474440724a4641764a4844754d4a44744e4b456f4d4a456e4d48446a4c4743704e4a446d4c4843704c4842704b463f6947433d65403e3964403d385a3c3a35583c3a35643836315b33312c5a1716136a393530623a373366393733683a36325f34322d5f33302c58312e2a60302d295f2e2c285e2f2c275b2b292557282623572523205323201e5b211f1c5b1e1b19591a1915644b46345837342835322e21533b3526502b251b29302a1d4430281d4a342f232e413c342c38343066312b1f55282419692e281d3812100b581f1b133e0c0a084b100e0c4913110f4917151267191714581a17153e1816135b1c1a17631c1a18661917149d171511a81e1b17641f1d1a5f1e1d19621e1b186a221f1c6e211e1a5e211f1b6422201c721e1c18c8ccc29b651312104c0f0e0c550f0d0c7113110f701513117d211e1a78211f1b711e1b1756181513521614125f12100e8115131153100e0c501615106d1b1713ae1715125b110f0d7015130f951916124a1d1c16511f1c1759211e19471d1b176223211c6a24211c6923211d6f24221d7925231e5b22211c6825231e6424221d6c25231e7125231f6523221d6525231e5f24221d52211f1a533b1a0953331c0f16220f06443115084d3316086c3c1f0e7d41200f6843200d5e43210f6a502811604a2410473e1b0b4c361709553617094d351608493818094d3a190a4e3b1a0a533e1a0b64451f0eb0582e1693552a13624f25106c4d240f493f1a0848341e124a1e1a1559120f0c5d14120e562f2923762d2721fffffffbfffffffffdffffff692f29226c28231d5e221e1961211c18631f1a16631e1915481915123014110d3b2e15082c1e1109452f170a4d371d0f57391e10453f1e0d58482410272d16095f381b0d854120118e4b2715724421108d592f17825a2e16825d301731642c0d562a28244425221e4c26231f4e23201d55211f1c654f2b151d30180b404c250f4943210e4541200e3e3a1f103c4722113b4f240f3f5429132947220f2c4b230f3449240e4c302c27402d292552302c2759312d29492c27234f312c284f2d2a253e2f2b27432f2c274834312c4535312d4734302c44322f2a7e23211d50312e2a4133302b4837343153393633543a38344e3a37334a3d3a3752423f395645413b48403d38574845405044403b5148443f574a47425f4b47424b433f395e4945415646423d4a45413b46403d374944423c4e47423e5143403d492b28254e3c38344a5e5a5344645e5745585245766a63587b67625a665a544a625751466a59544a6b635c525d5a5349695c564e5a57524961665f538460584f7e6b665a796660546b645c5163615b4f5e5e574d69605a4e3e443f365159534767615b50675c574f56534e453a585349364c48402b433e365a35322f522928264e37363348373531473936334f3e3c374d3c3b374c3e3c385842403b3b3c3b363d3c393557413e3a513f3b3760433f3c513c3935423a37324335332e4135332e4737332f4733312d4b35322f3b2f2d285a33302b53181614412e2a264e312f2c492d2b29512e2d2b462a2825442d2a28462b28254c2a282442272523492c2a27532a29263c23221e3621201d4d211f1c471f1c1a491a18163e231f19fa726f5aff9fa993ff9faf9bff5e5c4ea15d5641313630225b453e2e68473e2f5c40392b462d292050312b204e2823185f2f291e2f17140e4d1c18114b0b0a08510e0d0c4812100e501715134f18161439181613551a18155d1a18154a1716135416151266110f0d7a161411561d1b1868201e1b5c1e1c196f201e1b631f1d1a64211f1b67211f1b6e24211c6a211f1a83151310610e0c0b6d12100e6a14121084171512671e1b1778211e1a931f1c1964191613761816136b19171454171512471513103912100e61141210b017151268110f0d51110f0d8c171511361513104f1e1c175e211f19411c1a165d211f1a6323201b6323211c7325231e7125231d6223211c6425221d6824231d6925231e6e25241f6423221d6925231e6725241e5e23211c483d1b0857371d0f142511073b331507403215085f341b0e563f1d0b52411e0c4e411e0c5b4a240f674b251156431e0d45351708423515083e3515083c35150840391809473c190a54401b0b6749210f98572c1595572b158f5a2b156650240f413e1a0952321e125f1e1a15621c1915511512106f171512581e1a16d1dbd3a9ffffffe6723c37326a2d28226627221c64231e195b201c1872201c17611e1a164b1a17134b16130f3a3017082e23130a2e2f16093f391c0d313a1a0b47421f0d72452716382a170d652d1c134c3d2012864824137d49241384582d166a5529137a5b2e172c6c2e0e4f2d2a255b2e2b274c292622562623215524211f634f2a151f2f180b394e240f4545200e4a42210e3c371d0e3348200e404d23103b5027142f4824112c47200d4a4925105934302a5b332f2963342f2a5d35312b6836312c6537332d5e38342e5537332d5c3b36325f3d3a34623e3a34513b37316a423e388b2623204e2e2c28613f3b366547433d674a453f694a46415c4a45406a4d49435e4b4741654f4b4569514d466b53504a6b55514b6f56524b7b5b564f725b564f7a5c5750805e5953725c57506c5b564d6256524a6658544d6d5a56506f524e496c3f3a336948433f48514c47445d58524a5e5952626860567b665e556d5a534c8d615d526e5d564d5b4f483f6d645c526e645d535b60584b69655f537d6861587e635c5376645d52675f584c635e574c555a544840443f366f5b564c53585348585d564b5d5e584d2f57514739524c452b474139513735335c37343273413d37694e4a47634b48446b4b484361494742664b474275514d486b4f4d486e524f4976514f496d504d4772504d47784f4c466a4b48426449453e5a44413b5944403a6242403b5e403c37523a3632713f3b3755302d2a571716145e36332f5d3a37325f3b38335d3835315135312d5c34312d522f2d29532e2c28522d2a265b2e2c28542c2925532a27245a272522592523205823211e601f1d1a4c4a4231e978745bff8e8977ff888679ff706f656749402f51463e2dff7d6651ff656253ff616754ff594f41ed554c3d3f312c202d27211869352e214619160f4f0b0908470f0e0d4012110f5c181614521817143f1716134b1b1915481a18153f1917146d1817146911100d7f1715123e191814621f1c1a681f1d1a8823211d5b1d1c1860201d1a69211f1b63211f1a611f1d19821715124911100d6213110f78151311851d1b1783211f1b8023201c8e1e1c1866191714801a1815721917145b1816136c171613691715125d161412ba1715126c12100e6f13110fab1816128e1513106e14120f4c1916122f1715113719171255201d185b211f1a7025231e7825231e5d22211c6524221d5822211c6624221e6b25241e6824231d6c27251f7327251f7027251f593a1b0a60361e111322100637381708473818084b381b0b693e1d0c55411e0b6248230e6d4c240f6046241258431f0e58311508513717093d351507413715084f3c190a523f1b0b453d1a0b664a23108d572b148f592b147a582b138056281248411b0a56341e1375241f1a531c19153c0f0d0b4113110fd02b28235d1e1b165a2c27216a2a2520732f29236427231d6824201b52201c176a211d1860201c174a1d1813661915113d301708192010073332190930361a0b4644200d4a4a230d2d401e0c40291a11483c1d0e35341b0e30381d1061482a1a33492411785a2e17745b2d16467c35105f312d2b66312e2a512a27244e2724214f24211e584e281429341b0c3b4c240f4b44200e43401f0e33371d0d474924122f4d230f444d27143b502811384c240f4447230f502d2a26472c2723472b27234c2c2924482b2823452e2a2452302c2850332e2a56332f2b5736322e5338332f5f393631593a353091272422552d2b283d32302c523b38335c403d38473936314d3f3c364c3e3c3741403c3744403d393f3c3a345346423f5847433f574a46414e45433d5046433e4643403a584c4943554b48415d4d4944604c4943634f4c465c4c49455749464158605a5269534c456b4b47433f312d293c564f474e6b645e79666156725451486c60594f4c4d463e5f5d554a473d393171635b52645f584e776660547c655f577c625b5277615a50685c544a5657504644474136545953463d4641376f625a4f5e5c554a43635d5238514e472f4b473c3a37332f4434302c5f504e454d413d38433735313d3836323e3836323a3a3632483e3b37403c3a365d44413e4d3f3c373a393733493c3a354a3c3a355944423d4f3c3a35553e3a365b3d3a35593a3733543836334e373430673a37335e35322e5b302c2a58161513392d2a265a32302c4c2f2d2a462b2a26442c2a26472c2a27362825233c2623213d24231f3d292824582a27254b23211f30201e1b3f1e1c1a3f1c1a184a1b1a172f2b261b5a574e36655f553e56514732392f291d564f453267423a2bef746b53ff76705eff787b69ff737462ff6f604d523631244b2e292060332d214118150e510b09075d0f0e0d551715125b1c19163c1817144f1b1916501c1b18541a1815461a1815701a1916881413107014120f591c1a16641c1a175e181714591c1a175a1b1a16481b19166a201e1a6f211f1b6a1f1d19781f1d194f12100e7414121076161311801e1b1787201d19781f1c197f1c1a176918161375191714751b1916681a1815731a18167a1a181665181513c41816136812100e81151311a31916135a1815126d1816136213110fab1815138c1613115718161241161410371a1814571f1d1853201f196023221c56211f1b5d23211c5f23221c5b23211c6a26241f6625241e76282620443a19085f381f121e2814094c3919093a3617074836190a6c3f1d0c583f1c0b5c431f0c5c46200d62452210403f1b0b402a11054a35160941361608493918095d3e1b0b54401b0b57421c0c55431d0d8f5b2d15895c2c157a5c2d137955271151431c0a683a23177d342e2665221d1879241f1a58201c1765231e1a702c26205e2e2822672c2721602c27216326211c63231f1a4e221d196f221e196b211d183f1c1713701a16123a331909212914072a371a084943220e4c4d260f4b4c260f4244220f2626180f3f381b0d3d351c0e303f1b0b3d3e1f0f4062351a375d31167a8454393e79422458322e2a5e2e2c274e2826233f25221f32201d1a73552f19232f1a0e465328105344210f5641210f45361d0e394d2510364f240f2a50240f304d250f3e4e26104d45220f6a34302b62312c2968332f2a7835312d5b332e297137332f7635312d6135312e63393531583a37335e3b38346a3c3a36663e3b368d2826236435322f483a37325d43403c6b4745417147423d6b4a4742704644416e4b48447554504b5a4845426d514d4a7153504b8157534e7356524c8058554f5f534e49805d5955755955517a5a56527257534c6d59554f6b55514d664e4b47505f5951555f5850755d574f7c4b4946403c3833485b544c525f5c545749463e67424038695d554c72635b505d595247323b362e645d574d77655e5481665f5778645b5076635a4f5f585047434c453b5e5b54476860594d4a544d4056464038464e4a413a544d452d4f4941604f4d4a4b3a3732554b47404d57524d5c44413c604645406b464542523e3c39684a494566474541694745427f524e4b574845425244413c704845406d48454179514d4a6e45423f724643407043403b623f3c38653f3c395e3c3a36703c393661373431703838335f1918165533302d613836335c3433306c35332e6132302c6a32302d562d2b28682e2d2a5629272564302e2b7a302d2b532624224724211f5522201d5a201f1c5b1f1c1a5e4c45325648402d56453e2d685349376f564d3954372d266b372f26644a40307948402d66453d2c5c47402e684c4230583933255e3c35265d3630224414110c4b0a0907550d0c0b571715135c1d1b185e1c1a18601f1d1b5c1d1c18431b1816531d1b186c1917156a12110f7d1715124a1b1a164b1b1a17571d1b17681c1a17621a18153e161310541a18156f1f1d19731e1b186c1e1b184c1816126114120f7714121088211d19841e1b17771d1b17831c19166a1916137a1917147a1b1816631b18156c1917147219171476191714cb1916146a13110e7c13100eb0191613791a1814931d191679191714961c1a16831c19164015120f6814120fa01815137f151310751a18134b1b18143b1917144b1f1d1954201f1a5822201c5822211c5721201b6225231d423b1908633820111c2713084c39190950391909593a1b0c5f3b1b0b513c1b0a4d3e1b0b52401c0c6c40231546401d0d362b1005473515083f361608453b190a543e1b0b5e441e0d4c421b0b4b441d0d7b5b2e15c46a391d635e2d137353271046401b095f3b24177b342e27772a241f6e211e194e201c177726211c6d2c27226c2d2822522a251f602a251f6d27221d51211e194f221e1951201c18421b18144b1c1814701c1915423b1e0a1e2b1508303f1f0a514d29113e4d270e49572d103344210f21381b0c4c3a1b0c2b451c0b49391f11683b2619337738172557280e63603924367f3d174d2e2a274e2b29242e221f1c351c1a183a191615835a331b21311b0d545129125044210f4e40210f41371d0e394f25103253260f36512611384f2610434d27115042210f63322d29612e2a2666302c296a332f2c64342f296636322d7636332e6b373330693a36335d393632693e3b366c3f3b36613f3a378d2725235c33302d533c3a356944413d754845416f45413e6c48433f6444413d704e4a4575524f4a624a464372514e4b6c514d497a524f4a6f53504c7056524e6257524b785c58526f5b57527e5d5b5772575350715854517858544f7e514e494c5b554d4d5a544c555d584f60524f4552393732463c3934394e4943494e4c49454f4b41655c554c6c5f574e6a5e564c585a5145423b382f73655e53735f59516c5e584e57534c434449433951524c4152544d4259544c423d4c453a36524d453a55504937524d46504645404b32302a584f4a43515b574f4b58534c5a44403b5f44423e6446423f57413e3a64494642764a47456c484543744c49475e47443e50413f3b624643406b4a464276514c476b484540764744407243403d643e3a3872423e3b683d3a367c403c395537333159302d2c5d1a18175934312d6d373633643533306b34312e5f2f2c2a592f2c29562e2b28672e2c29652a282671302e2b702d2a28582422204722201d51201e1c55201f1d671e1c1a564941304c453b284f463c2857453a28534138284029211c4227201a301d1814351e19153d221c1935211b1742241e1949231e184e38302335201d144418140e460a0907590c0b09591917155f1f1c195c1e1c1966201e1c6a22201c571f1d1b4e1c1b18651a18166712110f751816134f1a181547191715531c1a175e1b1a164a191814611b18146f1917146419171346171511541916133515120f6e1a1714861b18148e1e1b176a1a1814691a18147f19171470171512721816136a1916145b1917146d1a1714751a171379191714d01917147d13110f6911100da81917146f191614851a17147e1a1814831c19156b181512951e1c186d1a1814751b18155c191814601615128f181613ad1a1714911c191665191613411815123e1c1b173e1b1a15391b1a153c3a1908613b21111727130838381807413617074e36190a5e3a1b0b5c3d1b0b50401c0b45411b0a5146200e44431e0d3b2a10055239180a44391808493c190b56411c0c68441e0e4b411b0b664b23119f6433199a6734196b62301483572b1243401b0a5b3e251769332e266b312b24692a251f592c27215d2d28227b2e29236e2c2721542a2520692a26214d231e19431f1b1651201c1864221e194e211c17351b17134e1c19154641210c243319093c44210a464b270e374f260d40532a0f2e401d0c22341b0e563a2012394a200d4346200d2c4b210d33793a17275b290d456b361a3987421938282522361e1d193d1b19174423201d4223201d7c57301a22381c0c4d5028104b43210e514322103a2f190d354e2511264f230d3650261041502811374c250f4443210d59302c285a2e2a2565302c286d332f2b5c2e2b2757322c2968322f2b53302d296336322f5137332e593a3531653c37335c3a35329b2825235b33312d513a363355413c386644403c6a44403c6a47433e6142403b5e44423e6e4c4a45514744407554514d60504b477654504b6a544f4a7255514c604e4c476c524d4863534f4a7a585551544a474465504d496a4f4c475d47433f525e5950535b564f525c5851525b565054504a43734c4a462c2d2b294948464351544e4a5a6b635847635c526a59554d556c665e37514b4247605a514b59544c495551487c7c786b686560564e6962584b645f54465c574f4e655d523b4f4b46284a47417e52504c433a3530474b48425057524d4e56524c46544f4a5745413c5a4644405d433f3c483b38345442403d704a47445f484542694b48454f43403a49423e396346433e6b4644407246423e61423e3a7343413c5639373359383532643b393555383431743a37344f34312d562b29285f19181652312e295a3633305632312d6b34312e5c2f2d2a592d2a27492927245c2a2926572a2826612f2d29642c29264c23211e4022201d51201d1b541f1e1c5d1c1a1868474030292d281d4c3f382757433a28523c35263e261f194227201a321d1814331d1813301b1612311b1512321c1612351b16114e302a1e432620154d1a160f2a080706470b0a084c1817155b1d1c19601e1d1a6722201e6c23211f6722201d571f1d1b6e1d1b187f171514b5211f1b3f1b19155d1f1c195f1e1c1847181613421715134b1816134a1715124914120f661614106414120f5b15130f4b15120f67171411751816136818151267171411701714126f1614117318161366171411681816126e171412711916137a191614c71815137513110e7212100da91a171475191613b21e1b18901d1a17821e1a168c1d1916921f1c188c1d1a177f1c1a1657191614721c191691201c19881f1b1841171512501614128a171513b11b181589181613591b1814443a1b094b381e0f19251207333317073433150634311608583a1a0a553b1a0a4c3d1a0a46401a0b43471e0d38431c0c33270f03523a190963401d0c62411d0c6b441f0f7d451f0f5c451e0e7a4f241286653418866734187868351880562a123a421b0a583f251765332e27562e2822642f2a23492a262072322c276a2d2924542a25203c221e196029231e6024201b5c27221c37201c1744221d1a5926211e341e1a165d1f1b184d43220c28381b0a2c3f1d09273e1d0c3e50260e3751250e344e240d1a421e0c35451e0a2b491e0a2c4b200a394823103e7138153f6933134d7037183d90471a3a1c1a174c2624224a282623542a282551272422564d291519371b0c3850260f4245220e3b3d1e0d2e2a160b2f4a240f2049210d244d240e3f4f28113e492610433d1f0d2b22201c2a211d1a2b231f1b2f25211d3828242139282421372725212c2724202f2a25212a2825222c2c29252a2a27232e2c27268c2522205433302d48312d2b242b2724292d292537302e2b2f312e2c3634302d3a363330393836332d34322f2d35332f3139373232393631303d3732313d393437413d393c403c3939413c39353e3c37303c38342e3a3631353a37342d34302c4e5e584f4b57524c5058534d5459554e5459544d534f4b456b454440564a4641404d4a4448524e4753514d464557524c4d5d58514858524b4a59544d364d473e3549453e40524d463e554f473f524d473d524d4738504c46324d4943384c4a4333312e2a2d2a282446514c4446514e474b55504946534e494b55514b373b38343135333130322f2d242d2b28493a39363934322f292e2d2a2f31302d2a302e2a2d34302c2d332f2b373734314137333036332f2d34302e2a302e2a272a2a2623352c2a28272825222f2926232b2825234f2a2926571a1817322523202223201d2623211e332423212a23201f342522202a201e1c3b2321202e1f1d1b271e1c1a2a1d1b19261a1816281a18162017141227181614341715145a443d2c52453e2c5249412f414037274e423a2931241d1735221c172d1b1612301c16128c1a17144e191513671b17133d181310462c261b41231f154a1b170f570806062c070605301311104c1d1b1a4b1e1b1a5f201f1c6923221f5923201d5c211f1c791f1d1b6e161513871b1a173b1c1a1760201d1a3e191714601c1b17641c1a17551816133613110e531513115c13120f4712100d47100e0c6512100d6812100d6213110f4211100d5712110e871614114b12100d6c1614116816141162171512611614127b18151376171512af1513107113110e6e110f0c891614106f181612961d1a177e1a18148e1d1b17981e1c18891f1b18821d1a178e1e1a175b191613721d1a16891e1b179a1f1c186e1b19165b1b18146e1e1b178a1f1c194b1917145c141210413919084a381e0f11221106272e14062c2f13052f2f15084b3a1a0a4a3d1b0a423c1a0a423f190b38441d0c4b441e0e3a2a1004643d1c0c4c3c1a0b66421e0d67441f0e5f451e0e4b441c0d4a461d0d786533167b683518786b37187350260f3b421b09563f251772332e27572c27214128241f3d27221d4629251f5529251f5f28231e5c27231e4925211c3a24201b5027231d4e27231e4b24201b4c26221d5126221d77221e194645220c2b3f1f0d2a401d09113e1c092c4e240d344f250e3e542810255528112e461e0a26471d08324c210a3949220e29662f122c5b290f436d341632863f175a312e2b60302d294f2d2a274d2d2a274c2825226c442b1b1f26190f2844200e342c1a104c3a261b462f221a5a2c2620492b2520452f29227a433c3292564b43b24f473f64302b265e2e2a255a2d2a255e2f2b2661302d2861322e295b312f2a6438342f5d35312d64393530663a363160393631653e3a34942a292654302d2a683b3733633e3b3668403d3861403d3767423f3a6844403b69474440714a4741674946416b4c48416a4c4842644d4a446d514d486f53504b6c52504a654e4c476d54514a66504e496b514e48694d4c46674b4944714f4d484d575149534f4a42574a453d544b473f564f4a434843403b794141403e272421362b27243a2a2724392b2723362a27243e2c28263f2b2825392826223f2a2726432b28263e2b27253e2c2825382927233e2b28253f2b2927412d2927422c2a28431f1d1b342c29244345413b4644403a4a46413b4744413c3e443f395c3c39356346433f5d413f3a6542403c6845423e6b46443f6545433f6948453f6746433e684744406b46423e6b46433e63413f3b6c44413b633f3d38683e3c37653d3a36653a383462383632583534305f34322d4a2928265b1e1c1a6a35322e5e32312c6432312e5e302e2b5f302e295a2c2a26602c29275e2b2825632b2824592524205925231f5a23211f55201e1b521d1c19571d1b19591b191849433c2a4040382644433926484339264640372734211c172e221b1629231e183227231a29211d1632201b1556161310ae1b1814472d281c43282318511a160f50080806500a0908591110103814131137181615391c1c1851211e1c5422201d53221f1d69201e1c60161412831d1b196322201d6422201c5c1f1d1a691f1d1949191714441614116b1816137116141158110f0d4a100f0c3f0f0d0a5b100e0c3f0e0c0a570f0e0b68100e0c67120f0d54110f0d4a110f0d67141210681614115c1412106a1514117a17141265151310a71513116912100d9314110e4614110e79171512871a18147c1a17149e1d1b17921d1a16951e1b17921e1b17891d1a165d1a1814701d19169b221e19881d1a175f1a171557191613871f1c1897201c19711d1a16541b181447391b094b331d0f09241006192c1305222e12053a341709493d1a0b4d411d0b4b441d0b4c481e0c34441c0c54411e0f2c260e0343361609623f1c0d6d421e0e6244200f5346200f4d441c0c40451d0d9a68361aa6703b1da6733d1d9553291239441b0a5a4326185b2e29233625211c532b2620642b2620652a261f5129241e3a221f1a512925206a2d28234027231d4b29241f4c2b2621502b26213e25211d3d24201c68231f1a4243200b24401f0c2d3f1d093c4d260e384e240e3954270f4d4f2915264b25104d411f0e2f471e092c491e0a2f48210d29632e112c59280f3b673013358640155935322f58312f2b4b2d2a27502d2b284a282522883e372f573e352b71443b30b73d362fa336302a612b262041201c184d27231f4527221f55282420311a18162f1b1918301c1a18321e1b1a341f1c1b301e1c1b341f1d1c2e201d1c34221f1e3123201e342421202f2321202c23201e30242321312623213828252439282523312926242a26232230292726302a2826322b29272e2b2928342d2b2a322d2a29312d2b292e2b292833302d2c31312e2d33322e2c32322f2f2c302d2c2f322f2c2f33302e35353131343531313035312e3035312f29312e2d30343130313532313134323032353231353532313133302f3633302f282e2b2b3334303031322f2e33332f2e3232302f2c2e2c2b30312e2c2e322e2c3733302f3d33302f31322f2d2a2e2b2a2b2e2c2b30312f2d3332302f2d312f2c343431303233302f31322f2d36322f2f3133302f333531313234312f333430302f322f2f2c302d2b30322f2e31322e2d3732302f36312e2b32302d2b282b28282d2d2a2a322e2b2b322c2a292f2b2928352c2a29322a27263329272629252323332927263228252432272423322625242d2422212f2322203024212036242121382321203122201e2e201d1c291d1b1b301e1c1b351e1d1c2f1c1a19321d1b1a321c1a19341b1918361a18172b17161533191717311715143317151550473f2c262f2a1d413f36234e443a274740372538251f1a33211b171f16110f2317120f2a1a15122e1a151229191411221814103c342d20422722185119150f58090806630c0a095b1514125b211f1d5e1918162914121037191614341d1c19391e1c1965201f1c871a18168b211f1d5f201d1a5627241b551f1c16481b191247161510501614105213120e5311100c5b100e0c61100e0c6a0f0d0b510d0c09520e0c0a73100e0c510e0d0a3a0c0b09540f0e0b64100e0c68110f0d56100f0c4612100d5e13110f811613116012100eb01513107113110d6d110f0d5113110e7f181612791917137f181613971b1915941c1a16891d1a178c1d1b17961e1b185c1a17147c1b191699211d18841e1b176c1c1a176e1c1816a2211e199f1f1c187c1c1915521b1814433819084b341c0e09220f05242d1306343315064137180a3c37160850441e0c50481f0c5d51260f494b210e42411c0b2e291004503a190b523c190b523e1a0b57431d0d45441d0c3e421a0b4b491f0e72602f15946e3a1b846a35195b4b220e2f471c0951432416682e282168292420582a251f38231f1b5b2b27236e2f2b26532a26214527221d64302a244e2e29234d2a26204328251f572e2a25592e2a254828241f8a27231f4c44210c2843200c32401c09525129104b53281046582a104c5a2d132b4c25103c3f1c0c2f481e093b421e0d3848220e2b643013245a280f33642d1234843e145f36332f5332302d462c2a263b2a26232b16151336191715341916142b1815132e181615321a17163a1c1918341c19182c1d1a17321e1b192c1c191833201d1b30201d1b32211e1c34221f1e33221f1e3d2522203324212030252221322623222923221f35282624352825242b2924222d272424342a28273c2d2a29352c2a292a2c2926332d2b29292a2726322f2c2b31302d2b31302c2a33312e2e35312e2e4235323132332f2e3033303031343131282f2f2c35363432363633322c35312f2b343130343735343c393635353835342936332f323835332934312f333936353339363530393532333a373737393635423c38373239353431393635313936352833343033393734373a37362f3934322a343131353936353b393635353936352a37332f323835322b35313031383434343835352f383431353a3736383936353e3936363238343331383534323835342b34333131363432383835343237333129322f2e3334323136343130353431302e322f2d31312f2c2d302c2a302f2c2b34302d2c2e2f2b29352f2d2c372e2b2b362d2a2a2f2c2928312b2928332b29282e2928262e272724372a2827322825242a252222322623233224232235252322322322212f23211f30221f1d2e1f1d1c34201e1d2d1f1c1b341f1d1c361e1c1b331c1b1a321c1a19321b191832191818783b3326544d45315650463152473e2b54443b29471e19143b27221b3319151258181612371b1613341e18142d1a15112b16120f3d312b1e3d201c134719150e600505045d0b0a09571413125f252422622423204e232220641c1b192e1515133a181614511c1b1861171614505c534254383327541d1512504440315925231b501f1d164e1b19134b1715104e14120e4c100e0a50110f0b310a08075f0d0b095e0e0c0a650e0c0a450d0b09530d0b09560f0d0a380c0b083f0d0b0959100e0b71100f0c58100f0c370e0d0a44100e0ca815120f600f0d0b670f0c0a9115130f7b171512a11b18148318161387191714941c18157a1b1815831c1916931e1b1755191613831d1a17af211f1b8a1e1b18631b1916871d1a18ae231f1c941f1c196d1c1915621c18144637180839321a0d10200f062b2f13062d2e1205363517092f3b19073f451d0b524a220d605126105e522711534e240e28290f034237170a6b3f1d0e68431e0e58421d0c59431d0d3e41190a5b4f2310796633177c6934186a663115514b210d20461b07434324144f27241f4227221e4b2c28223e2924203c28241f592e2a236d312d265a2f2b25462925204d2f2b2665322d285834302b60322e295a332e29582c27247d27232046421f0b2c42200d33451e09444f250f4351250d4956280f54592c1229572a1031411a082d451c0836431c0a3845200d415d331c2c5e2a0f32612b11508944164f33302d442d2925351b1816331b18172b1a1816321b1917311c1917321d1a18361e1b19301e1b1a321f1c1a35201d1b30211d1b30211e1c33221f1d3523201f35252120342522202e22201f322623212f2724233529262435292625372a27252f2926252c292624332b2827322c2826332d2927352d2b2a312e2b29332f2c2b35302d2c30302c2a32302d2c33312e2d32322f2e3533302f31322f2e32302e2d3034312e303532313537343233363433363936342c3532313037343333393634323a3634333936342f393635323a3635343b3736343b3736313b3735323b3735343c3837323b3837353d3a382d3734343a3c3837313c3937333d3a39363f3b39343e3b39343e3b392a3a3736333e3a39323e3a37343e3a39393d3a3a303c3a38323d3937363d3938303c3836323c3836333b3836343b3937343b3837353b38372a343231313a3734313a3736343b3736353c3836363c38362e3734332d38343233393534303733313236333137363332333532313334312f3634313030332f2d31322f2d33312d2c33302e2d35302d2c332e2b2b2f2a2727302d2a28312d2a29352e2b2a332c2928372d2a282b2826263129272634292625312825243227242331262423342624233325232234242221322321202f22201f3521201f33211f1e35201e1d301e1c1b341d1b1a321d1b1a321c1a1a361c1a19351b1918341a1817321b18155a3a322557342f21422f2a1f47252119331c18142f1a16122617120f2816120f46342d21381d1911690b0a0a6d0908075a0c0b0a5f15131259262422612725236427252355262421512523214c1d1b1a581c1a1872524d3df14c513cdc42443152463f32552017125b4d4737502b291f4f25231b511f1d17501b19134d1816114f15130f4f12100c64110f0b3c0a0907480a0907540c0a095c0d0b09450c0a083d0d0b085b0f0d0a5a0f0d0b2f0c0a084a0e0d0a560e0d0a4d0e0c0ab714120f610f0d0b6d0f0c0a9514120f721613108f1916137c181512941a1714811a17137d1a17137b1b1714881d1a1663191713861c1a16aa201d1a801c1916641a1815751d1a17a8211e1a901f1c19891d1a17681d1a174234170743341c0e1c190f07402f1306312c11053339190a49401e0c38461f0a42481f0c504e240e55532710404d230e2f2c110472401d0d623f1b0c5d421c0c473f190a4c411a0b4b431b0b5752240f956c3819926c361a866e371a7c542811244b1e0937462616542f2a253727231e4c2b27226b322d285b322d27592c29233327231f3f2c28226e38332e6436312c6c37332d5135312b6b37322d5d34312c4f2f2a267c2a25214c431f0c314a240e2f411c09404c240e4a54260e4752260e4251260f2c57291042401c0b2f461d0831421b0a2d48200c346d341443663113536d371a4b8640153a24221f2f1c1a18341e1b19311d1a18311e1b192f1f1b1936201c1b31201c1a34211e1c2f211e1c31211f1d3123201d3324201e362522203325222135262422342624213b272423342825233629262533292725352a27252d2a2624342c2927332c29272f2c2926302d2926342e2b29352e2b29352f2c2a31302c2a32302d2c31312e2c32322f2d3533303033333030363532313534322f3b343331333632313537343334373534353836342f37343132393635343a37352d383532303a3633313b37343d3c3836313c3735313c3835303b38362f3c3836333d3936353e3b39343e3b3a353e3c3a353e3c3a323c3a37313e3b38353f3c3b35403d3c35403e3c313d3b39323f3c3b34403d3c303f3b392f3f3a37313f3b393d403c3c2d3f393732403b392e3e3b38313e3b38323f3b38343f3c3937403d3a353e3b39353e3b39303b38353a3d3938343c3937363d3a38333c3937323a3735303a3735343b3836323a36352f39343230393532363835332f36322f33373331303532303334312f3234302e3233302e3533302f34312f2e36312f2d322e2c2a3f302d2c322e2b2a342e2c2b332e2b2b332c2a28302c2927342b2928332a28272d282623302926243328262435282523332724233226242332252322312523213224222035242221342321203523212033201f1e3c201f1d311f1d1b351f1d1c351e1c1c331d1c1a321c1a18341b1918341a18172f181615301715143d1e1b164426221b4f3831214b322c204a3c35253d272117350c0b0834090807330a090860161413652624225b2726245c292825582b29265a2d2a275b2d2b27596e644cf25b5748ff824053ff91766cff7f725c5c4b4534552016115d3832264f322f25502d29215329251c52201e17501c1b154f1917115015130f50110f0c5b100e0b430b0a083c0908064e0b0907490c0a08520c0b094c0d0c0a4d0e0c0a570e0d0b4b0e0c0a3c0c0a08ab13110e5d0e0d0a680e0c0a9a14120e470f0d0b941816136c161411991b18148c1a1714991d1a16761a1815891c1a16571614118a1c1916a41f1c198c1d1a176a1b1815711c1a1694211e1a9c1f1c19821d1a17661c1917423316073e381b0c111c0e062b2b1205302d13053d3e1c0b4f3c1d0d3b461f0a3a441c0a4650240d4c5527113c4b230e64261308653f1c0c76441f0f6f48200e714d230f54441c0c5a471e0d6c542611856d3817956f37197d6b34177a5327124053240b324424145b2f2b255d322d275f312c273d28231f3f2a262267342f2a5c37322d6335312c783c3631703a3531823c373266393530673a36305a37322d4e2b2824712a252045431f0c3e4a26113d47200a414c240e414f240e4452260e3f5227102354270e463e1d0d2b471e0a1f431c072f421f0e4681401b3c612c113c6a32143a813c13371e1c1b39201d1b321f1c1a33201c1a331f1d1a38221f1c34231f1c3422201e3423201d3423201e39242320382522203b2724233a27242339272423372724223729262534292625392a27263a2c2927382c2827352c2927372d292836302b29312e292733302b27362e2b2835312e2a33312d2a33312e2d33312d2b34322f2d3732312f373331303b363332393633323a3633323735323137383534373835343c3a3736393a3736383a3736363a3736373c3837343c3734303b3734323c38343b3e3b36333e3a35333d3b39343e3b39353e3a38363e3c38363f3c3a38403d3b39413e3d37413e3d3a413e3c3b413e3c37413e3e37423f3e3d4441403a43403f38423f3e35413e3d38433f3e31413c38313f3b392f3f3b374046423c32413c3736413e3c33403c3a35403c3a37403f3b38413e3c3a413e3d38413d3d363f3c3c383e3b3b3f413e3c353e3b3a393f3c3b3c413e3d3a3f3c3b373e3a3a363c3938393f3a38313d3633303934322e383431413e3b3532393430373835343336323034353230373433303834322f3a3431303934313037312f2e37312e2d3f312f2e342f2d2c3a302d2d3a302d2d3c2f2c2b362c2a29362d2a29382e2a28312b2725322a2624312826243e2b28253229252337272524332623223425232138252422382422213a242222382321213822212035211f1e3c22201f35201e1d3a201e1d39201e1d3b1e1c1c351c1b1a371c1a19371c1a1831191715351917153418161438171613341715143318151434141312341412113813121139131111492623205e282725552a29275a2c2a285b2d2a28684e4435e6595845ff946766ffba9f8eff939883fffcfb81ffde9e5a5258513f58221c185e231d17664b43353c3531254d2c281e4e27251d4c211f17501e1c154b1b18124e1816104f15130e5d14110d460d0b0848090807460a09074d0c0a095b0d0c0a480d0b09370b0a0866100e0cb8161411720f0e0b600d0c0a9b13110e65100f0c6312100d7714120f5513110e731614118a1a1714781916137f1b19155c161412771a1714b5201c188b1e1a17721a1815601b1815911f1c19901f1c18861d1a1756181614393215072d34190b17130a04292a12064b2d14084d391e0f2b3d1a096a3f211134441c0a62572a11505729123947220f34251208683e1b0c523e190b7c461f0e82512611694c210f5a481e0d695123118e6b36197c6b3517856e36187653281131491e0943412516622f2b253826231f462e2a2557342f295935312a6f37332d5937322c5c37322d783e3a346e3d3834653a36315439352f6338352f4b322e283528241f4424201c5144200d2c42230f3a4820094d5329105251260f5555281052552911385c2d1333451e082c431c082f481e092649200c30793a1642633012596f3d1e4e813d16341f1c1b301e1c1b30201d1b3b211e1d33211f1d30201e1d2c211d1b2d221f1d3324211f35252220352623213426232136262422322724223526252334282523362a2725352b2826332b2826332b28262e2c2825312e2a27332e2b29332f2b29302e2b2839302d2a32302c2a32302e2c2c2e2c292d312d2a3232302e36353130333431303636323137363231333532313135323138363231353734323439363433393635363a3735303a3632333c3835333c3938343d3a38303b3736333d3a373a3e3b39333f3b392e3b39362e3e3936303e3b3834413e3c33413e3d36423f3e36403e3d34403d3c31403d3b3d423f3e33413d3b3543403e34423f3e3642413e32413d3a31413d3a32423e3c33403d3c303f3c3a30413c3a40413f3d32413d3b303e3c3a2d3e3a3731413c3a32403e3c34433f3e34423f3e34413e3d36423f3d323f3c3b353d3b3933403b3936403d3c36413e3c333e3c3a323e3a382f3d3836313d3936333c3938323a3837303936333a3a373531383532313734332b33322f30373230303532303536333134343231363431303732302e33312f2e312f2e2c392f2d2c36302d2c35302e2d322e2c2b362e2c2a302d2a28312b2927332c2929342b292730282625312a27253c292726322826242f2524222c26222031252322332523223324222135242221352321203622201f32201f1d3a201e1d34201e1c35201e1d331f1d1c361e1d1c321d1b19311d1a19321c1a19331b191830191817301917163f19171732181615301615142b151312331614133115131333141312351412124a2826234c2b2a266c685c498e70694dff8b7964ff9e7c65ffa69387ffb8b5a8ff7f615aff66574bbf6d4f458149423377675e48763f33277c31251e90312820734d483952423d2e4628251b4925231a4c2321194d201d164d1c1a144e1916105516130e5d100d0b570c0a093b090806500c0b09460c0b09600d0b099912110e5a0e0c0a670d0c098b13110e390e0c0a4a100e0b5a12100d6712100d681512105812100e5614120e681715124014120f4a171411b21e1b17881d1a17731917155f1917148c1f1c19991f1b188a1d1a175a191713433316072b34180a18120a04362a1408502714094a3d1e0f3f431e0d49471f0d3c491f0c4f4d230f68562a124849220f542d1a0f59371f11663b241762421c0c6d4b210f6f4e220f654c210f7d56271373632e1464642f137e6c35187d4c24102f461d09343d231454332f2951332e295d36312d5336312b6736322c6e39352f5e3b362f5638342e723e3934643a35306037332f41342f2a5137332d23231f1b39201c19441e1a165247230c344327153d49200b535329124d50250e4d54271054552a1231632e122c441c092a471d0928481e0a2d49210d3c7b3a1845653213546d36184f823f17301e1c1b321e1c1b36201d1c36211f1c30201e1d2a201d1b231f1d193123211f33252220312522213526242230262321312624223a27252331272523312a2725312a2725342b29262e2c2825312d29272f2b2826332e2a28332f2b29322f2b29322e2c2a322f2c2a36322f2c2e302d2b292e2b29232d2a253332302f3233302f32343130353532313034312e3334323039353332323633313238353332383533343a36342f3a3633313b37352f393633333d3a38323e3a37323d3a38363e3b392f3e3b3736413d3b2e3e3b3a283b3835233a363135413f3d32413d3c3343403e35423f3d2f403d3a33403e3c343f3c3c33403d3c31423f3e33423e3c33423e3b31423e3c31413d3c303e3b3932413e3c30413d3b32403d3b40413e3d30403d3936423e3c2e3f3c3a263b3835243b383235413f3e2f413c3b33423f3d34423e3c2e3e3b38343f3d3a303c393934403d3b2f403c3c34403c3a333f3c3a33403c3a313e3a38303b3835323d3938303b373631393736413b393731393632353936332d35323024312e2a27302d2a353532322e33302e3334313033322f2d2f302d2b35302e2c2e2d2a2a34302e2c2f2f2c2b352f2c2b322e2a29332e2a29302c2928302a2826332b2826312a2725302827253d2a282632272624342725242d25232124221f1d2922201e342423222f242120342422213322201f30211f1e39201f1e2f1e1c1c34201e1c2f1f1d1c351e1d1b311e1b1a331e1c1a301c1a18311c1a18321b1918311b1918301918173919181634181716331816152c161413241412112c151312341513134a484337537169514e918367e7484336ffa27b68ffab7e73ff8e6464ff7f7363ff584a476b231b16945c5442f252504bbe5a5445817369527a5f5642823a30257f291f187f362f248a393529613834284827241b43221f1746201e164c1d1b14501a18125119161052110f0c4a0b0a094b0a0908520b0a089d110f0d5a0e0c0a610d0b0983110f0d520f0d0b7913100e6011100d50100f0c4f110f0c6914110e5f12110e681513103d110f0d29110e0c71191613891c19166c1917146f1a18158c1e1c18a7201d19711c19165d1a171432311506423b1d0d12130a04252410073227120734401d0b27401a092c421a084249210c6b3e24154647210f633723162b29150a73311f142933160960392114604d25127a4e23106f502311745727137f632f1777663217866b34197445200e40401b09574127196039352f5036312c5535302b412f2b276137332e6f3a37316638342e4c37332d603b36315c37332f4d35312b1f28241f4a2a26232a1e1b17431c1a175b24201d5c49220d2f4b270f3f47200a51542911535428105c572b11555229112550240e3e47200d294c1f0a28481f08494524134c7a3e1941632f133a66311349843e14421f1d1c331f1d1b2c1d1b1a2c1f1c1b31211e1d382321203222201e3022201f352623212d2422202c25221f302623203728262431292624342b2826322b2826382d2a28342d2a2923282423332d2a28352f2c2a312e2b2a36302d2c3e312e2d32312e2b312f2c2a272c29282e302d2b3233302e393431302f312f2d3334322f3233312f2a312f2c2a342f2c3f383533313633323238353332393634353a3734363b38372d3935342536333239403d3c333e3a3938403d3c34403d3c42423f3e33403d3b293a36362d403b3931423e3c3945414130403e3c30403e3b3543403e2c3d3b392b403b3733413c3933403d3d31423f3d34433f3e32413e3b3945414034433f3f2239363536433f3e35433f3e33423e3d364440404445414131423e3c303e3b3b283a373731423d3c32423f3f3743403f2f403d3a3543403d31403d3b2b3d3b382b413a373e43403e34413e3d33413e3c31403d3b35403e3b35413e3e293a37352839353438403c3b323c3938383e3b3a333b38383a3c39383439363427312e2e2e363230313633313a3835342f32302e3233312f363331302a2f2d2a2a302c2937312d2b33302d2c302f2d2b33302d2b332e2c2a382f2c2c322d2a2922272423382d2a2a342b2928362b2927352b2928452b2928312926252d2522222a2422213126232234262423352423222f232120352422203121201f29201e1c2c201d1c3a211f1e35201e1e32201e1d321f1d1c361f1d1c361f1d1d271b19182b1c1a19371e1c1b331c1a19371c1b1a381b1919371a181833181716666a644f7f1f1b1778191511801714107c201b154f6e664d53908868ff676d57ffe6d4a4ffcd978fff6c54518b2a231da640382cea4d494bff555245ff565243ff5f6051ff7b766ee45d574b9e72685086564d3c8428211a84241e18803831268b4742336d3d37294f2924195a2d281d5a221c145e1a16105d15130d660e0c0a5d0e0c0aa912110f5d0e0c0a670e0c0a5c0d0c0958100e0b54100e0b4a100e0b6b13120f6713110e5612100d3d0f0e0b6814120f6114120f721513106b1614105913110e4d171512661816139c1e1b18a41f1c19731b1815491714113531150637391b0b101b0c03312913072e291206233b19092440190836471d0a4951240d33471f0a33411f0e6a32251a3526140b4f32180b2a3416092d30160b383d1d0f8b4c32234f56281270542512575c2a127b67331873663016613e1b0c6a401e0b6642281a5e37322e4d322e285734302a4d35312c6b38332f753c38325938332f42342f2a4f36322d252a26223e28231f3326232055292523492e2a263a2826226e2926215545200c2e532a105f381f11505429104952260d4d552910404d250f264e240e2c421e0b22451d0821431d08264a220c3f763b1841592d144c6933154d874014331f1d1b2b1e1b1a34211e1c261e1b1930211e1d3423211f3023201e3525232032262322342624223826242231282522332a2724322b2825312b282627272522332c2a27382f2c2a332e2a272b2c28262c2c2927342f2c2a392f2c2b37322f2d33312f2d2b2f2c2935322f2c262d292731322f2d3433312f30332f2d3534322f32353332343532313a353432313633313438363332393633313a373527343330333b3835373f3b3b333e3a362b3b37352d3b3736353f3d3a3a3f3c3c37423f3e33413f3e2b3f3c3935423f3c253b373430423d3b3543403f30423d3a3543413e3143403f34413e3e3b42403e31413d3c3443403e3244403d3243403d263a3a3633423f3d3744414133423e3c2b3f3b392c3e3b3a35413f3e3b413e3e364440403242413f2c403e3b3442403d253b373531413d3c34423f3e30423e3b3543413e31423f3f34403e3d3d41403f32423e3c3343403e33423f3d32413f3c2537383433403e3b37413e3e333f3b382a3a36342c383535343b39373c3a3737363b3838323837352c3633313437343225302c2a31363230343532313033302d3533312f3133302f33312f2d3e312f2e322f2c2a32302d2b332f2d2b322f2c2a25272725342e2b29372d2a2a332c29272a2826242d282525342928263c292727362a2727322827252d2624223427252324211f1e31262322342523223124212036242221332321203421201f3f22211f31211f1d32211f1d33201e1d32201e1c251a1a19341f1d1c381e1c1c331d1b1a2a1a19182e1a1918351b1a193c1b191959776f5859786f58901915117e1614109b18141074201a154c6e664f57948d6df06a7054ffc38d7395362e248a2a1e19ee2b281eff59574bff5a564aff5e5c4dff5e5d4bff5f5e4bff5b5b4fff6f6d5dff5b59558b504839874d4736754943359828211b740806056508060464090605660a0705620a0805710c0a0662090705610e0d0bc41b18158e1512107a100e0b570c0b09490d0c094e0f0d0a5812100d6f13110e47110e0c6c151310681513105a1513104c12100d4912100e6d1714107415131065151310761816123b13100e6c1b17147219171441161311372f15072633180a0a1b0b031e261105272b12052b431d0b3c4c220c324b200b4252240c36491f0a3f41211046312115252a13086b321d12293615073531170b42351a0d3c3a1b0c613d2517545a311c9a63422d786d493183723f25793f1d0d37582c173c6f3e225336322e4d34312c5b3935304735302b5737332d603b37324e36312e312a2623442723202f221f1b652e2b264f39342f5b3b38336436332f51302c296c2a26214045200b244f250e35481f0a42572b103c53280e3f51250f3a46210d2147200c2e431e0b1f411c081a451d072f4e230c42683316426232134366341446572a10846155483726221f31211e1c3423211e3323211f3324211f36252221362724232d242220392725222f28252231292624362b2927362c2927332d2927332d2a28262926252e2b2927322f2b29312f2b2a352f2c2a382f2c2a2d2d2c2933302d2c33322d2c35312f2d30312e2b3432302d3233302e3433302e3333302f36363332333431302f322f2e323533302f36333134393534363c3936323b3735363c3a372b37353427373433333d3b39323f3b3a33403c3b323f3c39333e3b3b303f3c3b34423f3d34433f3e32413e3c32423e3c3443403e32423f3e33423f3d3744403f374441402d3d3b3a38403d3c2f413d3b32413f3d3644403f374542403544403e3543403e263b38382e3f3d3b32423f3f32423e3d3642403e39413e3d2d3f3c3c34423f3e34433f3e3644414030413e3c3442403f3042403e34423f3e34423f3e3644413f33413e3e2f3d3a3932413e3c2f413d3b34423f3e3544414031413e3d36423f3d2c3c3a3827373635333d3b3a333d3a39323d3937323a3735343836352f3735343239363433373434333633323235333034353331333431303433312f3633312f3533302f2e2e2c2b372e2c2b2e2e2c2a332f2d2b36312e2c37302e2c332e2b29342d2b29262725252d292726322b2828322b2827342a2826362826252e2625243428262533282524352725253125232134262423302523213424222035232221362422223222212032211f1e34211f1e2f201e1c34201e1e35211f1e311f1d1c361f1e1d2d1d1b1a271a1918321c1b1b331c1b1a331b1a194f514d3d4f615b48515c56447015110e7818130f8b1915105b27241c4d746d515d90886a71443c2f4b1c181399605949ffa7a3a4ffa7a99cff777467ff8c887dff918a7dffb7b6a7ff7d7b6fff898876ff5a5748ff575547ff63606799716854a45c5442671d1912591c1710631c18106f1c1810691c170f661b18106f0a08065f080806c20e0d0b6a0f0d0b78100e0c5a0d0b09450f0d0b6512100d450f0d0a5b110f0d5f14120f5613100d4e12100d45110f0d38110e0c5314120f6a1614113f11100d5614120f681614117116131078181612591614113313110f383317073a3a1c0d0d2711041f2c1406342e15064750250e444f220c4f57290e4654250d3c4f220c414c2511342f1c111f2a13083b3c1a0a2e3a17074631190d323c1b0b2f3e1a0b6c38251b50512d1c3b592a1134602b104d562e1a9467432d4e5d3720406737195038342f4435302a5037322c40322f2a302f2a27302a26234628252234221f1c652b27254d38342f5d3d383359423d396045403a613935304a2e2c274226231f44401f0c283c2211203f1c0a2c4b230d213e1b0927401e0c26421d0a473321174d2d1f1749271d15462b1e144337271d72463b32956a60539c7d6e5fc7998a79614741373a201e1b33201f1d3323201f3225222038272422342623212a22211f3a29262535292624352b2726382d2927322c2927342d2a29352e2b29312e2a27322f2c2834302b28312f2b282d2e2a2842312f2c33302d2b2f312c2a2f302d2a32322f2b32342f2c2e312d2b32322f2d333431303233302f3836333234343130272f2c2b3c3735333637343335383534383b3836333b3837333b3837363e3b3a303d3936343f3c3834403b392f3e3a372f3f3b394142403e33423e3d2f423d3a2e413d3b32423e3b32443e3b2e413d3a32433f3c3343403f32423f3d3845414035413e3d223836343d43414037433f3e3543403f384642403444413f31413e3d3644414030433e3c3443413d35433f3e2f413d3a31423e3c4042413e33423f3e30423d3c2e413e3c30423d3c32423e3c2f413d3a30413f3b33433f3f3343403f3846424135423f3e233936353f42414037423f3e35423f3f3844413f3544413f32413e3e36423f3e303f3c3934403d3a333e3b392f3c3835313c38373b3a3836343a3736313935322d3633312f363331323733302e35312e3234322f343430303334302f3735313035312e2d232b282640312f2e37302e2c35302d2c38302e2c35302d2c332e2b2a352f2c2b312c2927342d2a28332c2927312a2725312a27263829272535292726322825242d2624222e252322322724222f2522203125232134252322332422213624222136232120261e1c1b3e2120203822201f35211f1f38211f1e36211f1e331f1e1d341f1d1d311e1c1b341e1c1a341c1a19311c191854524d3e6570684f6f6e664f454843335b2c271e971d19147413100c595a543f658f85688c655f4bd7554e3dffc6aaaaffac97a8ff73786dff8b8784ffa5a097ff6d6957ff6b6755ff6a6656ff666353ff5a574ae848443a95857a61611c1811611a1710691c18106b1c1810671d1910551b160d641b1710730908065e070605b20d0c0a7c0e0c0a780c0a088c12100e4b100e0c6c13110e6613100e4e11100d420e0d0b55100f0c6114120e6016130f5d14110e330f0e0b4b13110e5e1513114f1512104814110f4a14120f611513116b17141172171512423418073c371b0d0b2c1305182c1405342f16065654290f4e53280d4151260c4355280c304c22093b391d0e2f3b1b0c263015085a3b1d0e304119083737190c40391c0e544221107b3f2b1f2d5c2a113257270e1f51220a44502613dc664e3f307a3812267838124c35302b4a332f2a2d2c29233a2b26234d292622271b1a186e2c28255e3c383369433e3a72423d385d413b375a46403b6047413c5d383430443832275428231e7829231d573d34299a4a3f356b6c522a96493e35945b4f43704b40364e453a2e41563a184e352e245b3e382d745c524689564c40e47a6e60fb8174653b24211e3522211e3623211f38262322352623223526242236282522462a28252f262422332a2724352b2826302b2827352b2926302c28252f2c2826332d29272d2d29262c2c2825312f2b27302f2b2840302d2b2b2e292737322e2c32312d2b35322f2c30332e2b3333302c3633312e38353230353431303635333235353331343633303c3634323136333134383534343a373634393835353b38362e3b3633303c3836333e3a38263935312d3e383530403c3836413d3c36403d3a31413d3b34423f3d30433d3a33423f3c33433e3c3542403d384642403b4643403543403f3643413f34423e3b3b43413e2f413d3b34443f3d37454140314340403643413f3544403d3343403e32433f3c30413d3b273e39352e3f3b3831433f3b3d43403f2c403b383543403f3343403e31423e3c30413f3c31403f3c3542403e3743403f37454241344341403442403f3543403d4545434130403d3b3443403e3543403f30413f3e35413f3e2e403b382f3f3c3a323f3c3a2b3b38352c3b3733313c3834323a37353f3a37352c3733313539363532383432363635323236333033353230373533313a353331353331303733322f36322f2d36312f2d372f2d2c322f2c2b352f2d2b332f2d2c352e2d2b342e2c2a302c2927312c2928312c2927242623212e29262330292624392a272632282523322826253328262530272322322624233126232134252322372623233926242236242222352422213422201e422422212f201f1d35211f1d36211f1e30201e1d361f1d1c321e1c1a341e1d1b321d1b192f1c1a18291a1816596660456d776d51525e5843545b574453352715aa1a1612891914107c1e1a15729085665b382d169082785eff7e7d7fff707970ff6c7668c26e6c52ff807f7bffa09f93ff868275ff737060ff746f7aa67d735b7c46402f5c1b18105f1a1710661c1810641d1810671d1810631c180f641b1810670907065b070605ae0d0c0a7d0e0c0a6e0907069313100e73131210721412105c12100e741412106013110e6614120e48110f0d360f0d0b5b13110e6015130f6614120f4b12100e31100e0c3e14120f6118161273181613531513103712100d3b30160633341a0c0e301506313217063b2f16064a572c0f344e240b3951260b41562a0d4258290d343b1d0d2c351b0d292f16097a2b1d142e3d190834421b094d401e0e38491e093249220f3f5f2e152554250c2355230b2e5d280e676339223e813e15347f3a13272926222e26231f3c24221e3a211e1b672b2826583c37335a403b3750403b36694a433e6945403c6255432854533c1b6649443f593a3732443b3327652f292169352d2546332c234a2d271f56715220c44a4239b3413a323a13100e3d1917164660441a555d4317403328183f201f1d3d211e1d3c201f1d3d22211e41242220432523224427242340282524422825243c2725233e2d2a273a2926243b292725452d2b293d2d2a29432e2b29442f2c2a402f2c2a42312d2a3e312d2b3a2f2c293a312c283a302d294238342f3d332e2939312e2b40322f2e3d33302d3a33302e3e34322f4035332f423633314439353442383433423734333d3633323f3c39373c3936343c383634463c3a393f3c3938423f3b3a45403c3b413f3c3a41413d3a3e413d3b3a403c3a3b423c3a39423d3a454d49423e47423c38433f3c3f4440403d44403e3a43403e4043423f4145423f414543414549454544474343414642413f4441403c4845433e4542413b424140464644434047434242464342474844434245434142464340404642413b44403e3a443f3d3a45403d414d48434149453f3943403c3f4441413d43403f3c43403f3f43413f4044423f414542414648444544484444404642424043414038454240404644423942403e434542424145424140454241474643434244424040423f3d41423f3d3b403b393a3e3a373b3e3a373d413d3944403d38383a36333f3936363c3735333d3734333f3534313f353431413633314537343344363232403431314033302f37322f2d4233312f372f2d2b42312f2e43312e2e3e302e2c47302e2d412e2c2b3f2e2b29412e2b2a3c2d2a283b2b29273d2d29273b2d2a27462d2b27382926233e2927263e2826253c2725243e2625233e262523402624234526242343262423412523233f232221382421204423222136201f1e41201f1e43211f1f3e201e1d48201e1e421f1e1d3e1e1c1b421d1c1b3e1e1c1a3a1e1c187443371e5c54411a4e4a37185d58503f852d271e6a4f4737665c54403e33260c75796f577d94896b838c7f64e1737761bd6c664eff808a79ffcecdcc72836c437f604f37ad7d725890776f55671d1911601c19115d1b1710641d1810641c1810631c170f661a160e5418150e5b08070556070605be0e0d0abd11100d6a080706a6110f0d7b1413117e1513116d141210731513107d171411741614116a1513105113110f2a100e0c32100e0c5413110e6a15131077161411711614114412100d5d1613104514110f3213110e413419073a3b1d0d1031150633351707362d13054150270e3350250b2e4b20093a4f230b31491f0a263b1a0a233b1a0a2332160830391908373f1a092d441c09364a1e082d481d093d4a24113b642e123a5a270e3c5e2a0f345d280d676c3a1e45864118368740143f26221f41211e1b5a2a262432302c2866423d386a413d386744403b6645403c4f5a482553624f295e5549364945403b6647433e4a35322d37201a133115131332191715311d1a19331c1a19345c4419331d1b192d1c1a183f1f1d1b2e1e1b19444f36112d1f1c1a2a1f1c1933211f1d4646341c66845f1b3a342a1d3124212033252320362724223126242236262422372825233529262432292725362c2827342c2927332c2926322b2826312c2927312e2a28302d2927312e2b2833302b282f2e2a273a302d292f302c282f2f2c282b302b282e302c2932312f2c3233302e3233302e3534312f3033302e35363231343633303234312f3f363433303633303639363531393635353b3735353b3836323b3835313a3734323d3937343f3b39303e3937313e3c392e3f3a3738403e3a303f3b382f403b382e403b38273e393531413e3a32413f3c32423f3d3543403f3543403e32423f3c3744403e3343403e32413e3b4746444231423e3b36444140364541403444403e3443403e32423e3d30423e3c30433e3b33423f3d33423f3c32433f3c2a403a374343413f2e413d3930423e3a2e413c392b3f3b3833423f3c3242403e31423f3e35423f3e3443403f3443403e3644413f3242403d34403e3c38403f3c32423e3b33423f3f3844403f34423f3e34423f3c32403d3b323f3c3a31403c3a2f3d3937333d3b38333d3a372e393533413c3a36303935332f3633312c36322f2e35312f323533303335333133353331343431303333302f3533302e3332302e32302e2b3a2f2d2b302e2c2a342f2d2b322f2d2c36302c2b342e2c2a322d2b292e2c2927322c2927332c29282f2a2725302a28262f29262334282624342825242f2824222e2623212724211f2e2623213325242232242422352523223324222231232120372321203322211f33211f1e3e21201f301f1d1c34201e1d351f1d1d341f1d1c341e1c1b364d3b1a4c7b5c163d392c1632121110320f0e0d413c362845553e1672645d4a7d625c486b3b3426542a261a392f230a664843345d615b475d635b467e8d81637a766744b17c755fff919c86ffedf1d59553494773816d3e634d3e1c9b16140d631b180f5f1b170f5f1b170f631c170f611b170f5f1b170e5518150f300605042b050403b40d0c0a7a0d0c0969080706a2100e0c7e1614127c151411701514117f1614116a151310721614117d161411731614114213110e4c14120f5414120f4812100e4b110f0d6a14120f63161410691513106715130f3d110f0d493418074b44220d122d1406303718072b2d14053346210c3e4d220b3d4b200a3f4d220b334b200a2f471f0c243d1c0c22351607393e19082b3d18072c441b082d481e092c471d0952482715426531133c5c2a103a5e2a0e48632d105d6f381a468944193a8740145b2926234e36322d583a3631493b353171423e396c45403c4157462c5d5445315d49443f5d423f3a4e4c402e3c7c581a41593e163d432c0b4047310e585038133c5a3e10415d40104c6344135d49310e5b5c3f1540573c124c61431441654613434b33102e211e1b2a201d1b3724222036242220a17c5c24362623213e342b214a6d4a1254805e1e412926253227252333292625332b2726352d2a27342c2925332c2925302c2725312d2825342e2a27342d2a29332e2b29312e2b283a312e2b342f2c2936322d2a32302e2a2e302c2831332e2a272d2a2736343230373632303234322f3a3733313a3734323637332f3135323037363432323433303438353331393635343a3736353b3835333c3834323c3934303d3835333f3b37353f3b3a33403c3b323f3b3935423d3a3e413e3c32413d3933403f3c2a3c3a3632423e3a273e38353242403e3b4742413342403e3b4643423a45413e3945413f31413d3c2f403e3b3b413f3d34423e3d3243403f3543403f3643413d35423f3c33433f3a2d413d3930423e3a3744403f33423f3e33413e3c32423e3a4443423f2e3f3b393643403e2e3e3c3933423f3b2b413c382d3f3c3a384543403542413f394543423644403e3a46434133423f3d2e403d3b4645434233413e3c32423f3e35423f3d3742413e35413e3b32403d392e3e3a37303f3a37343f3c39343e3b3a333d3a39313c38353f3d3c3a2f383433363a373431373532313734302f3733302a312f2d3937353336363332353532313635322f3b35323134322e2c30302d2c3e302f2d322f2c2b33302d2c322f2c2b352f2d2c352e2c29322d2b27302c2927312c2826342d2927352b2828322a282731292724392a28263728252434282524342625232c2422203127242127221f1d3526242338262423332322213a2523223a2422203523201f32201e1e341f1e1c351f1e1c57614a193c6c4e123528221a361e1c1a96584519321c1a182f1b1917320e0d0c360e0d0c4343331344543b0e4f5e45163e533c114c6b4d16544b350d4e4130103e553f14365b43154d4f3b15444633124a473416524533176063502b75383222a98179605a252116514a37115a251e0e5e1b170e681a160e631c170f681c170f631c170f611a17102f06050439040303b20d0b096e0c0a08730807069d0e0c0a6e151310671715136816141164161412781614127a16141270161512661614113c12100e5c161411801916137c1715124711100d2d110f0c4612100d5c12100e6e151410661614104d371a083d3f200d112811052a3216061b291105113a1808304b210a2e4a200928471d082e4d210a3c52260f324a200d1d35160731411a082b3a1708253f1908334a1f0934491e0a4f4b261439612c123058270e3759260e3e5e280e4666321635793712327e3911523835305236322e65403c37513f3a355d4a403542714f15446651295546413c6046403d604a42343b231d152a1c1918341f1c1a331e1b1936252018321e1b19301f1c1a301e1c1b2e1e1c1b39443115321f1e1b35201f1d30211f1c2a1f1c1a455b4218281f1d1b36242220525e431738322a20a7523a1b332623203226232136272522372624234b3d2c12342b282431292725342a2725312b27242d2b2724322d2926302c2825312c2926312e29272f2e2a27312d2a292e2d2a283c302d2b35302e2a35312f2c2f322e2a2a2f2b27212d29242d302e2b363532302e34302f34363331353633313336322e3135322f383735312d3330302f363231343a36333139363536393835313b3634313d3835323d39362f3b3734343f3a3732403b382d3d3937313e3b3a343d3a3932403c393641403b34413f3c2d413c39283d3935213a36303241403d3343403f2e413d3b34484138339c711734423d3b33413e3d3e42413e293c383832403d3a34423e3d31413d3c36423f3d30413c3935453f3c34433f3c313f3c3836423f3c33433e3b30403c3a31403d3c41423f3e2f403d3a3741413d32423f3c2c3f3b38233b36312139362f3542423f3443403f2f433f3e344340403544403c32423d3b35423f3e434342402c3c393834443f3c32413e3d397d5b16334740342b403a3735423e3b34413c39313c3936333e3a38313e3a372f3a3736303a3837463e3c3a2f383733373a3836313836322c35312f21302c27232f2d28363634323534313131353231343432313333302c2f312d2b35322f2d3d312f2d2e2e2a2935332f2c312e2c2b332f2c2b302d2a272b2c2827332e2a28322d2926312a2725312b27262f2b27252f2825242d272524422a28273027262437282625302624212d24222020201d1a2721201d3425232232222020342422203423212032211f1d2e1f1e1c3c2c2212331e1d1c301d1b1a351f1d1b311d1b1bba3f3118353a2e154661471532191715310d0c0c444233145218160f5816130e51201c1353100e0a362e210a5d474232554c46345d5c5542625f57435d54492d4f5a534145605744796960495f362f216c2d24105c1c180f5c1b170f5d1b170f455f46115e201b0f621c170f631c170f651c170f641a17114907070550040303af0d0b095b0a09076e0807068b0d0b094a0f0e0b5c151311691615126a1815136e181512761614126d1715126a161412481513106e171412821917146a161411571413106314120f811714117e1715125012110e360f0e0b41381a07473f200d1225110625311406192b11050c3d190724461d092b481e0a30461d093c4d210b3950230e3550240f213917062d3d1807233d180729411a072a461c082d4b1f094b472715204e210c2252210b2b51210b3b58250c40622f15377938132f7d361055493b274d61410f3563420b3954401c6a423d3968443d32525e4a294a5c4a2e35473414331e1b1a3c3128192b1d1a192d1d1a19311f1c1a2d2721183927221c3a211f1e3e211f1c2e201d1b38573e18261e1b1a281f1c1b3223201f362421203677551c2f23201e2d23201d3224221f372623226d563b12385b411737a07119334e3d2030272523362b272630292725312b2724342c2927312e2a272b2c27252a292624312e2a272c2c282633302c293a322e2c38312f2b35312d2a30312d2b292f2b29272e2a2930322e2c36353230363431303133302e2c322f2d3134312e35353431333634313237333032363431303431302a34312f333b3836333b3736313a3734313c3735313d39382e3c37352a383534303e3936303d39372b3d383638423e3d3943403e41433f3c30413e3b2f403b39263b36352a3e3a393543403f3543403f33433f3d32423e3b35604a20374f442f5e9b741e3643403c31423d3a3b423f3e2339353434433f3e3744403f31413e3c32433d3a33423e3e32433f3d2b3e3a382d3e3a3731413c3a2c3f3a383743403e3c4542413d42403d2e413d3a31423e3b273a3736283c39393342403f354341403444414030413e3c2c403d3b3443403e3542403f33423f3d30423d3b36413e3d263a373633413e3d3844403f4d795f2a32423d3a364538254d483e2f2c3d393729383534303d39372f3c3836323d3a383b3e3b3b343b3937363a37352f3837332a3532302833302e2e3633333638363436373433313532302d322f2d3033312e363332303233302e3533302d32312e2c312e2b2b282c292735312e2d33302d2c2e2d2b29322e2a29312f2c2a2f2d2a28292826252e2b27262f2a27262c292625392b2927392c2928432b2927312726242f27242327232120292321203525242335252423322422213122211f2e21201e3622222032211f1f36211f1d31201e1c3a4b3b1c305c45163a3c2d12783e2e0f301c1a1a311c1a18331b1a19311716143a4635132d050404540c0a0855110e0a4c110e093c30220a741c181273231f174f463e2e566957305454482c3f574f3b00463f152e4f4836562f291c6a1f1b13414a370e532f240f601b180f5f1a170e611b160e4b48350f35573f0c502a1f094f3629106108070544050504b40c0a09980d0b095e080705900b0a0838080705210f0d0b4312110e5c161412661614127818161473181613691715123e14110f62181613841a1815771714126e1513116014120f7318151293191613671513114613110e633d2c10473b1e0d1129120625311506252c12052d471f0b363b260831471e09364b200a424c210c4347210e2c46220f253616074d3a1a0b283c170636411a0829451b082a4a1e09524728172b4c220d284e200b3364400d3267450d48603513358043143e7e38106c403d38576143125b3e3a354f3d3a345f423e3968433b334b5d4623381e1c1b381e1c1b369168184c6847122d48330f34674710373d2f19423127193d2d261c3c3228193b6346132c1e1b1a424a371930221e1d3422201e3a2421203422211e3e7554192f23211e34252221302421202c24221f746b4f1b422b292635282624362927243a3d3120352c2824392c2927382d2a28382d2a282e292624332d2a2839302d2b3a312d2c39312d2c38322e2d72936d273d34302f36322f2d2b2e2b2a2e302c2b32332f2c437a53183c3733323432322e3134312f3033312e343733323134312f2d35322e31363430463f3d3a3638363435393734383b3837343936343a3d3a38383d3a39373e3b3a2c383533393f3c3b3a413e3d39413d3d3a423f3e6032230b414845433a433f3e38423f3e2b3a37362f3e3a38536f4a1b35423f3d3e464241323f3e3b365b441a30403e3b3450452f3966490e2c403c3933423e3a434844433742403d35423f3e3944413f35403d3b3b44413e3944403f37423f3d2b3b38353c4441403a4441403a44403f3c45424139444140484c49473944413f39423f3f2a3a373632413d3b33423f3d3643403f3e46434232403f3c32413e3c2f403d3a33433f3d323f3d3b2c403c373443403c434846443741403d35413e3c3b725b2a353f3c3a3d44403c384f380e343e3c3a2a3835333e423f3f6274591a383e3c3b3d403d3d383e3b3b4d454341373c39385664481829322f2f3137333132363432363735343c3936353032322f3234322f3032302f3132302e32312e2c2c302d293832302d3b33303035302f2d35302e2c38312d2d352e2b2a3c302d2d392f2d2c332c2b292a282524396c5013392e2b2b382c2a293b2d2a2a372b29284c302f2d424c350d37282625272220203025222132252322372524233b2524233021211f3321211f3021201f3328231c362822182b1e1c1a391f1e1c381f1d1d684a3813341c1b1a381d1b1b351b1a193c1b1a1a46473512311716152b0a0a094a1a18124a0e0c084f2a1f0b562c22124c61491859463a2351634a15693e331e475e4f2f1455461742523c1141543e0f40694d115b1c180f5d1c180f4b4f3a0f621a160e631b170e641b160e5c1a150d6e1c1608621c18116308070554241a0882241c0b37543c0d4845320b5f3b2c0b4206050534100e0c3a0f0e0c26100f0d56151411451412106118151263161512421513105a1815138a1b18157e1917146a1513114f2119088219161193191714681614114413110e5437290e42391d0c162a1205383315062e2c12054a48310b403a23073d4a1f0a434d220b3d4e230b394d240e4455291118321506592f1a0e7142311334401a082c421b092f4c1e0a3d5a3b12274e220c2951230c204b1f0a41583d1043602f153b7a37133e7937105b413d38506141115b403b35473c38323d7956122c211b143352350c893a2d1636211d1b33211e193f4f38112d221d1834211e1a34221f1b442d261c442f281d3524221d26221e1a5837270c3e493719547552153c8f661f3428241f3328231f4f5e451c382b2623332b2622382c2723312826207970521e553e301934312b21322e292333302b262e302b23262b282334322e2839332f2a34322e282c302c2729302b263a6d4d1934312e294248391e6f9a70263334302f2c312e2b2d332f2b3334312e29302d2b37765012395a3d10373a3631353b352f353a3730343c3833373d3934353c3834463f3b35303c3832343f3932334f432f37413d3834433d3526393630303f3c3536443f3a35433e3934423e382b3c383446714f16517f5f265a33230b40423e3e38433f3e35413f3d273d383632413f3b64724d1d2639363533433e3a3643403f35453f3a33413e3a384c360d3344403c38454140313f3e3b36413e3d33423e3b3343403c3444403c3444413f2c3f3d39293b3b373644413f3a45414034433f3b2c3f3a38293d3937323f3c3a3641403c3d423f3d39454241354441402a3e3c382f43403b3443403e2a3d3a392d403c3a324340403543403f33443f3b3542413d33434040384542413141403d4644424032403d3b34423e3a32413e3a3687621633433e379a4b3d26313f3c3938423f3e353f3c3b627c5d1f293935342e393636353c3b39323a3836403e3b3a5b543c143b9c6f1c4a503c18323937312d38342f2835312c333c3631373c3733333b352f3538362f373c373233393530616650243634332d3234302c3236302b31342f2a3535302b3435302c2a2e2b262b2d2c27425040243c876218312c2a272a2926252b2926253329272734292826514e3911372a2827342e2a263c51390f302b2722352a27222a25221f2e28241f33292522342824203126221d3626241f3225231f3924221f3c3f2f0e5e62491731201d1a34201e19331f1d18331e1c1954413214241917143319181551785a1e2d73510f462e230d576144155c352e21583e36256d5441195d4c3f247641392751352e1e714942314651390e741f1b125e1f1a0f4f543d125236260c5818140c3e6147105b1a160e5f1a160e691d170859110f0b61050404630706049a0a090740312308760807069b0d0c0a4f090807650f0e0d460f0d0b2c0f0e0c2e0d0c0b38271c0645161310601816123414120f53181612801b1814831c1814521715114a2e210b4f2a1d078f1a17145b1513103d11100d5336270c3f3c1c0b152a120535331506332e130551402a0b3e3721073e471e0a3b4a1f0a464f230b3f4f240e35401f0e18311305273915074749330e3e44220b344a240a51432d0c4f492816554827153253240d2f4e200a55583c11465d2f16416e33114b6f3b103b6045163b53370c3243341d3c272421351e1c1b33261e1644744f134a3f2c0f301d1b19311d1a19524f3811311f1c19351e1c1b37201e1c32423218423d2e173230271a34221e1c4a32220936513b173223201d3c8c631e3225211f455f461934ab78163541321b25211f1e3125222034292622586d4c193944311637302a24322c2826312b2826362d2a28312d29262d2b29262f2b2a272f2d2a28302e2b2933312c293c443013372f2c2b37322f2d5d9f72243734302e31322f2d3435302d2a322e2c2c32302c4d7c531a3b533711323732303133322f363835333337343324302e2d33353231333a36322f38333132393735354c4133323d3837313c3937373e3b3931403a372d3b39372f3b3a372e3b3837313e3a3952684819323f3a385334240b36413e3d33403d3c37433f3d323f3c3a34423d3a69734f1e2d3e3c38365d482536423f3d35453f3937563f13385245303643403c25393735353f3c3a34433f3b30423d3a33423f3d3744403f3444403e32433f3d3845413e3244403c2e403e3b30403f3b303f3d3b32423f3d33433f3c31413d3b3a413e3d3644413f3443403e3744413f33423f3d3443403d2a3d3a382e3f3d393343403c3543403e32423e3c303f3e3a3743413e33413f3d25383735343e3b3933413e3a30413c3933403d3b36413e3c336c53216f4335214557472b32413c392f3d3b38686b511b2f3b3837313d3a39333e39372f3a3635393a37375c412e0f343b38374156401732383534333935332a33312f2d3532303137333034363331323532303032312e36353231416d531e252c2a29342f2d2c33322f2b30312d2a32302d2b35312e2c33302d2d322f2c2b414e3f2457674c192e2b2a282f2a2a272f2a2827322a2827322b282653513c12392926263629272639513b103327252432272423322624222a23211f2e23211f3024211f342421203223201f301f1f1d36211f1f3d3e2d0d37715119341c1b1a341d1c192f1c1a183c3d311a427a59153c4734123219181835574118311513123a35280c3d5b3f11573a342553443c2c7c53421b4a52401a58524a36584c44326c4b433266523c1161201b125d1f1a1146563f103c523a0d671d180f6f251f138b18140c463a2a0b66241b0a4d34260a5c2b1f0a590605049f0a0907523c2c0d7c0807069e0d0b09640a090774161412523a2a0c661312104e2b200b371f15053d0f0e0d2b110f0d2812110e43161411751a1815821b1916591715134f32250d631610058e191714711614114012100e7841301439391e0729392007334327073c4c2f0c483c2709503a260b3f461d0945491f0a4e4c210b4a4e240c3a48220e1d341406333b1607434d340e3c3f18084349280a34432d08574a2b19394c251330784b103152330a4a4e340f46522e116c713a194b7034104d3e3a35475e3d12391e1b1a351d1b192d1b18172c221c143e6344125d3a291131272118296c4d1438855e143b5c3d0f4b67480f4d392a12603d2d17624a3618484a371640674711582c1e093a8c651a3d543d18427955174658411d44563e1c456d4f1b33654f1e3431291e355d43162d272522616b4a1c4a3a2c173b322d26332c2927372e2b29312e2a262b2b28272d2d2927342f2c2a312f2c2832312d2933302d2b3f38270e30312f2d3251422667976f244289662545a17a2b42a47e2d53987431428a6526636e4c18465d3e13313633303439353334393534313632312b33302e37393733343b36322c393834333d3835344e4435343e3b3939403d3b37403c3a2c3b37362c3b3836333e3b3a353f3c39313e3a365c6c4a1b2f3e3a396e34260d447b602860785e2f4c7f612c51765c2f418967286a78541b4a4b391c33433e3a33403c3b387a571132423e3b3550443037433f3b2b3b3837333e3c3931433e3a3444403d30433f3c3445413f394744403444413f3a46434032433f3c2d3f3c3b31423f3c34433f3e3443403b31433e3b3442403c35413e3c2f423f3d3443413e34423f3d3644413e3844413f30413d3b33433f3c31423f3a36433f3c3644403e32423f3b34423f3d35423f3d323e3b3a2938363435403f3a32413d382d3f3e3932423d3a36433f3a6d694c133b51483837413e3c49543c11646f521b4544341d3e513f1d5d5647253f5e4b2338634d225f6c4f183155482d3a513d16333b3835373b37373438363430363331333734323037343032353131353734323135322f3d6d531f353431302d2f2c2b322e2c2b30312f2c3432302c2d312d2b31322f2e36322f2f434a3d25496c4d1a438061243c856624668e73364c95732f409b7529477351173061481a332826253b503b10332726253327252435282624372725243024222132252321302422203424211f372321203221201d5336290e426e4e1a331e1d1c40312817383027153b4435144c503c153d251c0e42251d0f405c45163a3327102f694d1047563e11464b380f4e4b3b18546047176a48391b57352c184e5e45113661461130573e0b455a43114c3e30105e4d3912482d210c4d2823195916130c5f15120c5d1a160f661d16095404040369050403550605047d1b14084d46331037543d0c5e45330d5c1c1509771716144542300c49413211691a18163821170551100f0d2e0e0d0c3b100f0c4b141310451614126d191714471e1911442a1e085c140e04572a200d4a32260d3c2e220b3a432f0c4936190a1227110536351506312f130557402c0b482e1c0843471e0947471e0947481f094247200c37461f0c263a1707353a17084b442f0f304322094b3c1b0c2c431b09355029122d54250e385d2b0f40431d09374e330e6c5a30175a7c3a1645692f0e341a1817596b49142f1b18172f1c1816311d191633241d14437351145c442f112e1b1918461f1d1b51503912443a290e441d19134116120d41211c16413027194525201c471d18135b2b1e094327231d452a251f3a3e2a0a42886018492e2924366c4d15556547154d6b4c1748734e156f866321747c581e4a382b19362f2a26362e2a29302c29282e2e2926312e2b2634302c28302e2b2635322e292c2d2b284635322f3f3e2b103541372a2f37312c5799691e3434312d3236312d2c332f2c2d35312e3837343146704b11555a3d1436393534393a36342f3632302733312d423d3a38353b3834363d3938343c39383a403c3a314d4335353d3a39373f3b3a323e3b3a2d3d3835323f3c3635413c39303e393536423c385b67461b367b5c1a5b33240b34413d3b30403b39303e3b39343f3c3932403b387c74501d2e3f3b3838423e3c35423e3e38453f3935433f3e3851443032413c37223734324645434135423f3c3644413f364441403b4744413746434136454140384642413344403f2e433d3a3244413b3546413d31423e3a3545403b2d413c3a45454440364442403544403e30453f3b32423f3c33433f3c34433f3a2c3f3b382d403d3a36423f3c35423f3e35423f3d35423f3d3a433f3e353f3c3a213733304744414034413e3b36413e3c34413e3c3944403a49523e1b35413d3c36413d3c35413e3d6441311133403c37333f3b38323d3935343f3a362d3a3735543a280c376d5626384c3916303b36333138363432383534343936312d3732302d3632303538353334373433353633322e573f1b3b3734333533302f1f2a2825493635333232302d3633303033312f2e3933302f444c3e254275541536302d2d35302d2d2d2d2927322e2b27322e2a2847533a12322c292538916a1e404f3a113829282633282626302825223026242331262423332624202e25211f2d23211f3123211f3523212047392b0e507b5a1b5f684f1a6c392b1047271c0850291d084a5440164512100e4e3f2d0b44543f13431f1c174014131050563e10450f0d0b4313110f49644a16401c1a1640151310420e0c0a4b34270e5448330e641e180e621a150e7a403215522d20076518140e6819150e6017130c6e19150f5c2118093603030237050504470605049c0a09074235240b960a08073f090806610b0a087a1e1a15741e1c1a6b1e1c193a39290a38251906561a1815521311106d12100f2e100e0c360f0d0c4613120f2712110e3a31240a51241a077f191714631714113e13120f4f402e0d4d391b0c162b1206302f1305352d120554432d0a42311e0748441d0942431c093a411b0842441e0b3e47210d293c18074437180a4c4b3510363d19082c3f1807413f1b0a385026123d57280f554d240f423b190848583b0f6a552b13455a280d4453240c321a18164a674512351b1816311a1716311b18162e1f1913354b3817713327143e61441240432c0d7b35270e301715123418151433171513301815133f221c142f171412241513115c281c0a2f1c19172e1c1917455c4011403d311e495a3d15375b4014407d58115364471838634413496a4b16606e4e196c533e177c906c2d40453b28362c2928332d2927312e2a292e2c2927312f2d2a31302e2a3f32302d2c312d2a473e2c123235302c3033302e4e99691d2e34302c3136322d3034302c33383332343934335a78521851614213363a3635353835342e3633313f393735343a3733343b3836363a3736333b3837373e3b36384d42332c3c3934323e3c3a36413e3c373f3c3a323d393932403b382e3b3836313d3b377073511e3d403e395138280b35433d3a31403c392e3e3b3932403d382e413b385362431830413c3834433d3e35423e3c36413e393644403f3951443133403c3839413f3d38413e3c34403e3a36423f3d36423f3d3542403e3746423d2e3f3d372e413f3a3243413e364642413444403d32423f3d30433f3b31423f3d3441403b3f43403f3343403b3646403c32463f3b3343413d30403e3a30413f3931433f3a2f403d3832433d3a32433d3e33413f3d35423e3d3844403f35413f3c2e3c3a384543403e34403d3a33403d3a36403d3b36413d39734b3b1e36433e3a2b3c3a362f3f3d39533d2d0f39413e3c323d3938313d3a372e3a3735313c3a37553c2a0b403d3b38314a3614373e3935313a36332f393634303936322d383430333835302f37333033393434353935344660481c35373433373734333532302f30312f2e3d33312f3433312e35322f2f35312e2e434a3d265d6e501b302e2b282d2e2c29302e2d2b352f2d2c352e2b2942503914322d2a27312a2827354a371137292726392a28252f282523342b2624312726232e252322302624212f2522203937301f6f92722c403a2b0d44775719482e220a493b2b0b532d210a3e4a360d3a2a211151443211401e19113c503c162d12110f2f11100e56594212240e0d0b300f0e0d5957421830181715331a1917341716152f0f0e0d824634113f2d200a394b380f464e39105d211b125e17130d631a150e581a150e5b1a160e5a1c17092e0303023204030334040303920a09075136280b720e0d094c0908066f0c0b096b181715681c1b19771e1d1b7d1f1e1b40231806711e1c1a651c1a174719181658141311751211104413100e4911100e302e20095d261b085d171512671715123812110e4a422e0c603a1c0d1b2b130734321506302e1205693e2a0c49301d0747431c0948431c0941431c083d421e0a30431e0b2639170649371a0b514b3511313f1a081f3d1807273c1909374c2410425828104150230d2f421b084c593d10453c1e0c4c54260d503f1a073018161440654411291815132b1816142f1b1715331f1913406549165c463110403229182f1c1a185e271e0f35221f1b35211e1d32211e1c3322201e3f2c251c32221f1d3425222066261a0a322724222e292623687c5d273c332d2231221f1c3a45371b30221e1a3325221e483d3220463c311b3d11100e544b3612577f59175b704e195f77571b55866020282c282631312c2830302c293d332f2c2a2f2c293233302d49402d122e342f2c3636322f728360273136322d363835303838353235383534363a36354e774f164766451136393634363b37354a403d3a2e373631343c3834323c3935353e3b39333e3b38353e3b3836484033323d39362f3b3836323e39362e3d3835253934302a3c373432413b37303e3a364b7952162d3b38354839280a333f3d3a313f3b3834413c38333f3e3a313f3b37645d411838403f3b36403d3c37423f3e3a44403c3844413f394e422f3844403b47464441303e3d3934403e3b31413e393442403e34403e3c3642413c34413f3c31433e3a2f403d3a33423d3a30423d39243c36322d413c3833453f3b32433e3a3e43403e2f3f3c3932413d3b3543413d34423f3c31423d3a3542413d33433d3935433f3a3842413d3743403e394541403643403e37413f3d393f3b3a37413e3b4142403e313d3c39333f3d3a31403d3833433e3b3c4e3c1936403f3a353f3c3a2c3d3836693c2d10313f3a372f3d38352538332f2c3c3734303e3835663a290c393c3937314b37152c383533353b3a36313b37352b373331363a3936333b3632333a36313738383437393735465e491e3537353435373433373633333534322f393532313833322f31322f2e3233302c4e433a29496649183630302c332f2d2b2c2d2a28302d2c2a322e2a2852543c15262925232b2a26244d453515312b282536292726382927252a262422352927253427231e5242300f524b381159291d08572c1f083f3a2b0c3e3f32184b261e0f4e261f1433141210311f1c173c3c3018311e1b19321e1d195b5c48212f1e1d1b321e1d1b5d594211351f1d1c321d1b195b554018331b1918321a1817351a1918361a18165a4833112f1816153e261f124b4a3610473b2c0f4e18140e4f18140d3d0b090646100d095e1e1709330403033004030335040303910a090746392a0b60070605740a08076b0c0a09811a1816671d1c1a781f1e1c751f1e1b402016067a211e1c701f1c1a481a18155e1c1b18781e1b19621614126d12100f342c1f08512b1e0745100f0d2e11100e2811100d5c3b280c4e391b0b1a2b130739341706322e12055948320c3b321e07393b1907413c19084b401b0946421d0a3d45200c2e3717084738190b52503812363d18073a431c09253e1807374623102f51240d3c4c210c403e1a09525b3f107c42241256612e114854240b3c18161444644411421b1816401c19174d211d1a4052360c3e674c144938260d371d1b1a361e1c1b432c210e34211f1c34201e1b2d211d1b30221e1b3f2d261b34242220312723206a2c1d0a372a2726397955137882632a3329262250402c0f332a251f282523214b4b3819332825212e1916134a2f2a233f40301339231f1a695e4317482e281f4e71532542322f2c3f34302c49413c343f35312b3734302c3d35312f4b402d133f3734323c3633317d8b65273e393632443b3735473c3836493f3a39463e3a3852744e16486042113d3c393540423d3a41413d393a3b3834373a383444403e3b40403d3a3e3f3d3a49433f3e4d4f463b44413f3c41423c3940403c3b3c433d3b40413f393e423d3a3f423f3b3f47413d4d73501639403c364135250940413d3c41423f3c41413f3c3e423e3c3f413f3b625139174443403e4c474342484642415145403e43454140426148183c44403b494e4b453f45413d3b42413c3e403e3b4645434142423f3d424543414d4a47454b4946444343423e4246413d434642403e45403d4445433e4146423f3f45433e3d4d4843454a463f3a43403a37423d3a424441404244413f4143423f4144413e3f43413d4343403e4444413f4e494544464642414443403f45413e3d4141403b3d423e3c3c45423d3d413e39405b503543413f39534f3c1b3f413f3d4443413f4e4743425e3f2f0f41443f3b41423e3c40413e3b3d403d3940413e3b873a2a0e3d413d3a37503b1841433f38383d39343b3d3936403c3938403d3b393d3a39363e3b39363c393734453b393758644c204a3d3a39463a38364239363541383634403535313e3a3634473a37333d34312d4b483c265e674a1a423431303d32312f453432314d3431314432312e4a553d15402f2d2c3e2f2c2a414b39153f2e2b29412e2c293d2d2a2844302d283e2b29253a27231d4d5242234525221b6e392b0f33252320413d2e0f4625221d2f1a1816341c19144b2b251c281c1b19322a251d4e4c3a16341e1d1a545a472139664b123724201d59584311311d1b19341c1b1952594114301b18162d191715331a1817341a18175347310f37181716371816155043310f3d37290e3c32240a3f0505043d050404350504044821180842050404400504043d0504043e0504045038290b4405040458060505440a0907860e0d0b671e1c1a671d1b1a79211f1d442217057521201d7f23201f4a1d1b185e1e1c197b1f1d1b841e1c1a581a18163231230949382609250c0b0a48100f0d410e0d0b343423094938190a1d231209383416073e30140559432f0b45311e08553d19084f3b1908543f1b08473f1b09574e240f24321507293e180649503711273c16062e421a083c481f0a574625143d4a210d6249240e3d3617085b583c10584a240e516731114152230a3217151358593f143a1917165e6e511b494f3712381a1917311918176031230e341d1b1a311e1c1a412c210e2e201d1935201d1a311f1e1a2f1d1b183b251e15321e1a182e211e1b552c1c093958411a3126231f5d8661233b6644152f28262235322d25623d2c12342c2a27361f1a162f2e271e342d2b284e4433192e342c1d34322e2a3f664e282715120f342928234036312d2d302e293437322c3334302d2d332e2b53402f133135322d313633314f916520373836323538353237383833373c3836373b37365a704d184c5c3f12433f3b39393d3937343c3633393f3c3a323b3a3739403d3b38403d3a363e3b38343e3d37304b3f31323f3a3734413d392e3b38362e3c39352c3b3a35313e3a35313c3a364947423d4d694a1635433e38383121082d3d38372e3e3935313f3c36323f3b3837413e3c6d4d371537413e3b353f3f3937423f3e3f443f3c36433f39576e551e488c6e264e7e622556a17d2e3ca9802c4c8b6b2558a27a32619874304e97742c629b792e4f99762d53a37d2d6d9979305099772b4da07b2e59a37d2e3d9772265399772d4b9c772d579b762e54a17b305e886928488d6d2956b0872e5e8c6f285292722b4e98762a4ea27c2c44a47e2c5796752e5492702f5097732e56a37e2e5f95742c49644d1c5073591e4b71581e4ea07e2b35403d3946503e1b39433f3e3b423f3e323f3c394245330d2f3f3a37313f3b3836413e3a2a3935342a3a3833883a2a0e2837333136473515343d373430393832323c3833303835342d3934312c36343030373533333a373535373733586149203836363336373733383936353536343237353431353532314838353433353231374e3f23566448183631312e373431313933302f32302d2c312f2e2b42543c13322f2c29342f2d2a544737162d2a28252e2929252c29262534282725412c28253222211b3418151239392f1d352926232f24211c383f2f0e342725223524201c3925221e3523211f621c15093526221d30211f1c375f45154657421c311b1a172a402e127c4e3c162e1d1b19331a171552563e153015141230181715351a18152e1514125743300e32171615341716153d46330d32151413371b18144632250d564c3b132b0c0b095d1e1809340b0a092e0606052c0504042e0504045038290b350505043305050435050504671615145a1b1a187a1f1d1c6c1f1e1b352217056c201e1c7722201e441c1a18611d1b1975211e1b6d1d1b19591b19172d2b1e087f1913085015131182131110270b0a09542f200c553a1b0b2120140c37341607363013054b3d2a0a63321e09503817074d3a18074d3b19084f3f1c0a4248210c1d3715052d3c18085c4b3413323e19072a40190833441b0a4d4123133749200c4645200c393c19076b4a33146345220f585e2e114251230a3216141257593f134b5c42123b463412361c1b19361d1b19351e1c1a5e2d210e38201e1d37201e1c43291f0e32221f1b33201f1c2f211d1b33201d1b3b29221a3023201f4044321475261909311f1d1a564f3c1b51825c1c362925224159461e3f4533173527252239463316464a3717362d2a2837614b2452513a112f332d25404a3a1f2b0d0b08362d2c273933302b2f332e2a2e322e2b2f332e2b29322d2b2f342f2c41493312343635313136343059996c21353833323339353333383530373b3734353b373357714e164e583d123d3a383530393633383e3b39323b383737403b38323e3a36353e3b37313d3935303a3835354a4035323f3a3735403b39313f3a37313e3b3735413d372b3936343d3f3e3a303c393648664715313e3a363b3323082a3c3834303e3b36333d3d39333f3e3b313f3d3a7c3f2f15363f3d3b333f3c3a363f3d373a423d3844765619374d4228333936333335322f343732303337322f3637322d3637343133373331433c3836383a383430353230313935332f332e2b3437322e352e2a273334312f32373330343b3834333a342f333b363030393531313a3632323934313538342f312e2b283136312d33342f2c403a353030353330323835303537363133393630313a36312f373432313632303432302d31342f2d323b383544906e1b5c48381a35413d3a34403e3b35403d384848340f323c3a37353f3b3a33413d3b333f3a37343e3c386c3a290c323c3a3534453214453f3e3a2e3a36332f3b36332e3734312f3a35322e3834313539383336393935333837344a59411e35373433363836342f36332f36363432343634303335332f31312f2e433533314c4038264d614516363331303533302f33332f2d3332302d3432302b42513b13312d2c29322e2b294c463513302d2a28362c2b28302b29252d28272430282724412b2a262f2826232f1f1d19515d471a2e2724223a42310d3552432236292623433d3116342821153523212051282010462b24143722201e52694f1e5a4536163019181651503c133a30250f311e1c1a49503a17331c1a192f19161534191816321b19165943300e371a191737171514663d2e113518171537181615361816153d2e230f463e2f0f651c16082f0f0e0d300e0d0c2f0e0d0c2a0d0c0b4e33250c330d0d0b320d0d0c300d0c0c330d0c0c330d0c0c4e171514661e1d1a3520160665201f1c7722201d4e1c1b186e201e1b8b22201d78201e1b661e1d1a3f261b086d1812067f1b1917691a18154511100e47402b0c47371a0a1524110742351706502d140655402d0b59372109593a190849381807473717074a3e1b093a421d0b1e341505483c1a0a58523712283d18072c3f1907603b1f105b3f21124b54270f44451f0b363b19076e543c1349401f0d4c714a1446896517494d360e41201d1a35201e1c3a1f1d1b35201d1c32201e1c341b19175d281c0b33191714361d1b193f271d0d301f1b172f19161442584013416848123f5b3e133f704e183e7b56176b291b093a34271034241f19597f5b1f5f3d2e144147371e2d201e1b586248193b523f1e392a28254f4b3b1c396b4d1e4840301759815f1e300f0c093e322e2c352f2e2b3236302c3134302d2e322e2b2f332f2c2f34302c2d34302b4746331236383433383935337ea3772a383a363534383431393b373435393633333a35317371521e5b593e12363b3735353c3837363f3b39353d3938323c3836393f3b39353d3a37313c39342f3b393332483f31343f3936343f3a36353e3c372e3a3735313f393539403c39413f3f3a2f3d393551694914323e3b373c342409303e3935303c3934323b35323638353439413e3c64392a123843403e353e3c393a423f3d3e55401a373a301b351f1d1a301d1c18371816142d1a171531161411301918153518161430181613501c191731171613321514122d1715132f13110e361614113813110e32131210331513113516151233171412321614112f1615113116141230141210331312103613110f311816132e13111036181613381816123518161233191814311a1813311b18142e1a1814321b1915311716133213120f331715133524221e7e58431a343f3c3a333f3b393a413e3b3c3e2b0e303c3a34333f3c36313b383333393532353f3a366039280c30393736344a35143f3e3b3a39393935323d3734313b3836313936322d373331313835302f3734303239353258604721363936353739373538393635333533313a373533333432303335322d3332312f50483d275c6248183633302f353432313633302f31312e2d3832302e4c573f1132302e292f2f2d2846453415322f2b29312e2a28352c2a272f292826312b2825362a2725412827252f2625223326231f406e551c3942320f37392e1f62504120382725223a2420195c221b0a2e1e1c1a3a1f1b1442231d0f4455401c342923193520180950533d113c3f2e0c352b200941563e1846523c103d3e2f11542a22135a2b25165b43300e382d230f3a2a220f6b392c12482e24103b271e0d491d180c43211a0d43231b0e63221a0d5033270d4c3d2e0e423f310f300807065a36280b2c0a0908310e0d0b2d0e0c0b330f0e0d370e0d0d370d0d0c360d0c0c3f221706631f1d1b6a201f1c461a191771201f1c8a23211e73211f1c5f1f1c1a362319084e36260a801c1a186d191715411614124646300d4e381a0a152811053a361706472e1305473f2b0b543a230856361607543717075c3a19085d30170a37401d0b26361506333d19083a563811273a1606233d190735411b094c43210e4447210d4688621a4e8159174b593f0e3b1f1d1b341f1d1b34201d1b36201e1b2f1f1c1a2e1e1c1a351e1c1a3314110e390b08063612100d60241a0b33211d1a37262320497e55157e624d2247665020376445113f7a5311514d3412556f4e1a4d815919732e1f095871521d69664b208b674d213f61451730201c1932140f08362c29253228262456825c1e342c2927352b282653664b193215100b38322d2d352f2e2a31312d2c3533302e32322f2d2d322f2a2e302e292b322f2b3032302d4944321333363331343734315eb37e2535373531363a35323439352f303633312c353330717b571d51563d1236393633343c3836323c3632343e3733323b3632333c3932333c3934333d3a34323d373438443d31313b3935373d3a39343d3a38313f39352d3936353e403a3b32393935343d3a384f664815333c3938433223093034322e29383432323a38363737363336403d3c63372810373f3f3b373c3b38363d383659775821425b44154e5f48174d7e5f1a5084641d4e6d53197d52411b6566501f49805f1c4f84631d436a501c4f7a5d1e5e69501e5e6c51204674561c57634a194b7556185773561b52684d197c4b3a176758441b506b4e194a694f163a5540154b664e18545c46195c5c451b47644a1655664c184d745518567a5b1c4f7d5e1d6c785d2269755c25687d62254987661d3f765a1b4d73571b4f4c391257553e17527b5a1d4c70511a387c612f333d3834313c3733564b3610343e3c37323e3b36313c3834343b3933323b3837513c2a0b333a37342e4e37142c373433433e3a3a2d363532363a3836343a3735303734332d3734302e36352f28312f2d405a411b3438373437373534343633323434343137353531353733313535332e2c302e2d374d40245b644918312f2d2c36312f2e34342f2d30312d2a31302c295250391031302e29332f2d2a4f423316302d2927312b2a25312b2928342a2927312b2725322a28252c262423462926272a222220350d0c0a4a3f2f0f332523223a3730234c433211322422203b26231c3d110d06311e1c193526231c65554116594938144b49381253563f1041352609412d2009554734163d4f390c3845320d3c3a2e12836a572a49604512361b1a1634201d1a96312915361918163912110f340c0b09360908062d11100d2f181715331a1916331a181634181715381615144c3a2b0a4932240a454c3b132e0707062e0d0c0b290d0c0b340d0d0c340d0c0c5e1f1607340c0c0b4b1e1c19351918154d1c1b179023211e7922201d671f1d1b411811068d2d230e7d1d1c19701b19174e181613812a1e0fff27211cff29231dff2e2722ff312a244d432d0c814230154c30230b3125150645321507392d140736381909283416072f371909454e340e233a1706223c18072c37190a5079581b4027221e37201d1a3b1f1d1b3b1f1d1b3b1f1e1c391f1e1b4120201d3a1e1c1b311c19183a1d1b19331d1a18371b1817341816153a1c1b1861251c0d5b88611b466d4f194d845c17416f4f113d624612426144135c584115353f2c0c44533a115779571d6930210b4f72521b5f7d5a1d4776521651805a17516a4d1e517a581e5f9b6b1e48604415363f3627332d2a284a3327124935270e3d322d27382f2e2b3331302b3632302d32332f2b2c312d2a2c302c29232e2a24252f2b273534332f314d351030353230b57f7367e65a4a33ffa89380ffb8a18cffb9a28cffbaa58de09a866bd14f3f2b4e694c17363e3832333a363331393533383b3934323c36322a39343136403a3637403934303a353238483f30313c383433403a36303a3836313a37362d3937354a433e3e2f393935373b3c374d634613577157238142321bb2796038ff917f6affaf9a84ffbca590ff7d6a58f6433828df73624d363a373345775617343b39352e3632312f37343135393431372e2a2839302c29363a38343c3b3735373b37354f423e3c3338373231383432313834322e302d2b2e312c293738322e362f2c2a313b37343238343134393731363b3732353a3630333b36303439353330383432323835303335322d2f312c2a3235302c3835302d443c36333039332f3438342f36393631383b3732373c3731333a37302f363330332b2825342d2a263037322f3438363249cb9b3531393634578d6922b958472add7d6b57ffb09d8affbda894ffc7b29eff8e7e6eec403629a252442c30483315303937362d373433483e3b3a2f3736333738383435393733303736302c36322f22322d284660471b2e33323037383634363634332f36333135363432363633313234312d3233302d3942300cde4a3f2d8f4b3f2cffa59480ffae9c8bffa1917fff8b7c6ed2594b31e94a3f2f2b2c292859433318332f2b28302b2825312a2825352d2a27332d29272e292725302826252e2625243f272625332524233d35270d59281e0b32242120352623214062481346966a1a4260461545503c164559420f3945330b4f3b2c0c4430240a53574210492e230b37271d08350e0b065f34290f4836290c3742310d3c5640105647350f47423311585a4414c22c2516391c1c19381c1a19341817153315131239110f0e330b0a093a0b0a09400d0d0b3a1514123b1a18173a1a18163c1a1817361918163c1d1b17512b210f2e191308220c0b09240c0b0a48221806340e0d0c330d0c0b2f0d0c0b301917148222201e7a22201e5e1811056e32250e88241b0aff201d19ff231f1aff25211cff2f2922ff2b251fff322b25ff2f2923da2b241b5347310f9644341dff2f2923ff342d25ff4a3f34ff3e352bff52463aff4f4437a73a2c1a52644615d55d4c33ff685949ff695d4fff625749ff5f5446ff625748ff5f5547ff5d5446ff5b5246ff4b433aff4b433aff65594dff695c4fff6e6357ff6a6053ff695e51ff64594cff5b52447033250e478e661eff837462ff8b7d6aff817362ff786b5bff7e705fff7e6f60ff7a6d5fff796d5fff675a4b7230220d796e5324ff786d5dff857668ff8a7b6aff978675ff958574ff948774ff928571ff958773ff9e8b76ff9e8b77584d3812424b330dffac9781ffa8937fffa7947fffad9b86ff9c8f7bff877b6dff837868ff8f8271ff8b80703e4b330d718c662bff928475ff918172ff9d8978ffa7927effae9882ffab9782ffb7a089e4ba9c7362876327ffc9b096ffc7ac93ffc8af98ffc2ad98ffbea692ffbba490ffb7a28bffb4a0878186663144624311ffbea997ffcbb4a1ffccb4a0ffbfab99ffbba896ffb6a391ffaa9886ee9b8974937c5d2aff92806bffb29a83ffa79681ffae9e89ffb1a28cffbdac96ffb6a690ffafa08dffa69888ffad9e8cffc4b19effcbb9a4ffab9e8dffbca896ffc6b39cffc1af9bffc2ad97ffd1bca4ffcfbaa0ffdbc4aaffddc6abffdfc6aeffe7ccb3ffebd0b8ffe2c8b0ffddc3adffdec6b0ffdfc7b2ffc5b09cffafa092ffac9e8effb9a996ffaea191ffb1a496ffbdae9effc1b4a5ffbda99affc3ac99ffa59382ffccb5a0ffccb8a0ffc8b49dffdec9afffe3cbb1ffe5cab1ffdfc5adffdec5adffd3bda7ffc4b09cff9d8f7eff867b6dffa89985ffc8b49fffb1a18fffc9b5a0ffb39f8fff998979ffc1ac99ffc3ad97ffbaa490ffb6a08aff9e8d7cff877968ff97877264976c249d887350ffad9983ffb39e88ffb8a38dffb5a08bffa99685ffaf9b8affad9987ffa19184527b5b1aff8c8478ff998d7fffa79989ffa89b8bffa69886ffa69888ffa1917fffa59381414d36109880663dff897b6dff9c8f7fffa99989ffaa9a8bffa6998affa39688ff867b6fed655b4d55654a17e5675b4cff7f7568ff7c7469ff81796eff847d72ff837b6fff837669ff877a6bff8f806fe88a7a63374b3611fc766c5cff8e816fff938573ff8d7f70ff8b7f71ff867a6cff7e7265ff7a7163ff756d60ff716a5db561533a556f5417c7514638ff675d53ff6f675aff6c6459ff6b6457ff675f53ff665e50ff6a6356ff686053a26b583653574014ff585041ff4f4639ff574e42ff5a5148ff595147ff554e45ff514940ff3c352fff4b443dff454039ff47433eff4a453dff4c463fff504a42ff4c453bff474138ff484138cc363127432b1f07ac2a2316ff39332cff38322aff373029ff3c352eff332d27ff332d27d62b251b4f2218069d211a11ff231f1aff201c19240c0b08260d0b08220d0a07250c0a07240d0b07260f0d0a23120f0c22110f0c2112100d2615130f2514120f23141210261513112316131022151311231613102717151323171513201613112216151227191613261817132217151325181714261a181422191713251a171326191612231714112115120f2514110e2312100c29110f0b2512100c2514120e27171511221a1612251c1915251e1a16241e1b18231f1c18231e1b17221d1b16271f1c18271e1c17241f1d1927211f1b2424211c2524211d2627231e282725212624221e24201c17241d1a162c1c19142b181511251714112a1b181529201c1724201d192824201c29272520252724212428241f282a2623262b27222c2c2a25262a2722272a29242a2e2b26252c2a242a2e2c262a2f2b26292f2c2827302d28272e2b28262e2c262d302f2a2a2f2d28282e2d282c302e2a27302d272a2e2d282b302c272a2f2e2929312f2a272d2b26272e2c272f312f2a2d2f2e29282e2c27302f2e2a2b312e27292e2c272b2f2c272d2f2e29292f2d29292f2b262b312d292b312f293132312c2a2f2d282c2f2f2a2d322f2a282f2d282b2f2e292b2f2d28292f2c2928302d27272e2c28272e2c262f2f2f292a2e2c27282c2b272b2d2c28272e2b252b2d2b26292c29232b2d2b272a2d2b2625292723272a2824302d2c272c2b2b26282b29252f2b2a272a2d2a252a2c2a252b2c29252d2e2d29292e2c27272d2924292e2c272c2f2d282f2e2e28292e2b262c2d2c282b2f2d27282e2c262b2e2c272a2e2b27282d2b27282e2b26292e2c28282e2c262f2f2f292b2e2c27282d2c272a2d2d28282f2c272a2d2c26272c28232a2e2c282a2d2c2625292723282625202e26241f2b211f1a271c1a162c18161329171511291a1814271c19152d22201c2824221e2325221d272825212a25221e2b201f1a271d1a162a1917142918151126171510281a17132b1e1c1726201d1a2423201b272725212524221d2b22201c291e1b1726191814271615122613120f2713110e2612100d2713110f2612100d2311100d2411100d2a171512281a1815241c1b1827201f1c2626231f262725222527241f28292724262827242025221f2527252229292723282726222526252128262522272927212626241f2526231e292625202323211e22211f1b2422201d24211f1a2821201c251e1d1a241d1d1a251e1c1a231c1b18241c1b18241c1916231c1a18231c1a18221b1a18221b1917271c1b18261b1a17231919162519191623191815241817152418161324171614251716141d1412102114131126151412241313112213121025121210251413102312110f2512110f271312102312110f2011100d2311100e2311100d27100f0e230f0e0d250f0e0d240f0e0c220e0d0c240e0d0b240d0c0b210d0c0b230c0c0aff3f382fff433931ff4c4238ff463d34ff493f36ff4e443aff54483eff493e34ff5b5144ff63574aff675a4cff63584bff6a5e50ff6a5d4eff695c4eff655849ff635648ff675b4eff655a4dff63584cff554b3fff3e352dff5d5246ff4e433aff6f6356ff6f6155ff736759ff706254ff6c6051ff675a4cff786959ff776858ff7d6e60ff7d6f5dff837563ff867767ff877867ff857566ff91806fff887866ff716352ff807161ff807262ff87796aff847669ff857667ff9a8976ffa39383ffa79888ffa79786ffa2907effa5907dff9d8a78ff968576ff89796affa49482ffab9a87ffa69685ffad9d8bffab9a89ffa99585ffa69384ff9b8b79ff988774ff9e8d7bff74695cff5f5448ff8d7d6cffb29e8bffb4a18cffb29f8effbea998ffb9a492ffbfab96ff857765ffc4ae99ffcdb8a3ffd3bba3ffcdb59fffc6af9bffbea792ffbda590ffc2aa97ffc4b09bffbea996ffa69280ff8e7d70ff89796affbfaa99ffc2ae9cffb8a391ffbba997ffc2ae9bffc3ae9affbda694ffcbb29bffb39e8bffac9883ffc5ac93ffc3ac96ff9c8b79ffc8b19affd7bda7ffe9ceb5ffecd5a0ffdfcc99ffd0bd8cff98865effb9a27bffc4ac83ffccba89ffbeaf7dffe9d5a5ffbcab7fffe8d5a6ffe1cf9bffe3cf9affe0ce9bffeddaaaffe9d9a6ffcfbd8cffccb888ffd7c692ffd5c594ffe8d5a3ffdfcd9bffd4c391ffc8b886ffc6b483ffd2be90ffc7b488ffd2be90ffd6c392ffdecc9cffdfcf9effe9d6a6ffccb58affe7d3a2ffe9d6a6fff1dfacffe9d9a6fff0e1aeffe9d8a6ffecdaa7ffe2d09effdfcc96ffd4c38effa8996affb6a976ffd5c491ffab9b6dff96835cff8f7c58ffa6966cff998a74ff887b6cff928576ff988a7bff837669ff796d5fffa99583ff8c7d6bffad9a85ffbfa994ffbcab96ffbdab98ffbeab97ffbfab98ffc6b49effc3af9bffb6a593ff9b8b7cff685e52ff9c8c7fffa69588ffa69788ffbdac98ffc2b19fffbeae9dffb5a596ffb1a08fffb1a08fff968776ff8e7f71ff9f9081ff7b6e60ff756a5cff7d7365ff82776aff7f7266ff766b5fff6d6255ff595145ff554c41ff7e7165ff8a7d71ff918477ff95887bff998d7dff918679ffa19387ff9a8d80ff9a8c7dff9b8e7dff9b8d7cff7b6f62ff918675ff988a7aff98897aff8a7d6eff897a6aff897b6dff897a6bff837868ff7a6f63ff61574dff7a6d60ff635b4fff575147ff5e564cff655b4fff756a60ff796f64ff6c6355ff6e6458ff685e52ff6b6054ff665d4eff655b4dff655e4fff504a3fff585145ff635b4fff62594dff5f554bff554d44ff37322cff4d473eff4b443eff4a433cff4c463dff544d44ff524b43ff4d473fff47413aff463f37ff443d35ff433d34ff453e37ff413b34ff35302aff2c2822ff322d27ff332e29ff312c26ff2f2b25ff4a3f35ff483d34ff3d352dff40362dff4d4238ff5a4e44ff605449ff64584bff63574aff64594cff675a4dff6b5e4eff6a5d4fff6a5d50ff695d50ff665b4fff675c50ff64594cff605549ff443b33ff5d5146ff554a40ff675b4fff756659ff6b5f52ff5f554aff7b6d5eff7f7161ff7c6e5eff7b6c5cff7f7263ff887a69ff837463ff807261ff877867ff8e7d6bff8b7b6aff7e6e5eff756757ff928172ff8e7e6eff8e7e71ff817567ff7f7265ff988776ffa49283ffa79687ffb2a091ffaf9c8cffb09f8dffb7a18effa6917fff897868ffa99584ffac9a88ffaa9987ffae9d8bffb39f8bffa69584ff928275ff9c8c7bffa59482ffa39280ff998977ff837667ff7a6c5dff857666ff978577ff978677ff9d8c7bffa99887ffab9886ffae9a8aff887a68ff9c8a77ff8a7b6affb4a08dffcab39effc7b2a0ffc6b09cffc4b09cffbfa997ffbfaa98ffac9987ffbaa493ff998677ff847566ffb8a291ffc5af9dffd0b8a5ffbea898ffc8b4a1ffccb7a5ffd5beaaffc6af9affd4bea9ffbeac98ff9b8a79ffcbb39cff998876ffc3ac98ffa59280ffcdb6a1ffe7d264fffff146ffd4bdacffc8b1a0ffc0ab9aff897c6cffb2a291ffb8a692ffd9c2afffb2a290ffdbc7b4fff7dfc7fffde6cefff9e0c8ffecd4beffe8d2b9ffe7cfb8ffceb9a3ffb09f8dffd3bea8ffe7d0b8ffd0bba7ffbda99affcfbaa7ffd2bca9ffcfb9a5ffd2bca9ffd7c2afffccb7a6ffd7c2aeffc4afa0ffd6c0afffdac4b1ffe4cebaffc2af9dffd9c2b1ffc6b39effdcc7b4ffe4cfbbffe5ceb9ffe5cfb8ffe3ceb9ffe0cbb4ffc8b5a0ffa39482ffcab6a2ffbda997ffae9d8dff71665affcdb7a7fff1ea62fffff744ffcdb6a5ffc7b1a1ffd3bdabffc9b4a3ff938677ff8a7c6cffac9b89ff887c6bffb19f8effad9c89ffaf9e8bffbba896ffb2a08fffae9d8affae9c8affb3a190ffae9c8dff8b7b6dff887a6cff918274ffa39486ffa59587ffb3a295ffb9a99cffb9a99bffb3a393ffb6a595ffb2a292ff897c6eff96887affa99689ff908172ffa19281ffb5a593ffb19f8fff998b7eff998b7fff9f9183ff7b6e61ff64594eff7e7567ff8a8072ff887c70ff897c6fff796f63ff84796dff8b7f73ff908477ff8e8072ff948678ff8f8172ff8e8071ff6b6257ff897c6dff877b6aff847869ff817567ff7d7164ff7b6e61ff6f6559ff695f54ff61594eff655c51ff6b6256ff6c6257ff5e544bff534b43ff6c6258ff6e6458ff6e6459ff6a6155ff685f53ff635a4fff645a4fff62594dff60564bff60574bff635a4fff524b41ff4e463cff5a5147ff5e554cff60574dff554d44ff4c453dff3c3831ff463f38ff514a42ff564f47ff58514bff554e47ff4f4941ff4c463fff4a443dff433d36ff443f38ff413b34ff3f3a33ff3b352fff39332cff2b2520ff423930ff554a3fff5c4f45ff625349ff67594dff665a4dff675a4dff6b5d50ff6a5c50ff6a5d50ff695c50ff6e6052ff695c4eff675b4eff65584bff6d6052ff716356ff564c43ff473e36ff6b5d51ff584c41ff4e4338ff5f5347ff756859ff857767ff827363ff77695aff716353ff746554ff7b6c5cff827463ff867664ff7b6b5aff887765ff8a7967ff7b6b5cff786959ff8b7966ff9a8775ff9a8a78ff8f806fff7d6e63ff958675ff9b8c7bffab9787ffac9888ffaf9c8bffab9788ffb09d8cff988678ff948475ffa89784ffae9c89ffb5a18effaf9b89ffa79685ffad9b89ffb8a48fffb39e88ffac9986ffaf9f8bffac9c8aff7f7161ff5a4f43ff7a6d5eff9a8e7dffa99986ff988979ffa99587ffae978bffbca397ffbda798ffbda796ff958373ff75675affa08c7cffc5ae9dffc3ad9cffc4af9cffc2ac9affc0a998ffc1a994ffc9b29dffcbb6a2ffb09c8dffab9889ff998776ff978573ffc5ac9bffceb6a4ffd4bdaaffe4cbb8ffd5bfaaffcbb29fffc6af9affc4af9bffc6b19cffaa9684ffad9884ffa5917effb9a38fffd3b9a4ffdabea8fffff946ffe4ce87ffdec7b2fff7e3cbffe2cfb7fff9e3caffeedac1fffbf6e5ffb2a391fffef9f1fffdf2d6fffffbf5fffaf5f0fffffaf2fff7e7cdffdcc8b2fffef9e3fffef7dcffcfbca6fff0dfc7fffbf6f0fffff9f3fffbf7f1fffffef8fffff5dcffe7d3bcffeedbc2ffcfc1aafffffadfffffffe8fffffffffffffffefffffffffffcefd1ffe1ceb0fffffcdffffffffcffe9e0c0fffdfadaffffffedfffffff2fffffff1fffffff7fff6e5caffbeaf96fff4e4c6fff3e3c6fff8e4c5ffc3b39cffdcc7aeffc3b292fffff847ffcdb9a9ffd8c2b1ffd8c4b0ffd9c5b1ffcdbba9ffbfa897ff8a7b6bff9d8e7bffbfab97ffc8b39effb5a08fffb6a493ffbda997ffc0a997ffc3ac9affbaa391ffc3ad9bffc7b2a0ff8a7c6eff97887affa49286ffb7a596ffc5b2a1ffcdb7a8ffcab5a5ffc1ae9effc2afa1ffbfac9effc6b3a5ffb4a395ffa8988bff83776bffa59287ffad9f8effac9f8fffaea090ffafa090ffa89789ffad9d8dffa89788ff96887aff665c52ff8e7f72ff978879ff95887aff8e8172ff8f8176ff97887bff938477ff9a8a7dff968979ff998b7bff928376ff918477ff74685cff807365ff8f8172ff8f8071ff8a7b6eff847668ff8a7e70ff84786bff72695eff5c534aff7a6e63ff695f54ff746a5dff766a5fff796d63ff62594fff6a6155ff6b6055ff675d51ff645c4fff5e594cff635d51ff655d50ff5b5246ff5c5449ff5d554aff62594eff5e544aff494137ff574e44ff453e36ff49433cff3a342fff3b352fff504a43ff58524aff58514aff544e46ff4f4840ff4e4842ff4b443eff4b453fff423c36ff403a34ff3f3932ff3c3630ff37322cff5e5146ff615348ff625549ff625549ff675b4dff65584aff615548ff54493eff66594dff6c5e53ff6c5e53ff65574cff695b4dff695a4dff65584bff67584dff564a41ff6c5e51ff51463bff50463bff51453bff564a3eff554a3dff5b4e43ff564b3fff584b3eff534638ff50453aff52473aff53483cff5a4d3fff574c3eff5b4e41ff5f5244ff655748ff625548ff625445ff655848ff675a4bff62574aff615348ff726556ff726556ff77695cff77695cff776b5cff786c5cff786a5aff756758ff7c6c5fff7e6f62ff847466ff7f6e5fff7d6d5cff786a59ff78695aff79695bff746656ff716354ff7a6b5cff7a6d5eff6c6254ff60564aff7f7063ffa49887ffb5a591ffac9b88ffb09c8affbea695ffbea696ffc1a999ffbaa493ffb29d8aff7c6d5dff726657ff736457ff817264ff837365ff7f6e61ff7e6d61ff817162ff857567ff7e6e60ff716256ff655a50ff7e7163ff837465ff8f7e6fff907f71ff8d7e70ff897a6dff918375ff8d7e70ff907d6eff8c7b6aff8b7a6dff867666ff867767ff8e7d6aff887767ffcdb39dffe1c4abffe5c8b0ffffff4bffd2b89effd0bea6fff9e4caffffecd0ffffeacffff0d9befff3dbbffffae3c6fffeeccefffff3d5ffffedd1fffbe7cbfff7e5caffffecd2fffff3dcffffefd1fffee8cefffae5caffefdac1ffffebd1fff8e4cbfff2dbc1ffffedcfffffedd0fffff0d4fffff2d4fff4e2c5ffdeceb7fffae4cbfffff1d7fffff7dafffff4d7ffffedcffffbe6c6fffef2d2fffeebcefffae6cbffeedabffff1e1c3ffead8bdffead8befff1e0c9ffead7beffeedcc4ffeadac1ffd9cbb2ffe5d4b8fff6e8ceffe1cdb5ffcbb9a7ffffff4dffd8c4a7ffd3bdafffccb9a7ffd4bfadffd2bfabffb7a291ff827162ff7c6d5fff7e6f62ff786a5cff807263ff7d6e5eff796b5cff7f7161ff847565ff807264ff7a6c5dff847464ff817365ff7a6d60ff6c6158ff7f7264ff8a7c6eff86786aff8b7d71ff897b6fff84786aff877a6dff7f7265ff897c6eff877a6fff82756bff7d7167ffb8a494ffb1a190ffb1a192ffb0a091ffae9d89ffa69786ffa69686ffa89989ffa19384ff635a50ff675d54ff645a52ff73685dff71655aff6d6257ff6d6156ff6b5f55ff706559ff6f6359ff6a6055ff665c51ff665c52ff61574cff655a50ff665b52ff64594fff61574dff5c5148ff594f44ff5e544aff504840ff443d36ff524b41ff544d42ff554d43ff574e45ff564d45ff4d473dff554e44ff50493fff4f463cff4a4238ff484037ff473e35ff453d33ff463f35ff423c32ff453f36ff453f37ff463e35ff423b32ff3d362eff3e382fff3d372fff413b34ff4b453fff564f46ff59524aff59524bff534c46ff514a43ff4f4842ff464039ff47413bff48433cff443e38ff443e38ff3d3732ff584d43ff5e5246ff605448ff635648ff645749ff66584cff695a4eff67574cff5f5246ff67584bff6a5b4dff706151ff6d6052ff695b50ff584e44ff5d524aff6e6055ff6a5e54ff73645aff726659ff6e6153ff756859ff746757ff726454ff736454ff796a5aff786a59ff7b6b5aff786958ff786958ff786a5aff7b6c5bff847665ff8c7c6bff8a7967ff8a7865ff887968ff918271ff887b6cff9e8e7dff9d8f80ffa49483ffa59585ff9f8d7dff9e8e7fffa49280ffa29180ffa89686ffa99887ffa99786ffa39382ffa39181ffa29280ffa69583ffab9885ffab9a89ff9e8b7dff9d8c7dffab9889ffa69584ffa89686ff98897bffab9788ffb19e8dffb2a192ffa59383ffa18f7effaf9b8bffab9988ffb19d8fffb7a191ffbfaa98ffb7a18dffbca493ffbba494ffbea797ffa99586ffb8a08effbba590ffc0a995ffc7b19dffbca695ffb39d8dffa49182ffb5a294ffc2ab99ffcbb3a3ffcbb3a3ffc3ab95ffd0b9a5ffcab29effcdb5a1ffc3ac97ffc2aa95ffcbb39effcbb29dffc7af99ffbba590ffb6a08dffc3ab95ffcdb49effdbc1abfff3e87dffffff4bffdcc0a7ffb1a08dffe4d1b8fffae2c8fffff6daffffefd4ffffebcffffff5d4fffff3d4ffffecd0fffff2d7fffeeed3ffffefd5fffbe7cafff8e2c6fffff6dafffffbdefffdecccfff6e4c6fffceacdfff9e5c9fffdebcffffff6d8fffff4d8fff0ddc5fff0ddc4ffecd9befff0ddc2fffce9cffffef3d8fffeefd3fff8e6cafff9e9cbfff9e7cafff5e4c8fff9e7cafffbeaccfffae8c9fffae7cdfff7e3c8fff8e4c9fff3ddc2fffae7cbfff8e5c9ffeedbc2fff1ddc3fff4e1c7fff8e7cbffe9d9bfffdac6b3fff1ea63ffffff4effcbb7a5ffcab5a0ffd2beaaffccb7a1ffc5b09cffc1ab96ffc2ad99ffc0ac99ffc4ad98ffbaa590ffb7a290ffb7a490ffb5a08bffbca995ffc8b39dffc1ad98ffbfaa95ffbfaa95ffc5b19effbeae9effcebbaaffc9b8aaffc6b6a5ffcebcacffcbb9a6ffc2b09effbeab97ffcbbaa7ffbaaa99ffc8b5a6ffbeaf9fffb7a798ffc0afa0ffad9c8effaea08effb2a18fffb3a594ffa39585ff938579ffa49686ffa59785ffa19383ff928678ff988d7fff9c8f82ffa09485ff918377ff918476ff908175ff8e8075ff93857bff95877bff928578ff918475ff928577ff887b6eff8e8074ff7e7166ff817468ff847767ff847768ff897c6eff7a6f62ff6f6459ff665c52ff71675eff796c61ff786c61ff776b61ff74695dff73685cff73695dff71665aff685e51ff63594dff63594eff61584cff5e5449ff5b5145ff5a5145ff574f44ff564e42ff5b5449ff5f574dff595046ff574f44ff544c42ff534d45ff49453fff524c45ff57504aff544e46ff564f47ff4f473fff4b443eff4a443cff47423bff423d37ff453f39ff413b35ff5f5347ff615548ff64564aff66594bff6a5c4dff68594cff67594dff67594aff6a5b4eff6c5d4eff685a4bff6b5d50ff62564bff5b5048ff64584dff605449ff6d5f54ff706156ff756659ff766859ff6f6355ff6e6050ff6f6152ff726352ff756656ff796a5aff7a6a59ff7c6c5aff786958ff7c6d5cff796b5bff857665ff8a7a6aff887867ff897968ff7f7061ff84766aff807365ff968675ffa49383ffa69687ffa29282ffa19282ff978878ffa39280ff9a8978ffaf9a88ffa79484ffa39182ffaa9a88ffafa08effad9c8affac9a87ffa79583ffa4927fff9f8e7dff9d8d7cffa59484ffae9a8bffa1907fff98887bffb29e8effac9a89ffb4a090ffa28f81ffa69385ffab9587ffb59e8dffb49e8dffb19e8cffb6a291ffb5a08fffb8a392ffbca693ffbca692ffbaa493ffbca693ffbca693ffbfa995ffbea794ffbda591ffc0a898ffb09c8cffab9789ffb9a292ffb39f8dffc1aa98ffcbb3a1ffcdb49fffc8b19cffc1a894ffbaa492ffbfa794ffc4ab95ffc8af9bffc8b19effcab09bffccb29bffc6ae99ffc9b09cffcbb49fffdac0abffffff51ffeadb83ffcdb4a0ffe9d5b6fffae5c9fff8e2c8fff9e5c8fffce6cbffffeed2ffffecd0fffeecd1fffff0d5fffff4d8fffff4d9fffff9dafffae7c9fffae8ccfffdeed3fff9e9cefffce9cdfff5e1c6fff0ddc2fff5e3c7ffffeed1ffffeccefff6e3c7fff3e0c5ffecdac0ffe8d6bcffecdac0fff9e8ccfff6e4c9fffff0d2fffcebd0fffff0d2fffdedcffffff1d4fff9e9ccfffff8d8fffbe6cdfff9e9cffff8e8ccfff7e5c9ffeedcc1fff2dfc6ffeedac1fff3dfc4ffebd9beffeedcc1ffeddbc0ffeddab9ffe8d4b8ffc3ae9bffffff4dffd3bdacffd3bdaaffd0baa3ffc0ab99ffc1aa96ffbca794ffc3ad97ffc3ad97ffc3ae97ffc3af9affc3ac94ffbca68fffb9a490ffb5a18fffbca995ffc8b4a1ffc2b09effc2ad99ffb09c8affb9a596ff9b8f82ffc5b19dffc6b4a2ffd7c2b2ffcdbaa9ffcab8a6ffb8a897ffc5b29fffb9a797ffc6b3a3ffbdac9dffae9e91ffbdad9effbbac9bffbaab9affb9a997ffb4a392ffa89987ff9d9080ff9b8d7dffa59787ffa39485ff9b8e80ff8b8074ffa09183ff9e9081ff9a8d7eff908175ff897c73ff8a7c70ff928376ff928375ff908475ff8d8175ff928579ff8c7f73ff8c7f72ff8f8172ff8a7d6eff877a6dff7e7264ff837668ff847668ff7e7063ff7c7064ff71685dff685d55ff7a6e63ff6e6358ff756a5fff776b60ff74695dff72675aff645b4fff645b4eff61584dff61584cff61584cff62594cff62584bff5d5348ff585044ff554d42ff544c42ff5a5348ff5c544aff585046ff544c42ff4c443bff4a443eff46423cff534d46ff4e4842ff544d46ff504942ff4b453eff47413aff463f38ff433d36ff433d37ff5f5245ff625449ff66584bff66584cff6b5c4dff6a5c50ff6b5f50ff695c4eff6d5f51ff665a4eff645a50ff655a50ff574d44ff5b4e44ff6f6256ff716258ff655a50ff726558ff6b5d4dff736556ff6e6050ff716353ff756656ff776756ff776a5aff766757ff716355ff766858ff796a5aff81705fff7f6f5eff807161ff807063ff7a6b5dff7b6b5fff8d7f6fff766b5dff87776aff9b8b79ff9e8e7cffa39281ff9e8c79ff9c8a78ff9f8e7dffa18f7effa79480ffa4927fffb49f8dffa79684ffa89887ffad9c8cffa99887ffb6a593ffa49483ffa29280ffa59283ffa69284ffaf9d8cffb4a18fff9d8d7cffa89486ffa99585ffae9b8affa79384ffa99685ffae9b8affb39f8fffb39f8effbca795ffb9a394ffb7a18dffb49e8fffbaa392ffb59f8fffbaa392ffbda794ffc0ab99ffbfa997ffc6ad98ffc2aa95ffb9a696ffbca899ffa59184ffa18b7dffaa9484ffc4ad9bffb9a395ffd2b9a4ffc5af9bffbfa58effc3ab96ffbfa794ffcab19bffc8ae97ffc9b09bffc7af99ffc6ad98ffc0aa97ffc5ae9bffcaaf9bffd2b8a2ffd3bba6ffffff4effccb4a1ffd7bea7fff7e1c4fff5e0c4fffce6cbfff6e0c5fff6e1c7fffde7ccfffae5c7fffae4c5fffbe6c9fffff4d3fffff1d4ffffedd1fff8e3c7fff9e6cbfffde9d2fffee8d0ffffeed5fff8e5cbfffce8cefffeebd2fffeeacffffbeacbfff1ddc1fff4e1c5fff6e2c9fff0ddc3fffeedccffefdfc1fffff7daffffedd4fffce9cffffbe9cdfffeeccfffffedd0fffeeccffffff3d6fffae8cffffbe9d0fffbe9cefffff2d8fff7e8cfffebdbc2ffe5d3befff2dfc6fff8e5c9fff0dec2fffae4c6fff1debfffefdabcffb7a293ffffff52fff0e96affcfbaa6ffd0bba7ffc6b09cffd1baa5ffc8b29cffc5af9bffc3ad97ffc3ac96ffc1ac97ffc0aa95ffbca896ffbba795ffbda895ffbda995ffc0ac98ffbca896ffbba695ffb3a090ffb29f90ffbead9cffa29183ffbca89affd1bfafffd0beadffcbb8a8ffbba997ffc0ac9bffc7b6a4ffc1af9affc5b29dffbeab98ffbfae9cffaf9e8dffb8a898ffb8a899ffb5a697ffb8a999ffad9d8dffa69686ffa79989ffa49487ffa49688ffab9d8eff968b7bffa09183ff9b8c7fff9c8f80ff948679ff948778ff938578ff98897eff97897cff97897cff928579ff8f8172ff877a6cff8b7d71ff85776aff8e7f71ff897b6eff877c6eff84786bff827568ff7f7364ff786d61ff776d61ff655b51ff665d52ff6a5f54ff746a5fff6e655bff736a5dff6d6357ff685d52ff6b6053ff655b4eff655b4dff62584cff62584dff5e554aff5c5147ff574f45ff554d43ff575046ff564e44ff554e44ff544c43ff514a42ff49433cff4c4640ff4d4841ff48433cff4d4640ff534d47ff504a44ff48433cff453f38ff464039ff47403aff66584cff65574bff685a4cff6a5b4dff6c5e4fff65584bff6b5e50ff63564bff64584cff695c50ff5d5146ff524840ff60544aff76675cff77675aff6c5c51ff6e6054ff736557ff736456ff6c6051ff716354ff786a59ff7b6c5bff817160ff857464ff7b6d5dff796a59ff796b5bff7e6e5eff817261ff827565ff7a6b5eff817264ff857766ff908171ff8a7f6fff9c8d7fff9b8c7bff9a8a79ffa08f7dff9e8f7effa29280ffa59280ffa28f7effa69381ffac9885ffa3917fffa49482ffb19f8fffaf9e8dffb2a090ffae9b8affae9b8affa69686ffa39282ffb19e8dffb29e8fffb29f8fffaa9687ffaa9687ffa89485ffa69384ffaa9887ffa69383ffa99785ffa99686ffae9a8affb29e8dffb29c8cffbca694ffb7a290ffbba694ffb8a392ffbea896ffbba491ffbfa997ffbea696ffb9a293ffbda795ffb8a290ffbea896ffbea696ff9d897cff948477ffcfb7a6ffceb5a0ffbda391ffbaa291ffc5ac97ffcab09cffcbb39fffbba594ffc8ae98ffcab29dffd1b8a4ffd1b9a5ffcbb3a0ffcab29cffc5ad9affd0b7a4ffd5baa5fffefb4cfffff94affd1b8a6ffdfc9b0fffae4cafffdead0fffde8cdfffeebd3ffffead2ffffecd3fffee8d0fffeead1fffae5ccfffde9cffffff1d5fffeedd3fff4e0c7fffbe8cbfffbe9cefff9e4cbfff6e0c8fff5e2c8fffae8d1fffcead2fff4e2cafffce8cffff7e3caffeedac1fff9e8cbfffcebd0fffff5dbfffeefd7ffffedd3fffde8cffff3e1c9fff9e5ccfffbe8ccfff7e4c9ffffefd0fffeedd1ffffefd6fffff0d4fffeefd2fffcebcffffae8cefffeebd2fffbe8d1fff3dec6fff0dcc2fff8e4caffffeed5fffde8d0fffae7cdffad9d8dffebdf5effffff58ffd3bda9ffc2ab99ffd1bcaaffd3bba5ffc9b4a0ffc3ad97ffc6af99ffcab39effc9b39effceb8a6ffc6b2a0ffbca895ffbfaa95ffbeaa98ffbea894ffc0aa97ffb9a695ffb5a291ffb5a291ffbdac9affc5b19fffb8aa9affcbbaabffc9b7a5ffcab8a5ffc5b3a2ffc6b3a0ffc7b6a2ffc6b5a1ffbeaa98ffbead9affc5b2a0ffb5a394ffb1a293ffc3b3a2ffbcab9cffc3b1a0ffb6a392ffb8a695ffaa9b8dffa49788ffab9e91ffac9d8effa09284ff9b8e7fffa19485ff95887bff93867aff95887bff8f8176ff908476ff8c8274ff918476ff908375ff8e8173ff8f8374ff8b7e6fff8c8072ff8b7e70ff8d7f6fff8b7d70ff8d7f72ff87796dff7f7266ff807466ff776c60ff7e7367ff73685fff625951ff595149ff7a7165ff776e62ff685e52ff6b6054ff6e6558ff6b6154ff675e52ff60574cff63594dff61574bff61574dff5e564bff574f45ff564f45ff544c43ff554e45ff544d44ff524a42ff504942ff4c463fff4a433dff4b453dff403c36ff4d4741ff514b45ff4d4741ff4c4640ff46413bff47403aff605348ff66584bff5f5246ff615348ff5f5246ff625549ff5a4f44ff5b5147ff63584cff5b5045ff60544aff5e5248ff64584dff6e6154ff706457ff6e6155ff706356ff706355ff6f6354ff746658ff796a5dff817361ff817360ff847463ff857461ff7e6e5cff7b6c5cff77695aff7a6b5bff837564ff8b7c6bff817364ff887867ff7b6c60ff827567ff8e8072ff9b8c7cff9b897aff928270ff968776ff948372ff988676ff9c8b7bff998979ffa2907fffa49382ff9a8c7cffa29282ffa19283ff958677ff968778ffa09080ff9c8c7dffa99788ffa99887ffa39082ffab9989ff988778ff9c8b7cff928376ff908274ff9d8b7cffa08c7eff9f8b7effa18d7effa39180ffaf998affaa9686ffb09c8cffa29183ffad9889ffa99583ffb29b8cffb9a291ffb9a290ffac9689ffb19b8bffb59e8fffb09988ff9f8d80ffb4a08eff8b7a6dffa89385ffa79284ffb8a393ffc2ac99ffc7b29effc4af9cffc2a996ffc1aa98ffb59f8dffc3ab97ffc5ac9bffcfb7a3ffddc4abffd7bfa6ffd9bfa8ffcdb29cffccb29dffc5ae9cffcdb5a0fffff54afff5ee6fffdec6b1fff2dcc5ffeed8c0fff4e2c9fff4dec5fff2dec5fffdebcffff0dbc2fff8e4c9fff3dec4fff2ddc3fff8e1c8ffffeed0fffcebcefff0dfc2ffecdabdfff5e3c7fffdecceffffecd2fff9e7ccfffce7cffffde9cffffde9cefffdebccfffef0d2fff5e3c8fffae6ccffffefd4fffae6ccfffff2d6fffff2d8fffaead1fffae8cdfffae9ccfffbeacdfffeebd1fffff4d8ffffeed4fffbe9d0ffffedd2fffdf0d4ffffeed3fffee9d0ffffeed7fffeead2fff2dec9fff8e3ccfff6e3c9fffff0d5ffffeed6fffce7d0ffe9d4b7ffae9d8efffffc50ffe5d788ffd4c1adffd2bfaaffc7b19fffc5b09dffbeaa99ffbeaa99ffc6b19dffd1bca8ffd6c1abffddc7acffd7c0a7ffcbb39dffc4ad96ffbfaa94ffb5a28fffb6a18fffbca694ffbfad9bffb6a293ffc5b1a2ff9b8d7effc2ad9effcdb8a9ffcbb9a6ffc9b6a5ffc1af9cffc5b3a1ffbba894ffc0ae9cffbcab9bffb9a899ffbdab9dffc2b19fffb7a897ffb3a494ffb1a495ffa9998affa7998bffafa093ffa49688ffb1a293ffa09383ffa59687ffac9b8dff988a7dff9a8d7eff887d72ff928577ff8c7e71ff8d7f72ff8c7d71ff8b7e70ff8c7f71ff8b7e70ff8d8073ff8e8275ff81766bff887b6eff847768ff877a6eff897a6cff817367ff796e62ff7c7063ff7d7164ff776b5eff685e55ff71675bff645b50ff5d564dff6c6359ff71685cff71685dff6f675bff696157ff665d51ff635b51ff595147ff60584cff5f574cff625a4fff6a6154ff686052ff61594dff574e44ff534b41ff4e483fff4f483fff4d463dff4e4740ff4a433cff4d4740ff4b453fff46403bff4a443fff4c4640ff4c4640ff46403aff5f5246ff615447ff5b4d41ff5c4e43ff584d42ff5b4e44ff594d43ff5d5145ff6c5e51ff6a5d51ff78695dff75665bff776759ff736559ff77685bff796a5cff7a6c5dff736658ff817264ff877769ff867766ff8b7b6cff897a69ff877766ff867766ff817362ff847565ff877868ff887968ff887968ff8d7d6cff8f7f6eff86766aff958475ff978676ff9d8d7eff9e8f7eff9d8e7dff9a8a78ff9a8978ff9e8f7effa59685ffa29282ffa18e7fffa59280ffa59584ffab9a89ffa49384ffa39282ffaa9887ffb19d8dffaf9c8cffb2a18fffb4a390ffa99584ffb49e8dffa39283ffc0ab98ffb39d8fffac978aff998577ffa49182ffa08d7eff998676ff9e8978ffa59180ffa99384ffac9785ffab9582ffa79383ffa89685ffa79283ffa49081ffb09a89ffa69181ffa18c7dff9f8c7dffa38e80ff9e897affa28d7fff917d71ffbda997ffb09b8bffbda898ffc5af9effc9ae9affc7ae9fffc3ab99ffd0b6a1ffd7bca6ffc4ad99ffc8b19effdabeaeffd5bba6ffe2c9b7ffd9c2afffd7bfaaffd7bea7ffcab5a1ffc2ac9affede47afffffb51ffd2baa5ffe9d6baffffe9cefff7e1c7fffae7ccfff6e1c6fff8e4c9fff4dec5ffebd4bdffeddac1fff7e4c9fffae5cafff8e3c9fff7e3c9fffbe7ccffe9d6befff2dec5ffffedd3ffffefd5ffffefd7fffff0d7ffffecd4fffff1d8fffff0d6fffff5d6fffff2d4fffff4d8fffff6dcfffeead0ffffecd3fffff1dbfffff8e0ffffefd7ffffead4ffffebd2ffffefd3fffff3d8fffeefd6fffff8daffffefd0ffffeed0fffff1d7ffffeed5ffffeed4fffeefd8fffff8e0fffff4ddfffce7cefffce6cafffff2d6fffff5d9fffff1d9ffe8d4bcffbfab9cffffed47fffff448ffc9b3a3ffcbb4a2ffd1baabffdac0abffddc4afffcfb9a6ffc7b1a0ffd0baaaffdcc2b3ffd2baa7ffddc7b4ffd2bdabffd3baa4ffcfb9a7ffb3a191ffc8b5a4ffc7b4a2ffbeac9affc8b3a0ffbcaa9affc6b09fff9b8880ffc2ae9effc4b0a2ffc9b3a7ffc5b2a4ffcebbadffb6a594ffbbaa99ffbaab99ffb9a898ffbaa89affbba89bffb4a294ffb2a293ffbaa899ffafa192ffa99b8dffab9d90ffafa092ffaa9b8effaea091ffab9e8fff9f8d83ffb3a395ff9b8d81ffab9b8dffa19185ff96897eff8c7d71ff897b6eff817267ff7a6e61ff7c6f60ff86796bff84776bff86796aff847768ff7c7164ff7b7063ff786b60ff6f655cff7e7164ff73685cff665c52ff655d52ff655b52ff5e544aff5f564eff544b44ff6f665bff655c53ff635a52ff675e56ff6a6056ff6c635aff6a6058ff6b6258ff6b6359ff635c52ff655d54ff6a6158ff5e574dff625b52ff605950ff5d554cff585148ff524b44ff47413aff514b44ff504b43ff4b463fff4e4941ff47423bff403b35ff433e39ff443f3aff453f3aff605245ff605146ff5a4d41ff5f5246ff594d43ff574c41ff706155ff716255ff76665bff7a6c5fff7d6e61ff847467ff7e6f62ff7d6e61ff807064ff827465ff817364ff8c7e6fff877869ff88786aff7a6d5eff8b7c6dff928273ff8d7f6eff877768ff867665ff8d7c6aff93806fff8b7966ff8f7f6dff8f8070ff8a7c6eff988778ff9c8b79ff9c8977ffa59585ffa29180ff9e8e7dffa08f7dffa79480ffa69381ffa59482ffa99684ffaa9987ffac9b8affa99988ffa69686ffa99788ffac9a8affad9c8bffb3a190ffb3a08fffb39f8effb7a38effaf9a86ff9d8c7cffb39f8cffa99485ffaa9686ffa59182ffb09c8bffb39f8effb6a28fffb19d8affb09c8bffb19987ffab9784ffaf9987ffb49f8effbda694ffbda593ffc3aa99ffb69e8dffc0ac98ffad9785ffaf9887ffa99584ffa99483ffaf9988ffa08c7fffb9a192ffc7ae9effcfb5a7ffd0b8a6ffd3baa7ffdbc1afffd9bfaaffd3baa8ffd3baa8ffdbc3b0ffd0b9a5ffe1c7b3ffe3c9b6ffe0c8b5ffc9b5a0ffd9bfb0ffe3cbb9ffe1c9b7ffddc4b2ffd7bdaaffffff5affffff54ffdfc3abffd9c7acffffead0fff7e1caffeedac2fff0ddc4ffedd8c1fff2dcc5fff4dec7ffefdcc8fff4e0cbfffae6cefff2dec8fffee9d1fffbe6d0fff7e2cafffae6d0ffffefd8ffffeed7fffae6cfffffedd7ffffeed6fffeecd2fffff0d6ffffe9d0fffff0d8ffffecd5fffff2dafff3dec8fffae5cefffbe4cffffff1daffffeed7ffffeed5fffffce1fffff9deffffefd5ffffefd4ffffecd4fff9e6ccfffce8cffffce8d0ffffedd3fff9e5cafffce6d0fffff0dbfffeead4fffff2d8fffff7ddfffff2d6fffff5ddffffecd3fffff2dbffe4ccb9ffe8d898ffffff66ffe3cdb9ffe6cfbcfff0d8c5ffe6cebdffdbc2b3ffe6cebeffdcc6b4ffe2cab8ffedd6c3ffe4cdbbffdec6b4ffd6bfadffe8cfc0ffe9d2c1ffdbc5b4ffcfb8a7ffd8c1aeffd0bba5ffc9b39effcab4a0ffcdb8a5ffc4b09fffd4bcacffcdb6a8ffc6b3a2ffd0bba9ffd3bfafffccb9a9ffc4b1a1ffc1ae9fffc7b3a3ffc4b1a1ffc5b1a1ffc3af9effbeab99ffc1b09dffc0af9dffb7a899ffb5a494ffb0a190ffb4a695ffb4a394ffb4a495ffb4a393ffb4a392ffa09181ff918478ffa39484ff9e8f81ff9a897bff928274ff958678ff928476ff978879ff938475ff938476ff8d7e70ff85796bff8d7f70ff8f8172ff897a6dff8b7c6eff897b6dff807366ff84796bff776b5eff74675bff6c6156ff71675cff685e55ff58514aff7e7265ff756a5fff7e7268ff796e63ff776e62ff7f7468ff756b61ff6d645bff6f675dff6f675dff6a6258ff6f675eff6c645bff696159ff5e584fff635b54ff655d55ff625b52ff585048ff585049ff574f47ff514a41ff4e483fff4f4941ff4f4842ff443f39ff49433dff635447ff615447ff5e5144ff584a40ff625347ff6c5e50ff716255ff756659ff78685aff796a5eff75665bff75665aff736659ff7f7063ff8a796bff847567ff877669ff857568ff88796bff827363ff887968ff897a69ff877666ff847464ff887765ff8b7967ff8d7b69ff907f6eff8f7f6dff938372ff948573ff918071ff958372ff9f8d7cffa49280ffa39182ffa39182ffa79484ffa4907fffa5927fffa69482ffa99785ffa99786ffa89684ffa99686ffa89785ffac9a87ffad9b89ffae9b8affb39f8dffb29d8affac9886ffaf9c8bffb7a492ffb5a391ffb6a493ffa49183ffa69181ffad9888ffb19b8affb39d8bffbaa491ffad9886ffb19c8bffb7a18effbca693ffbda895ffb9a38fffb9a491ffb7a18effc2a895ffb8a18effb8a18fffbaa28fffb7a08effb7a08effb19b8affac9786ffaa9483ffa18b7cffbfa795ffc4ac9affceb5a3ffd1b6a3ffcfb6a5ffccb1a0ffcab1a0ffc3ab9affcfb7a3ffe1c7b4ffe0c5b1ffe0c5b4ffdabfaeffe0c7b4ffd7beaaffdcc2adffe5c9b4ffe2c7b2ffd4baa7ffddc1acffffff54fff0e37effd9c0abfff4dfc7fff0dbc4fff4dbc4ffffe9d1fffff0d8fff9e2cbfff5dec7fff1ddc7fff1dbc6ffeed7befff5dec7fff1dcc3fff9e3cbfffde9d2ffffedd5fffbe6ceffffedd7ffffefdafffde7d0fffce5cdfff8e1c8fff7e1c8fff6e0c8fffce6ceffffefd8ffffebd2fffeedd5fff6e0ccfff3dec8fff7e0c9fff9e4ccfff4dec6fffae4cdfff7e2c9ffffead2ffffefd6ffffebd2fffce9d0fff5e0c8ffeed9c1fff1ddc5fff3dfc7fffbe6d1fffbe6cffffeead3fffce5d0ffffecd4ffffecd5fffee8d0ffffecd4ffffedd5fffdecd4ffebd1bbffe1c6b3ffffff60fff4e68bffe6cdbbffe2c8b6ffe2c7b6ffd1b7aaffd3bdacffefd8c8ffebd2c0ffe7d0bfffe1cab9ffe5ccbaffe1c9b9ffdbc3b3ffe2c9b8ffe1c7b7ffd4bdabffd3bba9ffd2baa7ffd4bdacffccb6a5ffcdb9a4ffd1bbaaffb3a294ffc9b5a4ffceb8a8ffccb5a3ffd3bca9ffccb7a5ffc8b4a2ffcab6a5ffcbb5a3ffc5b09fffc6b09effc3b0a0ffbfaf9fffbead9dffbfad9bffb8a595ffb9a897ffb9a897ffb7a596ffb9a898ffb4a494ffb2a191ffa59688ffb2a08fffaa9c8cff9e8e80ffa6988aff94857aff908175ff918476ff988879ff998a7aff9b8d7eff8f8274ff928476ff918374ff918474ff948576ff8c7f71ff897c6eff8a7c6eff87796bff827567ff7f7467ff7e7366ff796d61ff6f6459ff6b6156ff6e6458ff625950ff6f655bff786c61ff796e63ff796e63ff7a6f63ff756c61ff73695eff6a6058ff696058ff6f655cff71675dff6e665cff696159ff655e55ff665f57ff5e574eff5e5850ff5f584fff5b544bff534c43ff544d44ff504941ff4f4840ff4a443cff4c463eff49433dff625346ff5e5045ff56493fff68584cff6c5e50ff675a4eff6a5c50ff6f6053ff736457ff6b5d51ff6f6255ff77695bff7e6f61ff847667ff837363ff7e6f5fff837263ff847364ff887869ff897766ff887766ff867565ff857464ff7a6b5cff877665ff8c7b68ff988875ff9b8875ff91806fff958474ff938172ff948270ff998674ffa18c7bffa08d7cffa18e7fff9d8a7aff9f8c7bffa2917dffa99784ffac9988ffa99685ffa49282ffa79381ffab9886ffaa9886ffaa9786ffb29f8dffb3a08dffae9a87ffa69281ffac9988ffb29f8effb5a292ffb2a090ffb29b8cffaf9b8bffb7a292ffb5a191ffb09d8cffb49e8fffb39c8cffac9788ffbea798ffbca595ffbea897ffc2ac9bffc1ab9affbfa897ffbea795ffb6a08fffaa9787ffbea691ffb69e8bffb49f8affb29a88ffa69080ffb29a8bff9b8478ffbda490ffbfa697ffbda695ffbaa292ffc0a696ffc6ad9cffb8a08fffbda494ffc9b09fffd2b9a6ffd9c1aeffdac0acffd4b8a4ffd7bba6ffdbbfaaffdec3aeffe1c5b0ffe1c5b0ffdec1acffdabdabffddca7efffffc50ffdbc1aeffcbb7a1fff2ddc7fff2dcc6fff8e2cbfff9e3ccfffae3ccfffae2cbffebd5bfffe9d5bdffecd7bfffedd8c0fff9e3cbfffde7cffffbe5cdfffde7d0ffffefd6fffbe6cefffdead2fff8e3cafff3ddc5fff5dec3fff7e1c7fffae4cafffbe5cdfff8e1cbfffbe4cefffee6d1fff7e1ccfff5e0cafff9e5d1fffbe6cffffce5cdfffde7ceffffecd3fffdebd2fff5e1c9fff1dac5fff3dec8fff6dfcafff8e3ccfffde7cffffae4cefff9e3cdfff8e1cbfffbe5cefff9e4ccfff1dbc5fff8e1ccfffde7d0fff4dfc8fff5e1cafff6e0cbfff9e5cfffead3baffdbc0affff5ed71ffffff55ffddc0b0ffdac0b1ffd5bbadffceb5a8ffd8c1b2ffdfc8b7ffe6cebbffedd6c2ffe2c9b5ffddc2afffdfc5b3ffe0c5b4ffe2c8b6ffe1c7b5ffdabfacffd6beaeffc4af9fffcab3a1ffd2bba9ffd5bda9ffd7c1aeffd5bca9ffccb7a7ffccb5a6ffcfb7a5ffc8b29fffcfb8a5ffc9b4a3ffc9b5a4ffc7b3a1ffc8b2a1ffc2ac9affc6b09fffc5b19fffc2af9fffbba999ffbba898ffbfac9dffb8a697ffb6a595ffb5a495ffbbaa9bffaf9f8fffad9d8cffa49386ffad9e8fffad9e8fffa49789ffaa9a8dff9f8f81ff988a7bff9d8f81ff948679ff96897bff96897aff96887aff928476ff9c8e80ff948678ff988b7dff928679ff8f8376ff8d8073ff8a7d6fff7f7467ff7a7064ff817566ff756a5dff71675aff6e6357ff6c6156ff635951ff62574dff706659ff766a60ff6e6559ff6d6258ff695e56ff6e635bff665d55ff655b54ff696058ff6c645cff6f675eff686057ff645c53ff655d54ff5e574eff5f574eff5b544bff5b544aff554d45ff514b42ff49433bff4d463fff4c463eff4e4840ff55483dff65564aff66584bff66584dff695b50ff6f6155ff736457ff6d6053ff776958ff736557ff7b6c5cff7c6c5dff837365ff847565ff837261ff877564ff877565ff857463ff857562ff847463ff887767ff8c7a6aff877565ff857463ff8d7b68ffa08d7dff9d8c7cff877a6bff8e7f6fff907f6fff9b8a79ff9a8777ff9c8a76ff9e8a77ff9f8c79ff988574ff9a8877ffa5917cffa28f7bffa6937effa79481ffaa9683ffb4a190ffaa9583ffaa9785ffb09d89ffae9986ffad9884ffb09a87ffa99483ffaf9b88ffae9b89ffad9b8affac9b8bffa89584ffa39182ffa18e7fffa49282ffa49082ffb09b8cffb39d8effa08c7effa38e80ffbba495ffb5a190ffc4ae9dffbda493ffb39d8affbca491ffae9989ffa59081ffac9786ffa89382ffa69180ffa99482ffb49d8affad9787ffa58e80ffa49080ffbba493ffbba393ffb59c8dffbda696ffbea596ffaf9d8effc3ac96ffc6ad9affcbb19dffd5b9a4ffd7bda9ffd3b8a4ffd2b7a1ffddc0a9ffddc0aaffddbfa9ffdabea5ffd8bda8ffdec2aeffe2c7b3fffffe5dfffffb52ffd9bda5ffc8b5a0fff0dcc5fff6e0c9fff5ddc5fffee5c9fff5dec5fff8e3cafff1dcc5ffedd6bfffeed7c2ffefdac3fff3ddc7fffee6ceffffedd5ffffebd4fff6e0c7fffff2d8fffce6cdfffce7ceffffeed4fffeecd1fffeedd1fffee8cefffff0d8fff5e0c8fff1dec6fffee9d1ffeedac2fffae5ccfffae3cbfffde6ccffffecd0fffff5d8fffff3dbfffff0d8fff8e4cdfffce6ccfffae3c9fff9e4cbfffff4d9fffdead1fffff0d9ffffecd4fffde9d0ffffead1fffeead3fff7e0cbfffde7d0ffffeed5fff9e4cdfff4e0c9fff3ddc6fff5e1cbffffead2fff4e8d2ffdcc1afffffff51ffd6bcaaffd9bdaeffcab6a6ffd1bbabffdec6b1ffd6beacffe2c8b3ffe1c8b4ffd9c0adffdbc3afffe0c6b3ffe2c7b3ffe0c4b0ffdfc4afffd5baa9ffd9bfadffd6bdabffdbc2afffceb7a5ffc2a896ffdac3b1ffdac3b1ffe4cfbdffd7c1aeffcdb7a6ffcdb8a4ffcdb8a4ffcdb7a3ffcab6a0ffc8b19effc9b4a0ffc4b09dffc1ab99ffc0ac99ffc1ad9bffc7b4a2ffc4b09fffc5b2a2ffc1afa1ffb8a696ffb8a697ffb4a393ffb3a191ffb2a08fffa79584ffa69585ffac9b8affa69789ff9c8f81ffa8998bff938477ff918477ff8c8072ff897a6fff918377ff96897dff968a7cff83776aff94867aff918378ff978a7dff8f8375ff8a7d70ff897c6eff877a6eff7a6e63ff796e61ff7b7064ff6d6256ff6c6257ff706458ff72665bff695f54ff574f48ff756a60ff6f655bff6a5f55ff675e54ff6e6359ff695f56ff635a52ff685f56ff675d55ff685e54ff665d53ff645c53ff665d52ff665d52ff60584eff5d544bff5c544bff574f45ff534d44ff514b44ff514a42ff4c463eff464038ff66574bff6d5f51ff6a5c4fff706254ff6c5d4fff6b5c4dff66584aff6e5f52ff695b4eff706153ff786858ff7c6b5bff7e6d5eff806f5fff7f7060ff776758ff766556ff7f6e5dff827262ff7d6e5dff857665ff877767ff887867ff8d7e6dff968675ff847464ff796b5dff817163ff897767ff897768ff8d7c6bff857465ff857362ff857363ff8e7b6aff887665ff90806fff9a8875ff9b8875ffa38f7dffad9a88ffaa9583ffa18e7cffa6917fffa18d7affa08b78ff9d8a79ff9e8a77ff9d8776ff9e8b7aff9f8d7bffa79481ffb09c8bffad9988ffa49080ff9c8879ffa99685ffa89484ffa79483ffa69283ffaf998affa38f80ffb09c8cffb69f90ffc0ab99ffbda695ffb9a390ffb9a28fffbba390ffb1998affb59d8dffb69f8effb59e8effb49e8dffb0988affad9888ffa48f81ff998579ffb8a090ffbea694ffbda593ffc1aa98ffbfa693ffbea291ffb79b8affc3aa96ffbca492ffbfa793ffceb29effd0b49effd2b6a0ffd2b5a0ffceb39dffcab09cffc5a995ffceb29cffd5b9a4ffc9b09affd7bda4fffff954ffe5d090ffd6bdaaffecd8c0fff6e1c6fff5e1c8fff0dbc3fff6dfc7ffefd9c0fff2dcc2ffebd5bcffecd7beffeed9c1fff3dec6ffe8d3bcfff7e1c8fffeeacffffee9cffff7e3caffffefd6fffbe8cffffae7ccfffff2d5fffde8ceffffe9cfffffecd0fffff3d7fff8e4c9fff9e6ccfff7e3c9fff8e5ccfffee9cfffffead0fffee9cffffff0d5fffff1d4fffffadffffff1d6fffff6dbfffff0d6ffffefd7fffff0d8fffff6ddfffff9defffffbe2fffff4dbffffeed5fffee9d0fff7e1cbfff2dcc5fff7e2c9fff7e3cbfffee8cefffff0d7fffeead3fffbe6cefff7e3c8ffcfbba4ffdbc1aeffffff57fffaf660ffdabfacffdabfabffd5baa8ffd5bba8ffd5beabffd5bba8ffe6cab4ffe3c6b0ffe6c9b2ffdcc1abffd7bea9ffd2b9a5ffccb3a0ffcfb39fffd1b8a5ffc3ac98ffd0b9a6ffcdb5a3ffceb4a3ffcbb1a0ffdec6b2ffd4bca8ffa79385ffbaa495ffbda798ffc5ad9cffcab29fffc2aa99ffbaa493ffb39e8cffbca493ffb7a391ffb7a493ffc1ad9affbfab99ffc3ad99ffc6b3a1ffc2b09effb5a392ffb8a491ffae9c8affb3a190ffa79888ffa99888ffa79686ffa39080ff9e9081ff9f907fff978879ffad9d8eff97887cff8e7f73ff908374ff938577ff908476ff807567ff8d7e72ff84786bff897e71ff8d7f74ff948679ff938578ff8b7e71ff897c6dff85796aff786c62ff766a5fff786c61ff756a5fff71685dff70645bff71675cff6d6358ff574e48ff6b6158ff6d645aff74695dff6c6157ff6c6358ff665d52ff695f54ff665d52ff686156ff625b51ff6a6056ff665c51ff655b50ff61594fff5d564cff574f46ff534c43ff50483fff534c43ff4a433bff4b453fff3c3833ff6f6052ff6e6051ff706153ff6d5e4fff6c5d4dff685a4bff66574aff736455ff766656ff82715fff79695bff7d6d5dff7e6d5dff7e6c5dff7a6a5bff7e6d5dff79685bff786859ff7d6d5cff857565ff897a6aff8d7d6cff8a7b6bff807063ff867768ff77685aff827363ff867666ff8f7e6dff907f6eff8c7b69ff877664ff857464ff817061ff927f6eff958371ff9c8a79ff9c8977ffa3907fffa5907effa8927fffa28d7affa7907effa48f7bff9c8977ffaa9481ffa38d7aff9e8a77ffa99481ffab9683ffab9683ffa59485ffaa9587ffa69281ffa79382ffac9887ffa49180ffa69383ffb29d8bffae9887ffa69181ffb29c8dffb49e8effbca592ffbaa493ffbda694ffbca592ffbda593ffb7a190ffb59f8dffb79f8dffae9987ffb69e8dffb49d8bffaf9788ffab9484ff937f75ffab9686ffad988affc1aa98ffc0a896ffc6ac99ffc4ab96ffbba18dffbba28fffb39b8affc4a996ffbfa793ffd9bea6ffc6ab97ffcbb29bffd4b8a2ffd4b7a2ffcaaf9bffd0b39dffc9ac9affc8ad9bffd0b4a0fff3e672fffffb5affdbc0acffdfc7b0fff3dec7fff0dac3fff5dec7fff2dcc4fff0d9bffff3dbc0ffe5cfb5ffe7d2b9ffe8d4bdffead6beffeed9c1fffbe4cbfffbe6cbfffdebd0ffffead0ffffecd0ffffebcefffff0d6ffffeed3ffffecd2ffffecd2fffee9cfffffefd4ffffefd3ffffedcfffffecd0fffde7cdfffff7dffffff8ddffffedd3fffff5dafffff4d9fffffadbfffff2d3fffff4d6fffffcdffffffbdffffffee5fffffde4fffffee4ffffffe8ffffffe9ffffffecffffffe9fffff5dcffffefd5fffae5ccffffefd8fffff1d9fffef1d5fffae7cdfffdecd0ffffeed4fffff4dbffe4d0b8ffd0b7a7fffcfa66ffffff5bffe9ccb7ffe4c8b3ffd7bca7ffd4b9a6ffceb4a2ffdabcaaffd6bda9ffedd2b8ffd6bba7ffd3bba6ffdec4acffdec2adffcdb4a1ffcfb4a0ffcdb4a1ffc8b09fffccb4a2ffd1baa8ffceb8a8ffd1bba8ffd4bcaaffc3ac9dffc5ad9effa99688ffb09b8dffbaa493ffc4ad9cffcbb4a3ffbfa999ffb49e8bffb19c8affad9788ffb19a8affb49f8fffbcaa98ffbaa796ffb9a594ffc0ab99ffbda995ffb09d8affb29f8dffb09d8bffa99784ffa99786ffaa9886ff9f8f7dffa1917fffa39180ff9c8b79ff938678ff9f9183ff96887bff928477ff9c8d80ff908274ff8e8073ff958779ff8d7e71ff887a6dff877a6fff897c70ff8f8275ff8e8174ff8d8073ff8a7d6fff887c6eff827467ff7e7366ff7e7365ff756b5eff73695eff74695dff71665aff6c6256ff585049ff5f574fff685e54ff71675cff71685dff74695dff6e6357ff665c51ff635a4fff5e554bff5d544aff60584eff645c51ff60584dff5a5349ff5e564cff5c544bff524b42ff4f483fff4c453dff4b4643ff2d2b2aff756758ff736556ff776758ff7b6a5aff7a6a5aff7a6b5bff786858ff7c6b5bff7a695bff857466ff847465ff857565ff7e6d5fff79695aff7f6f5eff827161ff7f6d5fff807163ff857566ff8d7d6cff8f7f6fff8c7b6bff8a7a6aff87786aff827364ff887767ff907f6cff907e6cff978674ff92816fff92806eff968370ff9a8774ff9c8976ffa08e7cff968572ffa79380ffad9983ffa99681ffae9a88ffa18d7bffa99580ffa48f7affa48f7affac9881ffa8937effab9682ffa4917fffb09c8affb09b89ffa09082ffa79284ffae9684ffa78f7effb39c8affab9584ffa38f7effa08e7dffa08d7dffb7a08dffb19b88ffb29c89ffbca695ffbaa392ffbaa492ffbda897ffbda695ffbca695ffb59e8effb49d8affb39d89ffaf9989ffbaa390ffb59d8dffb7a190ffa89382ff9b8779ffa79082ffb8a191ffc1aa99ffc5ac9affc8af9dffc7ad99ffcfb39effcfb39effc5ad99ffcfb39dffcbb19bffc6ac99ffdcc1aeffdec1acffddc1abffd2b7a2ffcbb09cffcfb49fffd4b7a2ffc8ac9affccb3a1fffff356fffffb5effe3cab8ffc1ac96ffebd5bcffefd7bffff2ddc2ffefd9c1ffeed7beffe7d1b8ffead4b8ffecd6beffefd9c2fff5dfc7fff5e0c6fff6e2c9fffae4cbffffecd2fffff0d4ffffefd5fffff4d9fffff7ddfffce5ccfffae4caffffecd1ffffedd1fffff1d6fffff0d1fffff9dcfffff3d4fffee6c8fffff7dbffffead0ffffefd4fffff7d9fffffde0fffffdddfffff1d3fffff2d7ffffefd3fffff5d7fffffbe1ffffffe7ffffffeeffffffeaffffffecfffffde3ffffffe7fffff4dafffff4dafffee9d1ffffebd3ffffe9d2fffff1d5ffffecd0fffff6dbfffff6dbfffde8cefffce5cbffc9af9fffdec3b0ffffff5bfff4e58dffe7ccb8ffe3c7b2ffe4c8b2ffe1c5b0ffd6bca7ffe0c4aeffdcc1acffd9bfaaffe8cdbaffe6cab5ffe6ccb6ffd9c1aeffd3baa7ffd6bba7ffd1b7a3ffc4ad9cffccb4a3ffd2baa9ffd6beaeffdfc8b6ffd1b8a5ffc9b09dffccb7a6ffcbb4a4ffbfa698ffc4ad9effc6af9effcab4a3ffcbb3a0ffbca696ffbca793ffbaa592ffb8a390ffbea997ffb2a08effb6a08effc6b09dffbda997ffb7a391ffaf9c8bffb2a18dffac9986ffa08f7dffad9b87ffa89784ffa79684ffa09080ffa79786ffa49382ff97897eff9f9284ff918278ff97877aff9a8a7cff96867aff908275ff837668ff877b6cff8a7d6eff8d8071ff857768ff928578ff908376ff8b7f71ff8f8274ff8a7e70ff84796dff7e7368ff7a6f62ff776c5eff786d61ff756b5fff75685dff6f655aff615950ff585046ff60564dff6e6459ff6f655bff73695dff73685cff6e6357ff6e6358ff655b4fff61584dff635b50ff635b50ff5d564bff625a51ff60584eff5d564cff554f47ff413c3aff4a4641ff333130ff736556ff796959ff7b6c5dff77685aff7c6d5cff7c6d5dff7e6e5fff816f60ff857465ff867566ff887869ff847465ff806f60ff847262ff837161ff7c6b5cff857464ff857666ff877767ff877868ff928272ff8c7e6dff857568ff8e7d6fff897866ff928271ff998775ff958372ff988775ff998776ff9a8877ff988776ff9b8978ff9c897affa18e7cffa49180ffa79381ffaa9682ffaf9a86ffa7937fffa6927dff9d8a76ffa9927dffac9582ffa8907fffa69180ffaf9a88ffac9786ffae9989ffa18e80ffae9989ffa89382ffaa9484ffad9986ffa89380ff9f8a7affa08c7dff9a8778ffb19989ffc4ac98ffbfa896ffbfa895ffc4ad98ffbfa897ffc3ab98ffbba592ffbba592ffbca492ffbba492ffbda794ffb29c8cffb49d8effb39b8cffbca492ffad9587ffa28c7effb59f8dffc6ae9dffcdb5a3ffccb4a2ffc3ab9affc8b09effcdb19fffcdb3a1ffccb29fffd2b9a4ffd1b8a5ffd7bba8ffdbbfaaffd7bba6ffdcc0acffdfc3aeffd8bca8ffd1b5a1ffd8bba6ffd6b7a3ffc7aa97ffd4b9a5fffff556ffecdd88ffdbc0adffc6b59dffe3d0b7ffe5d0b8ffefdbc1fff2ddc0ffefdbc1fff2ddc3ffedd7beffe8d3bafff6dfc5fff7e4cafffbe4cdfff2dcc4fff3dec5fff3dfc5fffce8cffffce6cdfffeeed2fffeebd0fffae7cdfffff1d7fffff2d8fffff3d8fffff6dbfffff3d7fffff1d7fffff1d7fffff3d7fffffbddfffff0d4fffff1d4ffffffe4fffff6dafffff5d9fffff0d8fffff6dcfffffce1fffffaddfffff0d6fffffee0fffffedfffffffe6fffffee0fffff4d8fffffadcfffff8dbfffeead0fffde7cdfff4dec6fffce5ccfffff1d7fff8e2c8ffffead0fffce6cdfffff0d4ffffecd2ffd7c3abffefd2c0ffffff68ffffff66ffe9cebcffe9cdbaffebccb9ffe7cbb7ffe4c9b4ffeacfb9ffe3c9b5ffedd0b9ffeed2bcffe8cbb6ffeacfbbffecd0bcffe2c7b4ffdac0acffdabfabffd8baa8ffc9ad9cffd3bba8ffd5bca9ffdbc2afffd6beacffe3cab8ffd0b9a7ffb09d8cffcab1a1ffc8b09effc9b1a1ffcfb9a6ffcfb9a7ffc5af9dffc4af9cffbba898ffbea898ffc7b19fffbeaa99ffc1ad9affc2ad9bffbcaa98ffc4b19effc4b1a1ffb7a492ffab9a8affaa9988ffaa9784ffb19f8bffa79482ffad9986ffb09f8dffa99886ffab9b8bff938577ffa19384ff9a8b7eff9d8d80ff9c8c7eff938577ff807366ff887a6dff85786bff908274ff98897aff988a7aff978a7bff9b8c7bff938678ff918476ff8b7e72ff887a6fff877c6fff837669ff817569ff7e7367ff776c61ff71665cff70655cff6f655aff5e544cff685f55ff73685fff776d65ff756a61ff71675eff6e635aff6c6158ff685f55ff655d52ff665e55ff635b52ff665d53ff645c52ff61594fff605950ff413d3bff494440ff2e2c2bff786a59ff756757ff736556ff776858ff736454ff7c6c5cff837263ff857465ff847263ff837262ff827162ff817060ff857363ff826f60ff826f60ff817161ff837364ff847463ff857463ff877666ff847465ff7e6f62ff907f6fff928070ff9a8777ff938270ff93816eff988673ff998674ff978573ff968574ff968473ff978572ff9c8977ffa59180ffa49180ffa79481ffa28f7dffa18f7eff9f8c7bff978373ffa38f7cffa9937fffa6917effa8927fffaf9885ffad9786ffa99586ff978377ffa08b7effb19a89ffb29c89ffb9a28effb39d8affb29b88ffb19a88ffaf9a88ffb29d8cffb8a290ffb9a18effbfa793ffbca591ffbea592ffbea692ffc2a995ffbea791ffbca590ffbaa28fffb59e8bffac9685ffa89382ffb59c8cffae9687ffb09989ffa79181ffa89385ffbca495ffc6ac9cffc8ae9effc4ac99ffbfa893ffc7ae99ffcdb6a0ffceb49fffcbb09dffceb3a0ffc8ae9bffcfb4a1ffd7bba6ffdcbfabffd8bba6ffd7baa5ffd9bca8ffd8baa4ffdabda6ffd0b39effd3b5a0fff5e563fffff559ffd9bda8ffc0ab97ffd7c4adffe5d1bafff7e1c7fff8e1c7fff2ddc2fff6dfc3fff8e0c5fff4dec5fff4dec6fffce5ccfffae5ccfffde7cefff1dbc4fff3dec7fffae6cafffff3d6fffff0d6fffde9d1fffeead0ffffedd5fffff5defffffbe7ffffffe5fffff9defffff2d9fffff1d7fffffce3fffff9dcfffffadefffff2d8fffff2d7fffffce0ffffffe4fffffee2fffffbdefffff6d7fffffaddfffffcdffffff2d8fffff8defffff8dcfffff8dbfffff8dbfffffadbfffff2d7fffff9dbffffebd1fffae7ccfff7e2c9ffefdbc2fff5e1c7fff4e1c7fff6e4c9fff6e1c8ffffefd6ffffead1ffecd9c0ffe7cbbafff1daadffffff67ffe9d1afffe5cab3ffeed2bcffefd5beffeed3beffebceb9ffe9ceb9ffdfc4afffe4c8b4ffe8ccb7ffedd1bcffe9ccb7ffe5c7b3ffe8cab7ffe0c2adffdac0aaffd0b5a1ffd4b7a3ffceb5a2ffdac0acffcfb6a3ffd2b9a6ffd3bba8ffcdb7a5ffc4ac9effceb6a5ffcdb6a5ffd3bba9ffccb5a3ffc6ae9cffcbb4a1ffcdb6a4ffc7b2a0ffbca99affc0ac9bffb7a392ffbea998ffc0ac9affc1af9effc3b2a0ffbcaa98ffb9a897ffad9c8bffa69383ffb09e8dffaf9d8bffac9988ffa99886ffa99888ffa99887ffa59686ff928376ff97887bff9b8a7dff9c8c7dff9e8f7fff968879ff8c7d70ff918174ff8b7d6fff8b7c6fff978878ff968777ff958676ff8f8172ff8e8071ff8f8071ff8d7f6fff877a6aff857969ff7e7165ff7d7164ff76695dff6f6459ff766a5eff6e6458ff6a6055ff635a51ff665d54ff71675eff756b61ff736961ff6c645bff6b6258ff6f665cff6c645aff6a6158ff665e54ff696157ff645c52ff5d544bff100f0dff46413fff4b4543ff3e3c39ff796a59ff756657ff746657ff746555ff7c6c5cff806f61ff77685bff7b6b5eff78695bff7d6d5fff837263ff7d6c5eff7d6c5dff837161ff817060ff827261ff7a6b5bff806f5eff877767ff877767ff786a5cff8a7a6aff928171ff928171ff90806fff968473ff988775ff9c8b78ff9b8a77ff9f8c7bff9c897aff9a8878ffa18e7bffa5917eff9f8c7aff9d8b7bff9f8e7dffa1907fffa59280ffa59282ffa99484ffa99384ffac9786ffb09b8affb29b88ffb29b89ffac9785ff877568ff8e7a6dffad9787ffad9786ffb29c8cffb39d8bffae9787ffaf998affb29d8dffb29d8dffb6a090ffb59f8effb5a08effbaa390ffbfa794ffc3ab97ffc3ac98ffbda490ffb69f8bffb7a08cffae9786ffa89282ffa59080ffb59d8cffad9686ffac9684ffa68f80ff988377ffbca494ffbfa695ffc6af9dffceb3a1ffcbb09fffccb2a1ffd3b8a4ffcbb19dffd2b7a2ffc9b09dffc9b09effc9ae9cffcfb6a3ffd1b7a3ffc9af9dffcfb4a1ffcdb29fffceb3a0ffd2b6a3ffd2b5a1ffceb29effd6baa3ffffef51fffbee5dffcfb39fffc1ae97ffebd6beffe3d0b9ffecd7beffefdbc2fff4dfc6ffedd9c0fff8e0c5fffbe4ccfffff0d6fffdead1fffee8cefffeedd4fffee9cffffff0d6ffffefd6fff9e5cdffffedd6fffde7cefff8e3cafffbe6cdfffff2d8fffff1d5fffee9d1ffffefd4fffef0d5fffff3d7fffff4dafffff1d7fffff1d7fffff5dafffffce0fffffee4fffff8dbfffff7dbffffefd5fffff8dcfffffde0fffffbdffffff3d7fffff3d8fffffadffffffcdffffff7dafffff8dafffff9dcfffff7dbfffff3d7fffff4d8fffeedd2fffeead1fffde7c7fff9e4cafffeeed4fffae6ccfffeecd2ffffeed4fffbe7d0fff8f2ddffe9cdbbffffff6dfffdfa79ffedd0bbfff5d8c4fff6d8c1ffeed0baffefd3bdffe4c9b5ffe3c7b4ffdfc2b1ffe9cebcffe6cab7ffe1c5b1ffe1c5b2ffddc2afffd8beaaffd7bda9ffd8bda7ffd3b8a3ffd3b9a3ffcfb7a2ffcab3a0ffc2ab99ffc7ae9bffcbb3a1ffc6af9fffc7b0a1ffc9b3a2ffd7bfafffd2bcabffd3bdabffd1b9a7ffcfb9a7ffc1ad9cffc9b4a2ffc7b2a0ffbdab9bffc0ae9effc0ae9cffc1ae9cffc0ac9affbba898ffb6a495ffb5a494ffb3a191ffb2a192ffb2a292ffac9c8dffb1a08fffad9e8bffaa9888ffac9a8affa59586ff81766aff8e8176ffa49284ff99897affa29383ff9c8c7cff928576ff918274ff958577ff948678ff958677ff938273ff918273ff928375ff918375ff938475ff928575ff8b7d6dff807363ff7d7062ff786e60ff6f6459ff6a6055ff756a5dff70665bff696055ff665b52ff5a524bff6c635aff73695fff766e64ff786e66ff6f665cff72685fff72685dff675e54ff6b6358ff645d53ff5c544aff3a332eff433e3bff47413fff3a3836ff726354ff716254ff6b5d4fff716355ff77685aff79695bff7f6d5fff78685aff7b6b5eff807060ff7e6d5dff7c6b5cff80705eff7b6b5aff7a6b5aff756555ff786a5aff7d6d5eff847465ff716457ff7e6e5fff837160ff847362ff8e7d6bff917f6dff907d6bff978471ff92816eff998675ff978574ff978473ff9b8877ff9c8977ff9e8b7affa18d7cffa18d7cffa39181ffa29080ffa39181ffa79383ffaa9587ffad9789ffb19a89ffb49e8effb09888ffaf9786ff8b7a6eff907c70ffa49080ffad9686ffb59e8effb6a08fffb8a191ffb49e8effb19c8dffb49e8effb9a292ffb9a192ffb39d8dffb59f8fffbca694ffbea795ffbca391ffbca591ffb8a18fffb19a88ffb9a18dffb09989ffa58f7fffac9686ffb39c8bffa48e7effa28d7eff9f887bffb39b8affc1a997ffbea494ffbfa693ffc8ad99ffceb29effc3a794ffcdb29cffbfa594ffbea493ffc2a896ffc3aa98ffbca391ffc6ae9bffcab09effcdb29fffd0b4a1ffc9aa98ffceb4a0ffd7baa4ffd0b49effd2b4a0ffd5ba9bffffe64effcaae99ffc6a996ffdac6aeffedd7befff3dec4ffefd9bcfff6e0c5fffae4cafff5ddc2fff0dbc2fff2dfc4fffce8d0fff3dec6fff6e2c8fffdeacffff9e3c8fffbe4cafff6e3cbfffeead0fffee9cfffffecd3fffce6cdfffff0d8fffff1d7fffff1d8fffff0d8fffde9d1fffce8cefffce6cdfffff8ddfffff2d8fffffbdefffffee2fffff4d7fffff7d8fffff6daffffedd2ffffedd2ffffeed4fffae6ccfffff3d7fffffbdffffffbe0ffffffe0fffff8dcfffff6dafffffde1fffff2d4fffffcdffffffee0fffff3d5fffff7dafffff4d8fffae5cdfffee8cdfffeedd2fffbe9cdfff9e6c9fffff7ddffffefd3ffe5d1b5ffefd1beffffff62ffffff67ffeecfb9fff3d5c1ffebceb9ffeaceb7ffdcc0adffd9bdacffddc2b0ffdbc0adffdabeabffe6cbb7ffe1c6b3ffe2c6b2ffdcc0adffd2b7a4ffddc2aeffddc1adffd6bba7ffd6baa6ffd3b8a3ffceb29effc2aa95ffbda492ffc9af9bffccb29fffb8a392ffb59e91ffceb7a6ffc7af9effcab3a1ffc7b09effccb6a3ffceb7a5ffc4b09effbda997ffc8b3a1ffc1ac9cffbca897ffc0ac9affbeaa9affc1ad9bffbaa696ffb7a594ffb4a394ffb9a798ffb3a292ffaf9e8fffb4a596ffb5a394ffb6a595ffb09f91ffaa998affaa9b8bff85786cff8a7a6eff9f8f7fff9d8d7effa79789ffa39384ff9e8f81ff96887aff97887bff918376ff988a7cff8b7d71ff8c7f72ff8e8072ff8f8172ff8e8071ff877b6cff8b7e6dff827567ff7e7163ff796d5fff6f6358ff6c6156ff71655bff6e6257ff645b4fff5e564cff575048ff70665aff756a60ff70675eff736960ff71665cff716960ff6d645bff686056ff625950ff615950ff4b443cff423d3bff43403cff4c4744ff726254ff6e5f50ff726455ff766758ff7a6a59ff7d6d5cff7d6d5eff7e6d5fff7e6d5fff7d6d5eff766556ff7a6959ff837261ff7d6d5dff766959ff817160ff877768ff786a5cff7b6d5eff857566ff857464ff837262ff8b7a69ff877666ff897868ff92816fff93816eff978471ff988573ff9a8975ff9f8b79ff9f8b7aff9d8979ffa38e7effa48f7fffa59081ffa18c7dffa28d7dffa28d7effa38f7fffa28e7effac988affaf9a8bffab9686ffa59080ff9c887aff968375ffa08b7bffaa9384ffb39c8cffb49d8cffb8a090ffb09a8affb59e8effa38c7dffb59d8dffbba393ffbaa192ffbea695ffb9a190ffb7a08bffb49b88ffb39c8affb09987ffb19c8cffb49d8bffb69f8fffb19b8bffbfa795ffb29a89ffac9585ffa68f80ffa89382ffa89282ffc6ae9dffb79f8effb09887ffb8a090ffc1a996ffccb19cffc1a692ffc2a794ffbea592ffbea592ffc0a593ffbfa693ffbca292ffc5ac9bffc8ad9dffcfb3a0ffd3b8a4ffd2b6a3ffd2b6a3ffd4b8a4ffd0b4a2ffcaae99ffffea50ffffef53ffceb29effc7b29bffe4d1b8ffe1ccb6fff0dcc1fff4e1c6fff0d9c0fffae4c7fffee9cdffefdac1ffeedcc2ffe9d6beffefdbc2fff4e1c6fff7e4cafffcebd0ffffefd3ffffead0fffff2d7fff9e6ccfff9e4cbfffce8d0fffce7cefffce8d1fffef0d8fff7e2caffffecd2fff9e5cbfffdead1fffff5daffffefd3fffffcdffffff9defffffadefffffce2fffffadefffff8d9fffff7dafffff3d9fffff4d9fffff1d4fffff2d6fffff8deffffffe4fffff7d9fffffadffffff3d8fffff3d6fffff6d8fffff8d9fffff4d7fffff7d9fffff3d7fffde9d0fffce9cdffffebd1fffce8ceffffedd2fffff0d6ffffeed4ffeeddc3fff0d4c2ffe8d598fffffb55ffe5cab6ffe9cdb8ffefd1bbffe2c4aeffe0c1aeffdbbfabffd9bca9ffdcbfacffd7bca8ffd2b7a7ffdfc4b3ffdcc0b0ffe5c8b3ffe1c5b2ffdec3b0ffe0c4b0ffd9beabffd5bba8ffceb39effd0b4a0ffd3b7a3ffc2a996ffc3ab98ffc2aa98ffceb5a2ffb39e90ffc0a999ffc6afa0ffc3ac9affc7af9effc8b09effc7b09dffc1ab9affc4ae9cffbca896ffc0aa98ffbea897ffb8a491ffbea998ffb8a392ffbaa695ffbaa693ffbba796ffb7a494ffb4a291ffb3a08fffb2a091ffb09f90ffaa998affb19f91ffaf9f8effa09081ffa59383ff7d7167ff8d7e71ff978879ff99897cff9e8f81ff9e8f81ff9a8c7eff95877aff918376ff8c7e72ff988a7dff94867aff928578ff908275ff918377ff877a6bff837668ff7f7164ff786c5eff7a6f62ff7b6f62ff7a7063ff756a5eff7b6f63ff6e6358ff685e53ff62594fff5f564dff685e54ff776d63ff6c6359ff605850ff6b6359ff6c6359ff6c6357ff655c52ff62594fff5a5249ff403c39ff44403cff4e4945ff6b5d4fff716356ff796a5aff7a6a5bff7a6a5aff796a5cff7d6c5dff7e6d5eff7f6d5fff7f6d5dff837360ff82725fff7b6b5aff807060ff7e6e5fff807263ff6c5f53ff78695bff7c6c5dff7a6a5bff7d6c5dff7b6b5bff7f6e5dff827060ff8d7c6aff948271ff958270ff968372ff998775ff9b8877ff9a8776ff9a8675ff968372ffa28f80ff9e8b7aff988573ff9d8979ff988473ff988473ff968173ff968276ffa18d7dffa38e7dff9b8777ff998475ff968173ff9a8576ffa79282ffb1998dffb1998cffae9687ffad9788ffb69f91ffb29b8cffb39b8cffbaa292ffbaa192ffbca394ffbca294ffbca190ffb59d8dffb69e8effae9888ffb29d8dffb9a391ffb69f8dffb59f8dffbba391ffb9a28effbba38fffb49d8bffa18c7dff948073ffb49d8dffb59c8affb69d8cffb89e8dffbaa18fffbaa290ffbfa591ffc4aa96ffc3aa96ffbfa493ffc7ad99ffb89f8dffc0a594ffb89e8effbaa292ffcbb29fffcdb3a1ffceb3a0ffcbb1a0ffd0b5a1ffd2b6a3ffd3b6a1ffceb29dffffed53fffff056ffc6aa95ffc2ae94ffefdbbfffecd7bcfff9e3c8fff3dec5ffebd7c1fff3ddc5fff9e3c7fff8e2c8fff3dfc9fffbe7cdfff3ddc6fff7e1c7fff8e6ccfffff0d6ffffeed1fffce6cafff9e5cbfff8e4cafffbe7cefff5e1c9fffeefd6fffdead0fff6e2ccfff7e2cafffeedd3fffdeacffffdecd1fff9e5cbfffef1d5fffee9cefffff6d8ffffedd3fffff3d9fffbe9cffffff4d6ffffe9cefffff1d8fffffaddffffffe0fffff8dafffffce1fffffff0ffffffeefffffbdfffffffe6fffff3dafffffde3fffffcddfffffedffffff4d6fffff1d5fffbeacffffff9dcfffff5d9ffffefd5fffbe7cdffffeed4fffff8dafffffbdefff4dcc1ffdcbeaaffffff55fffcf961ffdfc2aeffdfc4afffe4c6b1ffe6cab2ffe3c7b2ffdcc0acffe2c5b0ffd6b9a7ffd2b7a6ffd7b9aaffd6bcaaffdfc4b2ffddc3b2ffdfc3afffdcc1aeffdcc1adffdabfabffd3b9a4ffd2b8a1ffd0b6a0ffcdb49effc3a894ffc6ac99ffc9b1a0ffc8b3a1ffbca598ffc1aa98ffbea695ffb49e8effb39e8effb19b8affac9686ffb09b89ffb6a291ffbda896ffbea897ffc0ac9bffbba794ffb7a291ffb5a090ffaf9b8bffb3a191ffbaa797ffaf9d8cffab9989ffac9a8affa4907fffa18e7dff9e8c7cffa89788ffa69585ffa29282ff9c8d7eff85776bff89796eff928276ff98897bff9c8c7fff98897bff96887aff948679ff938578ff8e8174ff918375ff958779ff938577ff928477ff8d8073ff8c7e6fff827669ff837769ff7d7164ff807468ff807466ff796d5fff74695bff776b5eff726658ff706558ff665c51ff585047ff5e554cff6d6359ff655b51ff655b52ff665d52ff675e53ff645c51ff675e53ff5f564cff3e3b38ff453f3dff4f4946ff756657ff756657ff796859ff7e6d5fff7f6f61ff7d6d5fff7f6e60ff7e6d5fff7d6b5cff827260ff7e6d5cff796958ff7d6d5eff7d6e5eff847766ff74675aff7d6e5eff81705fff796a5aff7e6f5eff78695bff756759ff817160ff887766ff877565ff8c7b6aff887968ff8e7d6dff988574ff958372ff968372ff9a8778ff988473ff968171ff968172ff9d8877ff917d6eff8f7b6dff988472ff937f6eff907d6dff917d6dff958173ff9d8778ff968273ff9f8a7affa69181ffb0998affa99483ffa9917fffaa9383ffb29a87ffab9483ffb09a86ffb39d8cffb09987ffb29986ffae9784ffb79e8bffac9482ffb19a89ffac9585ffb49e8effb49d8cffa79181ffa38b7affb09987ffaa9583ffb29b88ffad9685ff9f8a7cff917e72ffa89383ffb79f8fffb59d8dffb8a190ffc4a996ffbda390ffc3a996ffbda491ffb59c8bffbaa08effbba08fffc0a592ffc2a895ffb79e8dffc5ab9affcbb1a0ffccb19effceb29fffd0b4a2ffd5baa8ffd2b7a2ffd4b8a5ffd6baa6ffdfc494ffffee56ffd4ba89ffd2b5a0ffceb99fffead5bdffe3cfb9fff2ddc6fff7e1c8fff5dfc7fff9e3c8ffffead0fff9e1c9fffeedd3fffff0d6fffce6caffffeed4ffffecd2ffffeed6ffffeed5fffee9d0fffde8cdfffbe8cefffbe6cdfff8e3cbfffbe6cefffff6dffff9e5ceffebd8c0fff4e1c7fff5e1c7fff2e0c6fff3ddc3ffffe9cdfffde8cffffde9cffff2ddc4fff7e4cafffae7ccfffee8cbffffeed2ffffeccefffff4d7ffffffe7fffff8dbfffff9defffffff4ffffffe7fffffbddfffeeacefffce9cffff8e4cbfffff8dbffffffe7fffffbdefffce8cdfffae5cbfffff1d8ffffecd2fffff4dafffce6cbfff2dfc4fffde8ccffffeed4ffc1ac93ffe9ccb9fffbf572ffffff6affebcdb7ffeaccb7ffdabda9ffe1c3adffd2b6a5ffd6b8a7ffdec1afffd9bcaaffddc0acffd2b7a2ffe2c6b3ffdfc5b3ffe0c4b0ffdfc3afffdec3b0ffe4c8b3ffdfc2aeffdcc0adffddc1aeffd7bba6ffcfb59fffc8ae99ffceb39fffc4ab98ffc7b0a0ffa29183ffb59e8fffbaa391ffb29d8bffb09989ffb0998affa59081ffb59d8cffb39c8affb6a190ffbba796ffb9a493ffb9a492ffb9a595ffb7a290ffaf9b8bffb19e8dffb7a392ffb4a18fffac9887ffa69281ffaa9887ffa49281ff9b8b7affa59280ff8f7f72ff8c7f70ff948676ff908175ff84776bff908174ff958679ff998b7dff9e8f81ff8f8173ff918274ff8b7d70ff9a8b7dff8d8071ff8f8172ff918475ff897c6fff82766aff86796cff847769ff807366ff7f7266ff7e7265ff7f7366ff786d61ff766b5fff786e61ff7c7062ff786d60ff74685bff695f54ff595149ff47423cff70685cff6f665cff6e655aff6d6458ff685f54ff6a6056ff5a5147ff423f3dff423d3aff494340ff7a6958ff786859ff7b6b5cff7c6c5cff7b6b5bff7c6b5bff7d6c5bff7d6c5bff7a6859ff7d6b5cff7e6c5cff7c6b5bff7f6f60ff7e6f61ff7e6f61ff817161ff7e6e5fff857463ff887767ff8c7969ff8f7b6aff897666ff8c7a6aff847464ff988471ff8f7d6bff95826fff968370ff94816fff9a8674ffa18d7bff9e8b79ff9f8c7bff9b8775ff9f8b79ff998672ff95816eff9a8673ff958171ff948273ff968274ff968374ff948172ff948173ff9a8677ffa18b7dffa89384ffac9687ffaa9382ffa99383ffac9585ffa89282ffb09887ffac9484ffab9382ffa78f7dffa89180ffa48e7cffa99280ffb29a87ffaa9281ffb29988ffaf9685ffb39886ffa98f7fffab9282ffb09786ffaa9381ffa99182ffb29989ff9c8577ff8c796bffb29b8cffb19a8bffbfa695ffbda593ffbfa795ffbda493ffbba28effb59c8affb49b8affbaa28effbca291ffc1a695ffc8ab98ffc3a795ffc3a998ffc9ae9bffcaae9bffccb09dffcfb4a1ffd3b8a5ffd5b9a6ffd2b6a3ffd1b3a0ffffeb53ffffec54ffd5b7a2ffd4bfa7fff0d9bfffedd8bdfff0d9c1ffe8d2baffeed8c1fff3ddc3fff8e1c9fff7e2c7fff2ddc5fff6dec6ffffebd2fffff4dbffffe8d0ffffe9d0ffffead3ffffedd3ffffebd0fffae6ccffeed9c2fffeebd4fffce7cefffbe7cdfffce9d0fff6e2cbfff7e5cefff2dfc6fffbe8d0fff6e2c8fff2dbbffff5dfc5ffefdbc1ffffecd1fffde7cdffffeed3fff9e4cbfffff5d9fffff6dcfffffaddfffffde1fffff4dafffffee5ffffffe7ffffffe7fffffee1fffff7dafffce7ceffffebd3fff5e1c9fff1ddc5fffff8dffffce7cfffecd6bffff5dfc5fff9e3c8fff6dfc3ffffecd3fffae1c9fffee8cefffff3d9fffff9dcfff1e5caffe1c7b4ffe4c8b7ffffff61fff7ec84ffe9cdbaffe3c7b4ffddc0abffd8bba8ffd7bba8ffd4baa6ffddc0adffd9beaaffdfc2aeffddc1aeffd9beabffddc2afffddc1aeffdec2aeffdec3afffdec3b0ffdcc0acffd7bca9ffd3b6a2ffceb39effd6bca6ffd3b7a3ffcab19cffc9b09dffc8b09dffcab3a2ffbfa998ffbea694ffbea894ffc1ab97ffbfa995ffbda795ffbba491ffbba694ffb6a190ffbca796ffbaa594ffb4a090ffb9a493ffb39f8effb19c8bffb9a593ffb49e8dffad9a8affac9a8affab9887ffa49382ffa3917effa18f7fff9d8c7cff8d7d6fff968678ff8f7f73ff918375ff827469ff8d7f71ff918376ff95877aff998c7eff958679ff908172ff948576ff8b7d70ff8c7f70ff8f8273ff8b7e70ff817567ff837668ff807365ff7c6f62ff7d7064ff7d7063ff756a5dff7b7063ff786d60ff73695dff6f6458ff71675aff706458ff6e6558ff6d6358ff635a52ff4a443dff6a6055ff6a6157ff70675dff6a6258ff6a6157ff645c52ff413f3cff423d3aff47423fff7b6b59ff7b6c5dff7a6c5aff786959ff796a59ff776757ff7b6b5bff796859ff7a695aff806e5fff7f6d5eff817264ff7a6d60ff74685aff7b6d5fff7b6c5eff7b6c5dff867665ff867667ff897767ff897868ff897768ff8a7868ff8a7867ff95816fff988572ff8f7d6bff968472ff92806eff998775ff9b8774ff998573ff988473ff978473ff968371ff948170ff9b8776ff9a8573ff998475ff958171ff978474ff978474ff978374ff988477ffa48d80ffa48f82ffab9586ffa89184ffa99282ffad9787ffa68f81ffa79080ffab9384ffa89081ffa28e7effad9786ffae9886ffaf9988ffb29987ffb09785ffb29887ffb09887ffaf9685ffaf9584ffb19685ffad9582ffae9583ffb59987ffb09985ff9f8679ff967f72ffac9786ffb09789ffac9586ffb29b8bffb79f90ffad9787ffb2998bffbba18fffbaa090ffbea392ffbea293ffbca293ffc0a694ffccb29fffc9b09cffc7ae9bffcbb09dffccb19fffd1b7a0ffd1b5a2ffd0b6a1ffd0b6a2ffccb09dffd4b9a5fffff058fff1dc6cffd5b7a3ffc7b39bffecd9c1ffe0cdb4ffebd6bfffefdac3fff3dfc7fff7e2c8fffae4cbfffde7cffff4dec6fffff3dafffde7ceffffe9cffffff0d8fffff3dafffff6ddfffff3d7fffff7dbfffce5cbfff5e1c9ffffefd4fffff0d7fffdecd4ffffefdafffeedd5fffde8d1fffff4ddffffeed5fffeedd5fff8e4cbfffbe8cffff2e0c6fffde9d0ffffefd4fffff5d9fffff0d5fffcedd3fffff8dcfffff3d6fffff3d7fffff4d6fffffaddfffff8dcfffffce2ffffffebfffff2d7fffff1d6fff7e5cafff6e1c9fff1ddc5fff1dec6fff8e4cafffae5ccfff6dfc6fff8e1c6ffffecd5ffffead3fffde6cdffffe9d4fffee8d1ffffebd2fffdeacfffe9d5c0ffd4b7a8fffffc59ffffff5effd9beacffd2b8a6ffd9bdacffe0c2afffdcc0adffddc1adffdbbfaeffd5baa9ffdec1afffe6cab7ffdec4afffe2c7b3ffe1c6b3ffd8bdabffe0c5afffd8bda8ffd7bda9ffd1b7a4ffccb29fffd5baa7ffccb29fffcdb29fffd0b5a1ffcdb3a0ffcab1a0ffceb8a9ffc5ae9fffc0aa9affb9a393ffbaa492ffbfa997ffc1aa99ffbba595ffb8a392ffbaa493ffb5a08fffb7a190ffb6a18fffc3ad9affb5a08dffb5a18fffb19d8cffaf9c8bffad9a88ffac9a88ffab9988ffa49483ffa69584ff9f8d7dff9d8c7cff9e8e7dff99897aff958576ff918173ff938576ff908275ff897c6fff938478ff938477ff958779ff948779ff8f8273ff8f8173ff8b7d6eff86796cff87796bff7f7264ff7b6f62ff7e7265ff807365ff837669ff86796aff807264ff7a6e60ff786d5fff786d60ff74685cff75685cff706559ff70665aff6a6155ff685f53ff5b5249ff554d45ff655b52ff665d54ff625950ff615851ff625950ff353230ff423d3bff44403dff766757ff786858ff786858ff7b6b5aff786959ff756658ff736457ff78685aff7c6c5eff827165ff857669ff73665bff63564bff695b4fff726457ff736457ff746356ff7b6b5bff7d6e5dff817061ff827262ff867566ff917e6fff8e7c6cff8f7e6eff968272ff93816fff938170ff95816fff958373ff988473ff998573ff95806fff978372ff8d7c6cff8e7b6cff927c6cff948072ff9f8a7cff9e8b7dffa18d80ff907b70ff988274ffa48d7bffa89482ffab9584ffad9786ffa6907effac9683ffa99381ffa8917fffaf9783ffad9683ffa38e7dffaf9786ffb09a87ffb89f8cffb49d89ffb09882ffb19984ffb49b89ffac9485ffaa9185ffab9283ffaa9282ffac9483ffab9381ffb29885ffac9180ff917d72ff968476ffb2998dffaf988affa69083ffb09a8affac9586ffb79d8cffb09887ffb69f8effbaa291ffbba292ffc3a898ffc4a797ffc7a997ffcbaf9bffc1a592ffc4a996ffccaf9bffc5ab99ffc9ad9bffceb2a0ffcfb3a0ffd1b6a1ffd5b9a5fff7e263ffffec53ffcdb39affd6b9a4ffc6b29bfff0dcc5ffe3d2bbffe6d4bdffecd8c1fff4e0c8fffbe6cbfff0dec5fff3dcc2fffde8ccffffe6ceffffedd4fffff0d4fffff0d6fffff6dcfffff0d7fffde9cefffee8d0fffce6d0ffffeed3ffffefd6fffff4dbfffff3d9fffff7dbffffecd2fffee9d2ffffebd1ffffefd6fffff4d9fffae5ccffffeed3fffbe7ccffffecd6fffff1d8ffffead1fffff0d6ffffeed3fffff5d9fffff7d8fffffce1ffffffe1fffff9ddfffff7dcfffff6dcfffffadcfffff1d5fffdebd1fffff4dcffffebcffff9e5cbffffefd5fffde9cffffae4cbffe9d6befff2ddc7fff7e1cbfffce6d0ffffefd8ffffebd3fffde7d1ffffedd6ffffedd6ffd9c6aeffd9bcaefffff959fffff656ffcab1a1ffd3b7a7ffdec0adffd6baa8ffdbbfaeffddc2b0ffe0c4b3ffdfc2b1ffd8bba7ffdfc2aeffe0c3adffdabeabffddc1adffd9bda9ffd8bda9ffd7bca9ffd8bda9ffd4b8a4ffd9bfaaffd0b6a3ffc6ad9affcbb19effc0a897ffc6ac9affc9b09fffcfb7a7ffb3a193ffaa9488ffab9588ffb0998bffae9789ffab9586ffbda794ffb8a391ffb5a18fffb6a18fffb6a191ffb29e8effb8a393ffb9a594ffb4a08effb6a290ffb5a192ffb2a090ffad9a8bffa99688ffa59383ffa49283ffa59280ff9a8b7cff938375ff8f7f71ff908072ff9f8e7fff9a8b7dff95877aff8c7c71ff8e7f74ff968679ff948778ff9a8d7eff998c7dff938678ff928476ff8d7f72ff897b6dff897b6eff8d8070ff827669ff85796cff82776aff86796cff887b6fff837768ff807465ff817568ff7a6f62ff72685dff776a5fff6c6358ff6c6359ff696056ff695f55ff695e53ff504942ff4c463fff645c53ff625951ff575049ff181715ff413d3aff484440ff746454ff6e6051ff736252ff716252ff706053ff716255ff796a5cff78695bff7a6b5fff837467ff61554cff61554aff685a4eff6c5e52ff6f6154ff746457ff77675aff766659ff7c6a5cff7e6d5eff7a695bff837263ff827162ff8c7b6bff8a7867ff8b7969ff887667ff867565ff8c7a68ff927f6eff917d6bff8c7868ff907c6bff8e7a69ff917c6cff95816fff958172ff938072ff978575ff988576ff978376ff9f897cffa7907fffa38d7effa79081ffa69180ffa48e7effa58f7fffa68e7effa68f7dffaf9886ffab9382ffaa9484ffaf9787ffb19a89ffaf9888ffbaa28fffb39b88ffb39987ffb89f8dffb29887ffa89080ffa68f7fffad9584ffac9584ffb19887ffa99183ffa78e80ffa28c7dff948174ffa89184ffb0998cff9f897affa28c7effa99082ffaa9283ffb19887ffb59b8affac9280ffb99f8dffbba18fffbca18effbca28fffb99e8cffbca18effc1a693ffbca391ffc0a593ffc2a693ffc9ae98ffccb09bffcaad99ffc8ad9affc9af9cffffe550ffffea53ffd2b6a4ffd9c2a8fff0dcc5fff3dec7ffe9d6c0fff1ddc6fff3e0c9ffefdcc6fffce8cffffde8d0ffffedd4fffff7defffef2d8fffff1d8ffffebd2ffffedd6fffff4dafffff8deffffedd4ffffefd7fffeebd3fffae6cefffff2d7fffffadfffffefd5fffff6dcfffff0d6ffffedd1fffff0d7fffffce1fffeefd4fffff1d6fffff1d6fffff4d7fffff4d8fffeeed3ffffeed3fffff8dcfffff7dbfffff8dcfffff7dafffffee0ffffffe6fffffae1fffff4dcffffecd4fffff1d8fffff3d9fff5e1c7ffffeed4fffae6cefffde8d0fff8e0c6ffffedd5fffae5cefff5decafffae4cdfffae4ccfffde8d0fff9e2ccfffae3cbfffde7d1fffff9e3fffff3dbfff1e0c7ffdfc6b6ffcfb59cffffea54fffff558ffd1b4a5ffd1b6a5ffd4b7a5ffd3b8a4ffd2b7a4ffdfc3afffdfc2afffd9bca8ffd8bca8ffd6bba4ffd9bca8ffd1b6a0ffd0b6a2ffcdb29effcbb09cffd6bca5ffd4b7a3ffcfb4a0ffcfb4a2ffc4ab98ffbfa693ffc6ae9cffc6ae9cffc5ad9affc7b09effd1baaaffb19f92ff9b887affa99386ffa89385ffa69283ffa39081ffaa9486ffa39081ffa99585ffaa9685ffa99583ffae9a89ffaf9c8cffad9a8affac9786ffac9988ffa79585ffa08d7fffa18e7dffa59482ffa39180ffa08e7eff9b8a7bff9b8b7cff978576ff978778ff978778ff97887bff978879ff99897cff897a6fff928479ff918275ff938475ff938477ff8f8175ff897c6fff8a7d70ff8a7e70ff87796aff8a7d6eff85796cff85796cff84786cff837769ff897d6fff8c7f71ff84796bff817465ff827467ff796d60ff70665bff695f55ff6c6258ff6c6357ff6c6257ff655d54ff635a50ff59534bff514a41ff60584fff61574fff38312cff413d39ff4e4843ff79695aff7e6c5dff796958ff706152ff706154ff75675aff7a6c5eff807163ff7f7064ff5f5449ff62554aff65584dff685a4fff6d5f52ff6f6053ff716154ff796a5cff7b6a5dff7c6b5dff7d6b5cff7e6c5eff7b6a5cff7f6f60ff8a796aff8f7c6cff927f70ff887767ff887566ff917c6cff927e6dff938170ff978370ff988470ff8f7c6aff897666ff897666ff968372ffa08c7cff9d8a7aff9a8779ffa59080ffaa9385ffaa9385ffaa9383ffa99282ffa18b7bffa28c7cffa58d7effa1897affa58e7effa88f81ffa68e7effab9382ffa99180ffa68f7effab9380ffb19986ffab9280ffac9481ffab9381ffab917fffa8907effa8907fffa08878ff9f8978ffa48d7cff9e8777ffa08878ff937c70ffa28a7cffa4897cff9f8678ffa18878ffa58b7cffa78d7cffad927fffaa907effad9380ffad9380ffb99f8dffbca391ffb89f8effbba08effbca392ffbca191ffc4a897ffc8ad9effc4a898ffc7aa9affbfa494ffcbaf9cffceb4a0ffd2b6a0ffceb29effffe950fff3d65dffcdb3a1ffbba690ffe8d4bbfff2ddc5fff3dec6fffde9d1fff9e4ccfffce6cdfff5e1cafffdebd1fffff0d7ffffebd4fffef1d8fffff1d9ffffefd8ffffead1fffff2dafffdeed5fff6e2c9ffffead3fffff2d9fffff8e0fffffae2fffff4dafffbe8d0fffff5dbfffff0d8fffdebd3ffffedd4fffbebd5fffef2d8fffdedd4fffff2d7fffff2d7fffff2d7fffeedd3fffeebd1fffee9cffffbe5cbffeed8bdfffce5cbfffee9cffffff7dafffff1d8fffff0d7ffffedd5fffff2dcfffff1d8fffff5dbfffff1d8fffae8d2fffce8cefffee7ceffffedd2fffce9d0fff8e2ccfff9e2cbfffeebd2fffbe9d0ffffefd6fffeead2ffffebd1ffffead1fffeebd0fffff1d7fff6e7ccffc6aa9dffffed57ffffed55ffcaad9dffd0b39fffcbb09effcbb09effceb29fffd2b7a5ffd0b6a3ffd2b7a4ffd0b3a0ffd4baa7ffd0b6a5ffdbc0adffd7bdacffd5bbabffd0b6a4ffc6ad9bffcab29fffcfb6a3ffccb3a0ffccb19effcbb19cffbca190ffc1a796ffc9b09effc9b0a2ffcab1a3ffc9b2a4ffa49186ff9e8a7effa08c80ffa08b7fffa18d7fffa18d7fffa69181ffa79485ffaa9586ffab9685ffa99384ffb19b8affa08c7cffa39181ffb19d8effaf9c8cffb09c8dffa69687ff9c8a7bff9d8c7cffa39081ff99897bffa08f7fff9e8d7dff988776ff907f70ff918172ff918175ffa19283ff97897aff887c71ff97887bff9a8c7fff9a8c7fff998b7eff95877aff867a6cff8a7d6fff86796bff817468ff827569ff84766bff7e7166ff84776aff837668ff7f7366ff827468ff7c7163ff7f7466ff7d7163ff796f61ff756a5dff6d6358ff695f54ff655c52ff635a4fff635b50ff655c51ff675e51ff524b42ff60584eff585047ff494442ff4a4441ff736455ff736455ff736456ff746656ff7b6c5dff847566ff8c7c6eff6e6055ff62554cff675a4eff64564bff6b5c50ff6d5e51ff6c5f52ff6b5d4fff716253ff756556ff756557ff776657ff786657ff7d6c5eff806f60ff847062ff897665ff897766ff816f5fff84715fff887463ff8b7765ff8d7a67ff8c7969ff897665ff8a7767ff877464ff897666ff928070ff998676ff9c8978ff958374ff9e8a7affa58f80ffa28d7effa89382ffa89281ff9c8978ffa18d7dffa79180ff9e8978ffa08a7affa6917fffa28c7cffa99281ffab9583ffad9684ffae9785ffb49d8bffac9583ffb29b88ffae9785ffac9483ffaf9684ffa38b79ffa58e7fff9e8879ff9e8877ffa18a7bff9e8979ff947e71ff8c796bff9a8376ffa0877affa58a7bffae9483ffa78d7cffae9382ffab9080ffab9080ffb39885ffb09684ffb29a89ffb9a08dffc2a997ffc1a794ffb9a08effbfa390ffc8ab98ffc8ab99ffbda190ffc7aa97ffcaac98ffccaf9affcbae99ffcdb09cffecd270ffffe652ffcaaf9cffd4b8a4ffc1ac94ffeedbc3ffedd9c0fff9e6caffefdbc1fff4e0c6fffce8cffffae8cffffef4dbfffef0d8fffff3dafffff3daffffefd5fffff2d9fffff0d8fffff6dcfffff4dbfffde7cfffffeed5ffffeed5ffffeed5fffff1d8fffcead3fffce8d2fffff0d7fffdead4fffdebd2ffffeed6fffff1d8fffff3ddffffefd8fff6e4ccffffeed5fffff4d8fffffae0fffff3d9fffbeacefff0ddc5fff5e2c9fff3e0c7fffff2d8fffff0d6fffff5dbffffefd5fffff1d9fffff2dafffce9d1fff9e6ceffffedd7fff9e5cefff8e3ccfffeeed3ffffebd2fffce7cdfff6e2ccfff7e0c7fffcead2ffffead1fffee8d0ffffebd3fffff5d9ffffefd5fffff0d6ffffedd4ffd8c3a8ffcaafa0ffdcc580fffff457ffccb2a0ffc9ae9dffccb09fffc8ac9bffcfb29fffcab09dffcfb4a3ffdabeacffd5b9a6ffdbbfadffd4baa8ffcfb5a1ffd0b6a0ffd0b5a2ffc6ad9bffcbb19dffd8bca7ffd1b6a1ffd4baa5ffceb4a0ffc7ad9affc2a996ffbea694ffbba494ffceb6a3ffcbb3a4ffd3baabff918377ff9e8b7fff9b8779ffa18c7eff9f8b7effa18e7fff9d8b7dff9f8d7dffaa9583ffa69382ffa59282ffab9584ffa4907fff9a887aff978678ffab9786ffab9786ffa59381ffa18f7fffa59282ffa79484ffa5917fffa18f7fff9f8d7dff9a8877ff8b7c6dff8c7d6eff907e71ff918375ff988a7cff95887bff94867aff93847aff96887dff988a7fff9b8e81ff928578ff8a7e71ff8b7f72ff8d7f73ff84786bff807568ff83776bff7f7368ff807468ff84786dff807469ff7c7165ff807568ff766c60ff797163ff786e63ff74695fff70675cff665d54ff685f57ff61594fff62594fff62584eff5b5449ff524b42ff4e483dff53504bff58504bff706255ff6f6153ff7b6b5cff857665ff847666ff8c7b6dff5e5248ff61544aff695a4fff695a4fff6a5c50ff6e6053ff766657ff79695bff7a6a5bff746557ff7a6b5cff827160ff827160ff837162ff887667ff8b796aff8b7766ff897564ff826e5eff8a7665ff8e7b68ff8a7665ff927e6bff917e6bff8b7867ff827162ff827060ff917d6aff9e8875ff958371ff9c8979ff8f7e71ff998576ffa18b7cff9e8979ff9c8779ffa38e7dff9d8878ffa48d7dffa58e7fff968173ff937f72ffa18b7bff978173ffa79180ffac9583ffae9784ffab9382ffb69e8affb39a88ffa99181ff9f8877ff998172ff9e8777ff9d8676ff9f8877ff9e8776ff9d8676ff9d8475ffa2897aff927c6eff8e7669ff978172ff9a8373ff9a8375ffa48b7cffa78c7dffb19788ffb39889ffb79b8bffbca08fffb49989ffb59c8affb9a18fffc2aa97ffcab19fffc7ad9bffc7ac9bffc2a795ffc1a492ffbea08effc0a390ffcfb29fffcfb39effcfb49effd4b8a2ffd0b5a3ffffe753ffffe752ffceb3a1ffceb7a2ffe8d4bcfffbe3cbfff1d9c3fffee9d3fffff3dbfff9e5cffffeedd3fffeead1fffbe5ccffffebd3fff2e1cbfffbe7cffffde9cbfffff4d8fffff5dcfffff2d8ffffebd1fffeedd5fffde9d2fffff1d7fffee9d0fff4e1c9fff8e3cefff8e1cdfffdead3ffffefd6fffeebd0fffae7cefffef0d8ffecdbc3fff2e0cbffe6d3bcfffeead1ffffffe5fffff3d7fff2dec2fff4dfc3fff2dec6fff4e0c5fff6e1c7fffff3daffffeed4fffff8dbffffefd6fff5e3cbfff7e4cefff4e0c9fff4e2cbffffedd4fffce9d2fffce7d0fffce7d0fff7e1cbfffbe5cdfffae4cdfffde8d0fff7e1c9fff7dfc8ffffeed5ffffeed3fffce7ccfffff0d5fffff5d8fffdead1ffffeacfffc6ad9bffbea596ffffe854fffff359ffd3b7a4ffdbbfadffddc0abffd2b7a4ffd6baa6ffd2b8a5ffd3b9a6ffd6baa7ffdec2afffdfc4b0ffdec4b0ffd2b8a3ffcbb09dffcdb19effc6ab98ffd4b8a4ffd1b5a1ffd3b8a4ffcdb49fffceb5a1ffc5ad9cffb9a18fffbaa190ffc6af9fffd2b8a8ffcbb2a3ffd0b9aaffc1a89aff988379ff98857bff9b897bff9c897bffa08d7effa08d7effa28f7fff988575ffa28d7cffa28e7dffa3907fffa89685ffa69384ffac9888ffa69586ffa49282ff9d8b7cff988576ffa89582ffa28f7fffa28f7fffa08f7eff9f8c7cff968675ff8a7b6cff8a7b6cff948574ff9a8a7dff97887bff96887bff8c7f73ff948678ff948679ff8f8175ff908275ff8c8074ff887b6fff8a7e72ff85796cff7c6f65ff7d7166ff83786bff75685fff82766bff83776aff85796cff807668ff837a6cff847b6dff786e62ff6b6256ff6b6156ff71675dff6a6156ff665c52ff635a50ff5f564cff5b5348ff61594eff544d43ff403c38ff5c5651ff756657ff7b6c5dff7d6f60ff817163ff8c7c6eff5f534aff63564cff66584dff6e6054ff746559ff766759ff817163ff7f6e60ff7f6d5fff7b6b5dff7f6e5eff7d6c5dff837161ff817162ff837162ff7a6c5cff816f60ff7a695aff7c695bff816c5dff7f6a5bff826e5eff84725fff827160ff837161ff877564ff827061ff8b7968ff8a7868ff948172ff938171ff8d7b6dff917e6fff968273ff958173ff978374ff9b8577ffa08a7affa48d7dffa18b7cff9e887aff8e7b6eff9e8879ffa38b7cffa08b7cffa28c7bffa7907effa38d7cffac9583ffac9481ffa28b7aff9b8575ff9a8373ff8e7a6aff927c6dff947e6eff978272ff9b8575ffa08877ffa18a79ff957e70ff8e776cff9f887aff978173ff998376ff957f72ffa78e7effae9484ffb99e8cffb89c8affb49887ffb99d8affb09783ffb9a18fffbfa595ffbea593ffc0a795ffc0a695ffc3a898ffbfa492ffb69a8bffbb9e8cffc4a693ffbe9f8fffc3a691ffc6a994ffc6aa95ffceb290ffffe752ffffe650ffc9af9effb7a58efff3dfc7fff1dcc8fff6ddc7fff7e1cbfff1dbc3fff4dec4fff9e4cafffbe4c9fffff1d8fff9e4cdfff5e1cafffde7ccfffae5ccffffefd6ffffead1ffffefd5fffff4dbffffecd4fffce8cffffeecd2fff4dec8fffbe4cefffae3cdfffdead4ffffefd6fffee8d1fffae4cdfff7e4ccfffcead4fff3e2cbfff6e1cafff2dcc5fffff1d6fffee9cffffeecd2fffae4cbfffae4c7fff5dfc7fff5e0c4fffae7ccfff5e2c8fff9e7cdfffeedd3fffcead0fff6e3ccfffbe8d0fffae7cffff5e0c8fffeead2ffffefd9fffbe3cefffde6d1fff9e1ccfff8e1cafffae6cefff1dcc5fffce9d2ffedd8c2fff9e3cafff8e2cbfffee8d0fffde6ccffffebd2ffffeed5fffcecd5ffedd6bfffc5ab9bfff5d55bffffe958ffd0b5a3ffdec0adffd9bdaaffd5b9a6ffd9bca9ffceb2a0ffd1b6a3ffd4b9a7ffd5bba9ffdabfadffdabfacffd6bba9ffceb4a0ffb9a08effbba08fffc3a692ffc1a592ffc0a591ffc5aa94ffbda28effbda391ffb49b8affb39d8cffb59d8effbea595ffc4ac9dffc2a898ffc4ae9fff9f8b7eff948176ff9d897cff9b877affa18f80ffab9688ffab9888ffab9787ffa08c7cffa59181ffa3907effa28e7effa18e7fffa08e7fffa29081ff9e8b7cff938071ff8d7b6bff948172ff988573ff917d6dff9a8775ff907e6cff918070ff847667ff857769ff837467ff8a796cff908171ff938375ff8e8073ff8e8276ff897c70ff8e8074ff897d71ff887b6fff8b7e71ff887c6fff887c6fff83786dff766d62ff73695eff81766bff7f7468ff7d7368ff7e7366ff7e7365ff796f62ff7f7668ff7d7365ff71675cff685e54ff645c51ff5e574dff5c544bff5c544bff595249ff5c544bff5d544aff5c5448ff3c352eff7f756fff837361ff7d6f5fff837466ff807061ff695c52ff685b4fff706255ff6d6053ff7a6c5dff7e6f5fff7d6d5eff807161ff807060ff827061ff7f6e5dff806f60ff7d6c5cff7c6b5cff7a695bff7f6d5dff7a6859ff826f5fff796757ff756354ff7d6858ff796655ff776454ff786556ff7b6859ff7e6b5cff7b6758ff8c7764ff8c7765ff8b7868ff917d6eff817062ff8a776bff9c8778ff998677ff8f7c6eff9a8777ff998678ff998577ff9b8778ffa28b7bff8e7c6fff9f8a7affa08a7affa08a7affa18b7bffa89280ffa28c7bffa6907effa68e7effa28d7cff9b8576ff8a7669ff877467ff8f7b6cff937e6dff937e6fff978172ff9e8877ffa58c7aff9e8676ff9a8273ff8d796bffa68e7fffa78f7fff9b8475ffa48a79ffac9383ffbba090ffbca18fffbb9e8cffb79c8affb79b87ffb79e8affbca18fffbda28fffbea48fffbda290ffc0a390ffbda18dffba9c8affc3a590ffc1a38effc0a18dffc5a590ffc6a791ffc1a38effc6a892fff2d560ffffe651ffd5b997ffdcbda7ffb3a18cffeed6befff0dac3fff0d8c2ffffe8cefff3dcc3fff7e1c7fff9e6cdffffebd0fff6e4cbfff7e2cafffff1d6fffce6cdfffff5dcfffff1d5fffde6ccffffedd1ffffedd5fffce5cdfffff8e0ffffeed2ffffedd0ffffead0ffffedd6fffce5cefffff3dafffee8cffff4dfc9fff8e3ccffffecd5fffbe4cdfffbeaceffffedd4fffeefd7fffeeed4fff9e5cdfff7e0c6fff8e1c6fff6e0c7fffbe7cafff9e5c9fff2ddc4fffae6cefffff3dcfff2e0c8fff2dfc8fffae6d0fffff5deffffecd6fff9e4cefff8e3ccfffee4cffff6decafff4dec5fff7e2c9fff5dfc8fff5e0c7fff3ddc6fff1dcc4ffecd7c0fff2dcc6fff7dfc8fff0d9befff0d8c0fff6e3c9fff5dfc5ffb6a38fffd0b5a3ffd0b58affffeb56fff3e370ffe2c5b2ffe2c5b3ffe0c1afffdcbeabffd8baa6ffd6b9a6ffddbfadffdabda9ffdcbfabffd4b8a4ffd2b6a2ffcfb3a0ffc6ab98ffc7ac98ffc7ac97ffc1a590ffc8ab96ffc6a996ffb9a08dffbaa08cffb49b89ffb49b88ffb19b8affc8ae9bffbfa896ffc2ab99ffc8b1a0ff8c7d71ff98867aff958276ffa18c7effa28d80ffb19b8dffad988affaa9588ffa79384ffa99486ffa38e7fffa38f80ffa08c7cffa18c7dff9f8c7dffa38f80ff9e8b7cff998677ff9a8877ff958473ff927f70ff968473ff8e7c6cff877666ff8a7a6bff867668ff847467ff88786cff8e7e71ff8b7c6eff938375ff877a6eff86786dff8a7b70ff877a6fff817469ff85786cff8a7d71ff877a6fff867a6eff82776bff7a6f64ff786d63ff7e7368ff7c6f65ff7e7268ff7f7267ff7e7266ff796d61ff7f7469ff7a6f64ff74695fff60574eff5a524aff595249ff5c544bff584f47ff5a5148ff5b5148ff63594fff695d52ff4b4139ff8e7e70ff938475ff776859ff6a5e51ff6b5e52ff776859ff7a6b5dff837565ff897968ff867565ff887767ff8a7968ff887764ff897766ff877564ff8b796aff847162ff7a6a5bff806f5fff827161ff857362ff857463ff897666ff897765ff8b7866ff877362ff847160ff857162ff837062ff857264ff857465ff897768ff917e6fff938171ff75665bff877568ff998475ff988476ff907d6fff988475ff9a8676ff998576ff998577ff9f8a7bff988274ff937f70ff988575ff927e70ffa08b7bffa38c7bffa08a79ffa38d7cff957d6eff9a8474ff9f8978ff8c7768ff8d7869ff937e6dff8e796aff947d6dff917c6dff978172ff9f8877ff9c8575ff9c8575ff887366ff937f70ffa48d7cffa48e7dffa18a7affa18977ffa89080ffb69b8bffb19787ffb59a8bffbba08dffb79c88ffbb9f8cffbfa693ffc2a793ffc3a794ffbea28effc5a792ffbb9e8affc2a491ffc6a996ffc9ab97ffc7a995ffcbac98ffd3b39dffcdae99ffccad98ffffeb53fffff65effdbbda8ffd1b7a2ffdfcab4fff2d9c0ffefd7bffff5dcc4fff5dcc3fffbe4cafff1dac3fff2dcc2fff8e4ccffead6bfffe8d3bdfff9e3c9ffffedcffffceacdffffedd0ffffe8cdfffff2d8fffff1d4ffffeed3fffff1d8ffffedd4fffae2c8ffffe7cdfffde8d0fffff1d7ffffead2fffff1d9fffff2dcfffde7d2ffffecd7fffbe5cdfff9e3caffffefd7fffce7cfffffeed5fffae1cafff8e3cafff7e4c9ffffefd3ffffedd3ffffebd1fff7e1cbfff8e2cbfffde9d2fffce9d3fff3e0cafffce7d2fff3dec8fff8e5cdffffedd3ffefd7c3ffefd8c2fff7e1cdffe6d1bafffae3cbfff7e2cbffefdbc4ffe1ccb8ffead6bcffead5bdffecd6c1ffecd7bdffe9d2b6ffedd7beffe9d3bafff1dac0fff3dcc1ffecd3bfffd0b2a1ffffe955ffffe753ffd1b5a1ffddbfabffd9bba9ffd6b9a8ffdabeabffd4b6a2ffdcbca7ffd7baa5ffdcbfa9ffdabca9ffccb09cffccaf9bffc2a692ffbba08dffc6a996ffc4a995ffc0a490ffc8aa97ffc5a998ffbea490ffb39b88ffbaa18effbea595ffbea693ffbba390ffc3ac9affc1aa9affc4b0a0ffbca393ff958377ff9b887cffa58f81ff9f8b7effa79386ffae988affab9586ffaf998affa99486ffac998affa28c7dff9b8778ff9d8a7bff948274ff9f8b7dff948174ff978373ff968374ff938272ff907e70ff927f71ff928070ff887869ff847467ff867668ff8e7d71ff8a7a6cff88786aff8e7e72ff928376ff928278ff7b6c63ff87776eff8d7f73ff81746aff83766cff887a70ff887a71ff83776cff84786eff7f7167ff756b60ff786d64ff796d63ff796f65ff7f7368ff75695eff7b6e63ff75685eff6a6158ff6e6359ff675d53ff5f554dff574f48ff5c5249ff5b524aff5c544bff575047ff5c524aff61564cff9d8e7fff746759ff706458ff807262ff807162ff807162ff837565ff887767ff877666ff8a7868ff8e7d6aff8f7d6bff8c7b69ff887665ff887465ff8a7768ff7e6e5eff837161ff857464ff887665ff897665ff8f7a69ff937f6cff867160ff7f6b5cff816d5eff7e6a5bff836f5eff83705fff897664ff887563ff887767ff8d7c6dff7a6a5dff857365ff978575ff928070ff8f7d6dff998575ff9f8b7aff9c8879ff9d8878ff9c8878ff8d7a6bff8f7c6dff978473ff948070ff958172ff9e8876ff9e8776ff9b8473ff9a8371ff927d6dff957f6fff8b7667ff8b7768ff887466ff947f70ff947d6eff968171ff9a8474ffa88f7effa18877ff8c776aff887366ff887869ffa0897bffa68e7fffad9484ffae9585ffb49c8cffb19689ffb29888ffb89c8bffb39987ffb19683ffba9d8affbea48fffbea490ffc0a693ffbda28effbda18cffc4a792ffc2a691ffc8ac95ffceb19bffd3b59fffdbbda7ffc9ab97ffc3a691ffc9ab96ffcaad97ffffed56fff8e765ffe5c7b1ffb0a08afff6dec7fff2dbc5fff7ddc6fff0dac4ffefd9c2fff3dac1ffe9d3beffe6d1b7ffecd7bdfff9e3c6ffffedcffffce8ceffffedd2fff9e6cafffee7cbfffff2d7ffffeaceffffeccfffffead0fffeecd6fff3ddc7fffde7cffffce9d0ffffecd1ffffebd1ffffeacffffdedd1ffffefd4fffbe4c8fffeead1fffae5cbfffbe0c6fff0d9c2fffce7cefff9e3cbffffebd2fffae6cdfff9e1c8fff3ddc5fffee9cefffeebd2fffde6ccfff7ddc4fffce7d0fff8e3cdfff5e1ccfff3e1cbfff3e0c9fff1ddc6ffead5bdffecd7bfffecd8bffff1dbc3fff4e0c6ffefd9c1ffebd6bbffe4d1bbffeed6c3ffead2bfffe9d4bfffe7d1bcfff2ddc2fff8e0c4fff4dec3fff0dac1fff3dcc3fff6dfc7ffd9c3a9ffd1b5a5fffeed5dffffee5bffddc4a3ffd7bba9ffd5b9a7ffd8bba9ffd5b9a5ffcbae9cffd7b7a3ffd6b8a5ffd7baa7ffd8bca7ffceb39fffc9ad98ffcaae99ffccaf9affc9ac99ffcbae9bffcfb39fffd2b5a2ffc1a594ffb99b8affbea08effb99f8bffba9f8cffbea590ffc4ab96ffc7ae9cffc8b2a2ffcdb7a7ffb9a798ff9f8d80ffa69185ffa28e81ffa28d81ffa79185ffa89385ffac9689ffb09a8bffaa9587ffad9788ffa99586ffa59382ffa49181ffa38f7fff9a887aff968376ff9a887aff9e8a7bff9b8678ff9f8c7cffa18d7fff958573ff877467ff8b7969ff8a7969ff8a796aff8c7a6cff89786aff8c7b6eff918072ff8b7c70ff8c8073ff776960ff85776dff8a7c71ff7f7268ff87796eff897c71ff86796fff81756bff7f7267ff796d63ff71655bff786b61ff776d61ff746a61ff766a5fff76695dff76695eff6f6256ff65594fff6c5f55ff665c51ff595048ff5a5249ff554e46ff5b524aff5d534bff5e544bff5d534cff74665aff807062ff877968ff8c7c6cff8c7b6bff8b7b6aff8c7c6cff8f7e6eff8e7d6bff8d7c6aff8c7a68ff948271ff8b7a68ff887665ff867364ff816e5fff826f5eff877665ff897764ff8a7765ff8c7866ff8e7b69ff8b7667ff867363ff867363ff877362ff877362ff8d7867ff877363ff887564ff867365ff897668ff76655aff7c6a5dff857265ff907c6cff917e6eff958171ff998675ff9a8778ff978474ff938072ff877567ff937f71ff958274ff938071ff968172ff9a8575ff9a8473ff9f8876ffa08978ff9a8473ff968171ff978172ff8f7a6bff937e6fff9b8575ff998373ff988272ff998372ff988272ff9c8473ff998271ff8c7669ff857165ff9d8777ffa48c7dff978172ffa38a7bffae9585ffb69b8bffb59d8cffbca191ffb59a89ffb59988ffb49985ffb69a86ffba9e8affbb9f8bffbda18dffbea28dffc2a58fffbb9e8affc0a38effc9ab95ffccae99ffd5b8a2ffd6b7a2ffccae99ffc9ae99ffcfb29cffffee57fffff05affe6ca9fffeacab5ff978774ffe5d0bafff2dcc5fff3dcc2ffead9c1fff3ddc6ffffecd4fffce9d0ffe6d1bafff7e7c9fffff0d2ffffebcfffffecd1fff9e5cbfff3dfc6ffffecd1fffce7ccffffebd0fffff0d5fffde8cdfffee6ccfff0d9bfffecd6befff6dfc6fffde3c7fffee7ccfffff0d4ffffeed0fff7e1c4ffffefd1ffffebcffffff2d6fff6dec4fff1dcc3fffde8ccfffeedd5fff6dfc8ffffead2fff5e0c9fff7e3cdffffeed4fffff3d9ffffe8d0ffffedd4fffeebd5fffee7d1fffae5cbfff1e0c6fff2ddc5ffecd7c1fff8e2cafff4dec8ffe7d3bdffead5beffead5c0fff4dfc9ffe8d2beffebd5c1fff0dbc4ffe6d1b9ffddc8b2ffead5c0ffefdac2fffbe2caffefdac1ffe8d4bcffead2bbfff3ddc9ffccb69effd5baaaffc2a99affffe957fff8e775ffdec3b1ffd5baa9ffdcbeaeffd4b7a5ffceb09fffceb09dffd1b29fffd2b4a0ffcfb39fffcbaf9cffcaaf9affc8ab96ffc3a793ffc4a893ffc9ad99ffceb19dffceb09dffccaf9bffbea28fffb9a08dffb8a08bffbea38effba9f8bffc4aa96ffcaae9affc2ab99ffc6b09fffcbb6a6ff938477ff9d887dffa79486ffa89587ffa69385ffa89486ffaf9a8dffa99487ffab9689ffab9788ffaa9586ffa99587ffa49182ffa59182ffa59181ff988577ff958274ff978375ff978477ff998576ff9e8a7bff9e8c7cff998877ff8c7c6cff877969ff867768ff8c7c6dff8b796dff917f71ff827367ff8c7c6dff8f7f72ff8b7e72ff786a60ff7b6e62ff8c7c71ff83766aff86786dff897c71ff8a7d71ff85786eff81746aff75695fff70645aff74695fff776d62ff70655cff74675eff76695dff72655aff766a5dff716458ff6a5f55ff665b52ff5c5149ff5d534aff5e554bff5f554dff5f554dff5d544bff908070ff908070ff8d7d6dff94826fff917f6dff958270ff8e7c6aff917f6dff8f7d6aff938270ff938372ff897867ff8f7c6cff867467ff7f6f5fff867566ff928071ff8d7a69ff897563ff8d7967ff937f6dff8d7868ff8d7768ff877263ff867361ff867262ff857261ff847261ff867464ff877465ff7a695dff63554dff7b6b5fff837265ff897668ff887668ff998475ff998576ff928072ff978373ff988474ff8e7a6cff998475ff988375ff998375ff9a8475ff9f8979ff9e8676ffa18a79ffa18b7aff9d8677ff998272ff9f8778ff998374ff9a8575ff998274ff9c8576ff9b8576ff937d6fff957f71ff947d6eff957f70ff8b7668ff877366ff917c6eff958173ff947c6fff977f71ffa58c7cffb09787ffaf9584ffb59d8affb19683ffb19683ffaa907dffb09583ffaf9481ffb69b87ffb39784ffb19782ffb19582ffb39783ffb99d89ffbfa48effc4a692ffc9ac97ffceb19bffceb09bffceb19cffcbaf99ffceb09bfffff259fffff258ffe2c3acfff1d9beffb3a28effdecab4fff0d9c3fff5e0c7ffead7bffff3ddc7fff8e2ccfffcead2fffce8cffffff0d6fffbeacdffffedd2fffff2d9fffeeed3fff9e2c7fffeead1fffff1d6ffffefd3fff8e1c6ffffebcffffae3c7fff5dec3fffee6c9fffee5c9fffae4c8fffae3c9ffffedd2fffce8cdfffbe4c7fffde6c8fffee9cdffffedd4fff4e0c8fffde6cffffbe6cdfff8e3cbfffde8cfffffecd2ffffecd3ffffeed6fff9e3c5fffff0d6ffffedd0fffde7cbfffae3c8fffce6cdfff9e4c9fff0dbc1fffae4cafff9e1c7fff9e3cbffebd7bfffeed8c1ffe9d4bdffe9d3bcffeddac2fff7e4ceffe9d2bcffedd8c0ffe5d2b9ffecd5bdffe3ceb9ffe1cdb7fff6e1c9ffedd8c3ffe9d4bdffe9d4bcffeed8c1ffe3ccb7ffcfb7a5ffbca394ffffe153ffffe857ffcfb6a3ffd1b6a4ffdabeacffd4b7a4ffcdaf9affc9ab97ffc4a794ffc5a792ffc2a591ffbca08dffb99e8bffb59a87ffb79b89ffbea28effb99d88ffc2a794ffc0a393ffc1a493ffc2a694ffb79c8bffb69e8bffb79d8affb9a08dffbba18fffbca18effc7ae9dffc1ab9bffc2ac9cffc5b1a0ff9d897cffa89486ffa99688ffa99589ffa99587ffa18d80ffab9587ffa08d80ffa48f7fffa28c7eff9f897cffa08b7dffa08b7bff9a8576ff8d7c6eff8c796dff968376ff998678ff988374ff958171ff928072ff938171ff948172ff8c7a6bff8a796bff897869ff89786aff887669ff8a776aff8a796cff85756aff7b6c62ff72675eff7a6c64ff7c6d64ff84766dff75685eff85796eff867a6eff877a6fff7f726aff82756bff7a6f66ff786b62ff796d63ff796e65ff766a61ff75695fff766b60ff7a6f63ff786e62ff74695fff6b6057ff70645bff665c53ff645c52ff645951ff635851ff675c52ff998b7aff9d8d7dff968776ff988777ff908071ff938374ff948575ff978576ff918272ff988879ff9a8a7aff908071ff8e7e6eff87796aff8b7b6cff8e7c6cff8f7d6cff8e7b6aff897666ff8e7c6bff8f7b6aff937e6cff917d6cff847262ff8a7565ff7e6c5dff7b695bff7c685cff8a7669ff7c6b5eff705e55ff716258ff7f6d62ff846f62ff867468ff927e71ff9a8577ff978476ff968273ff978274ff968172ff988373ff958072ff9b8678ff9c8577ff998275ff9f8778ffa18979ffa08878ffa08879ff9e8678ffa0897aff9b8576ff9b8476ff9c8475ff9a8174ff957e6fff957e6fff978071ff977f6fff927a6bff90796cff897367ff817063ff937d6fff9f8779ff998273ff9c8576ffa68e7fffb59d8affb8a08effb59c89ffae9481ffb09583ffac927effaf9480ffb49884ffb89c87ffbea08cffbb9f8affb79d8affb89d8bffc1a591ffc9ab98ffc4a792ffceb099ffd5b7a0ffd3b49fffd7b9a3ffd6b8a2fff3e26efffff55efff3e272ffdfc1acffb9a891ffdac7b1ffebd6c2fff1ddc6ffefdac4fff8e3cefff5e0cafffce7d1fff7e2ccfffde9d3ffffe8cefffee8cefffae3ccfffeebd0ffffecd0ffffeed1ffffeaceffffebcffffee5cefff4dbc1fffbe1c6fff9e2c9fff3dcc4fffeecd1fffce5ccfff3ddc6fff2ddc5fff7e0c7fff6dec4fff8e0c4fffbe5cbfffee8cdfffae7cfffefd9c2fff1dcc6fffee9d3fffdead2fffae5cafffbe6cbfffae5caffffeed6fffeecd0fffeead0fffff2d7fffae5ccfff2ddc6fff9e3cdfffce6cdfffee9cffff9e2cbfff3ddc4ffe9d5bbffedd7bcfffde8ceffe9d4bcffe9d2b7ffe2ccb6ffe8d2b9ffefdac4fff1ddc6ffe4d0b6ffe0c9aeffdbc6acffebd5bdffecd9c3ffe7d1bcffead6bdffeed9c1ffeed9c2ffeed9c1ffc9b6a0ffc6ac9cfff7d95bffffe254ffd0b594ffd7bca9ffd5baa8ffd2b8a3ffcdaf9cffc5a995ffc6a995ffc1a58fffc5a893ffc3a792ffc7a995ffc7ac96ffbda390ffbda491ffbea491ffc4a895ffc0a390ffc5aa95ffc6ab95ffc1a691ffbea290ffbba08dffb79c8affbba190ffbba190ffbda391ffbfa895ffc6ad99ffcab39fffae9b8affa68f80ffa59082ffa89485ffa89485ffa39181ffa28f80ffa08c7dffa49081ffa28e7fffa69181ff9d8a7affa18d7eff9d8c7cffa18e7dff978576ff9a8878ff988879ff988879ff9b8a7bff958275ff9a8676ff978574ff958373ff917e6eff8e7c6cff867566ff857665ff7f7062ff796a5cff7f7062ff827365ff796b5fff6e6258ff6a5f57ff85776cff817267ff796c62ff7d7264ff87796cff867a6dff817369ff817369ff7e7066ff7f7165ff7b7065ff776b61ff796c63ff786c63ff776d62ff7a6d63ff786b60ff776a60ff74695fff6f645aff6c6258ff6a6057ff6b6156ff675d54ffa09282ff9e8e7eff9c8c7bff948474ff998979ff9a8a7bffa1907eff9f8d7dff978676ff968676ff998979ff8c7e6eff897a6cff8e7d6fff8e7c6eff8c7a6bff927d6dff8e7a6aff897867ff927f6eff8f7a6bff8a7667ff847162ff847061ff7b695bff7c6a5dff79665aff7d695dff7c695dff7e6d60ff7a685eff7c6a5fff806e61ff836f63ff8f7b6fff927e72ff958174ff937e70ff917d6eff8f7b6dff8b786aff958172ff917d6fff8e786cff927c6fff9e8677ffa2897aff9f8778ff9f8679ff8f786bff988073ff998174ff998173ff9b8375ff917a6dff937c6eff917b6cff957f6fff917b6dff907a6cff927c6eff836f64ff7a665cff8e7a6bffa08879ff9b8376ffa28a7affa2897bffa58c7dffb09986ffad9280ffaf9481ffa78f7effae9380ffae9280ffb59986ffbb9e8affbda08cffb99d88ffbda18dffc0a48fffbea390ffba9f8cffc2a48fffc8a994ffccae98ffceb19effd2b39fffceae99ffd6b8a2fffff057fffff158ffcfb29effddbea9ff958471ffeddac6ffe6d4c1ffead4bfffefdac3ffefdbc4ffead7c3ffe5d1bcfff2ddc6fff9e2c9ffffeed6fffde8d1fffde9d0ffffefd5fff7e1c6fffae3cbfffee7ceffffefd6fffff5dcfffbe5ccfff7dfc1fffeebd0fff4ddc5fffce7cdfffce7cdfffee8cffffbe4cdfff8e1c9fff6e0c7fffae2c9fff8e1c9fffce4ccfffae1c9fff5ddc7ffefd7c1fffde6d0fffbe3cbfff1dbc3fffde8cbfff9e2c5fffdead0ffffeed6fff7e2ccfff6e0cafffde7d0fffce5cffff8e3ccfff0dbc3fffae3c6fff4dec4fff7dfc5fff6e1c8fff0d9c2fff6e2caffdfcbb5fff0d9c0fff1dac3ffe7d3bafff1dcc6ffe9d5beffecd6baffefdabeffe6d0b7ffead4bbffeed8c0ffe1cdb6ffead5bdffead5bcffedd8c1ffe7d4c0ffad9b8affccaf9fffc2a698ffffe556ffffe556ffccb1a0ffd1b7a4ffcdb09dffcfb09cffbfa492ffc3a792ffbfa18fffc5a895ffc6a996ffc4a894ffbea38fffc1a693ffbea390ffbca28fffb69c89ffbea18effbb9f8cffbea28effc1a693ffbca390ffb99d8affbaa08fffaf9585ffb19888ffaf9887ffb8a090ffbaa392ffbba392ffc8b0a0ff8e7d71ffa38d81ffa99485ffa49181ffa99788ffa99686ffa28f7fff998778ff9d8b7cff9f8c7effa28d7effa38f80ffa18d7dffa18c7dffa18e7eff9b897cff908074ff8e7d71ff958378ff907f73ff998677ff917e6fff907f6eff907e6fff8e7d6dff8c7c6dff847366ff827264ff78685aff7a6b5eff736459ff837265ff776a5eff6f6358ff645a52ff6a6056ff786b5fff7b6d62ff7c6f64ff877a6eff83786cff7f7367ff7c7064ff7a6e62ff776a5dff7a6e62ff776b62ff70655cff6e6259ff786c61ff7a6d61ff73655bff76695fff665b52ff685d55ff695f56ff695f56ff645b52ffa59684ffa1907fff9f8e7dff9f8f7eff9d8c7dff9d8c7cffa69484ff998779ff9e8f7eff9b8c7cff99897aff958576ff958475ff927f71ff968275ff907b6bff8c7867ff8d7b6bff927f70ff8c796aff877464ff826f61ff7d6b5eff7a695cff7f6c5eff7b6a5cff847164ff816d61ff7d6a5fff8b786bff79675cff7f6c61ff877569ff8c796dff937e72ff8d796eff8e7a6dff947e71ff927e70ff907c6eff8a7769ff958071ff978374ff968072ff998274ff978173ff9d8576ff9f8777ff9c8476ff9f8678ff957e72ff947d71ff9a8275ff967f72ff9a8375ff9b8374ff998274ff9d8577ff988073ff9f8778ff8b7568ff837064ff847366ff9f8879ff9c8478ff9a8274ffa68e7fffa98f81ffb29989ffae9484ffa28a7affab917fffb29784ffb19582ffba9e8affba9e8affb29784ffc1a48fffc0a48effb69a88ffb99e8bffbda290ffc5a793ffc1a38fffccae97ffceb099ffd1b29effd0b19cffd5b6a1ffd9b9a3ffffee56fffff259ffdbbda9ffd2baa5ffebd6bdfff4dfc6ffe6d1b9ffe5cfb9ffe9d4bdffe0ccb4ffe8d4bfffe8d3bdfff4ddc4fff7e2cafff4e0c4fff7e0c5fff9e3cbfffde7d0fff5dfc7fffde8cdfffee7cffffae4ceffffebd3fffae3c9ffeed7b9fff2dcc4fff4dec6fff7e1c9fffbe7cdfffde9d1ffffebd2fff9e6cafff5e1c6ffffeed4fff6dfc7ffffebd3fff8e2caffefd8c2fff8dfc9fff5dfc7fff5dec7fff3dfc5fff4e0c4fff4ddc4fff7e2c7fff9e4cbfff3ddc8ffefdac5fff4dfc6fff1dac1ffebd2bcffedd7bfffedd8bfffe2cdb5ffe9d6bdffefdac2ffedd6c0ffecd5bfffdbc8b1ffe5d0bcffe7d4c0ffddc9b3ffd2c0acffe6d2bbffdfcbb1ffdfccb3ffedd9bfffe5ceb2ffe9d5b9ffead4bbffe6d3bbffe8d5bdfff4ddc3ffebd7bfffe0cbb4ffdac2afffc9ae9effffdc51ffffe457ffc6ab9cffcdb2a0ffcbaf9effc0a594ffbfa391ffc6a996ffbfa48fffcaac98ffc6aa96ffbda190ffc4a897ffb89d8bffb69c8bffbca18effb39b8affbda28fffb59b87ffbaa08bffbea38dffbba08dffb89d8bffb69d8affb79c8affab9282ffad9585ffb09888ffbca494ffb59f8effbba495ffbba497ffb29b8dffa08b7effa08c7effa18e7effa18d7fffa69183ff9f8b7bff998578ff9a887aff9b877aff978477ffa08f80ff9b8a7bff9c8a7bff9c8c7cff908172ff8c7b6fff928174ff907e71ff958375ff8f7e6fff907e6eff907f71ff8e7e71ff897a6dff817264ff7f6f62ff796a5dff786a5dff7c6d60ff72675aff7b6d60ff6e6256ff685c52ff796c60ff71655aff786c61ff7d7065ff7a6e63ff81766cff817469ff7a6e62ff7c6e63ff796d61ff796d60ff74685dff776b61ff766a61ff74695fff756a5fff72665dff74675cff776b60ff6f645bff6c6057ff685d55ff635a52ffa69584ff998879ff9c8c7cffaa9888ff988778ffa39281ffa39081ff9c8b7bff9a8a7bff998878ff988878ffa28e80ff948071ff8f7b6dff9c8777ff948070ff948172ff8a7768ff8a7667ff816f61ff7a695bff7c6a5fff806d60ff766559ff7f6b5fff837063ff867366ff87756aff8d796dff887467ff8a776bff877468ff826f64ff958073ff897468ff8c776aff8d7a6bff917c6eff927c6eff847165ff917b6dff907b6dff968072ff978173ff947f6fff8f796aff968173ff988274ff967f71ff90796bff8b7569ff957d71ff967f72ff967f71ff9a8274ff988173ff978071ff927b6eff978174ff947d71ff967f71ff857266ff9e8879ff9e8978ff957e70ff9e8878ffa0887affaf9686ffad9483ffa2897affa48d7cffab9281ffab907effae9381ffac9181ffb29583ffb69985ffbb9f8bffc2a490ffbb9f8bffc0a28fffb99d8bffbe9f8cffc4a993ffbfa28effc4a691ffc8a793ffc8a893ffcaac98ffdec37affffef5afffcef63ffe2c2acffa99885ffecd8c3ffe1ccb5ffe3ceb7ffead6beffeed8c1ffead5bffff2dcc7ffead5c0ffe9d6befffce5c9fff5dfc4fff1dcc1fffdead0fffff0d7ffffeacffffce5cbfff4dec6fffde9cffffae1c6fff4ddc3fffbe3c6fffce8cdfff3dcc6fffae4cefffbe7d2fffde8cffff6e3c9fffae5ccfff9e5cbfff5e0c8fff1dac4fff6ddc8fff7e1c9ffecd6c1fff9e4cafff1ddc4fff1dcc4ffe8d5beffe5d2baffe7d5befff0ddc3fff3dfc5ffeddbc4fff1dec8ffefdbc5fff1dbc4fff1d9c0fff7dcc3fff2dbbfffe4cbb2ffead2b9fff4ddc7ffecd7bfffe9d2bcffe6d0bbffefd8c3ffe4d0b9ffe3d0b8ffe2cfb6ffdbc8b0ffe5d2baffe2d0bbffe0ceb9ffe5d0b9ffe9d6befff1dec4fff0dbc4ffead4bcffe9d6bdffe1ceb9ffd7c4adffc1ae98ffc5ab9affe4c16dffffe458fff4d762ffd0b4a3ffcaaf9cffbda091ffbda290ffc0a594ffbca08cffba9e8cffb89c8bffb69b8cffbda08fffbda18fffba9f8dffb79c8affb69c8affb19886ffaf9483ffac9280ffb49986ffaf9382ffaf9381ffab907dffa9907fffa28b7bffab9383ffaf9785ffb69d8cffc0a896ffb9a291ffc4ab9cffa49183ff9b8578ff9b8678ffa28f81ffa08d7fffa18e80ffa59383ff9a887aff928173ff9a887aff988779ff958476ff9b897cff968477ff99897bff978577ff948374ff928173ff8f7f72ff8b7b6eff877669ff877568ff8a776aff8c7a6bff837365ff817265ff796a5eff73645aff716359ff74655bff6d6055ff6d6057ff7a6c5fff75695dff776a5fff73685dff70655bff75675cff776c60ff7b6f65ff7c7165ff7d6f65ff7c7063ff796d60ff796d61ff786b61ff6b6259ff73675eff75695eff776d62ff756960ff72675eff73675eff70645bff70655bff6f635bff685e55ffaa9886ffac9988ffa39282ffa59281ffa99886ffa18f7eff9d8c7aff9b8b7bff9e8c7bff9f8f7eff9b8676ff9d8878ff94806fff998574ff998576ff998676ff968273ff917e6eff867466ff806f61ff847266ff8b786aff8b7768ff877567ff8a7769ff847163ff847165ff968072ff907c6eff8c796bff867366ff837064ff8b766aff8a7569ff8b766aff8e7a6bff8f7a69ff927c6bff8b7667ff8e796aff8d796aff927b6dff8c7569ff947e71ff988174ff978072ff978072ff967f72ff917a6eff947c70ff8c7569ff91796cff91796dff9b8273ff988273ff967f70ff8f7a6cff988273ff9b8374ff947e71ff826e63ff816f62ff9e8879ff927b6eff927c6fff998173ffa38a7cffa48b7dffa58b7cffa58c7cffa48b7cffac9281ffad9281ffb49987ffae9281ffac9180ffac907fffab927fffb59785ffb69986ffb69885ffbd9f8dffbca08dffc6a792ffc8aa94ffc5a791ffc8aa95ffc5a794ffc4a692ffffef57ffffee58ffd5b6a2ffdfc0abff958772fff1d9c2ffe3cfb7ffe5d1b9ffecd6bfffe5d1b9ffead5bfffe9d6bfffecd8c2ffeddbc1fff2dfc7fff1dfc6fff2dec7fffdeacffff8e4cafffee6ccffffe9cffff6e1c7fffde8cffff3dec4fff3dec2fffbe2c7fffae0cafff9e1cbfff8e3cdffefdbc2ffeed9c1fff9e5cbfffde8cffff4e0c7ffefdbc4ffecd8c1fff1ddc4ffebdac0fff4e2c8ffedd9c1fff4e0c7fff4dec6ffebd8c3ffe9d6c0ffe6d4bfffe6d4c0fff1dfc7fff1dec7fff7e3cbffeedcc5fff0d9c3ffeed9c2ffeed8c1ffebd6bcffe9d4baffecd5bdfff3dbc1ffedd6bcffebd7c0ffe9d5c0ffe4ceb9ffe4ceb9ffe7d1bcffe3cfb9ffe6d2bbffe2d1b8ffd9c8b3ffd9c7b2ffe1cfb7ffe1cdb7ffe1ccb7ffe3ceb8ffdfcab5ffdfcab5ffdac5adffdec7b1ffa08f7bffc7ad9bffb69c8dffffd44dffffd950ffc3a897ffc4a999ffc3a796ffbda18fffbb9f8fffba9f8dffbea291ffbda18fffbb9f8effae9484ffb19586ffa38b7bffac9281ffb19685ffb19684ffb19683ffad9381ffb09683ffaf9682ffac927effab907effa68d7cff9d8675ffb09684ffa68e7effac9483ffb69d8affb6a08dffc0a794ffbfa895ff8e7d6dff907c70ff998477ff9c8a7dff9f8c7effa18d80ff9b897aff948173ff9a8779ff928071ff958375ff958374ff958375ff917f71ff917f6fff8b7b6dff89786aff8f7e71ff8e7b6eff877668ff857568ff89786aff88776aff89796aff837365ff7e6f62ff77685aff75675dff74685cff716559ff76685dff716458ff7d6e61ff786a5dff6e6359ff74675cff756a5dff776b5fff74695fff71645cff7a6e64ff6e6259ff776a60ff7c6f63ff776a5eff796c5fff72655bff776a5fff74665cff74685dff6f6259ff70655bff71645aff6b6057ff6a5f56ff6b6058ffa69584ffae9b8bffa89684ff9f8d7dffa4917fffa69482ffa4917fffa4917fffa5907fffa89482ffa4907effa18c7cff9e8b7bffa18d7dff978576ff948273ff928072ff89776aff7c6c61ff75675dff817368ff867669ff928072ff918072ff8a776bff837164ff917e70ff8c7a6dff8f7c6eff827164ff8d7a6dff89746aff8d786bff8a7467ff8b7667ff8a7465ff846f61ff856f63ff877264ff887365ff8a7466ff8d7768ff8c776aff9a8274ff937c6eff8c7669ff887365ff8f786bff8c7569ff7e6a5eff867064ff8c7567ff937c6dff927d6eff978170ff947e6dff8c7768ff9d8675ff8f786bff836f62ff7f6b61ff998176ff988074ff967c70ff9d8578ff9e8678ffa48b7affa08676ffa48b7dff9f8577ff9c8374ffa58b7affaf9484ffaa8e7fffad9281ffa78c7dffac917fffb29784ffb89c88ffba9d8affc1a490ffb99d8bffbda18fffc8aa97ffc3a492ffba9d8bffb89d8bffc3a594ffc6a88effffe358ffffe256ffcfb2a0ffcab19dffd1bfa8ffedd8c1fff0dac3fff4e0c7ffebd8c0fff1dbc3ffe3cfb7ffe3ceb6ffeed9beffedd9bffff8e1cafff4dfc9ffffeed2ffffeed5ffffe7cefffce8cefff6e0c9fff2dcc6fffce8cffffbe5cbfffce8d2fffee9d1fffce7cefff8e1cafff6e0c9fff8e2caffedd8c0fff3dec7fff4e2ccfff0ddc7fff1dec5ffe9d5bdfff4e1c7fff2dec5fff6e3c9fff1dec7fff8e0cafff6e1c9fff1dfc4ffe6d4bdffd4c3b0ffe4d0bbffeedcc5fff1dec8fff5e1cafff7e3caffecdac3fff3dcc3ffeed7beffedd7befff2dec6ffebd6beffefd8bfffe6d2baffe7d2bbffe4d0b9ffe6cfb9ffe6d2bbffdbc7b2ffdfcbb4ffdccab2ffe0ccb8ffe1cfb7ffd6c3adffe1cfbaffd9c5b0ffdbc7b4ffd5c0adffd7c5b2ffd1bda8ffdec9b3ffd5c0adffdfcab5ffd3bfadffbda394fff9d054ffffd952ffd7b77effbda290ffba9d8cffb2988affae9385ffb19687ffb09685ffbaa08fffb29787ffb29787ffa98e80ffa48b7bffab907fffac917fffae9282ffb09583ffa38a7bffab9081ffb09584ffa38979ffa18878ffa18979ff9e897aff9f8879ffa08a7bff988375ffa38d7effb19988ffb39b8affbba592ffb7a291ff988073ff857368ff988477ff958377ff99877aff9a887bff917f6fff917f70ff978375ff928074ff938073ff938072ff948275ff907d6fff89776aff89786cff857568ff88776bff89786bff817264ff87776aff88776aff87776bff837266ff7d6f62ff7c6d61ff6f6257ff76675cff71645aff796b61ff77695fff7b6d62ff7a6d62ff695d53ff635a50ff7d7064ff766a5fff796d62ff6c6257ff74675cff74685eff72675cff73675bff75695bff6e6154ff6f6356ff6f6257ff716458ff6f6458ff6e6257ff6c6054ff70655aff74685dff695f54ff695f54ffa89887ffb09d8cffb8a28effb29f8bffae9b88ffb19f8dffb5a18fffb39d8bffb9a490ffb19b88ffab9885ffa99684ffa59483ffab9888ffa39284ffa08e7fff8f7c72ff827468ff837569ff89796bff74665cff968475ff968474ff89786cff8a7a6dff7a6a5eff7f6f63ff7d6a5eff7f6c62ff8e796eff8a766bff8a7568ff8c7669ff8b7567ff877463ff816c60ff806b5dff857061ff846f62ff8b7567ff967f6fff8a7365ff90796bff8b7467ff937c6dff907869ff8f796aff917a6cff927b6cff8d7769ff90796cff867064ff8a7466ff937c6cff8e7768ff917969ff927b6bff917a6cff957f71ff7c695fff837065ff978074ff91796dff9a8276ff9c8376ff998073ff9d8375ffa48a7cffa48b7dff9e8477ffaa8d7fffaa8d7effaa8e7fffaa907fffae9281ffb59887ffbda18effbd9e8dffcfb09cffcfb09bffcdad99ffc7a894ffbea290ffc2a491ffc1a391ffbfa291ffb89d8bffc3a494fffcdc58ffffe558ffd4b680ffbca293ffbcac95fff5e1c8ffecd7c0ffefdac3ffedd9c3ffecd7bbfffbe9cefffce6ccffecd9bffff3e0c7fff6e1c6fffae4cdffffecd3fffff4dcfff5dcc9fff5dfc9ffffe5cdfffde5ccfffae6cdfffee7d0fffae3cdfffbe3ccfff2dac0fff4dcc2fff4e0c7fff7e2c5fff5e0c8fff0dec3fff6e1c9ffe8d7c2fff0ddc3fff1dec3fff4e0c7fff1ddc4fff5e1c9ffead6c1ffe6d0bbffecd7c2ffeed9c2ffe2cfb7ffe8d4bcffe5d3bdffe5d4bffff4dfc8ffefdac3fffae3ccffedd9c1ffead6c1ffe3ceb9ffecd8c2ffe8d2bdffe0c9b6ffdac4adffe2ccb4ffe3ccb6ffefdac1ffe7d1bcffe8d2bcffdecab4ffe0cbb5ffdfc8b3ffddc7b2ffd5c1adffdfcbb5ffd9c9b1ffe7d5c1ffd9c2b0ffdfc9b5ffd8c3afffddc9b3ffd8c2aeffdac8b4ffd8c3b0ffd9c4afffbcaa95ffc4a89affba9e8bfffdd853fffed654ffab9184ffc5a796ffb4988affb19688ffae9385ffb29687ffb89a8affaf9384ffb69988ffae9282ffa38a7bffa99081ffb09383ffba9d8bffb99e8bffb89c8affaf9382ffa58b7bffa68c7cffa38979ff9d8576ff9b8375ff9b8275ff9b8376ff958073ff968074ff988176ffa48f80ffab9485ffb69f8eff9b8879ff817066ff847167ff8f7d73ff9e897cff917f72ff9b897bff988578ff9b8a7cff928073ff8b7a6eff948275ff978477ff8e7d6fff8a796dff837365ff8a7b6cff938171ff8d7a6cff8e7d6eff8c7d6dff897a6bff857569ff857468ff817265ff817266ff7c6d61ff6c5f55ff6c5f55ff6b5d55ff665951ff6e6159ff7d7064ff786c62ff73685eff685e53ff665b52ff655b52ff6d6056ff6e6359ff776a60ff72665dff74685dff6c6156ff6a5d53ff65594eff685c50ff62554cff6d6054ff675d52ff6a5e52ff6e6357ff6a5e52ff6c6055ff6b5f53ffbeaa95ffc0ab95ffbda996ffbeaa98ffb8a593ffbba693ffc2ad97ffbea995ffbaa48fffb29a88ffb49d89ffb09a88ffad9988ffaa9787ffaa9789ffa08e7eff907f73ff97857aff837469ff807166ff8a796aff958073ff897669ff7e6f63ff76675dff7a6b61ff7b6960ff7e6c62ff827266ff78695eff836f65ff836e62ff826e62ff816c5fff806c5fff816c5fff806b5fff806b5fff877264ff897365ff897467ff887366ff8b7568ff957d6eff8e7869ff927a6bff8f786bff947d6eff8d7769ff90796aff897264ff856f62ff877162ff8c7566ff8f7867ff8f7768ff8f7869ff917a6bff8b756aff847066ff927b6fff937c70ff9b8275ffa28b7dff9f8577ffa28779ffa18679ffa58b7cffaa8f80ffa98e7fffa98e7effb29788ffb69b8bffbb9e8fffbea190ffbfa18fffc6a895ffcaac99ffcbac99ffdabaa5ffc3a292ffc5a694ffc6a795ffc6a795ffc8a897ffc5a897ffc6a896ffccae9cffffea57ffffed5affc3a797ffceb1a0ffa59580fff8e2cbffe8d3bcffedd8c0fff1dcc4fffbead0fffdecd1fff2dcc5fff1ddc2fffeead0fffce6c9fffce7cdfff4ddc4fff4dfc5fff3dec6ffffead2fffde8cffffce5cffffbe6cffff2dfc6fff7e3c9ffeed9bffff6e3c9fff6e2c7fff5e0c4fff1dabffff3e1c7ffeddac1fff5e0c8ffedd9c4ffebd7bfffebd7bffff7e4c9fff2dec5fff6e1c9fff2ddc6ffe5d3beffe6d2baffe8d5bfffe2ceb7ffe5d2baffe9d5befff0dcc6fff3e0cbfff8e2cdffefddc9ffead6bfffe5d2bfffead5bfffe7d3bdffe5d1b8ffe6d1b9ffe6d0b8ffead2baffe9d2bbffead3bcffe6d0bbffe2cdb8ffe2cdb8ffe3cdb6fff1ddc5ffddc7b2ffd7c1abffdecbb9ffe1cdb8ffe1cdb8ffe4ceb9ffd5c1adffd9c6b2ffdbc7b2ffddc8b4ffdac5b1ffdfcab5ffdbc5b1ffb29f8affbea395ffbb9f91ffffd551fffdd450ffb99c8dffaa9083ffb79a8dffb79c8dffb39888ffb4998affb49888ffbea292ffbda291ffb49a8affaf9686ffb79c89ffbba08effc0a491ffba9e8cffbfa591ffa68d7cffad9282ffab9180ffac9281ffa78c7dffa58c7dffa1897aff9c8477ffa28a7bff9a8475ff947d71ff978074ff927d71ff9f897cffa38d80ff695c56ff86746aff907c70ff807166ff958375ff8e7d71ff8f7e72ff958376ff8b7a6cff8e7d70ff8c7b6eff8e7c6fff938072ff907e6fff8f7f73ff8a7a6cff8f7e6fff938070ff917f70ff948473ff877668ff88776aff89776bff87776aff87786cff88796dff7d6f64ff6f6257ff6d5f56ff796b62ff635a52ff74665bff796c60ff766b5fff6e6359ff62584eff6a5e55ff60564eff675b53ff6f645aff685f57ff665c55ff6b6057ff685d53ff665b50ff6a5e52ff675b4fff66594eff64584dff655b50ff6e6258ff716559ff6d6055ff655a4effbda590ffbaa48fffbca691ffbfa892ffc0a892ffc2ab96ffc5ae9affc0aa95ffbfa995ffb5a08effb29c8affa99584ffaf9d8bffb5a290ffa69384ff9e8a7cff9d8b7cff7f7065ff806f64ff806f62ff877568ff867668ff7f6f62ff7d6e62ff7e6c60ff8d7a6eff7f6d63ff88776aff7e6e62ff79695cff7c695eff806d61ff836e62ff887163ff887266ff816d60ff846f62ff8c786aff897467ff8d7668ff8a7366ff8e7769ff8f786aff897365ff8c7566ff8b7567ff8e796aff877364ff907b6aff867062ff846f61ff897363ff846e5fff887162ff8c7566ff887162ff8f7969ff957e6fff806b62ff967f73ff9c8477ffa38a7cffa3897cffa3897affad9284ffa08778ffa98f7effa48b7bffa38a7bffac9281ffab9180ffb39988ffbea18fffb99b89ffbfa08effc4a492ffcdac98ffd3b09dffdbbca5ffd7b6a2ffccac9affccac99ffcdac9affceae9cffd1b09dffd1b09effcdae9cffcaac9bffffed5bfffff45fffd8b9a7ffccb09effb6a48effe9d5bdffe0ccb2ffe9d2baffebd9bffffde9cefff1dec5fff8e3cbfff5dfc8fffbe5ccffffecd3fffee7cefffdedd2ffffedd5fff9e3cbfffeead0fff4ddc7fff8e1cafff5e3cefff7e3cafff6e0c9fff7e1c9fffbe7cefffde9d1fff7e3c9fff0ddc4ffe4d3bdffecdac2fffdead1ffe8d5bdfff0ddc6ffead6beffefdac2fff9e3c9ffe7d2bdffe8d6c2ffe6d1baffebd8bfffe4cfbcffe4d2b9ffe0cab5ffe8d5beffead8c1ffe7d4beffe5d0bbffedd6c0ffe6d1bdffe7d2b9ffecd7beffecd4bdffecd5bcffe9d5bcffe0ccb5ffe8d3bbffe3cdb9ffe6d0bcffe4ceb9ffead6bfffe0cdb7ffd4c2afffdfcbb6ffdac7b1ffd3c2abffd5c1acffddc9b4ffdeccb5ffd6c5afffdac5b1ffdac6b1ffddc8b2ffdbc6b1ffd7c4afffd3beaaffd6c2aeffc6b29bffcdb6a3ffbfa395ffffd955ffffda56ffd0b186ffb7a08fffb69c8cffae9484ffb19586ffae9585ffb49988ffb69b89ffb99e8effb99e8cffb39887ffb89d8bffbb9f8dffc2a591ffc1a491ffbca28effb89d8bffae9282ffa88f7effac9081ffad9383ffaf9483ffac9181ffa1897bff9c8577ffa0887affa58e81ffa0887cff978176ff998479ff9f887cff9a8478ff8a756dff8e7b70ff87746aff837469ff9c897bff948377ff8f7d6fff907d6eff8c7a6dff8c786bff857365ff8f7a6dff917c6eff8e7a6cff917d6fff8c7a6eff8e7c6dff938171ff948274ff948375ff887768ff87786aff847367ff837267ff827368ff86776cff817369ff786a60ff6d6057ff60564fff62584eff60564dff62574dff5e534aff60564dff554b43ff625850ff645a52ff685d56ff5f564fff635b52ff5b544cff63594fff5e534bff61574dff62564cff675b51ff5f544aff64594dff675c50ff655b50ff675c50ff695d51ffbaa28fffbea790ffc5ab97ffc0ab93ffc1ab97ffc8b39effc8b39fffc7ae9effc4ab97ffbea995ffbba592ffbaa594ffb9a593ffb19f8fffaa9787ffaf9b8cff807266ff7d6e63ff877568ff877468ff89776aff877567ff907e70ff897a6dff7d6e62ff7f6c60ff847368ff7f6f65ff857266ff816e63ff7b695fff8e7a6cff957e6eff887365ff927d6dff8c7769ff8b7669ff8f7969ff857164ff8e7769ff937c6dff947c6cff957d6eff8f796aff8d7668ff90796bff917a6cff8f786aff988070ff907968ff8c7466ff8d7566ff907969ff937c6cff8b7565ff8a7565ff91786bff8f786cff8d776bff917d71ff9b8377ff987e72ff967e72ff9b8173ffa78d7effac9182ffab9183ffad9485ffac9182ffae9383ffab9181ffb69a89ffb49787ffb59986ffb59987ffc8a996ffc9a896ffc9a998ffd0b09dffcbab98ffccae9bffd0b09effd0b09dffd3b29fffd4b4a0ffcfaf9dffd6b5a3fff6e467fffff15dffebd87bffd7b9a8ffaf9e86ffeedac2fff3e0c5fff2e0c5ffead5bfffefd8bfffeddcc2fff4e2c7fff7e3cbfff4e0c8fff4e0c8fffde8ccfffde3cbfffce3cbfffee8d1fffeecd2fffce7cefffae3ccfffae4ccfff5dec8fff8e2cafff7e4c8fff7e2cbfff4e2cafff8e4ccffffead1fffae4cbffecd9c0ffebd9c2ffe5d2baffe9d5beffeedcc2fff5dfc8ffefdac3fff1ddc5fff4dfc8ffe1cebbffe2cebbffe4d0bdffebd4c0ffe3d0bcffe4cebbffe5d4beffecd8c3ffe8d2bdffe3ceb8ffebd9c2fff4ddc7fff1dcc6ffefdac0ffead4bbfff2dcc2ffe7d2bafff2ddc6ffedd7bfffeed6bfffecd3c0ffe5d1bdffdcc6b3ffe3d0b9ffd9c4b1ffdac6b1ffd7c4aeffd6c2afffdac7b1ffd4c0adffd4c1acffd3bfabffd8c3afffd5c1adffdbc6b2ffd1bea9ffd5c2acffd2beaaffdbc8b1ffdcc7b0ffb2a089ffbba093ffc5a886fffed452fffed452ffbc9f8fffb99e8effbca090ffb29889ffb19687ffb19687ffad9283ffb69a8affb19687ffb89b8affb49886ffaf9384ffb79a89ffb59888ffbc9d8cffbc9f8dffae9283ffae9384ffac9181ffa58d7dffa38a7aff9c8475ffa38a7affa48c7dffa28a7dff9e887affa1897bff9d8579ff978174ffa18b7dff8c7a6fff87756bff86746aff8e7a70ff8d7c70ff837367ff938175ff928175ff907f72ff8e7c6fff8c7a6cff8e7a6fff817063ff8a7769ff857366ff88786aff8a786bff88766aff8a7a6bff8b796bff8a7a6cff8b7b6dff857669ff857669ff837266ff7f6f62ff807265ff7c6d61ff7b6d61ff70645aff796a60ff665c52ff5a5047ff5d514aff5c5249ff665a52ff60574dff585046ff575048ff5b524aff5f554cff62594fff5e564fff5f564dff61564cff584e48ff665c52ff6e6257ff6d6155ff72665bff6a6156ff6d6256ff716558ff6b6155ffc9b19cffd1b9a7ffcbb6a4ffccb59fffc9b49effd2bba8ffcfbaa7ffc9b49fffc8b29fffc6af9bffbea997ffc1a996ffbaa494ffaf9b8bff9c8c7dff958376ff7c6f64ff8b786cff867468ff8c786bff8c786bff847466ff8a7769ff877567ff8b796aff978274ff897569ff7b6a60ff75655cff857365ff897567ff907b6dff947f6fff907a6aff8e7969ff8d7869ff887466ff8b7566ff8e796aff927a6cff90796aff8c7667ff8e786aff897365ff927b6cff8f7869ff917a6aff8b7464ff947a6bff897261ff8d7565ff917969ff927b6aff91786aff8f7769ff856f63ff867063ff917a6bff988071ff988073ff988073ff988072ff9d8476ffa08779ffa78e7fffad9381ffb49988ffb29685ffb09686ffb39888ffbfa190ffc3a696ffbaa08fffbfa38fffc7a895ffcdac99ffd1b19dffd2b39fffd9baa5ffceb09cffcfb09cffd2b3a0ffd2b29fffd0ae9bffd4b39fffd9b7a4ffd5b5a4ffffef5bfffff862ffd7b9a8ffd3b4a3ff8f7e69ffecd5baffecd9bdffeddac1ffecd8c1fff3dfc2fff0dcc2fff9e3c7ffeed9c3fff7e4cbfff0d8c1fff8e1cafff2dac7fff4e0ccfffee8d0ffffead4fffae3ccffffefd8fffce8d0ffffedd2fff5dfc7fff3e2c6ffeedac2fff1ddc5ffedd7c2fff2dec6fff1ddc8fff2dec9ffefdbc3fff1dec8ffe5d2baffeddac1fff4dfc8fff2dcc5fff3dcc6fff1dbc4ffe4d0bcffe3ceb8ffead6beffe3cdb8ffdac5b0ffdfcab4ffe0cbb5fff0d8bfffead4beffe7d4bcfff5e0c9ffe3cfbbffe5d0bafff2ddc4ffecd6beffe7d1bbffead5bfffe6d0bbffdac6b1ffe8d4bdfff0ddc5ffddc9b6ffdac8b4ffdecbb8ffe3cfb9ffddcab4ffe0cbb8ffd4c0acffcdbaa8ffd2c0adffcebaa6ffd4c1abffd5c1adffcdbba5ffd2bea7ffd7c1abffd6c1abffd8c5afffcfbaa5ffdac5acffae9d85ffb79e8fffaf9789fff1c748fff5cc4dffb09587ffb79b8dffb49b8cffbb9f8fffb3998affb59a8bffb49989ffb49989ffba9e8dffb09688ff9f8779ffaf9383ffb49886ffb59987ffbc9e8bffba9e8cffb59b89ffaf9584ffaa9181ffab9282ffa68c7cffaa907fffad9382ffb09686ffa0897bffa48e7fff9f8b7dffa38c7fff958174ff9b857aff8e7c71ff84726bff806e66ff88756cff89766cff937f72ff807264ff907f72ff968476ff8e7d70ff8c7c6fff8d7c6fff847367ff8c786cff867367ff877669ff7f6f62ff857569ff89796dff8b7b6eff8d7d6cff8a796cff8e7e70ff8c7c6fff84776aff86776aff847566ff847568ff84766bff7e6f64ff75685dff776b60ff63584fff60534bff5d544aff5e534bff5e544cff564f46ff595146ff73675cff585048ff645a51ff6a5f55ff5b514aff61584fff5f564dff574e48ff61584fff6d6257ff6e6357ff6e6354ff6d6155ff6d6155ff685c51ffd2c1afffdac6b4ffd5bfacffcab7a4ffd0bda8ffcdbaa6ffceb7a2ffcbb6a5ffc8b4a3ffcab5a2ffbda695ffbaa492ffa79382ffa39181ff9e8c7eff87766cff8a7a6dff9d8779ff938174ff9b887aff786b60ffa18e7fff89786bff8f7e6eff8f806eff988676ff867468ff867569ff837266ff988375ff927e6eff8b7969ff978270ff907a6bff947f6eff8e786aff907a6bff907b6cff8d7869ff8e796aff8f7969ff867062ff8f7868ff8f7866ff887362ff816c5dff8d7665ff8c7765ff897363ff8f7767ff927969ff8b7464ff927969ff977e6dff8f7568ff856d62ff7c685bff9f8776ff937d6fff9f8677ffa78d7cff988070ffa18776ffa58d7bffaa917fffba9d8bffb39885ffba9e8affba9f8fffbb9f8effc0a494ffbea18fffbea190ffc3a593ffc9a995ffcbac9cffcaaa98ffd0b09dffd3b29fffd3b19fffd5b5a3ffd7b7a5ffddbdaaffd8b8a5ffd3b4a1ffdcbca9ffd9bd8dffffe85afffff560ffd6b7a9ffd0b5a2ffa9957ffff6e0c8fff8e0c7fff7e3cafff1dec5fff1ddc4fffde6ccfff2dec7fff2dec7fff3decbfff8e2cdfff4dec8fffae3cefff7e0cafff8e2ccffffe9d2fff7e2cffffde5d0fffeedd7fff4ddc7fffbe5ceffeddbc1ffedd8c1ffe5d1bafff0dcc5fff4e0c6fff9e3cbfff1ddc7ffecd9c4ffedd9c1ffe9d5befff4e0c8ffefdbc2fff4dbc3fff4ddc4ffeed7bfffe8d3bcffedd7c1ffefdbc3ffefd9c1fff0dac4ffe1cab5ffefd6befff4dbc4ffefdac4fff7e4cafffae8d2ffd8c4afffdcc6b2ffe3ceb9ffe7d2bdffe4d0baffddcab4ffe7d0baffe1cab7ffe2cdb9ffe1cdb7ffe7d3bcffe5d1bbffdfcbb6ffd9c6b0ffdbc6b2ffe1ccbcffdbc7b3ffd9c5b1ffccb7a5ffcdb9a6ffcfbca8ffd1bca6ffccb8a5ffcdbba6ffcbb8a4ffd7c3adffd6c0abffd8c1abffe0ccb5ffe5cdb4ffd6c2acffbda194ffedca64fff0c84bffeec74effb19787ffb29888ffb99e8cffbba08fffb99f8cffb59b8affb19789ffb69b8cffb79c8bffad9583ffb19784ffb09582ffb19582ffad927fffb09684ffb79d8affad9383ffb09686ffae9485ffa99181ffaa9182ffa68d7dffa38a7affa68e7fff9c8576ff9c8477ffa58e81ff998478ff917d71ff827065ff907b71ff917b70ff8e7971ff937d73ff8f7b6fff937f72ff8c7b6fff9e8a7cff8f7e71ff8f7e70ff938173ff917e70ff887569ff867568ff857367ff8d7a6cff8a776cff89766aff8e7d70ff907e72ff87786bff837467ff88796cff897a6dff88786aff89796cff89796dff827365ff817265ff7b6c60ff736559ff685d54ff6d6258ff584f48ff5f554dff5b5149ff655950ff5c5249ff564d45ff71645aff655950ff5d534aff665c53ff60584eff574d46ff574f47ff5a514aff665c52ff6b6056ff6f6357ff716658ff675c50ff695e51ffe2cdbaffd9c8b2ffd7c1abffd2bda6ffd4bfabffcdb8a3ffcab6a2ffc9b3a3ffcfb9a6ffc6b09effb6a190ffb4a08effa79282ffa08c7cff9c8678ff8e7c70ff978477ffa38d7eff978376ff837368ff98867aff9c8a79ff9f8a78ffa48f7dff9b8676ff907e6fff9d897aff8e7a6fff867467ff9e8779ff978272ff927e6dff907b6bff95806fff917d6eff907a6bff8c7567ff917c6cff8f796aff867264ff8e786aff8e786aff957f6cff8f7968ff8a7667ff8d7766ff8b7564ff8e7868ff967c6cff997f6fff927a69ff907867ff9d8373ff957c6cff897265ff887164ff977f6fff9f8977ff9c8475ff9e8677ffa78e7effa38a7affa48a78ffb29885ffb09582ffb39988ffb49987ffbb9f8dffb69988ffc0a292ffc1a392ffc8ab9affc3a696ffc0a292ffc2a491ffc4a794ffcdaf9bffc7a998ffc9aa9affd0b09dffcdad9bffceae9dffd7b8a5ffd8b7a4ffe4c1afffd9b8a6fffff35fffffe75dfff9ea66ffd6b7a7ffb29e86ffe6d0b7fff1dcc3fff3dbc4fff1dec8fff2ddc2fff1ddc5fff1dcc5fff0dac4fff3dcc7fff5dec9fff5dfc9fff3dcc5fff2dac3fff2dbc5fff4ddc8fffdead1fffde4ccfffbe8cffff8e1cbfffbe7d1fff1dfc5ffeeddc3fff2e1c8fffbe6cffff5e3ccfffbe5cefffde9d2fff5e1c8fff2dfc6ffeed8c2fff5dec8fff5dfc9ffefd9c3fff7e1caffebd7beffe6d2b9ffe5ceb7ffead5befff2e0c7ffe3cfbbffe5d1bdffdfc6b3fff0dac0ffdcccb6ffdfcab2fff7e0c7fff0d9c4ffe3cebaffe6d2bcffe6d2bcffe6d2bdffefdcc4ffe7d3bdffead4c0ffe2cdb8ffe7d0baffe4ceb9ffebd8c3ffd4c2acffdfcab6ffe0cbb7ffdac7b1ffe5d1bfffdac5b4ffdec9b6ffcfbba9ffcebca8ffcab5a3ffd1bbaaffd0bcaaffd1beaaffc2af9dffcdbba5ffd7c2aeffd3bda5ffdec9b2ffdfc8b2ffc6b29bffbea595ffbca293fff5cf4ffff4cd4dffb89c8cffb3998affb49b8bffb89d8dffb69c8dffb99e8effb79c8dffb59788ffb69c8cffb99e8cffb09886ffa88f7effa68c7affb39784ffad9280ffa78e7effaa9282ffaa9181ffa68d7dffac9382ffa99080ffac9384ffb09585ffaf9585ffa08779ff9f8679ff9f877bff988377ff907b6fff907b70ff8d786dff8c796eff84736aff8a766dff8b766dff89786cff8c796eff978377ff9c897bff907f71ff938173ff928173ff87766aff857266ff857365ff847164ff8b796bff8a776bff89786cff8a7a6dff938277ff88796dff847569ff87786bff84766aff857668ff827365ff827267ff837368ff7d6f63ff796b5fff726559ff706458ff6a5e54ff5e5349ff5e524aff62574cff6a5d53ff63584fff524b43ff635950ff5f564dff695e54ff675d52ff665c53ff665c52ff635951ff5e544cff655b50ff6e6258ff6a5f55ff655a50ff6a5f53ffd7c3afffcbb4a1ffd1bca6ffd4bfaaffd5beabffceb9a8ffccb9a6ffd3beaaffd4bba8ffc7b1a2ffc2aa9affbca694ffad9988ffa89383ffad9688ff9c8979ffa59180ffaa9686ff867568ff9a877bff9f897cffa68d7fff9d8777ffa79083ffa38e7fffa18d7eff9e887bffa48e7fffa28c7cff9e8978ff9d8776ffa08a79ff9e8777ff988273ff9d8876ff978172ff957e70ff968072ff978173ff937d6fff8f796aff937b6aff8f7a68ff897364ff846f60ff887463ff867163ff8c7667ff846d5eff907766ff99806eff8c7365ff877162ff8b7365ff756257ff726256ff9b8374ff968070ff988373ffa88f7effa48c7bffac9181ffa08676ffa68c7bffb29686ffbc9f8fffc1a594ffb99e8effaf9584ffb39788ffbda08fffc4a594ffbb9d8effcaab9affc9aa96ffc8ab97ffceae9bffd1b2a0ffd3b4a1ffd0b2a0ffdbbba8ffcbae9dffd9b9a6ffdbbcabfff0cfbeffddbda9fffffa66fffff661ffd3b5a2ffceb2a1ff827260ffe6d1bafff7e1c6fff9e3cbfff5e0c9fff7e2ccfff0d9c1ffffead7ffefdac5fffae5d0fffde8d0ffffe7d1fff8e0cbfff7e0cbfff6e1c9fff2dac5fffce4ccfff2dcc7ffffe9d3fffbe6ceffecd6c0ffe4d0bafff2dec6fffce8d1fff6e2cdfffbe5cefff8e3cbfff5e0c8fffceacffff1dcc5fff8e3cbfff1dac5fff6e2cffff1dac4ffead5bffff2e1caffe9d6bfffe5d1baffd6c3acffe6d2bdfff0ddc4ffe6d0bbffe3ceb8ffead6bfffe7d3bcffecd2bbfff6e2cafff1dbc6ffdac5b1ffe0ccb6ffe0cdb7ffe7d1bdffeed7c0ffe5cfbbffd2c1aaffe6cfb8ffdfcab5ffe9d4baffe6d0baffdfc9b5ffd9c7b1ffd6c3aeffd6c2adffd7c3b1ffd8c5b4ffd2c0adffd6c2afffd0bca9ffcfbeadffccbbabffd4c1b0ffd1bdaaffd3c0acffcfbca6ffd2bea8ffd2baa5ffd2bba5ffe0cab2ffbeab92ffb59c8fffb09688fff9d151fffad456ffb99d8effb3978affb3988affb4998affc1a597ffbaa092ffb59b8dff998477ffb19687ffb29787ffb59b89ffa48c7cffb09684ffab9280ffaf9581ffac927fffa48c7cff9f8777ffa68e7effa48d7dffa78e7fffa48d7dffa89080ffa99284ffa38e7fffa18a7bffa1897affa28b7cff958073ff9b8578ff988275ff827065ff817266ff665951ff8a786eff8c786dff88766bff927e72ff928073ff978577ff998576ff968476ff8f7d70ff7d6d61ff817064ff837264ff867367ff897769ff807064ff887769ff8d7d6fff897a6cff897a6dff837568ff827366ff86776cff7f6f61ff807163ff7c6e62ff817267ff7b6e62ff7a6d61ff73665aff6d6156ff685c52ff60554bff5d5248ff63574eff665a51ff584f47ff514940ff61574fff73675eff6e6259ff695f55ff6d6358ff5b534bff6c6458ff675d54ff695d55ff73685dff6e6359ff665c51ffd7c1abffdac4b1ffdbc5afffd3beabffd1bda8ffd8c4aeffd9c1aaffcfb7a3ffc8b19dffc4ad99ffc6af9cffc2aa98ffb39c8affac9685ffa99380ffa99182ffa69183ff928075ffa18c7fff9c8779ffa69181ffa99282ffa38f7effad9786ffa99282ff9e8a7affa18b7bffa89281ffa28a7aff9b8474ff8d786aff998575ff9b8473ff988172ff987f71ff9b8274ff927a6cff957e6fff937d6eff947e6dff907969ff8d7766ff8c7767ff857060ff887363ff867161ff846e60ff887363ff947c6aff907a68ff8c7565ff8d7565ff867061ff8c7467ff77635aff998273ff907a6dff978072ffa98f81ffa38b7affac9181ffa58c7cffa38879ffb19886ffbfa390ffbba08effc7ab97ffc1a390ffc3a491ffbc9f8bffc2a491ffbfa28effc7a896ffcfae9effccaf9dffc6a996ffccad99ffd2b4a1ffd3b8a4ffd0b3a0ffd6b8a6ffd8b7a5ffcdaf9fffd7b7a5ffe9c6b2ffefd5a3fffffc67fffff963ffd3b7a7ffdbc0adffaf9a88fff6e0cafff3ddc2fff4dfc8fff5e2cafff2dfc8fff9e3ceffffebd4fff8e3cdffefdac4fffce5d0fff4dec9fff3dfccfff7e2cbfffde6ccfff2dcc6fff7e0cafffee7d2fffbe6cffffbe3cefff1dbc6fff2dec9fff6e2cafff1dec5fff4e2c7fff4e1c7ffeddac2ffe8d2bcffeddac2fff1dbc5fff3dcc7ffe6d0bbffefd8c6fff3decbfff7e2ccfff8e4ccffe9d3beffe4d2b8ffe5ceb5ffe2d0bcffeed8c2ffe2cdbcfff2ddc7ffe3ceb8ffedd7c1fff6e1ccffe9d5befff1dac5ffe1cebbffdbcab8ffddcbb9ffe2cdb9ffe1cbb7ffe0cbb7ffead3bfffdcc8b2ffefd7c0ffe4cfbcffdfccb7ffdcc9b3ffe0ceb7ffe1cdb8ffd4c1abffd8c6aeffcfbca7ffd7c4afffd0beacffcfbdabffd1c0afffc7b7a7ffd0beadffccbaa4ffcdbaa6ffd1beaaffd2bfaaffd5c1acffdbc4b1ffd8c3aeffdcc6acffbcaa97ffb1988affe3bc5affedc851fff7cf53ffb99e8fffa89082ffb99d8effbba091ffb69e8effb69e8effb79e8effad9584ffb59a89ffb29987ffa8907fffab9381ffac9282ffa99180ffaa9380ffa58e7cffa9907fffa68e80ffa38d7dffa88f82ffa68d7effa18b7dff9d8879ffab9384ffb09786ffa99283ffa28b7dff9c8779ff9a8479ff8c786cff887469ff957e73ff8e7a6eff917c73ff89776eff7e6d63ff8c796cff937e6fff978374ff978577ff9b8979ff978577ff908073ff948175ff89766cff8f7c6eff887367ff897668ff8b796dff8a7a6eff87776cff837468ff7e7065ff7a6c60ff85766bff847468ff807266ff7f7063ff827367ff7f7064ff7c6e60ff7b6e62ff786a5dff73675bff716459ff6a5d53ff5d5349ff5f534aff61554cff6a5e55ff544c45ff5a4f48ff585048ff60574eff63584eff675c52ff675c52ff695e55ff685d54ff685d53ff6f6459ff6f6559ffe4cdb6ffe4ceb9ffddc5b3ffd7c0abffddc7b2ffe0c7b3ffd4bba8ffc8b0a1ffc6ad99ffcab5a5ffcfb6a5ffc0a996ffbea795ffae9987ffaf988affae9687ff958276ffb9a390ffaf998bffae9687ffb79f8effb2998aff968377ffac9687ffa68e7fffa68f80ffaf9686ffa89180ff9d8777ff968172ff998372ff9d8775ff998372ff998371ff9a8172ff988072ff947d6fff998273ff937c6dff917a69ff8d7766ff977e6eff877261ff8f796aff8b7667ff8f786aff8c7667ff957c6dff8c7567ff897163ff7c685bff947a6cff8c7467ff806c61ff957e70ff988175ff9b8275ff9e8778ffa38b7aff9f8778ffa28b7bffa98f80ffb49b89ffbda392ffbea392ffc0a593ffc3a795ffc8ab9affcaad9bffc6a997ffc7a997ffc9aa98ffcdae9dffd1b4a0ffcbae9bffceae9cffd1b29fffd5b7a6ffd7b8a6ffddbeabffddbba9ffe3c2b2ffddbcabffd9b9a7ffe7c3b1ffffff6cfffffa66ffe9cfa7ffdfc2b0ffbca993ffe6d0bbfff1dbc6fff6dfcafff4e0ccfff0dac6fff5dfcafffbe6cffffae7cefff7e0cbfffbe5cffffce6d0fffce5cffff9e3cdfffae5cefff6dfc8fff8e4cbfffbe6cffffee8d1ffffe7d1fffde7d1fff4ddc8fff5dec8fff9e1c9fff5e0c7fff7e3cafff3dec7ffebd8c0fff2dbc9fff0dac4fff1dac8fff4ddc9ffead4c0fff5dfcbffeed8c4fff5ddc8fff2dcc7fff1ddc7ffe4d0b9ffe4cfb9ffe2ceb8fff0dac4fff8e5cdffe7d4c1fff4dfc9fff0dcc5ffefdac4ffe9d4bfffe4cebaffe7d1bdffe0cbb7ffdfc9b4ffe7d0bcffdfcbb6ffd4c0afffd7c3b0ffe2cdb9ffefdac4ffe0cab2ffe6d1baffdbc8b3ffddcab5ffdcc8b4ffddc7b3ffd8c6aeffdfccb5ffd3c1acffd8c5b0ffd2beacffd6c5b4ffcabba8ffc7b5a3ffc1ae9cffc6b2a1ffcbb7a5ffcdbba8ffd5c2afffcdb8a3ffcebaa4ffd3bfa9ff958776ffb3998bffb2998bfff0c84cfff3cd50ffae9588ffb59b8effb29789ffbea494ffbca393ffb69d8effb9a190ffb59d8bffb29a8affaf9685ffaf9683ffab9180ffac9382ffac9482ffa8907fffa68d7bffa38b7affa68e7effa28b7dffa89082ffa58d7fffa38b7dffa38d7fffa18a7cffa48b7dffac9283ffa78e80ff9d877bff9b867aff998578ff927e72ff8e7a6eff958074ff837267ff907c73ff968278ff8d7b71ff8e7b6dff928072ff938072ff978578ff9a897cff9a8a7eff938174ff928073ff938073ff8f7e72ff8e7b6fff8a786cff887568ff87776bff84766bff897b6fff817467ff807167ff817367ff7f7165ff7f7163ff7e7164ff7f7265ff817364ff786a5eff736559ff716459ff786c60ff74685cff665c51ff655a4fff63574cff5e5349ff5b5249ff534a42ff645b52ff5e544bff63594eff60564cff655c52ff6c6157ff70635bff645950ff6c6057ff695f55ffe8d0bcffe0c9b3ffddc6b2ffd7c2aeffdec4afffdbc0aeffc1ab9affac998effcbb4a5ffc8b3a1ffbba392ffc6ad9bffbda595ffb8a291ffb19d8dffaa9588ffc3ab9bffb19b8affae9687ffbaa292ffb49d8dffad9688ffa28d7effa99485ff9e897affa59082ffb09988ffa99582ffa18b7bff9f8878ffa59080ffa48d7aff968172ff9c8474ff9d8777ff9c8476ff9d8677ff8c776aff9a8271ff967e6cff988070ff907a6aff8a7566ff917969ff8f7a6bff8c7466ff8b7364ff927969ff8d7366ff81695dff866f62ff90796aff7e695fff77685bff9f8777ff9b8375ff9d8576ffad9486ffa58d7effa89081ffa78c7dffa78e7effb19786ffb89f8effb29685ffc2a795ffbfa491ffc2a594ffc2a692ffd0b09dffceb09dffccad9bffcfb2a0ffcdaf9dffd2b3a1ffd6b7a5ffd7b7a5ffd7b7a6ffe5c2adffe9cbb7ffe9c8b8ffeac6b8ffeac9b7ffe1beacffe4c1afffffff6afffffc66ffe9cab8ffdcbeabff8f7e6dffefdbc9ffecd8c6ffe9d5c2ffefdac6fff7e2ccfff8dfc8fffae4d0fffee9d2fff9e4cefff2ddc6fff2dfcafff1ddcafff1ddc8fff2ddc7fff8e2cbfff8e5ccfffde8d3fffae4cdffffeed4fffff0d6ffffebd3fff4dfc7fffde6d0fffbe6ceffffecd4ffe8d3bdfff8e2cafffae3cefff4ddcaffebd6c5fff2ddc6ffedd7c1fff7e4d1fff4ddc8ffeed8c3ffe9d5beffebd5bfffe6d1bcffddcbb8ffe8d0bbffebd6c0fff0dbc5ffe8d3befff8e3ccffefdbc5fff4ddc8fff9e1ceffd8c6b3ffe2cdbaffe1cbb7ffe0c7b3ffdfcbb2ffe7d1b9ffe2cdb8ffe6d1bcffe7d1bdffe1cdb8ffdbc7b4ffd7c5b0ffd8c4b0ffddc9b4ffdac5b0ffd9c5b0ffd6c3acffdfcdb5ffdfccb5ffd5c2adffdecab5ffddc9b4ffcfbfacffc6b6a5ffc8b7a4ffc3b39effc8b79fffccb79fffcebba4ffd0bca6ffcbb9a5ffcab9a6ffaa9a87ffc3ae9cffb79b8dfff2c94cffefc84dffbc9f6bffab9183ffb4988affb69a8cffb79c8fffb69a89ffb99f8fffb39988ffad9584ffb29786ffaf9784ffa8907effa58d7dffaa9281ffac9582ffac9381ffa68e7effaa9081ffa88f80ffaa9182ffad9585ffaa9486ffaa9082ffa99384ffa28b7cffa78e7fffa68e7fffa28b7dffac9385ff9d887bffa38e81ffa18c7eff958275ff938175ff786860ff8b796fff978377ff958274ff8f7c6fff907e70ff8f7e70ff9c887bff938276ff9a897dff958377ff948176ff958277ff907e71ff8c786cff8e7c70ff7f6e64ff78695eff87796cff8c7f71ff86776aff87786cff86776aff86776aff7c6e62ff7c6e63ff7d6e63ff7e6f63ff716358ff675b51ff6a5e56ff776a61ff72655cff6b5f54ff6c6156ff6d6258ff62584fff60574eff48413bff6f6358ff5e544aff685b51ff6c6057ff675c52ff575048ff645a51ff635950ff5f554cffdbc7b5ffe6d1bfffead3bfffdfc9b8ffddc6b4ffc3af9fffb19f93ffb7a495ffb7a499ffc0ae9cffc5af9dffbea997ffc7b29fffc1ae9dffbaa393ffc1aa9bffc8b09effccb29fffbfa897ffb6a090ffad9587ffa28e82ffab9787ffae978affa49183ffa69183ffab9686ff9c887affa79283ffa79283ffa48e7fffa18b7bffa28b7bff9a8274ff978073ff957e72ff947d6fff947e6eff957d6bff937c6cff957e70ff8f786bff957d6dff8d7667ff8d7868ff8d7667ff8e7668ff937c6eff8c7567ff8f786aff90796bff897367ff816d61ff907b6dffa08779ffa08777ffa3887dffa78d80ffab9283ffb69c8cffb59d8effad9486ffb39a8affc1a696ffc6ab9affc7aa9affc6aa98ffc9ac9affc6aa96ffc7aa98ffd5b7a5ffcbac9cffd6b7a4ffd5b5a3ffd6b6a2ffd0b29effd8b8a4ffd9baa4ffe0c0abffe3c1aeffe1bfacffe2bfadffe4c3b0ffdfbea9fffdf66affffff6affffff69ffe5c2b4ffe7c5b2ff9b8c7afff1dbc8ffe7d1bdffead7c2fff2ddc8fff4e0cbfff3dcc7ffedd9c6fff2dac3fffbe4ccfff3ddc9ffe8d4c2fff0ddc6fff5e1caffeed9c3fff2dec7fff1ddc7fff9e3cdfffeecd3fffeebd2fffeecd6fff2ddc8fff0dbc5ffedd9c1fff6e2cafff5e0c8fff8e3ccfffbe4cefffbe3cffff3dec8fff2ddcafff9e2cdfff8e1cbfff0d9c5ffefd8c3fff3dfc5ffe7d5bdffeed9c0fff6e0c8ffe6d2bdffedd8c2ffebd6c1ffecd6c1ffe4ceb7ffe7d3c0ffeed7c2fff0dac5fff4decafff5dec9ffe3cebbffe3cfbcffe0ccb5ffd9c7adffdbc7b0ffdac5b1ffe0cbb7ffdcc8b4ffe0c9b7ffdbc9b3ffdec9b5ffd6c1afffd9c5b2ffdcc8b4ffddc9b3ffd5c1aaffd5c1aaffd7c3adffdbc7b1ffdac7b3ffdbc6b1ffd2c0adffc7b6a6ffcab9a6ffcbb8a4ffcbb9a3ffd3c0a7ffd5c2aaffccb9a4ffc8b5a2ffc6b29effc2af9bffcab7a0ffb29789ffb89c8bfff2ca4efff1c84dffba9f8fffb09584ffad9586ffb5988affba9e8fffb89d8fffb19585ffb49888ffb39989ffb09786ffb19887ffb09888ffab9380ffab9182ffab9282ffaa9080ffa08878ffa08878ffad9283ffa48c7cffac9486ffa68f80ffa68f7fffa28b7bffa08b7aff9d8878ffa08a7affa48d7dff9c877aff9d897bff938071ff958073ff928074ff948176ff88766aff88766aff8f7d70ff8e7a6dff937f71ff9b8778ff9f8a7bff9e897bff9b897bff99877aff958377ff958477ff98867bff938075ff958378ff89786cff88766aff7d6b5fff837366ff807065ff827468ff827466ff827367ff79695eff817064ff817165ff7c6d61ff7a6b60ff6d6156ff62574eff62574fff6a5c54ff71645aff695d54ff6c5e55ff685c52ff71655aff6d6056ff544a43ff70635aff645850ff6b5e55ff6a5f55ff675c52ff5c524aff5d544dff645a51ffdcc7b6ffd7c4b2ffe4ccb7fff1d8c1ffd0bdacffd6c2b3ffd6c2b1ffccb9aaffceb9a7ffcfb9a7ffcdb6a5ffcab5a1ffbba695ffc3ae9dffd0baabffd0b7a8ffc9b29fffc8ae9effc0a898ffb59f90ffa99185ffa99285ffac968affa89485ffb39d90ffb19a8bffa89284ffa89284ff9a8578ffa18c7dffa68f7fff9b8476ff998273ff9c8276ff9f867aff9a8174ff967d6fff9a8172ff927a69ff927a6bff927a6bff917a6bff8d7667ff957d6cff917a6bff8c7567ff947d6eff907a6bff927a6dff92796bff937c6eff806c5fff8d786bffa28a7aff9f8779ff9d8579ff9b8275ffb29686ffb79c8bffb09785ffbfa291ffaa9282ffbda392ffc1a796ffccb19fffc7ab98ffc0a493ffc0a393ffc6a693ffc8a996ffceb1a0ffd6b4a2ffdabcaaffd2b7a3ffd6b7a3ffd4b5a0ffd8b9a2ffd7b7a2ffd9b9a5ffe0bdabffe4c1afffe7c4b1ffe9c8b4ffeac7b4fffffa62ffffff6bfff4e294ffe8c6b4ffc8b69fffe4d0b9fff4dec9ffedd8c3fff4dec7ffeed7c1ffeed7c1fff2dcc7fff0dbc4fffce5cefff8e2cdfff2dbc7ffe5d2befffbe5ceffedd7c4ffead6c0ffead4c0ffe9d4bffff2dec7ffedd8c2fff6e1cbfff4e0ccfff0dcc8ffeedcc6ffe4cfb9fff2ddc5ffe9d5befff2ddc6fffbe4cefff8dfcbfff9e3ccfff2dbc7fffce6d0fff4ddc8fff0d9c4ffedd6c0fff4e0c6fff8e3cafff2ddc5fffbe7cfffedd8c3ffe6d1bcfff4ddc8fff3dfccffe8d3bfffe3d0bdffeedac8fff1dcc7ffedd7c2fff2ddc7ffe2cdb9ffe5d2bfffe0ccb7ffead4bcffe2ceb8ffdec9b4ffd8c2afffdfcab6ffe0c9b6ffe0cbb6ffe8d1bbffe2ccb6ffe1cdb8ffd5c2adffdecbb3ffdac5aeffd8c3acffdac7afffd8c5aeffdac8b1ffd7c4aeffd6c3aeffcfbda9ffccbaa7ffd3c0aaffd3bfa8ffd3bfa8ffd3bfa9ffd7c3adffd1bea9ffc7b39fffcbb8a4ffa6947effb49a8bffb69b8bffedc24afff2ca4fffc0a38effc0a594ffbca090ffaf9385ffb19689ffb69a8cffb89d8dffb5998affb09585ffac9382ffa68e7effab9281ffaf9686ffac9383ffb59d8cffac9485ffa58e7dffa28b7bffa9907fffa48d7bffa38b7cffa38b7cffa28b7bffa48e7effa48e7dffa18c7bff978171ffa18b7bffa38f7fff9b877aff9a8678ff958273ff8b776aff9a8677ff89796cff857367ff837368ff89776bff917d70ff937f71ff9c877bff9b887bff9a8578ff9a847aff98857bff907d72ff8c7a6eff928074ff8f7d72ff907c72ff938275ff88786dff84756aff7e6f64ff7f7063ff857669ff807063ff847568ff7c6e62ff807166ff817267ff827367ff7c6d61ff6b5f53ff5e554cff6f6259ff6e6258ff665b52ff6a5e54ff695d53ff685b52ff665b51ff6a5e55ff594f47ff64574fff685c52ff695d52ff685c52ff594f46ff62574eff595049ffd5c0afffe3ccb9ffe6cfbaffe2cdb9ffd8c3b3ffdcc7b4ffd8c2b1ffe3ccbbffd9c3afffd6beabffd3bca4ffb29e8effbdaa9bffd0b8abffd3b9abffd8beacffcbb19fffc8b2a0ffc8b09fffb9a293ffaa9588ffb69f90ffb7a191ffb1998affab9385ffb59e8fffb29b8dffaa9687ffaa9386ffad9485ffb49989ffa48c7dffa0877affa0887bff9d8578ff9d8477ffa08779ff947c6eff8d7666ff927969ff977e6fff9a8073ff967e6fff957c6dff957e6fff978071ff9d8475ff927b6dff9c8274ff997f70ff867166ff7c6b60ff998377ffa3887aff9f8677ff9b8376ffaa9080ffb39887ffbfa291ffc0a493ffbfa392ffbb9f90ffc8aa9bffccafa0ffc3a798ffbfa292ffc6a596ffc9aa9affc2a593ffc7a997ffc9a999ffc6a895ffd1b49dffd9baa5ffd4b69effcdae99ffccaf9affd3b5a0ffddbda8ffd6b5a3ffdbb9a5ffdfbeadffeac7b6ffe1bcaafffff464fffffa65ffe3c3b2fff0cdbaffb1a28dfffee7cfffffefd8fff7e1ccfff4dfc6fff4dec8fff9e2ceffdfcbb5fff1ddc5fff5ddc6fff7e0ccffe4d1b9ffe9d4bdffe7d4bcffe2ceb8ffe4cfbafff3dbc8ffe8d2beffedd8c2ffefddc5fff2dec8fff0dec7ffedd9c4ffeedac6ffead5c1fff7e3cafff3dec6fff0dbc5fff9e6d0fff5ddc9ffeedbc3fffee8d3fffde8d1fff8e3ccfffce5cffffce4cbfff9e3c9fffae4cbfff8e4ccfff7e1cbfffce5cfffedd7c2fff7e1ccfff4ddcbffecd4c3ffe8d4c2ffe6d1beffebd8c6ffefdbc4ffefdac4ffe1cdb8ffdec9b5ffe4cebaffe6cfbbffe7d2baffdac6afffe6d0baffddc7b2ffddc8b2ffe4cdb9ffcfbdabffdcc7b1ffdac8b2ffd3c1acffd8c6aeffdcc9b0ffdcc7b1ffe5d1b9ffdecab3ffd4c3adffd8c7afffd8c7b3ffd3c1abffdfcab4ffcebca6ffdec9b2ffdfc8b0ffdac6b2ffd6c1abffd3c0a9ffd3bda6ffd9c2acffbfab97ffc1a896ffb49989ffecc54cffefc84cfff4cd52ffc1a495ffbca091ffb79c8dffb89c8fffbfa294ffb5998cffb69a8cffae9585ffaf9283ffa68e7effa28b7affa58e7dffa28a7bffa58d7dffac9484ffa48e7cffa58d7eff998373ff9b8574ff9a8575ffa48d7dff958072ff9c8676ff9e8778ff9d887affa48e7fff9a8475ff9b8675ff9d897bffa68f80ff9a8575ff9a8577ff907d6fff9c8778ff6b5c54ff8d796dff87776bff968277ff8e7a6effa18a7fff9e897eff9a867bff9d8a80ff9c887cff907c71ff8e7c71ff918074ff8e7b72ff8c7b6fff8d7b70ff8c7c70ff88776bff817165ff817367ff817165ff86766aff78695dff84776aff7a6c60ff74665dff796b5fff7a6c60ff796b5fff827464ff74675dff72665bff73685cff6f6358ff6f6358ff6d6156ff70635aff61564cff61544cff514740ff73645cff695b53ff685b53ff64594fff665c52ff62584fffdfc9b7ffe6cfbbffefd6c1ffe1cab8ffdcc5b2ffe1cab6ffebd5c1ffe7cfbaffe7d0b8ffe0c8b1ffc4ac9dffc7b2a6ffb29f90ffaf9e92ffc9afa0ffceb2a2ffb8a290ffd2b9a6ffc3ac9effab988affc2aa9bffc1a799ffbca394ffa18d7dffbca598ffbda594ffbba494ffb7a090ffb79e90ffb99f8effab9383ffaa9082ffa98f81ffa38a7cffa48d7fff9f8779ff9e8676ffa08878ff9d8274ff998172ff957e70ff967d6dff947e6eff967c6dff957c6bff9b8173ff987f71ff9f8577ff937a6dff947c6fff8b7468ff8d776bffa78d7fff9f8677ff907a6cffa18879ffaf9586ffb19686ffae9484ffbea393ffbaa08fffceb09fffcaad9dffcbad9cffcfaf9dffc0a392ffbea18fffc9a996ffc8a997ffc1a393ffcfaf9effc6a899ffd5b8a4ffd8bba6ffd7b8a4ffceb09affd2b4a0ffd9b8a3ffe4c3afffd9b8a6ffe2c0acffe4c3b0ffe2c0adfff7e87dfffffb68fffffa69fff1cfbbffeecdbaff9d8d7bfffde5cdfffde7d1fff7e2cbfff4e1c9fff6e3ccfff5dec8fff3dfc8fff9e4cdfff3dec9ffead4c0ffebd6c1ffe7d3befff1e0cafff7e4d0fff5e1c9fff9e5cefff0dac5fff5dec9ffeed9c3fffbe5cffff1ddc6ffe5d4c1ffddcbb8ffe6d3c0fffae4cefff5e2c9fffce6cdfffeeed7fff8e4cfffffedd5fff2ddc8ffeed5c2fffeecd4fffce9d0fffae4ccfffae3ccfffee9d1fff5dfc9fffbe8d0fff8e1cdffeed7c3fffae5ceffe9d5bfffe7d3beffeed8c4fff0ddc9ffedd8c4fff5e0cdfff1ddc9ffe8d4beffe8d2c0ffe2cdb8ffe4cdb8ffe7d0bbffdac6aeffe1cbb4ffd2c0adffdec9b2ffe0cbb3ffe0cbb3ffdac5acffd4c1aaffd1bea8ffdbc7b1ffddccb5ffd6c4acffcab6a0ffdfceb7ffd7c6b0ffd6c6b0ffdfcbb5ffdecab4ffd0bca8ffccbaa6ffcab9a3ffcab7a3ffd9c4b0ffd9c4aeffdecbb3ffd0bda8ffd0b9a2ffd2bea9ffcfbba4ffad9284ffb99a6cffeec54dfff2cd52ffb29889ffb89c8effbda193ffb69e8effbda294ffc0a697ffb29a8dffb3998affaa907fff9f8878ffa78f7effa68f7dff9e8777ffa38b7cffa1897bffa48e7cffa68d7dffa18a79ff9a8373ff9c8474ff977f6fff9a8274ff988174ffa28a7bff9f8b7bffa0897aff9c8676ff9c8575ff9d8575ffa38d7dff9f8a7bff988474ff927d71ff927c6fff958374ff826f65ff816f64ff8f7b6fff917e72ff958275ffa08a7dff9c877bff948174ff958073ff958378ff89776cff8e7d71ff918075ff8d7c70ff89796dff8c7a70ff8b7c72ff7d6d62ff796a60ff7e7064ff7c6d62ff85766aff806f63ff7b6d62ff786a5fff6b5f53ff75655aff78695fff786a5eff776a5fff74675cff74665bff76685eff77695fff74665cff6e6257ff6e6158ff655950ff5f544aff524a42ff71645aff6b5f55ff675c52ff60544bff6c6056ffefd9c6ffe0cab6ffe1cab7ffddc7b5ffe4c9b5ffdcc1adffe9d0baffeed4bdffddc6b0ffc9b6a3ffe5c7b9ffb4a496ffb39f94ffbba394ffbea596ffc4ab9bffd8bfabffc8b09dffbca597ffc7afa0ffc3a999ffc7ae9effb9a191ffc1a89affc7ae9effc0a798ffbca392ffb29b8bffb39989ffad9383ffaf9686ffa98e7fffac9485ffad9486ffa0887affa38a7bff9b8273ff9d8577ffa1877aff947c6fff967f70ff937b6bff957d6dff8d7365ff90796aff9a8270ff9d8373ffa48777ff92776bff90786aff776558ffa28a7aff998273ff9f8778ffa88e7effa78e7effb29888ffb09787ffb89e8effc2a795ffbda392ffcbae9dffc7aa99ffd2b29fffc9ab98ffc9ab97ffc5a692ffc4a693ffc8a999ffcdad9cffd3b3a0ffd2b4a0ffd7b8a4ffdcbeaaffd7baa7ffd5b6a2ffddbea9ffd9baa8ffe6c4afffefceb7ffecc9b4ffe7c4b1ffe6c5b1fffffb66fffff562ffecd789ffe6c2aeffbfa994ffe8d6befffceed7fff7e3cdfff6e3cbfff0dbc4ffead5bfffeedac5fff1dec7fff1ddc7ffeedac6ffe7d3beffebd7c1ffead6bffff7e0cbfff1dcc6ffefdac4fff0d8c5ffedd8c3fff1dcc6fff1dcc5fffae3cdfff4ddc8ffefdbc6ffead8c0fff0dac5fff5e1c9fffce6d0fff9e2cdfffbe9d6ffedd8c7fffbe6d1fffce9d2fff5e1ccfffee6d0ffffe8d1fffbe4cdfff0dbc6fff2dbc7ffecd6c2ffeed8c3fff1dac5fff3d9c6fffce8d4ffe7d1bfffe6cebcffe7d0befff3dec8ffefdac4fff2dcc6ffead3bfffe6d0baffe0c8b5ffe1ccb6ffedd7c0ffebd4bdffe5d0b9ffecd6beffe7d1b9ffe1ccb4ffdfcbb3ffd9c2aeffe8d1b9ffe2cdb3ffd5c1abffddc9b2ffdfcab3ffd6c3abffd3bfa8ffd4c2aeffd1c0acffbfb09effd6c3aeffd5c2adffcbb9a5ffd3c2afffd2bea8ffc9b4a1ffd2beabffcdb9a5ffd3bfa8ffd0bda5ffcfbda6ffcebaa6ffbfaa94ffb99d8fffa99081ffe4bc45fff3cc51ffbfa374ffb3998bffae9486ffb69d8fffb3998bffbfa496ffb59d8fffb59a8cffa88e7fffae9585ffa18979ff9f8777ff9f8877ffa08979ffa38c7bffa28b7affa48c7bffaa9080ff9e8677ff9a8272ff9f8678ff9f8477ffa98e7effab9182ff9e8776ff968171ffa28d7bff9c8474ff947f6fff8f796aff9a8272ffa48d7dffa38d7cff998575ff9a8577ff7c6b61ff937d71ff8e7d71ff948173ff968175ff9d887bff988477ff9e897cff947f71ff968478ff958276ff8b7a6fff89796eff8c7a6eff89796dff88786cff8e7e73ff88796eff8a7b70ff88796dff8a7a6eff7e7166ff817166ff837468ff837469ff817166ff7c6e62ff796a5fff796a5fff7a6b60ff7b6c60ff77695dff74665cff736559ff74665bff6f6258ff706257ff6e6157ff665950ff584d45ff574d45ff60554bff574e46ff64584eff60544bffedd5c1ffd6c0acffdec5b4ffdcc4b4ffdec7b4ffe5cdb8ffebd4bfffe2cdb8ffd7c0aeffdac1b2ffd3beaeffd7beb3ffc1a99bffbaa695ffe5c6b4ffdbbfadffdabeacffd3b5a5ffc5ae9bffc6ad9dffc8af9dffc9ae9effc0a998ffc1a999ffc9af9fffbfa797ffbba292ffb69b8cffb19786ffad9382ffa99080ffa88e81ffa48b7dffa58b7effa48b7dffa08879ffa08778ff9a8272ffa3897affa28777ff9b8273ff9b8172ff856e62ff91796aff957d6cff9f8574ff9f8676ff957c6eff967c6eff836e62ff8d796bff8f7a6effa88e7dff9a8373ffaf9584ffab9282ffae9585ffb9a090ffba9e8effc2a493ffb19787ffcdb09fffd3b6a3ffccae9cffc5a794ffc4a490ffc8a694ffcdb099ffd1ae9bffcdaf9affc7aa98ffd5b59dffccaf9bffdbbaa6ffdbbaa5ffd6b5a4ffddbba6ffe4c2acffdab9a4ffe3c0abffebc9b4ffe5c0aeffe6c996ffffff6efffffb63ffe1bca8ffe5c3b1ff9c8a76fffce7cffff7e3ccfffbe6d0fffbe5cffff2dcc8ffebd6c1fff0dbc7ffeed9c4ffead6c0ffecd6c2ffead5c0ffeedac4ffecd7c6ffefdac6fff2ddc8fff2ddc7ffefdac5ffedd7c2fff1dbc6fffae2cbfff6e1cafff4dcc9ffe5d2c0ffedd6c2fff0dac5fff5dec9fffbe6cffffce6d0fffbe7d2fff4dfcbffedd9c7fff1decafffbe5cffffce6d0fffae4cffff8e2ccfffeead5fff5dfcafff7e1cbffecd4c2ffead4c0fff1dcc6fff2dcc7ffebd6c3ffe4d0bcffe2ceb9ffe0ccb7ffe5d1bbfff0dcc6ffe3ccbaffefd8c1ffdfccb7ffe4cdb8ffecd6bfffedd6beffe7cfb6ffe4ceb7ffdfcab3ffe1ccb4ffdec9b2ffdac5aeffd5c3aaffd6c3abffd3c1aaffcbb8a4ffcebea5ffdbc5acffcbb7a0ffd9c5b0ffd7c5afffdac8b2ffcfbeacffcdbba8ffc9b7a4ffd6c4aeffd6c1abffd5bfa9ffd4bfa9ffd8c3aeffd3bfaaffbeab96ffcdb9a3ffc9b6a1ffc8b29dffc5af9effb39889ffd7b361fff5cd53ffedc54dffae9486ffb59c8fffae9789ffa79082ffa89183ffbca295ffb69d8fffaf9586ffa4897aff9f8776ffa28878ffab9380ffa68d7cffa68d7cff988274ffa98f7eff9f8777ffa99081ffa48a79ff9d8576ff9b8374ffa68c7dff988173ff9d8575ffa58e7effa08878ff978171ff9f8879ff9a8373ff967e6eff988171ff968171ff998576ff8d7c6fff88766cff75665effa59084ff988679ff958274ff917e71ff978577ff9d897cff9a8679ff978274ff998577ff968476ff8d7b70ff948378ff86766aff857567ff89776aff8f7e73ff86766bff8b7e73ff85766aff817367ff82746aff7b6e62ff7e7065ff817265ff7b6d61ff817064ff7b6c61ff726459ff796a5fff74665bff736559ff74655bff706157ff6e5f55ff726459ff6f6257ff6e6157ff675c53ff574e47ff544941ff62574eff584e47ff574d45ffe1cbb9ffedd2c1ffcdb7a6ffdbc3b2ffe6d0bcffecd4c1ffead3c0ffd0bbaaffe7d0beffd7c3b2ffd6bdb0ffd8c0afffdac0adffd9c1afffe9cebbffdcc3b3ffd8bba9ffe2c4b4ffc7ad9effceb5a3ffc1a999ffc7ab9bffc6ac9dffc2a999ffc8ae9effb69e8fffc4a997ffc7ab98ffba9f8effb29889ffab9082ff9e867aff947c71ffa1877cffa98e81ffaf9384ffa58b7bffa08878ff9b8174ff988073ff9b8174ffa38878ff937a6cffa28976ff9d8475ffa68b7cff9a8174ff867166ff866f64ff998174ffa3897affac9081ffa98f81ffab9283ffaf9484ffbb9f8fffbfa695ffbfa391ffbfa393ffb79b8affc4aa99ffcaae9dffc3a593ffd0af9dffd4b4a3ffbda08effc5a592ffc6a895ffd5b29fffcbab97ffd6b39dffd1b09bffd2b39dffd7b8a2ffd6b6a0ffceae9bffcfae9affddbba4ffdab8a2ffe7c8b2ffe5c0abffe8c5affffffe69fffffb67fffff160ffe2bea9ffe0bba8ff91806efff6e1c8ffffebd4fff6e3ccfff0dcc5fff2dcc4fff6dec9fff0d9c6ffe4cfbdfff5decbfff0d8c6fff1dcc7fff3dfccfff5dfccfff2ddc9fff6e0cbfffbe6d0ffefdbc4fff1dbc6fff2dcc8fffbe2cefffde4d0fff7dfcbfff4ddc8fff5dccaffedd5c3fff4dcc9fff4dcc9fff4ddcafff5decbffefd8c2ffffe7d2ffebd7c3fff6e0cafff8e1cbffe9d4beffffead3fff2dcc7fff8e0ccfff3dcc8fff1dac6fff5dfcafff1dbc6ffebd6c1ffe2cdbaffe0cbb9ffe4d1beffe0ccb8ffdfc8b4ffe5cfbaffdcc7b1ffedd6c0ffeed7bfffe7d1baffead4bdffecd6beffe7d1baffe8d3bbffe7d1b9ffe1ccb5ffdbc6afffd8c5afffd7c2acffd6c1abffd8c4adffd4c2aeffd2c0aaffcfbda8ffd6c4adffd2c1aaffd1beaaffd6c3afffd3c1aeffcbbaa8ffcbb7a5ffd5c2aeffdbc5b0ffd8c1acffd2bda7ffd3bca7ffcfbaa3ffcfbba5ffc5b29dffcebba6ffd4c1acffc8b29effb09487ffba9d90ffecc24cfff0c852ffb4998affb69c8dffbba08fffb09889ffb09586ffc1a596ffb2998bffa98f80ffaf9585ffa88e7effa88d7dffa38977ff988172ffa28778ffa3897affa78d7bffa08674ff9f8676ffa08776ff9f8675ff967d6eff907869ffa18877ff9d8475ff9f8677ff9e8876ff9b8776ff978374ff917d6cff917a6aff957e6dff947f70ff8f7a6bff9b8578ff937d71ff6d5f56ff978375ff847469ffa5907fff9a8879ff8e7d6fff958274ff9a8778ff917f71ff938276ff8d7c6eff8f7d71ff8b7b6fff88776bff74665dff88756aff89796dff86746aff8c7c70ff817164ff8c7b70ff897c72ff807267ff86776bff807165ff7e6f63ff73655cff6d5f54ff78685cff73655bff7b6e65ff7b6c60ff716459ff706157ff665a4fff73655bff6b5f55ff6f6158ff6e635aff665c53ff574c43ff554b42ff6e635aff5e534c4aff7c274eff8133848988839795948eaf979893b09594909b9794906b918c88558c878058908a8361938d8765978f8c5b95918e5e969391719b98966f9b9896759d9b9994a19e9c739a9594809e9b997fa09e9b8f9e9b9894a19c9a84a8a3a082aba8a394b6b2afb8bfbdba8bbbbab89fb9b6b2cabdbab6c1b6b2b0b7b0aea9b1a8a7a2a5a4a29e8e9d99938e98938e868d88836e807b756b827b767e807a748d7e787184726c67a2706c66ac6a6762af615e5bb95c5955d05f5b57a65955509a58514cae59524bcf5a534dda59524cdf5a534df059524dfe5b544fe859534f9e504b4695524d48be57534e9c56524fa05d5854b5615d5ab25f5d59af605d58a6605d57c569645faf66615caf645e59a766625c92635e5ab4686460ab64635da063625da265625d60615e59c4686561d0696762b6686661b06a6863ca6a6863cd686662a464625d9c63625fad676561b56b6864a36c6966c0716e698967645f976a6863986d6a667f6c6864ad716e6a786a69639b706d68a4787670c47d7b77c27c7975b67e7a767d7872706576706c657a746f707d777276817a766c817b78657f7b778385817e7e86827f86878381b3908d8c908984849e8f8b8a8e8d8a88a593908eae9b9595a3a49e9c9ea5a09eafafa9a8dcb8b3b2bbb5b1b1b9b1abaaf2bcb5b4e7b7b1b1e4b7b2b0d6b5b1afc5b8b4b3a8b6b1afa7b5b0aea3aea8a77a9e98967aa39c9994aba4a19cb1aca79cb2acaac5c2bfbb54481e0956843b16586a2a0f62692c1246521c08545a220d525b230d5d59210d66571f0c5b88321166f3692a40f871259d67625d8556524eab54504b94504b46a24e4843af4d453fba474039aa49413abd484039ab463f37d34b423bd84b423ae04a4139d2494038e54b423aff4d443dfa544c45e7574f49c45a534d9b58524ca55a544f8b5750494e504942a5605750f96f655cff746a60fc6e665dff726a61ff756d66ed6a655cfa6d655ef76d655dea69625afe716960f96e665eea686159ce625b54eb665f57ac5c564ff3676158ff6c655ce869625aff6e665dce655d54f4655e55f86a6259ff6b6359f6645c52f0615a51e5615951f1615a51e65f5850f55f5850b4564f47bb5a524a97564e46ba544d44884e463e8a4b443eb6514b43c6514b45c74f4842d44e4640ee514a42c34b443c9b46403974423b359447413a9145403a84433e398d48433e7847423e84494540814c49448c4a4844b24c49458b494641934846418c4b48448f585651e476756ef48a8881d98c8d86da93948cd9999991c0999892fbb8b8afffb9b8b2ffb9bab3ffbcbbb2f2a1a29bfeaaa9a4ffb4b4adf7adaaa6dfa5a19dbe9d99969e9991928f98918fa4a9a2a18eaea6a1b3b8afaaa1a9a29dc7b7ada8bfb5aaa5dab9b0a9e5baaea8f8b8aba6deb4a7a2f4aa9f9ad39e958f5cffb04445ff842955ff8130768c8a85698e8d897e93908d8b938f8b74918d87468c867f538e89825c918b857c9d97947b9592917f9594938e979595899a9795779995925a97918f7e9b9995779b98967899969396999996afa4a19fa2a8a5a3abafaeaab0b9b5b3cec7c4c1bfc5c3bed5cbc8c2dac5c1bdd4bbb7b5c1b2afaec0adaba694a29f9ca1a09c989498928d7a888380727f7c799089837d8e837e78a5847f79a17f7a74b17a7773a06e6b689a6e6a68bc6e6a67e1706b68e06d6865cd67615dd868615cd7645e58bd5f5853df645d57b75d564fc9615a55b75c5752be5d5753b65d5853a35e5a55a75f5c57995f5c57875d5a558b5c5a56785c59559d5f5c589d615d57ba68645da968625b8d635e57af66615aaf65625cd6686661c368655fb966635eaa67645fbc686561ab696561c2696660a7696662ae65635fb366645f9363615d8062605b8d66635ea56a6762a66a6863a46c69628b6b6761896a67648c6c6965cc74716af27e7b75b378746ea176736d86726f6a7674706c8f7a7572a37c77748879747058746e6b6077736d6a7c77719087817e92827f7d8f817e7caa8582809e86827f8984807d5f7f7a7891888584918c8887898a8684a78c8c89d7a19d9bcda7a3a1ceada9a7d6b6b0b0f2c1bbbaecbeb9b7f7c6c0bdfcc5bebcfebfb8b9e5b7b2b2e4bab4b2b2b4aeadc1b9b4b4b5b6aead96a59f9f889c9998a4a7a19eabaaa4a1c4b6b1adc8bdb9b5dec5c5c35b64260b4e7d3513666b2a0f706a2d135259230e555a220d4958200c2d4d190738501b08428f33116bf2652a38f87023ac696461ac5f5b57d25e5a56c259544fc057504bbc504943ba4a423dd74d4640c84c433ca4483f37dd4c433cce494039c0463d35cd483f38d4463e37e0473e38da4f4640ad504943c059534ca256514da657524d96544e49af59544ddf625b54d5625b53ce625c54cd625c54e269635bd0676159c9645e57c9646059d0645f58f369635ce067615aee68625be6666059e26560597859534dde69635cff746d65ff736d63f2736c63ff7a746ada6b645ddb69635bb4625d55c6645d57ef6b645ccf666058dc68625ae56b645bc7655f57dd655f58ce645d56a2605a52dd6a625afa6e665dc1625c53be625a52b2665e55e869635bb2615a52c2625a528c5950497e584f4874564e457f5750488e57514a8e58524c8d58534d8e57534d9957544f96595550a55c5954af5c5a56b05b5954955a575198595752c363625bd5706f68e6817e78c585847dce8c8b85dc94948effa4a39cffadada6bb9b9a95ffb5b4acffaeada6ffb0b1aafba3a29afaa1a29be0a1a09bdba6a49fdaaba7a5dfada8a6a89e989795a39c9ab3b4adaac0bab3b1d5c7bfbcd6cac1bdf9d8d1cee8cec6c2f5d6cdc9e7cdc3c0f3cec5c3fed4cccbecc8bfbceac4bbb65effb24b52ffa43c44ff852851ff872f4c83827f4f83817e528a86835d8b87833c8885804689837e4a918b874d94908b5296928f53908c894c8e8a8842928d895d98938f4796908d76989492869b9896a1a19f9d979f9a9aaba3a0a2bcaba9a9f2bab6b5dcc1bcb8cdc1bcb6d6d0cac5e0d0cbc6fed0ccc6dcc5c0bddebab8b4eac0bbbaa8a6a19f7ea09b968899928e9795918daf94908a918d8782a48c8780bf8f8a85d18e8a84cb87837fc683807ecb817e7ce67c7a77d8767471e775726ff0726e6acf6b6662ff726c68ae645e5ac26a635eb7655f5cc167615dca68625d945f5a556f5c5852a964605aa968645fa365615ca363605bbf67645fbd67645ea769655faf67635d9e67625cb76a665ebb69655e7f635f579c67645ebe67635f9866625d92625e58a269655fbd6e6b65b96b6862b76c6964b66c6964b96a6763d96d6965be6b68648165625d986866617664625c916b69637268645f5865625e926d6a65b675716baa76736d9e71706a9573716c9f7774708b76736e6c6f6a675e6c69656b726e6b7676716f4f716d6955736e6a5e7c7773647f7b7766817b795d777370567772704678747068817e79427a75737d837e7d988a8684c0979391ba95908fc29b9798ecaba7a7fec0b9b9fdc8c0befcc0b8b6fdc8c1befeccc4c3ffd4cbc8ffc8c0befdc3bdbbffd2c9cac7b5afaf90b2acaa99aea7a6b9b1adaac3afaba899a59d9990a39c96d2bab3b1e2c4c0bde9c8c6c46b66280c477a3312676f2f116a692c123c521e0b5056200c41521d0a36501c092e4b18074198371340db541fd27d7974d6736e69e0696660f166635fcf5e5a56c9625b56f4655e58e15d5650ff605851ee5b534bcd544c46b9534a43ef554c45f5595047f95d534aa84d443ce5534a43cb554e47e55c554ec95a544ec95a56509455524db559554fad58534d8a555048a75a554e7056514a9458534d9b5a554ed8635e56d1645f58b35d5851bc5f5a53db615c55f264605af667645dc1605b54c55f5b54bf5f5a53d1615c57bd615c57b7625e56e76a655fe26b6660ee6d6861df6a655ead66615bbf67625bb0666059e169645cce66625ada6b655eb2655f57b969635c7e605b55f9766f67ff7d766bff898177d8756e64d7746d657e6760598b6b645ca46f6760df786f67d7746c63b66c635b72635b539567605787666058c8716b65c56c6863b8686561e0706d68c86e6b669a6865607865615c99676460a26b6964af706e69b1706f69c5757770ff908f88fd96968ffb959790ffa2a19bffafaea9ffb3b3abffadada6ffbebeb6ffbab9b1feafaea8ffacaba6ffa4a39dde9e9d98f2a6a4a1daa7a19db49c9694ae9e9a99d8b0aaa6d5b8b1adf3c7bfbbd2c5beb9f9dad1cdfcd1cbc8fbcfc8c6fad9cecdffd5cccbffd8d0cfffded5d5ffcdc6c3ffd1c9c7a37d3b1768ffbc5044ffb14247ff962f5cff802a848b8a868894918d75948f8b688b87825d8d88846a938d89809a969196a29c99809b97937a95938f8a999493bfa5a09f8e9b9695899a95939a9f9a97a89f9998d1a7a3a1a1a19e9fcdaeabaafabdb9b9e4bebbbaefcac4c1e6d2ccc8d6cdc9c4eec6c2c1f1c4c1bedec2bdbaa3b1aaa595a49e99799c9690b6a8a09cbba09a947a8f8a8386958f888f928d86bb98938cd397938eaf8c8884b6878481a6817f7dd786827fd27d7a77d67b7773de797470c06f6a65ac6b656184645e5ba369635feb6f6a66e66d69657a625d579465615c9e66625db969666188615d5992625e5b9d625e5b895f5d577d625d5573605c538c615f58b56b6760b96c6760a668645d9c6a665fb86d6961a069665fae6f6c63a16c6762b06d6a65be6a68639c6b675f866f6a62bc6f6c66b56c6963ba6d6964ae6d6963ac6c686276696660996b6863bc726f6ac377726bc37b766ea1736e6792706e67ba78746e8a76726b7a746f6a486d69636b6f69658c73706b96797571a57e7a768a7d77747776726e657873707a7f7a779585807cae8c858393827d7a9a827e7c98807c7bdc918d8bb1898585aa8a8685be928c8bcd96908ef9a39e9cdda39f9eecaca6a6ffc7bfc0fdbfb8b8fdc7bebdffcbc2c0fcc7bfbefbc4bdbefec8c1c2fbc9c0bfd0beb5b2b2b3aaa890aea6a3dac4bab8e1bfb7b38ca69f9a9baea4a1b0b1aaa6cebab5b0f9cdc8c5e0c5c3c16b67280d487732126268290f60652b1257531e0c4d551f0c3a4f1b094e541e0b60551d0a40a43f1644da552091726f68d978746fe7706c68f06e6965d96a6561dc6d6863ff716c66e968625bfb67605bfa686159fe635b54d85d544df760574fc5585049eb5f564fd55b524bd25b534ccd5b534da859524c78534e476f524e47ae58544fb55b5751a057534db65a554eef665f57d9645e56d16862599f625c53c1605b53be635d55d4635e57ca625c55aa5e5951b85f5a54e0625d56d2615c55b75c574fbe615c55fd6c6760ed68635cf46c675fea6b6760ee6e6a63f56d6861f76f6a63f36d6862aa645f58ba64615aa3605d56a6625f57a7645f59745d5853a768625ce7756f67d46f6b64c76e6a63d1746f67bd736d66d47a746dbf7a736caa756e67926f6862946e68607d6e6760836d665f6f6b655e736a645d79706b657e736f697a716d686966635f7167636064686560766c6a64746e6b66866e6d68a775736ed883827cf88c8b84f18d8b85ff908f8aff9d9d97ffaeaea7ffb3b1aaffb3b0a9ffb5b4adffc1c0b7ffcccac0ffc5c3bbffbebdb6ffafaea6ffb3b1acea9d9b96b69b9893c4a19c9ae2aaa5a2f7b4b1aee1b6aeaba5aba39ed7bdb5b0fad2cac6fcd6cecafcd3cccaffd6ceceffddd6d5ffe2dbdaffd1cbc8ffdbd3d3ffe0d8d6ffccc5c56bff983d7e8a431b68ffc25151ffa7354bff892455ff7c287226231f9d292621bb2c2923a62825209226231eb52826208224221ddf2a2721b9282520a9292621d02c2823be292621dc2c2924d52c2924c22b2722cd2a2722d22b2823c9292622ed2e2a25c02b2723a82a2622d32d2a24ca2e2a25e5302c27e7302c27e22d2925bc292622cf2b2723c12c2924e22d2924e5302c27c72e2a25de302d27dd2f2b25d12e2a25cb2d2924ce2c2824ec2e2b25e32e2b26e3302c27ea2f2b26f12e2a25e52e2925dd2e2a24ff302c26b42a2722d82c2823e42d2a24da2f2b26b02b2722af2b2722ac2a2621cc2c2923c72c2823d12d2924a8292621cc2c2823ce2d2923cd2b2722e82e2a24eb312d27f12f2b25f02f2b25d12d2923ce2e2a23e12f2b24dd2f2b24d12e2a24d92f2b25cc302b25a82c2722dd2f2b26ce2d2923f2302c26cd2c2823c42c2823e52f2b25e92f2c25d02b27228826231e7b26231eb02b2721c42c2923ce312d27e22f2b25aa2a2621c82d2924c72d2924d52f2c26d52e2925c42d2924c82d2924ca312d27a12a2722ca2c2923cf312d27c32b28229226231fbd2a2722d52c2823da2e2a25b92b2722da2c2923d92d2a25e22f2b26f6302d27e32d2925e52e2a25e62e2a26ff322e29fd332e298227231fe2312d28e2312d28f836322de9322e29f0322e28bd2a2622dc2d2924c6302c27dc322e28eb332f29d42f2b26df302c27eb332e29f1322e29d9332f2ab3442d206a68270d4a7431105d6728104b5d230e4b56200b3f531e0a4c531e0b52541e0b42511b0955ab411a4ee25c26c22d2924e72f2b26fa2f2b26e1302c27e42f2b27ef332f2af2322e29fa332f2aea312d28ff332f29ff322e28e42f2b25c42d2924d22f2b26df312c27fc312c27fe302c26d22d2924ce2f2b25c52e2a24d72f2b26e7302c26bd2b2722c52b2722d32d2924c72d2923bb2d28228428251fac292520e32f2c25f02f2b25ea2e2a24d52d2a24e32e2a24d12d2923c62d2822d52d2a23bc2c2822e62e2a24cf2c2822cc2d2923bf2d2822ed312d27c02d2a24f7322e28f2312d27be2c2823d72e2924852926208e2a26218e29252098292520c82e2a24d82e2924c32d2924d42d2924b32c2823b62e2a24892825207227241fa82a2621b6292621c52c2923a12a2621b82c2923c72d292490282520b02a2621c02b2822b42a27227724211db8292621a8282520bc2a2622e12b2723d62b29249826231fac282521b0292621b5292622d12a2622b32926219626231ff02e2a26da2c2924d82d2924eb2f2b26bf2e2b26ee2e2b26ed2f2c27f02c2a25f02e2a26d02c2824bd2a2722b3292621db2d2a25cf2a2722bb2a2722b92a2722b92b2722c22b2722ec2c2924de2c2924d32c2824e32d2925d82b2823f72f2b26f02c2924e62c2824e52d2924d52c282473ffdb5e60f58d367785431a73ffc04d4cff9e3341ff761d54fd7428e35b544dff675e54eb574e45af50473fb44f473e90463e37f3574d42c250463dbf564a41d95a4e44a14e4339fb5c4f44f05c4e438e4e4138c852443ae354463abb4c3f36db53443a984c3e35744a3c32d557483cab57473bcb5c4b3efc624f42d3534439a6493c33cf4e3f35e157473beb504236f959493efe584a3eff5a4d41e152453cb152443cda55483fd955483fff594c43fb5d5047ff5e5146fe5c4f44e95b4d42c9564a3fc456493eeb584b419950443ac752463beb55493eff5a4d43674b3f368e4b40367f473d34b14f443ac952463cda564b3f7a463d34ad4e443aae4b4239b2473f36d150463cff5a4f45c44f453be354493ec251463bb650463cfd594e43e85b5046c1594f44e15e5248e862574dbc5c5148fc635850a7584f45cf5f554d9b554b4378554b43b25f544bb25d544a9d564d457650474067534c44cc655950bc655c50ff7a6d62ed6a5f557a574d45be5e554eec615853fd625b52ef605851c7615551cd615750fe72675da362584edd665c51ff73686080564e476d4d4641995a524dbd5f574ff7685e56945c534ecd60574fb3625852f16a5f57fe6c655dcb635b54ce665f58e76d645dff786e67f57c7168014e453fe682766eba80776dec978b83ff90857bfc8a7f759a69605ae47e746dff96897fff9b8f85ff9f9389ff968b82ff978d85ffa1958dffa59790ffb7a99f978c5e4a656c2b0d5e7533113a5d220d3c59210d39551f0c5256200c5b56200c4e571f0b545c210b4dae431a34e0581ed0927f70eb948070d28c7a68f89e8874ed93806effa48c78ffa18873ff9b846fff9c846cff9d8269ff9b7f67d98c745ca7876f56fb957b60fe91755beb90735af68b7056a480674feb90745afb917559e3886f57e8896f55a97a634bbd786149aa7a644dca80685190745f4798735e49a86e5745fe7d6751c4715e48db725e4bbb705b48b96152408d604e3ca0624f3eb5655341a4604e3dc0614e3d84564736a95e4d3dd1655341de6956449d605040fe6f5a49d9675443885c4c3da35c4c3f6d5c4b3e7e5e4e3f6457493d5b514339735d4e40b2625245e1675548c261514363584a3ca862524485594b3e77524437c6594c3fb253473ad05b4d4083504238d05f4f41e45d4f429252453afa615143e7594b3e7d4f41375c443930ae514539a4514539d2594c3fe75a4b40dc55483d964e4237da554a3d8752453ab4584c41794f4038a952453a49443932af574a3f824f44398c52433791524439b9514438c7534537bc4f4235c54e3f33ec4b3f33f84d3f33e14c3e32fd4c3f32f6483b2fba42352ac641352aca43362ac5413529ee43362bff45392ce240342ac13f3328ff43362bf8403328f243352adc3e3126ee403327d43f3126d840332779ffe6617effe46471ffa04054642a0e65ffb24459ff9e344fff84225ffe802d70807b7388817c757d827b749485837caa8f8c878d8f8c878f918d8aa599959199999692b69c9a988e9694907e9996937b99959466928d8b929794939296929284928e8caa9e9c9a979d99967ba39d986aa59f9caeb3b2adc4b6b2acb5b2b0ae8ab0aaa998c5bfbf76c9beb885c8bfb7bbd3ccc7b4d2cbc5abcfc8c399bfb9b36fafaaa469aca4a16ca39d9992a7a19db3afa8a5d8a8a2a1f4a7a29ee59e9a95d699938fc8918b86c88c8681c5827e7889726d68856e6964b36d6964a26e6a6759645f5a6267615b93726e66a1746e6896706b659d736f67a67a746bd6837b739d7f776d9e7d776eb4827b6fb5837c70d0857d739f80786e7f787167a4857c73b98e857ada91897ebf90877da889827abd918b82b88e877f9f8b847e9e8f86828d8d857f7e8d857e929086819c908983878b837ea59087807a8a827c8b8f8782c697908ca5908a85a997908bbd9f9891b99f9890cba9a19af9b9b1a9fabab2a8c8b1aaa1b0aaa39bbeb4aba2ecbcb4a8bca8a094b5a1988dae99938bc69c968fd5a09a93c99b978fc4a09a93f8b3aca5fdb2aba6b19d9791afa09a94c6a8a29bb4a19b97d9aba5a2ecb3aca8b5a9a29fe5b7b1acabaca49ec4bab2aabdc0b7aff5ccc5beffc6c0bacbaba6a4bfa8a2a0cfb0aaa7f5cbc1bcfccec4bdffd2c9c1f5c7bfb5f9cfc6bdebccc3bbe3d1c8c0bacbc3bc94ac816f6360250b4e6f3010315f230a3257210b4b56200b5259230d53551e0b4f561f0a6666260d42b3451832d4501afffdfaf2fff9f3ebfffbf4eeffddd9d4ffe2dcd7ffe1dad5ffdad0c9ffcdc2bbfcbcb3aafdb9afa3fdb4aaa0ffc4bbb0cbaaa095d0aaa195ecada498f9aca499fab3a99cf3aca49ad3a69c90e4aba397dca69e91f8a59e92cb968f8488827d70ab8d867b9d8a8379948a8378d2968d82cd968e83fea39a8ed9999086d1928b81e5989086b18f8a7edf988e85d8948c83ff9d958afe9d9488f5989085c490887ecf938c83c48d877dbd90897fc5908980c0908a82a78982799d88837a9f888278b78b847db48c847ec1928d84a28f888081878179e4a29b93d5a39c93ffb9b1a9c89d958e85918a82dfa79e96f0aba49bffb7aea6f7b4aea5ffc6beb5c9b6aea5ebc0b9aff7cbc2b9f5cfc5bafac4bcaffbc5bfb37498918bd5bbb4acbfb5afa8d4c0bbb3e3c5bfb9e3c7c0bbdbc1bcb5e3c5c2bcfcd3d0c8f3d0c8c2a8b7b1abd2c8c0bceecfc9c5eed0cbc7fee0dbd8ffe8e1dbede4ddd6fef0eae2e1e6e1dbfefef9f2fefcf6effffaf5edfcf4efe7fbe7e1dffef5f0ebfffdf6f1fffaf2ecfff0eae4ffdbd6d3ffd6d0cbffd5d0cafdd7d1ccffddd7d4ffd9d2cfffe1d9d7fdd9d3cfffdfd8d3ffebe5ddffe7e0d8fee5dcd6dcd6cfc7f3dcd3ca7cfff56e7bfff26e79ffe8636fffa0406478381359ffa43e5eff9c314dff862960fc7a2b7d807d769583817a9c87867fa9918f878d918e869f93918e808d8b899993918e8595928f94989491a79b9896c2a19d9d9c9e9b9aaa9c9b998e959491aa959392c3a3a09e9b9e9a9874989490c9aca7a3d9aca6a2d3b1aba792b5afa978b2aca791beb8b285cac3bc62c2bab260c1b9b18ec8c0bb7bc1bab887c4bcb777b8b0aa6cb3aca67faba39f95aca6a2b7aeaaa6e0b0aaa7d9a7a19dc8a09a96b098938ec4948f8b8b837e7a9b7e7a757c75716c6f69656168625f599f696460a06864608e66635d9368645d5366605961645f584d625d567d68625ca9736c64bd787067c0757066cd787269b6756e65a4756e647f70695f68706a6071726b6172726a6091766e648b746e6483756f68d2827b75a77e7772a27a746ec07f7a75d2837e79ca827c779379726d6f736d6774746e6873716c665b7169657a7a75708979726e957c75718f7c7672ae837d79a1827d76a189837d75807b75948a827da48c867f8789827ad2999289a38b857a8a847f77ad87837bbe898680b48e89829c89857eb08c8782ab8a8680c0918d87cb97948eab8f8b85c596928ee09f9a96e2a39e9bd59f9b98b096928ed9a29d98f6aea9a5cfa9a29daca79f99fdbeb7aeffbfb6b0ffb9b1abd7b2aca89e9e9894d7b4ada863948b818fa0999299a89f9aaeafa6a0a6aca39ea0afa69f7ba29c9379ada59e69956d5978702a0e456c2a0c4261260e525d230f665d250f605a220d5959210c6759200c6769260d83ca582644da551affd7d0caf0d3cdc6fbcec9c3f7c0b8b5fcb6b0acf2aba59ffda09a92ff99928bfd8a837cc17c756eba787169d579726af67c756eb8726b65d2726c64f87a736de679736dcd756f68756b645eae716c639f706861b3716a62ca716b63df7670689269635cac6e6861b0716b63bc716b63d2767067d8767168da79726ac6726d64bf736e6698706961a7716b62d779726af27f786feb7d766de37d766dec7f786ede7e776ec6797269a4756e67c07b756ec27b756ea2746f66a177716aca807a72a977716ab576716ae0837c7495766f689d79736be788827bf88b857efa8c867fd3857f78bb7e776ef38b857dc4857e77ff9a938bff9f9890f698928aa9847d77dc948d85ee9f978cffaba397f2999087df938c83c48c867fe2979089f49e9992ef9a958fe09d9993ffb1aca6ffafaaa5f1a29e99f0a4a09bdca09b95e2a49f99e0a29d99f6a9a5a1fcafaaa6dcada8a3fdb7b3afeebbb5b0e4c2bcb6d9c6c0bae4d1cbc5ffe8e3ddffd4d1ccdab4b0afe6beb9b6fcd8d1ccefd8d0cbffe4dcd4ffe5ded7ffd7d1caffe0d9d2ffcbc6bfd0b9b4accdbeb7b2c6bdb6b1ecc7bfbafed7cecaffeee5e2fff8f0eefffffcf9fffbf5f2fff8eeebf7ece3de5affd75565ffe15b6dffe65b76ffe15d7bffa4405c7c36126fffa4415dff9e3452ff7f2265fc7c299686837e998c8783928e8a85848e89867b948e8a698d8985508a86836f908c8a89928f90a89d9a99ad9f9d9c779a96957c9693918a9694918f949291859695939b9f9e9db0a1a09fbaaaa5a28c9e9b968fa9a4a073aaa6a15daea9a65dadaba788c6c4be97cbc7c198ccc7c3b2c5c0bd6ab4afab67aba5a472b5b0af8aafadaabeb9b4b2b5b7b2b0beafa9a6bdaca6a2c9a7a29fb39a949198938f8bac938f8c89847f7c6677726d8676726daf726e6ab06d6965bd6a67643e5c58539765615d9767635e9166625a9968635baf6d6761f0746f67c8716b63b26f69629c6f6860c2706a638c6a625c6d6761597868615968655e577d6a645c806c665e7469635a776b665c846d665fba757069ac76706aad736e6abf75706b97706a65a8726c665d6d66604f67605a846d66618f6e69636d6f6862546b665f796f6a64756f69668a726c6976746e6a4f6e696361736c66977b756ec0837e77b1827d776d79726bb2867f76a6807c75a27d7872ab807a75a57f7c75c788837daf84807a8a807b7587807b7697857f7a6e7d777390827e7ad4938f8bca938f8ab0928e8ab28b8986a48a8784c192908cab9a9692a09b9693f9b3adaaffb8b1abe4afaaa2899b968f94a19a93759a948e7c91908c9fa19d98b6a5a29cb6aaa5a1b6a49e9995a7a19bbbaea8a3c5b5afa9bbb4afaba1a27b697f742d0f466b290c5264270f495a220d5657220c4e561e0a51541d0a6f5c220c5c732a0e76cb58244cd55418d4bdb6b0acaaa59e9ea19a969b96908bd49c9691e099928dff928c89ff87827dff7a746edd6c6761ec6c6661e168635dfd6c6761f164605aa759544f9d5a5551e1635e5acb615d59a55d585346504b46b6625d57965e5952915a55509a5d5953bd625d56c867615acf69635cc369625ace69645cf1706b61e16e685fed706a61e16f6a61f4726c6395615b54a569625ac9706960c76d665df2756e66b06a655de0746e66ca726c659969645dbe746e66ba766f67a16d675fb2736d6596706a62c6777169c1716c64af6e68618a69635c8069635da6706a64bc736d66b6756e67cd78736cf4817b73f4817b74e5807a73e0807a73e3857e78d9827c74626a655de8867e76b17a736abc7b746abf7b756ede817c74fa88837ddd88837cc4807b76dc86827ce68b8782e695918bf894908be9908c88f696918be08d8986ea96918df29c9794ffa49f9ce795908cf89e9a95ffb1ada9fbafaaa5efb0aba5ecbdb7afffd1cbc3f9d0c8c2ffcec7c2fec8c2beb1a29c98ffcfc7c160938a80dab6b0a99faba49ff0c2bbb5d2b9b1adbeb2aca597a9a29b90a8a29994aaa49dcebdb7b1fed9d0ccffebe3dffffaf3f1fffcf5f3fff5ebeafff1eae7fff9f2ef6cffd45875ffe46270ffeb6367ffdd566affd65768ff9b396d662b0f68ff943b63ffa33a51ff822552ec6c255d847f7e5d85817e6d8f8c875e928e8b7492918e77979794919c999790a1a19ea8a2a19f959f9c9d7aa09e9c91a3a2a1afa9a5a5769c99999ea9a8a59ba9a8a68ca9a6a589a7a4a37fa7a19f78aca4a277ada7a49cb7b3b28ebebbbba7cac4c24ab8b1ab95c5c1bdb5ccc6c292c1bcb7a1bdb8b4aabbb8b5b2c0bab7b6b8b5b2b1b9b4b199ada8a4b4aca6a5c9a7a19ea1948e8cac96918e9f96908d5e868079587a7271977d787689736f6d8f6c68673b655f5bb7706b67bc6c6862d1706a65b16b6761a56a6660ce706c67bb6d6862ae6c6761b46d69637f69655d8c68635ca66a665fb36f6a62c7716c657868615b51615b548069635f8a6e69627f6e69618b706b64846e696291716c66c77a7570d27a75709d736c66c17c756ea8746e6994726c6797726d68a979726b8d77716c7c76706b366c635c87746f69aa797570ae7b77728677736dab807a74937e79738a7f7871be87807755736c668b7f78728a7b75708a77736eb9837f79c286827b937f7b74a4817d77396a67645e74716e5c77736fae898582b3898681dd92908d7d807e7e7d85807ed494918ede999593b9979291bd9d9b95e5aea8a3d9b4ada8bfada9a4c7b3aba787a2999464958f8a879e9a96a6a6a29fcdb3adaa8ca29d98b5afa9a4949f9b9793a19d9999a7a19ea9afaaa6cfc1bcb897a47c6a6e722b0e4368270b5062260e525a210a655a230d60571f0c755a200d53551d09567a2c0f78c152237fbb9886b0c1bab383a69f9782a59f9875948d89a79c9690f1a29d97ff9f9792ff8b8581eb7c7670d2726d67cd6d6863f0706b65985f5a55b1605c56a3605b56915b56527657534ecf655f5bc8635e59c5625f58ab615c55835e595234524d45685b544d5f58524b94605952d16a645be86e675efb736e64eb6d675fef726c6499625c53bd6d675e555f595061615a518666605760615a5191685f57946760579c6c655edb777069b6716b63d5766f67cf777269e37b756de27b756cf5807870b0706a63a1716c64956d6860926b665f62666059796e69619c766f67b578726bbc78716ac07a736dc179736c8d736d66a97b746d9d736e68ef87807af189837cad7a746d8d776f67b87b766ec07c776ec97d786fff8e8980de86827aff918c84ea8b867ff8918d88cf85817dfd93908b957c7773a07e7975be85807cffa39f9bfe9a9592ff9c9793fd96928ec6898581f2938f8dd19a9592d29c9893feb5afabffc7c2bdffcec8c2ffc8c2bcd8b1aaa3959e9791afa39e99ad9f9c97dcb1aca6fabebbb5f4bfbbb8edb7b2aec3afa9a5e0b6b0abffc0bbb6e7bdb7b4ffc7c2bfffd6d1ceffdfd8d2ffece4e2ffeee6e5ffe5dbdafff2e8e8ffede5e2ffeae2df79ffc75a76ffde5f80ffe7666affec6556ffd14f67ffcd5066ff90365c60270e64ff8d3a56ff8d3042ff732048e26421558884825d918d8b729c999696a2a19b95a2a29e84a5a3a094a8a4a3a3aba9a88ca39f9e7fa4a2a18ea5a2a06ea29f9d6ea3a2a285aeaaaaadb7b3b27dacaaa789b2b0ae60aaa4a15aaca5a49bbab5b484bdb7b58bc3bdba4ebab3ada3c7c3bea8ccc6c2cbd3ccca98c2bcb99ebfb8b6a9c3bbbba7c2bebbb8c3bebcbdbdb7b4c6b7b3b1c0b0acaaceada8a4d0a8a39fc89c9897c49d9795898f8784547f7773907d7976a177736fad73706ad378746fd679746ec875716bbd736e68a36c675e786760599f69645e9f6a655f8968625c976d6760b7716c649d6e68629f6f6963786b655e906b655c9b6e6861af706d667567635d7768645d936f6b637b6d676188736c668d767069aa78726b85746d678a736d68b97b777293746f6a9b746e6994726e689876706995746f6a70716b656f746e698b78736ea67c7772a77a7670a47c76728876726c857b7872a0807b76b9827e785c726d678c7d7872857976706b716e6962706c688d79757266726d6a8077736f747a7570a4817f79a484817cbb8c8984c2918c8ace928f8bb68d8a87c7908d89bc908e8a958a888560827f7cc2a29e9bc9aea9a7c0b1aca9c0b7b4af70a49d9976a59d9adabeb8b6ccbdb7b3c7bdb7b37da8a39fc8b8b4b0cebfb8b4a9b3adaaa5ada9a5dec6bebcdfcac3c1d8cdc6c2a3ae847268722b0d4966260b757231145e5d220c5f5b240d5858200b675b210c605b200a52832f0f5ab64a1c7cc4a08dd3c3bebad7c1bbb7bbb1adaafbbebab8feb7b3affbaba5a0f69a948fee8b8581ce7b7570d5756f6ad06f6b64d86d6863bc65605b7b59544fa65e5a54c0615d58d065605be666625eca66625d44524d47b8625d57b7625d56c068625ad26a635be7706961ff79736bff756f67ea706962e0716a61f1726b62a9666059ad66605782625c5390635c5589635c55a268625ab06b645da0686159be6f6860c2716a62ef797169d6756f67e278736bf77e7870d6756f67c1767067de7b746c5e6a635a59665f57b6756e67c779736aa1756e66766e675d8b716a61bd7b756cbb79746dad77726a636d68628a716c66db857d75e4888179ea8a8279e4867f76c6827b72fe938d83de878179a2716d67d8817b76fc8d867fea89837cf08e8882bf817b76c1847e779779736f566a66629c7a7571da868280fe98928fff9c9894ba8a8683a7837e7ac48c8983e497948fda928d89bd8c8885ffb3afabf8aba7a3ffb4afaad3a6a29effbbb4afd8a9a4a078908985c9a6a29fd9adaaa4ffb7b4b0e4b0aba6c8aba6a1c8a5a09c9f9693908a8f8b88f1b9b5b3ffbcb8b4ffcec9c5ffcbc5c2ffd9d2cfffd7cfcdffddd6d4ffe7deddffe2dadbffe6ddddfee7e0e093ffb6576fffc05182ffe16266ffe35d63ffda575affd04d70ffbf4852fe7d2f536c2c1064fc913f38ff893330f96c1e50e56522b0a5a19b93aba8a390a9a6a2a0afaba782a9a5a19aafaca993b0ada99cb5b0ab7dada9a58ab0acaca4b7b2b392b3b3b281b2adab83b7b3ae80b2aeac80b7b2af83bbb5ae4bb1aaa596c4bdba9ac8c3be9dc6c2bba1cbc9c3cfd9d1cd9fc8c3bc99c0bbb69cc2bcba88c4beb99bcbc5c2c3cbc4c2d0c5c0be96b9b3b05aaca29bd0b8b2afdfb4aface1b0aba9bda19b969c97908ca29089869a88807e88807b769e7a7570b07c7672bb74716dc579736ecb78726db16f6862996a605caa6f676069635d564c625a546a67605aa4736d66a0736f68836f6a634866605a9a756f68aa767069ac736d6783716c65836e6761776c66605f6a655e5a6b655d6d6e6762716e686283756f6aab78726d816e69647b706c667d6d6762736a65618f716d6876706c66626d6865716c676395726d66a479726ead79747184706b688f726d6a8c76726e8974716d9a7975709b7a757068736e6975797570847c7771807975729d7d7875a97f7b7571746e67a67f7974ba8a847da185817a9c86817cb98c8782b48e8a86ce94908bd597938eb78e8b878d837f7ec4928f8c99928f8c8498928e8ca39e988ea7a29d90b2aca989b3aba4a7bcb4ae9db9b4aebbc6c1bbcec8c5bed8cdc9c4dfc9c4bdb1bbb5afc4c1bcb7ccc3bdbad7ccc7c3ecded9d5ffe9e3e07ba461407f7b31103c66260a686c2d12555a220b33521c093f531d094d571e095a561d0a64953a1664c2511e96b6b2ae96b1aba9d2bfbbb8e1c1bdb9f6c2bebaf5bab5b2f7ada7a2e29d9793fb918b86df7e7873d3756f6acd706b66cc706b676b5f5a555a58514fb7615c59b5615c59c3635f5cd167625d665c5752e16a6560f46d6660e26b645de26d6761ed706a64ef726d66ee706a63c26a635cc569635dab6b645cb466615aa2645f57c869645de4706a62ea716b6384615a54715f5953b269645ebb6e6861a26c655ea96d675f9e6d665fb6736c64dc7a746cf97d776feb7c756cbb756e65f6867f75e9807a71c97d766ece7e7870de857d74b97e776da57b746b7a736b628a767067c77f776fd9847d75c2807a72ce847f77ea88827aac7e7871b3807972ed8b847cac7b766dbd817a74bb807973aa78736dd7817d77c6817c78b8807a76bb7e7974b5807b759477736fbf7f7d78d5868480f8908c87ee8f8d88fe97938ff0918c8bf3908b88f6a29f9bffa09b97f198938fc18a8481ffa49e99ce999591e8a6a09de9a8a39ff8b1adaaae9e9794d3a59f9df9b3aeabffbab5b1f6b4afabd9aba6a39699928dfcbfbab7f7b2adaaf8b5b0acfbb4afacffc6bfbdffc0bab8ffcdc6c2ffc8c1beffd6cfccffdbd5d3fed8d1d1ffe5dedcffe1dbdbfbd7d1d3fae1d8d96dffab4d92ffc15c8bffcd5b77ffde5b74ffe15a6cffd4566fffb74656ff9d394bff7f2d6d692d1168ff86393cff77273bee621c51e66422a1b2aeaba0b6b2ae99b0aca88fb2acaa8baca9a88aadaba983afaeab5bada8a785b5b1b186b9b8b691c0bcbc83bebdbb99c3bfbe60b4adacadc8c4c08dc6c0be44b4aead9fc9c1bf96c6c2beb0cecbc9c7dad3cdb2cecac7c4cec9c7a5c9c2c1a4cbc4bf66b6b0aacdcec9c7b4c6bfbea8c1bab8c5c4bcb895b5ada9d4bdb6b1deb9b3aedbb6afaae3ada6a3e4a9a19d9f9b928db6948c897c827a73857e776f8978736b9d777069646e665f7f726b648d6c665fb4726b64a66d676148605b552f655e574b665e588a756d66736b6760696c675f606c675f88746d67856e69628f736b656b6a64606f6e6762516b645e5469615c5769635e606c6660be78726ee07a756fd479736fd677736cec7d7873be736e6bb7746f6af27c7771bc76706caf76726dbc77726dc97a746fbd7b766fba7d7770d27d7671c679756faf77736eb178746fc67d7873a97a757084736e6a9979746fc087827cb8847f79987e7872bb817c75cf847e79a87e7973c1847f79b988837dc488837db38a8480b38c8785a98c878280847e7b6f7f7a7787807e7baa8d8a87cd9e9c99a79d98959ca6a19b7faaa39fb7c0b8b48bbbb5af9ac4bdb7d0d3ccc8cdcfcbc5fde7e2dbfde0dcd5f2d8d3cff3d8d3d1d0ccc7c3cacdc7c4adcac4bdf2e8dfd9dbe1dad3548a340f767d310f2e62240b4e66280f4559220c3d521e0a44551f0b4c541e0a3f501b084893391444bb4b1bacc0bdbae5d3cbc7fbd6cfcdd6c5c0bdf8cfc8c4f8c1bbb7feb4aeaafda39d99f1918b86d67d7873cd75706cb06d6764d3716a6685625b584a554f4cab615d59bf615d5abc625e59dc696560f56f6964ff726d66e96f6a63ca68625e9f655e577c5d5650e76d6760f66f6963c169635ca7666058db716b62b167625bae68615bd26f6962a967615ada6e685fc06a655ed76f6a6395635f5993645f58ad6c675fa26c655ea16f6961b4726b62c6746f66d579736ab0787068cd7c766eda817b73b77e776fd9827b73c77f7870d6837d73cc807a719d7872699b767168ab7d776ec8827c73d8857f77e588827ab17f7973987a766fa8817c75bd847e77d486817ab8807b735b6d67619075716a7f716d666465625d7f706b67ba7e7a7685716c688e77726dac7e7a74f28c8882ec8c8781a9817c77f18f8a87ff989491fc9a9693e9908b88e48d8986ed8d8985b785817dcc8b8682c0908984ffa8a19dcf9a9591e4a69f9db79c96939a99938ff0aeaaa4c1a29e9afbb7b1adedafaaa4cda7a19bffb9b3aed7a9a39fffb7b2adfeb6b0adcca49f9dfdc1bdb8ffcdc8c3ffd2cbc7ffd6cfcdffe0d9d6fcc9c3c1ffe2dadaffe6e0defff4edecfcded6d5ffe2d7d760ffb04a8cffd45f91ffbe5878ffc65482ffe05a6cffcc545fffad4341ff8a3440ff9a3b56ff94407e652d1242f4712d44ff732844fa6a1b49e1632183afaba8a8bcb6b477b0a9a793b8b3ae89b7b2ad4dada8a37dc1bab771bdbab783c3c0bc6cc2bab76cc1bdb87cc8c3bf6ac3bdbc81c5c1bd6abbb6b392c7c0bed4d2cccccacfc9c9c2cec8c6d4d7d1c9c2d2cac4adc8c1bf74b8aea997c5bdb987beb4b1b9c5beb8bec9c2bfbec7c0bbbebfb8b4e4c1bab6cebbb5aeb7b0aaa4eeb6aeaaebaca6a1e0a69f98c79b938b9b90878085837a73747c736a60766d643569615740665f565869625a506a615a5e696159385d55503e60595339665e585c69625cba78726aae746e65a7736d668f726c64a0766f6789726b667d746c675d67615c4f69615c34655d56546e67605569635da1736c67da7a746fd878736ee37d7770f1817a76cd79736eb0756f69b1736e69b2716c67ca7e7772ea827b75e77e7772bf7b7470c07e7671c8807973bd7a756fd37d7874d37b7672d37d7873d4847e79a87e7874937a76718b78736f9c7e7a759e827c75b486817a9c7f7875ab827b77aa817b77ae867f7aa284807ab68e89838f86817cb3928c86968e888366837d798f8e8984a5928e8aab94908c99989492aaa9a5a0b0b6afab9fb9b1aec6cbc5c171b4aca9ebd8d2cdecd8d2cee0dcd5d4e2e2dcd7ffeee7dee2d9d3cbd0cdc7c5cac9c1bec0d0c7c2b8cbc1bdfbe4ddd8fdf1eae764963c11565a240a3b5e220a4264270e38521e0945511e0b3a511c0a384d1a083e501b09459a3e1735b54818d6d5cecaacbeb6b3c9ccc7c3f0d8d2ceffd8d1cfffcdc8c6ffbeb8b5e5a39e99fd958f8bfc8a857eff837d77e076706ae576706b8b615c58a4605c58be615c5acd635f5cc6635f5ae6696560ff726d68fe746f68f2746d66de6c645ddd6c655de06f6860c36a635b655e564f775f5852c06c665fba6d655eba6e6860b46f686282655f57b4706961bb6e6861df726c65a76a655e9867605a9b69625c8668625a7c686159906d655daf726c65896e6860ba766e66d879736bac736d65ab7771699e76706896716b64ba7b766fa279746b85706b637e6f6b64cb7b766dc27c766dfb8b837cbd7f7872c27e7872bd7d7771b47d7973c5817c77cd847e78ec88827bb27c76708277716ba67d7771bf817c75c3837e79f78f8a84ff908b85f38e8880fd969189f1918b84e48b857fff96908acb87837de48c8883fb948f8bf899948ef895908ced928e89f996918dfd958f8cd78d8884ed968f8aea9c9690e39d9792eba49d98fcb3ada7728e8782c7a19c97ffbab4aeffbdb6b1ffbdb8b2ffb9b6b0ffcfc9c5ffb9b4b0ffbab5b1feb6b0acbba09b98fdbcb5b0f8b9b2adffc9c2bd989f979395a49d99fed4cbc8ffe5deddfff9f1f3fff6eeefffe5dedfe9d9d0cd45ffb04575ffd25878ffc45677ffb45071ffbb4d74ffcf5661ffb4475bffae3f59ffba505bffbf5456ff93384056220a3cef6e2945ff7d2b38f0611945e0601f7cafa8a67aafaba663a9a39f61aca7a27cb7b3ad63b3afaa79beb7b481c2bbb88cc7c3c190c5c0bc8ec0bbb89ec8c2bf7cc0bbb737aea7a7c3ccc8c775bfb9b5d2d1ccc7c8cac6c1c6cec7c4c9cac6c3c0ccc6c0a4c7beb7b6c6c1b9a8cac3be9cc9c0bab0c9c2c0bfc6c0bee1c3bcb8e0c0b8b4bcb6aea8ceb3aca7e3b5adaaf3b0a8a4bba19894d39d938ea18c827b95847c73ae857c738c7d746c9b7b746b90756d657e7069618d6f686085706760676a625c6f68625b45685f5a87736c6490736b648c706a61716d665f947069629a746e6786746c64606d655d5d6d655e35655e563c665e575d6f665e5c6e675fc77c7670ce7b766e976e6a64af76716b7e706b649878716aaf75716c9a716b65bb756f6ac67b756fd5807870ec827c75e6807974aa79736db8797470a975716db47b7671c07d7873d7807b76bd827d789c79746e8e79756f8b78736fa5837e7aac837e7bac837e7c867f7976ae86817db78a8581bc8e8986c7928c88b78e8985bd918d89898c8581808a86809f918d8793928d88828f89868f97928e7d97928e98a7a49da4b1aca6bac0b9b4b3c1bbb442a39e9ad8ccc6c3e4d7cfcaffe2dcd6dad1cac6f5dcd5d2e9d3cdcafcddd8d06dafa4a1e1d4cdc656b4a7a1feece3def8f1e8e5639e3f13565c260a38561e09455c240c314e1c093d511e0b42511e0b434e1a094a521c09379139162cb24719d7d6cecaa3c5bfb9e0d9d1cce9d3ccc8ffd2ccc986a8a09b74958e89f9a9a29dff97918dff928b87ff837d78db756f6a8a666059dc6e68639e5d5754b6615b57bc615c58c566615bc167615c9e605b55d36b655fee726b64f4706963e96f6660c769615b755d554f555a534d5d5c554e8e675f58a46e6660aa6f67607969635b7769625ac6716a62ac6a635c9d69635b956a645b9168625b78655f5876635d566d645e578069635ca2706961fe7e7870f77b756dff888179f57e786fff89837bee7f7a72eb837d75e9898279ff8d877ee9857e76e0827d73ff90887ffc867f76ea878076fe90897fff918880f5888179e1847e77e5857e78fd8c857ee9878179bf7d77719e76716aef8b847de88c867fe88e8981dc8b847dec8c867ff9918b86f1908a84fd938d87fe938d87fd928c86f0918a86e78c8783f18c8886b985817e7676716db685807ecf8a8582c28a8581e7938d89e196918dfda29d98948a827fffb6afaaf8b4ada86389827fffbeb7b3ecaca5a1feb9b5b1fdbbb4b0ffc8c2bbfdb9b4afffbdb8b4ffb2adabffbdb7b2a79e9793ffbfb9b5ffccc6c3ffccc5c2f9cbc3bfffd4cdcaffddd5d1ffe5dcd8fff0e6e5fffdf4f4fff3e9eafff7edec41ff9a3c4effae4479ffe26570ffb54f7dffbd5470ffbe5157ffb34054ffa83f71ffb04d5bffb95059ffad404ffd8937327c310f4bf16c2a3eff832b3bf7671d3fe5641f699c9392589e9391619e969379a99f9c9ab0a6a399afa7a69db0a7a477a69d9b86b1a8a46aaca3a26cb6acac6cb6adacb3c7bcbbd0cbc1bfc3c9bfbcd3c6bdbbc5beb4b3bec1b7b687b8acac94bcb0b0d1ccc1c0a3c9bebbabc6bbbaa4c6bbb9cbc8bcbba7c1b8b5e7d0c5c3deccc0bffcd2c8c5fcd3c7c6efc6bbbad9c0b5b37aaa9e9ab2afa3a1699a8d8ac8a89c9dcea39897dda09693bd908987af89817f9c7d757379726c6775706a66656c66604c67615b8177706a7f726d678d76716ba07a736d887069646668625c6e6b645e6d6a645f6167615c5c68615d4f6660593d675f584f6c655d62746d63a6807a70c0827c73b7807a70c3857e73947e766dca867d73c0877e75b7807b72e08c867dd5888076c88a837bee8e887fec8e877eb5807a72b3857e75b0817b73b67f7973b57f78728579726ca1867f779985807a8388837eac99948e8e93908abfa3a09cb7a19d9ab4a39f99cca9a5a1eab4b0aaf4b6b2accda8a39fb69d9b969693928e8e918d8c858d8b889194908ea9989492a3969390d3a39f9c7a918c8b8b9f9995a6afa6a599b6aead56aa9d9df3e5dad7dadbd1cdf4e7dcd8ffe9dedaf2dcd2cff7e3d8d7ede3d9dacbd8cccbb9d3c6c5bcd8cbc7f8eee1e0f2ece0deede8dbd751983a10575e270d27511e0a4859220d374c1a094a511e0c474f1c0a394d1a08214c17052d8b36142da66041e9ede8dde0e1dcd3ffe9e5daffede8e0ffe6e2d9fff0ebe1ffe2dcd4ffdcd8cffecac7bdfdb9b6adffc1bdb4ffc3beb6ffaca69dff999288bd777066a56d645ba3675f55605c544c5e5c554c48574f46675e574e675f57507160595179645b5483645c55725d56504558504b9b6f665ee079726ace7a7269cb766f65b8766f66c4756d65e07c746cd47971699f6d665f9b70685f4a5f585157625b546e685f578f736b617d70685fff8e867eff898279dc7b756df2868077a2777067d3847c72ff8e897fe8837c74cd7e786eff918980ff8e867dff968e83ff9b958cff99948cdd8b857efa908b86f98c8883fa928d88f795908afc928e88f795908aea948e89cd87827bcf88837fd588837ff6928c88f6908a88e88a8683b6817d79d586837fdb88847ffd9a9491ff999390f195908c9c847c78b188837e887e7773b087847ec98f8a85a988837ede968f8be597908cf49e9894f098928df799938ee897908be0958f8a8279746faf87817ee5948e8bfe9e9793ffb5aea8ffafa9a2ffc0b6afffbdb6aeffc6beb5a29d918ae0ada39bfdc1b8aebfa89d95ffc0b6afffcec4bdffd3c8c0ffd4c9bfffc3b8afffcec2baffc7bbb3ffdacec4ffd3c7bdffd4c7bd44ff85365bffb44b4fffae4371ffc45667ffb34a61ffb44956ffa2415bffa84459ffac425cffb14d65ffbe5450ffb74837ff7d2d4269290e44f16d2c3aff7c2a3dfc6a1d52e3611f6ea89c986a9f949270a398977fa69c9883a79c9a93aaa09c74a0989377a89e9881a89e9a72afa6a0a3c0b2adbec8bbb2c4c9bcb5eacfc3bebbbeb2ab9bb2a6a18eafa49eb8beb2adc0c6bab69fc0b3b0bcc8bab7a2c2b4b0a5c2b4b1e5cabcb8dcc9bcb79bc4b5afe3cbbebbffd2c5c3f2c5b7b5ccbaaca979a497958da495948c9c8c8aa99f918db49b908daf948a879f8a807ebf8b817fad837b778e756e6ac37a746f9a7069636369615a786c645d6d68625b8a6f686195746c65a9756f69aa746e69c878726d796a6460a576706997766f699977706a7b6d6761ae7a746cb57d776ec080796f6e766c62556e665c8a7b7169c9898075bb867e74837e746c9c837a71d08f867ab48a80749f867b71ac867c72df8a8178be80796fc281786dab7971688c736b62a2777068a97a7169a47970688b7a716aa2847b74667a716a9b88807b9e8c857fc4969088bf958f88bc988f88b0969089a0928d87bd99948dba948f8bb6948f8a7486817f8c8f88848a8c868365837e7ab999948fa8928b87cd9b9591a6958f8ba69a928fcdaaa3a06198918ef0c6bdb9ffd9cdcaffe6dbd5ffe6dbd7ffd8cccafed2c8c5dcc7bcbaf7d8cecaffe6dad7f6e1d4d2eae1d6d3d9dcd2cfbbccc1c2f3e2d6d4589a3c10695e280d294e1b0833521f0a3d4d1c0a2f4b190847501d0a2e49170727571d091b83311086c2896af5e4e0d5ffe5e1d87bb6afa4ffe2dfd8fee2ded7ffd6d3c9ffd5d2c8ffcecac1ffbeb8b1ffbfbcb2ffc0bcb4ffbab5aceb99918aff948b83e6827a71d0736960c96c6258fd7a6f65e4776c62e7766c61bc6c6158b36c62589f655c54a6686159a169625a8a635b556c5e565090665f57c9746e66b06f6761b0706860bd726b64ba706962ac6d665eb2736c6260625a518b665f584b5e564e5e6159516a635b5265635c52c8766f67ff817b72ff847d74f3817970d87b746b996d655cb57b7369ff867e74ff877f76d67d756cff9e978bf78d867cf48c877efb87817aff8c867fec86827cae787370f0857f7ce585807bed87817bff928b84ff928a85ff8c8681cf7d7873b177746ff987827eec847f7aff8b8681e5857f799f76706aa1746d66e3837c74ff958d86ff988f89e088807ab97e7670e88b827ad0877e75ad82796f9b7d756cdf8b8178fd938981ff8f847dff92897fd480786eff8d847afd847d74b478706958645b56f0847a73d0797069ff877e77ff988e85ff9b9087ff968d85fc8e867fff938a82ff988d84d5847972b07b7169ff92867ef28d8079d2867a72ff9f9188ff9f9189ffa5978ef4998a81ffa29288ffac9c90ffac9a8efa94857a51fb753155ff9e4559ffa8456fffd55b6cffc0534dffa9454dffaa4255ffb24964ffad4963ffa94469ffad464dffaf473dff9c3839ff7c303f7631114be969283bff7d2c3dec5d184dea66205d8b7c767592837c698f817b6991847ba2a292886f95877d7b9b8b804492847aa0ad9a8fb0af9e92ccb5a599a7af9e92dbb9a79af4baa89be6b7a495639b8778b1ab9a8ed9b8a59c97a4958fb6b1a097adae9d93c5b1a096d9b6a399ffc5b1a7efc1ada284a49187c5b09c93ffbaa89e849c88815489796e8f95837c758a7972507f6f668c867773a6877b75ab847872c6867a72ce81766e8e6f655ca97269607f685e58606258507b685e55ad756b62b0756b62ce796f65cb787066d47c736b996e655fa3746b64b6777068c27d746daf766f6a8d716a63af79706691746b62636e62586e756a5f84786d6373776c62817c7266877c7066797a6f645074685c677b6e62747c6f63867f72658c7b7065a07e726795786d63ad776d62b3786f64c37e7369906e645da9716860d37a7068ae766e668e7168618770676185746b6579756b65a6817871d789807aca877f77be837c77b4827c769e837c75d1908882d8968e88b59189848189817c77837b7777837b76ac908782b2928b84c6958f8783878179be9a928d7f8d837fdfada29ee0afa5a0edb6aca7f5bfb4b1ffccc2bef5c3b7b2ffccc1bb7c9f928dffd9cccafdd2c6c6b6b8afb2e0cfc5c5e6d1c5c4fcd7cbc9dad0c2c053993b11575e270c2c4c1b08284d1b083452200b4555210b4558210b32531d091c64230a2a90391395bc937cf3c9c6bff0c9c8c1fad0ccc4bdb4b0a9e2c1beb7ffd6d3c9ffd4d2c8ffc4c0b9fdb5b1aaefafaca5ffbab7aeffb2aca3b0867d74ff938a80ef847971b36f63599b665b509a675b519d655a50c56b6158ce6f6459ab685e54af675e55ad686057c66f685f8d645d5670625b53bc6e665f7d625b54c5706961a56b645db16e6760976a625bc7706b63a56a625b8a675f58a268625b5c5e564f595f554c6c5f595178655e56c4736c63f27a756cfe827b71fa7d756cff827a70ff847d73cf766f66ec807a6eff90897dfe867f76ff867f76ff8d867cff8c857fff8a857eff8b8781fb87837ef286817cff8c857ff6857e79ff88807aef857c76db7e7770a7736c65d67a746ecc77706cda78746fd376716cf47e7973fc7e7871ef7a736cff847d74ff847b73ff8c8379ff92887eff8e8279ed80766dc1796f66c0776c64ac71675ec1766a60d2786c61cd73685ee272675de870645c76564c44ae5b524abb5e544c87574e47a05b514afe70655bff70655bff70665cff71675ef76e655dd8675e57e96d645e995d544ff972675ed1675b53d4675c54ef685b53df685b53f66c5e56e56b5d54fd73655bff7f6e64ff7a6a60ff7e6d61ff7b695dff746357bb63524751b656226cf9803857ff8e3c5fffaf4d5fffd5535dffda5240ffac3f49ffac425bffa74555ff9d3f68ffa94254ff993c46ffa03f42ff913842fe7c2c4d8138143ce3642540ff7f283bf8671b50e3611f86847368878373689385746988827165a98a786d81857467868a796cb6938174ca9b8678db9d8a7bd49a8778c3958275e79e8879d5998374d39d877478887364ae8f7c71a08f7c72ae968275cf9f877bd99e897ce09e897deea38e7ef9a68f7fd39c857867836f63bf948074e798857a767e6e63ef96847be38f7e75e88e7d749f7d6c61bf7f6f66a377685ebe796960c173665ca86b5e538262554a806155498e62574c9e685c50a86a5d52cb73675bde756a5fd5756a5ee97b6f62976e6359eb7c7267c1766b62b1756b61b6766b61936e6359866d6257bf7b7064767265595a6e6255536c61545a73685b6e74695c75776c5f6a73675a627164587f776a5e7072655a91786a5fa0786b5e8c736659a976695dcf786c61a770645bcc796d62c374695eba73685e956c60565b60534ab770645cd0746861b871655dbe736760cc786b64e17a6e67ae726762b7746a65986b645fbf766f6bd2837a74e18b837dd28e8680a88b837c9b887f79a08a807b88847a7592827a7394847b74d7928b84868379737f867c77f4a09893ffaba29fffada5a2e7a49b97feada39fffb3aaa5ffbcb2ae80988b83b2a89e99f3bdb2b1d5c0b5b5efcabebdebc9bcbdf4c9bebdffcfc4c44c79310d3f4e2109344f1e083b501e0a2955220a25501d084260250b21571e081a762c0c1b983b11fac2c0b7b1a49f96fdbbb7aef9bbb7afffc3beb5eabbb7affcc0bdb4ffbfbab3fdb0aba3ffc2beb5ffbdb9b1ffbebab2ffa6a29a86797069ff8c8379fe83776db66e6158f775675fff7a6c61ff7b6d61e772665ceb73655bdc6d6058a36359508f615850966259526a59524b90645d569a676057cc706862d1706962e4766e66b869625b9f645e57a4645e58a5655e588b5e5952816059536059524b605751498f635b5389635c53d2706960eb766e65fb7a7269e3766f67c4716a61ba726a62ff81786e9c6c645cda766f67e6787169f580786ff4807870d67b756cff8a857dff8f8982ff8b8680ff8f8981ee7e7971ed7e766fff857c75d7786f68d6787069e279726bdc746d68c76e6864b867625fc66a6561fe75706ae36f6862c8686159d06a625aea71695fc96d635bf1746960e871665ede71655b9a6358509863574ea362564c98615349df6b5d51a85b4d43d75d5147e95b4f4495493f37e04d433ab4473d3693453c34eb50453cff564b41ff5a4e43ff5c5146fe554c42eb4f463edc4b443dd54a443cde4d443ee54c443cd4493f38d6473d36c3463a33c7463a33fd4d3f38ee4b3f37f252443ccf4e413aff56473eff4f4139e2483a31c344342b606f2f0f3a57220a4fa54a1c5eea6d2f7affa1507dffe06072ffcb5555ffd24854ffcd4c6affc15358ffa0425dffa14249ff933741ff94373cff923b36ff81313dff762b46672a0e4ee76a2b2bff77243cf4651c4fe763209e725f51a4746152a2725f50b37562537f6d5b4ddc7e695aa5776254b87863567c6f5b4c8f725e50c4786656c4776455ca776454b973615155655042a6756053c87b685ac07c6758ad786455b0786356e2846e5edb816b5cfc897261fe877161ff8a7465d77f6b5fd67c695e876d5d51d77a695f4a604f45bb716056a96c5b51aa6a594ea468564bb766564bb665564adb68594cb25e5145cd625549ba615448c16355489f5f5245b8635549b9675a4de2726455c36d605353584c41b96b6156c26e6258655b5146c46f6357c2726559d4736658a66d6152916b5f515c64584c5365584b49675a4c5165594c856f63599a71665a886e6254a974665aa574665ac978695fb3716357a06e6155a86d5f54bb6f60569d685c51b06c5f54b4695e54c27164588765584d2b4c41369560534aa460534bb662554db962554ec9665952c8655953a4615751cb685e58da68605ad7706760b8746a63a87b6f676b796c625e807367eb958a83ed958a84cd8c7f78cc8c8079b4857c73c3857c7481797068fa918885da8a817ef78e8583ff928a89e58e8685f8968e8dff9b9190fe9e9493d0948b8974857873ebada3a3ffbdb3b2fecabebde7bbb0b0f9beb1b2ffbeb2b25593391045481e08394f1f0a3954220c375b260d2f5d260c4b672a0d336b2a0c2288360f32af4918ffcbc6bdd9aba69effafada4dea4a29ce6a49f9bffc4bfb8eeada8a2ffc5c1b9ffc6c2bbffc3bfb7ffc5c0b8ffb1ada6ff9d979089766d66fd8b8077f4817469ff847569e7716358e5706257e36f6257ee716258ea6f6257b964584ed2675d53e36d6259a761575076575149945e5851a25d5852ae635d57ce6b655ed46b655fd26b6560f7726c66955d5853b7665f59ee716b64da706963ac645e58ba645f58eb6c6760fe746d64bd665f57725b534b63554f47b6665f58a3655e567a605851a668615aa1696259c96f6860ed766f66a76c655cce726c63e3777169fd7e7871ee78726bf67b756efd817b73ff857e78f678716afa797169d371685ff1736a62ae645d57af615d57bc615c59a05a5654ae5d5754dc655e5ae9655d58ff6b645dff655d55c35a524bce60574ed662574ef1665a50e466584eba5e50468954483f8f52453b6f4b3e34ad534539cb524438d64c3f34863d3329a3382f26bf352c25732d251ee5382e26c5352b24e3382f27d8382f27ff3c332afd3a3129fe383029f3362e27a72e2923fc332c27b72d27238f28211ed62d251fa429201bcb2b211cdb2c221dff322721fd322721de2f241e7b2b201afd2e231ce9342319586f3110536e2e0f47411b094854240b5ca14a1e65e16a3077ffa44884ffcd5a67ffcb504dffd94d4fffd24d71ffc55857ffa54447ff913738ff8b3037ff8e363cff88333dff7f323fff8237426c2d1045dc5e214cff7d2c43fd6b1e4de765219e5c4a3bb5624e3ead634e3ea8604d3d915b493bbc655040d8685544f4725c4ae5695444e4655242ff705b4aff705b4afc6f5a49c4604d3fd2655142ca665242b4624f40d4695545b66350409e5f4b3eac604d3fc5655142e46b5647ed6f5b4cf06f5c4e9d5d4b40a55f4e428f59493f3d4b3a2f8356463bc3604f43c65f4e438d55443a9155453ab058493ea553453aaf534539a6514538ab534639985145388950433693544639af594c3dda635548ba5e5245ba625649d5685b4edf6b5e51d1675b4fe86d6053bf67594bd3695c4e805b4f4291605447735d4f427a6255487663574a585d524696685b50ac6c5e549b695c508d67584cba706154c1766558d078675bec7c6c5ef078685cdd7062559d63564b8c5e5247875c50449b625448835d50455a52453b95594a428d54473e9154473da155473e8e52453d754d423a96544941b6594f49d25c544cdb655c54c4696159d2786c636d6f625a44716358c78c7e76a782766ecb897c74ce887b72ed8f8178e78d7f78d9857a73b9796f69bb796f6bb7756c68fa857b79d17b726ed87e7672fa8b817ffd928885fe998e8b7a7c6f6cb58f8584dba49795a39a8f8aebb0a29eedad9f9cb6998b895490391055481f093850210a4654230c425d260c55682b0f2f60220944712d0e3ca143153bc0541cd598918aca958e88f5a09890ed9f988ef6a49c92fbb2a99ff8a59d95f6a89f9581867e75fea9a097ff9f9991ac7d766e6d6c635a746d6259bf766a5f5f6153499f6b5a4eca6f5e52e2736356d36f5f53f2746456f9756557b666584cc3695b50c2685d5470594e477f595049bc665d56d66d655edd6b645cf6726b63f3726a62f4787069bd655e59ba67605ada6c655fc667605ae26e6762ab625b57a15f5953a95e5750aa5e57505c524a416758504878585149755a524a7b5c554b8860584f875e564e685b534a555a50487d5f574e7b5e554d89605850a9655e579e655e56b166615ac067625bb467615ade6e665fda6b635bbd665c55d36a6059925e544db75f5852a457514da8554f4cb553504db7534e4bf25f5954f75e5751db574e4ac3514842b7514740af4f463fee5a4e45fb65574dfa615448d9574a3fba4f4237a74c3e33ac4a3c31a647392e73392e24b2382d24c4332921c82c231c72201914be241d17f828211afa2c241dfd2b231cf829221bf728211aff28221cff29221dff26201b601b1713df1f1a16d01d18157b181310f61d1612f31c1511f51c1511fa1d1511ff1e1612fe1f1712fa1d1511a319110e8326140c446d2d0c5373320f596e2e0f4f461c09403f180841441c096a9f4b1d82f17a336eff9d426dffbe4e50ffb7454bffda5164ffd7554affa44142ff91352fff842f34ff893131ff87313aff832f33ff8a383fff792c4181361237d45a2054ff8a3146f86a1f5abd52215f35281e3b34271c62372a1f64392b206037291f7f3b2c2278382b21953b2e235c36291f9a3c2f23953a2d22b93f3125653629205435281e4e36291f6c3c2f24613b2e24623d3025603c2f245e3b2e23533a2c2251392b21623c2e256b3e312742392c236c4033295f3e32295d3f32294e3d2f264e3b2e2641382d2542382d2544382d2547382e254b382e25583a2f265d392f265a3a3027643e32286b4035296d42352b6c43372c7e483c30834a3e339a4e42378f4e4338804e4339884f4439874f4439844e43397d4f433856493d3248483c3041473d30514d4135534e4337594f453b6b54493e7a584c415752463c6355473c6656483d6f574a4079594c42935d50444a4e42375a514338835649407153463d7053463c925649408654473c7454463b734f41386c4c3f3665483b3373493b336e483b333944372f5e483c34624a3f3766493f396f4e443d80574b449063554c5b65554a4f68584b7367594e6563554c5d5f5149635f524a60605248355a4c426f63564d7163554d7e61544f785c504a945f534f9b63575297655852a9685953a76a5a528c6858516b6757507a6e5e577b74635b7073635b5f7160595a6e5e56616e5d565087310e4a451d09454e1f0b4856230c5160280d4b63270d4568290c5a772f0e40a7471741c5551a9e7e6e638778695ea7817064a87f6f64ac807165c4847569e08b7b6dea8b7a6cae7f6e624c6e5d5191746357b574655a7767594dcf736456aa6c5a4d90655347ad685447926350419f63514397635142a0645043a3625042a3614f427c5c4b3e745b4c3f775a4c4179574c42975d51469d5f5247a961554ab362564cbe63584dc765594e5e584c43a75f564ba55f544b965c524a905e524a8a5a4f467e584e4575564c42925a4f456a5549405954493e4a52473c4454493d4854483d54554a3f75584e4464554a3f75574d42655449416b544a4290594f4785574e467b594f478d5c534c845b524a815b5149875c5248945c5249935f534a8c594e45484f443b3d494038774d4540894b443f8b4b4440894b443f974c433da64c423d8b483f3992493f38a34b413abf4e433ab14e4239904b3e359d4c3f345446382d5544372ca046392fa546382d963f3228a23b2f2598342921922c241d89261f18aa271f19b628201ab0281f1aa2271f199c271f1994261e18b1251f19ba241e1abc221d19b5201c18401a1512941d1815a61c1714b21c1613a61b15119e1a14109c1b1411b41b1511c01c1512d61d1612c81c15119a45200f3b62250c456c2d0e47682b0d44b7551b754e200b674c1f0b53471d0a4b3f19085d893e155eda6a2955ff8c374cff91394cffb94648ffd44f3fffaf3d3fff9b3c2bff89312fff832d37ff923737ff8d3437ff883529ff7b2745fe8231447a310f50df60234fff792d5cdc61235e7731141f2d20164831251b5932261c7035281e6a35281e6534271d6735281d6034271e302f22194130241a462f241b302d22182f3023192a31231858392b2153392b213635281d2432241a3935281e50392c2246392b20613f2f24543b2d223737291f44392b224b3a2c2341382b22463a2c2342392d232c3429202a3429212e34292134352b224c392e2444382d2347382d2349382d23593b3026593d31275f3f3329463c30255f42352a473e32273e3e32285a44382d5d473a2f58473b315f483c3255473c314042382d4a463a2f264035293d453a2e4c493d325b4c4136514d4137504c41366e54463c6252463c80574b407554473d7653463c7454463d414c3e3330473a2e5f524439655042384a473c335b4c3f35684e40363243372c3744372c3f43362d4b44372f2f3c30284b3f332c6342362e5441352d5a44382f674439305e4438303e41352c5d4a3d335e5141374d5142374b5546395e5a493e655a493e5356443a5c55463c48544339364f3f345150413761504139645141396d53433a6d50413969514139414c3b31354c392e334d372d5956403439503b302c533d2e2f563f30686850425c634d40495c473a37563f345084300c3f441b08354c1d094855220a4558230c5a64280e546a2a0d47732c0d49ad481951b55423ac7e6552ab7e6451ae7f64529b78604d967c6150bb826754ba816654c9836955ca826754ef876b58c37c63518e705847686a52419e6f584669674d3da16b53429c674f3ea969503fa4684f3eac6a513f9a684f3d8c654d3ba0654f3e95624c3d9d63504095614d3f8d604e3f7e5d4d3e815d4c3e94604f41a7625143ae6452449e625043815e4d408d5d4d41a45f5044965d4e439a5b4d42975e4e42985e4f41a65a4b3f7155463a5f4f413549504034545344374d5344373b4f41345e5344396a54443a7255463a6a5345396753453a7a58493f865d4e42995e5146b264564cb263564ca4605348865b4e44835a4d4273594b3f875a4c40855a4c416b55483d5a4f42397c50443d6d4e423a744e433b744d413a7b4c403942443930834c3f367a4b3e348b4c3f35954f4136a3504237af4f4136b34f40355846372b3f4233278046372b80423329823d30267b382c227933281f7a31261e6e2d241b882f261e822f251d882e251e9a2f261eaa2f2720a82d251faf2b241fc32a231eb927211db4251f1b9b231e1a8e221c1884201a1693211a16691c1713711e1814611d1713651d17135f1c16135d1b15125a5e250c4766270b4565270b426f2f0e4fbf5a1e527733106d4d1f0b624b1e0a624c1f0b50471d09443b170742702f0f54b854224ff1712c3fff8d3949ffbd4c40ffcd4d47ffa73f28ff892f26ff873635ff802d36ff822e35ff88333aff8f3237ff782849ff812d4c69290c5bb44a1c55f06727559e40176f773214263220153a37231739362318313423172e3322173e3624182b3121162b32211627302115262f2016242f201525312115203121141b2f1f14233322171f3423172c37261a2a3624183339261a1a3322161e3623171d3623171d362317283a261a293a271a303b281b2939281b2438271b173424191d35251a1b35251a1b34251b2638291c2c39291d333a2a1e373c2c1f313c2b1f293a2a1c2239291b323c2b1e343e2d1e2b3d2c1e213a2a1c3b4031233d413124344130232b3f3023223d2e222d4031241b3b2d20223f2f23304233273b45362a3a45362a4b4a3a2e464a3a2f3d49382d3f49392c404a392d494c3a3056503f343c49382d3f49382d37473529414a372c3e473629223f2f23213f2e212c413124283e2f231a392a201a3929201638291f1537281e1637271d1937281f233b2b21323d2b214a4131265e44322848423025574634294a4533274a4835293a483428484c372b284331252843302429443124304633252d4532253847322644493427504a352846493226554a33263f472f224648302335442c1d39442c1f2641291d223f271929432a1b2f462c1d2743291c29442b1c3c492f203a492f205284310d3c451b074851210b4c58250c5561270e5067280c556e2b0e3b6a240a4eae4c1a57b6532083704c3696724f37866e4c35776c4b356f6949336f6c4b355461442f746b4a34826f4c357c6d4a34786b49325865432e6f69473278674631575e3f2c635e402c695b3f2c68593e2b54563b2950543a285f583d2a765c412e63573e2c67583f2d66553e2d60563e2d6f583f2e7b59402f72573f2e75573f2f905e44329e6247348b5d45339b6148369e614938835b4434925b46369f5d48379e5b4535935943335d503b2c604e392b45493627474a37285f503b2b5b4f3a2b63533d2d775740306f553f2f4c503b2b5a513b2c54523c2d5f523d306f564235965f493b835e493a374d3a2b815b46388b5b47397b5742378258433787574236865743347b5641348e57433681533f336e523e326b4f3b2f7d533d314e4b362a72503c2f724e3b2e614a382b6e4d392c764d392b7a4b382b7c4c372a714b3728634734257245322567413023503c2b205739291f5936271d4635261b5332241a4d31231a483123195b34251c6035261d6d34271e7833261f28291d155a2b20195f2b2119982e241d6a291f1934251a142e24191249261c155f281e175f281e174d261c164e251b154a251b1547241a145d69280c5067280d4f67290c3da65118558f4115556f2e0e5475310f5856270e61491c0a624a1c0a5a471b094d481d0a413e17074b5b240b4fa9491b45e265243aff8d3349ffc04b52ffc8494effb14725ff8a2e2bff892e32ff832c2fff7c2b31ff7e2b2fff782939ff802938ff79245bd2581f6376301152b64c1b567d3615557838184c7736164a71341541672e125f6832155b622e134b5b2a115a5e2b12485b291051612d1158642e1463683115616831146a6831156c6630166a6631157367321667632e1463662f14656b3216616c32165e71341776793b1b9081401f8c80401e8a7f3e1e897f3e1e7e7a3b1c7475371a957e401e967a3e1e8c763b1d89753b1b7a6e381a5a6a321680753c1d637035177174391c73783b1c5d7034176470361774743b1a84773f1d74743e1b6c713a1976753d1a7c753d1c79753d1b6e6d3818526532157868351a8c6a3a1d85623219896232199066361b9a6c391f88703a1e4d693216486f351853783e1f4a73381a69763a1c74753b1e75743c1d6b6d361a7b6f391c74683319786532198665341a856433198e64341a8e69371a97713c1d907a4320827c431f727b401e6a763d1c526a331660663317626533166e6232165f5b2e135d582b1250562812645b2b13665c2d15645a2b1460592a145b5b2b135565311553642e155f6d351962703519616f3419606e3518626f3718546a33165467321540612f113f5b2a104c5b2c124553260f3c4c210d484e230f554e2410454d230e4f4e250f515127104e712c0a3f461b075254230c6c5e290f61652a0e5068290d4e6f2a0d417d2f0d5ab9511e6b5a30135450260e404c230c5051260f5d5427105f5528114351250e384f240d3f54260f475d2c1355652f134e6c311459743718596d331769683217665e2d1463552811604e2510654e26106c50271170512811735127105e4f240f76542a126f5328115551250f5952260f87562a13a05a2e16865d2c15866633187f6b361988723b1c7872391a9879401f95743c1e63693315796a34188c6e391b7f6b3719786d391870683518786131166b5a2d144d51270f5b582c1264613116636b351969723a1b476f36176674391b76743a1c556c33167e70381c91773f1e92713b1f7c68331967643117836734197f633117745d2d15605c2d144a52250f5f56281271592b156d5a2b155c5829125d592912585b2b1481653319816835196f633117665f2e1466602f146c602f15756131167a6231177b613115665b2d13805b2e1579582b125e5429105354280f67542910655529126b56291173592b125a5326106253271082562a125f4c220e524a210d5549210d4f471f0c5448210c46451e0b42461f0b5948200d4b431c0b48421d0b2f411a093e46200b3c46200b36461f0b3c46200a34431c092c401b09526c2d0e4564280c4a9e4b164ae36d246176320f5d75320f5c753211747d3f1c597137174444190749471b0a464619084a491d0959431b094a4d1e0967a4481c3fe3652643ff9f3d56ffc74d42ffbd4a2aff993324ff902e30ff8a3335ff94373cff873041ff8c323cff852b48ff892c56ff89305fd75e21675f270e647d3d1a6186401b487f39173d6e2f123e693013516832155d64311546592810465c2a1051612d126e683217656b3316646b3216666c33156c6b32166f6c331769693116796d351878693317726d34177e74371a7a773a1b4c6f3114697b3a198282401e8882401e83803f1d91813e1e787c3c1b807d3d1d978a4921a1854622897a3d1e8c7b401e8a7840207d753b1d7f783e1d79783c1c7b7d3e1e797d3c1d807e401f617539188080441e70793f1b5e7239186c723a19567037164f6d35156b6f37195167311547652e147e6e381c856d381c8e6d3a1e7f65341a7c63341a7b6b381d8b7740226b793d1d4b78391959823f1d5482401c6e854221607e3e1d70824320797e401f73793c1c7c783f1f85763d206f6e3719856e381c796632198c703b1d9178411f81793f1f818144218f8849256c7d411d69763e1c55642f1558612f146e6334176b592c146f6031165d5f2e14655f2e156c612f17655e2d156a643117656732165e6b3417536a3216587438195776391a557335176b763a1c5c7438194a6e34154a6e34144c6935144a602d12575c2d133d51250e3d4f250f444f250f394e230e23481f0b3a4c230e505127105869290a3f481d084653230b5459250c60662a0e4468270c4c732a0d418c350e68c85a2266592e124453290e5c572a10515529115e5b2d125f6131144c5c2d11455c2d123a5c2b10375c29104b6730144f7135164676361562733719686b3317696230156b572b135b4e240f584b230e644f2610635026106e5228116752271177552a1373582a13715a2b1363592b12625828117e5e2d158f6735196d6934177672391a8b7c3f1f6f7a3c1c7d7e411f98844623667538198b783d1d7d743b1c77723a1b7b7c431d927b4420876e391b73663417545b2c1362612f1562653116616a341a72783d1e5f7e401e7580422151773a19557438197a793d1f877c42207e773d1e88733a1e7f70381c8a6f391d6d67311794723c1e65602d155f5c2a13756130176b5c2c15675d2d165b5a2a137b6230187a633018966d381e9a703b1f79693419746531186f6332186c6230167c6533187d643419635e2d156c5d2e157a6233176c5b2c13605729116e5b2e1361572a115353270f605629116f5a2b11615628106d542811725226107a582d135a4e240e5d4c230e5b4c230e534c240e514b220d544a220d4c49210c47441d0b43411b0a3d401b094146200c3b441e0b4648210c3745200b5347220d34431e0a2d411d0b49b254185dc661206377330f5d7732105b753311436d2c0e657f3f1a617b3c19507135155c421a09474619084843190757491d0961491f0b50421a075ea3481d52fa78344effa63f3effb64628ffa7361eff912b2fff97323cffa23a35ff832a37ff842e3fff892b51ff963853ff913350ff812b5bf2652575632b115c803d1a5e86411a4a7b3b18456e321545652e124b5e2b124458270f4c5e2b1152612d13646731166a6c33166b7036185d6c3315656d3417746f3518696c3216767035187b7137197672371970713618747739195a7738175c7a38178082401e8e844220988746227f83411e8d86442082803e1d9682421f807c3d1c95814220977f41219b7e42219a80442269773c1956783a187d8645208b8846237f7c3d1e4f7335177e783c1d697b3f1a74773f1b7a753d1c346830115472391778783d1d546f351748682f1482773e1f9e7b41229a7b442580754122726c381b76713a1d7d7a4021627c3d1d6486411f62904722839b51296d8c4522768c45226984401e71823f206a7f3e1d7e7f41226e793c1c76783c1d78753b1d7d733a1c88784120917b4221897e4221747d401e97884926818143207d7d432073733b1c7b69361b676232167c6032186b5e2e156f65321873683419846d381d7b70391b5f632f16696b35185b6933175a6d36186d753b1b827e41207e7c3e1f6d72361b5975381850783b184e70371646653013395f2c11435929103652250e2f4b210c2e4a200c29491f0b28491f0b344e240e304a200b5b90330d47451b075857250d625c260c7371301257762f10507e300f50a5441563d9672564592f1254572c104e5c3011546132124d5d2d11495e2c11365c2b102d5929102259280f3e5f2b1133632b10446f3314657a3b1b69713719656b3417736230166a5629116a4f26106550261078532812765429128654291385552a1375572b13765c2d15705e2d14826431176d653115796934187b6c361975703a1b81753b1b847e401f988a4926918d4b25808544208b85442195834423917f4221857e42207b7f421f837c4220626f3717666934173f5e2b116e693319776e371c7472391b7d7a4020697f411e6d7f412180894a26868848248c844524a2884a299c8347268d7d41229980452379733b1e7d71391d8a763e1e666731165f6430167c6632196e622f176e612e167561301774632f186e612e175a66311689703b1e7d6f3a1e6d6c361a676633186b63301671653317726230165c5c2c1482653418776332176d61301478602f1482623216895f3016595b2d127b5d3014765d31146f5b2d125a54280f665629106f52281078542911724e260f6b4d26105449220d574e250e624e260f5249210c41461e0b4c441e0b47431d0b4547200c3f441f0b4947220c4347220c5e48220d4f48220d60a84f1b5a73310e6178330f5577330e3f6a2a0c496e2d0e4a73300e5e2811065b2811074427110548281106483c170751471b09594b1e0a6852230c5a4a1f0a56441b085ca2471b42ec692641ff983950ffba4e4bffc44b22ff932e1fff892c35ff8f3441ff93333dff8b2f47ff933344ff843044ff892e4eff7c2b505d2a0f632e1407632d13075c2d1407332a1105392b11053d2c1106502e1306422d1206582f1206512e12065a30130757311307533213065d33150760341507613515085665250b5a69270b5769260c566b290c5b6b270c4669270b4268260a626c290c73702b0e676d280d6f722c0e61702b0d64702b0d666f2a0d68742d0e70782e0f53772e0e5f7b300f718136116e813511598034105c863812657c321060782f0e3d722e0d4d75300e5077310f5a7732104d74300f416c2a0d446a290d586d2c0e3f6a2a0c5068280d636d2d0f6e6e2e11676b2b10596b2d106b6c2e10676a2c0f5c6a2a0e566d2d0f4467280c5469290e626c2b105a68290f5566280e4861230b4361250c5b65280d5c66290d5c64280d4c61260c5865290d5a65280d65672b0e6d6a2c106f692b0e5b682a0d7e6a2b0f6a67290d5466280c4a67280b6b68290d6d68280e6a66270d7169290e5d61240c5e5f240c6c60240c575a1f0a5158200a5c59200a4a521c0852541d0942511b0758561d0853521b074b4f1a074850190636511a0641561e0743581f073c551c073a561d0736541b072b511a0629511a0631551c062a521a0626531a063a5d1f07445f1f083f4118066555230d5e5d240d65712e1054782f104a83300e46a9441646c3521d5c8a330c487d2a0946832e0a4d86310b4179270a2d70230813661d06106720070e6720061c6c22082970240847782a0a5d7a2b0c677d2e0e6b7c2d0e75792d0d5d71270b566b250a556a240a5d68240a6169250a5f68240a5a67230954662309556522096469240a5d6623095d6723095766230952642109566724095b63220966672309826a270b6667250a6967240a6768250a5264230a55622209536222095469260a4c6123094f5f220947591f0949581f085d5c210a555d21094f5e210944642409686c290c5968260b4666230a4967250b5b6a260b726e2a0d696d290c6f712c0c616c290b606c280c5b6d290c5b6c280c4d6b270b506d270b51702a0c496b260b5070290c4070280a55752a0d4d72280c4174280b567b2e0e57792e0f4c722a0d4e732c0d4f742c0d4a732c0d4d722c0d6d702b0e576f290c63732c0d596c270c596e280b566d290b576d2a0b5c6b2a0c606d2b0c6066260b5f68280b5a66280b5365260b606a2a0c5962240b5b65280b525c220a5062260a475e23095360240a4a5b21093f561e083c531d084955200940521f09425220093b5320094355220a4157240a3d5522095e702e0e5f75320f6d7c36125372310f3662240b426b2a0c4c712e0e59622c11475b28104d5828103f54260e3b51240c464d210b564a1d097a55240c7451220b7551230c613f1908408536114de2662637ff8c3041ffaf3c29ffa23422ff933136ff9b383dff973340ff93354cff96354aff882f42ff812c4aff822c58f37f2f61a3532362a6552263a050205190451b5690451d4e8b431b42803c1636793913387536123b733613466d32124f6b3213506b32124c6d331238682f0f3a6b30103d6d30105a7d3a1758873e185892441a689f4f21569e4b1c559d4a1d519547194c893f17678b42197588431b5e7d3b175a7637155f733615557134145f7537176175351551753514587c391661803b1763853e196287401a5b823c1766823d1a69813d1b68813e1c6d81401d677e3d1b725f31188b64361b7965381d605f3016686634197e6d381d94743e2095763f207c6f391b876d381a826b371b926c391e756331177a60301771603118995f32198e5d30199065371b97623319855c3017a165371ba36a391eb1753f208f824723868a4b258c9253297f8c4c2579854621858144218480452382783e1f7f723b1e8c713b1e666331186a5f2f166d5d2f17685a2e166453291263502711644c25115c4823105b46220f624a25105249210e5a51271160572a1354572912595a2b13685d2e16665b2e146b5a2e1569562a136d562c146c4e26125f4a230f5e4b240f5a48210e5746210e49431f0d574725114943200d383e1b0a333d1c0a4f41210e4d401f0d413f17075251200b475d230c5e742f10598433126095391353bc4d1b43d055195f512b1452562b12776d3c2062713c1c45763c1b5281431f6792512a548346215d7c432261753f1d6c6d3a1a686131166b5c2f157c5a2e1566532911544d260f4748230d494b240d4c55290f56592c124c5c2e13585f2e124d6131124c5b2d1147582a0f705e30157a5e30166e592d13705b2e146c5b301560552b106e552c12664e271078522a116f532b1275592f14705a2f1561582c14705c30156a5c2f16695e3017685c2f1648542810595b2f1763592c15605529125053281157522812645128127f542b14684d261175532b157b552d1689572e177d5b331b7a62361c6b7f432189914d299698522d999c583091914c27828a4723868746227c8044217f7c40206372391a6e6e37197a6d391a816b361a90743f1ea48348247688482189945129a0a55e309198552e8295512a8c9f5a2b9f9a572d7d8b4c256b7f421f66753a1a7d733b1b7d6d391a675c2c126e592b1367552912585127113c4d240d5a512811464c240e464c230d434d240e4956280f3c5a290f3b5c2a10365e2b10395e2b103c58280f3f52250e414d230e4849220d5148220d534a230d6a4e26106d4d250f5b4a220e6f652c0f6b753210677935125673300f5a76310f486e2b0d4b6e2d0e3c722f0e51833b195c833e1b4d773918356d33132e612d10336d32135684451e704e210b8055240d7454240c7251230c77481f0a44742f0e39ce581c32ff7c2b3cffa13b25ff993222ff8f2a25ff99313cff963151ff9c3a4dff9d384aff822d49ff852d68e073346ded793674f5823a59d1662c55d1672d5bc75f2960bf5d2a43ac502241a74f1f32a24e1e3595481b388f4419448e461a3e8643192c7435112c6c32112c6c3210397336144694491b46a7511e61c968295edc742f51e3762f53e1752c56d8722d58ca692b66c4692b62b25b2668a354245f954b20658d48205b81401a537b3d1a447236143d7537145586421c5c8e471e558d451d4f8f441c5d974b205e9449206e984d246e974d256b944a237a974f298096502870944f277795522a6f904a25698e482279974d257da052287ba7582a7ea8582b7da95a2b83a7592b699b4f25478e441d4c8d441d598b461f7c9852298ba0592c88a15b2c69904a22739f56267c9951267ea45a2d8ebf6b3476c9703482d97a3c8be3803f6fd571356ac866327acb6c367fca6c3773bd602f69b0592b67aa5629689f512862964e25548b431e6a8c48225d80401e4c723919576935195463321640592b124b612f153a683014467539195e8644204785401a518a43203e7e3918678b48227f954f26788847227d854321877e41206c70371a706d37195e6431165a602e14595e2d144d5d2e133e582a102e51250e3350240d615d32165f5c31173b3d16066351220e4c61260d637730115886351266983b1366cf562047dc5f206d7d4420688a4b257ba45e3057a758295ebf642f65cd6c3479de7a3e88d8784084cc723c7eb862327faf5f2e64934c255b89451f6980411f61783c1c496a3216406530133d6d3515337036143e7c3d174788441a3f8c461b3a854118347f3d173d8442184686441c5b8b491e5c86441d708e4c216187471e5982451d597d421a617d421b6b7f461f637f441c707f441e687d411d5b7b3f1b6580431f6182431e5985441f4b81401b5c87441f7a914d265d86441f59813f1d5780401d617e3f1d727d411f777c401f767b401f787b3f207b7a4020827b4221707e4423858e4d297c914c2879974e2787a1552d86a3562d89a2582e8b9e552c949f582e8997502a6f8c49244d7d3d1b50793b1a6a783d1c7a7a4020857b43207c8349226f8545208da45d2c8fa95f3199b2693999ba6e397fad65328fab63348aa861316c924d25728c4a2479854723687b3e1d70753b1b54673215586330145a5d2d133450240d4c52260f554f250f454d250d4650250e475d2d1242612d113a642e1131662e113d672f12435f2b1149592a103950240e3e49200c4146210c5d4c240f704e2610604b220e6c4f261071662d1052712f0e60753110637b351151712e0e406d2c0c3e6e2d0e36712e0d30944718468e461d4d8a471f3a7a38174e7b3c193e7f3e175c914a224997491e6b4b1e0a6f54220c5a53220b6753230b754d210b355a220a2fb94f182cf3662133ff89342cffa13420ff9a2a39ff982f43ff953350ff98374fff8f315cff90336cec7a3a62f9823b55e66f2b3ac5562145d3622755d5662a54ce5e2855ce642b4ecd682c41be5c2448bc5d273cae531f47ac5521439d481d4895461b4d93471c34813b1534813e153b9a4b1b49bd5c2356e3772b58f8803452fe843355ff86324aef792d4ddf702c5cdd722e6ed9723058bd5f265fb35d266aa7562654944b1f548e481f46803e1844823f18578b451d498f451c589649215295461d4f93451c599b4c22629e4d235c9a4a225397471e689e4f24669c5026659b5026749c532b6a984e25609349206c9c4f25699d4d2377ad5b2a73ab562867ac56265ca853256cab572857a1512463a45629539c4e2274a6562b5c9f51266ba9582a5fa2532568b0602a6dad5b2b80b9653177c368317ed3763c77d06e3872de753574df76375fd36c3365d1693067d26b326fd36c3559bc5c2c64b75f315cae582b63a8572a559d4f2663994e25528b471f397a3b1847763c193e6732153f5f2d133b6630153c7035173d7737195189411e3c8b411a4790451e3c8b421c5d954c236e9c52277b9a51286f8e46226b80401e5f7438195e6c3417636b36173b5b2a12546132174a5f3115485a2b1249592b114f582c135e5a2d14605b2f16464018075951210c636a2d106d7c34126c88371477973d165ccc561f35da5d1968a45a2a4ea3552552ac5a276fc66d3870d5743c72eb7f4389f590517dde7a3f8bdd7e467dc86e396bae5b2c53944823639249246f8e49234d7c3a19657c3f1e51763b1a4d7a3d1a5183431e3f7e3b1862964f22488d441c568f481e508c441c3b8641193a8743195b8f4a1f61934d20699550225f914c21648f4d215d8a481e5685451c5f83451e6688481f7b8c4c236585461e6e8b4b22688948215c8c4a2267924d254f8b461f558f48215b91492268934c25648e4822668c48225e85431f758c49256e8644226e844422718645227485452369804120758b4b2986964f2b7f9d532c84a75a2f83ad5a3182b05e328db7653675a5542c6a9e4f287ca4572e86a55a2f639650275a8a4620708f4c2684904f29638242206c8a462363914d236a9f552886ae613395be6e3b83be6c377fb96a3a78a95d3285b1633371a4582c729d542c71975129648b4621718b4a24587d3f1f496f3618566f3719546a351654653216505e2e124154280e3859290f4063301337672f11376b3012316e3112376d331452672f143f5b29102d4e220b3d4c230e2c431e0a5b4d260f5c4b230e634d250f5949220e5d4b240e4c71300f4e75320f5f7c3511517732102765260a3f75310e69823b144ca24e1e5ca758265ea15223669a4f23769d5629779c53266ca2562867a556265fab55265a57260e4d512009534e1f0a4c4d1f094f471e0832441906319e40142ae45b1e3aff8f322fff9c313dffa83548ff9e334cff93334aff943151ff8a2f60db6d305ae5703043d9652735d75e2458e76e305bdf682c47d35e224ad5622644d4662943ce622736c1592241ca642749c460273eb5532142b1542041ac53203aa34e1e3da54f1f3bba592050df722a59fb813060ff923a58ff93375cff903b58ff8a3655ff8a3558fa80317efc8d407ae67f3965cb692e5db55c2755a75423569c4e205a954a1f4a8e451d518f451d4f90461e51974b1f55994920509a491c559e4a1f549f4c2158a6512466ab55265aa54e2262a453264d9b4d22629e5027659d4f264f94461d78a453287dab582a7fb6602c7bb45c2c69af562869b258297bba602b75ba602d5faf58276cb15a297fb9633162ab562b69b25d2e5cb05a2954ab53256ccb6f327acd703567c7662e75da773786e57f3c6be17a3759d86f2f5cd56e365bd46b3069db6f376bde743a59ca622e54c262304cb157274fa9532564a9562b559e502555994f264686431e447e3d19517a3e1c4772391a3f733617457b3a1a4a85401e3c8a401b459c4c2142984a203794461c569f4f2575a9592c78af5e2d7ca3572a7f9b54276985451e66793f1b6a6e39195f62311569683719786a391b7f68391b87693a1c7866371b7363361a6c5e30174f481d095b55240d7c7534137f833a157a8c3a14799a3f134ec6521c4ab45b275bbf6a355cc3693463d1753b67d9783f7dee854876f384448efb904e82ef864574d7733e66c7683450b058295da7512972a6572e75954c27668945225c7e3d1c507b3b1a457b3c1a4f83411c568d4a20518f481f4d8d451e4788411a488d461d458d471d418a441b619750215b985020639b52226d9e56266e9a5425719954276d96522462914c22799a55279b9f5d308198552a6c8d4a2469934f256a96502568964f255f984f255b984e2565994f28699c5229659a4f2870984f2771934a254c853f1c688f482475974f2878964e286b8e49257b94502c4885401c82a3593261994d2694b362378fb9643899c26c3cacd178438bbd663a89bb653898bf6a3ba8c16d3d76ab5b3083a85b3087a2572d90a75d317d97502b67944d28699b502877ad5f2e8ac5743a84bf6b3988c06c388ec6733d93ce7b407cc16e396cb15e2f6cac5e3374a75b3075a2582f6b974e28598d47234e823f1d587f401f51773a1a62763b1c52703819466733153f683113457036154575381733753715357535143d72341543693112365b280f3953260e384a210c24421c09524c240f674e2610625127106250270f68522a104c71300e5f79340f4d77320f4b74300f2e722f0c4277320f4378330f66bb5f2563b75f2565b35d2860a754235a994b1e6694482250974f23609d52265fa152256f9f4e25333b15054e4b1c08554c1d09474a1d08324218064142180654a0421745f46d262eff852d40ffa3365cffb14046ff99314fff9b3741ff7b295bd5692f54dc6c2c48d865263bcc5a2254dc6b2e4fdd682c43de66294be36d2c35de682742db692b45e4722d4be374304be1743144d4692b3fcd63283ecb65252fbe5c2034be581f3fd4662540ee782a4eff862f50ff903359ff9b3c5cff993e60ff923c5fff973c61ff923c75ff913f64f17d3655d46a2d58bf602859ad55266dad592957a04f2063a04f225494461c5794481e5497491e679f52236dab562551a04c1f63ac562456aa52225baf552557ac54246aae5a2c73ae592d6ea653286ba3512661a3512663a6542778ac572a71a8522789b45a2d63ae542563b157267ec5692f8ec76a328ac3663194c76a34a2d2783f93cc6f3a58bc5f2968c86b305fd0702e68d9783176dd7a356cd06e306bd370345ed6713174e27d3a60d56b3062d56f355cd6723567da723762db703462d8703364ce6a324bbd5f2c57b55c2b43a54d2155a8552657a151274892481f3287441c4885431d4f83421e41803e1b3e86401c6399502753984a2353a5532689b8643851a7542759ab592877b762307ebc67317aad5e2c82a45b2b738e4c22757e431f6e703b197b6c391a736d3b1b7d6c3b1c616030158464351b565a2d156b5f33197461341a604e210a705f2a0f817937148a873c168e9542175792381153d25d213fce662956da753858d9763a57d874374fd9703496fe93548afc8d4d69ea7d416de3793f62d771386ed3703857b85b2c54aa54297aad5e345c994d2664914a2567894724417d3a195e8d4a2365934f2556924e225e96502456914b234a8c461e3c88431b4b8d491e408842194d8f491d52954e2067a0572561a0562479aa612d74a25a2b7da25a2c7ca25b2c8ba35c2e809f592c7599532969934d25729a532870974f267da2582d6c9f52266ca05328669e52286da5592c71a6582c78a85a2d80aa5d2f629d52266f9d52287ea65b328caa5e33789e532d85a258318eaa5d3584a959318cb2623773ac592f7bb661349dc0693eb5c771458cba623895c56b3c87c36a39c6de824eb3d17846b3ca7443c9cb7647aebb6c3d92b264376ea85a2b8eba693867b9662e76c772348fcd783d88c470398ac16d3c76c06d3783c8733d75be673572ba683875b967377ab8683971af61346ea65a2e729f562d4d8e49245e8b482248803f1c5380411d527b3e1c467a3d1a417c3e19407d3c18447e3d193b7c3a1849793a1860753a1a49663114635c2d145a4d26103d46200b534d250f70522911634e250f71542b116c552b115272300f5277330f49722e0e5379330f356f2d0d467531103b672a0c65c7662561c0602259ba602650ac54225aa24f235596491e488d441b4e87401c698e45226e90462258843d1c5e733619584b1d093f491b073e481b073d431907463916063f86361139dd62254fff993638ff992d5fff9c3b3fff923145ff8b2d3bbc531e4fd1672d59ce60295cce5f2845d4622552d965284dd9662741d8622749db672c4bdf6a2b53ee783045f5792c3ef0772c3ff0772b36e56e292ed2632324ca5d1e40e56f2a62ff85365bff86366cff9d4055ff98385dffa33c63ff9b3c57ff8d365bff933965ff953a65ff8c3959f479325bdc6d2e5bcc622753b958235fb0572365a7532464a452235b9c4f20599c4f20629b4f1f57984c1e5a9e4d204c9b471b529f4a1e57aa51225dad512466b45b2a65af56276fb3592968ad54256faa54266eac582967a954255fab532463ac542465b55a277fbb612e6abb5f2a59b45a255db75c266ebc602d7ec5693183ce6e3483cb6d3678ce6f3560c7662f4cca662a62d4713077de7a3769d66f346fdd78376dde753470dc753577dc75385cce682f58cd672f6ad973385fd26c3167d6703469d26f3354c2652e5dc0642f6bc167316cbe683467b5612f479b4c214b924820408e461d5e9b53253a88401b4c944b2167a356296db05f2d70ad5b2d77b663325faf5c2a70b9643072b8633079b965318ab565327fa45b2c7c9754268183482084743e1c7c703c1a6e6735176f673719615e2e15605c2e1555592b124c5528115c582b155f4c200b745f2a0f6a7533127d873b147b913d144691360f3ecd591f6bff92496afd8d4971fc8f4954ee7e3f69f6854261f57e3a6bf6834160ee834366e1763a54cc653072d8753f76c3653675ba603348a14e2274a3552c58904821548844215c864221678b48236d98522757954e214c944c204490491c3a8641192a7b3b154889451d548f4a207f9e552a78a2572883a85d2d609e53247eab602c7ba65b2b72a55a2a76a65c2b83a95f2d78a1572b749d5429759c5329729b5027689c522674a1552a7ba6592d7aaa5d2e6ca6582a74a85b2b73a95b2c67a5562a67a4562976a5562d7baa5a2f87b261357eb05f347dac5d338db4623693b9673b97bb673a8bbb673b89c06d3d80ba643580bd653783bc643689c36b3a9ccd73437cc269367ac46e3a8ecf774296cb7240a3d17844b4d77e4892c16d3da0c975436bb15f3159b15c2c71bc69338cc9733e8bc9723d7bc4703a80c8713a91cb743f8fc9733f69b560317abc673980bf6b3b7bbf6c3a6ab7653474b766355ba6592c76aa5d306ba1572b759f592e6d9752294f86431e4184411b5089451d4b8c461d34793615477c3c18647d411c656e38185e5c2d135a4e260f564d250f63522a115b4f270f7052291170532b1276572e13406c2b0d5a76321147702d0e456f2c0e376b2c0c4f63280c5a59250c5bb85b225dbe5f2360c2662766c064285ca14b1f4f8f431a5588411b4f7935166678391b687c3b1b677d3c1b66783a1a5a71381948461a08384a1b083e471a084c461c084a3d18075b7a310f53dc622452ff943352ffa63a49ff973446ff933249ba582156cb672b66d66b2e57ce612758d264285cda6a2d54d9692c4eda692c4fda692c41db682851ed763058f077304efb823439ee712951ff8d374bfe803051ff88355bff84355eff8a385cff8d396cffa5406bffb3486cffad4762ff9d4067ff973d5fff943856ff8e3762ff883559f177305de8762f62de742d60ca672855b65b2256ae582158a75522579f511f52944a1b568d441b49883d195596481d4f99481d5fa24e215da7502367ae542657ad53256cb65c2a5baa53236eae57276cae56266faf58296aae56286db45a276fbb5f2b6bbb5f2b64b95d284caf542272be632c7ac56a305bbd612865c6692d68c6692d6ac7682f72d274395dcb6d3263d36f3064d36e307ae47e3979e5803976e37d397fe67f3b63d570326fd8753462d06c3069d6723567d16d336fd470356bd570325fc9682f6ccb70396bc46a356bc36e3969bd66335bb3602e55a8562853a2522661ac5b2a5ba052264e974b214795491f81b5653273ae5b2e63b15e2b74b4623271b15f2e78bb653180bf6a328abf6d358bb968338bac622f869957277f82471f7d733e1a736a371867673517766a3a19736334176356291258592b125c57291253522510584d210b5a5b270e59702e10687e351265823210479b3b1130c2501868ff984860ff8f476aff974c5ffb85416fff924a6eff8a456ef9874761f2854264e97c3c5fd770367fe47e427cd7753d74c0653379b45f317bac5d3063974f27799d572d5c8e4a2457904b22709b55287c9d562949904b1f5d924c225f9a55255c914b216d995126789a52287e9a5329809f572a8aab602d82ab612f86aa612f84aa61308dac613173a95e2a75a75c2b75a5592a79a75c2b7eac5f2d7fac612d71a55a2972a95c2a6daa5c2b6ba85a2a69a85a296aa6592a68a1532969a6582a67a5552a78ab5a2f71a8552c7fb35e338ebc673b85bd673891c36d3e86b964379cc36c3f8dbd67398fc36d408bc1693b86c269398ecd734284c8713e7bc0663571bb62339dd37b449cd37a437ec870387fcc733c93d1774085cc723d7cc8723e77c26d3972be68348dce773f8acd763e9bd57e4495d37d4382c8723b77c26c387bc46f396cba653385c7723e82c36e3b79c36d3873bb663473ba68377abb6b3b88bd6d3e7eba6f3f76ad613464a0562b56944c24749d552a4f90481f548f4820417f3c18407939167780441f536530135a5a2d135f5229116c522912625128106b562d1172562d1269542b126b562d113e6a290d50723010496f2e0e4065270c22521f08484d1f0a684e230c65be64275db85d225aba62226cb6602669a656245c8e441d7287431e737a3d1b7271371975753c1c6973391a66753c19666b321756683115333f1705434a1c083f481c08374319072a3a16064865270b64d965253cff7e2a3eff943244ff8a3047b7582159c5632b71d76f3065d66c2e63d56a2d66d7682e4ed1622848d2632749d6652653dc6b2d51ea752d4eee792f56f981375dff8a395aff8f3d47ff86314cff893750ff823655ff8a3561ff973e7bffb0497fffbe536fffad4663ff9b3f54ff903758ff933951ff8c3163ff873562f87e346af4813276ed803469d56f2b72cb6e2c79c0672973b45f285b9f511f59954c1d538e451a5591461c4591451a4b97481e4597461a519f4c1e74ab552769ae532572b2582a5dac54246dad542573b258286eb158287fba5f2c7cbb5f2d73bc612f75c467306cc0632d64ba5e2964c0622b68c56b3070c3672f65c0652d57bb5d296fcd70345ec5682e53c0622a7be17f3d6ede7c388fe4803f76e27e3c6bdd78345fd26e3160cc692f6fd3723469d06f346fd674346cd6773362d3723164cf6c3163cb6b3061bd5f2e69c064325ebf67345eb7612f64b4602e56aa552759a5552a62b2602c64ab5a2c5ba554283a9a4a1d67ad5a2c6cad5a2b65a7562966ab592b74bb66326cb8622d6bb8632e7fb969338bb7693499a961307f9252267078411c8276421e82723d1b726c3917676a38176a6535165e5b2d126b5d2d14876232177c61321739451a084e56230b53682a0e3567260a55742b0d49a13e124bd25a1d76ff924768ff8e428cffab5a78ffa7536bff9c4c69fe8e4959fb833e5ff787406bf0813f64e0773a7fe67f44a1eb874a82cc6f3a82bd663575ab592e5e9b4f2669984e2662944d2469954f26699950266a9750257999542a769b56296b98542862904d235f8c47218095502a789751287e9b552a9bab6232b5b9703e8bac613075a55a2b7bac612e74a85c2b6eaa5e296da95c2a7dab5e2e8eb4683399bb6c367fb2652f91b96b359dc0703881b766316aad5e2b73ae5f2d5fa3532565a35428529e4e245aa3522752a04e2384b863369fc7714192c46a3d7bb8613584be67389ac66d3fa9d1794891ca7040b1d67c4aaad97e4796ca724397cf754291ce744087c9703b81c96f3a94d17a4397d1784370bd643374c46b398bd0774178c56d3975c56f3996d880479edb85489ed97f4681cf783f7dc9723968bd66346abd673486cc753e7fca743d80cc753c77c8723879cb763a75c26c387ac06d3976b865389dc5754670b7673969ac5c2f6faf633265a4572c6ea2562c67a3582a66984f26518b461f427d3c18617539195d67321562582b136c572c1367552a115f552b1167572e1370582e1380592f1472582e133b68280d3b66280b5865290e585a250c25451a0845431a0842431a0766b45e236db05b2375b3632a74a95b267ba054237c954f227786461e576f381568703a1981743d1d8578432185763f1d85753e1d656b351757632f155d5b2b1133491b073a4a1c0836431907313c170644501d0842b84d1943ff732847ff772b57f6903645b2542260c761296ad36d3062d56c2c55d56b2a45d2662749d46a2c52d5672954d96b2b4fd96a2943de6c2b52ef77304bf7793054ff883756ff8c384bff82315cff853962ff933c56ff933c75ffae4972ffae496fffa64567ffa34165ff983a63ff9f3863ff903b5cff84335af47c3062eb77306ce374305bd1692874cf6d2d60c1632766b35d2557a2521f5b984f1e5e964c1e4f8f471c3b8c3f164c8f42194d95451c4fa04c1e78b159286bb0562679b55b295bb0562460b0552370b75d2a69b95f2a71ba5e2973b75b296ebf612b6dbc5f2b77c6672f74c86b304fbc5f2664c5682d76cb713463c96d3075c76a3165c5692f6cca6f335dc5692e5fc4672d66cf6f327fe07f3b6bd7743570d7733573dd773572da74356ed170367ed9763779d4743565cf713079d2733589dd7d3a80d3743773ca6d3668c269354eb7602f58b35c2a5db25c2a58aa56275ba858296daa592b72b6653059ab582858a152276eab5a2c6dae5e2e73ae5e2e63a9572885c26e377bc5703679ba653280b96b3380a85e2d7b9a5526898b4d247a79431e76723c1a7f733e1a83703d1a816e3d1b7f6938188268391882653518736435176963361737491d085559250c4662260c4462240a596a280d54b0491932c8531881ea854090ff9750adffaf5fabffbf6b7dffa35180ffaa567eff9a4f5efd8b406df4834060df743862d46d3976dc763b8fda7b4271c0673164b05c2b56a05224619e53277a9e552b6e99512768914c234b8a471f6a924d2568914c25749c572b8899552b8399562d80924f2a739350276d934d2789a55d2f90a75d3091a95f317da45a2a85af63308eb2633170a7592a7aab5e2c75a5592b79a75a2c7fac5d2e7fb0612f93b8693582b7663278af5e2d69ae5f2b71b0602d71b1612d60a65728469b4a1f6fab592e66ad582b6fba603098ca6e3d95cb6f3c86c369385eb45c2c87c66d3b9ccf7846a7d87e4995ce74409cd0744289c86c3c9cd87d4597d0754098d37b446ac76e369ed87e46a1db834b73c9703991cc723e7bc76f3a8cd57f446fc26c3678c6703978c66f3887d1783ea6db82497fc9703c8cd97e4094d87d4375c16a399ed97e458ed67c4081cb743b88cb753da3db854694cb764082bf6c3b6eb866375baf603273b1603263a255295a9d51265d994e25689b502972a55a2a5e914b23597f3e1c68783e1c5764311570592d1462572b12655b301466562c1363542a12665931156d592e124d622b104364260c405c240b5654220b604d200b45451c0839401806403d17065b9a4f1f5f954d1e739951235e944d1f618c471c7e8a481f8181441e71733c1b6a713b198a79421f81773f1c7d743c1a84723b1b7f713a1b6f68331783703a1c56552710394a1b07494b1c083c481b083b441a0737431806469e40143adf581d47f569253eb1521f47b8562063cf6a2d4bca642735c35c2136bb551d4dd0672b4fce652a4acb612758d96b2c50e3702c4bec742d66ff883860fe7f364cf777305eff86385bff853657ff8d3a68ff99406cff9a3f6affa34471ffa24764ff923d5eff873556ff8a345cff853465ff87355afc833065f6813360e5762d68d46d2b6acd692b60b95c2767b45d275da9542159994d1f56974b1e4e9a4f1e5396491f5d9a4b204e98471c60a14e2174ae572571b35a2681bb612c60ba5e273dab501d49b055217cc3662d97c86a3379c2632e50b2552360bb5d2752b7592471cb6c3067c76b2e61c86c2e79ca6d3160bf632a76c0632e73c368307cc56b3264c3683069c66c326fc86d3376d3733465d16e3070d574356dd06e346dcb692f7cd06f3572cd6e336ec96c3083d8793776cd6e337acc6d326bc3643073c669326ebf63316bb9613054af572657ad562668b05c2c6bad5a2c58a45527539e5024549a4c244c984b2256994c23589f4f2673b1612f9dc5723c86c8743683c66f367ec06b3384b5653169a057278e9856296a7e421c74703a1a6a6d381764693616766c3a18756a38185c63331462623214806737177664351872643618464a1d0934511e08475c230a5761250b5465250b66b24b1952ca5a1d98d17940a1f5914f94ffa257a3ffac5ea9ffb863a3ffb25f7bff984f61f3803e4ee2733457da6d345fda70357ddb753d78d3743a50b55c2944a75223489e4f22639f52276f9c532962934c2569944e26628e4a216c924e24819a542a8698522a728e4b2672904d277b934f287c98552b8b9b552b879d572c87a0592d8da45b307a9f552b7ba3582b71a358297da75b2d88b0633079ac602d85b0633079aa5e2d83ab5f2f8aad60328aaf61338ab5653378b0602e6dab5b2c66a8592a6aac5d2f81b460346eb25b2e72b65d2f9cce713c84c86a36bbe181499ed276415db85f2d51b1592a82c76e3aa1d37844b9e0824d78c3683874c1663470bf63337ac86e38a5dc834a75c871397fca733b8bcc743d86ca703b99cf7441a3d57a4592d47e467ac86f3a89cd774180ca753e92d27a4085cb733d79c26c378dce744081c9703b99d178437dc86f3a8ad17a3e97d67d437bc46d38a4d8804680c0693984c16d3a73b6623477b564365ea35428629f532977a2582d66964e2562914c245685401e4e7d3c1b47723617576e351854612f15625f3115936436196d5f30146f5d30146a5b2f13685a2f136d5a301359622b0f4858220b364d1e0836441b084b451b084a431a074b411a086849200b6e924c1f5d82451a768749206682431b6a82451d707f421c6b773d197977411d68723b1970773f1c79773f1b917c431e927a421f7d70381a776b3519806d361b88733c1d72733e1b223f1505706f371a707b3d1d6e8b48203d75351546822f0f52ac54224eb95b2461c8642a66d46d2d50ce672756d1692a35bb551d42c9622634c0582043c860264fd4652949da6a2955e8723059f67c314ff6792f51fd7e3452fa7f3554ff80355dff83366aff924065ff8c3b67ff93406dff9c4768ff943d74ff8f3e68ff8b3b51fe7d3150fb7c2f61fc833164ef7a3053d86b2766d56b2b62ca662a58bd5f2658b45a2550a85222509f4d1e4f9e4c1e54a0501f53a354233e9e4c1c64a753247fb05b2a80b65c2975b95e2a95c6693262b357253fa94d1d4bb0552175be622d89c5683278bf602c62be5f2864bd5d286ac4642c71c5672f51c2652a4bbc5f2662bf622b50bb602866be632b88c66b347cc067314eb15a2663b9622e6bc269317fd5773783e27f387ee281378be7843b84e1813987da7c3d8edd7f3f87d6773a93d7783d7dd0703582d373365fc1622b73c66a3271be622f69b95e2d65b65f2d77bb65327fb765357ab15d30539b4d23539a4b235a994b255e9b4d2675a3552b6da95a2d58a6572888c26f37b5d47f4381c16c3487bb683489b063317fa15b2c88925227827e452072713c1a6e6c3817686a37166f6b3a186e683818706536166d6333157f6738186a6334167c67381a3a481c08314b1c0738501d082c501c0738551e0855a6441766a34d1f95b0623587d77a3f84fb924a95ff9e5793ff9b5589ff99526cfe8e4748e070335bef7d3b5de7793a68e2773a82e77f418de07f4071c96e3662b45e2b4a9f4f2245994c21418a421b61934d25608d4822648c4a236d8e4b2576934f266c904c24668d4b24648a48226b914e268499532b9aa25d327e9b562ca5a661367f9e582d85a35a2da0ad623590aa5e3066a1542780ab5e2d7daa5e2d8dae62327aa4582b8eaa5e317aa1572c76a75b2e73aa5c2e5ba5562866a958295ea856275dab592967b35e2d63b7602e83c66c37b0db7a438fd1703bb7de7d48b4dc7e4975c1673556b15a2a84c46a39b5d77d4da5d6794685c96c3972c267347dc6693889ce733d92d1774161be67326dbf683475c26a3670c36a36afdb7f48acda7f4998d2774372c06a386abd69358bcf7a42aeeb914f95e48843a9e58b4abded925096db8343a8df884d9ada8147a6de844aa2d37b47adde854a96ce764082c26b3887c16c3a8ac26d3b72b3623279ad60317fa35a2f859c562d738d4a25447838184d78391951723618586e35186a6f391a586131155e613215846839197d653617725f3115725c301475582e146c592f13635b29104a4f1f0a43471c09304118062f4019072d3e170655471e0a53451c0989351c0b7f31180b8330190b692d17096d2f170a7030180a7f2f180b722e170a90321b0c99321b0c8d30180b9b331b0dab351d0e9b31190c8d2e170b8e2f170c8b2e170b8d2f190c862d170b9d2e170d772b150a782d160a6c2c160a462812086a32180b6b341a0c8e391c0d78391d0c8e3a1e0d6f371a0b5e36190a473317084e3317094b35190a68381b0b65381a0b61381b0b51391b0a5c3b1b0b623d1f0d653c1c0c6c3d1e0d7f3f200f893f1f0d914022108c41220f8741220e964223107940200d7940210e593c1d0b643e1e0c7b3f1f0d763e1f0d8c3d1e0d7d3b1f0d793a1c0c72391d0d5d36190b78361b0c65341a0b5e3318096b351a0b75341a0b7b351b0d71341a0c7e34190b90371b0c95381c0db33c1f0fa33a1e0e86361b0c8f391c0d6f35190c983a1c0ea83b1e0f63351a0b77361b0c87391c0c77381c0d803a1e0e77381d0d71371b0c6c371b0c73371b0cd63f231370361b0c85381c0d7c361b0c893b1f0f9a402310c0432412aa3f22119b3f21106d3a1e0d6d351b0c813d220fa4412412b9442613b1412311963e210f833a1d0d89381d0f8c381d0e6b351a0c75371c0c91381d0f88351b0e97371d0e77331a0c582f160b79341a0c81361c0d78351b0c5432180b5231180a9e3d2110af3e22119a3c200f99391f0ea3391f0f87351b0d86361d0d9c351d0e8130190b8a31190b8a31190b99321b0c6f2e17098c30190b702e170a8730190cb2321b0d95311b0c4c4a1e0a9b30190c9f311a0db6341c0ead311a0d529f41159131190d9f361c0f903b21108c3c201097402313973f22137e3f21106b3d1f0f58371b0c5d3c1d0d703d1e0f843d201061391c0c9c3e22107f381c0d71351a0c4c2e15094e2f1609412e16085e30170a6f2f170a6f2f170b522d16096430170a6331180b6a31180b6b2f170b85331b0d86341b0d84331a0c86331b0d99351c0e9c371e0e79351c0c7f341a0c5e32190a6032180a7b351b0c70341a0c82351b0d87361d0d82331a0c74341b0c6733190b5e32190b72331a0c7e351c0e6433190b5d32180b5d33190b69341a0d6d34190b8e381c0d903a1f0f9e3b1f10a43c20118f391d1082381c0d74371b0e8e391d0f8e381d0f7a391d0e6e341a0d69371a0c72371c0e79371c0d61351b0c5c34190b72351b0d52351a0cd03e231376381d0f72371d0d76381c0d7a371d0d8c3e2411ac422512853a1e0e8a3c200f883c200f5334190b67371d0d833b200f893a1f0f9a3e2111973e221076381c0d78361c0d75351b0d6f351a0c5a32180b74331a0c682f170b8430180c722e170a48271107632c1509732e170a732e1609572a14083a261106662b15088a30190b7e2e1709762b1509922c16097e2c16095e29140768441e0b3f491c087a2b1508732d17096f2e1609444b200b583717065b321809695328105e4f240e604d240d7651270f7550260e6a4e260f784e250f91512911864f2710884e2610954e2711a9532b13a7532912a9502612784c220f764b220f6b49200e6249200d644a200d5e471e0c6049200c5c49210d564b200c40461c093c441a095651230c4e4f230c454d200b494f210b4351220b394d200a364f210c2b4c1f0a294b1f09334f210b5656270f5455240e4455240c4558250d395b270d495c270e62652f12656731155f652d125d642d1265672f1362672e126c692e12646a311454662c104763290e59692e115d6a3011656b3012736d3214656a301354652d1153652e114d662d105c6b33145b6a311251672e1152692f134f6b2f125a6c2f11596e3112787738175f703213606c30136b7436188e7b3e1b6f73361680793b196b7639187a7b3e1c867a3c1c74773a1866703516747638196d773a175e7234153e682f116b7335166b753718787c3e1a9f824320827c3e1d627638175c743517777c3c1a92803e1d8d803e1c9d85411e8e7e3d1d526d2f12837b3b1b847e3d1b9f8644209c8845209a87421e9586411e767f3b1a6a7c3a188e8645227e7e3d1c827b3b1b777536176f6f32177d7133177a6f33177d6d3117776c31155a632b115e642b10495e290e575f290e6f642c11b2763818d3803e1cc07d3c1abb7e3b18c3823d19a87c38179b7735157775331283793614677231127c76341486793513867835147e773413987d3916ac894019a1884019a48d421ac898451eb69a461db99e481eaf95411c8b913f19958f3f1b7f8a3a1865853514758a3a166f89371678913d18618737156c8f3c175280321251803312688c3c16688d3f185b8739165984381557853814477b3211497e36152a702c0f336e2d0e4c74311267783616586d2d12536e2f125972311349723211566f3011717a381785813f1d6f763617747837177a7c3a1a7f7d3a187a7c3818727d3b185c77341453753312667a36156b7937156a793614807b381671773514566d2e115c6f3113536c2e105e6e3112576b2e115a692e115a6a30134c662b0f55672c10686b30147c6c321468692f1269672d11746e31159173371767692d1282723415676d301383743617917738187470321360682c10636b2f11726c301259632a0f445b250c76642c126c622b1187683014956931147d672f1460602a105a5b270f715c2a108f5f2c1277582710905a29118d562812754f230e865527107f53260f9f552a1390502610944e2510904a230f62411d0b67401e0c8747231072421e0c78421f0d673e1b0a6c3e1a0b773f1c0c6d3e1b0a723e1b0b543c19094a3b1808503a1909473819084936180865381a09ae40210eb63f200eab3b1f0da2381c0b9e361a0b9333180a813016085f2f150769311608522d1407753117097531170874311708743016086852250e6753260f6750260e6550250e77562a107d552a11825328108b54291191562d1489532a127450270f8b5128116d50250e6f4d230ebc592d1688552a1181532711644e240f6350240e564f240d574e220d644b200d464a1f0b5152240c4552240c4851240c494e200b4a50220c3f4e200b4f57270d4754250c2a4f200a254b1e09214b1e092f4e20093852220b4855250c3d53220b3d56230b465b280f5a622d1159612c1156612c1154622c1052622b1160632b1168672f1360642b105b682d115a662d1151652c1051662c0f5d692f11666a3011636b311265682e115c672d1163672d134b632b1046622b104b622a0f50652c1053682e1151682d10506b2d105d6e2f1177733315777434166b7536167a783919867b3b1a737738185d713414627336166d763917536c2f117474371773773917697336164e6c30125c6e3213446c2e1073773919697234166e76351678793718747938197a793718847d3b1b877c3b1b63713114857d3a1a7f7b391993803f1d857c3a199c83411e8f7f3d1c8f823e1c93833f1d9588431e8e87411d76823c1c7c7f3c1c787f3c1b797d3d1c807b3b1c7f77391a777236188872361a746c3116716b301555642b1156622b104f61290f4c60290f6f662d13585e280f916c3216906f33169775361781723315af793818a27b3b198e7635157b743314847836167e763515777434148a7c3a168b7c3a179d7c3b19997b3918a6843f1bab89421d7f803a16a48b421c81873d1772823815cf9a4a23b69648209790431d698038187a883d1a71873c196e873c1982883d1b5d82381664873c165e8b3f185a853b165b7d3614647f39174876331468884019537e39152c6d2b0e2767270d2866290d3a692b0f496f30125a7032144f6b2f124a692c10556f3114687638186e78371760723315727638186574351772733518867c3d1c73773717667737166c763717627636155873321367783715707938166c77381670743514676f3213766f3114606a2f134e672c1158672c115a672c115b682e1160662c1157662b1069692e127f6a30158a6c32166f6a30147d6b3015927236187a6e31155f692e126b6a2f13756f33146f682d126d672c11846c311371642c10535a260d5959250d4955220b6357260f6454230d6757250e7558250e7659260f7e58260f8559281087552610634b1f0b7b4f220d7a4b200c904f2510824b220ea04e25108e49230f9048220f8244200d9145220e8e411f0e753d1c0c7b3a1b0c6f3a1b0b753a1b0b7d3c1d0c773a1a0b6838190a7a38180a6e36170967361709573516085e3718084e3416074a321607693519094b2f15077831180a762f1609833017096e2d1408952c1409872a13078228110769271006722811076b2710066b271106782a1307732913077a28120774281106955328115c52250e6151250e6252240e5f55280f6353270e7b592c127a54280f7a572a11855a2e1486592c126454280f76562a1195592c14a3592c14885327116e50250f6d512510424b1e0b4e4f220e464d220d504a1f0b464c210b4750220b4c53250c5558280e4251240c4152230b4c55250c5356240c4353230b2e50200a13491b08234e210b274c1d093653220b3c55240b3e56240b4559260d3e57250c635f2b0f5d602d125c5f2a1056612c116e6632144f622a0f6c662d11786a3014736b30124f632a0f4b652c10485f270e4961280e4a60280d4f632a0e61682e116a682e1154642b105a652b0f3e5e280d42602b0f48602a0f4b632b0f56652c10516a2e105e6d2f126471301279753617566e2f11586e30118f7d3d1b907a3a1a5d74361467713314657134146d743716757134155c6d3012676e32145d713213667535145e7233135c7132136b7132146673331472753417827938198d7a3919837937198f7f3b1b7a7433167073331672773617927e3c1d8c7b3a1b8d793718947f3c1b847c3a1a8a84421e8b87411e81863f1c878b421d8488401d7c823e1d707c3a197c7b3c1d687135196f7235187a74381a766f32176e6d32164c652c1057682e11746d32156f6b32146e67301559612c11756930159873371a9c793b1a666c301373692f159b77381ab67d3e1e7c7536177f793919736e3014606e30136f76371694793a1994783a19a77b3c1aab813f1cb58c4822a189431d6c7c38156e7b37169c863f1db588411f817d39197f793718547333154d6f2c12567131146f78391a6a7b39185a773715607f3a175f7f3b165c7d3a1746723312647a38164e7635136a7a3717557031132e65280d2161260d38652a1041692f11476b3012536c3013596e321447662d126c7033157e773b1b89783b1b6f7136186972361871763a19637235158d7a3d1c837c3e1d897d3d1b5a7235165c713415526b2f135d7033155e6c3013656e32146d7034156a692f13696a30124c61290d57652c1157642b1067672e1254662d1257632b105c632c116c672d127e68301577672f1377683015786931148e6f34177d6d33166e69301377682f1375652d126a62290f655c270e685b260e6354230d6954230d6650220c5c4c1f0b6c4b200c69491f0b754c210d7f4e220e794c200c834d220e874b220d7c461e0c7e431d0c72411c0b743e1b0b823e1c0c853c1a0b853b1a0b893b1b0b7e381a0c83391c0c7a36190b7c351a0b703217096d3216097734180a713417097a34180a6430140876341709693115086f3215084f2e13074f301407402f13065c301607542d1407743018094c2811069a2e170a902c15087227120758210e057a200d0585200e05a6220e065f1f0c0473210d056d1f0c045b200d0460200d0487220e0680210e0582220e05673a1809603b190a603d1a09733f1d0b583e1a09623f1b0967411c0a9645200d78421d0b85421e0b8b45200d71411d0b7b411c0b7d411c0a693e1a09623c18097f411b0a673d18094a3b1707483a17073f3914074c3c1708483e19084a431b084e451c09574b20093e451c0944451c084c481c0839461b0842471b09504a1f0a44461c0928411908283f170732441a08424a1e0a5051240c544f210a6250220c5c55250c7556270e5b53240d6555250d5b56260d6254250d5252220c5f55230c6557250e6259250d5859270e4d58240c3a56230c52602b0f52622b0f5f632b105d642c1062683013676b31145a662d1159682f1351632b114660280f59672d1155672e10606d32147c6e34167b7034176c6b301451692f11787438188f77391a857538187f75371784753718787538188275391a85783b1b626f34156b74371785793d1b7f7b3d1b677437174d682e12586e3114787337188d7a3c1c777739198d7f41209782421f8f7d3c1d8b7e3d1c827a3819857e3d1c8079381b657332147b7837197f7c3b1c938546257d79391b757636198a7a3c1c787234187a73361a78723419787536197077391b6f7333177b763618807b391a72773618677535175e7637165a7233135c7032144c6d2f114b7030125a7230128f88421ca68c431d8d83401c5e7334164a6c2e116c73331668753517697737177d803d1b5e793715707e3a187a853f1aa18d47208b87411c9c8b441e958d47208287411b84833d1b827f3b1a797c391969733316847a381973713316586b2e1352652b124961270f52632a1150662c1250692e11626d33146373351444652c104e682f124e672c1145662b10536a2f125f6b311445602910315b260e385e270f41622a0f4f662d12596a311463672f127b6a3016726e33157a6a321668683114726b32156e6a3315736630145b5f2b1171632d1377632e156e602b125a5c280f4d57220c3c53200b575b240c5859210b6559210b5a5a210a5e5d230b6660240c595b220b605e240c5e5e230c43571e09555d220b5d61240c6d68290e8264280e7765270e6b5f240c505f240c80672b1088672a107a63280f88642a107a5e270e7660290f815f280f765f280f5d5b240c675e260d87652c106e61280e5e5c250d5858210b565a220c705c250e896229107160280e86682e1292682e128d642a117d602a10785c250e785f290f7158240e5e56220c6e5a250e745e29107c642d13695c260f695c260d735e290f6958240d6a59250e6d53220d66471d0b6b411e0d5f3215086b2911067326100662240f0556220e054e220e0556220e044b1f0c043c1c0b033a1c0b03501c0b037a1f0d04921e0d057c1b0c0453170a033a150802571508035c16090357160803671709034e16090258160803661709037f180a036b1709037d180a03553716086039170866391708553614075738160757371507533a17085b3b1808683c1908773e1a08683d19087a401b0a7f3e1a097c3d1908793b1708783c17087139160867391608563815075a3a17074f3c17073a3b15063b3d160642421a0837431a0738451b072c451c072d471d082f451b0736461b0837461c0839481c0739471c0732471b08214218072f45190632471b0736481c073c491d083f4c1f09424d1f09434d1e095350200a4d5221095956230a5253210a5052210a4a52210b5853220b5855230c5154220b414f1e09404f1e09464e1e084053200a4e54210a5555230b4c58240b5556230b4f57230b4f531f0a4c55220b4254210b4554210a3e521f093b552109645a250d635c260c5b5b240c6b5d260d705f270e685e260d7462290e6860280e6e622a0f5c5e260d6663290f5961280e65642a0f5b632a0e5a632a0f5d642b0f4e60280d4861290d5e632a0f62652b1070682d11746c2f116e672c1081692c1172682b107d692b107a64270e6a62250d6e62260d7262250d6c63260d6762270e6b5f250d685b230c675a230c6455210c524f1e0a4e511e095255200b6259220a50581f095d571e0962561e095c551e087d5b220b6c59210a63551e0861551f085f521d085e511d0864531e085f501b0764511c085e501a077a531e09594f1b0859501c085b4f1b0860501b084f4d190760521d084e501b0756561f08605920096e5d22097060240a7362250a8466280c7e66250b8065260b7661220a7961230b6c591e0a655a200957551c0951541c09395019083b531b0734531b073e591f08395c21093f6123093862240a4664250a366122093d65250a486a270b4766250a3f67270b2a5e22092e5e21083a62240a3e62240a345e21084862250b4363260a4b63260b5b62260c6866280d5963270c5c64270c6563280d515d250c585c230b605d240c6a5f270d4b541e083d521d0854531e08424f1b074c541e085e571f0955571e084e5b1f09555c210a565d20094f5d20094b5d210a455d21094b5d2109445c2109455b1f097464260c6560230b6361230b6c60240b7263260d6e60250c6d60250c765f260d6d5e250c695e250c6d63280d5a5b230a605e240b5d5f250b6b5e240d5d5d240b4d5b230a4b5a230a665e240c6a61270d77662a0e78662a0f7a662a0f7b672a0f71662a0e7762280d7d62280e6f5e250c675c240c615d240c675e260c655f270e645c250c615d250c655f270d565a230b4e58230b585c260d6256230c5d52230b44461c08573d18085339170767391707753918085e3314065e3215065b2f1306602f13065f2e1306642d12065b2b11056229100559280f056928100654250e055e260f0564250e0556220d044e210d045d230d044f220e0452210d045c200d04691f0c035b1c0b03721b0b03771a0b03635628126c743a195d6d3517696f3818716d3619786f361a8970371b7b6d371a6d69331767683217636630155c652f146e693217706833187468321762652f159c715b4fc77367608a6c534555602c1256642d1362693016bf73675fb572675f54682d144d692f14a97469619474685fbc72655ac074675db974675c9c74675d8d6d5a4e967064595e5a28125e572611785e2a15812b26207e292a25704b2a1a645d2c165d672d135a692e15596b2e146e7334185e6d2f157175351874783619607230174b6e2d134f6b2c14616e2f175c6b2d155f6b2f165d6d3016646d3018667032187373351a7879391d797e3d1e828140209683412299844224787c3b1e7478371c7277391d4a6c30167175391d6e6f331a7070351b8373371e6b6d331a676b3019636a31196f70371d8773391f6b6e341a5f6b31186d6f341a7470361b7f6f371c7b6c361c8c6b371e8369361d8568351d7b65321b3c5727122c4f210e4e5d2c166767331b5a6731194d672f1731622b122b6029122f61291240632c155669301841632a1454662e176f6e351e87723a238e743b23776c361e5c663118716b351d61642f196c67321b6866301a54693018596f341b687b3c2066813f21697f3e216a773a1e6774381c6873381c6d723b1d616a34197b6a351a7a67351a695f2e16705f30175e5b2c14665d2d167d613119675d2e15675e2e16585a2b13585a2b146c5b2d1569592c145b5729125b552812585529126a562b155b5126126255291462562a15705c2d18665c2d165a5c2b155c602d165a5c2a145d5b2b146c5f2e17585929136b5c2c164e552712545427125c5628135e562713705b2b1562582913645929146a5b2b146b5b2b15675c2d16635c2b1577602f17976b371d906a361c7f6531198263301879612f186a5b2b154851230f5254250f56542511655325116d5225126550241175542713685025106950241176512713684e2310755227138e592c1765512511875a2e186a592b16635728138964311b926b351e98703921a6773e26a3783f25a0773f25ab7b4127a97a4026ac7e4327b4814628816f361d816d351c6d6b33198870381d8470381d73693119846d361c7f69321a756832196a69321957642d157f6f381e63622c167a68321a6e6832186a622d16545c27125958261277602d176d5c2b156556251363522411695526126a5426117b5527146b5024126d522612654f23115b4e2310604f2311574c210f4d4d210f584f2310605225116552251159522510474e210d5350230f4c4f220e4b51240e5151250f574f230e584f240f5d4b210e5748200d3f441d0a42421d0b4b431e0c56431e0c57441e0c4d431e0c4b441f0c52431e0c5e451f0d4a441d0c4e431e0c58461f0d4c4a200c5351230e605928115c5c2911505c29104756250f4954240f5e6c34176a6f36188073391b68703818696a3116636a3116777036187a6e361a696b3317666a3216646a32165b6a321761683116616831166b682f1663652e15b7725e4fdd7b6f6691735949626831153c622a0f546f3215da796e65ba7e72695a78351951753317ac796d65be6e645abc796b61bd73665bbc786b619f72665ba672665c616c3a2353642b1365682e169c162525aa1d2d2d9922302fa5253232952835345f6d3117646e3016536d2f147479381b727c3a1b6e7734186973311772753319577130153e692a114f723014506f2d15586b2d15637333177276361c5a7131176975351a6b7634196e803d1e60813b1b778b44238d90462669883f20818c45245c813d1d50793619798641236679381d5975351a5c7a371c737e3a1e54743419717e3d1f6b803d1f78823e2078864020678540206b8542216e823f206f7f3e1f747b3a1d96814426987d412583763c2082733a1f5d663118425b28124e5f2b145f67321a696d361d3a632b1436642c1338652d14536b32196872361d7275371f6571361c7071371e80763b227a713820977c422784743b217270371e7d7139207e7139216a652f1a676b331b5d6f331a637e3d206086412172934a29778f492769823f206375371d6f73381e556731176567331957612e1579653319796130187d603119565d2c14555c2b136f6230186f643218676231175b602e16515e2e14666030168b68361b5f5d2d145d5f2e155b5b2b145f582a1472592c176f582c17795b2e195b5629155e5b2c1660612f17595f2e165e5f2d155e613017635f2e16625f2d16645d2d165f5d2b15615b2c16745e2e18665d2c155b5a2a13615d2b14645a2a14525828127961301868602e167867321a8a6d371e8f6e361e97773e22796e361b95733c218e6f391f7d6b361d605f2c1650602c13535f2c145a5c29146f5f2d1675602e1782622f19745d2c166e5c2b14765c2c16725c2c16675a2a14655a2a159363321b625a2a148062311a8265321b9c703a21876e371e766f361d95733b228a733920ad7c422894753c2289753b21a07e43269f7d42267171371c7a74391e86793e209d7d41238f773b218872371e92763b2097763b219d7d3f24907e3e24928443268883432674803f22767d3c2081814023837c3c207b77371e7e783a1f96793b21927539208771361e736d331a5d662e167d6b331a6e632d1775632d175a5e2914655e2c15675a2a15655425126c5426125d4f230f5f512510605124116c5427135150230f3f4d210c594e210f5050230f4450240f755529134b4c210d52481e0c54471f0d52471f0d44451f0c43411c0b46421d0b6f46200e4f431e0c49421c0b48411c0a46421c0b4c421d0b4f421d0b51411c0b48451c0b3c4b1f0b4458250f47652d11527033154c6d301349692f1349672f145e6c3416616e371857693115787137196f6e3517666c3317686e3518566a3014606b3216736d3418616b3216626c321654683014566a32166d6c3317616a3116b6735d4ed57a6f66ba786e63586a30144e6d2f1352783516c9786e64b4776d624d833a194d82391951863b1a4f82371752813919b6766a5fa78072665f823a1b447834164b7735185175341759753318ad0c2427a31d2d2d5a6e301661743418ad2133329c1e313159853c1b6e8f421e83984a247e944723728e432070883e1e64873d1d6380391c3b702e13497531144e74311562753318607432185e7332176c7b381b62783518677d391c74863f206b883f1e708f4421879c4e295c8e401d5d9347236090452359833a1b7b8f42237e8e43237f8b4123889045258c914727919249299a964d2b9e9a4e2a9c9f512d9ea5552f789648257c9448256992462386974d298b954d296c844020878a4727808543256c7a3a1e69793b1e56703519858043276c76381f828041256e7f3f215e79381c5f77381c6675371e878242267c7c3f247a773a227575392079783c217e783d2286783e24787137207d7239217c703920686a321b6a67311b616b321a5975371c6d87422577974e2b779f502d6a974b2854833d1e617d3b1e5f73371c596832176167331963622e1764613017735e2e175a592a13485a29104f5e2c1459622f156b673218666833186066321861663319696633197869361b5d693419616c371b6d713a1d6870381c7272381e7e753d207b743b1f6b6f371c57693218646d351c6771381b776f381d6d6d361b766b361b73663219716531197166341a716331198768351d65612e156b5f2d16685f2d176f602e1771612f18595d2c156f67331a726e371c83753b1fa87e4126aa864a2aa7844729757a3e208f7b40237b753b2090794024646b331a626b331b666d351b6b6c341a6e6c341b8f733a2093733a209471391f7069331a7469331a746a341b6c6932197b6d371c91733c21756c351c83733b20937a3e238b7b3e24867c402483793d2174783c2181783c22887a3d21aa7f4327987d42268a7c412497804327a5864a2baf8c502d8582432371773a1e967f41258e7d3e228b7c3d22978644298b8c472b9e995030788e45248e974e2d9ea054318b944b2b8a964d2b8b954c2b8a914929828943259f90492c7a813c218d8540257a803d217e7c3b217576371e6873361c7073361c606a31185c642e175e5b281366562712534b200e584f240f4e4c200d5f512410645427114c50220e605224104851240f4b53261160542812494f240e544c210d504a210e4647200d42441d0b42411c0a48421d0b56421e0c4f431e0c4c431e0d393e1a0a4a411d0b56421d0c55431d0c7345200e6c4c220f4154230d48662c1153733213417f3715487f381651803818437b3716666731174d652e14616a331756682f146d6d3518746f35197271371a4e6d3114556d321463703517677035175c6d3316516a30154e6a3114636e35177675391aa27b6657bc7e766b957564574b6b2e125a79361659813a18bc7a6f65ce877d714a8d3f1a4b903f1a478f3f1a4f92401a4e98451dc9a09385c1a89c8e558f401d528f3f1c538c3e1c628a3f1e56853a19ac0f3035a717393c5d7835184a7f3717c115393fc513363d6ba14a2376aa502875a44b2580af562b66a44b237fa851296ea04b25659846225b8e3f1d468c3d194388391955863a1a65893d1d69883e1f77883e206a843c1c62853b1c6e8d401f699143205c93431e5e99462274a24d275899482170a0502a739c4b2683a14e296a974521669544218b9b4a2870954522859b4b28829c4a26769e4b2589af572d7bab542b63a8502567a9522777ad582b77a6532982a1502b80994b29939e512e9199502d9b9a4f2e90934c2d9696502e7d8d4828798e4828728b42258a944c2c869049297b8b4426858e48299c924c2e8f8c482b8c89462a7d854225667e3d20868543268280402675783a226373371d77753b2178743a227069321c7e7a3d226f84412372944a2977a3542f7bae5b34649d4d28568c422065833f205c75381c56663017836d381e565f2c145b5a2a1460582a145b592914535f2e1450602d1553642f1590723c215d6c35195b693217566831165e6a341862693318636d3619757b3f20597b3a1c4b7c3a1b668d45245a8c4521648e47246c89442357833f20568341215f8945216084411e6b85432173844321657e3e1e6c7d3f206a793c1e79793e206971371b686f371b736d361b846e381d846b361d926b381f5b612e16686832197a753c1f827d412291874828908948278b8746269b8b4b2b7c804022888043267c7b3f23857b3f24897e41255c72361c767b3f239f82452890804125a682432886783b21827a3f237a773a207c783d2171763a1f837d3f22ae894a2b637a3b1e6e7f3e208a8d4a27978a4728a08c4b2ca98f4d2e868443257880402384804024858143258b864526a28c4b2ab0945432cd9b5937c5995835d39b5835637b3b1d85813f23a48c4a2cb0944f3197954e2e94984f2f94a054329aab5d3a8ba957329cae5b369ab3603892b05d3793ae5a337fa2502c7f9c4d2a9fa656337e98492a829a4b2a719347268a944a2b859149288c914a2a788742245c74351a5a6c32185b5f2a144b52230e43481d0c3d481e0b3d481d0b514d210d564f220e484d1f0d484f210c59532510575426105d5628115451240e5c4f240f45481f0c48481f0d46461e0c47451f0d6347200e6247200d5c46200d6046200e46421c0b51461f0c5e48210e52431c0b7c48200f604f230e5b612b12476d2f1252853b164d96431b599e4a1f4d903e1b458b3d1a56642e15576630155c6832175e662f155b6830166b6930174c692e13436a2e11466d30134f6f3214536f3214577033155370331556723617587033166d753819a9756051c67d766bb3736d6353723314567d37165a863c18c4797266c49a9285428d3c1841913e194da1491b6aa34b2157a44a1daabfb5a5a9cac0af5ba2491f5ca44d22599d471f629a461f5593401aaa17434ca2205058943b545395435b58a6305a5d68974e2a64b8582970c25b2b9fc8613491cc69358dc863335eba582970b555296cad512664ab4d26459b431d53a249235aa14b245b9c47215a9845227f9e4d2877984823889848256094431f649746215b9a4621549b461f68a04a236b9f4b23619946216b9d49247ba54e27699d4824629b47226b9c4721549c4721659b45216da54c237fab50296daf532875b7572a8ac15e318ecb6c37a8cf733c6cb95b2b61a751268aac583081a6522c83a3532d85a0502d7e9d4f2d90a354307095472483984d2b91a4553177964b297c9d502c849d502d869b4f2d7f944a299a9d5131728c43258992492c7e8e4729798a44277a8943267886422579854225677d3d206e8040246277381e778744266587412369994e28569749256ca8542c73a8562d6395482462863f205274361a606a331a6968331953612f155c5d2b145a5b2c15505a2c144f5f2d1450632e14646a34196d70371c5d6e35195b6d3419506831175a6b33185c6d351a8b81442590924e2a82994f2b5397482157a7502674b25a2e56a651275ca34f2769a450294f974722539949215d9e50255a984c237ca5572c84a2542c7d9a502a78914a27748b462566834020838b48259f8b4a2a8e82442577773c1e81743b1f646c341a6b72391e92834727858446259a8e4c2b9c914e2d828746269f955332918e4c2b8a8b4a2a768343256d7e3f217f854526708041248f8847298f8b4929998c4b2c978b492a848646289c8b4b2d6d7f4022838544268286462797904e2c8b8f4b296a8b46237d964f287c974e279d99512e828e49299a914b2c768641236e834022798642258c894527928f4a2aab995431aa9b56338f97522d557f3e1e59833f1f6385401f9e914b2d9f924c2c9f974e2faca05634a0a25534a6ac5d39a0b4633e7ba7542f92ba643a7caa563076a8532f76ad563076ac552f589f4a2674ab542e9fba613a9ab55d377ba9522e8ca9563187a2502f889f512f75964a285f803a1d817c3d21776930194051200d5b4b200e3c471c0b3f471c0b5a4d210e4c4a1d0c484b1f0c444e200d6d5728124051230e4c5526106b592a133f4f220d4c4f230e3c491f0c38461f0b3f47200c3b451e0b524a220d604b230f45461f0c4c49200d4d4d210d57522410585325105f532510535b271144662b113e743013448539164f9b441c5da34c2158a04b20539e4a1f4d612c1353662f16736c351a52632d1353612b1357642c134f6c2f14446e3012436e2f12457131137d79391b497233144a703012497131134f7334144d7031138e725847b9746d648b6c53433b6d2d105b823b1947883b16af978f84c1b4ad9e3d903c174298441b47a44b1c46a045194eaa4c1eb8ada597c3b7ae9e57a94d214fa5481d60a84c214c9d44194f9a441a5f88411f9d113d47a831585aab3154579b2e535654af4d2161c75e296dd5672f77d76b3470d2642f70ce622e80d267335ac0562671c55e2f67ba56285ab14f256cb7562b4da84a225eae532a85b0572e79a951287ea24b286b9944226ca04c25659e4723659e4923599f492269a24c258bae592f4c9d471f5aa0492169ac542678a14c247ca04d277aa14c265a9b46205a9b46206fa34c2565a84e246eb455287fc05e2d7cca66329ad9743d9ed16f3990c666334ba74c207aae552c93b9603591b960357dad582f7fa6532d83a5522d87a655307da5522b79a14d298cad593381ac593280a7522c709e4c28729a4a288aa2512f6b96462671994a286c9749278c9b502f81994d2c8e994f2f768f472755823b1f618b44246485402256873f204d893f1f418c3f1d469241205ea35028619d4a2651893e1e54813d1c747b3d20656c351a746e381d5e6430166b6330184e5a29135d602e1751632e14526632177c723a1f7274391d72753a1d6e743a1e596e341866763c1c787940205f7c3b1c9ea559336faa552b74c3633460c962306bd0693371d16b366ec967355cb3542a53ad522863ba5f2d5ab55c2b6ebf63307ebe66369ac76e3c91b762366da6552c6a9e512969984c277f9e522b999f5631828e4a2883864526838243247d7e4123767d4023858546266e7f3e219691512f888e4b28938e4b2a8a8c49288b8d4b2a6f814021728643237888462577884524758a4a2a687f3e216b844022848e4a29858d4b2975894526a49552327e8c4828628541216184401f79924b2797a0532e789d502878964b279ca65932adaa5e37969b513086954e2c6984402266864023778b472886934d2b8b944d2c9199502e989b533054823e205b8542234f7f391a5688401f69894122af9f54349f9f543361904423749a4c29649849266aa04f2b64a04e2a65a4512b6ca8532d7eb15c3363a6502a8ab7603871aa542da4ba633ca7bc653da3bd613b9abc643b98b15c3695af5b3589a4543194a25332798f46265c76351a706a2f1856562410654c210f5e4c200d5f4f220e444b1e0c44491d0b4c4b1f0c5050220e6c5727124754240f5d5b2c1353592811575525106253261163522712554f250f534e250f685026105b4f250f614f26103e451e0b4e4f240f56562611595e2a1278662f17616a31176373361961823f1c5789401c5f99492264aa532658a650246ca854284a9b481f4b632c135a683218656b34185b6831164f642d134f6a2f15436c3013416f30123e702f11537432135f7634154b7432134a73321444713012477231124b733314696e42299e6c665d8772584647743213447e3614578e3f18ccc2bcafc0cec7ba4c9c431b3c9b42193da3471947ae4e1c3eae4e1bb0c8c0adaec3bba85cab4e205aa84a1f4ea1461c4d9b42196d8a4926a212414c9e123f4b665c3f2d6d6f41299a1f3b4279674c3964cd622c61da682f72df6d337ee3733a6bd8673282e4743c6dd5642f6bd4653158c3592953bc542665c65e2d5fbc592d6fb9582d74b8582c7fb5582e7faf552c66a34c2677a8512a59a14b2268a34a2465a44d256ba550266ea54f264ea04b2065aa552563a750227da34e2660994521749d49235c96421e5596431d629f48236fa74d2578b3562a85c2633194cd6b3871c2612e3fa74c1f45a94e2155ad52237fad542c83ae562d8db25a3188ad572f7fa8532d8dac583182ab57315e9f4a2480b55d3167a44e285ca14c2663a34d2765a14c274e9a472165a34e288fad583286aa552f69a04b287ca2502d7fa0502d7f9f502d6a97492762904424809c512d7a96492b48893d1e759f4f2b589a48245f9f4c2662a14c27589344235688401f567e3c1d7a7c3f2243642f165e6b351b776e381d4a612d146366321946602d1344642f144e6932164e6b34176074391a6b773c1d557037195a7136196072371a6272371c708743236c9c4d2762b2562b5dcc632f50e26a315be36b3464e26f376ddd6f3865d167335fc762305ec15d2e68cc68348ad7743e94d97641c1e7844fbadb7b4a6eb45b2f51a34e265aa350288eb360369aaf5f368da0552f7a924a286482401f7d874425808948288a864627818949289091502ea9975431808a4726a294502ea7965330878a492882874626858c4827a096532f7985442684884728768a4829838e4b2a7b8946267c8c4a29868f4a296f8843235f88422259863f1f8a98512ea4a7593464984b247b9c4f2a62914522819f512d7b9b4e2c839a4d2d819b4e2d849a4d2b658d442473994d297d9d512c80a0552e879e54306f8f4828608b4324538b401f528b3f1e74974a29799c4f2c789a4e2b6a994a2869974a2a649c4c2970a2502d87b05b348cb4603875a3502d77a8542e8eb15b35a6bd663da7b9623c95b55d379ab6603b7fab55328daa55336b95482678994a297c93492888934a297583412261703219506028125151220f46481d0c494b1f0c40481d0b46471b0b4d481c0c674d200f534f210e6d57281359592913565c2b135e5d2c135b5928115a5829114f50230e444f230e4f512610474d230d574e240e4f4d230d4b4b220d5c5929125f652f154e6a2f1457763719577b391a6f8541205e8a421e7fa0532a78a14f2861a6512774b05a2b6ead5a2b4c9a4922706c3318536830156d6d34185b67301558662e1546662c13486e301342743211397231125574311350763111567733134a753213467431104d7a38145c7a39165a753e23b270695f9d6e6258537b36164b813816528f3f18bdaea99ac8bbb6a83f9b3f173d9e411844ac4d1b3fb2511c48bd571fb1aaa1939dbbb1a16ab151224aa5491d4aa0471b4b9b441b6f6c4730a81a444c5890401a6295431d569c451ca42e4647a122484f62c25a2959c75a2976de733c6bd8693175d766316cd6662f6dd969315dcb5d2967d2632e5fcc5e2a66ce602b59c862315bb452295ab3522669af532767a9512763a64e257dab522a67a74e254a9d451d4a9c441b5aa34c206ba94e235aa74f215c9c471e7daa562987a854296a98462262964421518d3d1c5091401e5b99472260a44d2571ac52296db4552977ba5b2d419e462044a14922429c431b46a0481e61a34c2375a7512a7eac552e4697431d66a24d27529c4722539b4722529c4822509d472261a54f2861a85129519d482280ac572f69a54f278eb05a3290ac573289af563087b45e3585ac563094b55f3777a4512e83a552307aa2502d5e984826759f4d2c679f4d296ca2522c69a5502966aa5328449a471f518e412059853f1f5a7c3b1d73763b20566832196c713b1e646e361b606a3219786f381d74713b1f5c6f381a6571391b71773c1d6a763b1c6e793e1e476b31155b71361a6972371b6272371b848f48266ca6542b6dc1613276eb7b3f65fa7c3d6ff97f4176f7824364e575397ce1784158cc673166d8743964d26c367fdb753f97e77f49b4ef8852b3eb844f83d06e3c68be603181c4663882be65377baf5b3173a4542c69964b265a8541205b83412166844221848e4b296a8544236882432454783a1d6c824021948e4b2a9c904c2a848b48275c7f3e1e6485432094934e2c96914e2f7a86462881894728748845265d813e1f85904c2b9694502f788e482688944d2a5d894221628e4625b6b1643bb0b6683d9ea85b355f8e43228ba0532f929f52308d9c4e2e819b4e2b74984c2974964b28789b4f298fa65830799f512b769c4f2c8aa154316a9d4f2c649a4927609948265f9c4c285e934525719a4a2980a1512fa4b7653c91a8563384ad593486ae59349ab55f3a82ad5a3477ab552f8caf5a357eaa552f8dae5a348aae5933a7b9623d8eb15b357a9d4c2b669346248d984c2a69833e20557434196b6d311b63662e17555a27124b4b1e0d41461b0b40491d0b3b471c0a41471c0b524a1e0d534e210d5c51230f735425116b5927127d5d2b14685a2812615a2a12615728115f56281155522610484f240e585126105150240f444f230e6250251052602d13647235195c82401d65904a2360904622578d421f58914520699d4f26689d4c257eac582e6baf5a2b6ca75528529d4c215b6c321639652e13506a31166c70351943652c12546c3014386b2e11326d2e1039713011477533124779351346783513427634133e75300f46783212467531134a753114946f685e4e7132164276331441843a18488f3d1863a6725483b3aa9c45a4461946aa491a40a7451950b5501e69c45c2597ada2949cb7afa081b756274da5481b3d9c4119429b431a7a6f4932931640486095451f5599431c4a9b431a5eab4e2261b1562967b755266ac7612d7ad16a367dd46a3464ca5f2b80d8693384d86b346cce622e64c55c2a66cc602b7ad46b335ab8542862b051275bb2552a6cb0552a60a44d2464a850276bab4f2657a3492047a1471e469e451c75aa562a7bad54294d9e471d5f9c4821458d3d1862984620659645227e9c4b27679f4a255f9845204e96421e5da8502566b0552867b75b2c6db3592d52a24b234a9d4621439e471e439b441c65a24c275fa04d2778a7522c5c9f4a24559745234d9c4822559b462378ae562d76ac562e619f4a256ea64f287aa5502b8eab57308aa4522e7da14f2b94a65733749c49297ea04d2c5892422174a04e2a779d4e2a7da3512c6c9e4f2a649c4a275498452255974623559f4b2554a24c244a9c4720478f3e1d588b3f207f8d46276c7c3d218a763f246b6d381e666e381d79753e206c71371c6372391b5b6c33174f6d34175a733a1b557036186472381a5a7238195a7137196b753b1d72783c1e567237195e8b44225aa3502676c8663563e1713693ffa0588fff8d4d6ff27d3e77ee7b3f77e47d4052c05f2f50c4643169d36e377fdb763f84dc784293e07a44a3e07c488cd6744176c7663677c6683874be643570b25b30609e4e27639a4e2670934b275084401f50823f1e58823f1f618442215982432139723416607e3d1f9f92502d9b924f2c968f4c2aa7985430a69d5932ae9f5a34b69f5b3799985331ac9b57348f8f4c2b7e8d49298e95512faf9f5836a69c5531718f48255e89412181964d2aafa65935a0a455327f984c2a79964b295e8c42227d95492a6f9046267a934928618c4422668841207f954b286b92482370944a279d9d52309c9e53317d964b29588e43216d994c29669d4c266e9b4b2978a3512f89a8553389a9563272a3502c75aa562f80ac5631a3b5603d73a34f2d65a8522c66a8512963a24d2867a6512b69a34f2b81af5a3368a24e29829f512c718d4425868843257875371c52622b1469632d17725d2b167d5527154e491e0e41461b0c504b1f0d47481d0c51481d0c494a1e0c544e210d4e4d210d645425115552240f655627126f5b2a136d5c2c1363552610655527116b552812645728115a5627113d55250f4f5d2a12886a351a666f3418607d3c1c6b8d452261964a246da1522a679d4e26609a4a24649b4b256a9e4d286ea4522a89b25f3276a9562b66a352284e682e1446682d13516c33164e6a2f13546b2e136170331657703416457233134e7534134e7735134d7734124d78361438702f1044743011547531134c74311272793617867972656d845b43648b421badafa99b74a86d4b65aa6b475bb2522154ac4f203fb14f1d4bbe5c234bc0582256bc5523b4b1a8999bb1a89a7aba56275cad4f2152a64a1e5fa74c2062a64d217174452a753f3b32627043293c964219439e471d8425414663b859284db151224cb253243fac4d2056be57266cc75e2b77cb622d65c85e2b4cbc562357c35d2778ce643079c360325fb0552a62ac50265ba94f254b9d461e66a94f2673ad53295ba74c2167a94f23439d441c509e49218eb35d2f85ae5b2e759b4b2444853a1776964723749343226e94432264984722569a47205a9d492160aa532874b0562a57aa502565ab52296cac532b53a54e2652a14922529d47224e9c482252954320629a45236b9f4b2883ae5a3073a14d2873a8522c6fa8502c88b159326ba8532c64a34d27729d4a286a98482477974a2780984b28909d502e779a4b2a7293462666944724829e4e2b568f4321599044236f93472968974a275d944624528e41214790401e489a47204696431e418d3d1b5c8e422165894321747c3e218a733c227d6f391f93763d237c733a1e71753c1e6a74391b71773c1e6174391a546e35176e743a1d5b7037194c70361772753b1e5f73381a6b753a1d627a3e1d6a974f2666ad572b5ec5612e5ce46f3568ff874271f87d4087fe894a7df989457edf783f5fc7643165cb67356ccb68367fd16c3a83d5703d91db784394d9764287d26f3c68bf5e3070c2623265b5592e6fb0592e69a4532b7ca3552d73984e27819a522d6c8d4725728b472685904e2c9d94502d4b76371a708240218c8c4b29858948279c904d2ba697532f9a95522d92924f2b868d4a288f8e4b2b8e904c2c9497532f788d4827818f4a299696502e90964f2c487d391a649147246f9b4f2893a859318e9e532f80964b2b78944a297190462651833c1e527e3a1c537e3b1d708b45256d874322798f4a247d904a267f8c4625bd9e5836b39b543463863f2168853f235b853e1f5c8a40226f924527759449296f94472996a355339fab5b3897a656347d9b492b8ba1513096ab5a3768a04e2976ab562d85b760339cc1693c73ad582f75af5a3179ac572f789a4c2875874223626e32184c59251055532411555223104e4f210f45491e0c51481e0d40451b0b574b1f0d654d220f43481d0b3e481c0a544e220e4d4e220f534e210e594f220f5a522410705828125e592a115256281075572b145150240f605c2c146b632f1550652e13536f3616737b3e1d6885421e6488421e69964a2284a2532b719c4d2877a2522a829f502d59924421639b4c2476ac592c76a6532972a451285ba351246f6b3117516a30155d6e3417627034165c6f32154b6e31134b6b2e113f6e3112417132123d6f3010487433124773331248723112547735155577351444723012497433144473331369875c41a0b1aa9aabb2ab9e87baa7935bad512153b5542056b859233eab4c1d39b050204abe57225ac25a2584ba78528abb79546db6562561b1522359aa4c1f54a84d2051a44a1e5d7c432665694029686a4129686c432b656a422b3e9d451b46a24a1e43a84e2042ac51222ea1461948ad4d206dc25e2c73c7622d72c7612d82cd663187d6723791d26d368fcc6c3776be5f2f87bc5f3171ac532964a750276fac532984b1562d7cad532952a0491f4a9c441d6ca24d248ea6522979984823688d422060883f1d507f38195d843a1c57843c1b598a3e1d4d8d401c5390411b609e4b22569e49205ba24c2494b059317eaa532c62a14a234c9b451f599e4923529e481f639d4825579a452470a14b286fa34d2966a44d2864a64f2870a64f2988b15c3464a24b2755a04b2456994720548f411f5a8d43205a883f1f709147265c893f1f759148257c92482979934728719046255a8a40226d8e44267f944b2b7f92492b598d4323488d3d1e58994823589947235291431e5e8f4522678642215e753a1e786f3a206667321a726b351d85773e217e793f206871361a77753b1d76763b1d77763c1e6570361a4b6b32165a72381a8b7f432375783d1f69763c1d6a7b3e1e64924a246db45b2d6bd26a3465ee763a64ff803f70fa7f427cfa83458ef78b4981df794076cf6d3a6fc5643690d874428bd5713e77cc69388dd5714084d06e3c7ecd6c3975c767367bc7663764b4582d6eb0582d67a351296c9c4e29749a4e2971964d2977954e296d8b4825597e3e1f97904f2c838546268a884a29a08e4e2c8d86462689844525848545258c884827828746269e92522fb0985834b69b59359c985430768e4a2779944f2b959a532f6c8d4624628a4322658f462371984c28709f5129689248265e9046246d9046266791472558863f1f4e7a381b4a7434184a743418667c3b1d80924e246c7e3d1f73803e21b9935132ba914f32a08b492c5378371b577c391d537c381c65833d219491482c708a42238b964c2b899a4d2b79954a2779964928a2a558357fa0512d84ad5e3288b05d318bb36033b1be6a3c89b25d3272ab562c92b15e3471974c26687f3d1f616c31175458271065522511554e220f44491f0d514a1f0e56481e0d52491f0d5e4e220e5f4f230e5e4c200e6c5023105b4d200e5c4c210e46481d0c6a4f2210484c200d5352230e70582a12665527116254271167572a126f6633177a72391a4d7537164d7b3a18708e4822869b52296394492269994c246a9b4d27729c4c277d9f4f2b79a0512c5d9346235e9a4c24669f4f2781a3532b679e4d25599c4c2266682d13566a2d12706f3216646f32155b703315516e30135a71321453713313436c2e11576f32154b6f31133b7234135c753515497332134c7231134c753513527737154c7232134c743213478239165396451c619f461d5eb152225bc25f2458b454224db24f1f4ab550214eb9532257b9522060ba542364b9562468b654245aaf4f204ea94a1c55a74a1d4da5491d58a64c1f4299421958a54c2051a3491d62ab512555a44b225ca74f2563b1582b82bc5e2d38a0461b67b7562672c2612e56b4542477c15f2c75c05d2b72c1602b73bd5e2b6eb457286bac502570b0552975b0572b5da74e2462a64e246fac522763a44b2236923c1850a0481e5ea550226ba15024638d411e60843d1d597d3819537836183f743214457333164175341659863f1d5a8f441e5b9a4c1f659a4b21679949238da5542e92ab57305298431f5594422146933f1c4e994420679d48255e9c4725599a462376a6512d81ac542f8cae58326aa14a2778a24d2b7aaa552e529847215e9b4921799e4f2874994f2762894321648c45236e8f4723688a42216c8a432456813b1e4e7e371c638842235d853f1f4e803a1d4e803a1c52843c1d49873c1d6c9c4c2773a150294c8c401e52873e1d6384412066793d2157632f186566331b5b6531196e6f381d6a753c1d5971371999804828586e34176c753c1e79763b1e516c32175f763c1c7d7d41216f814320667b3e1d7387452298ac5d3171b3592f84da703c79ee794256e96e3470f67d3e7efd87458bf0814579d56f3a68cd6a345cbf603074c465348ace6c3c8ccd6c3d92d4723f78c8663575c463336ac05f2f62be5e2d73bf613267ac562d63a7542a609d4e275c8d4323598e442269914b26708d4a265e80401f48753819677c3f1f727f4222958647279d864727c49255329f894e2d787c3f217b7d41226a7a3f217f8143248a8c4b2a818c48269796522f8a96512da29e56339099502d648c46236e9449268b9e532f639248247c9a4f2b6b964a2775954a28698f45245d853f20647e3b1e4f6f32184c6c3117717b3d1d7581411e6973371d7d7b3e229986492ba0834428988144285071341a5274351b5577361a517535199c8c482a948a4629b0934d30667f3b1f6f8641227e8d472883914a2a7c9049289db16436a7b36436b9bd6d3d98af5f338bae5d317aa8552c759f522962873f1f677f3d1e6f73371b6b602d154c54230f6656271256522410645225116751230f504e220d5e4f220e6251240f534f220d644c200f684e220f4f4b200d654e220f725125113c471b0a725628126055281162552911605428116a5d2e144e643014897e40216b8d492168954c2460984d225e8d44206c974c25759d502873a152296f9a4b26679a4a256395472368934624689b4c276d9c4d287da04f29689b4a24569a49224f682e126d32180b7332180b7f34180c7634180b6d33170a7a35190c7a35190b7b35190b6b32160a4d33170a5b35180b86371a0c80391b0d6437190b6c391b0c5f38190b683a1a0c6337180a5a38180a5838180a6c3c1b0c6d3e1c0d7d3c1b0c713c1b0c653d1b0b64401d0d88411f0e7b401d0d6f401d0d7d401e0e7d411f0f7a432010764320107c4623126d492513734723125d6a2e14626a2f15626a2f14616c3116646c31165c6a301452682e158a76381c6c6e311768703216737635186c75331667753417627231146e7936196a7936198d803d1e9c813f20a5803f218176371b726f33197571351a8671341a676b30165a672c145d692d14656d30156972351764692e1552662b1260632912586129114e5e2710475b2610475d2710466128105c672d136c73361660652b135c642a13a072371ba470361d9469311a4d5a2510565c27124e58240f615c271289622b15685d27127d642c147b632b136b5f291271612a13946b331979682f15746d3216726a2f157d6b3116966d331875642d1468632c1283652e156a622b1273622c1466602a12595c260f77602a13695e28124b55220f665a26115e5724105856230f72602a1276622b1361592410825d28127756230f7450200d58481c0b7a4a1d0b604a1d0b634e1f0b8253220d7652200d7551200c7451200c7a53210d7752210c554e1f0c554e1e0a6e54210b935c270f6a58240d745c260f795d2610795e2711825e2710805e2810665b2610725d2810775c2610855d260f775d29116a59260f6256230e7056240e7a57240f825b2710835b2710835c28107b5b2810845a260f6254220d5e52200c6554220e5e52220c574f1f0b574e1e0b544c1e0b5e4f200c6f51220d6950210d5a4c1f0c8b56240f975524108e53220f9f552410975626109553230f925424108352220e875423108b54230f7852220e7953220e985826118a592610945b27116655220e7157240f7456230f5c55220e6654220f6556220e665b240f736129114e5a230e5a5e250f5f61270f5b5f260f6162260f90763515987434166b672b12866a2e14956f30157a6b2d137a6b2e147a632a12595d250f565c250e555b250f5e5b250f7861291184622a127a622a12695f2711615d260f73632b1374602912876c3115756b30139e71351768632a116e642a11615e280f6d5e29106c5e2810655a240e6057230d695b250e725c250f685a250e605b250e5a58230d5758230d5956230d4f521f0b5c52200c55511f0c7a58240f7553220e7855240f6750200d6b50200c6850200b7358260f81592710945b2a12554d1f0b7d54250e6650220d3f4d1e0b4d4c1f0b5a4e210c554e210c4a481c0a5f4c200d62481d0b67481d0b6b451e0c6c431c0b5c3e1909573c16085c3f190961431b0a67481f0c66471c0b52431a0a6686421c818c4720af964f2681823e1d7f87421e577a3617738b441e6687411b6e87411d437433155a753518587838195a7737186c7d3b1b7686401d779648235e9e4821489a441d36943e1836903d18348e3a174e9e461f4ca0451e42a0451b3e9e431b4cab4d2254b654254faf4d215cb757285eb755275abd5b2b6ebb582b7dc05e2e87ca653389d16b3695d6713bc8e67f4675d36e3468cd672f71c8622e7ac762317dcc633075c4612f76c45e2e63bc582d6ac15b2d59bf592c4caf4d2337a8471f40ae4f252ba4471f329d3f1d40a2431f72be5d3364b0512982bb60358cb6592f76a54f2872934424799548237d8f432165873c1d62833d1f7a843e21737e3a1c586f30167b874122517d36196d82391b6981391b647d381a5a7a36195a7d381a697f3a1d6c803b1d567e3718326d2a11487a3718546f3116315e26104f642c1452652d1456692e15616d3318626e3319697334187877391b6b76371a5c7134185c78381a7285421f7087421f6a87421e6886411d507f3c18577e3b19517938194b7d3c1b5783401e49843e1b5987411e738642216b7f3c1e3d7131143f7534155579371a56723418636c3218445e29113d5a270f425f29115369311666683017876f381d746831186e6b34175d672f15856e371a766c34197669331952612b135d632e15465e2a11415f2a113f5e2a1146622e12265c270d536a321570713618728b451f7fa5572a7cba643280b55f2f6fb25d2d83b963328dbc633390bd643392c066337db6602e6eb25d2b63af57266fb45b2963b1592772ba602b91c46b3371b65d2b8dbd643186c0683090bd683171ab5a276b9e4f2481a255297e9e532a5f8c441e5e86411d557c3b187882401f757d3d1c8c83411f8880411f8c7f401f8b824320877d3f1e8b7d3f1f937f4122908242209985452291834220888341209d874623938546238c81411f8982421f95894622948b4823b4934f298c8d4a24b3954f2aa9904a279c8d49257c86411f7787411f7985401e92904b267b8b462168813c1b60803c1b7685401e848945228e934a248d9b5027aca5582c83974a24919f5028879b4d26909a4d26759548218ba1532679984c2378994c23699b4d20729d4d228fae5b2c6494461f6c95492277944a247e90472564863f1f5d853f1e5b813c1e54803b1c5e823d1e557535164c622a124e5826104252220d38501f0b404e1f0c5456250f5d58250f5e5b28115054230e835d2b147c5c2b145c5a29117a5a2a1363572712665e2c12625c2c13cb6a361b615b28105a54240f6f5524106d552610705627117f57271286592a14765828136f652e16536d31164b703016486d2f1534672b103d682c1240662a11647132187c592a165637170b612410085b200d0652200d056b240f076334160a52481e0d79662f1775612b16756e3517736e341587673116916933177966301568682f136a662e145e642e1257652e125b652e1348602b0f62622c13425b270f63642d1377753719717d39195a843b17567f381843793414427731133e76301148783213577e371745702d1232702b103b742e11597c3618547c37175f7d39185c77361660753516867a3b1b5c733416607e3817798c441c588339126189411aaf8747227d6b3417585f2b1195642f187d612d1579612b14846a3217836831176e5f2b14695f2b15575b26124e5b2510415e2911446129114a682c133961240f646c2d168274361d977a391f8e783a208072341c746d2f19776c2f197470321a5f692c167673331b7671331b7c70331a626a2d165e652c1564632b156b6830166e662e177768301966602e1580673219705c2915605826135c5a29144a5926113d57240e565f2a15405d2a134257251058662e17516a2e175c6f31185a71311657753418878743218a833f2078854221547b3718708b431f64853f1c5b89401b5c873f1b708f4620557e3a196876391b6b6e361a596f37195b7035186378391b3f6c2e13728240215f823d1d6087411f597e3a1a467332157a8440205d78351936672a11457231146e7d391c617b381a8a89432272853f1e69813d1c6d813d1c7f81411f857e41217b6e351c58632e1653632f154a5d2b12495d2c1252602c1241602c1147642f134a6730145f69331681713a1c7b71381b86763f1f75703a1c80753c1d7873391b84763c1d757338197d73381a5d6d35175f6d361755733617688f4a1f609c4d216ea1512371a3532274a555246a9a4b1f84a15224879f502275954a1f5b853e186c85401d60803b1867803d1a5a76371755733415777a3b1a61733517647436176974371868763b1a8b7a4020aa7f4423a67e42229b773b1e9a743b1d896c351988673318866c3518776630147d68311585773c1c88793f1f96773d1da47b4121af7c4122a8753c1fb771391d9a67311896643117815c2a13875d2c15895f2d157f5c2b146354250f6553250f6852230f745427116650240f785528118a572b136b51260f9454281289522611704e240e50471e0b5d4e240d8a562911834f26107246210e7b44210e7846220e9a4924107943200e8d49240f563d1a0a603c1a0a5937170a503416095f39180b633b190b6a3d1a0c5a3a180a6d3a1a0b6a35170a4a2f1308492b11075b3014087134180a5c311508652e14085d2a120757260f0658240f068026110857220e052d1f0b0442220d054c240f0663271007802811085f240d057e250e0680240f067a230e0684220e0671251007812611086a38190c6d4d2310134a1b08425f28113e622a12545f281051702f146287391a598f3e1c57713117495726123d421a0b57461d0d63481f0e62481f0e494a200d494c200d4e411c0c6c7a3d1a81773a1b7272351776723719586b3114597035158880421d78783c1a78783d1c81763c1b80753c1a7d6d35176c673115746b3417576b3114638b411c5d9b451e4799411a42963f19529c451e479941194b9d441c5aa74d214d96401b3f96401a3e923d194a9b431c5baa502058a95120599f4b1f508f3f1a5d91411d519446205f9648215e95441e338539173a883c17539a4d21b2a7572d5f8d421e5c833a1a6a863b1d819246237e924522859547247e9245237b8c3f1f69893f1f5a843b1b27722c10608a3e1e43863a194d883c1b5f883b1c818f43246783391c607e381d4278371a49733218446f2d145f7633195f723117567232176474341959723318546c2d145a6c2e156c6a301765612b1553552410595b281362632d168971371c64632d1560652e16655f2a155d5c2915645d2a1550542511364e200e4351230f57602c16596e32185b77391d46743619477032175c79381b5b7a381a6e83402057723218487534176a823f206d88411f5e89401e5890441f558b401c5d8b45205787452246753418457e3a193b7734153d7e37162e7c361557873e1c6688421f647b3a1b577437196676371a61723318757a3a1d617133194f7032166778391b727d3a1c6b7e3c1c537a3819607b391a7e84411f6c7a3d1c6c6a33176b5b2c155d5b2c13495829104e5a2b11535b2b12495b2c11505c2c124457291055552811765b2e16896233198361321981633318856a3a1c79673519946b3b1e6e633318655e2f1453592810605c2c13677c3e1b70a6572875c46b327ec4693483c86b3383cc70357bc5682f7bbf622d84c2683090bc663078a9572a749d50257f9e52286a8c452073884420597c3b1b617c3d1d6a7b3c1c5d733618627438196473381977783c1c907d4120917c3f209f80432294753b1d92733a1e91733a1e91773f208f723b1e84763d1ea8824727af844726bb874927c9874a29ac8143239e7d4122ad7c40229571371db1783e219c71381c7f6d35195e642e136767311763642d1473683015906b34197d6731176f622e147765311664612e1370622f147b643015715f2c14535a2a1073602e148d65311669622f1384603114855e311587592c148b5b2f146f572b12865a2d14765328116950250f5a461e0c6f48210e60451f0d53401b0a6a471f0c72431e0b653d1a0a6b39180a6f39180b773f1e0c7941210d5d391909593617085b3416096132150967311509812f14098330150a6a2e1308482a1006452b1006402b1106452e1206482e13066b2e1208743013087d301409732e1208632e12086c3013087c35160a4a3b190b2c4a1e0d335b2610296027105c6f331b7573381f7082412453843c1d7996472561813a1d6571341a54642f1649602a136d6c341959693018706d331a6c6f351c676d331986592a15837e3f1d5e7839176f783919537539164871351466743618637c3d187e84451d8483441f7b7f411c75763b196f733a18837a3f1c877d401c6787421b5a96441c4b9e441a60a94c1f5aa64a1e409a411765ae511f5faa4f1e65aa51215c9f481d529b411b63ac501f5db2561f59ba5d204eaa4e1e5aa34c1f4b98411b4b9b451c589d481e719d47223f91401a2f8938153a91401a39933f18459c46194298421973a1492269a44e2279a64d2673a7502772a74d2669a54c256ca951272f8f3d1a2f8a3815338c3d1938903d1a37913c1962a24d255ba14c25629f47226095422160924020578b41215181381b7a90442564843b1e6580391d72833c1e657e3a1e687b381c9b8441247376371c6e71341a826e341b6a672f196a6a3119706c321a7b74371d636c31186d6f321a61672e1666652f177365301a455625115b5b2a1558582913686431195c6f361b5970351a5973371b62793c1d42703216547134185c75391c4d672e16466a3017486f33174e77381a59833f1d658f4621899c4f296d9b50274f8f441c5b8f451e4e843d1b3a813a1834823c18408b411c4d8d421e62823c1d6f77391c7672381c7671371a7f74391d78733a1c78743a1c616a3218516930156571371a516f33165e7337195a7337186874381a616b32187769331976623119635d2d1567602f16575d2d14525d2d135a5f2f154255260f4956291161542913605429137260311790713b1e736f3a1c79743e1e987740227e703a1d6567321753622f1557622e15475c2a116285421f6cb15f2c87c46e386ec0663080c96b3571c0612d8cd0703792cc6e3696c96e3892be6734adbf6d396ea0542773964e2474934d256f8946226f813f1e69793c1d6c73371b6470371a6970371a7471391c74713a1da67e4526907840219d7a422298793f2190743c1f9f7941229e7a4223a37b42237d723a1d987c4322b4844928be844828c4884c2bbe854a2a917c4122b5854929c58a4e2bb2834727af7e43259b7b41237f773e1f6c6d34197772381b776f351981763c1e786f361b9b783f21696d351984743b1d6d71371a616b3317656c3318636d331764703618807d411d9b7f43217e773e1c74713b1a95773f1eb37d44246b763e1a8678401d9e7b45217e6c371a8d6b371b956c371b775d2c156953261056461d0c8c4b24106e441e0c5e431e0b7e4a240f8f4e27118747210f523d1a0b553c1a0b5d3d1a0b603d1b0b903f1d0e9b3e1c0e6338180a5138180a413313083c3312073f351507463616087539190b7f3e1c0d883d1c0e763b180b793c190c86411c0d5e3d190b5e421c0c40461d0c3255230f3c692c15406f31174773351a747f3e22597a391e4e79361c778c4726718b45255f7e3b1e3e75341844783618447835185d803b1e64823f207c904a2a6d8c44248c954c2863753718526f3214496e31144f6f321551703314567838166682401a6283411a6584421a657f3e19727b3c1a7a7c3f1c628d471b7d9d502376a8542445a24a1c5aa94c1d7cb0502254a84b1c49a0441862b1562263b0552061a74f1e55a2481b73b85c2470c2672562b156204ba34b1d499c451c489a441a60a14a2087a44d25739d46205ca04b20579b461f398f3b173a913b1539923e174b9c461b6a9c461f689d472070a1482267a045206da34a245fa64b22529e461e59a24921258c3713278c3b17338c3a182b923f194196421c529d46204ca048223c9d431e67af52265f9c46223e87381841873b1a397f33163b81361757823a1c7f833e22787c3d218f8140229e8645277b7a3b1f7c75361d7674371d6a6f341a6271341a7974371c7d77371d5f6f311873763a1d6671351b616c31196569301856642c15646a30196168311981743a206470371c5470341a58713419516c311750733317527535184b723418466a2d1539672c1450703418457435188e8a4626b79d5733649249246d984d256e9a4f2548883f1a40853f1a3a813d19387d3b182c79361449833f1b6481401e71723a1c7a633019986d391e8f6d381c8b6c371c8a6d391d7a6732196e67341a7069361b80703c1f5a673016626a321760683017576431177d6d381e6c6532197666341a43562710535a2b13585e2f14505e2e134e5a2b12635c2d1561572a125b62301663783e1d78934e266f954e26759d52287ba2572d789d532961954a2262954b235b8e451f558c441d62a5552770b25d2d60b35c2a7ec4693489cb6e3881c86d368cc96c378fcb6f3a88bb633383b8642f8db0612f7fa5582968944c226d904c237b904c2376884622808545236e783c1d6d70381c6c6b331989743d2092763e20796f381b9c79422296784022a4794023ac7b42259f773f229b7941229a763e20b97e452799794122b37e4424be824929a0794124be80472abc83492aae7f4426a47c412398783e21927940238e783f2291794022817a40219a7b42238f79402174733a1d6b723a1d726d361b6e71391d5b6e361a5e6c341a67743a1d837a3e2176793c1e6a783c1d81804323a78b4d29968347244d71361690894a25988f4f28bf9d5c32848e4d25b497582d9b8f5028838548228b8849248a7a3e207b6731188f542913764a210f864d24106b4a220e7153280f7851271055451d0c6448200e774b2210664a210f854a23118d4921117246200f5e421c0c4c411a0b4f421b0b4340190a413f190a54421c0b70451e0d79461f0e8d4b2312824a21107c4a2010804e23117f5123125f5224105c59271245652a134d7232196b823f23638240226a813e2279854226487233195c79391c6b813e205e813c1f547d3b1e3f7a3619477f3619557f3a1d608843225486401f6b8b4424848f472641682e112a5d260d3262280f566e311558723415587335178c8a491e7a85441d7e84431c627b3a166d8240197d83421d619d511f72ba632777c1632958b2542064b6592167ad4e2070a74a204fa4461a62aa4d1e5fa4471c66a9501f46ad4f1a57be61207db75d2467a34a2141903e17539a451d59a0471e73a44f266ea04a2274a24b225296421a4498441c3d903d1738903c153f913c1751933f196a9f491f85a8512683a951296ba149236ea2482478a74c2568a74f27529d461e328e3915338d39184c9944204394411b4196401a56a14c255ca54d262e8f391770ad5228609b442054923f1e2e8234163f8337175387391b5c833c1d5078351959723419697132198e803f218b7b3c207e75381e8274371d696e33197474361b7575381c707a3b1d4d6a2e154a6d30155a6d3118466329145d6e3318596f34177a763c215a6c31196d73361d87783e237572371d7275391d6273381e6b7a3a1c5d7b3a1b44713116427536182d6f2f14387232153c7532153e7c381848853f1d5389422063944c26659249234d8b441f4988431e3d803d1a3b7735153976351540753516436e3316636b35186a612e16886e391e956e391d7f68351a786533187d6433195d5b2c1474653219696432175a623016585c2c154a5f2c1363602e165f622f167768341b8468351c5657281256582a124f592b125c5d2e146b5d2e16715f2f187b63341a5a6b3317708b492374a55a2b79ae603378b662318fc56c3982bf67355db158286bb35d2c58a6512458ac552769b55f2d65af592a71ba612f89c46a356cbb612d74bc643284c46a3682c46a366fae582a7eb15e2d79a5562984a2582a74985025778f4b24758e4924768d4a24828b492469773a1c7670371d83743b1f786e381d87723b1e93743e2081713a1cac7e4727bb814727bf7f4527ae7c4224a67b412380713a1d90753c20b07f4728b77e4527ab7a4124b07b4325c4814a2cc381492b9d7d4323b87c422794793f21a37d4325907940228e7e46237f783e20aa844926726f371b6d71391b7b763d1f6a70381b606f371a3e622b123a632c128e783d21a58245277f7b3d1f7b813f206b7f3e1f6e83411f5676381937642c114f713717778547219c925229af95572ecba26034b19c5a2e8a9252278a9151268a834622956f3a1d8756281374491f0e965329139852271285562a12715728107d5628137c5426137f5627136a572a147e572a157353271367502210524e2210504e210e444d210e4e4d210e3f481c0c604f231068502311644c210f8652261370502411794c2210794c22119c5f2e1b8968321a636930188d7e3f24687c3c205374351a5c7c3c1f467433194875341a3a7834164b753517637d3b1f7883432365813e2278864124467735181a64260d39773418848b46276485412269803c1f4056240e3b59250e706c32178276371a5b703316416c2e125e7939195a793a174072341227672b0d5b793b17767d3f1a88954c2272aa5b259fcd723290c86b2f75c3662867b5592572b1562497b95d2c71aa4f2377a94e247ab1582679b2582571ba5f2651a64c1e5c9f491f74a14c2373a34d2574a8542976a14c24749f4a235598411c4a933e184396411a4498431b368f3b164e95401b639b451f749a46206d9c47216e9e482070a74e2671a84e2771aa522c74aa512a5ea74d246cab552c5da14a234d96411c4597441e4e9c46204698421e459a431e2c913a16509c441d519d4521659e47244287381a4687371949813518457631165d7c391d507132186a78381c62703218787a3b1f7b78391d726f321a736f321a7771351b947e41237775381d79773b1e577134186976381c596e31185b6e32184c6b2f155b6d33197572371d51652d16666c321991783c2376763a20616e3119737a3b1f5c7c381c4677341637763214347631133c773315387a3717427e3b194884401d47833c1b588a441f5889421f598a441e4c86411c457f3e1b467939193d6a2f1230622a103d632d136768321758622d1462663116756833196f6531188268351b59592913645a2b16525a2b146263341a676533197669361b4d5e2c13525f2e14555e2d156a612f187162301859572a134f5427125356291260582b14706433195f6230166d6e391b717e4221608f49215f9b4f237aaf613288ba653485bd663593c46f3a85c06b356fb7612c69b65f2d61b35d2b72b9602d7bba623173b55e2f7fc067357bbe653566b95d2c71bd653170bf632f77ba622f6cab572b65a2522475a155276f994e25678f48215f833e1e718945216d8442206d7a3e1e5d6c3418646a3218726d361b6f6c361b91743c21947740228671391db47f4727be7f462882743d1fae7e462590743d208b773f2090773f2180723c1eaa7d45258d753c1fab7a4124bb814829b582472991783e229f7c4326bc844a2bbb874d2b88793f1f7e753c1f7a723a1d88753d208c78402272733d1f7271391e3e6430144a69331776743d1f79763a1e917c3e20a88c47269d954b246a833c1a62843e1c5479381864743a1b787c411f7a7a3f1f73773c1e7a80432176854721a991522aa1905229a8884d27af7c44228a683618985b2e157a4c22106e4a210f6f481f0e664e230f755d2d1570612c157b632e168a673219605e2b1381652f177f6330195f5d2b15525a28134e59271168632e16485a28114f592713615a2a156f5d2c156b5a2a14625727127c55271386542816854f24127c5e2a169172371d747c3e22887f3f247e7e3d225975351c3c6d2f163f723216567e3a1d507e391a4a7735194d7433192e6a2b132e6a2b134974351a477333173b692c133d7131166a813f217c8845255d803e202b441b084653240d67662d146d6e33165c6d3015627335166b7437184a6d3114516d3013456c30114e6c32136a6f3516857e3f1c8b8a46207c964d1f79934a1e79964c2071994e2186a25425829f51257b9b4b238290422091994c24829749228da755237493461f74863b1c918d412181883e1d68853b1a77853b1c6e883e1d59843a1a537e341852843818588b3c1a44853817478638195d8e3f1d7090401f79954421819b48247e9b4824729946227ea5502a89a54b277a9d4a266f994724488637184f8e3f1e529948245497442050a14a1e2e943c174da2461e328f3a183d923c1a318b3816458d3a1b588d3d1e3c7b31142c6f2b1148722f157a7b3a1e537332185a7232174e713316586f2f155f6e3116576a2d14736d31187c75391d7175361a6873361a5972361a58692d155a6d30164b672b13546b2f1551672d1455672f16686c3319646a30186b6c311980793b1f6b70331a6a71321a4f7132183d703014386e2e12377431132c6f2c10307633142b7834133c7e3a173e813b183f7b36163c7b3716467e3b183c7937153d7435154872351644662f13435d2a123457260f5f642f1652642f1453632e1489703a1d58622d145c602e1568582a15685729144d5728124258281151602f15646533185f653216455c2b1342552611495526104f592b1359572a134852261066592c14695b2e166f6733187e7c4222748849236a8e49246e9c522866a2572964a8582981b562317fbc66347fbd653383bc642f65ae582575b1592a5fa4502267ac56265fa8542656a7522269b15a2958ae56265dac552758af552458aa552670aa54275da04f2273a051256b974b2163954b206e944c22628a431e698b44206e85421f6b75391c676b3418756e371a6e6b3418716b3418766e381b8970391c93723c1d91723d1f7e703a1c7a6c361a86743b1e89773f1e9a7a412097763f20a0763f218172391b7b723b1b96753c1ea5794022a47b4426ae7a40229c793f22c181482985794120977b4121666e34187b70381b7d6f371b7771381c78753c1c76733b1c40622b114d653014576a32164e662d1251692f126b7836177e8a3f1b647b361665823c1a78823f1e8e793e2176793f1f747a3e1f4c6830165e74391b7a7c4222747f44219b834826a8774221985f31178f572c13724e25107b4e2510724c231052431c0c554f230e535c28117d753a1c6d73361a7a763a1e89753a1f6a6f351a51652d1648652c1444642c134a652c144d6830175a6931165d652e1762612b15545f29144e5e29123c57250f7b5d2d1790582916604a200f7a612d176e6e321a7978391e6a77361c7a79371c61743318356b2c121962250d29692c1334682a1335682911587232164d7031165673351b506b2d146173341b516f3118547b3b1c8c8d4b29627b3b1e4f7e3c1d62451e0b644b210c53632c105c6d3113727135166b7035165c6e33154a6d3113586d30146a6d33167e6f3619545a29124a53220e4953220d4b50210c5a51230d554f210d454d1f0b5e55260f5251220d4855240d4c5b290e445a270d5857250f705b270f535a260d5e5f290f5350200c7657250e5c5d290e4258260d62602b10655c2911736a35166e6b3113937a3c19817b3a177f7e3c19737b38167a823f1989813d1b78783517517c38154c7835148c833c1c7d7d371a697e38197078341875723419737434182c7b2f13217d31132e8b3b184799441e3797421c42963f1b60a24b21378936174c8e3e1e4c81361a457b33172c67260e41733115663d1b0d571c0903491f0a0368220c056a240d0569230c057a260e067b250d0670250d057d260e057d260d0573240d055d230b0461250c046f250d057b270f067a250d0569240d056a220d0574230d0562210b044b1f0a03491f0a034f210c045b200c0477210d056e200b04601e0a035b1c0903691d0a04691d0b04621e0a0383200b0460200a036a210b0451200a0384240d0578250c0474240b0491270e058b260d056d250c047a270e056f270d047e2b10066f290e0571290f05862d1006702c1005602b0f057f2d1005912e1106802f12069d301206893011068f32120697351307923614076b301005422b0d0462311005823513077f341407626a33186c82412173a3592872a55b2d70a1582b6da75c2d6bac5d2d60a9562856a6502140963e1955853616647a31146d7731147b73301471662a116a56230e734f210d784f200ea45525129a57261281582611825c2712825e2912a8642d17635824105d54220f705b26117d5d2812855f2713855e2713705c27116d5a26116f59250f6556230f6956240f6553220d594f1f0c5a55220d5b5c250f5f6228105e5a240e755725107553230e6952210d7153220e7853220e8159250f6c58240d7b5e280f8a612b1190632b12805e2811a6642d148f5e2912b4632d158a5927106653220d6457240d92622b127b5e2910885e2911ab642e148d632c127a5d28106b5c270f6859250f5955220c4954220b805b26107b5a250f8f632c1194682e1298703316956c31175e6e34175b6c34184d68301675753c1e997f4526a8854c299a763f20796230167553281276512711614b220f6f4c220f7a4e26113e3414054735130649371507483a170855411a0a49411a095f421b0962441d0b67441d0c6c48200d914b210d8d471f0c90481f0c74431b0a683f1909623b17095135140767371509693816096a371509523514086739180a713916096237160954361609683715096d381508773917097c39170a873c190b723817096e3d180962471b0b6c57240f6c61281169662b1265652f17736e341c7c793a2075864727708343234e7d3c1c4b79381a6044190856421a08583d19083f682d10446b2f106373351465713515546b30145c6d32146c6d321666642e164b5a26114255210d3e501e0a4d511e094d491c084d451b074c461b0852471c0860491d0962461b0953441a084d461c0843441b074c461d0842441a074a491d084b461c0769481d0869441a084d461b085b491e093e4118073d40180840401808454119074c431807645121096653220a59512109504f210a454a1d08464c1e085853220a4d52220b5751210a4a4b1d0855491b095b441808593a16075b4c1e0a3683371721853917288635163788371944923d1b6797422056903f1c638d3e1e61873c1c657f361c667b361c597e3b1e711f0b04452f1105664e200d68511f0c534e1e0b5d511f0b6957230e685b240d665d260e5f56200c6353200c5b4d1e0a564a1c0a4e491c0a48491c0a54491c0a514a1d0a46471a094b44190948411908403f1808303b1506513c1607583c1507573d1707683b16076d3a17084b3414065731120657301206543012065d3113075831130653331205573512055a3613064b3412054b3311056735130666391507633713066138160757361306553613055c3915065f38140663391506513915064d3814054d381406653a1507743c16076f3a1606673b16066a3b16066a3c16065b3c14065f3e14065f3d1406533b13055c3f1506604117076b3f18099d7c40226f8a46236a9b4e2568a45c2c76a75c2e75a65a2c62ab582b5ab05a29598f411e3466240b423b130450310f044f300f04552f0f044e2f0f044d2e0e04472d0e03512d0e035c2e0f047831100460331005773813065936110556371305563611055b3511056637130659351105583612055c37120531310f03513411055933100458341004443310044235110444341004373410045735120554341004543611055c3410044f3512054c3511054637120545381204573a1204613e1405583d1305503c1304503c1304693f1606553f1606643e1707723e1707743e1606774218076e4619075246170663471907614819075e47190753471907504719074f43170658451807534719074e45170662481a085d4f1c08735f23096f6b270c746d2b0f9b6f3216976f3619947a3f217872391eb5844a2a98773e219e703b1f8c66351a775d2f15674f250f5d4b220e72502712764c231057431c0a3e3f17064343190736451906364b1c072e4a1b08434c1c08444b1b084f4b1c08524f1f09514c1c086b50200a614d1d09624c1c095e491b095f471b095a411707533f1707483f1607513f1707513f1607553d1507563e1607493c1507503d1507513f17085e401808613c16075e3d1607563d1607503c15064c4016074c4418075b4b1c0953521e0a4b58210c595f2d133d55260f6965311a7773371d6579391f5e7c3c1f5276371b6077381d5d431b0752431a0765461b0764451a074c6e31126d7638167874371770743918496c3012617e3b1b597d35195a71311554642b104659200b46541e0956522009624b1d0851421806414018063c3e15064c3f1707584118074d3f17074b401807583f180768421a086040190764461c07674a1e07744c1f08694a1e08704b1e095b4d1f0959491d0949471c074d481c0844441a0848451907564a1c09454719083f461a074c4c1e094c4a1c093c45180748481b08494e1d084e5220095d522009564e1e094d481b084a3d1607488539193c8d3c1829883a18308b3a182b8735165996431f659140205f8c3d1d60843a1b7688412372823c21605629185c250d055056210c545e250e5153200b514d1c095b4f1e0a634f1d0a70501e0b6353200b7558230c5e58230b6555200a5b541e095a5a220a675b220a51511c08414c1a083947180748491a08434b1a08504e1c09504e1c09534f1c0855521e0a5d4e1b095d4d1a08734e1b08574a1a074a4315065b43170754411506593f15066240150667401506634015065d3e14054d3c1205533b1205583b13055f3f15067244170773461807724518066541160655411505744517067044160666401506653e14056e3f16066b3f1606623f15065f3e1506483c14055d3e1506543e15065640160652411706524016064d3f150549401506554518065e481b085c5c29117287421e7aa0532a699c52275c9b502478a7592c6fb05c2f5497421c2c6e270c404e1b07512c0e0447270d044f290d044a280d04652f1105572b0e04612b0f055c280e0551250c04562b0e04562f0f056d341105673410056934110556341105643511056b351205643813055f3813054b34110455361205653c1607773d15076d3913064d3a14054c381205453611053c351004503712054b371206683a14066f3d16075f3b1305533a130544391204573e140568411606663f1506543d1405533e1505573f150565411706804016067a3b140670391406724017066b41160677441807654217065841160662421706614217065c411605584318076c481b09754c1e0a694b1d096b4a1c09674e1c0853541c077163220a7667250c7767270d6b672e1491683117af864a24937d4223ab7f4526b0743e228b5d2f1787582c1585562a14735025105f4a220e5949200e6b4b2310444a1c073f4a1a0748521f083f511d08495621093b551f084d5823095057220b4c56210a4b521e0854501d08534f1c0869511e0a634b1b085a461707524819074e4518074b43170757451807514317074d4116074b3f1506473e15064e3f1506524016065b4217075f4317075a4116065841150753411606664318086b461a09604c1d0a63521f0b3f58220b235a230b335f280d3f55270e3b612a117b73361e5b76371d797d3e236f76391f6a73371e3e3513053e391505393a16063f3a1506586f3314707234165b7233145f70321468773817598f411d5d8e3f1d56752f1351702e125063270e6e6a2b10595a210a5954200a5853200a5a4d1e09584b1d0843471c07544b1e0960481c0850481c0850471b084f491e08654d1f09644d2009634f20096353230a5a5121096052210a5a5222096251210a5f4d1f094f4b1d08544e200a4d4c1f0a444a1d083f4b1d08524d1d0938481a073e471b084a491b084d502009494c1d0841481b08764c1d0a4d4d1d08484f1e094b4f1d08658b3f20518b3a1a5893411f3e933e1a44933f1c47913d1b528e3c1c6c8e4121738d42205481391b5f79351a677b3a2045200a034a6b280f726427105858220d4c511e0b7054210d625e250d606a2b105c6c2b10656e2d113d67270d686a2a106d6729107a632911705c250f615b240e5958220d6058230e5654200c4e521f0b5555200c5c59230e575a230d5556200b6054200b59521e0b62541f0a59521d095e531f0a534f1c09534e1c095a501e0a644f1e0b664e1e0b624f1e0c5b4f1e0b5a4f1e0b504d1c0a5a501e0b65511f0b6853200b57501e0a59511f0b6a56210c6f54200b5e511f0b7553200b6c53200b564e1d0a574e1e09454a1b0846481a08444b1b0842491a08404a1b084f4e1d0a5a4e1e0a60511f0a6c511f0b594e1d0952501d095c55200b5d4e1e096556240d60843b1764944c2452924821529148206da2552a67ab592b4084341341772c0f5a4a1a09523813075a3e16085a4318095c4419095c4519094e4418084b4217084b4217084d4117085542160864471a0a56451809664318097044190a6c44190971451a0a66451a0a564418094d461a0957471a096b4b1c0a5a491b0a4945190946461909584a1c0a5d4a1c0a664c1d0b664f1f0c6f52210d6f54220e64511f0c754f1f0c6a4b1d0b634a1c0a674a1c0a624c1d0a684e1e0b634e1f0b7a50210d9353230f8d55230e9055250f6e4d1f0b68491e0b70491d0a68461b0969471b0873481c0978481c096f461b0968461a0854451a0863461b096b4a1d095e481c0955461b0859461b085a4b1c09544c1c0867521d0a635b200a8862250c817837166057250c7f612c139271381c9b783e2195733a1f926a361c92592c15654c230f9e552b14825126116a4c230f674c2310594b220e40441c0849521d073e511e0855521e094a531f08535a230a5958220a52572109364d1b063a4d1c074d4f1d09494a1a084b4819084c481807504919085c4b1b085f4b1a08514518074e4317064c4216064f441807524418074f4216065a4216075d401506644417075e44170668491b0762481c0860461a085c4d1e0a6954220d29501d0820501c08345d250c1b481c091a4319072c491c092a5c270c5d672c1660773a1e7b7a3c22817c40248f7b3d25578e3b16ff3a2e24ff382d23ff392d2343672c114f6c31135c7a3b194e7f3a1760883d1a4aa64a223f913d1a488c3b17567f35154c6f2c0f5b66280f6b6d3013555e250c6f5b260eff312720ff302820ff332a22ff322921ff302720ff312920ff2f261fff2d241dff2e251eff342b23ff362c25ff2f2721ff28201aff241e18ff26201bff0f0d0cff1d1813ff1c1611ff15100cff1b1510ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000f4070301759144246f9747245a984220579c43205e9e47232e843213468c3a185b8a3c1d61843a1c71863e215a7b371c5a7332196433160c3b44190a716929105a65281035eb5b193be2591846923610547c2b0c4d220b03ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff0000005e57230b91924925588a4320538c451f4a8a431e4990451e589f502624742a0d59561f0bff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000f10904013bae44136a5e250d7d7d3614675e270d625a250d9e72391c9c713a1e876b351a9b6b361c795c2c148756281157491f0c7c50261181512612774e2410714c220e50461e0d3f421c0bff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000f2000000ff000000ff000000ff000000ff000000ff000000ff010101ff0e0b09ff0e0b09ff0e0b09ff0e0b09ff0e0b09ff0e0c093960290c4f5a270d5d652c11596229104055220d3352200b2d4b1b09234519072b56210b937338216177381d6c79391f7e7c3d237c7b3b2059863916da2a221aff392d24ff382d2341672d11526e3416577d3b18478c3e16679e471d52bc572b51ba5c313ea54820368935144d7a3012586d2b10566a291080763617ff372c25ff312821ff2f271fff322921ff312821ff312820ff302720ff2f261fff2d251dff2e261fff322921ff332921ff302821ff2c241dff231c16ff211a15ff231d18ff1d1915ff0f0d0bff15110ea90807055c040302ff040302ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff0000006f70331a729046258099472578974624619241226594442145893a1a4c873919538b3c1c5c80371b6c82391e50732f16667a3a1e868340265b220b054c7d33145b6f2c122de6581940d5521538c5481347862f0d557a2a0d6a210b03ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000d4180a03888e4825668b45236e944d265387421f468a431d549a4e244f6b2f15d6090807ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff0000009536140636a43f104a923a10617b36156463270d6c5f290f797237199f7d42239f743c1f9a622f18895729138154261092522510784c200d7b4f24108b522813694c230f4d471f0d45441c0c45421b0bff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff0000007a00000037000000a6000000ff000000ff000000ff000000ff050403ff0d0b08ff0d0b08ff0d0b08ff0e0b09ff0e0b09ff0e0b09ff0e0b09ff0e0b09ff0e0b09516a2c0f5c723213546a2d12375d240d425f260e31531f092747190725521f0a856f341d6177371d6c7d3e216c7e3e20617c3b1e65813818520000006a000000f531281f477031133c72311154843b17589f4e2266ac4e1f51be592a3db24b203cae481f41a341195a9f421b607f331361743012706b2c10ff372d25ff312820ff302820ff332922ff2f2720ff322922ff312820ff2e261fff2d241eff2e261fff2e261fff312821ff2f2720ff2c231dff251d17ff1f1914ff1e1813ff1e1915ff231d18ff0f0d0bff1e1915f1130f0c5200000070080605ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff0000006a703319688a3e1f769545247791452683904728777f3c207a66321570733815577a341468873c20888841265378341b5e7b391e6c7a381f6d632f1a63461d0c5a72321636ef5e1939d4511537b642124ba53c11465e1e073d71250a621d0903ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff00000070864320748e49266d884122618b47234f823c1b598d451f4f5e311add0b0908ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff0000007c451a07368c330d41581f0844bb4512676f2d0f5a54210a736e31165f6d3417756e361aa8753d1f966632188e572813945527118757250f8555260f89582a12744b22105a48200d42441d0b4d48210e43421d0c6e2f1407ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff0000007c0000003e0000003b000000ec000000ff000000ff000000ff050403ff0c0a08ff0d0a08ff0d0a08ff0d0a08ff0d0b08ff0d0b08ff0e0b09ff0d0b09ff0d0b09ff0d0b09ff0d0b09ad34190b5d76341457723314456c2c104064280e3259230b29491c081f4b1d099871371f7479391e6d823f21657e3d1f737c3c21697834162d000000300000004e0000004177331342883d17408e3e17509c471b50a84d204bbd542855bc532a3bad471d4db64d1e4cae4a1e639f461c5d7a30135b62260cff352b23ff302720ff302720ff312921ff2f2620ff302720ff2f271fff2f261fff2e261eff2e251fff2c241eff2e251eff2d251fff2b221cff241d17ff1f1915ff1e1814ff1d1713ff181310ff1e1915ff251f1aff0b0a09fc15110e5900000054000000350000004a1a0a0347210c0468250e05912a12087d2a110763291106643b190c57692f158e9a4b28849748269090452875803c20956131177f5e2d11635d270e6063290c758a3f207f883f2389874124527532176275341b6c834022481d0a0455803a1b5c7031143eda55173eaf3f123e9b350f4293300d4d551b07356f240a4e220a03ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff0000006484411d6e874222648642217289452456833e1d629047214c5f30185a322a21ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff0000004667250a3a8d340e40591f083ca7390d6a733012615a240c6c632a1064642e147f68321a7b6736189a6c371a8c642f1582602b135e4318066954240c7350210b855627116e4d23105e441e0d4a421b0b4a46200e3c411c0b493f1b0cff000000ff000000ff000000ff000000ff000000ff000000ff000000ff0000005700000043000000550000004f00000066000000ff000000ff000000ff000000ff0c0a07ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0d0a08ff0d0a08ff0d0a08ff0d0b08ff0d0b08ff0d0b09ff0d0b09ff0d0b09e3190f0a457834133c7632124a7933143267270d3f60270e2d461a0917431907936b361d6e76391e687e3d1f6e7f3e216e7d3c1e66723115320000004e0000003d0000003b8037133c964018489e45195ba44d1e51a14a1d5bcb623249ba562b4ec0582a4db54b1f4bb34b1f6daf4e226e8c3d1a5264260cff352c23ff312821ff312821ff312921ff312821ff312821ff312820ff2f261fff2e251eff2c241dff2c241dff2b221cff2c241dff29221bff241d18ff201a15ff1f1a15ff1e1914ff1a1512ff171310ff1a1511ff221c17ff13100eff171410770706055c0000005a1f0d0550260f055f2b11066c2e13074d2e1207583014075a642d16587c381a71944624528a3b1b628a3d20959f4f2da3783e1d7e6d321377723313706d2f115a6e2e0f7c8a41237b8641237e813d21727d3d205d76351a7d6e3921563815085574361932d74d1435b340123d9f38104795361046832e0d3b5e20096391441f54a04c2266b45c2967b65c296cbf612b59b6592759b3562859c15f2b67ce683168d7703478e1773964dc70357fe67a3e7ddb703a7fda6e3988e377407fdb703c6bd5683575da6d366dcb643282d36a3858c35e2b62c15f2c66bc5d2f58b052274dad512470bc5f2e73b85b2d7cb25a2d68a24d266197462269964622598d411e638e4320628a411f60863d1c889247246a8a421e63873f1d8b8f47248a934a2391964c25798d4420878b442075843e1c74833e1c79843f1c687f3d1976783a1a48682f13656b3217636e3516627036166a85401f5985401f56813d1e6c8843236c8d47254a843e1b46592a145b34281e73312a2464622b13686b3115596a30155e6a3016776d341970652f16836b32196c6c311681793b1b857f3e1d89803d1e667b381a5d7939195d78381a497231155377351762833e1d5d823b1c5f853d1d4981391a4f813919639044206a994a23649b4d275c9c4c2262a55025429c471f70b4582b75b95e306db75d3156ae522644ac4d2248b04e2547bf592855c9612e5bd5673175e8773a58dc6c315fda6b3160dc6d345dde6f3475ec7b3f5ddd6d3473ef7b3d83ff864380f67f3e61e06f2f72da6d3379d86a3165cb602977cd652d62c25c2747b14f1f499f481b718640194a762d0e43501c073c97320c33a33a0f72612a105659230b7f662f167c612e16885b2c15694b210f6355251068622b106a60270f595e250c4f58220b5b4f1f0a6b4d210d8e4f26126b421d0d60441e0d4e461e0c4f441e0c52401b0b4436150745321206332f1105453313064f3213076f35150851230e054e000000580000005400000047000000e4000000ff000000ff010101ff0c0907ff0c0a07ff0c0a07ff0c0a07ff0c0a07ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0c0a08ff0d0a08ff0d0a08ff0d0b08ff0d0b08ff0d0b08e31a10093d793314457e3614437c341248783113355c260e34441b0a364019096c582814586c32176b7b3b1e6a7b3a1e6779391d6471311542000000380000003b000000547e39163e944016499f481a51a3481b5ea54b1e5fdb6c3751c95c2c4abc52234bb74e204ab1491d57a2441c7194421d4d66280dff362d24ff322922ff312821ff322922ff302821ff312821ff2f261fff2e261fff2c241dff2c241dff2d241eff2c241dff2d241eff28201aff251e18ff1f1a15ff1f1914ff1e1914ff1a1512ff17130fff18130fff191410ff1d1814ff211c177e190c0754220e05572610054d361507582e14074a2f1407352c11054a421c0b7f8e442367904320759847235d903f1e5b97431f8b8345219181411e7177351467733012777a34137b7a35135d7f391a4e7b3618607b391c6777371c627a391c717b391c5b1a09034f7e3819577f36153cc0421139a1390f4094320e4989300f42832e0e4c803311498136134879321349773213507b3515487630134a7c3213588d3d1a649c471d649b481f5a97431d589c481f519b451e3e97411a4c95411c5e9d48215596431e4d903d1a438d3c1a40883a174e8a3c1a4c8a3e194e8a3d1a42883a1530813512368035134b873c185a8b401a57863d1a427831133a6e2d113e672a112f5e240d40632a1049652a114563290f5b6a301363692f144d642a105c672d1257692d125d6b30124e642b1064692e11636c2e116a723213767a371565783413626f2f11556a2c0f60692d114f61280f49622a0e6b87431f6085401f577d3a1c6d8744245c85401f709249255f64280e65361708633617084d33140753341507423214074b3113065531130665341407543313065234130663391707613b1908603b1808543c18073f3715063c3715054a361506443213054b341306403312054037130553381507633b1607683f18084f3a15064c3a1506443d16064d3e17064f3f1707503f16065440190750411908393d1506323f170642431807334418074746190739411706393c15053f3b1405473e15064b3f1506334017064c4117074b401607533f1606603f1707533d1606583e1706623e18065d3b16065d3915065c3915055f3c1706423c160561411a085e3d180836782a0a3b882c0b3797370f598035115858240a73662f14765a2b148c5e2e1777532712443e1b0b36441b09695c28115c3d1506565d240b3e541f08554d1d095e4a1e0a88522712904f2514834b2210724b220f6b4a210f68471f0e70441f0e50230d0440220d0442230d0446230c0448220c0451220e04461b0a034d180904ff000000ff000000ff000000ff000000ff080705ff0c0907ff0c0907ff0c0907ff0c0907ff0c0907ff0c0907ff0c0a07ff0c0a07ff0c0a07ff0c0a08ff0c0a08ff0d0a08ff0d0a08ff0e0b09ff110d0ae21f130c438038164b833816407b3312487a34143c5b270e3040180850421c0b855d2c16746e351c5c78381c717b3a1e6b78371c5c6d2e122f000000230000003800000047773513448c3b14509d481b55a2491b62ab501f4fd05c2d5ad8633154cb5a2845bd4e1e4cb94e1e5ca6481d538a3a174f6a2c0dff362d24ff352c23ff312821ff302720ff302820ff302820ff312821ff2d261eff2b231cff2b231dff2c231cff2c241dff2c241dff27201aff231c17ff201a15ff1c1612ff1d1814ff191512ff15120fff16120fff17130fff18140fff18130f3b1e0c043a200d044a250f0542311206592f13075732150858331508739645206e9745217c984723839b4924779c4823629d48255a7133156a813a14787b35155f763413687634125f692e0f5358270c758943245d7a381b667d3c1d6d7b391d6977351b7e844022412c10075b8d421f3eba421231b43c0f3a94340f3e862e0e4b85310f63742a0e5aa84d2561b0532968b5552b6fb7582e5cb353296abd5e326ebc5b2f82c1613771b75a3064b95a2f53ab4e2758ab4e2952b9562865bd5a306dce663467c660317bbd5d3266b4552c71b8592f65b3542b65b0532b78b4582f76b5582e6dae542c4d9340204f903e1f4f8e3e20548a3c1f5b9141216698482567944723628d42215e853d1e7b90462476964c246e8f4521648b431e6589421f53823d1a5d7d3a1b497331145d733518877e3e1f797b3c1e7d7c3d1e7e7a3b1d83793a1e5c6e3116737134197a70341b7b72351b7a71351b6a85421f5d7c3c1e5d7c3c1f6183422176904c27568a421e65863a1871793a1b6e793a1b6f783a1a817c3d1d8880401f8e834221847a3c1f6973351b7176371c7e7a3a1e6d78371c667b391d7b8541237f88422376803b1f6a7d391d54763318577533195675331956833a1a7395472264944720709244246c924423659745246a9a4624659e4b27669f4a2678a8502b75af542d69a74f2a3f943e1d529c45234c9d442259b1532a62bd5b3069c962345dc55c2e61ca633375d0663775d6693679e2753970db6d3669dd6d355adb6a3152da682e4ed4632b47d15e2762db69317de572396fdc6d3574d76a3571cb603067bc562a60b652266b9e45216f7e361a378c2c09308b310c379d3a10585e260c4b59220b70632e148766321a68582913714e2512273917074f461e0c4d4e1e0a50441b0a6f58240d40531e085a501f0a654e1f0b805426116c4e2410724b21107d4d2310734e251061481f0d714b23104a3112063f2c0f05412a0f053e2d1005452c0f054e2f11054e2e11055d2a0f058f210e06ff000000ff000000ff000000ff000000ff090705ff0c0907ff0c0907ff0c0907ff0c0907ff0c0907ff0c0907ff0c0907ff0c0907ff0c0a07ff0c0a07ff0e0b09ff120e0bff13100cff15100ce21f140c50853d1b43803514447e35143f7831123d60270e474d1e0a735b2d148c6a331b7172351b6379391d6678381c6e7b3b1f6a6f31142e0000002900000036000000697d3a1855863e18539343194fa34c1e59a94e1e51e66c345bf0753b41d15c275bd45c2452c5552358b7501f588a3b174962290dff352c23ff342b23ff312821ff302821ff302720ff2f2620ff312821ff2d251fff2b231dff29221cff2c231dff2a221cff2b231cff261e19ff221c17ff201a15ff1d1713ff1b1511ff1a1612ff171310ff16120fff17120eff17130fff17130f2f210d044d240f0544240f052d2c1005572e13075d3216085534160877944320709646236b9041207f9545225a8f3e1c7c86411f7b86421c70853f1a6f773212566d2f10746f30126f39180a773a190b5b7b351657773519527534196f7a391d767b391d64823a1e6a190903346528105d833c1c38a3380f3fa6390f33872e0c47802c0c807a381c7499492475a74f2869af532a7cb5562d64b1562d5fb2552b79c260346aba592f83c866388cd9723d76c25f3466ba59306dbf5d305fb8562d60b8552b7cc8623590d26c3d75c05e3168b6552d62b3532b6eb4562d8ec060386cae532b60a64e28559643214e8e3d1e488c3d1d52904221538f412044893c1a548f411f69934623728d4323668c411f62863d1d668b431e72914721708d4621708b44206884401d6c82401d507536177882401f878a4622707d3d1d7e7d3d1e8d7f3f21807b3a1d636f32177a76381c937b3c208376381d7c8947244d7a3b1c4a73381b557e3f1e577e3d1d5787411f6a853a19646e3217696d31176f7235198480411e9b864522897b3c1f8f7d3e218b7b3b1f7576361b887a3b1f7778371c5f78381d8685402371803c1f80833f23968d462694944b27667c381c6b7d381e6d8b411f5481381b7e914424809a4b29749a4927729c4a266e9b48265e9644226b9e49268caa542f6aa54e285d9f4925559943224b99432055aa502856af522a52b253294fb7532765c7623275d068376bcd633368d0623069d96a346ee472366ee2723771e1733870e573375fde6c305cdf6e304fd0622a7ce5743974e675386dd4683281d4693686d3683765bd57295ba549206b994521397c2b0a328e330d6c672e1146531f0a5d58260f7a5d2d1476592a145f4c220f3e401b0a3539180948411b0a583a1808663f1a096c51220c4e511f085b501f096452200b6950210d664f230e81542713774e23106b4b220e6549200d7950261051441b09623112064a2e10064a2d10064f2e11053d2a0e045d2c10066a2d11075a291006a8160903ff000000ff000000ff000000ff000000ff0d0a07ff0c0907ff0c0a08ff0b0907ff0b0907ff0c0907ff0c0907ff0c0907ff0e0c09ff110e0aff130f0cff14100cff130f0b490d0b093e190f094d823a1745883b185a89411e517e38174f6d2e114860270d7a6d31156e723219797b381d6476341a657a391d5877371b67692e1324000000380000004900000056813b18468d3f155b9e4c1d50a34c1d52a64d1e6ef87a4163fb80403edb5f2259e5692954e0622755d65f255ab04e1f495d270cff332a22ff332a22ff312921ff312821ff2f2720ff2e261fff2e2620ff2c251eff2a231dff2d251eff29221bff29211bff29221bff251e18ff221c17ff1f1a15ff1d1713ff1c1612ff1a1510ff191410ff181310ff17120fff18140fff18130f4a270f0548260f054b250e05312d1105592f1307522f130740803312668f401e6992421f528a3b1c6b8b3f1f809e502b797c3e1a5b7d391475893f175b712f125d692d11646b2e116837170a6b38170952491e0a6f8440226b7b3b1e6078371b737b3b1f798d4424709c4e2a582a0f064a8f401d4c772c0e3b91320c3c90320e3f802b0c6f5b271171803b1b7ea34d2769a74d2663a74e255aa24a254fa4482294c8673b6dc35f3371be5b3187cc663888da713e75c15e3361b6532c73c45f337bc7613662bb572d79c7613476c661346ec4603465b4542b65b0532b95bf603876ad542d6ea24d295f9544235f9242225c914221518d3f1e47843a1c41833818608d40206a8d432176914725718e45225e883f1d7190472173914822788e4622728943206b88421e7085421e6f803e1d69823f1c7d84411f747f3d1d878040208b7d3e1f6f7234197074351a7f76371d7273351a8577391c6c803e1e396a301529662c12336a2f14497b3c1d5088432068833917857f401e8880411f7c7a3c1d8f824220857b3c1e616f31178a7c3b1e8e7e3d1f7f79391d8176371c6a753519496f2f167c803d218e8542256177351b90823f23908d46257d894122687d371d72873d20769144246a8c40206a90432293a5522f82a2502c6c9f4c28739e4b27679d48259eaf5a346fa14c286b9c4826629c47245e9f492564af542b3d9e441f50aa4d2641ab4b2268c15c305fc45c2f72d1663672dc6d3865df6c346ef17b3a70eb76396de2713869e574355bd8692f6ae0703456cf622d66d5683066cd642e6dce643084d46b3771c15c2e64b4522764af502665a74b243a7e2e0c33882f0b565c260d414b1e096350240e724f25117f542913704e241057471f0d3f421c0b4c3e18085f3b1808663c1908624f1f0b6b53200a6253210a6452210b584d1f0b634d200da95729166b4a200e5c461d0c65481f0d714b2210724c220f6c3615085a301106462c0f05562e1005532c100649290f05542a0f055c2b100659291006aa140904ff000000ff000000ff000000ff000000ff0e0b08ff120e0cff0b0907ff0b0907ff0b0907ff0f0b08ff110d0aff140f0cff14100dff120f0b2b0d0a088a080605ff000000e30e0602487e371653863a184f81391867823b175d793414717a34138b7f3c1b6c6f31176d75361b5f76351a5776361a5777361a77683014560000003800000045000000578a3e1758a04b1e52a0481b61a74e1e40a4491b72f4763e60fa7c3a54e1662b3ed5592064f5733256f8702c66de682a4b63290e4c00000075040403d5251e19ff312821ff2f2720ff2f2720ff2e2720ff2e2720ff2e261fff2d251fff2c251eff2c251eff2c231cff261e18ff231d17ff1e1914ff1c1712ff1c1712ff1c1612ff1a1511ff16120eff17130fff17130fff18130f582c12074d290f05622a11073a3213074e2d1106432d11065993431c4b8e3e1a4887381755843a1b6b873c1d708742226e7e3e1b60813914787a34154c6b2c106d6e3014535e270c56331408713615096a3616094f6a2f14627a381c5f7d3b1d54733218808c4324869b4d2b56130602435a240e5193401b4e5c220a3d832e0d387a280a655c281082803c1d739a4824729d4a255c994421599a462262a7502875af542d5cae502870b7572e78c15e3284d56c3c6fc25e336ebd5a316fc25e326dc25d3185cc673983cc673a96d16b3f87cc673a87c5643881b85b3378b0552e6da64f296d9f4c285a9242226193432360934323538a3e1d3f7f371a427e36185a883e1f5b883e1e65873f1f668841206887401f6587401e6d8c442065833e1e5f7f3b1c507a381765803d1c7384411f6a823f1d6d813f1d6f7d3c1c6d79381b8d7c3e20626f32177175351b6a7033197271331a8473361c847e3f1f456b31144e7036193a7235173470311558884522667e37177a74371b7578391a59733617867f3f1f807c3c1d897c3b1e81813f1e967e3c1f8576371c766f32195c6f31166b75351b737e3c1f787b3a1e6e79371d7176351c7a813d208187402172823c20808a412367883d1f7991442383974a29939f4f2ea0ad593488a9542e8daa55318ca7522f77a8502970a34d286ba34c2747903d1e62a24b2759aa4e2749a2492345a4492240aa4a2262c05b2f63c45e3066cb61326ad5673564de6a336cf6793b6bea72385ccf602f5ed1653045c75c2667d96b326ad96b3263ce642d67c7612d65c8612d73c961306cc05b2d67b2532967aa4d2452923e1b36792b0c5459240d324c1d075b4c200d544b210e76532813725228136150240f715326104f4b1f0c49371506613b18086d3b190955451b087057240b61511f0a5d4f200a5a4e210b42481d0b4d4a1f0c8d5024115949200e56471f0d6249200d714c24105a3d1807552f11064f2d1006592e11064b2c1005632d10065c2b10066d2a0f06642b100665251006ff000000ff000000ff000000ff000000ff000000ff130f0cff0b0907ff0f0c0aff120e0bff15100cff14100cc6100c0a220c0a08ff050403ff000000ff000000ff000000e3190f0a4778331548853a185b873f1a61803a177d853e1a6c763314847b3b1b6e6a2f177173351a5c713318557133184a713216564e210c77000000760000004c0000005c9b481a4ea84d1d52b55a235db95c2456b056227efe824665ef72394dda5e2746de602456f1702e5df8732e56dd642642672c0e3400000022000000490000005e000000f82c241eff2f2820ff302821ff302820ff2d261fff2e261fff28211bff2d251eff2d241dff28201aff251e19ff201b16ff1e1813ff1c1712ff1c1612ff1a1510ff191410ff17130fff181410ff19141064341609562e1207682e13084333140752331407486e2d0e5496461d5f8e3e1c4d873c187e8a3e20467f3717617c3e1b607c3917718037168c7d36166c763414546c2c106c301308603515095f3615096c36160a58421c0a527a3618496e2e1352793718587e381b648f43225b8b401e47220c043f883a1741471a07414918063d77290b486d240b909046237fa34e2a75a04b267eae5629619a48224796421c8eb35b3285b1563085bb5e347ec26136a0cf6b3f8ace693d6dc35e336bca6335a6dc754697d670427ec4613583c7633885cd6a3d68b8582f7db75a3379ae562e74a54f2a77a14c29709d4a275a9443214a883b1c4c893c1c4482381b4682391c55823a1c5c853f1f668940206e89422266843e1e5f813c1d5a803a1b5b7b381b5c7c391a657d3a1a637a37195d7a3719667f3d1b67813e1c667636196e77381b6a713418867a3a1f877b3a1e7f74371d706d33197e71351c6a7034173f672f13476f3417176d31103f703317678e4825737e37188670341c8773361d6c733619887b3d208c7a3a1d8577381c928340209e8240228d76381e8477381c7d79391c5e6f31176677361a978b47258f8340249d8a46288f8842259287412487884124848f44267b924626a9a55532949c4f2e7a9547278fa6553188a7542f6f9d4b2883a5512c81a8512c6fa34c276ba34c2769a44d2755a048244098411f45a047224cae50284dae4f275dba582c60bf5a2d67c961336bd4673767d464325dde693464d766334fc258295bc95f2d5fcb5f2d5ec75c2a53c2582769cd642f5dc45e2b5cb956286cbd582b71bd592c82ba59306ea14923638d3f1e326d2509375420094f4d200a5a4e230d614d230f685027125549210f494b210d6257281057441a07623c180954381708623715076f3715086053210b59512009564c1f0a38461a0830411807444a1f0b8f532714a8512714885125116a4e240f794b22107a49200e673213074e2e1106562f1206752f120772301207652d11065e2b1006612b110755280f053f1e0c04fa010000ff000000ff000000ff000000ff000000ff14100cff15110dff14100d5c0d0a08340d0a07ff000000ff000000ff000000ff010101ff120e0bff100d0ae3170e08407835147394471f54833a16728a441e87843e1d677a39198174361a746b31197f75391e6d74371b4d6b2f1658713419ff060504ff191511ff342a217d020201499a46194fad532053ab52203ca2491c4cad511f7df37a436df27f3f4edf632652e2612744df5e2456ea692a58d15d254b6f2f0f200000003e00000047000000270000004b0000005d000000bf1a1511ff2f2721ff2f2720ff302721ff2b241dff2e261fff30271fff2a221cff261f19ff231c17ff1e1814ff1d1712ff1b1712ff1a1511ff181310ff18130fff17130fff191411ec1f17115e3314085b311308572f120739341306549343197092451f5b8f421d5a893d1b728b4020759246247c7f411c657b3614848c4018857b36146d6f30115465290e6b3114087139180b623816095d3b1709773e190c3e64290e6179391c4e7332165a7e3b1c55823c1c7092462367592c17574e200d589a441b68431c0c6452210c595d210d7f8e401f6f9241206c9443204d8939193d8336174485371880a04f285c934220719b482580a6502b80a8502b6fa84d2965a84c2776b0542d69b2552c6aab50295dac522978b55a317eb55a3181ad562e79a7522c6a984725618d4020679244216191421f588b3e1e568b3f1e5989401f55843b1c517c351a5279351950763318577b37195d823c1c5376341752753217497332165c7a3818577836185b7937186e7c391b5e7836186d7f3c1c7e8241207677391b8c7c3e1f967d3e208474371c92793b1f8474381d8270351c6f693018786d3418295e2a11466f3418558342205485411f678b4422657a3417826e341b756e321a717033197f73361b87783a1e8b773b1d8a72351b9172371d806e321a7c6f33194f63281254672c14676e3018867d3e206b74351a8177381e93803d218b7c3a20787c391e6d7c381c7c863f21868e452565843c1f6b8c42227d90462585944a277c9145256f914424699041216a96452269984722598f411f569241205396462152984521529944214c9b421f529f46214f9f472157a74c245ab1522653a94a234bab4a214aa74a204ca94c204ca84b2054ae502353ac4c2057b0502464bc5a2969bb5b2a7abb5c2d80be5f2e85b95a2e7fa84f286e98462274833b1d5b612a0f465120095b51230d5b4e220e5f4f2510514a200e614f26114f4d230f414d200c6e411a0b5d3f1909683d18095a3916087c401c0b624f200a5a52210a5f53210a484d1f0a4d4a1e0a52491f0c614b210e6d4c210edd592e18754e240f7e5026106849200d5f2d1007562b1006632b1007522b10065d2b1006572c110765331408642e120765290f065d260e0560210e06ff000000ff000000ff000000ff000000ff000000260c0a0869090706ff000000ff000000ff000000ff060503ff110e0aff0e0b09ff0b0906ff0b0907e4170d084a7a39183e8338155b8d431b59823b1970813c1b727c3d1c957f412267632c155f662d166e73371c6b77371a686e331aff070605ff070605ff070605ff06050550a44e1c44a74c1a4aaf562243ab52203ba8501f7ff47e446ce36d3859e2652a5beb6a2e5eef6d2b47dc5c214cc5531d4579310e210000003e000000310000002800000050000000680000004a0000004f00000081070605ff2d261fff2d261fff2d251fff302720ff2d251eff27201aff241d18ff1f1914ff1d1713ff1a1511ff1a1410ff181410ff191410ff17130fff1a1511ff1c1712b829170f5e311308732f1308893f1b0a659d4e204a8c3e185694471f518f411c829d4b286683401e7c7e3d1a607d3615647a3412676c2e105061280c7c4d210f692d12076d3c170a7138160971391609733b170a61411909597635195575341852783618587d391a567d3a1a668941205a210d053b8a3b16505e270e59481c0b5f5c240f67732d1466732e14646e2d1258682a10566829114c682910697533166a7b36175a763215627c341773833b1b457831144b7630134c7a31144878301369813819457530146077321668793418627632165a743014567430155b732f144d742e11557931125c7a33145875301253733012516f2e124766280f3a5d220d425d230d4b61260e4e6629104d682b11596c2e13596a2d12686b2f154c652b1154682c11656c2f13646b2f12726f31158b72341790713418916c3216806a301576642b1374632b1378602a1380622c157d5f2a147c6831173960270f5d793c1e5b86401f5989401f588a411f60702d125e5f2811555d27105a5e2810585e281063602911675e2911735b2813705726116e5725106156230f6056220e5c59240f615b261075612b13645a26116a5c27117f662d1555602811545f27114961250f4a622710706f3116577031156f74321774713117736f3117606c2c1360753216647b33175078301351773113587a3415587933144f7931134e7b3112477930123a772c103f762c10447a2e11487d3112427b2f104d80341256803413557f33133f7d3211427f3311508437145688391566923f197a9c461d83a04920879e461e7096421b748c3c1a6b8337187277321673662c144459230a5252210b5d52240f64512611574e230e614f2610504a210e404b210d423f1706524118084e3f1708513d1708553c17085d3b1709663a17095550200a6653200a5b51200a4d4a1c09584a1e0b7d502411614b210e774e2310704c2210694a210e55471e0c60401b0a3f230d0443220d045a220d055b220e0674230f0765210e06652e12075c270f0556240d054f210c04521d0c04ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff0b0907ff0f0c09ff0c0907ff130e0aff0a0806ff0a0806ff0d0a08e21c100a447733133b7f34126d8f431e7e9046207d8a46216e7e401e626a3017555e2812466029116c74381b6972361a5e683017ff0f0c09ff17120eff070605ff0706054daa4f1c48b0541d3fa84d1c3cb0582235a44c1c83f17b4275ee783c55da61275ae466295bf2702d48df5a2040c2521c428837101e0000003d0000001e0000002a0000004e00000077000000630000003d0000002b0000004e00000067000000ff2c241eff312720ff2e251eff2a231cff251e18ff201a15ff1d1813ff1b1612ff1a1511ff1b1511ff191410ff191410ff1a1511ff1b1712ff201a153e110602411708024f954216599e4b1f488e3d185a98451e68a14b216ea34a2565783a195c783514618037155e77351068602a0d6157230a81451f0f4d220b0459301106602e10056031110558301005583211055856240b6e833d1f6d833d1e6f803c1d5279361868823b1d5e271108603e1a0a3c934017453512054d3d150645461907484b1a084d501c0946521c0844521d0942501c07354b1b0741501d092d511d0831541e08465d210a4860220b4a63230b3e62220b3761220a4d60220c435c1f0a515a1f09525a200a425b200a3f5b200a32551d083b5c200a3d5f21093f6021093f5f210942602309415e230a475920093f561f083b501c073b4d1a07374e1a063c521d083b521d0740511d0845501e09464e1d083d4f1d08444e1d083f4e1c0849501d085c531f0a5854200962541f0a6956200b6455200a54521e0a55511d095b501d0968501e0a654e1d0a926c361a5a6b33175676361848813c1b548c421f6e9f50275064250c4f4f1e0a51511e0a51501e0a4b4e1d0a504f1c09504a1b09474518074c411607484016064441160645441706394316063e441707324216062942160633411606474719074b491a08444918073846170740471807534d1c09524e1b095e501c095c531e0b43521d093f531d093a581e084661220b4564240b4464230a4467250b4e6c280c486a270c446c260b406c260a3d67230a426823093d6823093e6623093a6322084364240a3f64230b4767250a3d68260a3e67250a4366250a5367260b5c64250b595f220a605f220a6860220b5459200b52561e0950511c08654c1b084a5b250c5a5a240b5955240e62542710655127125a4e251033451d0a4a49210e484b220e463712054d3813064a3712054532100450311105473010044b2f10045750210b6455230b464c1d0932461907514b1f0a8f5528149a5d311b795127126f4d220f764f2511674c220d724b220e3c1f0a03491b0903511d0a0477220f0789241009982611099326110946250e0542210b043c1e0a03471e0b04531e0c04ff000000ff000000ff000000ff000000eb080605ff0e0b08ff0a0806ff0a0806ff0a0806ff120e0aff100c08ff120d0aff140d0ae220110a46743212358034123f833713839c4f256586411c506c2d12686e30166c6a30173f61280f60713418576e3217716e351aff14100dff191510ff0e0b09ff0b090748aa532038ab511a33a048172ba1491b35a9511e73f37f4088fb7e3f5be4692c5ef7732f52f6712c40ec68244bcb551d438236112d0000002900000022000000410000005600000078000000610000002b000000350000004f00000035000000550000005e000000d31f1914ff28201aff271f19ff221c17ff1f1914ff1b1612ff1a1511ff1c1611ff1a1511ff1a1511ff1b1612ff1b1612ff1f1a157f3216098733170947a14a1d4ea3491e63a950214ba2481e6eb1512763ae54275b7e3a1a517b36155d7a32124a62270c655a260d60441d0a7c411f0d8643200d773f1d0c6a3c1b0b613a190a623b190a533c1909533e1a0969813b1d71843d1e6c833e1e627d3b1a607c391b627e3a1a451b0a04518b3f1956873c165b823c18557b3a18617f3e1a7480401e75864420798a45228690482378884321888c4721577d3c195c7b3c1b73793b1b7b793b1a7473371853662d127569321660612c134d73341557954a2052a04f2456a351254ea14f2359aa572570b05d2a81b3612f74a8592797a95d2d72944c23728e4721778e48226b813e1e717e3e1d787c3d1c78783a1c847c3d1d867b3e1e86783b1d7a73371999773a1d8a70361b9373391baf753c1eb8763d1f84763a1b6d83411b878e4a20868846208085431f6e7f3f1d7b83421e707e3e1c5c763a1a5e723819796a34176f76391b5f79381a58833f1e47873f1d43843a1a577230138374391a867a3e1a937a3e1c84733a1a7469331761612c136f622e158165311788683419886c361971673315606a3216637538196d81401e5e7c3c1a7e8945227387431f6b88421f6d8c442269964c225893492056954b1f5b96491f81a3532792ae5c2b88ac5a2a8aa757297d9f50257c974c247b9a4f2477994d2374964b226e8f45206f8a431f7c85401f858741218c8c462291a7552b8fc767378eda733d88dc773d70ce6a348fdd7a3e78d1713580d1703778cc6c358dd5743b80ba622e9ac0ad9ab2bba997829159376986421b7b8b5334bca49686637d3b1a546f32135c5d270d5659260d855a2b1487582b146f512712504b230f4a48200e4f481f0d5c3f19076a4b220b603f1b09783f1c0b6e3d1a0a653b190854391707573e1b0967441d0a6856230d504e1e09294318064b461b09925628126c5427126f5125116b5125116c4e230f704f2510734e240f5e3e1b096c36170870371808541f0c05882511087a2611087e2511086b220e0744200b043b1e0a034d1f0b04471f0b0471170903ff000000ff000000ff000000ed000000e4060504ff0b0907ff0b0806ff110b08ff120c09ff120d0aff140e0bff150e0be421130b46763413568e3f1895ad57298e9749246b843d195f7e39177a89411e67793619496c2d1444692c134c692f1565662e15b5040303b0040303d1090706ff110e0b49a9502032a54e1d31a147183ea4491a36a1481c70f1783b74f87b3a66f2752d58ef6d2a54ec6b2748e96b2b4cc3551e477c330f4e0000002e000000250000003c0000005c0000007500000065000000250000004400000047000000350000004a00000041000000350000004c0000008b090806ff211b16ff1e1814ff1d1713ff1b1612ff1c1612ff1b1612ff1a1511ff1b1612ff1c1713ff201a165a2e13075367290d56a1491f59ab4e2183c6622e5bbc542472c15a2a508d441e48833b184e793211596f2e10545a250d6e612b0e7e2b14096f331809833c1d0c6c3c1c0b663c1b0b583b1a0a643d1b0b613f1b0b56401b0b51451c095c7c371a63803a1b5b79361752723316527134176b793b1d5439180a4e97421a6f9b4f21829e532473964e24678e4720578f451f74a1522877aa562b78aa582b76ad5b2a5fa15224519649216295492067964b235b8a421d7c924924698c441f5d87401d629348236aac5a2951aa552551a7542462ac582982b862308abf68338ab9653287b3612e7fa9592a78a3562875a1542679a15528749a50256e8e47226f8b4622748a44219198502a8f964f2792944c278a8e47248c8c4723888947227c81411e908144207d7b3f1d878345207e874520948f4d248a8a4921727f3f1d7c82421e7f85431e7680401d767c3f1e777b42207b68321679763b1f778544214c803b1a44833c1b4a8b401e657e37178588471f8e8d4b22888a48208488471f8a8747207c783b1b947d402082773c1c86763c1d666e351870793e1b958848237483441d6481411c697f3f1c8c8d4a248c904b256c8a43206d8e46206e944b22739b4f2479aa59296ea753267cb35b2b9ac66a3395c66a3480c1662f7bba612d86b8613083bd65308fc66b3579bd622f6fb35b2b63a651266aa24f2693af5a2f99b35d3175b95c2d8ed5723b8edb743d85d9743a8fe27d408dde7c3f85d4733990d6753c74cb6b3480cf6f3788b591767da2532679914a227b9e674379984d21799558359b968a7b5888401a5a642e0f5058250b5154250d8c582b1467502510795027125f4b230f48471f0c3f431b0a654d210b604a210a7349210b7046200b7f451f0b7e401c0a713c1909743e1b096d421d0a6058250e4b4b1c083d44180746451a088053240e7d5a2a147a5427135a4e230e71512611654d220f7c5227117c502611673517076a361808603516076b220d06842712097c2511088925100866220d06491f0b04531f0b04521f0b044d1e0b047c180a04ff000000ff000000ff000000d9000000ff120d0aff130d0aff130d09ff120d09ff130e0aff140e0bff150f0be420120b4d7535156495441c91ab53277893441f6680391863843a188da150246a8d3f1d647f37194c7130146272351958652d13ef17120e8d030202a8040303ab04030348a44e1f37a24b1a2fa54b193ba648193ca1471978fa833f72fe803d65f277305cea6b2855e865254de5642652c55822517c3410670000006c0000004600000049000000560000006b0000005d00000026000000390000003c000000350000004d0000002b0000003e00000043000000420000004f0000008b050403ff1e1914ff1c1712ff1b1612ff1b1612ff1b1612ff1c1712ff1e1814ff201a16622d13074ca9511f4b9f461d4aa7491e56b850246ed9632d82cf64313a8b3e163e8337114874300f5164290d57511f0a7a59270e6f2913087d31180a863b1d0c6f3e1d0b623e1c0b64401d0b65411d0b60411c0a62421d0b5f512610606a2d144c7030155375331748703115617234176780401d651909035a7d371843863a15799e5222709b512274994f21799c502587a8582d7daf5b2c7eae5b2d5ea655286ab7612c83c069336db25f2a5daa582768a9572794bd673588bc643366b4592c6eb55d2d67b85f2c73ba612f73be663178b55d2f7cb961309ec96f3a92c36b3681bb652e7cb15e2b8ab15e2d82af5d2b8cae5e2c749f532675984f255b87411e698a4420989b522b8d984f2981944b24a39e552c90984f278b964f2686934f2691914f268d894823928b4a257d864721928c4b248c8848228a8545208883431f8e87462096874621827f401e69763a1a68632e1387793e22557c3c1d44823d1a518a431f44893e1b61803a177e87461e7e86451e8085431f858847207587461d998c4b2386874921a78f4e26a28b4b258e824422968b4b259e945128a5924e266d82411c5e7a3b197783431e6c86431e507f3c1859853f1b72944a2371994c247da6542872a9552782b85e2e84bc612f8bc2663395c468346db55b2b85be663184c268337dc367336ec164306cbe612f6abf632f81c66634a6d5723fb2dc78456dc2623192da743e8ad5713b79ce6b3587d4713a66c5662f69c6662f99d7763d6dc4652f96d9783a99c8764094b8632d7aa255258aa8826589ab5b28899c5e38b0948a7c5c7c3b1668632c0e4f54250c705327127d522812664e240f5f4d25105249220d604d250f684c210b624e230b684c220b694d220c794d230c7c46200b88431e0b7e3f1b0a693c19095b3b180858481d0a47491a085d4b1d0a674c1f0a624e210c865b2b14865e2e166351240f6450230f7c512610845327117c53281259351608643516075f361708552f130662220e067425100874230f0765210e0650200c054e1f0b04511e0b04531e0b044f240f06ea050201ff000000ff000000ff000000c3000000ff130e0aff130d0aff120d0aff120d0aff130e0aff130e0ae51c1009617839187c9d4c2282a44e23698e3f1b8790451f94a04f24a0ad5b2b538139185a7f3818617634186471321853632a120d0d0c0a5c1a15118b1c1611781713104a9a4819419b471938a34a1840a84a1a35a4451769f27b3b53e66c2d59f2712c5bfb792b59ec66254de1602546bd562437762e0fff060504ff27201b7a05050470000000660000005f0000004e0000001e000000350000002600000025000000450000003300000040000000320000003b000000430000002d0000004100000059000000ea181310ff1b1611ff1b1612ff1c1612ff1e1914ff211b165f2d120757a1491e47a1481d3bac471c5bc8552660d0582657a74a214a8f421b447e35135a7031125b5a240c5855200b832f15087c2b14097a31180a923d1e0d713f1d0c6f48210d694e230e7053270f7153260f6951240e5256250d4554230b5f723216697c391c4d723215567134174e7739185b5f3017632e1107418d3b176b934a20799b512367984f2083a358287daa5d2a99bb683195b9653286b15d3091c06b3697c8703994c26a3461a9572859a2502376b45d2c5fb25a2a55b55a2863b45a2b73bc623079be64317bbb623173b65e2e88c1683489c068358bc0663389bb643171b15b298ab6632f89af5f2e76a35529669a4e2466944b2166934c2283985027959c522aab9f562e6586411da797502a838e49237f8d4823848d4b247583431f7d834420978a49247280401ead965328ac965227958b4a229b8e4e24b18f4e268d8545208c80432073793d1d5f652e12656f371c477436194c7d3a1a568b43203e813919677c39178d8547209d8a4b238b8646208385451f838546208a86472195894b24a98b4d26b89050299d8a4a2588844422828444227f804020637d3e1b67803f1c7383421f6683401c46793716387836156690462062914621579a4a206dac56277cb75f2f7eb95e2f86ba5f306eb55b2a6eb65d2b7dbc63317cbc62316cb95f2e66bb5f2e67be5f2e61bc5d2d80ca69367cc865359ad773407dcc6a3680d5713887d370397bcb693477c866326ac262307dc566338fcf6d3991ce6c3980bd613191be643398b76030939a8e8094ae643788aa592b76a25327869d8c794160290c4f55240a6353260e5c4a210d554b250f5e4a230f664c251053461e0c54441d0b626e34145f5d2a0f66602d10705d2b10825d2d12634f240c70461f0b81421d0b5b3c180947371508573917084f4d1e0a5d4b1c096a4a1d0a614d1f0b4b50210c6c582811755326127050240f6e5026106d4e230f5d4d220f715126106e3a190955331406482f12064f2a110562210d0568220e066f220f077a2410085d200c04471d0a034a1c0a03441b0a0355261106f3040201ff000000ff000000ff000000cb000000ff130e0aff130d09ff120d09ff110c08ff0f0b08e3130b06657639197e9e4d2379a8502281a24f22899b4d209ba253256d91471e6075331a3a6929104b6d2f15506b2f1446602910a9181817751312102f110f0e150e0d0b4c8e3f163f8f3e154ea74d1b51b04f1f41b954213bcd5b254ed8632b46de65234fec6e284ae4632251ed6b2b4bba522141793111ff070605ff070706ff100d0bff1b1613ea231d18870908066d0000005200000039000000260000002a00000044000000290000003d0000002f0000003600000039000000300000003e0000003a0000003a00000051000000c0100d0aff1c1712ff1c1712ff221c164a8c3b173b9c441b48a0461b4ec1572447d3582256e8632b4694441e39873a164c793413586b2d105d57230c6b622a1095301609752a13087b32180aad42220f8a47220e6950250f776331148467321567602d12675f2d125c612c1266662f143c60250d4a7634164f75351754733617476f3315607638194d240f065e763316418a3c1671964e2267934b1f809b53258fa1592a9eac5f2daab766338db05f307caf5d2e81b35f3171ac582b56a2512568af5b2a67af582b67b75d2b4cae54243aa24c206bb75d2e5eaf562955b1582771ba622f77b65f3085b9633284b6603168aa562875ae5a2975a454267d9d50256b944a216793492167924821648c451f8c944c267e8e47239e944e287e8945218b8f4b238a8e49237f8a46217684421f848343218983432195874623998948258d824321a58b4925ad8c4926a8884825af8b4b2696834723867e4120887f432250642e1250682d154a7234194e7a391a52863f1d4783391a6b78361592793f1da58144217c7c3f1c757b3e1b8b8345208b824420aa8c4e28807e421ea1864624a68b4927667b3c1c687c3c1c717e3e1e6b84421e587f3e1a6783411d6e88421e38713112377433145287401b66964921829e4f2683a04f257aa14f2483a2502797ae592c649f4c22599c4a2069a552267cb55d2d7eb9603067b55c2c63b6592b69c2612e90d26e3b80cd683797dc76408fd7733c8dd36f3a98d3713c71c3643093d4723a66bc5f2c7dc3643292c869389ecf6f3d9cc96a398fb95f2f86ad572b7da25127809e4f277b994b236c90451f5f6c41284a5e290c765a2c106c502611614e26115d49200e764c24106f4c2410694b230f5f5d2a1065713517676f3516646f35157a713817816d36167d5e2c116e4c210d6c431c0b563b18093c3414073f371607544c1c084f4c1e0a54481b08664c1f0b564e1f0b6f552510504e220e5e4e220e6f5025106d4f2510775025117654271263391a0a5b321607452d1105412a100460200d05621d0b0476210e077e251008782712094b1d0b033f1c0a03581c0b044a1808035a281106dc080301ff000000ff000000f4000000eb000000ff130e0aff090705ff090705ff090705e2140b06787a3b19839e4d2073a1481f77a14d1e889b4d207b994d216c914b20516c2f1553692c1451682c15556b3016455e271047060505860d0c0bb8181716ad1919184e873d165191421955a54c1c59b4552246c05a2422c5501b46e5682951e0642847e568253fda5a214df36b284bb94c1a507e3310ff020202ff0c0907ff060605ff060605ff070605ff070605ff0e0c0ad21c1714680000006500000049000000410000002200000030000000260000003100000035000000290000003c000000400000003b0000003e0000002c0000004f000000ff1e1813ff231d183b9b4218509e441c47a3461a5dd6642b7afd7f3c5ce669314992411b377f351343702f11617130125e63290f623c1908812f15099b32170b98371a0d913d1d0e8a441f0e8a5125117f5c2b128263301465602d1265622e14686530155c622d135c612b12446e2f13567636196877391a577336184f7133166678391b42260e055293421d628c461d7c904a208f8d4a229b8949237d80411da18b46238f90492358863f1c6293471f669b4c2266a553245098491e65a6532565ae55262e9340173e99461d56aa542664b25a2a8ac2683683c0653379b861318fb8623495b6633364a05025629c4e226d9247207a8c431e7787401c6a853f1c6e853f1d6c823e1b948441206d753618a386432191803f1e8c813f1d99854120747e3c1a98874421617537178a7e3e1e97824121af8b4926a88846239e874522918141209b8344238f7d40218d7d412183793e20847d4120556a3213506c30184a7335184a783619618b44214b8a401e78743516886c3317906f3619826f35187772371887793c1b9d80431fae864824b08144229c7c3f20917b3d207275371c4e6e301659783a19577e3e1950803e1a57803e1b5d823f1c4b7e3b19487c391850853e1a6093471e65893f1b78863f1a7b813c186c7f3a18838a421d6080381665853c19728c421c7293461e7a9849226e954621649a4821569c471e91b85c2f99bf60339cc566349ac566358bc1643280c2643076bf612e8ec7683568bc5e2d78c06331a4d1733e86c4643385c26532a1c46b387fab572a78a051257990451f7486411d74823d1b405d280c555a270c7e582b12694d24105d4b230e6e4d2510614b230f6e4d25104b431c0a64652f1353622b115a672f145d693013697238176e6c33157e612c126d52230e63491e0c543d1809583917093134130727381606514a1b08624b1d0a47481b096e4a1c0a5f50210c414a1e0b654c210e654d230e845227128d552913965d2f166c4d230c5c2912063f2d1105462a1005502710054d1808034c1b0a045c1f0d05742511084f250f075a1d0b04501b0a044c1909033c17080257281006ff000000ff000000ff000000fa000000e2000000ff090706ff080705ff080705e6150c068b88451d7d9b481f81ad52218ca75021909f50227e934b2073904b20557032175d7536177674361b536c2f1551622b12bf080707950807075b0604045e0706055f8b3f18548e41195a9e491d43be5b2445b7532169ff89465dfc783b68f87b3751e76a2b5be162263fd2521b56ba4e1d5b7f3411fd020101ff070604ff0f0d0aff020101ff231a13ff060605ff060605ff070605ff070605ff201a1668010000680000005d000000420000002800000026000000310000001f000000390000004000000030000000420000002700000049000000ff1f1914a85b2c164da84a1f45aa4a1b40a0431975e06d325ff16a324a853a174f8538163c7932115c7b3514466b2a0e5b6c2d1043431c0a52491f0c5d4c220ea0592b169168321895613219815e3016985d3019815d2e1785603218785b2d155e5f2b14716b341a8170371b5060260f6472351874793a1c556f31165971331767783a1b481507033a55210c43903c169d984f2c96a2582fa2a85b31819f522a889f512a839d4f2984944b28357531153478321648833d1d417e36196e8d43259b954c2b8886412376853c20828f47276c843d1f647e391b68813b1e53743118607e391b5d7d391b6975351b49662b1457713217596d31175c682e16636c32187a73361a6c72351967743618718745206b803d1b59763717526a2f14506d321574753a1b5c682f163f5f28104b622a124c632c135e632d155a602b138967321a846a341978653117796431165a5b2b124d5929114a5828103c652e117375391e617d3c1e537c3a1c5c884020568b412060692f137b773d1d84753c1c7773381a72743a198a753c1b6d6b34176d6931175f6730154d612c125d6b321580743a1c8c783b1c8f7b3d1f957e401f8b7b3c1e877c3c1e887f3e1e84813f1e8f8543208481411e8f82401e8f83401f8385411f8b8a4623758943216b88411e878e45228c9e52257c954d23929049237e8a431f6e853f1b6089431c54803a1754813a177a9848227d9345225d843a1a4b7f351653833718537b3417467c33155d873c1a698b401e7a8f43206d8b41209c9a532e9f9a532c9b98512977894220898b45248e8845254f602a0d4c5e290d72602f12675026105c4b230f5b4a24105a4a230f6d5029114e47200c786c321b7666301a645e2a1579602c177d5b2a15825b2a16745024126450231149431c0d4334160a5833160a5e3014095d32160a8f36190c764e1e0a734d1d0a4d461a08514519086a471c096552250e88542714714c220f5c481e0e794f240f8a5e2e14826b3419712410066f2c14075c2a110552260f055d271005491909034c1d0b045e210e0660251007612610074c1a0a04491909035e1a0a0341190a034d260f05ff000000ff000000ff000000ff000000e4030302ff080705ff080705e8160d068197491d82a84f207fae53228aa04f20738c431b87944d22878f4b225d773718557032155b7132167072341b746e3419f71a19199a11100f8e0a0909bb12111045843a143b8c3e16439b441a48b04e1e32af501c66ed8e4793ffab5e5ef4753661f576334ddf64254bd8632647b049185a813612c1070705a9050504de1c1a16ef0d0c0aff080605ff050504ff020101ff060505ff060605ff060605ff060605ff060505ff201a16980c0a08670000004e000000390000002a0000002c0000004100000026000000350000002800000047000000ff1e1814439b3f1b5fa4481f60a84a1e65b655236ddd6c317dfe8440407f38163b793011738238154a76311142722f1058642b0f4949200c3d4b1f0b5350230d7f542712614d1f0a6857260d6654240d6951220d5e52210c6757260d5156250c5b5a270e5557240d615a260e5c55230d7375381b5371341659713316566e3116536f32168d8b47253f1d0a04468b3a1856893b185e76331558733313787936175a672a1061672a116c682b11635c240e4f521f0c3b4f1c0a3f5d230d605d240f7d5b26116b57241058501e0d5d54200d725b251064612611586a2b125a7532155e78341674813b1d577230144e712f14496c2d143d64291158682c1559682c144f662a12796f30155865291161672b12586329105f61291054622a11495d290f3e51200c4752200c5952210d4d4c1d0a644e1e0c494a1b0a57521f0b7156220d51521f0b7159240d6a632a1156672e1342642a1044632b0f4e5e2910587035195876361a547a371c4e873e1e538b41204563280e4d632c10596b3111696f33136c7035136f6f3413707035145f692f125e692f1254632a115a622b1151632b1056662e117e6e3315816f341676693014776b31148079391886783b1b87763a199477391998763518867533167071301358622910535f270e66652a0f68662c1175662e117c662e126361290f6a622b107f6b31127e682f13826a31138769301362632a10615c2710645d271172622b1274642c136660291166692e12666a2f1267642b12656029127f632b143e57220e3a5b230b4963260d6466290f685f260f655c250e4d61290c625f2b105f54260f6b5228125049220e5a49220e5f4a230f4e48210c4f451e0a49682b11635d260f554c1d0b63421a0b50461c0b5354200c4d4d1e0a52451b0b453c15083c3a1507484018084a401a0a42451b0a4a471c09664c1d08824f1e0b6e4b1c0a4142170653471a09634e220e9b5b2e1674502510715124116c55271283632f1687733a1c704e240e62281106632d13074c240e045f250f053c220d033b17080269210e06872611098e2b140b7f2511085a1b0a03441a090341180903401608027c281107ff000000ff000000ff000000d7000000db040303ff080605e7180d067ca9502073a54d1f7a9d4d1f748b421b72863f197e8c441d6a8d4a207277371a596c30157f763a1d716f33197172361b96070605b00a080897100f0e8e4a230e44833b1537873b153a94401837a3491a35a0471b47a54e2174ffa04d60fc7d3779f67d354ddc632651c8582042ae4a1942823610830605049d050504ae0706058f0806056c070605780b0908ad080706ff080605ff080705ff0f0b09ff221b15ff070605ff070605ff0f0d0bff1c1713c214110e65000000650000004f00000045000000220000002e0000001b0000003f00000095783718459b421b50a1461c5ea3471e4d9f451b3cc254216af5763964b6582b558d3c166b823514497830112268270b624e2410454b220e34491e0b5651240e635225106056250e555a270e5559270e57572610565f2a10616730116f6a3413777338166f783b176a753817546c2f13667234166977391a58713115546d3117637134186f7c391c7086432234250d05479a3e17557f3a1c487c361755883d1b8f8c44258f904625839448258591482738713015396d2e13647d391c60863d1e768a4022617d381c6476341a6b7a361c7b7e3a1ea28e45278d914626808b4325798e452587994b2a7c9448266c88402171803d206c803d2081874426677e3d20677f3d1f64803b1d5977351a487131186d7d3c1eab8e48287a8240206179381a3c6d2e123c6d2e11677434188175361a92783a1d90773b1d6f6d3117706b32165b642c1269652d137d73371b7177391b5a7235175677391747682f15718041214f7737185f7e3d1e67854122367332163e803616576f3415737e3d1b7982411d8384431f888646208e8a4921898b4a217385441e737a3d1d6d74371b667b3a1a7c834020898b472497954c28968d4725a9934e289e904b26a3965129b69e552dbca45931b4a15730aa9e532fa0a0542e80964c27879a4e277f984c2687914924688b431f5f853f1c728f451f7e974c2495a7592983a454269fae5c2d8bad5d2a8a9e51268f9a4e268993492592994c2786994c248aa857278d9b4c27718a401f838b4424a992482869823b1d527e37194e8036188e9246259c994c2a85833e204f632b0e4f58260c66572810584f240f634e25105b4a220e654d25105349210d4a47200c4d5b271052692d147f6d33196f612b14625927126e5d29124e58230e4855230e414e1d0b4c4f200c544c1f0c5e4b1f0d594a1e0d4b481c0a40481b092c4217078356230e8857260e51461a09334418077c572810865428136f5025107c5d2d156a5a29136e5f2b158d753b1da5804523453114064d2e1307592911063f200c0357220d044d1e0c04541c0a036b220f076b2511087929130963210e054a1e0b03501b0b034d17090367200e06981f0d06ff000000ff000000ff000000d5000000d9040302e8190e0789b057247b9c4c1e7a89421b72813e18828f481e63954b2072914c244b6e301453672f157070371c716d3218677335189404040376050403f3100e0c357f381337833a142a7f34102b813510348f3e14318b3a151e7b2f0f4096471c50aa54214cf2722b60c75a2448ba521c49b24c1b449d41133a040302770907068a060504a6171412e30605049a0504047a050503a7040404a3100e0cef030202ff080605ff0a0806ff030303ff0c0a08ff080706ff080806ff080706ff0a0808b1120f0c5b000000500000003f00000023000000357d34104ca94c1f529a441d479d451b46953f1a3f953c193cb04b204bd5602a61e46c3541bb501d6099401868913e19467831125248220f4f4b220f6d4e220e6d55260f6453240e5151210c4750210d454d1f0b5c55250f4f59260e736830124e612b0f71723614717b3d198d7f411d5f7637165c733517687435184a6d311655713417717235194a7a39184880391755873e1c431b09033b9f3a12497d361771863e1f99944a2a95994c2a9a9d4f2d668a40214c7c36195f7e3a1f65803c1f688a41237c9a4b29638c40204c80361a6a883f2167884022a89f53329f9c503098964c2c969a4e2d7e974a295f8e42226b863d215f7e391b7f8b46256c7f3c1f92884528757f3d1f73823e1f497332174571311646723116647e3c1e6f7e3d1e5f7b391a4c7535163b6a2b114b6e30147171351a90783a1f8f7e4021777a3d1e72773b1d6074381a506d33156572361a867d3f205f7235176489471e3a692e14728142227082422249783717467c3b1b346e31154689402044973d1a6e78391a8684421f737e3e1c878445218186441f7386431d7987431e6f773b1b897f411f56743416797f3d1d8b8c4623a29a512ac39c552d9a8d49258d8f49249e954e28a69c522bbaa55931b5a55932999d502aaca859318ba3542a94a8582e7a9e5028698e46224a833b1a6a8741208d8a452378944822689a4a224a99481d80b25e2cadc06d389fc16c3692c06a3495bb65338db05b2ea6bb633498b6602e8a8f4624928943238c86422391843f215d753317577835185c7b35197c884021959046266972351726502009294a1e0a4a4b210d594c230f5b4d2510664d250f664d250f5749210e554b230f544b230e656c301756612912595e2811545a250f6c5e28116b622b13545b27115256240f474f1f0c4b4b1d0b5850200e755c2813524b1d0c394619082b421707815e29127c50220e6c4b1f0c444f1f0a94602e14745427116c4f230f695e2c1490703b1c736a331984713a1c756e371997784020562f13074527100553220e0547220d04481f0c045f34170a561d0b04842511096b281209872d160b672610075a1e0c0457180a03381508026e1e0c05751a0b04ff000000ff000000ff000000c0000000e91e120a779a4b1d65853f186a7a3b166f833f186f9c512274a5552789984d277b78391c4f612a1359632b1356642b13687033187421140caa3f1f0e3e7e37133a80391540833a1635813912338239123b813913348038143080371339883d1858ad54214ab2491a42da531958e872293f933f1450a1461750170b056515090341160a0443170b0551170b0581170b05ba271a11ab170b06b81a0e07d92f2017481509044d170b05da160a04de1c1007dd160b04da291910d9190e07d6180d08d81a0e08d8180d07d821160f496f300f4d99421b5ba44a1d5198441c559b481d3e8f3e1743933d18429c441c42a8491e3cb04b1e37b64d1f48d362273fc6541b55b34c1c4d923e16575e2c135b622d136d5d270e635e270f6b622a11585b260e3f5a240c4861290f686d30135d6c2f12606d301346692d106476371681723818715e2d105f733416446c2e13496c2f134a6c2e14496e30144a7033154c7737164e7c371753843c1b7f8141215e5a28123b160803685d29147e663019806b321a7e6e341b836f341b635d2a155a612c1656662f154d6f3117466f2f16426b2d146971341b445e27127373361d6c6e3219586a2f17636d31187770331b7775371d596f33185f682e16506029124f612a125f5b2811605423105a5424104b5724103d59250f3056230d315a260f3f5d2912435c2810445e2a11425c270f3d5a270f3552220e4b53250f5f5427115b5d2a135f67301743632c124f683116526933153c59270f373d190a5b7635195c793a1d5c7c3d1e607d3e1f5274371a336c3014396f32154870351b2a7532153d9a482144a1472065813c1a5f7e3917537937155e7837165e76351560773615586c3013646f321664753517687b38186a803b197b89411e7e86421f70833e1b7f8f471e878e4721758e441e7e91451e92974d2781924722869c4e226c94451f6c95451f6493441d638d431e44813a16537935144f682b106a8439166593421c80a9552a66a14d245c9c4a2178ae5b2da0b8643398b864338bac572d739c4a24507d36165d61280f5e5c260f5357220d3d521f0b3e53200b4156210b4658200c4c5e240e234f1e083552220c5b5929126a582a135a4e240f5e4b220f554a210e5a4c240f4d46200c4d49220d4c48210d4e47200d47441c09475d26105c5a26106f582712705a261173622a1373662c14705d28126155240f554e200d5f57230e6e6328115a55230f5c4e200d454b1e0a80622c13754f220d595a280e676830104d4d200d6f5427117053261177602d14796b351979703a1c7870381a6b6d351886763d1c7d773f1d72703718562f1508503817084b3817084a3817085d371707643c190a7b46200e874923106f45200d673b1a09493416074f3517084b3619095d3e1b0ad8261207dd261208dd241107db210f065f8e411564883f176e83401751a24c1a4bb353206db75e2a547331165170311544642a1360632c1460652e154d60281254662c13497d3914437e371338813b133b7e371452823c1749823b15387e36112e7c35122a77321033783412337d35144d9c471d56bd5b265fc1582660c15a2757be572564ce632a68da682d67de6a2d51c85d2550ae4c1c60a2471c5f9a451c608c3d1954893e1851863b164f893d17588c40186192431a6093431a579141186598471c6599481c5497471b5995451b6294431b729d491f6094441d5b96441c5894441a538e3e195993431c47853a18468d3e19509a441b459a4219419d421a3e973f1946a2471c57a94d2262a84e23639848245393401e509b441e3d953b1a55ab4b216aba55286fb8532953a4471f54a1452060a84d2557a5492356a64a2367a64c25659f492486a55129718c401f677a38196d7838196273331767743518466d30134e7032164a7133154a7132144f74351853753417656e341874653118745d2c15725e2d1660592a147a602f17846733198469311876682f166e672f166e6a311757612b1367652e1561612c144f602b1160642d145b622a135e602a144f5b2812495827116a632e165f5e2b13535525114e4f221062522612645427128b603218695e2e146b5e2f15635d2d1373602f16685b2c1461592b154f5c29135f6a3118637134196a7b3b1d6287401e5a9246204579361849723319556f321848682c164a6d2f174c71321750763519667e3c1f79823e227c8543247e82422358793b1c46793b1a447337194a793b1c507a3c1c5b73381c638d492458984a2552ab54276ac869367bd16f3d5ac8643164c5653459bc602f84c66d3d68ac562b5d9b4a25829f542a83a4552a528d411b8ca5552b84a3542b8ea5562b6392482177974c25869c512887964b26919c52299f9e542c859b5227959f522cafb262347aa556286da3532673a2502780b35e2e75ab562896b25c30a8ba623688b65d2fafc46a3cb8cc7141a4c66c3aa8c76b3ba1b45f3481984c27a08e4a28b894512eb08c4c2ba5854827b3804726bc764020865a2c137c5a2b128e5d2e14895d2e157a5a2b137156291374572b146e552b14625126104d4b210d544c230f5049220f4146200c4c48220e5949230f624e260f4749210d49461e0c4149210c3d471e0b4a49200d49461f0c48451e0c724a221049441c0b644e240e684f220e755626116d5d2a116855261070512510844e24117b51251171522510705426115350230f5e542711805a2a1373632f157d6c3519696932177672391b656e3517766c33188f773d1e8f763c1d84723a1c7a703819686730156c683117808042207b8c462478904825678b432265874221557e3c1c4e7a381a43713014446f30144d6d2e16426c2e13496e2f154f6a2d14586b2f154a622711466229114b642b1363642c1484783c1b6a6b301655672d136c692f177169311771642d163c5a260f57612b13766d3418417f3b163e7f39143e7e38143f7c371447833b14397e36122678310f34813912327a3411377a3512377f39143b8d3f174096411851a74e1d51a2491c62a44a1e63ab4d1f56ad4d1e62b857236db353236aa54c1f6a98431b579141195b8a3e183d8b41196392441d6996471b5e9143194c8c4017599143185795451a519143185792431a779b4b1f749c4a1d6a9a481c5b9443196291421b5e93431a5f92421b568c3e1a5a893c194f8439184a873a18409140193e953f1939913c16438e3d174282381747833a184d8539164d7c341654833919397d33143d86371653903f1c729f49216c923f1d628b3c1c638b3e1e5c883c1d6b8d4422668a3e1d5789401e6e9041206f9246217788401e657b3b1a61793919667637196f783a1b3e6d30133f6e3113507234154f703316516c32165b662f1667632f16745f2d16725d2d16675b2b1461592a145f59281380602e188867321a7b65301866622c1464652f155f602b145d5d2a1365602c155d602c1465612c157e6932196b612a15505c2a13465625105b5d2a1371602d16715d2d153a4c200e4b4d210f6c582a136a5a2b145f5b2b125a5727116c5f2e14725f2e16605a2b145e57291363602c156571361a837a3c1f808643225d853e1d538a411d4a7b38195875381c3f652d1346662d155572361a487234165a7a391b6278381b6f7e3c1f6c7b3c204975371a5c793b1d407234154a7236187c8644236b82432159793b1c748946225f8c452253984b234fa04f2578b05d3161ae582c59a55128479749225c9c50275795482281a1522b759c50289aab61358e9f502a849c4f288e9c512983994d27628a431f778c46239b944d288b8e4824828c48237387441f818e4b23728546206d7f401f778241206d7f3f1d738244226e83421f7c874422a8934f2a9d954f2ab8a45b31b2a45a33afa45a31819c522a94a1552d9998502ba1914d2a837f41229c834726997a4023a1774021b2754021a168361aa56032178f5a2d148e582b147b5428127d542913725227127f562b1571552c156d522812715027115a4b220e5549210e37441d0a4c4c240e5d4d240f4948200c42471f0c4849200c3c471e0b32451d0a3a441d0b50481f0d594a210e4f47200d51471f0d46431c0b584a210e5e4e220e624f230f584c210d734f25106e4c220e99552a15835528129a5d2e16755a2b135555261059592a1161622d146667301656662e145e6b3316606d341699793e1e6d6e36188773391a846f371a7f703819776933187f6c35197971351b7981411f758442206b7f3f1e5e73351958703318476c2f1542682d123f63291151662d1356682d1442602811446029114e632a1351632b124d6029113a59250f3c55210d555a2610485f2a1169683116575c2711525e2a125c642d134d61291155652e14596d34153b7a37122d7c3812397f3a143d823a1341894216327c3613337f3a152c7a34112b742f0e32763311357b37134c813a164e8139142d7730103a8137125a893e18658d41194b8e42175a8d401857934318658b3c186790421a6791431a81994c213d863a15468e411956914219508e40184e8a3d174e873a164e9243195c9140186594441a6a9e4a1c729b4a1d6999481d5d94441b568f411a6f96461d5b8f401a5f8c3f1a51873b184f823617478439154b893b194292401a37853614448236163e7a3215477c3215296e2a1052823917437d3315448034153d8235163c782f14517b311551823615507732155d7d39194e7130156f7c3b1d5b7a36193f7331144e7b351666863e1a6d84411d707e3e1c4e713214527235165a7233165d783a1946743616446c3014756f351b876b341b67592a148d6030196258291362582813525627115a582812695b2b147b5d2c16805e2e17715e2d16655d2c14565c2a135e5b2913515725105b59261279643019655f2c1666622e16635f2b14535927106459281354572611555a2a1362592914525023105f55281260572912304d200b495627106b5f2d1474633016745e2d16635c2c144950230f63602d157170371b8e7a3d1f787e3f1f617c3a1a5b7a381b6079391d557034194b672d15516d33185473361a62783a1c6b7e3f1f6d803f1f5b79381a6b82401f497335185e76371b326c2f1349773919607f401f71824220697a3c1d63793b1c4d733619677e412256783b1d5d7e3f205a7d3b1d4e75371b4379391a3d7d3b1951823d1c799a4d269baa5c31929f522a819a4f279aa1562e7e974e2682934c2679914a247186421f828a4421988b4926928b4924798a4821748645206e7b3e1d7b7b3f1f6674391a7d733a1c81723b1e6e6f381aa7774023916f391db27a4225ac7b4223c68c502c89763f217d733b1f6b6e361b76773d1f8d7b40228e793f239c763f22996f3e229b66371c9a5f3119945c2f178d572c147f562a127a532711835429127e552b1469512812584e251065522912705027115b4b220e5749200e4348200c4547200c4c4b220d4249200c40451d0a48471e0c3f491f0c3e471d0b36451c0b4149200c554a210d554b220e43471f0c3e441d0b6f4f25106b4f230f6d522710594b220d654d230f7e5025119253281391542812a05f30167c582a126e5d2d13625e2c136b6633177370391963662f156b6e37186a6f361886753b1c8c793e1d8372391b7b6e36198a733b1b6c6a34177f6f3619826a3318726b3318696e351861693117686e3417626b321656652f1452642f133d5b260f4b602a1254622d134c5f29114b5f2b1252662e13495c28104e622c1157612b125d622d143b5e280f3a58230d796d36186b6b3216525d281064602a12395e280f6f6b3217816f3519696f3717337835113077320f2f793511367734112c74310f317935122a7933102877321127743010317330103c753111317732103475321027732f103b7932104e803914497f3713407c35124c7e371363863d1762873a166d93431a589343195b99491b4c9d4b1c4795431a499a481b4a954418508e3e184997451854974518649a471b5e97451a6c9c4a1d719b481c689c4a1d57954418568d3d187599471f6790401d5d90421a53873b185e8d4018538a3d1847853917428a3c17368036143b7d3214407c36144e83391749833a17447d35154d8c3e1750853917427d34154882371640752f125279341566823b1a78843e1d5e733116486e2d13366d2b115d7c391a8088441f60833f1a7983401e667636185a7839175c733518477234145173361761763a1a556b3317746b351a77622e176c5b2b155a572611615928135e572712665b2b155b5728117b602f17875f2f185b542611645c2b14685d2c14615b2a145b59281250542510705f2c15655c2a1475632f196c612e16695f2c1571602c156b5b2915545827125b5727125b592913665829136756281261572812635627126a5f2d14635d2c137d6330167b603017645a2b146b5a2c157467321784753b1e6f74381b7275391b607236196475381c6973371b6a73391c5b6c33194a6d33175574371a5775391b727b3d1f808543237a87452373844321547735193c703215697c3d1e647b3c1d48793a1966773a1d5d71351a4f6f3317416c31164e7436184573371959763a1c4f7035194f7335195572371a4f7b3a1d54873f1ca0ac5b3289ab582c7d9f5329899f542b899950297b914a249198502887904b287789451f717f3e1c717b3d1ca08f4f29858243227c7a3f1f7273381c6f6d351a99773f227d6f391c726a351a7d69351a8d69361c9f6c391fb978412597723d1fa3784124786f391e6a6a351a77723b1d9276402283723c1f92733e219169361c875d2f198b562c1690572d1686562c147b552a146b53281181532913705026107351261072512712544d240f674d230f684f27115f4c230f4e471e0c46471f0c4c4a210c4a4a200c434a200c36461d0a38441b0a3b461c0a45491f0c4c4a200c564d230f564a1f0d4d481f0d4a471f0c694f261079552912805428118a562a1382552912764d230f8a53281282522711b25a2d168e582a135756270f6d5f2d136a612d156f6934196569331862653016726b351979703a1b88743b1d8e753c1d7f72391a8d733a1c716c36187a6e37198072391a8270371a7c74391a6d7035187271371a6f7237195e6a31155b67301457602c134d5d291152602a13616c3316626d34165b6c331548652e103b5e290f5a622c1269683217646831163b602b10325f2a1051612b125a642c12435b250f51602911656c3517696f3819646b34176368301526702e0e39793511397835122b7330102c722f1029712f0e30783410357630102f7632114379341334702c0e387a35123d783412427a35125c843c1568863e1665863d1663883f175e82391566883e178897491d709e4b1c7bab53204ca9501d5eb156215ca34c1f5eac532152a74f1e509c461a57a7501f5ea54d2078b357257ab357256cb154236db2542265b1552262ab4f2079b254267fba5f2b65ac4f21559f481d589b441c5da24a1e52a0491d49954219428c3b17418b3b164c94431a5597441b4d93411a419240184d9745192f833413478a39185b8b3d1a48843a172b6e290f3f732f12687d38195c79351753743115677735175783411d7182411e727d3c1b6a7a3b1a3e7234136e75361860783817617c3d194e753716547337186b6f37196e6734185c5f2d149965351b775b2b156a5a2a1455552612575626115d592913725c2c167a602f17735f2e17695b2b13665a2a14655c2c155c592812555726115d5827124d5525106c5e2d16575c291369602c16806530176d602b15645d29134e5826105c5b2913595b29135f5e2c14695d2a146b612c145a5b28126d642f156a642f147f6a35186466301657652e14686d34198a814220a18e4c27848c4824667e3e1c76854421788442226f783a1e6c74391c5e6f33196c753b1e66773c1f5d74391d68783b206e7a3d206380401f5e7d3b1c6a813e1e617d3a1c3a703115356f30143b743515467233164b6d321744692f16406b30154c70341851773b1d57763b1c3f6d3115687e4020787e4021648542215b93472174b1582b92c96a377bbb602f96c86c3a87b8603176ab562a7bb05b2a77a7542995aa5b2d86995027959650299694512a9d8f4d287c7e401fb1854928786f381c90743d1f6b6934188566331aab6c3c216d5b2d167c5e31199c6a371d8a64321b7867321950633117736d371a746a351a756f381c99713d218f68351b87613119975e31198553291587562c1581552a1382562a1467552a1371562b137754281270512610574d230d534b210c5e50250f61502510594d230f584c220e534a200c4f4b210c464a1f0b43491e0c39461d0a36461c0a42481e0c48481e0b524c210d43491f0c454b210d4e49200d4749200c594d230e87552a138555291294562b14bf5b2f17825227119c592c14715327107e5227116852250f68552710695a29126a67331785733d1e6b683419686a3519776d371b676d361878763b1b76763a1b79763a1c6d75391b75793c1c7e7f421f7686441e8f8a4622808844207285411e6b85401e5e7837195e743819526730145d652f145d662f1454652e14696931155d683014646d34176c743a18657036177570351760662f14636931154c642e12425d2810395b250e45632c1156642c1248622a114b6b311278773c1c7b7b3f1e657a3c1b2f743310367532103372300f2b72300f2b73321129712f0f32712f0f2f763210417934123b7933113374300f497835123876321052833d1561883e1762843b1669853c166b8941176782391573954719699c4b1b669e491b6cb156205bb4552258ae53205bb3572159ad522256ae512060b457225bb255215db0522369c15f2766b958266ebe5b275db957246ec35e2767c35d286fc55d2871c660295fbb572467bb572668b4542655b554235cb556244bab4b1e59b1552460b0502454a5491e59b4542358b75b235fb455244fb7551f5fbf5a275ec35d2a6cbf5e2d59a0471f31813514337e33133f803615548a3e183e7e37145c813c1b56823e195f84411d4e7f3e196a833f1b7884411f7a823f1f527636165b7837185a78361852723517576631155f5e2e156e5d2e16615b2c14545a2a135a5728135d56271250542611645a2a147a60311980602f18665c2b13665d2c15625928135f5a2a13685c2a126d5d2b145c582611675c2a1475623119625b2813705f2b1583632f178e663018555c2a13555a27114a5a27105f65301661632c146c673016776730185f612b13646931166f6a3217696931166f73371a6d7f411e69884420748d4725809b502a75a75a2b75a555297aa3542b779e502977944a2562813d1e617a391b6c7a3b1e797f44216874391d69773d206573381c6175371a7c8241204d7737185a7b3b1b4c763719356f30143f7332155978391b4c72361967793c1f507134187a7b3d21657a3c1e4374351756783a1b5877381a66783a1b838d48264d9b4a2058b356276fc8633063c4602d8ad9733b70d2703768c25e2c8ada743aa3d9773fabd5763e90bd673483ac5b2d6c9d5326adac633394944f28a396542b6e7a3d1d6c7c401d6c763d1c8c7743258d6e3c20716031198964331ba96c391fa16d3a217d66341d60612e1791703b1e7c6b361a91733e20856333197453281387572d167e5529147f52281481562b147a5529136c55281275572a13855b2e15695427106353261078572a1267542810655226105a50240e6d5126106b5527104d4e220d5650240e3c4b200b37471c0a434a1f0c3b461c0a594a1f0c534c200c4a4a1f0b4b4b200d47481e0c574c220e624b220f624e24107b5327118c562b1498582d15a9592c16744e231072512610524f240e4e4f230d7957281275602e146d622f15786d371a6f6c371a786c361a7b723b1c656d34186d77391a727d3f1d747e3d1d797e3e1e6c81411e6382411e6987431f77924a23819247238e974b267e944824749548226588401c677f3e1c696d35186e6b33164b642e125b632c145e682e147b6831176e6c3217747139196e6f3516586e3314597136155d6a311538612b103e602a11355a250f3a5c260f5b6e33163e6a2e1240703112627b3919848a462251823c183f7b3812296f2e0e29712f0f3273311133702f0f3a722f0f3c75320f34732f0e387431102d6f2c0e3e73320f406f2f0f517332116b7334147b6d331581703717806e34166b6c3214596e32134470321151783713657b39165e7c39165a863d185899471c5aa74f1e59a34b1c63aa52205ca44a1d5ba94d1d5ca94f1f5bab4f205fab4e205bb2542259b151205fb653225eba56226bbb57257dc15d2a6cba57275eb8542361b8552357b3512260b956246bc25b274eb6522155ad4b2060b14f2270b3532571be5c2968bd5b276ed4672c58dc682a5ce7732d59c45e2843a2491e4897451d2e813416408c3b185894451e3f883d184d813a186689401d7d954923548c401a638d421c728f451f6f8b431f68853f1d637f3b1b507332165c6d321856612e14595a2a124457250f5a5a28125a5a2812695c291269602f14625b2a135c5a27125a59291167592a1360572913545628115c5927116b602c155a5c2911415a260f7767301769622b145c5c2711545b2710575b27114558260e4f5b281173612d155d5b29125b5b2811565e29115f622b136d662e1555632b1159672e1359642c1355662c136a703517707a3a1b658d461f68a05025679a4b236a9e4e2566a04d247bae552c73b55b2c6fb4572a72ab552a86a4532c7f9a4e298a8a45266773371c75773b1f72753a1e5f6e341a6d793d1e687d3e1e5f7e3f1e678243205c7d3c1c5d7c3c1d4775361847733519426f321755783a1c5b7a391b5e803c1c487a38195579371a5f7e3e1d567a3b1a4a76371752803e1b68994d2554a14c2363b55c2c59b0562973be613083ce6e358ed3703983d16c368ecc6a378bcd6d3375bc622c95bc65329cb16132839c512974944d25668e492262884420608645215e7e401f8285492492834a26596a331882733d207c6e381da37e46249e753f20aa784222886e391d7a6d371b92733d1f94763f2070622f1673612f15806a3818705d2d1475592c1461522611795327116f55271269582911725e2d136a5d2b11615827106e5a29127b5a2a136453250f524c210c5c4c210d7052260f5c4b200c3a451c0948451d0a50481f0b5e481f0c43421b0a3e421a093d471d0a4350210c4156220c4659270f4e5e2a0f6e6530146c5f2d12785a2b116a55291077552911574d230d4c4c220c4d4b210c624e230e5b52250e585b2a10465d2a11425f2c1155622f15706632196e6f381a6d74391a747b3c1c7682401d67803f1b63793a19527336175e76381958773a1866783a19717d3d1b5b703116757a3c1a6d723416657032155d692f1378673015615826106d56251178622d156e6c31165a6b30145d6c31146868311564652f145d6832155c6a32146071371548673012546934154d6731154f6d34154d7237174b753717537c3a1754803c1a5783411b7a823e1c3775320f2f71300e3375330f3e7432102c6f2c0d2b6d2b0d2c6e2c0d296e2c0c2f702d0d3a712e0e4b74330f4b692e0e546b2f106b6730126a52271077532810745228105c52270e414b200b5651240d5453260e5053250d434f220d45682e1054853c165d9240184e97431647903d1542903e14589c48185b9b481952994518449342164e943f1751a04819539f471a5da64b1c5097421961a44c1e569d451a50a047194da74a1b58a4481c4fa7481b72b050225aa1461b509943164e8d3c1757944319548f3e185c9d4a1c61a450204d9f491a66b155214ca14c1c4b93451c458138174a8b411a31803815668e46204d803a175b803d1c6386401c758a411c788a411c738f451d54873f195d8b421c7d853f1c5a7734153c6c2f11516c311556622d14675d2b14655f2d155e5c2a135f5b29135e5c29136d602e16705f2f15785e2c15886230186b5a2a145a5325105c552610565b281268642d146a662d1560662d1469692f1660652f166e642e1658602911555d28124e5b281166602c145f5b27126d5e2b1450552410675c2a136d602d146a652f16616730155b682e155f6c3116616c30166c6f341864733418637e3b1c758f47226687401e6f8e45217691472381994c2689a0502983a05028889b4b267e9047256c853e1e617d371a5d7d39194a702f1461743518617234185a703316547536173d7133144f7534164e753316517634163b6d2f12356b2d114a713415436d2f124b733515527a38184c7938184e6c3116345d260f42632b12646d34195a76381952853f1b44883e19518e421c6697491f6796481f6997482081ab572871a8532482b05c297e9f502584974e2692934c27848b47235f7f3e1b5a7f3f1d457538174a77391853783a1a6a7b3f1e5c6e35187c773c1d556b3317607037199a7b44229e7b4521896d381a8d6f3a1b7d6632176f6632167e723b1a83753c1c6f6e35187c6f381a6b6c37186c6734178064331764592d1584592d15795b2d176f5e2c146a6530176a67321668632f156e642f16826331166252250f51481f0c4e461e0b6e4c220f4c461e0b3d431b0955451d0b8e4e25106d48210e5d46200c69441e0d40481d0b3a56230c43662c10616e3215637235167b76391a816b35178a62301564542811524d230d76552910554d230d6f5127106b51260f574e220e5058270f455d2a0f3157260d2655230c455d2c124e622d124a602b105e652f1266622d126f6632165b5f2b11575d2b1250572610645d2c135e5727106458271064592810614f210e624f220e7f5527105c4b200c64451d0b68411b0b543b170a604d210d585c270f4a692e1145652b104f60290f4756230d50612b0f566830114a672e0f4b693010405f290e4c632d115a69321454642f123556230d395c280f4d612b1057602b1073622e12382810043a29100435290f043d290f043c2a10043c2a1004402b1004432c10043e2d11043a2d11043c2e1104402e110448301204493113044b3112044a3112044b321204453212044333120442341304423513043b35130437361404313815052f3815062f39150530391505353b1606333c1606343e1706373f1706334118063b4319064044180642451a0741461a074145190744471b0646481b0743491c073b461b073b471b07414a1c074c4b1c07454a1c073d4619073b421606394217063144180534491b0734481c0633491c062f4b1d07364b1c0735481b0733481a063a491b074e4d1f09434c1e09464b1d09484b1d08454b1d08424d1d083f4e1e08454f1f08505121094d501f083b4d1d07374e1d08374f1e0842512009414f1f084d4f1e08454f1d08464c1c07454b1b0742491a0640481a063f4519063f4318064741170647401506413e14053c3b12043c3a12043c3b12033b3a120440391204413811043d3711043b361104393610043835100336351004383510033d3510033e361004393510033d36110441361104483711045838120454361104593611045735110453351104513612044934110444310f04413210043e310f0340300f034a310f03533210044c310f04402e0e03452e0e03452f0e03432e0e033c2e0e03422e0e03502e0e03482c0d034d2d0e033e2c0d03352c0d03332c0d03332b0d03342b0d03392d0e033e2d0e03382d0e033a2d0e034b2f100441301004352e0f032b2d0e03382e0f03322d0e03332e0e03322f0e03352f0f033f31100434300f033a3210044535120453351204443512044f3411043e320f0351341204503411045936120457371204583612044d351205473512054735120545361205423813053d38140541391505473b1605553c1605593c1505553c1605563b15055c3c16065b3c1506503b1405593d1505523a14054f3a1405473a140545391305503a14064c3a14054a3b1506483b1405443c15054a3c1506543c15065f3e1707523c1506403a14053d3c1505393a14053d3c1505443e1605493b15053f3913054b3c1506543d1606533c15054f3d1506503d1606513e17064d3d1606503d1606523f1706513e16054c3c15054b3b14054f3c15054c3c1505493c1405493c1606413a14053d3c1605333a1405363b15052f3c1506363b15063a3b1506373c1606343b15063a3d16062d3813052b3a1405363b1505393c1505453e170644411806434118064642190749421906434219063d3e16053d3f1605413e16054a3e1605433e15053a3d14053c3c1405393b1405313c1405313e1605354018052e3f1605313e1605343f17052f3e1605343f1605333e16053e401706424118064b4117064942170649431806394117053342180633401705354017063e3f1705393d16052f3c1505602c1409542d1509582c1408582b1308602d150a582c1509582c15095a2e160a6a30160a7533180a743117086d3117086b3117086a31170866311708703217086d3217086d3217086d3217086d3217086d321607603014075f3114075e31140758311407553114075530140751311406553215075332150754321407543314085438180a5238180a533b190b4e39170933401806334219073b4018063940180641431a0752451c084b431a074a41190756441b084a451b083d441b083b441a0842461b0844451b0843461b083542180639461b073c471c07444b1e082f3c17063d3b1706303a1506363a16073f3a15054f3a1505583c1707444b1d09484c1e094a4f1f094759230a355a240a3c4119073d4119073a3f18065940180742461b0740461b073f431a074e471c094c461a07564c1d0a5e50210c4a481b074f3f18094e3e1809463e1709493f18084e431807524e1d094f4f1f09534f1e0a45421706414218064237150846391608423a1708493a170945381609483e16064e4419084a45190846441808423812054935150945341409493414094e361509503616094f3414096036160a6636160a6836160a6136160a5c35150a6236160a7739190d6837170c5e34150a6634160b6434170b5a32150a5431140a4b3013094c30140a5532150a5333150a5c34160a5e3315095733150a5e33150a5c32150a533014095c3c16084835130644371306512f140a5e31160a5731160a5631160a502f150a5c30150a442c12085d31150a542f1409502f1409502f1309562e13084b2d13085730150a56301409412f1208512f130757301308553113094d3114095f33150954331509533215094f32150a483316095236180a5336170a5938180b5338180a5637180a4c3a1606503f16075c461c0a4b431a0853431a096937180a5f36170951341609453314084533140846341408413d15064b4017075844190959451a095a4119084a3716094837160944371609493716095c3917095b381608563e1606563e1808483e1707543e18075e3c1707623c16066f3e1806643c17075f3c1706594c1e09564b1d0853451b0856451b075c431b085b3b1706613c17065f3b1606583a1606553a16064f3a16066432130558301104462e11044e2f1105563112055931130557321205573112055531120554301105573112065431120650331306383e1907363c1706403b18073239160636391606403c1706513e1807453b17064c3c17062f38150536391606393a160633381405333512053436130532371405353b16053e3c16063b3b16062b3714052d38140528351304253613052c381405353a1505453b1606463c1606473c1606433e1706493d1706453a1605473d1706523714055e3614055d3513055d33120450331204593312055f33120565311105ff1b1814ff1d1915ff1d1814ff1e1a16ff29241fff28231fff28231fff29231fff292420ff28231fa91c1915731c1814b81c1915bb1d1915ff1f1a15ff1e1a14ff1d1914ff1e1a15ff1d1915ff1d1914ff1a1613ff1c1814ff1b1813fc1a1613ff1a1613ff191613ff181512ff171511ff171411ff161311ff16130fff2d2620ff28231fff1c1816ff352d26dd221812493d1b0a392a1005382c1105482e120653240f069d3f1f10812c150a5b241005793217098a421f0d6e451f0d5c47200c6e4e250f684c230e5f44200c453a17075f431d085f451f0949271206530202015c0504043803030272070605a5060505af0605049b0605054b52250e3f50210c414e210d5a8f3e154a8d3d16ff0f0d0b9b0605044f000000ff0d0c0b932814097729130857241007482811084b2b120879502914aa693a1e573e1a08561c1814561c1a16581f1c175d201d1961602e176674341a71763517495c260e474b1d08602b2721642b2823642d2a24692f2b265f2e2a265b2f2b256834302a636a3017637434186f79381c5e3110066f34312b7035312b64322e2a7434302a6f34302a67322d2767302e2868302d276c2f2c2771312c26802d2924752a2521ff443e38b336312b722b27206d2c282171292621742b27216e29251f792c26217a2a2622852f2a237a2e28217b2f2921762d2821742c2821722a251f772c2620712c272087763a1f4f662e14536c3115812e2923762d2822772d28216b2a261f7a2a2720742b27216b29241d712a26206d27241e7228241f7228241e9e24211d711f1c18ba2d2824db302b267429251e6e2925206d2c27226d2c28227b332d2776312c268536322b7a37322b7539332a7238332b6d3a352d6f39352e763a352f6b3b342d723e373045511f078583411f738d47216388421d5c3c211461342f2861332d265c2f2c26552d2922572c2822592c272253511f0a5f5d270e6d7335188185401f8685411f58221c1656221e1958211d1859201c18541f1b165a1d1915561f161165431f0e6645200e6b3f1c0c873c1c0d673317095b2811077a2612077222100658873c15668a40165d632b125d5f281161461d0c74180b04881c0e06861e0f067f1c0d05721a0c0568190c0567170903ff000000ef000000ff060505ff030302ff040303ff040403ff050403ff050403ff050403ff060504ff090705ff090806f50e0b0758371808502a12053d1e0d0551200f065f2110074f200e063e200c0435220e0443200d04461f0c04441e0b04361c0a033f1c0a03441c0a04491a0a033019090341160803381006023d0f06023d120702391508024015090339140803681b0c056a1f0e06862613086a2a1408441e0c0442180a034913080262190a0477240f06fa010000ff000000ff000000ff000000d8010101ff080705ff070504ff1c1915ff1c1915ff1c1814ff25201dff25201cff27221eff27221eff24201cff25201de81e1a16e11e1a157a1c1915961b18159d1c1815931c1815731c1814751c1814bb1c1814a61b1713ff1c1814ff1a1713ff1c1814ff1b1713ff1b1713ff1a1712ff1a1613ff191613ff181512ff181511ff171411ff110f0dff29231eff1d1916ff2a241fff211b176b3d1d0c663c1b0b3f2a1005392d11064d411c0b8c4e2813994424117c33190b6b3317095f361607602911055c1e0c045b1a0a03551d0c0453160802571d0c0354230e04462a11057d271911a61b181797161515a80807075a050403400302015407050445060404620605044d51230d5353250e4152220d43983d134c823714ff141210ff110f0cff0c0908ff0d0c0b8b2c160a7432170a522912083e2d1208442f130881502a15835e31195039180757201c175224221b5126231d4d26231d576e3015537031165b7631133951200a564e1f0a733a3831753d3a336f3f3b326d403c325b38352e462d2923d15048404a51200a6571351a5f71351965733719453d190b8d4e4c43924f4e44a0524e459c514d448b4f49408a4c473c8d4a453b904b473d8948443b89322e286d27231ee83d3731ad322d276829251e7a3a362d7237332b7337332b7c3c362e813d382f7739332b833c372e8e3f3a3095413b3195423c33843d372d7138322a60312c25db453c3357642d15525f2a134d632c13763a352d91423d3390403b319b444035a1433d359e423c348c3f392f813d372d873c362d943e3a327336322899211e1a691e1b17a8292420cb2d2823542c27217e3b372e7e403931773f3b318e4942377b4540358d4d463b9a534d429a534d439958524688524b3f6c4b443960443e35d2594e454a3b261a5e682e117583411f7385411e68833d1a7b4c483c834f4b40854d483d7c48433a603f39306f423c31693f3a304b4e1d094a4c1d0965682f14747f3e1d807c3c1f493d2315542b27204e28251e4f26231d5728241e5624221c4d221f19482e160b5f3f1d0d5b3b1b0d7b401f0e6a391a0b6d35190b5a2d140868251107598b3d135b8e431741511f0c4955220d4a461c0b6b1509045c130802861a0d058d1e1006701a0c0468190b046a170a04c90d0602ff000000df000000ff040403ff030302ff050404ff060504ff070605ff080705ff090706ff090707ff070605ff070504f00e09064e3415064727100460200f06752110076b2110064d200d053b210d0443200d04441e0c04441e0b04391c0a03441c0a033d1b0a03501b0a0439190a033613070231120602401f0c0438100602421408034617090337150802651a0c0485221007862713086f2b15085523100544190b034e1409035d1408035e16090386281107ff000000ff000000ff000000ea000000dc010101ff090706ff1d1916ff1d1915ff221c19ff27221eff28231fff25201cff241f1bff231f1bff211d19ff1b1714ff1a1713ff1a1713ff191613ff1e1a15ff1d1914ff1d1914961c1814851b18149a1b18148a1b1714ff1a1614981b1713721a1713e21b1713fb1a1613ff191613ff181511ff181512ff181412ff12100dff25201bff1f1b18ff2a2520ff241f196a37190a70421e0c462b1106422c11064b3717097a4a23108e552a148d4f28137a401f0e753e1d0b723f1c0b683c1b0a59341708ff030302ff13110eff1a1714ff100e0daa080706db13110fa50505049b0302026f1b19168a1312119b1c1a18911e1d1b6c0c0b0a700a0807fe2d27225e52250f6a5627115053240d4a8a37124c75300ff4171410ff28231ef7100e0b782d160a7124110783371a0c4d2810074a2e13084732150870502814865e33195033150746231f195825231d5526231d564128194f6a2d13747c3b1d67893d1b3f4d1e095e382d246e3a362f6538352f6338362f643b38316239372f5835312a562b26217543413856672f1588783c1f6b713519492f0f05894b473d8b4a483f944c4a41904a473d8548443c944c463d9046423b9245423987454138803631296524201ce537322da22f2a2565322e277d3b372e793a352c863d382e873d372e853c362e813b362d8d3f39308d3e39308b3e392f92413c31703732296e3631297636322a7c2e292367652d166d642d1659622b13853e3a3094423c33903f3b3196423e339c423d35913e3930843c362e8c3f3930923c3930963c382f8739352d94201d19641d1915ae27231ed32e29257937322b833c382f7d3e382f88433d348e46413783474136904b463a95504a3e90514a3e88504b40744945396b4742396d4640387939342c5a5d290d787f401f6b793c1c687e3e1c7a524031704742377a49453b724441376d423d35673f3a30693e39306c3d38306e3d362d484a1a074461290e7c77381b90793c1e7d743818572b28215329251e5c2a261f5e28241e5725221c5423201a58231f18433313066742200f6f43210e7e3c1d0e6334180a57331709632d15085e9c4814679345184f5a240e5659250f765023104c1408035514090363180b03841e1006881f1007741a0c047e190c046e160a03e4060301ff000000d5000000ff050503ff060504ff060604ff060504ff050403ff050403ff050403ff050504ff060504ff0907068e2f15095d3115065f2612076a1f0f06702010067c211007441e0c04451d0b04431e0c04371b0a032f1a0903341c0a03411d0b03541d0b04561a0a034c1809033c1608023e1a0a03522610064b16090351170a03391709035b160a03731f0f067d261208722a14086a2e16094a1e0d045e180a035f1609035d14080363281106631d0d05ff000000ff000000ff000000ec000000ff0e0c0aff1d1915ff14110eff29231fff28221eff26211dff26211dff26211dff26201dff1f1a15ff1c1815ff1b1814ff1a1713ff1a1713ff1a1713ff1a1613ff1a1613ff191612ff191512ff1b1713ff1a1713ff1a1613a01b1713af1a17137a1a1613bd191713b7191613ae191512dc191513ff100e0bff2b2620ff27221dff211c18ff28231e93341b0c613d1c0a522b12074a2e1307402e12064d4a200c815328137e55291377532812683b1b0b803f1d0d603c1b0b4f351708ff14110fff14110eff110f0cff0f0c0aff050404ff0c0b09ff100f0cff181613d00b0a087e0807069009070687050504ac15131189090908ed25211cac0d09064b4e220d4a50220e3750220c6070301249692d0fff1f1a18b61d140d742b150a7f2e170b6d30170a7734190b592c1208563115084a331609784e2813915e3319513516075324211b6327241e5b25231d55672c14767133196c7135184f59260f5056220b663230296f37342e6e37342d6736342d6638362f663a37306539352e8b312c297e44423a63552b176a723519656d3117877a3b1e353f14068746423a9047443b9748453c81413e368a423f368f403d36843e3b348a403c367c322e277223201bd637322bb833302a773631278f3d39308237342b873a362e833a362d8539352d8039342c8b3c372d8d3d382e903c372e8539342b7f39352c7f39352c843b362c5c5b311762662f1766622b15495d2811863e382f8b3c393093403b3190403a3096403b339a3f3a318339352d8a39352d8e39342b883a352c8b36322b8d1d1a156a1c18139d26211bdb2e29238a39342a963c392f8d3f3a318b403d338e45403683433e368f4a4439924d463d904c473d82484339824b463c754944397f4c463b65442a1b727237195c793818687e3f1d557736177748433970433e347345403674433e3475403c335d37332a6c3b362d6438342c6b39352c65461b08505f280d82773b1d776f351988783b1c6234291e5927241e5c27251e5c27231d5623211b52211e1956201d18561d1a1643341305623f1e0c5834180a5f271207693319096d311809598a3e135e91461a5259250f715c28125e5826103c12070244130803551409036b1a0d058e1e1007921d0f068a190c047d170a04691d0e06ff000000ff000000d1000000ff030302ff040303ff040303ff040403ff040403ff050403ff060503ff070604ff0b0907ff0b0807842510064f291105601f0e06761f0f07741f0f06831f0f076e200f06481f0d04371d0b033a1c0a03331c0a033f1c0b04531b0b04491909033b1608024117090340180903481d0b0353260f063f160903451609034c1609036d190b04772311075d2611075a291208582912085a1c0c0451170903511308025214080363240e055d230e05ff000000ff000000f9000000ff000000ff100e0cff28231fff27221eff27221eff28231eff29251fff29231fff1e1a16ff1e1a15ff1d1a15ff1e1a16ff1d1a15ff1d1915ff1d1915ff1d1915ff1c1813ff1c1814ff191612ff191512ff191512ff1a1612ff191512ff181512ff171411ff181411ff191512e2191512d8110f0dff2c2621ff2c2621ff1f1b18ff2d2721ff1815118843220e502911064a2b1106472d120652471f0c72532711745328128d572b156837190a783b1b0b6c3a1a0b4d371708d91e150fff161411ff161411fe14130ff914120fff14120fff14110eff0d0c0aff191613ff171412ff13100eff110f0dff171513ce120f0dba110e0ccb1514113d4b1f0b394c200b3d4d200c344b1e0b5253250f45732b0df21d1813692913084c2c12076a2b130868281108693015095d2f14095c31150a59341509765029128b552d155b3e1a095724201a5a24221c55622b12616a2f1554642b1350622a124c5a271050531f0963312e277038352e763937306d37342e7a3e3b326539352e6b38342e8c312b2777413e36697131166a7334185f6f3116586f3115556e3014593a20168f4541399144413886403d35883f3b3590403b358e443d31634d44355d312b238239322a7e3d362d7c4e44377e4a40344b383026642c261e8137342c8a3a352c8c39352c8f3c372e923b362e8c3d372e98403a319139342b82463d316b4f44345a37281d5b602b1466632e16425b27103557240e3752200d9137332b95403a3197403a31933e3830953c372f8839342d8636322b922f2b239d2d281f67453a2d6c3f352a8c3b332a863a332a85483e32764b41344138302558493f338e403b328d423d3390464137974a443a924a443a944d473d8f4c463d894a463a79474137475c351d50793818657b3b1b6b7d3b1b647c3b1b647e3d1b7e48423878443f357e45403676413b33773f3a326237322b6939342c6d37342b6c38332b66441b09756c33146b71361982793b1b7c77391a947b3f1e4e4725135926231d6026231d5922201a5b22201a591e1c18561d1a15601f1d183c2f12054c36190a4d3016097f371c0b63682f0e517936116d733518595b261156572510725e2812514a1f0b411107025314090365160903891b0e06a11e1007821a0d057a170a044f1408035f170a03ff000000ff000000e2000000ff040403ff050404ff050504ff060504ff060504ff060504ff050403ff0c0a08ff0c0a08ff0c09085e34160858251005691d0d06871f0f06811f0e06691e0d05501c0b04441d0c043c1c0b043d1e0b04441c0b04521b0b04521a0a04541a0a04351608033c1708034717090342210d0448240f0557180a0351180a034a170a03531a0c044b210f0550261107532812086626110852160a033c120702471207024c13070251280f05ff000000ff000000ff000000ff000000ff27211dff26211dff28221eff28231fff28231eff29241fff1e1a15ff1d1a15ff1d1a15ff1d1915ff1e1a15ff1e1a15ff1c1914ff1c1914ff1c1914ff1d1815ff191512ff191612ff191512ff191612ff191612ff1c1813ff191511ff171411ff171511ff171411ff171311ff0e0c0aff27201bff1e1a16ff342c27ff1915117d40210c7e4825114d2810054a2a1106453e1b0b7c52281383542913755428127b3e1e0e783b1a0a7e401d0a74411d0a63411b096b421c0b5c441c0a5b431c0a854a220d6f4a210d7a4c220d814e230f614e240d7953270f7052260f6050250e564e220d484e220d4b4c210d514c220d4d4c210c424e220c5750230e3c4c200c2f491d0a424f210d645928116d542510705526116c5626106159281079622d156f662e1465622b116a632c1377683116756b33166e713717766f35178273371a727136196a6b31165a682f15646a30165062291252622a126c622d15745d2b154f662c1468763619817a391d5b7030176f76361c687334197f77381d7f7a391b7a79381a6c733318586d2f1455692e1359672d13776e3419776e34196f6c33188473381d796f33196c6c321862672e144f60281163632c13585f28124d5d281165662e16565f29136d68301773703619676e34176e713718607134176c6f3319756f3319636c31174c5e27114f5c2611565f29125a5d2a1477622d177e66311a465d291254622d145e642e165d632c1358612b126d6d321857662d147a6b33176d652e158871391b9171391a93733a1c6b6931159274391b8f6f361a846c3518987a3e1e7376391a757b3b197f803d1ca48e49249b8d4924a6934c26958041219f70381dac7e4122ae8b4a269f8846238980411f8f824321757b3e1f768042206078391a597637184c743616657c3c1b517435165175351752753517537e3919537836166f7a391a80763a1b7e693217906531187f6a32185a6a311683783b1c777438196f7137187370361785773b1b8076391971703317766f3217726e321862682e1550662c13476127104c5e27104b62271055692d134d6a2c126e6d301770672d15635d27116e5a27114254210c6d622a1163602a115059250e4953240d4152220c5552210c5d52220c4e50210b464f200b4b4f200c5a4f200c4c4d1f0b424a1c093e461a084a461c0b50451b0a3541180743451a084b491e0a3c451b083a451b0944451c094e421c093f3a180843341507632e1307502910063a240e053b210c0438200c0449230e055c1d0c054f1e0c04501f0c044d1c0b04551b0a03491909034f190a034c190a033616080261180a03411e0b043e281005822e150a58170a034b16090348140803571c0c046b271307602b1509632a13084f220e063a1608023e1408025113080262140802ff000000ff000000ff000000ff000000ff241f1bff26201cff27211dff27221eff28231eff221d19ff1e1a15ff1e1a15ff1d1a15ff1e1914ff1e1a15ff1d1915ff1d1915ff1d1915ff1d1914ff1d1914ff1c1814ff1c1814ff1c1813ff1b1813ff1b1813ff1c1713ff1b1712ff1b1612ff1a1612ff191511ff0c0a08ff221d19ff1e1916ff28231eff221d1868391c0a6c44210c49240e0452281005532d130759461f0d765127127f5228137f4f271264361608603a18085f3d1b09533e1a0959401a0957431c097c471f0c8548200d744a210d6e481f0c67481f0c7a4b220e784e240e875428107551260e684e230d5a4b210d634f250f574d230e474a210c354a200b4b4f230d3a4c200b334a1f0a374a1f0b3e4f210c5251230e5355250f735b2811645b2811725c29127c612e1577632f1560652e1368662e135e612c126d6a3215716d34168674391a726e3416816d33187f6f351969692e165a662d14475f2710585d2812505d26115d632b145a692d1450652a13757133186d6f32177c6e33195b662c148e793b1d87793b1d626f3217696f34184f6b31156f6d3218756d33186b6c3218626a3016636c32167b72361a7171351961682f155b652c14746c321966682f165e652c1461632b145f682f1561632c145b652e144c622b11766f3618696a321755682f138672371b8471361b69672f1660652d1454602b1260662e16796a31186e663017585f2a144358260f766b3319776931175960291256602a13635f2b15515927114f5e2a128b6c351a916f371a93723a1c877137197f70371998783c1c8c6f361a7f6e3618736d3417826f34197b71361999783c1ea97b3f21a97e4323756f351b7e773b1c967b3e209d804322a98646239c854522827d3f1e857d3e1e6d783d1d747c3f1f717a3e1d4b6f3315527134154b6d30144e71331541692e124e6e3114547736164a7332148086411e737c3c1a80793d1d9a7f4121957c401e6d7239186b713918676b3215697236168b773c1c8b783b1c7f7739198175371a7a713318696e3015666e3214576a30134962290f4e6329104e6329104860280f56612a11435c250e6a622b115958240f4b55230e695f2a1165622d125659250e5b5a270f4555240d5556250d5653230c524f210c464c1f0b4b4e210c5950220c464c1e094c4f210b494b1d0b3b451a084f471c0b50461d0b50461b093d421a0942451b094a451b0947431a094f451c09503c19084033150754331607592d13075128100551250e054f230e0541210c044b210d055d230e0567200f06571f0d045b1d0c04571b0a0442190a03521a0a034f180903531809034a1709034a16080358220d05632a11065e180a0460160a035e170a0448160802481f0d04882b15097c2b1409702a130974211006531b0b0456190a0365160903c6080301ff000000ff000000ff000000ff26211cff25201cff26211cff29231eff27221dff1e1a15ff1e1a15ff1e1a15ff1d1a15ff1d1a15ff1e1a15ff1e1a15ff1d1915ff1d1915ff1e1914ff1c1914ff1c1914ff1c1814ff1c1713ff1c1714ff1c1713ff1b1713ff1a1712ff1a1612ff1a1512ff110e0cff26201cff26211cff1e1916ff2c2520b927170e7c42210e46220d0450260f055228110661401d0c5b46200e604a2210835228136633160976391909633718084d381607543c1909553d19086d421c0a79451e0c8245200d53411c0b52451e0b6b48200d7149210e714c220d754e240f614d230d674c220d564b210c4d4c220d584d240e41471f0a414b210c394b1f0b35491d0a3a4b200b394d200b454f210c4250220c6d5c2911705d2b116c5c29108a622e159069331765642f1364632e135e632d1265662e13846f3518867037197f7036188272371a847137196d672f15716e32175d6a30144a5e271064682f1558642b1355622b125c662b145c692e145a682d14756e331771692f1780773b1c7e783a1c626f32177b76391b576a31157373371a676e33177f6f351a64682f16616b31167772361972723619676e3317666b31165d652d15716930186d652e17786930175c622b1460652d1466652d156c662e15716930167c6d341866662e158571381a9271381b7c693318826a3319786730176b652e166c672f18806c331b7a6e34196f6830174a5a26103e5a260e5a5d28124d58251163602c15545a27116b632d1562622c13876a33197f6b331799733a1c867038199173391b8971381a9a733b1d876a33197d6a311771693116886f361a8270371ba0763b1f706a3218706d36197d743a1c92793d1f937a3c1f907b3e1f89793d1e827c401f7b76391b647134186d73381a657136195c7035174e6d311443682e1244672c12516b3014526c30155c743617657c3b1a9e8c4924bd8e4e28ae8747248a7d401e777238196b6832157b6f381a6b6d3517737336177c73391a7e74381a777538198a7b3b1c787436186c7033175f6a2f145b692f135a642b1264662e136a6a311560692f126769301546612a103c58230c4e5c260e535a270f685e2c13645d2a116d5d2a12625b28105159250e5258260e5353240e444b1f0b4c4c1f0b4e4d200b5250210c484d1f0a444d1f0a564c1f0a47441b0a44451b0a4d461c0a5f4c200c43471c0a43461c0946441b094c401908473d18084f39170849321506522f1306542e14074d2911065628100650260f055b2810065427100652250e0556200d045b1f0e05621d0c04681c0b04541b0b044619090355190a035a1809035d17090372170a046a180a047b230e068024100786170a0464170a044f160903631a0c046d2210067f2912098229140a7727120847220e055b1e0d045c180a034b1408033f200d03ff000000ff000000ff221e1aff241f1bff26221eff28231fff1f1a15ff1e1a15ff1e1a15ff1d1a15ff1e1a15ff1d1915ff1d1914ff1d1914ff1d1914ff1d1914ff1d1914ff1d1914ff1c1814ff1c1814ff1c1814ff1d1813ff1b1813ff1b1713ff1a1613ff1a1712ff191611ff1c1815ff2a241fff1d1916ff312b24ff1b1713924022107f3e200e49210d0445230d04663e1c0d54431e0e51441f0e55441e0d6f3015085a2e1305593014065c3114065a33140647341506533515074e3415076b3c1909543d190852451e0957461e0a55421b0958421b0957421b0955451d0a51461e0a50481e0a4d471e0945481d0941461d0a504b210b3b4a1f092e471c082f461b083c481d09354c1e09374e1f0a4451210a6a59270e855b29107057260e5a59260d5958240d5a57250d5f5c290f585b270e555b260d5f5f2a0f615f290f575f290f68622b1173602b115e5f2a10525e270f5360280f585e270f5e5c271065622b1163602b105d5a29104b58260e3c52210c515d270f4361280f686e3316647134176e713417676c321558662c1256692e1356672e1256652c1265672d1358652b125d672e135c662e1453602910595d270f585f2710575b26104f54220c5a5d28104e5a250e4b5b250d515c270e5a5b250f5358240e565d280f565b270f5a56240d605a260f625a260f5d58240f675b26106f60291263602811615e2711636028114a5c270f4f59260f4757240f4257240e4655220d4855230d4655240d515a260f505a260f4d5b270e4f5c260f68662e1159602a107c693113706930117e6932136c652f13585d29114b5e2b0f6a642e135e612b13847036177d6e3516716b32158370371864602a11726b32165f662d136e682f1466652d1363622c116b632c1262612b11535e280f5a662d12405f270d3f5e270d3d59240d3f5a240d465d270e55622b106d6d3214827639198a7b3e1c6b7739165c7032145d70331456692f12606a30135e6f321362703313636f331352652c1055642b1064672d116d692f125a632a0f5361280e5e612a0d5559240d5555230d5a5d270d5a632c0f53642d0e3f5d270d3456220b3c59250d4657240c5b56250e5e55240d5554230c6254240d3c4e1d094351210a464d1f0942491c0946451b0847481c09564b1e0a424a1c093d491b0847481a0848441a08423f1807403f180736421907444219083e3f17074d3d18073f3915063c37140641351405432f1205442c1105462b11055733150754331407573012064e2d1106492c10054d2a100544210c033a1b0a0382200f06561b0a0348180903481909035819090358170903581709035e190a037f1d0c055e0f06027a150a0469160903591508034b140803591408035f1c0c05692310076f261208612411074924100553200d054418090344130702461c0b046315090390120e0bff27221eff26211dff27211dff211c17ff1f1b16ff1f1a16ff1f1a15ff1f1a15ff1e1a15ff1d1914ff1e1a15ff1d1a14ff1e1a15ff1e1915ff1d1914ff1d1814ff1d1813ff1c1813ff1d1913ff1b1813ff1b1713ff1c1813ff1a1712ff1a1612ff0d0b09ff221c18ff1e1916ff27211dff1e181488341a0b6c3a1c0b491d0b04481f0c0446240d055c431e0d59431e0f58411d0e6d44200f5a0e0602530d06025e0603014c060301400602014108030152090401470903015f0d05025f1207025215080257190a03491b0a0252220d044c230e04542710054e2a11054f2d1205492f1105543314063f3213054a341406333012043d3514053c361405333513043a37140541371605543d19075d411b085a441b08464119064e411907414119062f3e1706403f180749471c084f491d0850491e0942451c0848471c08564a1e09574c1f09534c1e09534c1f0a5b4b1f0955491d094d491d09504b1e09534f210a4c4f210a3f4d1f09444f200a4051200b5058240b575b250d555b250c4d5a240c525d250c3d5b220a4d5d250c525e250b495b220a485b220b4b5e240b6662270d4060220a4763240b5562230b485a1f0a46561e0a41531d0946561f0a4b58200b4e58210b5659210b5059210b5058200b5658230b5453200b5a55210b5c55210b6756220c6c56220c6654200c4d4e1c0a524e1c0a63511e0b4b4e1c093a4b1b09414c1b083c4b1b08474d1d0a484f1f09464e1e093c4a1b083b4a1b08404c1c09444f1e0949501f095f54200a5c57220a6656220a6754200a585320093b4f1e083d4f1e095751200b4b501e095558230b7d622c0f665b260c6157220b5e59250a5957230a5759250b5756230b5e56230c525e290e5750220c5b51220c5857250d4255210b4955240c4454230b5f59270e5b58260d4c50210b384a1d075c51220a5c53210a5458230a3e5a250b43642a0c4b60280b3a5e250a2f5a240a2859240a3a5d260b465f290d52622b0e465c280d4b57230c5e59270e4d51210b5256240c5856240d4f52220c47441a083c4219073d4e1e073a522008425321093f54220a3d56230b3255220b3b55220a4953210a573d1606423c15054b3e17063f3813054b3b15064a3a1406453b1506483a1406473913064e3a140638381305413913054d391305413813053f381305423813063f3412053c2f100542280e044e240d044d210c034c1f0c03501b0a03451608033e10060240100602480f05014c0d0501540e0501480f05014a0f05014d0f05023a0e0501330e06023d0f06024d1a0a043f1809034e1a0a0352190a044e17090357160903521508024e15080353130703491307035915090356140803531509035215090356150903631f0e05662110066822100761210f06491a0b04481608034c1207025d1a0b045a15090398120f0cff28241fff27221eff231e1aff1f1b15ff1f1a15ff1f1a15ff1f1a15ff1f1a15ff1e1a15ff1f1a15ff1f1a15ff1e1914ff1e1914ff1e1915ff1e1a14ff1d1914ff1d1913ff1c1813ff1c1813ff1c1713ff1c1812ff1c1713ff1b1713ff0b0908ff1f1a16ff25201cff211c18ff2e2823ba28170e7634190a441b0a04451d0b04411d0a03473a16084c411d0c4b401d0c4b3f1b0c5c361a0a5b35190953321708502c1407ff161310ff161310ff161310ff15120fff15120fff15120fff15120fff14120fff1e1917ff1a1714ff171512ff14120fff13120fff13110fff13110eff13110eff12110eff13100dff12100dff15120fff211c19ff191613d619110c642a13085a2711077134180b8b4221117c3d1e0f41251107661c1a155e1c1a1569201d1867211e195b1e1c174a1d1a15ca1a1714531e1b18c0221f1b5925211b6927241e6125231d6127231e5f27251f722d2b24722f2c266c2e2b25672e2b2575333029793430296d33302a8537342d6435312966312d27972d28246c36322c8c3f3b338f3f3a337738342d8038352e893a362f8d38342d8a37332d8c37332d853331299233302989312e27a8403a302d2621197e26211b7925211b54211c164c28221ba53c3429412b251d711f1a15851d1a14872e29238d2e2b248f2e2a2494302c26872e2b249b332e2790302b2496443c2f28211b14962a241c7126211a3e1f1b1453302920b03c342a79322b2294312c2493322e2697332f279034302894342f28882f2c248a221f18861f1b15ab332d23442c251c64201b1582211d1768211c1645211c16833a3228452f2820583630278b37322a933a352e8b3a362e8e3e38308c3f3a3198443e3589433b3281423d327a3e393076413a30b53b332c61322d267b40393085413b30753d362d823e382e6d3632297a39342c7537322a73342f27672f2b246e312d2571322d257a352f2766322d25bb2f2c2785201e1ba82523205527241d6327241e5e25221c6025211c5e24201b5d201e185d1f1c175b1c1a1651191713631c1a155a191613531815124b1513104c14120e790f0c0a3f13070266331a09703219095f2410065d1f0d054b1b0b04461b0b04571c0c056a1d0d05701c0d0579201005690a0502711c0e057b180c0564160904771c0d06721e0d066a1c0c056317090453130702ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000851d0d056d1d0c04531b0c05441a0a045f1b0c054a1b0c04631c0c05591b0b04551b0a034b1809034e1608035d150803591508035815080340130702491407024d1408035114080345130803591408035515090362200f056b1e0e067a1d0e067a1e0e0652180a034e1408034e13080363180b045214090397110e0bff292520ff29231fff191612ff1b1713ff1a1712ff191612ff1f1a15ff1e1915ff171511ff171511ff171411ff171411ff171411ff171411ff171410ff181511ff1a1712ff1a1713ff191612ff191512ff191612ff1a1612ff120f0dff1f1a16ff29241fff1d1915ff302a24fd1a15127533180b52240f06401b0a03421e0c044c3717086543200e4e3d1a0b423b190b60311609613519095030150851301608e919140fff151310ff161310ff161310ff161310ff15120fff14110fff13110eff171410ff191614ff1a1715ff141310ff13120eff13110eff12100eff12100eff12100eff11100dff120f0dff110f0cff1e1a17ff12100eff17141158281207532610065c2c13086a3d1e0d723f1e0f452810056a1c1a15641c1a15621e1b166c211e1963211f1a56201d18441c1914b41916126b201d1ac7201e1a5c27231d6a29251f6428251f6228251f6b2b2821742d2922702d2a23692c2923602a2822612f2c2669302d257136322b8038352d6534312a67322e27962e29247538352d89403c3394403c33893d39308439362e8f39352e9135312b8a34312a8832302984312e2793322f288a2e2c257e26221c6e1714106914120d7314110ec9181511870e0c0a6f181410801a16118b1916118a1c19148f2d2a24912e2a248b2d29238b2c2922812b28228c2d2923952e2a246f29241e671a1813711e1a15a7231e186e1e1a15771f1c1685231f197a221f18982e2a2199302c249c322e2591312d268f312d258f302b228c211e188c201d1677201d166f1b17129013100d8816130f9a1a1612b214110d671b1713711a171292302d279235312a9338332d883a342d8a3b362e853c372f84403c3388403c3278403b317a403a317d423c33ae39332a68353028763f392f87443e327e3f3a2f83413b307138332a7c39342b773631286c312d256e332e257734302772342f2676332f265d302a22ab2c28239322201c9e23211e5428241d6328251f5d26231e5c24211c6725221c5d201d185a1f1c18551b19154e191713561a18145e191713491614104b15130f5014120f750e0c0a440e0c0a441509037233190a622a1508621e0d055c1d0d05581d0d05451c0c0486211006751d0e05741d0e0566170b0465140a035e190b04601a0b044f1b0b05501a0b04681d0d064b17090346150803ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000000910e0c09900f0d0a80100e0b5014110d320f0d0a62210e056c200e05521c0c054f1c0c05461b0b044d1c0c057e1d0d06611a0b0455180903511608034f1408035c14080350140803591508035313070256130703591307034512070264130803661308037125110686221107891e0f069120100752170a03471307023d1307024d180a033f1307029d13100cff27231eff1b1814ff211c18ff211b17ff211b17ff1f1b16ff1e1a15ff1e1915ff1d1815ff1b1714ff1a1613ff181512ff171411ff171410ff161410ff161410ff191612ff1e1814ff1d1814ff1c1814ff1c1713ff17140fff1e1915ff201b17ff1d1916ff312a25ff1d1814572f14096436180a4b1b0a04421e0c045e2c1308593f1c0c6f462210543c1a0c5a35180b46301507553217082d2c13063a2e1407ff161310ff161310ff161410ff15130fff15120fff14110eff13110eff13110eff1a1714ff191513ff191714ff13110eff13110eff12110eff120f0dff11100dff110f0dff110f0cff100e0cff191512ff171411ff2a241f6b28130953250f065c2711077642210f6d3f1e0e4d2a11055a181612631b1914651d1b165e1d1c1663211f1a61221f1a56211e19431e1b15ab1a18145d211f1bbb24211d5a28241d65292520692a2721652926206d2b2822762e2b24782f2c25722d2a24622c2a2369302d266e322f286b34322a7e3a362e723a362e69342f299b322d277e3d39318e44403693413d34883e3a31853a372f8f3a362f8c36322b88312f2885302e26862d2b258d2c2b24872b29238b28251f831915107613110d890f0d0bfb12100da00e0d0a7316130e8b181410901b1712861916128e2926208e2b28238f2a28238d2a28217e27241f832a27218d2d29227f2c28229324201a8d211d18bf201b16721c181492231f199025211a8f2a251e912b2720962d2922992f2a23902e2b248b2d2a238f2d2922851f1c16881e1a15871d1a14811b1712ae16120e9513100daf120f0cc71814106c191611892b261f98342f298e33302a9038332c903a352d963d38308b3e393188403b328b433f34834640348947403688484138a53a322a6b3732297b423c3184433e337b403a3084413b306b3632297838332a76353027753430276c312d247534302771342f26793732285d2f2b21b6302d277e211f1ba125231f4f24211a5c27231e5c26231d5b25221c6927231d61221f1a5e1f1c17581c191551191612571a18135a19171350181512561613105614120e730e0c0a440e0c0a5c12100d5c251207662c1609692814086c211007581f0e05531c0d04751d0d05861f0f06731b0d05621b0c0464170a03711b0d04701b0d04771c0d058e1e0e077c1f0e07541a0b054616090348160903fa010000ff000000590f0d0945110e0b40120f0b4913100c4314100c4d15120e5916140f591814105016130e4315120e3e13110d5713100d7e241006792711064f1f0e05681f0e06401e0c0551200e05751d0d06631a0a0466180a0454160803521508035e1408036a1509035c1407035c14080361140803601408036113080356120703662611067b2411078a211107822010064d170a03441408024e130803671e0d0545130802cc17130fff1b1713ff1b1714ff1d1915ff1e1a16ff1f1b17ff201c17ff211c18ff221d18ff231e19ff231e19ff221d18ff201c18ff201b17ff1f1b16ff1f1a16ff1b1713ff191512ff1c1815ff1a1713ff191612ff181511ff0d0b09ff1e1916ff1e1a16ff26211cff1e1915442d1308443215094b190a03491c0b0450240f055d3215084e3b1b0c473c1b0b3d3b190a3d2d1406492e1507372e1506432c1407ff16130fff15130fff151310ff15130fff14120fff14110fff14110eff13110eff1f1b17ff1a1714ff1c1916ff12100eff12110eff12100dff12100dff11100dff110f0cff110f0cff100e0cff15120fff1a1613ff1f1b18792612095b261107722f15096e361a0a9b462412934121104a20100859181612631d1b165d1e1b164c1c1a145d22201b5d24221b5123201a4f201d179c1816125725221ca926221d5c2a26206b2c2922632c28216a2d2923722e2b247b302d257c312d276d2d2a24662b292270312e276f3331286e37342c7e3d3930703a372e66353129a13630297f3f3c339546423893444036893e3a32913e3a31913a362e9635322c8b333029872f2c267b2a27217327251f7f28262090302b23643d352a68372f267f332d25792f2922712f2921742a251e3f211c1673201c158d1d1a158a2825208e272520902926218e292620922826208928251f902a2620863933296d44392b70322a208330281f7b3229217b3930257e30281f732a231c982a261f982d2921992c2821952d2923902c29228029251e7a211d1787201c16a8252018693a31256e3a312686332b22822f29217e342d24713730253f29231b54332d2490322e288c3430299339342d933d383097403b3292423d3490484237934c463b8547403577433d33ac3c352b763c362c8247403482453f33763f392f87433d326c3833297b38322a7a39342b7537312761302d237036312876373329723732286c353027b6322d286e1f1c18891f1d18562a261e5c2b27205828251e5b27231d6528251f5f23201a5f201d19591d1a165e1a18135d1a17135f1917135e1916125516130f4e14120e780f0d0a4f0f0d0a6014110e5f12100d52231106612c1609852a150978211007681d0d057b1d0d05601a0c04781a0c055814090277160a036e1c0d047a1d0e05801c0e05621a0b05712110075f1b0c054f170903511709035f1c0c049d110e0b45110e0b4612100c4a14110d4b14110d4915120e5316130e581815104c16130f4314120e4815120e4314120e7313100d5a16130f7926100661281106401f0d056a2410075c23100674241007811f0e076d1d0c05651a0a04621809035c1508035c1508034a1307035d1408035e1408035714080358130803481307026b2913077f271308832412086d2110074c15090345140803461408035c230e054f180a03ce13100d96171511ff1a1713bf171511a71714118c1714108c181411b91b1713bd1a1712a0171411a9171410fd1b1713ff1c1814ff181411ff181410ff181511ff181511ff181511ff1c1814ff1c1814ff1d1914ff0b0907ff211c18ff201c17ff1c1814ff211c18b120140d4736180a5b190a04561a0a04541c0b046c2a120862401e0e5c3e1d0d543e1c0c3c2a13065c3117084b2e1507392b1306ff12100dff14120fff12100eff12100eff151210ff12100eff13110eff12100dff1b1714ff181613ff191614ff12100dff110f0dff110f0dff110f0dff100f0cff110f0cff100e0cff100f0cff0f0d0bff1a1713ff171411bd1e120c52240f066e2f160989371b0c7d411f0f7e42201044250e046819171255191712591c1a15531e1c16521f1d165f24231b5925231b5023211a48211e189f1816125225211baf2e2923572a27206a2e2b236d2e2b2472312e25813330287f312e277e34312971302d26662e2b25673330287036332b6f36332b833f3b316b3a372d6f38352dab38342c8c433f359c4a453c91433f35843e3b328a3d39318a3a372f8635312a89312f28842d2b2573282620802826207d26231d773530273a110e0c41120f0c6a191511631915114812100d59221e19431d19147316130f8c1e1b178724211c9023211d8925221e8a25231e8c26241f8b2725209428251f853c352c3c13100d4f16130f751e19146d1e19144a17130f602e271e89261f199427231c8627241e8f29251f912c28218d2a26207f26221c8c27231d831d191486362f25551a16124413100d711b1712661b1712641a16115b26211a3b27221a522e292197322f2891342f299339352e943e3a3294433e348c433e3490494238994d473b7a443e3381484135b03e362d7c40392e884b44387e443e32703e392f7c403b306638342a7139342a7438342a723a342a6b3530277939342a71373228733a352b66363027af37312a8425231e82181512522a251e5a2c29215b28261f5f2a2720682a261f5c22201a5b201e18591d1a15561a17135f1a18135d191713611916124d15120f5516130f7c100d0b53110e0b6815120f5d12100d5c12100c7530180a6d2a14095f2310076a1f0f05601c0d05601b0c05691a0b04681a0c056d1c0d056f1d0d057a1e0e05751c0d055d1b0c046f221007701c0d065d170903571709035c1b0b04a5120f0b4c120f0b4b12100c4f14110d5014120e4914120e5116130f561815105616130f4c16130f4715130e5116130f9a16120f5b16130f5617141065230e0568240f057223100754220f0668251107642410069d27120974200e06671a0a045f1508035e140803541407034d1307024e130702471307024f1408034a1307025c2912067327120873241107571f0e0543170a0348150903481408025c1f0d04441c0c04a20d0b08a71b1713ff1a1713c91b1713e21b1713a91a1712841a16127c19161188191611561815116218151195191511871815114d17141090171410bd171310ce16130fff1815119114110e8a14110edd0e0c0aff28221dff231e1aff1b1714ff26211ced1a14104b230f064326100753190a0358180a03652812086f411f0e7444201070421f0f6d31170b432d150764311709332a1206412b1206ff181512ff171411ff171411ff151210ff151310ff12100eff110f0dff161310ff181612ff181613ff110e0cff110f0dff100f0dff110f0cff110f0cff100e0bff0f0d0bff100e0cff0f0d0bff171411ff110f0dff1d191570261109792d1609853a1d0d653b1b0c65391a0c3a240e0466191612661a18134d181611511c191453201d1752201d175f25231b5626241d5424211a3f1c1914ae191613481f1d18ba26221c64302c2477322f2771302d25642c29217a322e2678322f287834302866302c255f2e2b245a2f2c2458302e266435322a773c382f743e3a316c2e2b259026201c7b312c258d4743399b46423791423e34913f3c328d3d3a318837342c7a2f2b257a2b28227727251e7d26241e7c23211b8228241e681a1613761614109e1815128c17141043100e0b4a110f0c441916126c16130f7a13110e81211f1a7f201e1a8722201c82211f1b79201d1870211e1981231f1b8625211b741d19148d1b1813a11b1713951d19144814110d671e191490231d179726211b8e25221c9027231d8126221d8526231d8125221b801c1a147f1c18138d312a226f1d18136f191611971a17129c1c19144f15130f4513110e3f241f19522e29228d2e2b2487312e278b37332c883b372f863f3a31773d392f78433e338a484337844942357d3f3a309b2b251e6f2d272079443d31854741357c423d3281433e31673b372d743c372d6c3a352a6f3c362b723a352a7b3b362b6e39342a793d372d59322e25a43430297a22201c9115130f5b2d27205f2d29225729271f5126231c5d2a271f5423201a57201e18531d1a164f191612501916125219161256171410571714105416130f730f0d0a4e100d0b5e14120e6313110d6313110d60110d096c2a140970271308622310076f200f06861e0e06551a0b045f1b0c046c1d0d05741d0d05901e0e06861c0d05571a0a04611e0d056c1e0d06681a0b04671a0b0463190b04ae14100c4f120f0b4b13100c4e14110d5115120e5216130f5516130f571815105c1815104e16130f4e17140f4b16130ea417130f5416130f5618141061191410641f0d055c1b0c0452230f06632611073f220f0583271108621f0c055c1a0a045c16090351140703631508035a1408034f1307024d13070353140803451307025729110669271207742512086c210f06521c0d0544170a034b150903551a0b034f210f058b0e0c08d4221d18ff1a1713ed221c17ef221c17a01f1a158d1e19158a1d18148b1d1814831d1714851c1713651c1713801b17136b1b17134d1a1612a41a1612d2181310ff1814119818141092161210ff100d0cff1c1815ff191512ff2a2420ff1a16125d1508034d1a0a0449180903401b0a0358210e0558301408643f1d0e6b3f1d0f693c1b0d3c2711066c301709642f16094e2a1106e115110fe6110e0de7110e0cea110f0cff13100eff14120fff110f0cff120f0dff1a1814ff171513ff161411ff100e0cff100e0cff0f0e0bff0e0d0bff0e0d0aff0e0d0bff0f0d0bff0f0e0bff191512ff201b17ff26211c6e24100758261106662c14085d2b13086b3b1b0d5f33170a511f120a63191712621a17134a1a1712501d1a154c1f1c16572220195a26231c5b28241d4b211d1752110f0cc71815124f181613b419161265231f1975322e276c312d2667302d256b302c2463302d2567312e265a2f2c24552d2a225e322f265b322f276438342c6d3b372c6e2f2b245424211cd4362f2a5226221e642d2a23954a45398b433f348e423e34823b382f8337332b8b322f28782b28226a25221d7b24221c7e24211c5b1d1a155114120e7c13110efe181513b412110e741714115f15120f4b1815117115120e75110f0c731c1a16791e1d19711d1b17701e1b18721d1b16701e1c177a1f1d18741f1b165c1815109e181512ff201c18cd1a17137e1d18136e1b171299221d179724211a8c24211b8c25231c8a27231d7824201a7c24211a781b19147d1c1813682520195c19161173171410fb1d1a16d51b1714891d1a156d1c181448221e18542f2a237f2d28226d2e2b24773330297838342c793d382e7c423d327e4440347f4a44377c3f392e72322d25c438312948241f1a562a251f85453f3370423c307a453f33633a362c6c3d382d74413c306d3e372c753e392d763d382d783b362b713f382d6e28231daf2b2823841d1b179c1715124e1e19145c2d2922522b2820522a261e4c27231c4923211b471f1d18471c19154a181611511a16125a1917124e1714105317130f4e15130f8c16110e320f0c0a4312100c6014120e5e13100d6613110d4f0f0a077d2915086b25120770271309732612085e1e0d05591c0c04671c0c056b1c0c057f1c0c05681a0b045c1b0c05621e0c05671e0d05541b0b045b1a0b0466190b04750f0d0a49120f0b4c12100c5013110d4814110d5115130f4d16130f5017140f5618141056171410561915115017140f9b17130f5d17140f4b16130f5a171410621d0e06781d0d0566210f06662611075c2611075b2510078b241008371809034c15080351150803551408035214070358140803521407036215080358140803622a1207692913087c27130880231007501f0d054c190a033f13080252170a035a1d0d0591120e0bdd26211bff1a1613ff29231dff28231cc2251f19ed241f19b4221d1876221d17e7241f199e221d187c221d17ab221d187c201c175d201b16ce221d17e01b1712ff171410c0201b17ff090706ff1b1714ff1a1612ff1c1814ff1e1a1668150904691609044716080343180a033f200d045c2811076d411f0f693f1d0e6d3f1d0e5a291207652d15086d2c15084a2610057d15120f6414110f7c14110fa313110e8912100eb5110f0db113110e94100e0cff171411ff14120fff161311d00f0e0b890f0d0b7d0e0d0aac0e0c0bcc0e0c0bd00e0c0bff0f0d0bff0e0c0aff110f0cff1b1915ff1a1713a21b0e0874251007682712076526110760391b0b7d3f1e0e44230f04851815117617141069171410651916126c1c19146a1d1a156e1f1c1670221f187325221b4d14110d621613107c181512701e1c174e171512961d19158e2d2921a738332a9b332f2794322d2587302c24732d2a2184312d257d2f2a237a2e2a247d312e268538342a80292620872b26208b28241f7125221d6326221e8827241dae3e382fc3484239b4403b32a239332ba4343028982e2a24a12926209924211c97201d19961e1b18511d191445100e0b6212100d8e0f0d0b8c100f0c6914120e6a14110e431613107414110e96100e0c9d1c1a17941c1916901b1815a31e1b17981c1916ab201d18a81d1b16501a16115414100d87171410b3161310981815117b1b18127f1d191399211c16ab211c17a4221e199b211d189e231e19a223201ba924201a8c1916129c1a16125a251f184613100d6015120fa314110fac15131075191612761c18143e211c16552f2921a32c2722a0302b2587302c24a73b362da53e3930ab443e34a6454034a9453e328229241e6a27241e7c2b2621952f292362211e199d2e29229f433c31933e382d84393329893b362c8d3e372c903c362c9e3e372d9b3c362c9f3c372c7529251d7e221e1972201c1867201c18741d1a167b1c18146e231f197b2c28206d26221c6923201a5e1f1c165c1d1a156c1d1a1568191611741715116e16130f6e16120e6c14110e7617141067120f0c74110e0b61110e0b7c13110d8413100d79120f0c6d110e0b3d10070367261208622812086427120859210f05601e0d05621e0d055a1b0b0450190a045a190b044f1a0b04721e0d066f1e0d064218090340170903761a0b04610d0b084b110f0b4c13100c5014110d5515120e5716130f4815120e5017140f5217140f53171410571815115016130fa618130f5215120e4e15130f5a17130f5416130f6e1c0c04701a0b046b2712085a2510065e25100783220f074d1809033a150802461508024f1508034f140703531508035b1608036e160903681508035a2410067b271207662410076a2310065d1f0d05521a0a034e160903741e0e05591a0c04650d0b08a31c1814ff1a1612ce1e1a15641d1814751d1813a21d1814861d1914891e1914a81e1a15721e19148f1e19158d1e1a159d1e1a15861f1a15811f1a15ca1a1612ff161310ff090707ff221e1aff1e1a17ff181411ff2a2420ad160f0b5213070376180a05411c0b033c200c044d411d0c794321107343201074411f0f712b1409792f1609892f17096b2913086923140c9c1c1915851a1713891915139719161398181411bd161310c215110eea14110eff15120fff13110e63110f0ca6110f0ce30f0d0b7e100e0b6d0f0d0b780f0d0b920e0d0ba40e0d0aff0c0b09ff1a1614ff0e0c0bff0d0c0a672410084a251006532610065d34180b65381a0c58240f056718161165181511631a18135f1d1b154e1b19144a1e1c1655211e18552320195c28251d5f24221a5e110f0dfffffffefffffffffefffff75527221e52161310621b18137638342a70343127793733297438362b6b38342a7539362c5f3230285c3431285d37342a6a36332a7429261ffbfffffdffffffffffffffff802f2a2467221f1a782c29229149453a86413e3395413d338a38362d85312f277a2a28217d26231e7d22201b761f1d193f221e173b0e0c0a5413110d6513110e5b100f0c500e0c0a4116130f431613107415120e7d100e0c7f1b1915721918147a1a1915821b1a167e1b19157f1d1b177e1b1915351f1a1544100e0b6418140f751915106f16120e6014110e48201b1498201a1591231f199025211b8924211b8625211c8123201a8d24201a7f1d1914821c1914652b251c2e0f0d0a4d13110d6d191612701815115813110e4c1a17123d231e1754302a2287302c24803532287637332a92413c3282423e347b443f34814c46398035312759221e188e342e27fffffffffffffffffefffffe722f2a22783a362d7948433571443f337a45423471433f3372423c3075423c2f7c443d317c413d306625221b6823201b812c2721fffffffffffffffffbfffffb5e1e1a15552a261f502a271e592b281e4c26231b5023201955201e174b1c1913541b19135819161259191611581815104c16130e7114110d41110e0b6416130f5614110d6014110d5f14110d6113110d5a13100c4f1d0c046a2612089727130968220f063b1c0c044c1e0d04581e0d044a1c0c04671c0c0456190a04541c0b05581b0c054a190a0341180a03631b0b0494110e0a45110e0a4b120f0c5014110d5915120e5416130f4c15120e54171410541714104d16140f571815114f17140f9f1713105616130e5a1815106a1a16115c181510741d0c045c1b0b047829140982281308632611078e221008561809033b1508023a15080251150803501608035516080359150803561508035b1508035b1c0c04621e0e0565200e0677241007591f0d05641b0b044f170a0368200e0557190b04890f0d0aff1f1a15ff1a1511ff1e1914ff1e1a14ff1e1a14ff1e1a14ff1f1a14901713108b17131090171410821613107f16130f5216120f7115120e7a15120ebd14100dff15110dff110f0dff1b1713ff181411ff211c18fb1814113511060254130803481e0c045d2912075c321609854724116d44220f6943200f8442211056281207512712076f2813076b2612076a1815128f181512621714117d171511a91816129917140fb616130fc814110dff12100eff12100dff110f0c75110e0c88110f0cc40e0d0a83110f0c6e100e0b96100e0ba00f0d0ca50f0d0bff13110eff12100eff13100d7c220f0764251107692712078032190b7134190c692e15095419120c661815116e19161260191712631c1a154f1c1a145e201e1858211f18582421195e2a271e5927241c65100e0bffffffffffffffffffffffff7336312b6325231e772a261f803b362d7e3a362b7d39362b833c392e713b372d793b372d6635332a6536332a5d37342a6f413e33492c2822ffffffffffffffffffffffff8fa19982813b372f81302c25924b473c8e434035933f3b329439362d84323028962f2d268026231e8222201b791e1c19972f2a22271815107414110e7414120f5313100d4a1713109326211b3d1d1a146e1b171280110f0c831a1915811918147a1917148b1b19157f1917147f1a1814841a1814902c27212514100c9f1c1712751815103c120f0c551f1914a029231c7e231e179923201a9926231c9124211b8a24211b9324211b86231f197c1c1a147e1c1914992d281f42251f18641b17128a1e1a156f1c1813471a161184362f25462b251e5a302b228f322e268d39352c7d3b362d93413d338a454136834844377f4e483a9350493a6a35302a802a241efffffffffffffffffdffffff6027241f79464134804b46387347413581494437814a45377d4641347f463f337d46403478423e317b2f2a217c0e0d0b968c8672fffffffffffffffff9ffffff62352f285b312d23582e2a215d2c29205627241c5123201955211e17511d1b15571c1a145d1a17125d191611571815105317140f7b110e0b4c120f0c6316130f5c14110e6215120e6715120e6014110d6113100c69130803842411087c2311085e1e0d05561d0c045e1f0d05591f0e055d1e0d05551d0d045b1b0b05621c0c05751e0d064b190a03521a0b045c1b0b048e100d0a3f100d0a4b120f0c5213100d5615120e5716140f5216130f5b1815115d1815114d1714104d1714104e17140f9e1713105817140f5a1815106a1b17125d18151071210e0573210e055f2510076f2612086e2511077f210f07571709034a160803441608034c160903611709035f1709035516080352160803561609034a1408035a1a0b047a210f0769241107591e0c04601b0b04571a0b037c25100662180b0392100d0bff1b1712ff1a1712ff1b1712ff1e1a14ff1f1a14ff1f1a14ff1f1a15ff1f1a14ff191611ff1a1611ff1a1611ff191511ff191510ff181410ff191410ff16120fff0a0908ff14110fff181411ff27211cff1815126f140803541308035715090360250f06693a1a0b673116097343200f66421f0e6f43200e4425100532220e054325100651231006ff16130fff16120fff14120eff14110eff13100dff13100dff120f0cff110f0cff14110fff110e0cff110e0cff110f0ca40d0c0aef0e0d0ab70d0b0aaf0d0b0aba0c0b09bd0c0b09c00c0a09e90e0d0bff161210ff12100d541e0d0556230f057b2c140967271207862f170c612f16094a1f0e065f1714106b1917127019171264191712631d1b154e1c19145c201e185e2220195d25221b632b2820672e2b224f221d19ffffffffffffffffffffffff89403b3158151310771e1b168a3f3b317c3a372c8039362c833c392f793c382e783b372d643533296937352b5e37342a5d39372d7c2b2820ffffffffffffffffffffffff9ba39c8371211e1a872f2c24974c493d8f444035983e3a329438352d83302d25902d2b248627251f8f23211d7f1d1c18621714105f16130e5b15120e6414110d8f16130f651714105d18151085110f0b9017140f8312100d7c18161381181613821817138518171380181613811a1814811917135c1714105f181510611915117a191611591a16116a1d1914611c1814671e1a149624201a9624221c9b25221d8824211c9525221c8424211b881e1c17891e1b165f1d1a14601e1a145f1e1a14651b18136d1b1712481d18135f201c1583221e18952f2b238f3330278a38342b843c382f90403c3186454035874844367a4945377e484336611714107828221dffffffffffffffffffffffff6c352f267c474336804d4738784844378f4d473a814b45378048433585494337894a44388a4b46397c322e255d18161296968b72fffffffffffffffffeffffff66110f0c5f34302557302c225b2d29205426221b5324211a52211d17511d1a145f1e1b15591a161155181510581815105c17141076120e0b48110e0b6916130f6015120e6415120e6815120e6514120d6414110d54130f0b8e24120899241108651d0d055f1d0d0580210f06761f0e06651e0d055b1d0c045c1b0b04691e0c06701f0e065e1b0b04561b0b04571a0b04ae120e0a49110e0a4a120f0b5113100d5215120e5416130f5617130f581815115e1815114f1815104b1714104a16130f9316130f5517130f5b181510691a17116118151164220e05672510056e28120868291308842b150988210f07591709034d1608034e1608035a170903641809045d17090357170a045817090358170904511c0c046526110868231007632410064e1c0c046e1a0b046a1b0c047b2b13076a1a0c0494100d0a2015110e2814110e2b15110e3315120f3615120f3715120f3115120f4315120e2d14110d3114110e3614110e3413110e2b13100d2c120f0c25120f0cff0b0907ff161311ff181512ff191512ff201b178b150d09571207035b1308034d1709034c260f056f3c1d0d6743210f62411e0d6c43200f4e28120729220f053c230f054d24110661140f0b68100f0c69100e0c6a100d0c680f0d0bff110e0cff100e0bff100d0bff161310ff110f0cff110e0cff0f0d0bff0d0c0aff0d0c0aff0d0b0aff0d0b0aff0d0b09ff0d0b09ff0c0a09ff0e0c0aff13110eff0c0a09c8120c085b200e066924110759291208662411086a281309361e0b03541614105e1715106719161271191713631a1713681d1b154e1c1a155c211f186424211b6026231b652a271f622d2a214d27221cffffffffffffffffffffffff8a3631295d14120f741b19158f413c32863d392e823a382e883d392f883f3c31793b382d673533296b38362c6d3c392f623d3b2f7829271fffffffffffffffffffffffff9fa69d817123201b8c322e279b4d4a3f8e423f359b3f3b329138342d86302e268e2e2b258b27251f87211f1a821d1c18851a18148812100d640e0c0a7a0a0807f20f0d0b8a12100d760f0d0a93110f0b8d12100c8412100d7d1615128c1816128818161284171512851716128d1a1813801716127c1715118317151186191612b517141176171410901c1a15911d1a1593201d189724201a9f25221d9624211c8a24211b9926221d9b25221c86201d178d211e18801f1c1689201c17671b181390181512af1714114a14120d7c201d179326221b94302c258f3330278c39352b943f3b3090413c3189433f338c4944388a4d493b814a4537601714106829221cffffffffffffffffffffffff642e281f814d483a814d47397d494437814a4539864b4638864a44378e4b4539864a4437874b463881342f26591b191696958e72ffffffffffffffffffffffff48231f1860322f235d312c235a2e2b225c2a251d5b26231b53211e18511d1a14651f1c16611a171356181511551714105618151074120e0c4a120f0b6116130f6316130f6816130f6716130e6715120e6414120e54130f0b802210077a200e06611c0b04591d0c05581f0e05681f0e053a1c0b04441b0b044e150803721f0e06621f0e065b1d0c04571b0b045c1b0b04b4120e0a50110e0b4e120f0b5113100c5315120e5215120e5817130f591815105b1815104f181510541815114e17140fa41814104f15120f5c1815116c1a1711581815107b2510067a2812066b2510088127120979261108841f0e06641c0b045a1a0a0460190a045618090357180903501709035a1809033d1608023c1809035b251007532410065d25100763261107451a0a034a190a035b1b0b047d3317085c1c0d049c100d0aff1a1613ff191512ff191612ff191512ff1a1612ff1b1713ff1a1613ff1b1713ff1b1712ff1e1915ff1f1915ff1a1613ff15110fff14110eff161310ff0f0d0bff171411ff16120fff201b16ff1814113e0f060265130803451106025b190b04492d13075b401e0d59401e0d6b411f0e60391b0c2f220e051f1f0c0357230f0665241107ff161310ff15120fff15120fff15120fff15120fff15120fff15110eff15120fff15120fff15110eff14110eff100e0cff100e0cff0f0d0bff0f0d0bff0f0e0cff0f0d0bff0f0d0bff0e0c0aff0f0d0bff0c0b09fa0c0b09631d0d0571200e06571b0c0562210f076a231008411d0b047a12100d5e16141059171510671916127019171263191713691d1b15551d1b165d201e186223201a5c25231c662b281f6a2f2c224e2a251effffffffffffffffffffffff7a26231e5d15120f781c1a15893f3b30833b372c873c372d8b3c382e8c3f3b317838352c603431276938352b683a382e693f3d31822b2821ffffffffffffffffffffffff97aaa38a6b1d1b16892c29229249463b91413e34913b382fa039372d8f302e27892a28228826231e8c22201c831e1b178c1b181482110f0d7f0e0d0b830a0908e60d0c0ba50b0a096c0e0d0a91110f0c8f110f0d8511100d861615128f18161390171613851816127e16141190191713901917138a1917138718161288181612c0181512781715118e1c1915901e1b168e201d189e24211b9624211ba226231e9525221d9226231d9727231d89221f198e221e1890231f1982211e18b11a171397191512b2191613c71a161379211d188b2a261f8d2f2b248b322d24963c372d983d382d8f3f3b307f423d3183474235894d493b8e4c483a601715117b2c261fffffffffffffffffffffffff6f1e1a147f3c382d844a4538734540348a4c47398a4a4538894843368449433782494236884b45377f322e25511e1b17988f876effffffffffffffffffffffff411e1b1660312c22582f2a20612f2b215b27231c5b25221b52211e184e1d1a145e1e1b16671c1913611a171261191611611916117f130f0c5212100c5f16130f6016130f6517140f6e1714106415120e6f16130f5f14100c7c2210078b221007751f0e054c1c0b043e1d0c04361c0c04481c0c044416090362200e0665200e0767200e075b1d0c04561a0b04711c0c04b1120f0b51110f0b50120f0b5314110c5614120e5315120e5416130f521714105a1815104b1714104d1714104b17140faa1814105416130f591815106b1a16115d1916117a26110666261106892813099029130978261108741e0d06801f0e067d1f0e05771b0c0462190a0453190a044b1809035f190a0460140803571e0c056b2610076025100750200d0559271007421809033f180903591a0b0467311508621c0c0486110e0aff1a1512ff191512ff191512ff191512ff191512ff191511ff191411ff181410ff171310ff181411ff181311ff15120fff12100dff110e0cff110f0dff120f0dff110e0cff29241fff0f0d0b621006025a1208035e120703541107025c1b0c0458291207583d1b0c5b3d1c0d62401e0d3a230f0537200d05371e0d0461221006ff0e0c0bff0e0d0bff0e0d0bff0e0c0aff0e0d0bff0d0b0aff100e0cff100e0cff0b0a08ff0c0a09ff0b0a08ff0d0b09ff110e0bff070605ff070605ff070605ff060505ff060504ff050503ff0d0b08ff030303ff12100c50190b046d200e066d1e0e06651d0e046d22110762200f0645150a058412100c5014120e5f16141066181612711917126a1a1813681d1b15571c1a1559201e186323211a6a26231c6d2c29216e2f2b2358211e18ffffffffffffffffffffffff7c2a27205d1b1814711a181391403c308539352b903c392e8b3c382e8a3d392e7e38352c61323027623431286937342a673c392e7b2c2922ffffffffffffffffffffffff979e987f621e1c18952d29229b4b473c96423f35943b382e9936332b8d2d2b258a2927228f25221d98201e1a871c1a16891b19168713110e83110f0c800d0c0ace11100e9f0e0c0a5c100e0b8b13110ea114120f4b1917134813120f4e1d1c165127231e51221e194e26201b5226211b4c18141052120f0d5e110f0c5113110e4912100d58100e0b66100e0b530f0d0b5b0e0c0b540e0c0b4f1e1a155824201a4c221e184f1b171256211c164b211d175425201a8725211a9727231db81916128c171411a21a1713cc1b18146a211d17942b272097312d24a1353027973a342a973c372c95403b3180403c317c433e32904e493c8f4c473a601d1a168129231dffffffffffffffffffffffff6a221f1b833f3b30894c473975453f32874a44378548423587494336914640348a494336914b463885322e25541d1a169887816dffffffffffffffffffffffff631a1712652f2b22602f2b216a2f2b225e28241b6026231b59201d174e1c19145c1e1a156a1c1914631b18136b1a1712631916118b14100d50120f0c5d16130f6917140f6b1814106f1714106816130e6a16130e5c130f0b8c241209962210086c1b0c055e1d0c04481d0c043f1d0c04401c0b044917090459210e065b220f075c1f0d064c1b0a0445190a03531b0b049e120f0a46100d0a4e120f0b5012100c5415120d5215120e5215130e4c16130f521715104f18151059181511541815119c1713105516130f571714106e1a17125f1916116d2510066c2611067a2611087f27120877261108791f0d05771f0e06691e0c05641b0b046c1a0b045a1a0a0356190a0360190a0448180903532510065a240f064a240f0640210e0561261107491c0b03481a0a03591a0b036f3216085b1d0d0494110e0aff1a1511ff1a1611ff1a1611ff25201bff14110eff181412ff161310ff161310ff171310ff181411ff171310ff14110eff15120fff110d0bff110e0cff0f0e0cff0a0807980a0503640f060262100703401106023b10060235110602442a12075c401e0d61401e0d6c401f0e4e24100640210e05431f0e0569221007ff070605ff0b0908ff231e194c09090792070706ff060504ff070505ff070605ff070605ff080705ff080705ff080605ff090706ff0c0a08ff0c0a08ff1512106615090361160a0356160a035c1208025b0e06025a0e07025c0f070366120803731c0d0552170b0365221107612010074c1809036a110e0b8d12100d5415130f601714106e1a171371181612701b1814691c1a14531c1a1554201e186023201a5e24211b702d2a217226231c57141210ffffffffffffffffffffffff7e29251f5212100e7a1b191482312d258636332a843432298f37342b8b3a362d793532296e312e25703432286e37342b712d2a22691b1915ffffffffffffffffffffffff862925206b1a18149d2b282294413e34953f3c329839352c94322f27862b29238427251f8c24211d8b1f1d19941d1b17851a18148c1a1815851413109c0f0d0bd312100ea20e0c0b66100f0c8a14120f66211d18631816125f17151169110f0c5a1917136119151263181511611613106515130f841e1b165d27211c5f25201b5f1b1713711b17135a221d1759221d186625201967231e1963221e1861231f195c221e186c211d188627231d6725211c7026231e62211d189729251fbe1c19149c1a1713c21e1b16db211c187526221b942c2821942e2b22a0322e269937332a993d372c923d382e8e403b30904440348f4a45388c353027591a171384241f19ffffffffffffffffffffffff67211e1a813b362c894943367a433e317f453f3376423e3282453f3381413b2f85453f3287453e32922a251e43100f0d8624211bfffffffffffffffffffffffd6e1c19136626221b622e2b22632b28206027231b6225221b5a201d17591d1a146c1e1b156d1d1a14661a17126e1b1712641916119115110e5814110e691915106b1915106b1815106e1814106c17130f6916130f5a14100c752411088922110868180a04781d0c05671e0c055a1e0c04551c0c045d190b0558220f0650220f06591f0d054219090343190a03461a0a047a100d0946100d0949110e0b54120f0c5714120d5515120e5416130f5816140f5617140f4e17141055181510531815109d1814105a1714105c1816116b1a17125c1916117f2812077b2812076f2510076a251007672510077f200e0683220f07621e0c05541b0b04581b0b04551b0b046a1c0c0556150904511c0c0541220e0541220d0538210d0530200d044d210e05441e0c043b1a0a034c1a0b0371311508541c0c04ae110f0bff040403ff040303ff161310ff191512570d050282130904941b0d068b1d0e0682201006881f0f066a1409034d0b04015c090401590a04014c0a0401480d05025511070240130702371207024e11070246140803461609036f2c1409593d1c0c593e1c0c6b401e0e7f31180b3b210e053f1f0d0550200f065d221107ff070505ff26211d820a0907500a0908510a09074c09080650080806510808064f0707054c07060549060604530705036a0904014c0a0401ff1513106a0a04015b0c0502560e06025d0e06026e0d0602760d0603750c06027b10080369170b04731a0d057a1f0e067a21110753190b035813110d61100d0a83110f0c5916140f601614106b191712761a18136b191713691c1914551b19145b201e18642320196224211b6929261f6829271e711614109a656255ffffffdb9744403479151311691815128e2b2720803530278d353127903632298b3532298b37342b7e343128602f2c2370322f2771363329733a362c8a29261f6a25221effffffeed2e0d8b3631b19167a1e1b179a2d2a2397433f348e3b382e9135322a97312e278a2b28218a25221d8c201e198d1e1b178c1b191686191713881917138713110f730b0a08eb100e0d9b0d0b0a7811100d7118161251181512510e0c0a400e0c0a3e0f0c0a520f0d0a64110e0c5d110e0c64110f0c6613100d6514120e5915120f5916120f591613105a1916116b1d19145e1e19155c1f1b165d201c1764231e1967231e1967241f1a58211c175a211c165b211c166c221c1655221e19661e1a16b91e1a1681181511af1d1a16dd211d19882a261e8f2b27209c2f2b22a2322e2596363128993c362c9b3e392e843e392e8f423d3196464235983d372c581c1915e0302c28a4635d4bffffffe89b5a5445922b261e81403a2f83453f32733e392d80423e317e433e3187433e31803f3b2e80403b307d413a2e8e2e2921681f1c18ab2c2821abc6be99ffffffe77f2e2b2576231f185f2b281f662b281f6a2b271f6127231b6224211a5c1f1c165d1d19146f1e1b15741e1a156a1b1812681b1812621a16118314100d5414110d6c1a16116d1915116f1916116f1915106917140f6a17130f55100602702512089428140a6c1d0c057e1f0e06631c0c05631d0c05571e0c04641c0c055a230f0655210e06641e0d06581a0a044e1b0a0486170e096c0e0b0848100d0a4d110e0b5513100d5614110d5215120e5416130f5c1815105a18151052181510551815104d171510a61915115f181510611916116b1917125c18151061250f056c2711067e2611087e2711086e2611086c210e056c210e055c1d0c044e1c0c045b1b0b04571b0a03771e0d06561a0b05421a0a0431200c0451230f0643220e0533210e0554220f063f1d0c043c190a033f1609036f251106591d0c04cc100d0aff060504ff13100eff1f1b174f090402710a0402770a04028d0d06038d0f070384120903851309047a100703600b04015b090401560904015b0a0401470a0401490a04013e0b04013c0e05024311070242190a034f281206573117095e3e1e0d533d1b0c593b1b0c48210e0545200e05441f0d0565221107550d0c0a450b0b094e0b0b088b0b0908510b0a084f0a09074c0908064d0808064f080806460707054b07060547070604470706043e05020140050201440502014d050201570502014e0502013b0502014a0a0401370c05023f0c0502360b05013e0b0502450c05024d0e060274190d0556130b065a110f0c540d0b0977100e0c5314120e6116141069171511721916126b191612701c191454191813621e1c1764211f196624211a7228251e6f2a261e6123211a4c11100dc21614115214110fc41b1915741a1712933531277c2f2c238f322f268a312e268f322f278a332f2680312d256e2c292278302d2575333027773632299336332a76221e19631d1a15901a171474221f1a9326241e983f3c32903b372f9138342b95333028962e2b248626241f9523211c8a1f1c18a01d1b17921a1814941a17148417151175110f0d6c0b0a08eb100e0ca70d0b0a661816126015120f4b0c0b094d0e0c0a5c1713104c0c0a095c0c0b09600c0b09660d0c0a6b0e0c0a5e0f0d0b5c100e0b5d12100d5612100d8113110e7a1c1814571e1a1557201b1656221e184f231e185425211b5526211b55221e184b181510631915127d25201b5a221d1856211c165e29231db91d1a1572171411a31b1815d0201c178f2b261f882a261fa42f2b239b312c2499332e2696383328a03e382d97403a2f9a443e3196464134994640338129241c7624211aa01f1a166a201b168326221a90302b227b3e392f85413b30763b362b7c3c382d7d3d382d873c372d7d3a342a893c362c843c362c81383228611f1b15b0201c176d15120fb014120f651d1913712c281f612c271e6a2c281f6a2b271f6629251c6323201966201c16641e1b15771f1b15731f1b156d1d1913691b17125f1916117e13100d5114110e691a16116d1916116e191611721915116b17130f6b16140f5b220f0663251208662411085f1e0d06531b0b04561b0b04501c0b044d1b0b04781d0e066a2511075b230f07521e0c054c1b0a0374180c06691e0e05a8120e0b450f0d094c100e0a52120f0c5113100d5515120e5315130e4f17141056181510551715105018151053191511a91a151265191611641a1712671916125718151173240f067326110687271109742711088228120870220f0663210e055d1d0c044d1b0b034c1b0a03441a0a03571e0c046d1f0e075a1e0d0652230f065725110743220e0548230f0554210e05431c0b043317090339160903921f0f0672160b059a100b074e0d0c0aae181411780f0b094d1007025c11070355120702591307035f1308035c140802631409035f150903561509036415090355150903541609035a180a044a180a0349180a033c180903401c0b044c250f05562e13075237180a543b1b0c5d3f1d0d49200d04401f0e05451e0c044a1f0e05460e0d0a4a0c0c0a4c0d0c094c0b0b086e090806480b0a07500a0907530a0907500908064e090806450807054408060546070605470706045e04030259030201510402024705030249050302400604024d060402570705034b0705034b07050350080603460705034908060450110a055c0f0d0a67110f0c59110f0c5e0e0c097e100d0b4e12110d5c15130e61161411741816126b1816126a1a171354181612631d1b16621f1d175d211f187226231c6b27241d5923221a5015140f981613106c161310bb221e1a7129251e7e2f2b2287302c248d2e2b238e2e2b23912f2c24832c2922792a28216828261e752d2a2276302e2572312e268937322a792f2c236f1f1b17951b181473211f1a8c302d258737342c8936322a8e3330288f302d25922b28218c25231d90201e1a8d1d1b17981c1a16971a18158f1916137c15131077100f0c640a0a08d8100f0d8c0f0d0b601714114b0d0b09460c0b095117141073100d0b7b0f0d0b92100e0b7b0f0e0b87120f0c76110f0b7212100c8215120e6215110d6816130e891d181370191611731c1813711d19136b1f1a156e231d17451e1a14421d191364231e17451e191368231e18541a161159231e1853211d1648201b147528241d891c1915be1e1915c4201c178829251e872b27209f2e2a22922f2a2297322d248d332e2596393329923b362c993f3a2e923f3b308f413b2f953d362b7825221ba4201b166c201b16762b271e7f3d362a7939352b823b352b6d3530277937322880383329813733297b36312787363128823832287c393329652d2920931d1a15791815129b14120f63231f17622c281f6a29261d672a261e6d29251d6323201964211e17631e1a15661c1914751f1b15711e1a15691d1913701c1813611916118113110d5414120e60181510671815106a181511721815106717130f6817130f3b210e06351f0d055f231007501d0c05411a0a04561b0b04581b0b04531a0a04631e0d06672511075a2410075b230f06521e0c042e0f0602651b0c049c100c0a4c100d0a4b100e0a4c120e0b49120f0c4c13100d4914110d4a16130e4515130e4c17140f52191610521815119c1814105e1815115c1a1612721b1813601a140f7a2410067027110777271108812812089a291309832510076f220f05751e0c04611c0b04651d0c045b1c0b04521e0c0474210f076f210e06572410064b230f064b230f065c230f0669220f06531b0c0434160903350c05026b150c0667150b058d0f09064f0d0c0a5b0e0d0a5f0d0d0a5a1308034d180a04401c0b04461e0d054f1f0e05441d0c044d1c0c05491a0b04581b0b045d1c0c054c1d0c045a1e0d054d1f0d05461f0d0552200e0546200d0542210e0444220e044b2811064d2f14085435170a50241006521e0d04521e0d04521e0d0444110d09480e0d0b430d0c0a490d0c093e0b0a08780a08072f0908064c0a0a074d0a09074a09070643080705410706054d0706055806050468060504890403024e0201017c05040356060403510605034d060504580705045a0806045b0806055a0908065b09080655090806580b09075a0c0b085b0d0b0963100e0b5a100e0b5d0d0b09770f0c0a4d12100d5914120e6c1615106d191612661715117319171358191612651c1a15621e1c165f1f1e176d24221b6825211b53211e18471d1a158715130f4714110ecb24201c6f29241d792a261e852c2820842b2720862b2720922b28218b2a27207726231d6a26231d722c2a22732c2a22732f2c23883532297a343127782b282094211d19732b29228d3a372e8c3432298e34312889302d258b2c2922982926209125221d8d1f1c18881b1915901b1914941917138d1715117513120f760f0d0b5f0a0907ce0e0d0b5c100f0d3c0b0a084d0d0b095714120e690d0b0991110f0c550d0b085b0d0c095b0e0c09680f0d0a72100e0b70110f0b7013100c6713100d5a13100c5616120f4e15110e5517130f4b17140e50191510521e19144f1f1a14431d1813501e1a14401b16113017130e64251f183a1b17115d241f1956231e18471c1713602a251e91191612d6211d188829241d852b261e9d2e2921912d2821902e2a228e332d2494373228963a352a953c372d8c3c362c913f392e893a362b863d362b9b26211b6625211b793631277b3933297b383329803733296f332e2478342f25853631277b312c237c322d2482332e257b332e2573332e245b2e2920a5221f1960181511b2151210632f2920632b271d6d2a261e6529241c7129241d64211e186b201d17661f1b156c1e1a1574201c166d1e1a14681c1914681c1914661b18137813110d4a14110e641a1711651815106c1916116d1815106216130f6a17130f44200e065523100758220f075a1d0c05581c0b045d1b0b04601c0b045c1a0a0463200e066825110855230f06701308044e1a0b042108030158190b048e0e0b095b0f0c09490f0d0947100d093d100e0a43110e0b4513100c4f15130e4a16130e4917140f4f1815104e1815107115110e491713104817140f6d1b1812561f0d0463210e05752711077426110775261008782611088526100768220e05791e0d044e1b0b03501c0b045e1d0b044f1d0b0485210f075e1f0d0562261107612510065b230f0661230f0663200e06421a0a033c16090335180a046e190d065d1c0d04890f0906560e0d0b5a0e0d0b610f0e0b580e0d0a541208044e180a044f1b0c05571f0e06431d0d054c180b05561309044b100804561107043c1308034114090358160a0446170a034d190b04571b0c044b1c0d05431c0c044f1e0d05472410065b1a0b034d170a043a0c0b08490d0b09510c0b09640c0a086f0b0a086e0b0a08650b0908840e0c0a5b0b09083b080705560a09075a0a0907520908074709080646080705490807054c07060549070604850403024f0201018205050453050403510605034b0605035a060504590706045e0806055c0807055d0908065a090806570a09065a0b0a085a0c0b085e0e0d0a530e0d0a580c0a08780e0c0a4f110f0c5813110e681615106d1815116b18161269191612571715106b1b1813681d1a155f1c1a156f201e18662220195e201e184d1c1914971614104212100ccb1e1b17672320197f28241c8128241d8c29251f8b26231d9925221c8c27241e7c24211b7323211b7628261f742a2821782e2b2388312f2674302d256a2a27209e2824207d343028853432298a3230288e302d25902d2a238d2a27219126231d89201d18961e1b17861a18148f191814951715128c1614118713120f770f0d0b700b0a0866110f0d3b14120f4b0c0a095b0f0c0a3f0c0a089c100e0b720d0c098f110e0ca012100d9714110d9614110ea115120fa416130fa618141092181511891b17129f1e19148d1f1a15c9211d18ca231f19aa27211a932b251d952c261e992d271e982b251e9c2d271f9a2c251e571e1a158b2b251d3d1a16106026211b4f231e17551a17126127221bd4211d197828231c7f2a251e9b2e2921902d2820932e29228f2e2a2297332f269b38332a9639342b913a352b8c3a352b873a352a773530259b2d2720712e2a2172332f267a3531267d343026873530276e2d2921792e2a2187312c2387302b227b2c2820822f2b237b302c2280322e24622d281fa2211e19681a1713b614120f5b27231a6729241c6727231b6d27231b7b28231c71211e186e211d176b1f1b156b1d1a15721f1c16751f1b15681c1914681c19135b1916117b14110e5415120f62191611641715106d191610701815106416140f6417130f7526130958200e07661f0e076f1d0c05571c0b04591c0b04621c0b044f1a0b0469220f06531208037f20100974211109631a0b04370b050348180a04a10f0c09370e0b0850100e0a47100d0948110e0a45100e0a5b110f0c5b13100c6313100c6f15110d6d14100d5512100c701814108d1a15115614110e681915105c200d0560210e05872812087f27110873261007772610078624100785220f067b1e0d055e1d0c045f1c0b045f1c0c045b1d0c04731e0e065f1e0d0558230f06682510065f230f066d24100765210e066a1e0c05671b0b052d1609035f160b0659190c048e110b084e0e0d0a580f0e0b5a0f0e0b510f0d0b560f0d0b470e0c0a4c0e0c0a460e0d0a4a0d0c0a540e0c0a4a0d0b095c0d0c09640d0b09610d0b099b110f0b860d0c0a6c0c0b088e0e0c0bce100e0c9d0f0d0b470c0b08640f0d0b550e0c0a530e0d0a460e0d0a3b0d0c0a4c0e0d0b4c0f0e0b460e0d0b480e0d0b4a0e0d0a490e0c0a340b0a08520908064a0b0a08460a09084e0a09074f090806520908064c0807054b0706054a070604480606048e040302610201017b030202470504034e0504034c050403570605045a0706045e0706055b0807055e0807065308070556090806590b0907590b0a085e0e0c09570e0d0a650c0a08870e0c0a5812100c5613110d6315140f6b1614116d1715116c1816115d1715116e1a18136f1d1a15661c1a14651d1b1569201d175f1f1c16571e1b15a31613104c13110ec11c191568231f197e24201a7f24201b8323201a89221f1a9323201b84201e187b201e196e211e197a26241d7927251e7e2c2a23822f2d267c2e2c246d28251fac29252081322f288a33302892333129842d2a24902c2a248f2a28229a26231e9622201b971f1e198c1b1a168e1917147b1614118b1613108714120f7c11100d6818151241100e0c4b0d0b09640f0d0a4d110f0c990f0d0a5c0b0907a1110f0ca9110f0ca012100d9e13100dc0171410a916130fa217130fae1a1712ad1c1813aa1d1914b0241f1990201b167627221c652c261f792c251e6d312b227e2a1f19632a1a15782b1e184f2b1712972c261e9b2e27204f1e19146227221b4a1f1b165a26211b5525201967221e18bb312b247127221b7f29251e992f2921922d2820902c2820882c282094302c2490322e26943531289036322a8f38332b8938342b81332f27b9302b23782e2a237f3530278436322979312e258e343027712a271f7d2b271f862b2720892c28217c29251e792a261f742a261e7e2f2b2271302c22961f1c177c1d1a16991512105a2a241d6d28241c7428241d7125211b7d26221c79221f1974201d176d1e1b16691d1a15711f1b16761f1b166c1c19146a1d1914611917129016130f5915120f6d1a17116b19161166181510741916116617140f6a17130f44210e065f200e065c1c0c05891e0d066e1d0c05661c0b04571b0b04540f06028921120a722411086722100767200f0878160b061f0a05025b180a04940f0c094a0f0d094c100d0a4b100e0a4d120f0b44120f0b5114120e4a15120e4a16130f4b17140f4f18150f3d17130f851813104215110e5718151060191711501f0d0463210e05892712097a26110877271108742611088f23100780210e05751e0d05791e0d05661e0c046a1d0c04641d0b044a190a04641f0d05642511077a2611076f25110757230f0653210e06561f0d065c170c06251307025e160b0558170a04870f0b078b0e0c0a850d0c0a840d0c0a770c0b096c0d0b09660d0c095b0d0b09670e0d0a5d0e0d0a5a0e0d0a4e0e0d0a500f0d0a570f0e0b410e0d0a380d0c09a5110f0c750c0b09740d0b09a90e0c0a520d0c09490e0d0a4c100e0b4a0f0e0b50100f0b490f0e0c3f0e0d0a500f0e0c4e100f0c450f0e0b4a0f0e0b4c0e0d0a470d0c0a450b0a09770a09074b0b0a084a0a0908500a090752090806540908064e0807054e070705510706054e0706058804030256020101a406050442040302490404034d040403500504035a0605035906050460070605620807055408060555090806560a0907560a0907620d0c09600e0d0a680c0a08780d0b094f100f0b5712110d6315130f5e15130f631615116e1916125c161410651916126a1a1813661918135c1a1813671d1b15511a1812541c19149a14130f4812100d87171411681e1b16721f1c1675201d1776201c177f1f1c17841f1c1787201d18811f1d1871201d187b23211b7a25231c7a2826208d2f2d258a33302981312f27992c28227135332b7f3937308a3c3b327033312a7c34332c8b39362f8e33302a8b2e2c26892a28238525231f8d22201c6f191814851817137013120e5437322b4c25221d630f0d0b6b0e0c0a581613109e0e0c0aa30c0b09970f0d0aae110f0cb012100db013110ea314110dbc171410a716120fa017140fa91b1712ff2c2922ff2c2923a8211d1785201b1687221d177d2a251e6f2d271f9d2e27207f2c201a932b241c962d251e582c19159d2f2820a13029219c2e282055211d176626211a74241f196c27221c58252019602e2921622a241d812a251e872b261e8f2c271f8b2b27208e2c28219b312d2493342f269538342a8d3b362d8d403b318d4440368a4642389e3530296837322a733f3b317e403c316b38352c7e3b382e733531287c322d267a2f2a227e2d281f7529251d6b26221b6d26221b7129251c6c28241ca41d1a16601715118917141059221e17662320197026211a72231f187d25211a7b221e187b221e18701f1c17691e1a15731f1c16731f1c166b1c1a146f1e1b156d1c1a147c14110e4e14110d63191611651915105b17140f671714106517140f6516130e6824110858210e06611e0d05781c0c056c1c0c05621c0b04581c0b04571408039827150d6a22110875211109411d0d0632170903170a03014b170a046b0f0c094c100c094f100d0a51110e0a50120f0b4912100c5014110d4f15120e4a16130e521714104e1a16104c1915106c15110e5a191611611b1712621a1611461f0c044c1f0c04772510086a2510077e27110855240f0678210f06611d0c046f1e0c04621d0c04661e0d045d1f0d04501d0c0456190a04461d0b043f210d0559230f065c220e065a230f067b180e095a1c0d07441a0a032610070258160b0553180b046e0e0906580f0e0b54100e0b5b0f0e0b5b100f0c56110f0c59100f0b55100f0c490f0d0a540f0e0b54100e0b4e0f0e0b50100e0b540f0e0b52100f0c4f0f0e0b830f0d0b780c0a08730c0b09a70d0b0a660f0d0a4b0e0d0a53110f0c4f100f0c51100f0b4e100f0c440f0e0b4d0f0e0b4f100f0c460f0e0b4a0f0e0b490e0d0a4b0e0d0a4c0c0b097a0a09084f0b0a084c0a0908530a09075209080655090806510807054504030256080604660a0805570a0804570c0906500f0c0755120e0849120f09470403024504040350050403500504036307060462070604510706044b0807054c0908064a090806590c0b084f0c0b08480a0906580c0a074e0f0e0b4c100f0c5b13120f641614105f1614106f1917135316141061181612691a171369191713711c19155b1917124615130f3f15130f971513105111100db81d1a15591916115f1a1712691c19145a1a1713661a1813731d1b168a201e19801f1e196d1d1b176f22201b6923221d6a2927237b32302a6a36352f6133322c7138332e65423f396944443c6c4b4a42724a49416d47463f7e4b4a447e4a4a437341413a773c3c36753737318230302c7f2c2a26701f1e1a673a373359413b335a0e0d0a670f0d0b5b1b1814890d0c0a7f0d0b09610c0a08a7100d0bb1110f0cb2120f0cb012100da313110da613110ea215120f9f181511ab1c1813ff2d2923fe2e2b24aa221d17851f1b1585241f1a8f2a241d932c271f8a2e2720a52d251f66291b169c2c271f842e221ba12f2820a02f2820a4302921992c261e6f231f1858241f185526211a542520194f231e175e342d2549231f197829261f812d28217f302d259b38352da03b372f8d3c39327f413f367843423a754a48407a504f46725251487848413a6248433b634d4b4368504e4471504d44734c4941724a473e6f413e356e3e3a327935332c702e2b24712e2b236128241d53211e184d1e1a15aa25221c611816139812100d531f1b155b211d166a221e185f201c166b221e1870231f198324201a71201d17641d1a15631d1a15661e1b155f1c1914601b19145e1b181358130f0c4d15110e591815115816141063181510661815106416140f6316130e45200d05531f0e06761c0c0587180a05621a0b04591b0b04511c0b04591208039224140c401f0d053f1d0c0561221008561a0a04300a040275150a05650d0b0853100d0a50100e0a50110e0b4c110e0b4c12100c4e13100c5115130e4815120d4a16130f521915104b191510aa1a16115217140f5b19161160191612531f0d04381d0b046a2510076b25100781271209732610077d221007721e0d056a1e0c046b1e0c04661f0d045b1e0d043d1b0b03641a0b054b1e0b0447220e0552240f067a120a0563220f076d210f07511c0c05531a0a033f0e070370160b0746170a047d100a074e0f0e0b530f0e0b5f11100c6311100d6912110d5c110f0c56110f0c59100f0c55100e0b59100e0b4f100e0b530f0e0b520f0e0b52100e0b4e0f0e0b520e0c09870d0c0a7c0d0b09b10f0d0b6b0e0e0b51100e0b55110f0c51110f0c52100f0c4c100f0c480f0e0c4d0f0e0b4f0f0f0c4b0f0e0b480e0d0b450d0c0a480d0c0a490c0b09730b0908460b0a084e0a0907560a09075209080659080806460807056b19130d4a110e085c130f0a4c130f095114100a4d15100a490f0c075215120b3b0d0a074a0b0905300a0805330a0704340c0905500f0b0753100d0846110d083e0e0b07651d180f651c170e5b16130c6a1a160f7a0e0c09310b0a07370e0c0a44110f0c41100f0b4512100d3e12110d39110f0c4013110d4614120e4d15130f4315130f511614104114110e841713109d14120f5813100e9f1715126f15120e4615130f571815113e15120e3e14120f4a161511611d1a16591d1b1753201d184f22201c542a29225a32312b5233322c473736304f35322b6e3f3a3547423f374448463f4e514e464648453b484a48404e515048474a4840564c4a43544a4840544341395b4040374935332d4b23211d593d39334e0e0c0a4e0d0c096614120f750d0c09910e0d0a550b0907960d0b09aa0f0c0aaf100e0baf110e0cac12100cb012100da013110dac16130fa7181511a61c1812ff2c2a23ff2e2b25af251f19c925211aa427211bb22a241dab2c261e9d2d261fb52f2a219d2d271f932d261f9e2e271f9b2d271e952d271f962e271f932d261f68211d166d2621193c1c17115f28231c4c241e1744211c16683d372f622b261f5228241d5d302c25733c382f6d413d356845433a5a43413a5d514f44605452485b56564c444e4b428d5c544d7361584e414d4a414e58544a49524e434a4e4a42454c493f40433f36483e3c33463a392f4934302844302d25512e2a225029251d992c251e9d2a26217626221d840e0c0a5c1815104c1c1914581e1b15431a1712461a17124c1b1813541c1914511b1913511b18134c181512501a1712491815104c1715113e15120e861a161257120e0c3b13100c4113100d4113100c41120f0b41120f0c39100d0a6e220f0863200f07771d0d0675180a044f190a04511b0b04511c0b04521208039120140d451f0e06431e0d0667211008621a0b05200904025a170a04a1100d0a51100d0a51100e0a52110e0a50110e0b5412100c4f13100c5015120e5416130f4414120e4d181510531a161195181411571915115e1a1712651a1712381d0b033b1d0b047726110772251007852711084f220e057d2310076a1e0d04601d0c04481c0b04501d0c044b1c0b03351a0a0358180904521b0b04691309056527120872220f08831d0f0865200e065c1a0c066e140a05440b070462150b064816090483110b0752100f0c5c110f0c6212100d6111100d6613110d6111100c56110f0c6011100c55100f0b58110f0c53100f0c5a11100c55100e0b54100f0c5a11100c51100f0b960e0d0b970f0d0bd1110f0d6e0f0e0b59110f0b5712100c5211100c51100f0c4f100f0c4f100f0c4d0f0e0b51100f0c4d0f0e0b510f0e0b4a0e0d0a470c0c094b0c0b09770b09074f0b0a084c0a090754090907570908065a0808064a0e0b07631b150d4808070453120e09461410094a15110a5215110a2b0f0c07370f0c084415110a3e15110a3b120e094f110d0836120e094813100a51140f094d14100a37120e085515110a5014100a5418140c6e19140e5b0807066d0a0907740b0a08750d0b097e0f0d0b81100f0d82100e0c7e11100d9412100e8c141210821412106d13110f6313100e5f120f0d6213100ea212100e5714110e8314120f8614110f9215120f941513109716141196171512771513107c1815128e1917149a1e1c189e23201c92221f1b7d221f1c8926231f7d27241f862825217c23201e892c2927942e2b2794312d299c2e2b279a2f2c289e2b29258427242195262420912724208524211e6b1d1b1879191715731b19174d0e0c0a420d0b09500e0c0a5f0c0a089c13110e620c0b09aa0f0d0ab50e0c0aaf0d0b09b10e0c0aaf0f0d0baf110f0cac12100da913110da516130fa0181511a51c1813ff2e2a24ff312d27a0231e1757303946a228221ba62a241d9c2b251e942c251e9e2d271f9b2e271f962e271f992e271f902c261e8c2c261e942e271f922d271f862a251d491a171154221d17251915105026211a36201a1445201b1476221f1ca326221c7b231f1a92221e1a8d221e19a226211ca527221d87231e1a9026201b80231e198c241f1b80211d189225211c9e27231d9e28231ca8292520a726221c99231f1a91211d1892211d18841e1b176a1b1714761c1815671916135d1815118b201d1882211e1a7c25231f930f0d0b931b17139c1c1915941c1814951c18147a1815117918151191191612931a1712951916128717141178151210851613107c15120f7a14110e6d13100d7e13100d8914110d8914100d8e13100d8b12100c80110e0b560e07039126130a7f24110987231108651d0c05621c0b045a1c0c05571d0c04471307037920110a531f0e0664210f077022100859180a041f0904024d150903ab100d0a470f0c0955100e0a52100d0a56120f0b55120f0c4b12100c4e14120d5716130e4e16140f4f1815104e181510951814105317141058191611691a1712341d0b033b1d0b04772711077f2813097e27120857240f068b251108641f0d05621e0d054a1d0c04561d0c04441c0b042f1b0a035e1b0c059b24150d742812086924100861220f0752210d0554200d0531180a046c130a052f0d070359160a054b180a047d110b075411100d5f11100d6412110e6712110d6713120e6712100d5411100c5f12100d61110f0c6011100d56110f0c5c12100d5b11100c5812100c55110f0c490f0e0a890e0c0a720d0c09bb0f0d0b6a100e0b54110f0c5c12110d5311100d5311100d55100f0c50100f0c4d0f0e0b4d100f0c480f0e0b52100f0c4f0e0d0b500d0c09530c0b09870b0a08480a0907530a0907570909075b09080658080706520c0a06601a150d541410094f14100a4b1510095015110a5015110a26100c07240a08054916120b4715110a5216120b4f17130b4b17130b5118130c4f17120b4f17130b4414100a4f17120b5317120b5718140c6a1c170f33080706730d0c09510c0b09540c0b09690f0e0b75110f0d7011100e8714110f6b12100e7a14120f821614117a1513107114110f7013110f6613110eaf12100eac181613861c19165212100d681613104e12100d681614117f1a1714b326221e7822201c5b211e1a8a2f2c28993835309f403e398445433f7749453f6a484540684c48433f413d3a9163605b7a5d5a559767636069575651765a58537f5857536b5655505f4946416d504e47694c4a455f43413d573533308e312f2a680e0c0a8c110f0d5a13110e9323201b6f1b18149c181613ae13120fbc110f0dbd0f0d0bb40f0d0abb100e0bb6110e0ca9120f0ca613110da616130fa4171410a9181510a71f1b16ff332f28ec2e2a23922520197f241f19a62c251e9d2b251d902a241c8d2a241d9b2d271e942d271e952e271f932d261e9c3028209b3028209d302920962d261f842a241d3a1a161140221c152a14110e391f1b161a1b1711993d3933913e373180433f398849463e6c48443e78504d47975c59539e64615a85605d556454534c545250474b4f4a447b625e5871625d588d69625fa06b666190635f5d81555450704e4b447b4e4b435f46443d6945443d76403d394b302d2a4a312f29752f2a25821f1d1a7e1a1917a713110e6e1f1b17781e1a165f1d191589201b16931e1b166e1b181357171511801b18147f1916127a1815116d171511771916127a191512821815115014110e6d181411781714108b1814119c1613108815110e6d13100d640e0704702310077623100880231008601c0b055b1c0b055e1d0c04581d0c043d1107025a1d0f094c1e0d06491d0c05481d0c05411609030f08030143140803ae100d0a400e0b084e100d0a54100e0a56110e0b56120f0c5212100c4913100c5215120e4f17140f57181510541815109d1914115d181611561916116e1b1813441e0c043f1d0b047f271107952914097d271108612510068924110776220f0667210e05571e0d04611f0d055a1e0c045b1f0d04721d0d079823140c8627130961210f074a200e053e200d0442200d052e1a0a042f150802220e06024b13090540180a049c130d095311100d6111100d6312110e6c13110e6813120e5f12110d5812100d5e12110d6112100d6812100d5711100c5e12100c5911100d5912100d5711100c9a110f0c7e0d0c0a790d0c0ab8100e0c63100e0b55110f0c5712100d5112100d5d12110d5612100d57100f0c50100f0c49100f0c430e0d0a55100f0c4f0e0d0b540e0d0a540c0b09800b0908440a0907520a0907550908065d09080658080706530b0905621a150d50130f094f14100a4d1510094c15110a4f15110a26100d071a0c0a054b16120b4616120b4516120b4f18130c5019140c5118130c4f18130b4d17120b4814100a4f17130b4c16120b6018130c7a1c170f48090806750d0b0a560d0b09570d0b0964100e0c6d12100d8013110f941513106912100e88161411901815137b171412811715127c151311891714129c11100dc31f1d19851f1c196114121069181613461513116c1c1a1785221f1ca02f2b28732d2926692b29268c3d3b368e47443e7747444085524e4a8c57544e74524e497758555059504d488e63605a79615f5b8764615e8065635f5f5b57527565615d6a5856526c514f4a69514d4a7a514f4e6c4f4c4a7c47433f7d3a373347181714562a292373292721822c2a25892927239925221f9f1d1b18a7181714b012100eac100e0cbb0f0d0bb00f0d0ba812100cc115120eb816130fbb191511bf1c1814af1d1914a3231e17ff3b362fdb302c24a429231c85221e1885241e188a251f199c2a241c9f2b251e902c251d922b241d9f2d271fa42e2720a2302a21a5312a21a4332c239c332c2395332c23602a241b2d231e173d2520191e1c17128e3f3c36ac39332c764d49448856514c6f55524a745a554e7e5f5b54a16d6962936a645d6d5c58516a625d5566625e578168645f746964608d6e6a64866a655f8e6b67617b5f5c56815b575172544f4a7055514c7455504b804c494457403e3a6844403d7835312d7f22201ce2211f1ca918161264231f1c6e201d1967221e1a9025211d93221d19741e191667191512861c19157c1b171361181411801a16139c1c1815871a1612931a1612671714107b181511781814118f1814118816120f8716120f7714110d600f07047a2310088023100976210f074c1c0b04461b0a04551c0b04461b0b0442110602421c0c06531d0d064a1d0c065d1f0e074e180903150a030145150803b6110d0a4f0f0d094d0f0d0957100e0a57110e0b58120f0b52110f0c5213110d5616130e5017140f5a19161155181611ad1915115d18151056181511751b1813441e0c04461d0b045c230f06782611077e2611076d25100799251108932612087e220f06681f0d05591f0c044f1d0c04581f0d046b1d0d06e9241a13bf23160f3d1f0d054d200d055d220e066b2411074b1d0c053e1708022a0e06027c170c0757180a04aa130d095811100d6212110e6413110e6913120e6f14120f6113110e5e13110e5b12110d6513110e6312110e5812100d5d12100d5e12100d5812100d5d12100dab12100d7b0d0b096a0c0b09b20f0d0b560f0d0a4d110f0c5e12100d5412100d5c12110d5311100c52100f0c51100f0c55100f0c4e0f0e0b56100f0c500e0d0a590e0d0a560d0c098e0b09084b0a0907520a0907570908065708080659080705520907047318130c5a16120b5515110b5315110a5316120b5517130c581a150d250f0c075916120b4e14110b4816110b4f18130c4d17130b4e18130c4e17120b4c16120b411310095219130c4f19140d561a150d731c170f45090806770d0b09500c0b094b0d0c0a67100e0d7d13110e8b14120f8b1513117314120f7a151310891916137c1815127817141176151310891714129712110ec923201d79201e1a52171411821f1c18541b19176c24211f872b29259538343080393632703634309048454192524f4a8d55524e95605d578b605c57845d59557f605d5955524e498e66625f7263615c856d6a65766765618763605c7463605c5e55534e5a4c4a466856534e7351504d5d514e4a8247433e82403c384b1e1c18301e1b17843d3a33a44441398a35322c882e2b268928252192201e1b9119171497171512a112110ea714120fa614120eaf15120fb916140fb5191612b81d1914b01f1b16a5241f18ff3b352fff3b352e8c27211a74211d187e211d1780221d189726211a9527211a9529231c9d2a241d9d2c251da12e271fac312a22ab332c22a6332c24b0383129973b332a853b342c653b342b271f1b1443231e178e45403a8f4a453d7e4e4a4495605c566e5a5651715c58518e67635d9a706b658c6c67617a68635d756a655f5f615d557c69645f6c67635e8a746f6990726e698f6f6b648a64615b66595550735d58516758534e6f5b555070534f495548443e69514d477b403d376923211cc5201e1a7d1916126c302b2681302b2766292521942925218d25211c7e1f1c18711c18148c1e1a16871b18147a191613961d19159d1d1915941b1814921b171364171410711713107617141090181511931814108516130f8013110d640f07047d210f088722100985221008451c0b04441b0a04511b0a044a1b0b042a0f0501561a0d07611f0e06541e0d065c1f0e065c170a03210704024d150803b0100d0a5a100d0a4a0f0c0958100e0a55110e0a59120f0c50120f0c5914120d5a16120e5216130f5c19161156191611b21a161257181410591a1612721b1813511e0c0463210e05832711076225100662250f066b251007ad2914098a2511077b220e057f210e065e1f0d044a1e0c0463200d04741c0d07af24150d6d241109381f0c053e200d053c1f0c055e230f06441d0c05441709033c0c0604b5160f0b73150b068d110c085312100d6513120f6b14130f6914120f7315130f6513120e6113110e5912100d6213110d6613110e5a12100d5e12100d5e12110d5e13110d6013110eb212100d780d0b098f0e0c0ac7120f0d5f0f0e0b4b100f0b5513110e5512110e5612100d55100f0c53110f0c53100f0c5611100c52100e0b5b100f0c510e0c0a500d0c0a4d0c0b09810a09074c0a090757090807570908065708070658080705590706035f19140d7c19150e751b170f7c1c180f731e180f731e180f6e1f19102f0e0b065e17140c4f16130c5419140d631a150e5b1b150d601b160d5b1b160e4a18130c4717130c651b170f671c170f5617130c6e1d180f35080705660c0b09670d0b09470d0c0a63100e0c7f12100e8c14131088161311771512107f161310801815127d191613761714117a171512871916137711100db3211f1a8d28241f4e1b18156c22201d501f1d1b6b2725227b302e2b7f3c3a366e3e3c386b3b3935924f4b478f55534e8656544f885f5b57735f5c57815e5b576d56544f3e4744407c615e598864605d7b67635f6b605d59835c5a5677615e5a5e585550594b484466534f4c644e4d4a6a4c4b4973433f3a703d3a355e23201c292a272168403d3586423f387f3a37328235322c862e2b267d2926218522201d8e1e1c19941c19169b1917148c181511a5171411ba191612b81d1914b51d1914af201c16a7241f18ff35312aff322e2792241f187b211c1780201b1581201b1592241f178e231f188e2520199929241d962b251e942d271fa6322c22b2383127a9373129a53e372e93443c328a49413676473e332d1e19123b211c157b45403a7d4641396544423d8d5f5a556457534d755e5a548b66635c9e6f6a637d69655f7665615a5f59554f4b55504a6b625e587b655f5a7c6b66608669665f906965607d6360595e55524c715c57515e544f4a795b565165524e4852484540594e4b454e3f3c34872b2723a91e1c1849211e185f312e2968322f2b682c2926832f2b27752724206a221f1c6c1c1a168f201c198b1b19157a191613861d1915841d19159f1c18148a1916125c15120f6316131083181410851714118915120f8815120f7d14110e5e0e07049523100984210f087f210f08541d0b05491a0a045a1b0b05691d0c05200e0501731d0f096a1e0e07641c0d07621e0e074d1608031c0703024b140803ad100d0a540f0d09500f0d0957100d0a57110e0a55120f0b5612100c5a14110d5915120e5616130e5618151054191510a61a151160191611621a1712771d1a156d210e057d220f068427110871251007692510076e251007a82b150a8324100782220f066c1f0d05521e0c04531e0c043e1c0b03601b0c06581b0f09521f0f0744200d05361f0d05371f0c0454210e064f1d0c054e160903290f06029a140d094f15090487110c085712110e6714120f6d1513106914120f6f1513106514120f6213110e5913110e6414120f6914120e5612110e5e13120e6013110d5912100d5d12110da713100e810d0c0a5f0c0a08ac100e0b7311100c5412100c5613110e5e12110d5c12100d54110f0c53110f0c56110f0c53100f0c53100e0b5a100f0c550e0d0a520d0b09490b0a087e0a080747090806520908065408080656070705580706055d0a08057517130c7a1a150e681a150d6c1c170e7c1d170f6f1e180f6f1d180f341410093216110a3c15110a4617120c4918130d31221d1631211c1730201c16641c170f5a1b160e6c1c170f6c1b160f6219140e5716130c45080706790c0b09690d0b0a5b0c0b0960100e0c7312110e7b13120f861413107b1412107a1513117616141176171512691614127f1816137f191714500e0c0aaa24211c9e2c28235523201c602b282443252320682d2b287737343174413d39613f3c39613d3b3696524f4b8b5755508c5a575277595650715c5a5471575551705554504f4b49439262605b865e5a57855e5b5776605c596c5a5853665856525f5755515d4b48436651504c5a4c4c475d4a48465f3f3b35773d3a3649161411232b2922554441398244413bb03d3c397037342e4e24221d48201d19742a27227b25231f8724211d85201d1a861f1c17891a1714a01c1915a41d1a15a01d1a15a8201c16a3221d17f8302c25ff322f2782211c1681201c1685201b16851d19159d221e179b231f1888231f189c28231c9a29241c972d282082312b2574312c248836322ba1463f379149423975423b336e4a43383e201b14371e19127b44413b663a36316645413c7f5e5b546852514b7c605d568965615b9069665f7e67635c6b605d56645c59535f59554e79615d567e615c57936d68618368645d8365625b7e615d576757534e705c585253524e48765955506a534f4a504c47435c4d4c454d45433b752b2722b623201c4729251f683b3833653835305c302d2976332f2b63292622622825215d211e198c211e1a7b1d1a167d1a1814781d1915891d1a16901b1814831915116c16130f6e15120f841613109b1815118916130f7e14110e7813100d5c0d07047e210f0785210f077f210f08551e0c04571a0a04591a0a04541b0b04331107015f1d0e076c1f0e076f1e0e07691d0e07571709032c07040244140803af0f0c094e0e0c09560f0d0a54100d0a59110e0a51110e0b57120f0b5714120e5b15120e5917130f581814105017141096161410581815105f1a1712751c191478220f06872410067e27120872281208762812086f2712078529130872231006641f0d045c1e0d04641e0d05571d0c04641e0c04571c0c04891d120c51210f0749200e0548200d055a220f077724100841170a0540160803280f060281160c074a150a0480100b075b13120f6614120f711514116f1513106f1614106514130f6114120f5613110e6214120f6013110e5113110e6514120e5a13110d6614120e5a12100dac13110e780d0b095f0c0a08aa0f0d0a70110f0c5c12100d5012100d5d12110d5912100d55110f0c53100f0c57100e0b5a110f0d560f0e0b5a0f0e0b540e0d0a550d0b094f0a0a0780090806430808064e08070654080705560807055907060553110d096b16120b6418130c5818140c6c1b160e6d1d180f6b1d170e6e1e180f311410093915110a6d16120c3716110a4d19140d30201c16301f1c16311f1b156e1c170f601a150e711c170f681b160e5917130c4b100d0935070605690c0b09710c0b09560c0a095d0e0d0b76110f0d7912100e8313110f6311100d7615131073161412801815136e161411721816136c1a171496100e0bac23201b6e201e1a4a211f1c542b2927412524216c302e2b77393733944846426944413e553a3835674644408f55534e8554524d8a5b5855785c5956624e4a475c4c4a463d3d3d39795756518b5b58558e5b5955835653515f504d4a67514e4b4e4846434d3e3c374f46433e514644416745444056373430693b37335112100d2f37342e2d3531294a36322c73403c353625221d3b2a261f4628251e43211e186b2a2822842a27227e2724206c25211b7b221f1a9f25211db6201d19a91d1a167e1c1913a0211d16f92f2c25ff312d2598211c16821f1b159a231e18891f1b1698221e18a72420199c27221a9227221c892b261e90312b235a2b2620833a332b56342f276a3d372f9a4f483f6c443f35674c4439322e281e45211c156a433f3878423d37754f4c467856534d5b4d4b457258544e88605c569a6a665f8366625c5f544f4b4d4e4a44484947416d5a5651895e5a5589625d59735a555186605c576c56524e5f4d4a445b514d454d4c49437354514c704e4c474d474440584b49416e403c345e272420b6221f1c832926215e3a3632613936325d34312d7436342f7c312f2b5c2a26234e211f1c5d211e1b7f1f1d196d1b18167e1e1a1796201c18801b1713781815115514110e6a15120f94171310971713107914100e8814110e6c120f0c5b0d06036e200e0670200e067f1d0d0754190a044b190a04601c0b04511c0c05311006025c1e0e07581d0d063b190b04581c0d064a1608031408030142140803b30f0c094a0e0b08530f0d0954100d0957100e0a53100d0a54110f0b5a13100c5c15120e5516130f5c181410501714109a1614105917141062191611721b18135d200d0566210e056c2510067c28120767261106732913079c2b150979231006611f0d05631f0d045e1e0d04521d0c04621e0c04541c0b0454190e08471f0e064b200e0657210e0650200d066a22100846190a0448150803380d06036b130c074915080489110b085a14120f6714120f781614116f151310701614106214130f5c14120f5713120e6514120f6114120e5613110e6114120f5812100d5e13110d5b12100db114110e7a0c0b09550c0a089c0e0c0a69100e0b5b12100d5511100d6012110d5e12100d5b11100c4f0f0e0b530f0e0b59100f0c550f0e0b560f0d0a4e0d0c094f0c0b09510b0a0871080705470807064d070705550706055706050453060504550c0a065e120f095316110b4a15110a6d19140d711a150d6d1a150d6c1c160e30120f092e130f093e130f0a53130f0a4615110b5017140d4816120b4c14110b4c17130c5013100a3b14100a34130e09531a150c3d110e0927070605550b0a08480b0a093b0b0908490c0b09580e0d0b530e0d0b5a0f0d0c58110f0d5811100d5112100e581513104b1513114a17161346171613950e0c0aab1e1c1975221f1c4022201d4c2a29254b2a28255f302f2c5c3433306d3f3d39633e3a363e32302b3a39363151413e3a5e4b4844634f4e4a564d49454d4644404245423e2c3834316654524c6656534f5f54504b564f4b46504a48435749464243423e39463d393548403d39463f3c385943413c4334322e6c3935325213110e42322f282133312a373c3a31312d2b242929261f4e34322b422e2b233b25231c41211f197b302d277b2e2b255628251f7e27242098292521b825231fad201e1a7f201c1895221d18f92f2b24a3221c17901f1a147d12100d9c1f1b158e1f1b169d241f1889241f1a8f27231c7e29241e782c27205a2c271f71342f27813c372e6039342b61413b3274443f36bd615a4d35403b3058403b303e1d18136f433e3a714b4943614a48406e504e4738413c363e45403a6757534c725c5953635a554f4d4e4a443a4b454039453f3a6058534c5c58534d685c56506357534d6c54514b57504c454e49443f514c48414246423b5e504c45544946413e403e38363f3d36693d383268282723b0201e1a732926214234322d643b38345835322e5934312d582f2c28552b282434201d19311f1c18451e1b18471c1a165d1e1b1757191713521613103d14110d3f120f0c5714110e5b13100d6713100d61120e0c66100e0b4e0f0d0a5d0b0603791f0e07581c0c0578160a0555150803621b0b05401a0a03441b0b04360f06034e1d0d06471d0d063c1a0b0449190b05481508031a08030150140803a80f0c094a0d0b08510e0c09570f0d0a5b100d0a57110e0b56110f0b5a13100d5a14110d5514120e5716130f5116130fa01613105c161410551715106a1916125b200d0557200d04912a140895291308682610077b2a14088e28130877210e055d1e0d045b1e0d045e1e0d04671e0d04611e0d04441a0a046f1a100a481f0d063c1e0c04551f0d05421d0c05401d0c0540180a043a1407022a0b05023c1108044114080388100b085d14120f6f151310711514106915130f6d1513106314130f6015130f6014120f6614120f6114120e5914120e6013110e6213110e5812100d53120f0c9d12100d650c0a08460b0908a40f0d0a69100e0c4b100f0b5712110d6012100d5e12100d57100f0b510f0d0b520f0e0b5a100f0c520f0e0b580e0d0a4f0c0b09510b0b084a0a09077b080706470707054f070605500605045a0605045a0505043e0907046b13100947120f095e14100a8b13100b8d110e0a990d0a07a8403a2b4e15110b2a120f092b120f094f18140d6f19150e8716120ca215110bba584c37ee5243308b2c251b2d130f0a3014100a581a150e4018130d61080706670a08076d0b0a08690c0a09650c0b09760e0d0b6d0e0d0b670f0d0c6c11100d7814120f6213110f6c161412681816135617161351181714980d0c09bd1f1d197825211e6223211d60282622632b2926642e2c295e2f2e2a6834322e5e32302c6636332f693a3733753f3b36693c3935633c3b37683e3c37683f3d3a64403d3967413f3a6d43403d6f43403b6b413f3b67403e3a6a3f3d396c3f3e39643b3937683b39356d3b3935653736336c3735327732312d4426252169161411432d2c27403f3d362f403e362024221c5034312a743b37316b36332d602f2d275d2926205223211b7b312e286d2f2c2643201e19782925209725231f85201e1b70201d198925211a9526211b9825201ba8231e199a211d1798211d179a241f198f25211a8927231c7727221b722c2721422420196a322d258b37332b703c372f5d3b372e64443e3535302c24413e3a323c433e3639453f35481c19134b1e1d196e3f3d377144413b6e433f3a6c46423d784a46407a4a46416945433c7149453e704845406b48443f6d48453f704a4640704a47406c49453f6345423c754b47406746433d6945423d6b45423c6542403a6b42403a6b43413b5b3d3b365137342f7a393631652a2722bf211f1b7c2a27236036332e5e32312c60312f2b592f2c28602e2b27572826215e2624206125221f6d24211c601e1d195f1b19156619171466161411631512106d14110e7013110e7413100d6f100e0b69100d0a7b100e0b6e0f0d0a550a05037f1f0e07811f0f08741a0c06721a0c05601e0d05511d0c045f1d0c0531110702561b0d06451b0c05581a0c064d1b0c053f150802190803014f1408037c0e0b08470d0b08520f0c09580f0d0a5b100d0a57100e0b58110f0b5b13100d5913110d5413110d5716130f5416130f8e15120f5114120e5c1714106a181511591f0d0552200d04912914098527120861261106632510067a25110767200d05661e0d045f1e0d04411c0b03631e0c04671d0d04541b0b0447190c063a1c0b0550200e063d1d0b04381d0b043f1e0c0543190a044a150803250e0501501409054315090481110b085f14120f6c1514106b1513106514130f741614106214120f6014120f6414120f6314120f5d14120f5e14120f6113120e5e13110e5c13110e5312100c9e12100c640c0a08420b0907900d0b0967100e0b4a100e0b5512100c5a12100c5b11100c57100f0c530f0e0b550f0e0b5d100f0c510e0d0b590d0c0a4d0b0a08510b0a08490808068a0807064d0807054e0605044e0605044e050404570505044a0806045914100af926251cff333126ff66a598ff494d43ff3c3a32ff3633294a14100a4715110a5717120bf446352aff364538ff45473aff3b563dff3c3d31ff454434da523c2c3f130f0a33100d094914100b561c170f30060504650a0907550908073b080706560b0a08580d0b0a5d0d0c0a540f0e0b4c100e0c4a11100e5d16141247161412431514124c191816501c1b18880c0b09c8211f1b6a211e1b4022201d452726233d2423215c2d2b295d2e2d2a6633332f4c31302c49302d2a5d3c3935623e3c36563d3a3754413e3b5841403d543e3c393d3a39343634332f704645416943413e5f413e3a5d3d3b37593c3a365a3b39363533312c392e2c294934322d493635314632302d57373532562f2f2c41201e1b52272522483a3833473734302a37342d4b322f28723836307e39373279302f2a5f2d2a245d2c28225b26231e752e2b25602c29235f28241f792a26216823211c7823201b7b29241ea82a2621ba29231da629241d9b25211b8f241f1a7e231f1a7925211b7928241d7c2b27204b211f19542d29225f332e26733c362f733e3831603a362d4a38352b3a3a362f3a39352e2f35302923312d244626252178403d3a6a3f3d3850373631543d3a36493f3b3652423f395743403b634a4642604a47434d423e3a333c3b333d3c3a34644946416048433e5d46433c6f4b48436a49454050413e3947403c3652413d36463f3d3750403d37513f3c373f3835304b3f3c3764393630642b2823cd2725216926242047302e2a5234322f4b2f2d295532302c542b29253e2725223f24221f492624204f221f1b431d1b184d211f1b5b1f1d19581b18144c1714114314110e5c13110e6414100d66120f0c77110e0c670f0d0b540e0c094c0a05037c1f0f078c211008751f0f07661e0d05471d0c04421a0a0345190a0344100702831e1008461c0d05561b0d064a190b0543140803160803013e110703680b0907440c0a07470d0b08560f0c09580f0d0a58100e0a58100e0b5712100d5812100c5512100d5614120e4713100c9315110e5a14130f5b15140f69171510481e0c04481e0c047c2412076e24100650200e0581251108812411086d1f0d055d1d0c04741f0d05531c0c04651e0d044d1b0b04571a0b05511a0c064a1f0d06531e0c05491e0c052d1b0a0454210e064c1a0b04451307021c0d05015e140a053d11070393100b076014120f6d151310721614106e151310711614106114120f5a13120e5d13120e6013110e5b13120e6213120e6513110e5b13110e5712100d51110f0c95110e0b710b0a08580b0a08950d0b08610f0d0a4e100e0b5412100c5d110f0c5b11100c5a100f0c520f0e0b550f0d0b5a0e0d0b520e0d0a580d0c0a510b0a08540a0907570908067c0706054306060449060504480505044c050403550504034109060451110e09ff2c3225ff3c3e30ff71625cff5d5c53ff403d33ff3330254a14100aa50d0b084615110af84c352aff3b362dff463e34ff433e31ff433d31df4a402e751d171050130f0a4617130b4a19140d521b160f540706055608070651090806520a0807550b0a08580d0b0a530e0d0b4a100e0c4911100e4c13121051171513551917154c1b1915441b1916571d1b188b0b0a08b11f1d196a211e1a55252320612e2c28552d2b276434312c6635332e5435312d5e3735305835322e4835322e523b38324d3b37336244413c5d42403b6445433d6447443e6946443e6f48453f6547453e6d4946407047443e7049463f6e47443e6445423b5c3f3c3668413f39643e3d386b3e3d38673b38345b23211c62322f2b5f2b29264a2d2a27443634304436343137322f295f35322c7536342e6c322e2a602d2a26752f2c27833f3b34772d2a25702f2c266b2d2a246b2d29236f2b28215f28241e6a27231d8827231f9429241f9528241e9329241e8128241d7e27221d6c27231d6b2a261f732b27207c2f2c26592e2a2358322e276438332c673c372f45332f28363a362e453c38312f342f28242c29217e34322e522c2a267944413a7646433c6145403b7448453e5e4240395644413a5644413a674d4a42664d4a426d4d4a43694e4a43714e4b446f4e4a426c514c446d4e49416f524d4570504c4469504b435748443c6149453e5c48453e6449453e5c44403a4b3d3933523c3a33753b3832652a2723bb282622762b28245837342f5436332e5939352f5936332e46302c284f2f2c274b2b28243b25231f3f25221e3e211f1c4d211f1b491e1c184d1a18144f171512581613105213110e55110f0c570f0d0a5a0e0c0a5c0f0c09590e0c09330905039e211109a62111098b1f0f08561b0c05491c0b0437180a032e150802470f07037d1f10085f1d0e06471b0c054d1a0c05281106021008030182100905950b09073a0b09074a0d0b08480d0b084c0e0c095f100e0a58100d0a54100f0b56100f0b5111100c5914120e5412110da914110e6014120e5d14120e6a15130f451d0c04471e0d057d200f075c1d0d053a1b0b046c200f067d2411075f1e0c04611d0c045d1e0d04651e0d04721e0d05621c0c042e170903581d0e07621d0e07531f0d055c1f0d06481f0d0565210f074f1a0b044d130702240d0602ab130d09461207038a0f0a065a13110e6b1413106f1514106b1513106c15130f6213120f6114120e6413120e6313110e6514120e5612110d6213120e5913110d5312100d4e11100c86100e0b6d0a09076d0d0b099c0f0c09640f0d0b51100e0b55110f0c5a100f0c5a110f0c5a100e0b510f0d0a570e0d0a570e0d0a550d0c09570c0b09500a0907530a0907530908064b050403450605043e050504450504033e04040327030302460b09055014100ae4353225c4453e2da4524b357515120d6714110c4c1a150f4015110a4b15110b5215110b5615110a4d100c086714110a5f19130d4416120b39140f0a4615110b4a13100a59120f0a4b0d0b07350f0d0845060504530706055109080648090806410a0907420b0a08440c0b09450d0c0b420f0e0c43100f0d4011110f44131210431413114a161513511716148a0c0a09ac1d1b1866221f1c551b1a17441d1c19431d1c1a48201e1b4e201f1c5221201d4c21201d4622201e4823211e48252421512523214f252522502625224a27262345282724422625224e2726234a2524214b242321442524223e24221f4322211e4621201d4221201e44201f1c401e1e1c3f1e1d1b451c1b1a69302e2a722c2a26421f1d1a6e2a2926392b29253a2e2c28402e2c283f413d36672c2924742c2a266a272622ad45433c5e2825215a24221d551d1c18652c29236e2e2b257c2f2d27652a2720742c2823802826218e2f2a25912d2823862925207728251f6d27241e712a26203f201c164525211a4f2825207735312958322e276636312a56322e263838342d38332f293b34302936201d1a57272522582f2d28533c3931492b2824552726224c2625224c28262243262421492a282451292724542a2924502928244b2a2825462b2925442b2824512a28244f2b2926482b2a263f2b2924432b29244c2a2724442c2825452a2824412b2925402a272444292723492826234d2b29246e2e2c28602926239e24221e702624214024221e4122201d4723211d4821201d51221f1c49201f1b441e1d1a451e1c19461d1b184f1a19164c19181451161512441513114614120f4112100e51100f0d4e0f0d0b470e0d0a400d0b09490d0a084f0d0a08450a050384201008801f0f08a12010085d1a0b0549190a0367160d0777180d0748150b046115090452180b0444190b0441170a04231006020a0a04016b120805ad0c090756090706400a08062c0a0806400c0a08590e0d0a550f0d0a530f0d0a490f0e0a4e100f0c5b13110e5912110d90110e0c5e12100d5d13100d6b13120e431d0d05491e0d05631b0d05611a0c053c190b04531c0d0596231108721f0e055c1e0d04571e0d04611f0e05541d0d044f1c0c04351709036c1c0f088d21100a571f0d065a200d054a1f0c054d210e063c190a04481207022b0e0603860e0b0849120703840f0a065c13110e6e1513107215130f6815130f711513106214120f6014120f6013120e5d13110e5d14120e5312100c5f13110d5913110d5912100d5612100d97110f0c6a0b0907450b0907b4110e0b660f0d0a4f0f0e0b56110f0c5a100f0c5d100f0c590f0e0b580f0d0a560e0d0a590e0d0a450c0b084c0b0a08460a09074108080635070604750705042304030330040302510403027d03020266020202430b090565110e095d140f095b14100a5d15110a5a130f0960120e09590f0c08650c0a07390d090650100c08300c09062f0c0906350c0907360d0a07370d0a08330e0a0841110d0a39110d0a42130f0c6a2821165b2b25183a0505045a0908064e090807400908074d0c0b0a5e0e0d0c64100f0e76141211581312106c161513691a19175f191816501a1816741c1b19671d1b1953080706c11e1c197624221e3e1e1d1a3922221f3a201f1d5326242256272623692e2c28592c29264a2626236231302d5e33322f6231302d5f33312e653735316d3937336038353240302d296f3e3a356a393733743c3a365637353259343230683533304833302e4c2c2b2664302e2b5831302e4f2c2b29642d2c295b3835315034322e5f33312d68252320833b39372b23211d39282622462e2b28523b3833752c2a25753836306028252042211f1b5e2a2722582b2721451c1b16652d2924732f2c266a2b28227d322e277f2d2a268136312a83322d277f2f2b24712e2a245e2d292243211e17682d29235c2d292239231f19522b28229f3d3931512d2a2244322e283a302d29342f2b2438211e1a65312f2a40272320573e3a354a3d39336232302b5f32302b5a33302c5d32312d3e302e294234312d5f383733713e3c366a3c3a35603a38334b3835304c37332f583b3832643e3a356945413b6f43413d7d423f3b62403d395f3e3a356e3c3a36573c39365b3836325c35332f5331302c4532302e532f2d2a752a2824ab24232048191714382827224c2b2a26482a28244a2a2924512826224726231f3e21201c4b2624214922201d431b1a1752221f1c6323211d601f1c1a5c1b1916561816124213120f601513106515130f6b12100e71100e0c5e0f0c0a4a0d06036d1f0f07781f0f07781d0e074d1a0b0540190b0539150a0342180c03381209034d12080347170a0432150803361508032a0f0602080b04017b110905e00d0b093a080605540907057d0807056e080605590a0806350a08063c0d0b09440e0d0a460e0d0a4c0f0e0b4e100f0b5d0d0b0953100d0b4f100f0c6a12110d4d1e0d06461d0c0480190c0578180b047c1a0d05701b0d059b1e0f075d1a0b04601c0c05551d0d045e1e0d056c1d0d045b1c0d042c1608033f170c0777220f0856200e0666200e075e1f0d065e220f07541a0c06431207022c0e06033f1008043b1207028c0f0a085a13110e6714130f6b14130f6314120f7115130f5f14120e6114120e6313110d6214120e5b13110d5712110d5e13110d5613110d5512100d5912100c540e0c0a860d0c09480a0907aa0f0d0a640e0c0a4a0f0d0a51100e0b4d100e0b540f0e0b4b0e0d0a5b0e0d0a580e0d0a570d0c0a400b0a08420a0907320807053e07060457050403660403026a04030351030302590403036a04030251030302410a07055a15110b6415110b6416120b6815120b6118130c631a150d6319140d47100d0952110c0952120d0a390d0a07380c0907390d0a073b0f0b0942120d0a3a110c0a3b110d0a3c130e0b3c130f0b5f29241950282318330505045d090706570908073e090807560d0c0b620e0d0c7111100f6d1312116d1514135b1715136318181665191917551918166b1b1a18701a191853070705cd201d1a7c21201c4b1d1c195d2625234e2322216b272725712827247b2c2b296f2b2a274f25232178302f2c803433307432302e7633322f5f32322f6c3533305632312e3f2e2c2874393732793735316c3633305733312e6a32312e6c33302e542e2c2a542928265e2e2d29572d2b29542b2a28652a29275633312d52312e2a5432302c5a2c2a2687201f1c6e2c2a2730201f1b40252420452726234b2929254c1d1c185e1b1a16652a272266292721712d2a25582926212c1a1814602c2822662e2a247934302980322e2875322e287f322e286f2f2b265f2e2a243e24201a582f2a226a312d256d312d26562d2a223b211e18802e2b24482c29243e2e2a25332e2a24331e1c18722e2d2a4a2c2a254636322d54393630493a37317e3635307a36332e63302e2b7234322f4c302e2a6238363169383532813e3b3865373531603634304432302c4333302b643a383168393732673f3b368044413d7a403c39763d3a3765383632723d3b3655383530603836315b32302c492f2c295f35332f7933312d65282622bd28262346171513602d2b285b2f2d2a582b2a27612d2b27612927245b252521401f1d1b5d2423205e23211f5b1e1c1a62201f1c6823211e5a1f1d1a5d1c1a1747171412511614115f151310621512107514110e67100e0c6a100e0c3f1a0e078323130b681b0f08441b0d0574190e083b160a032b1509033c160b0342120903551309034e170a043b1609033c15090434100602190b050266100804e50d0b094a0907056109070659090706550a08064b0908066209080680090806710a0906540a08063d0b0a072d0a0907820f0c0a3b0d0b09470e0d0a58110f0c421c0c04451c0c0578150904761309047b160a047c190c057e170b0567160a045d190b04431a0c045d1b0c047b1d0d05591b0c043c1709035b1b0e087d1f100963210e075e1f0e0667200e06581f0e0659190c05491207022a0f0603a9110c0939110702890e0a075c13120e6814120f7115130f6313110e6915130f6113110e5d13120e6314120e6213120e5d12110d5512100d48100f0c5812100c5912100d57110f0b440f0d0aaa100e0c5b0b09079b0d0c09640e0c093e0d0c09500f0d0a460e0d0a4c0e0d0a4a0d0c09490d0c09350a0907450a080656080706750806056f06050447050504490504032f0404035a050403660403035f040403730303025b0302025109080563120f0a7214100a6e15110a6517120b6c17120b7319140c6619140d4b110d0a4e110d0a4d110d0a360e0a073d0e0b083d0f0b09340d0a08380f0c0935110c0942110d0a60120f0c6314100d692c271c4f2c271a3305050459090807480a0907400a0908540d0c0b5f0f0e0d71121110751513126914131269161514691917166c19181760181716781a19186d1b19189b0e0d0bd31f1d1b751e1d1a551c1b186b2423214f20201e6f2323216e26242280292726602624225a232320792f2c2a82312f2d80312f2d70302e2c592f2d2b652f2d2a5a2e2c284027262371312f2d61302e2b6332302d592e2d29602d2d2a612f2d2b552c2b2959282725642b2a28662a29275e292927732928265634312e4e2d2b274f2e2b27512b2a2651282823581817155e272622381918143121201c3c1e1e1b3e2f2d293d211f1a6127252065282520662b2823632b2823512a27213c1f1d18662e2b257335312a71332f29693430296d322f294d2c28224724221c5a2f2c25522e2a24562c2922642c29234f2b27204723201c3d332f29432d2a253b2c2924321a19154825221e4923221c4d332f2b4b34312c5c3937324534302a8231302c75302e2b602c2a26622f2d294f2f2b276034322e7436343082393633673532305a322f2c472f2d28432d2c285c33312d6236332f6e3b3833733b3835713c3833813937336c363331743936336134312e6d3835316f32302c4e2d2b2856312f2c6b2e2c295c24221fc8272521901e1c18662928255f292725572725235d282623662522214d22201e4c1f1d1a5d23211e5f211f1d641d1b1965211f1d5f211f1c611d1c19581a181545161412461514115c161412681614116b14110f61120f0d6b0f0d0c31150a03371f1109381b0d05381b0d054e1e0f0630180b032f16090327160a03461209034e13080338140803371509033d14090336100602190b050387100905e10f0d0a5e09070661090806620908066d0a0807610908065e0a0807660b0907480a0806420907065b0908067f090806790908065d0b09072a0908063f0d0b09391a0c043b1b0b04651208036010070387150a046c160a0482170b0467150a045f180b04581a0b045b1a0b046a1b0c056d1b0c053f17090359190d08782210085e1e0d06581c0c053f1b0b04501d0c0556170b053f100602350b05033d0f0805370f0603880e0a075c13110e6b151310751514106413120e6914120f6013110e6914120e6713120e6113120e5d12110d5a12100d3f0f0d0a51110f0c49100f0b460f0e0a3b0e0c0a840e0d0a600b0a08970c0b094a0b0a073e0d0b09490e0c0a2e0b0907230908064b0a0806700706057f0807065e0706054b0807065809070660070605530605045006050443050403640504035d04030264040303640403025d0302024709080563110e095e140f095814100a6016120b6417120b6417120b5c18130c43100c094d110d0957130e0b320d09073b0e0b08390f0b09840f0c0a8d110f0c35110e0b9f13100db31713108c1814115b332d2050312b1e380605056909090855090908400a0909590d0c0b600f0f0e6e11100f70131211651211116e1615135f1615135d1616145a1615146a17161568161513990b0a08b51d1b18691b1917511817155c201f1d401d1b1963222120722422206b242321672423215721201d6a272624802b2a27842f2d2b662d2c2a612c2b29562b2926552b2a26452827237c2f2d2b6f2d2b29612d2b295e252422542725235b292725522826234e22211f6326242352252422522423215c22211f492927244a27252251282623532726234d2625224f25231f401c1b187221201e26171713361b1a17411c1b1a452826222d1d1b165b2c2a2468312e286e302d2765302e275b312e28492c29235b39352e552b29245a2927215d3b38304e302e273c37322b44342f285d37332b5f36312a57312e284427241f5138352f422c29242e2826232d1c1a176d2827222b211f1b462b28244b2e2b27492f2c274c312e29412e2b277b2d2b28762e2b2855282623602b2a264a2927245a2d2b277533322e773533307034322f4e2f2d2a442e2c28462d2b266b32302b6c32312c6734322d6b33302c7235332e7d34322e5e2e2c296a2f2e2a512d2b275f2e2c285c2b2925472926225d312f2b6c2d2a265e211f1cb0201d1b761e1d1a6527252253272522492523215b2725225623211e5522201e4a1d1c18521f1d1b601d1b19621c1a185c201e1c551f1e1c4e1b1a175b1a1816401715125316141263161412621613116013100e6012100e69110f0d2f1b0c046624140a391d0e0442211006451c0e0541190c042c160a0334150a032b0f08024a110803381609033b1509034a1509043c110702220b05025d100804ce0b0a08620907056209070564090705680a08065f090706650908066a0a080763090806500706056a0908066a0a0907280806054b0908067b0908069e0a090725190903371a0b04831309037b120803681309035d1409037c170b056b180b0462190b044e190b045a190b04721b0d05751a0c0552160a0542170b05761d0e074a190b053114080337170a0346180a0447140904350c0401270904024a0e07043f0d0502860e0a075712110e6613120e6f14120f6313110e6e14120e6113110e5e12110d5b12110d6312100d5d12100d4e100f0c5812100d4c100f0b360d0c09390d0c09a30f0d0a6c0a0907550b0908a90d0c0a7a0d0b083f080705700a09068c0908066d090706390907053e090806480907063d0808065a090806660807066307060457060504610605044d050403620404035f040303640403036103030251030202450908054f120e092e0c0a06320d0a076115110b6517120b7218130c641a150d43100c093d0f0c083d100c092a0c0907310e0b082f0f0c0931110e0a3216120d2f19150f2e1b161038201c14351f1b143d2f281b4f362f2034060605460909084b0a0a09540b0a094e0d0c0b4f0d0d0c5a100f0e5c10100f4e10100e5912121053141311541515133d12110f5d16151459151312a10a0806ca1d1b19661b1a183e151412441a1816311717145f1c1b1a621e1d1b4b1d1c1a501e1c1a3e1b19186122211f662423216a2725234a23211e4d23221f592524214f2524204021211e54262421632625236b292826512221204721201d4a21201e4520201d401e1c1a491f1e1c3f1e1d1a4a201f1d471e1d1b4227252254262522502423204f232220502423204b22211e4e23221f451c1b186d21201e3812110f3f1c1b19391d1b194c201e1c4024231e382a27234b272522412e2b273f29262244312e29412c2a264e2e2c278737342f4d32302a4d38363047312f2a4336332e42302d283b2f2c28362f2d28412d2924452c2a25312a2823221917146824231f3f1b181545282622472a28244c2d2a26442c29254c2f2c27462e2b276d26242263262421381f1e1b602826223e22201e48262521672d2b275d2c2a26522928254d2927233c28252140282622472a2824552c2a2772322f2d5f2c2a275b2b29266b2d2b2850272522512624213e24221e532725223f22201d36201e1b3924221e6024221e6322201db91f1d1a7d1d1c19411e1b1841201e1b4a1e1d1b50211f1d3c1b1a17411b1917311715134b1a1a174e191816491816143f1a18154c1b19165a1b1916511917143c1513113a1412104f151311661514125612100e4f100e0c570f0e0c341e0e055029160a42200f055a27130850201005401b0d0330180b033a180b032e12090244110803381509034b170a04401409033a100602170c05024f1007036c08070557070605670806056908060568090706680807066d0907066709080657080705600706056d0807066e09080641080705720a0907550a08074f0a08073d1b0b04291a0b039b140a046c1208036b1208036a15090476180b055e180b04651b0c055c1b0c04551a0c04721b0c056f1a0c053e170a045b180d0753190b0548160a043f1409033e13080339110703410d0502370b040122090402560f0703460b04028a0c08065511100d5d11100d6713110e6713120e7014120f6313110e5a12100d5511100c5f12100d6212100d53100f0c53110f0c4a0f0e0a410e0d09530d0b09890d0b09660a0807690d0b09b80e0c0a780a09075a090806590a09076d0b0a07540a080655090806530908064f0807063f08070651080706730807066307060562060504640605044b0404035e0403035a0303026303030261030302570302024c09070569120f0a4a110e095d13100a5e17120c5917130c5018130c5a1b160e3915110b3a14100b36120f0a250d0b08290f0c09290f0c082a100c0a34120e0b32130f0c30130f0c2c130f0c24130e0c4b342d1f51393223370505043733240a462f230b5c31250f4c3b2c0f313d2c0c2b3e2d0c3343310e2a44320e403e2f0f3246330e35503b102d4e39123b4d391431513c11615b420f6d61491653674e195157431b395e46162d684c143857401443443312361714103d14131330121110425c4516395b43153a6448173c604618455d461c3c70511942674b1b436e511a475f461c425e461c4c6b4e1c46674a194e634a1c4f644c1d43644c193f644a173958411539573f143e4e3b16554c3b1b4a634a1a51624a1d464032194e22211e4e21201e5023221f5023221f42211f1d551a19167b0d0c0b581c1b193f1f1d1b42201f1c4221201d4625242040282522432c2a264c2c2925422e2b27452e2c283a2926222e2826213f2c29253c2e2b263b312d29372e2c273a2f2c27372d2a26392b28242f27252139282621351e1c194111110f441d1c193b26231f45292723432a27234a2c2924452a28235148381b52624b20605a451f5556411c5455411b4c5d451a385941154d5c461c725d49234953401a43533e163c4b3816434a36164d4b38183c4d391544503b17474f3b195b4d3c1b5848371a5e47381b3e483615354734122a694f15441a191739181614323b2d113b4634134b4a3614474433138d453516594835133d4532113c4633123943300f49352812383a290f523829112f39280c5936291231392a0d3c37280d3335260c2e35250b2931230b392f220c362f220d3f493610374c3811380d0c0a370c0b0a3a0c0b093b0b0a0930200f05522f180b352511064c2b1508451f0f053b1c0d032e1c0c032b190b03291309023e12080339160a043113080327110702310f0602100c0501551108037a0807055207060560070605620706055d0806056a070605660806057a0907065d080605670706056f080705670807065e0807057509080660090807600908063e1c0c042d1c0c047d140904661208036e1208037314090479170b0566180a0457190a04571a0b046f1b0d05761b0c05661a0b044a15090460160b0654160a0433120703421207034f0e07033e0f0602450b05023d0a040120080301d00f0a08460a0402b60d0a07450f0e0b5f12100d6413110d6713120e6e14120f5912100d5811100c53100f0b53100f0b4b100e0a360d0b092b0b0a075d0d0c095d090807740a09079c0c0b086c0908066a0d0b09ab0d0b09630a09076e0c0a087b0c0a08690b0907640a080754090806500908064f0807063c0707055b0807066f07070565060504630605045905050444040302650403036403030262030302680303024d0302024809070561130f0a56120f0946130f094e15110b5318130b521a150d4f1a150d3b100c083c100c0939100c09250c0907210b0907220d0a0826100c0a31130f0c3516110e2f14100d3f6c4d162e2e210d55372f214a3a322340533a0d5a0a09095c0a0a09580b0b0a540c0c0a600e0e0c590e0e0d530e0e0d5a100f0e6611100f5711100f662b221160131211531212104f11100e9f070605c8161412671615136311110f6014131163151413651615145e161513735842165e171614583f3011681b1917751c1b18681b1a18631b1a18661c1b18671c1b19631c1b18651d1b186c1d1c1a6c1d1c19681c1b194950370e651c1b19681d1c195f1b1a18641b1a18691b1a186118181666191816661919174f1918155e1d1b185f2e251379171613751917146c161513791817156a17151372262420380a0908311a1816321a1918361b1a19351c1a19361c1b1a331d1b1a341c1b1a301e1b1a331e1c1b321f1d1b34775919361f1d1c301f1c1b2f1e1d1b321f1e1c33201e1d351f1d1c2f1e1c1a2e1d1b1a331d1b1b341f1d1b321715144011100e4f1816124825231e5e25231e4e2827213a6b4c104828251e512a2722452d2a2465201f1c7b191714821b1915811b19157e1d1a178c1f1c198e1f1d197c1d1b18831f1d18831f1d197d1e1c18801f1c18851e1c18861e1b17801d1a16751b19158a1d1b16791a18157a1917147f1a1814781817147e1916147f19171460261f10631715128919171459171513c9171513761a1916501a19154e191916521a19174b191816511919164919171250181614511817155a1816144f1514124e141311501513114e1312104a131210501312105211100e5211100e4a271d0d490f0e0c3161430c4d8c641a762d261a6f201d18681b181492201c18640f0c0a550c0a084e0b0907550a0705620b07054815090437180a04321509033b15090433110702160d050250110803c20f0d0a4907050460070605600706045c0806055e0706056d070605790807055b070605580706057208070675080706590706057709080651080706560807063c1c0c04491d0d04801409047c12080386130903791409047c160b056d180a04661b0c04641a0b047c1c0d056d1b0d0554190b0489160b0778160c0647150903411207033f1006023d0d05023f0e0502470c05022c09030129070302630d07043f090401980a08055111100c5e12100d5d12100c5f12110e54100f0c3e0e0d0a3f0e0d0a370d0b09510d0b09790e0c0a7f0b09086b0a09073f080705340a0806510b09088d0b0a08780908067f0d0b08b70d0b09700a09076c0b0a08670a09076a0b0a08680a08075708070659090806510807054708070564080706720706056006050455050504570504034e040302600403025c0303025f03030269030202570202014c0807054b110d084b120f0948130f094b17120b5018130b561a150c4c1c170e39110e0a3d110d0a3c14100c280d0a07750f0c0a5a100d0a4d120e0b352d220f337e591029120e0b2a14100c2713100c49523f1b513c352556442d0e310908083d0a0909340a0a09310b0a0a2b0b0b0a310c0c0b310d0c0c330d0d0c340e0d0d320e0d0d492b210f320f0e0e310f0e0e3111100f3112111130121211301212112d1212112a1312123f1515143516161532161515544e37102d161615523b2d1533181717341818173118171638191817361a181831191817321a1818301a1818311b1a19321b1a192e1a19183a5e400d2f1a19193d1d1c1b331d1b1a311c1a192a1a1918331c1b1a321d1c1b331d1c1b331d1b1a2f1d1a194a2e200b4d4231135b7a5e223019171642312a1d331a1818321a19182d1b1918331b1918431c1a1a2e1b19182d1b1917301b1a19311c1a1a321c1b1a351d1c1b331d1b1b2b1d1a184c564119301f1b1a301e1c1b321e1c1c321e1d1c321e1c1c321e1c1b2e1c1c1a301d1c1a351d1c1b351c1b1a2d1a1817301b19182f1a1918321a191834292318342e2515406e50112b19171473241c0f31191717321817163117161531171615311616152f1515152c1515142b1615144318181735181717321716162b1616152e17171632181717351817163318171630171615371817163618171730171615311716153117151530161514321615142e1514142d141313301514143f161615331514132f1313132b131212331413133213121134121111321211113015120f401212113211101032100f0f31100f0f31100f0e320f0e0e2f0e0e0d2d0d0c0c2c0c0c0c3f0d0e0d380d0d0c3e241b0c2b0b0b0a433f2c0c320a09093509080739543c0f703b2c10a5181512ab24211d5e16130f510c0b08570b0a085a0f0d0a510d0b094e0a090742080705570a08076a0a08075b0908068108070563040302450706045707060566070605720807055d0706055e07060478080705630606045e070605640706056d0706054b0706056f0807065907070553080706461c0d0434190a038514090398130903871309037c13090396180c0574190b04671b0c046e1c0c05751d0e05601b0c0458190a0452190b0478160c0758170b043a120802380e0602520c05024e0d05023d0b040232080301260703014e0c050337080301890e0a074d100f0b4c0f0e0b3c0d0c09360d0c093c0b0a07620b0907930c0a08910c0a08640b0908490b0908520c0a086b0c0b09730c0a08680b0a08530a0907960c0a087e0907067c0c0a08b10d0b09770a0907870b0a087c0b0a086d0a09076d0a09074d090806630908074e08070547070605650707056707060561060504500504045805040342040302640403025d030302580303024e030202680303014809070545110e084b120e0846130f094c17120b5519140d511b160e521c170f8c0f0d0a3f130f0b3f16130e2f100c0a6d100f0c4f49330f45503a123417120e2a150f0d3019140f301e1913372520164b56421d3e39332268463311330d0c0c320d0d0c330e0d0d320e0e0d370f0e0e36100f0f36100f0f351110103911101039111110634a3513361211113513121233131212331312122f12121235141414381615153e1615153416151532161515331616154e7b5c2237181717624e3b1536181818341a19183a1a1919391a1919341b1a19361b1a19351b1a1a341b1a1a341c1a1a2f1b1a1a321c1b1b5398752d401f1e1d341e1c1c311e1c1c321d1c1b311e1c1b371f1d1c371e1d1d361e1d1c341f1c1c381f1d1d3f372d1c356c4d1036221e1a361d1b1b341d1b1b511714116213110e6812100e6d14120f7d1513107d171411601a1610441b1710421a16104a19151052171410421714105d1814103e6f50165f181511691916116d1a16126b191611771a161276191612601916113c19150f421a1611501b17114e181511401815105b1a1611361e1b1a341e1c1c381e1d1c455f471741312715361e1c1b381e1c1c361d1b1a351c1a19351b1a19341b1919321b1919321b1919301a1918351c1b1a4c3b301c3d2b251b321c1a19331b1b1a321c1b1a331c1b1a381c1b1b361c1b1b321b1a1a351b1a1a3a1b1b1b361b1a19361b1a19351b19193c3026143d2721183319181730181717321817174119181835181717331716163316161532161515331615143815141438171614423b2f1b361413133a141313351312123612111135121111351110103411101033100f0f30100f0e320f0e0e4d322611360f0e0e473e2c0c330d0d0c320c0c0c330c0b0b370c0b0b3a29200d2e583d0a360a09093a09090835080807370707063506060534060505340505043205040431040403310403036c0807063e0503013e0403036106050455060605540706055b07060545060604790807065e070605560706056707060572080706480605046d080706690707054b08070571200f064a1a0b045312080379120903881209037313090391190c06681a0b04541b0c04651b0c045d1c0c04571a0b0457180a045a180b0496170e0862160a0453110803531007033e0d05024c0d0502330a0401210903011d080301590a06045b070402780b0806410b0a08580b0a08930c0a09a80c0b09710a0807480a0907450b0a085c0c0b095e0c0b096a0d0b09700c0b09810d0b09840d0c09790c0b09750c0a08930c0b0868080705940d0b09c40e0c096c0a0907860b0a08740a0807780a090769090806460807054c090706490606044d0706056107060573070605640605044905040343040403410403024f030302420302025002020147030200440403015d0806044c120f091e0c09051e0e0a064c19140c4e1a150e481a150e57201b1142110e0a4d120e0a4f201b1239674914513c2f175f5a4114572e281b3c0f0d0a390f0e0a3613110e360c0b0b4d3a290c4f463517320e0d0c7938290d350f0f0e33100f0f3410100f3311101037121110361312114114131237131211341312123314131366694c1d36161514321615153316151532171615351716163e17171633181816311a1817321a1817341b1919331b1a1a5d513a14331d1c1b694c3612371e1d1d46201e1e361f1e1e331f1e1e341f1e1e38201f1f35201f1f32201f1e31201f1f3421202031201f1e5f48361533211f1e3122201e35222020332221203422202034222020352120203621201f38222020402321204530281a5b63451535201e1e38211f1e35201e1d321f1e1d331f1e1d35201e1d2e1f1d1b2d1f1c1b311f1d1c32201e1d36201f1e33201e1e34201f1e32211f1f3521201f3522201f3771531a3421201f3521201f33211f1f3622201f3622201f3421201f33211f1f33211f1e34201e1d3c201f1d33201f1d32201e1d33201e1d34201f1e331f1e1d34201e1d2f5039113b74531335201e1e48221f1f35201e1e331f1e1d331f1e1d38201f1d34201e1d33201e1d33201e1d32201e1d3b2621174225221d33201e1c31201e1d35201e1d34201f1e35201f1f34201f1f34201f1f37201f1f36201f1f4321202036201f1f331f1e1e37221f1c3e28221a341e1d1c331d1c1c341d1c1c331c1b1a341b1a19381b1b19331b1918311a1917351a181834191817351a18173827221834171616371716153b1716163c1615153615141433141313361413123713121234131211331111114d221a0d3310100f3f543b0f363f2f11320f0e0e310e0d0d340e0d0c340e0d0c340d0c0c33120f0c2f6b4a0e350f0d09400b0a0a380a090934090808330808083608070736070606330606053305050532050404340504033c0705032c05040258050403530706052c06050447070605580707065c070705680706055e080706550706056f0807066a07060553070605812613067d2211068b140a0494140a047112090362130904871a0d06661a0c045f1c0c04651b0c04641b0c04661e130b5d1a0e073d1609037d28140a59140904511208034f0f0703460e0602520d0602360a04022107030111080301320a050256070402670a07059b0c0a0959090807780d0c0a700e0d0a520d0b096d0d0b09530b0a08510c0b08570c0b096b0c0a087e0e0c0a890d0b0a870d0b09760b0a08770b0a08aa0b0908750907067e0c0a08af0d0b0966090806730a09077d090806730908066a080706470706055108070543060504450606045f0606046c0706045f0605044304040333040302540403024e03020228010101400201013201010130010101440d0a075118130d5119140d501c170f571e19105a1e1a114619150e3c06050534130f08359b6e142f090808300a09082c0a09083a69490f260b0a092f0c0b0b310d0c0b36372608330e0e0d300f0e0d3b3d2e1133100f0e7235280d3111100f32111010321211103313121139141312351513122d1413122f151413311615142d1614134a2f2516251514132e18171732191817301b1917391b1a19311c1a192f1d1b1a321e1d1c341f1d1c331f1d1c311f1e1d3c72501431211f1e48362a163c2221202c221f1e2f222020312422212c23211f2d2322212621201d2d232221322423222e25222146252524406646102e242120312423233424232232242222312321202f2221203222212034232120402322222f23201f33382c183e6748132d211f1d2c211f1d281f1e1b281f1d1c3022201f3022201e3f232120312221202f22201e2f22201f3222201f332220203222201f3122201f3422201f3422201f386d511a33211f1e2e201e1d30211f1e2d221f1e2d211e1d2a211f1d241e1c1b302220203122201f3222201e3222201e2f211f1d2e211f1e3321201f3422201f3322201f3021201f367554133322201f3422201f3a22201f2e221f1e3122201f3022201f2c211e1c2c22201e241f1d1a31222020312221202f232120422424232d23211f2e23211f332322223324222232242221312422212e22222132232221352322213f2423223023212030222020302321202c211e1d2d211f1e261e1d1a2e1f1e1e32201f1f2e1f1d1d3f1f1f1e301e1d1c2e1d1b1a301d1b1a321e1c1a321c1a19331b19182f19181732191817351917173b181716331716152e161514311614132b1513122e141211362e230e2711100f4a33270e2f1211102e604714351b17102e100e0d2f0f0e0d320f0e0d330f0e0d330e0d0d300d0d0c38684a123d251b09370c0b0a360b0a092e0a0908310908082d0808072d080706290706062305050431050504310504043305040342030200310303015e0505045b07070644080706610808065c07070632060605630808077108070654070705792713067b25120680160b0494150b058b150b046b150b0458180b045e1b0c04651c0c053c140b058019100b5f1a0d064b1c0e053e130803542311085314090445110703430e0602370b0401390b04022e0904011f0703010d0702012b0a040268070402630906054b0a0907760c0b09920e0c0a820e0c0a6c0c0b09870d0c0a520b0a085b0b0a086b0c0b09700d0b09790d0b0a7e0c0b09810c0b096e0b09077a0b0a08960b09077a080705870c0a08910b090765080705770a08076e090806720908065f080705540706054c070605420605042b06050446060504470504034f0504035106040242040301360302013a02020136020202340202023402020233030302350303033704030336040403360605043706050438070605376247102c62471036090808360a0a09350b0a09350b0b0a370c0b0a48543b0e390d0d0c2f2c1e05380f0e0e340f0e0e35100f0e33100f0f3445341035111010456c4e133513121136141212371514133a1816143617151332171514371817163519181635191817351a191741382b17381d1c1b3a1e1d1c4322202036201e1e321f1d1d35211e1d33201f1e3322201f36222120352321203423212039916516372523225049381b35262322332623223727252436272624362726253427262536282625382828273a292727442d2b2b3628262632765211352725253427252533272626372726253526242435262423342724243829262537282623352624225d5e4315416f4e1336262422362524223325232235262322382624233b262424452a2827382523233124222234252221342423223424222237242221352422203524222133242220424030143524221f3423211f3524211f3623212036232220362322203223212035242220382523223b26242342292626382422223324222132242220332422223525232237252322383f311935252321312522203d2a26243426232033252221352624223526232235262422362524223126232237272523382725243b2926263e2a28273727252534262524312624233227262536282626372826253527252435272524312624223f2c29283527242233272423362624233526242335262524362424223124222138252323382523233d2625253d242323352220203424211e32201e1d32201e1d361f1d1c351e1c1b351d1b1a351c1a19321b19173d1e1b1a351a181633191615361816153f2c2211351615143d44310d32151312381413123914131232553e11394132123411101034100f0f33100f0e310f0e0e370e0e0d350e0d0c4135291034533a0c35110e093a0c0b0a350b0a09340a09083509080834080707360707063506060531060505380505043b0504044b050403390504023d0b0804570a0805490807062c07060566080807690808075508070668291306622712067a170c0567150a0470160b046f160b0561170b056a1d0f077a1f130b36190b0431190b04341b0d043c1b0d04531109047920130b521409043f100602370d05022d0a04012b0a04012b0904011f0702010b0702011f080402440703018f0a08053c0b0a08860c0b09a30e0c0a720d0c0a680c0b098b0d0c0a5a0b0a08580b0a08600b0a08680c0a08770b0a096d0b0a087c0c0a08720a0907790b090837080706b30b0a097d0a08079e0a090768090706740a08076c0907067c09070668070705560706044a0706042805040355060504600505033a040402490805023b040302320202012e020202280302022e030302300403033204040435050504310505052c0605053a07070637080707300908073535270c310a0909320a0a09300b0a0a310c0b0a2d0c0b0b290c0b0b2f100d0b614e391236100e0e31100f0e2c0f0e0e29100f0e3213111131141211364130103415141349553e102f1716143e191817311a1716301a1817321b1918311b1a19321d1b1a321e1c1b2e1d1b1a2b1d1b1a36382c1737201f1e3b232121322321202f2321202921201f2e252322312624223227262335292726322826242c27252242755114362a27264748371a3226242232292625322c2927302c2928312b29282d2929272b2927272e2b292849302f2e342d2b2a302c2a29367a5411292726253228272530282624352b2927352b29282f2a26242f2b2725432e2b2a312b2725312a272647684b105e5d431431292724322825242f2624222b2724222b232220312221203927252531282524302725242a2423212c262423322826243228262434282625322725242d27242138785a1c332824233027242232272523322724223327242230272422322725232d2523202c2523212d2523224b29282634282624312724222f2524222925242231292624302a272439715014352b29272e2926242f2a2724442d2a28312a262430292625322926253229262431292624322a28262f2827252c2826242e2826252f2a27273c2d2a29322b2827312b29272b2827262b2b2827332d2b2a3127252335282626322b29282e2b2826382c2a28352d2928302b2826322a2928322a2827322a28262f282523322725242d2624212d2624232e2624233e25242333282522322523212f2321202a211f1f3122201f31221f1e34211f1e331f1e1d301e1c1b301e1b19401e1d1b321b191831271f10331918174a3e2d0e3119171631181716301615142e151412301513134d533c1144583e1132131111321211102c100f0e2b0f0e0e32100f0e310f0e0d351d170e31120e04300d0b0a360c0b0a380c0b0a300b0a09320a0909320908083209080730080706310706062e0605052e060505300605043a070503480b08034f05040259080706520908073c0807064b251209652c15086d190c0574170b05551c0e073f25130956190e0762180e0831170b032c190b0320180a0321180b032f190c04620f0904622211094f1208034e1007033e0c05022c0a04012f090301350904012207030112060201320a0502660704028b0a0705510b0908790c0b09870d0c09750e0c0a5e0b0a08880d0c0a5c0a0908590b0a08680b0a08750b0908870c0a086d0b09088b0b0908750a09077c0a09074407070589090807af0d0b09c20b0907600706055f08070662080705760807054a0606045607060557060504450503012302020140030202330202022d020202340303023503030337040403370404033605040434050505310605053207060641080707312317052f8b601234090908685d4517330b0a0a330b0a0a340c0b0b320d0c0b310e0d0c330f0e0d31583d0b3310100f3c64460f33121110361312113614131237151413361514133415141335433012331715145f2b1f0a391b1a19371d1b19341d1c1b321e1d1c34201e1d32201e1d34211f1e3222201e31242120342524214c392f1d322625232f25242233272523372a2826362b2927362c2a28372c2b28342b2a28312c2a29332e2c2a422f2d2b59563e14372e2a294c46371e322d2b2a352e2d2b322f2c2a342f2d2b332f2c2a312e2b29332e2c294830302e31302e2c2f2d2c2a322f2d2b476d4b12352e2c2b372e2b2a372e2c2a352d2b29322d2b2a342f2d2b3f302e2c392f2d2c382f2c2a342c2a293f7352125e6b4d1832282623332b2826332b28263229262333292624412b2a27312c2a28302b2927302b2927382d2b28352c2a28352c2a28372c2a28352b2927332b2927342b2a2731785a1b392d2a29382d2a28342b2927342b2927362b2a27322a27253329262434292624312b2725332926233c27252230282624302a28262f2b2926372c2a27342c2927352d2b283d6c4d10325f4819342d2b29342d2b28372d2b293a302e2c38302d2b332f2c2b342d2c2a352a2927322c2927332d2b29342d2b28322e2b29322e2b29382f2d2a332f2e2c32302d2c2e2e2c2a37312f2c33302e2c35312e2d382a2826362a2927342f2d2c332e2d2b352e2c2b3c312e2e38302d2c332d2b2a62bfb1905eb9a88b56a99a7d3a6d624e362b2827302a2726322a2826342a272237272725322725242d252422372826253527252435262423382523223623222034232221332221203422201f3734291638201e1d5e34270f341a1918341b1a18311b1918331b1a18361917162f1816143117151435181613348c6617321413122e12121036131211361311103511100fb380683236100f0e2a7d590e35795612330d0c0b3e0d0c0b380c0b0a340a0a09340a0909330909083208070733070706360706063006050531060505340505045206040127040302650605043023110837221208e9221c16381e0e0634160a043b150a04491e1007491a0e06331a0d0328190c0324180b032f180b0338160b047f110b0762221209531108034f0f0702340c0502310b04013c0b04023e0a04022b07030121060301460a0502580804028c0906054e0a0907830c0b09a10d0b0a680c0b09690b0a08790c0a08650b0907560a0907590a0907610a0907830b0908770a09087a0a09077e0a09076e090806940908066d0605045a0706059e0807054f0706045d0706055c06060461070605510504032e030201520604013e030202330202023103020234030302310303033204030337040404390505043a050505390606053c0706063e080807473b2a0a395d4210350909083a141009370b0a0a7773561e360c0b0b300d0c0b2e0d0c0c3b231b0d3b48330e38111010341110103211100f44604310301413123415141337161414381715153a181715391a1817482a20103b2e220e906c5426566b4f1e5d624a2153694e1e50705520406b511b487c5c1b477e5b1c76614c2570624c225b563e1655563e135275571d5d8061275d8162275a8f6c286d8668305a8c6b2d5c96742d518b6c2b54a87d284e9a70248c614c25546e5219445f47157643361c669b752c68ac83326ea782345cb086327da2814071a07d3a6ca98537659678335d99782b568e6b2690574320675840175d644a1c64916e2a7394722f66926e2a778a6b305a8e6a2a82826837767e63306f7c6027725f491d494a340c4d654814998169378a735d32627e5f2264876625719d782d619a752a7e9271305b9a722a79917032798b6c316a94712d6d8e6e305d9571295c97712a959777388d8b6f365787651f739574316f9c772c65997227788c6b2d599770287a896a318a8165326696722a6793722e5b9572295b936e278883652d917f65317685682d69806429698b6a285b8b682434352c1c377e59126f7155247e816432698a682a6786672d53836324628f6c29728d6d2e8f81683987896f3645523d18433c2d12668765256e96743260b788316ab6883683a47f3f67a47f3662aa823549a07b2b61b0873168a37d30478f6b224b5e4c2c3c58431c5361491a5ba27827689c814864cbbd974ad6c49750e2d0a451e9d8ab53eddcae54e7d8ad55e2d2a74ad5c49556e0cfa55cd9caa168c0b28f49958c705da28441608a733f558465284f8966246773592850795b224a7c5f214c654c17514435193b1b1917673b2c113e1c1b1a361d1c1a361d1c1a381d1c1a361c1b1a341c1a19331918172e1716153518161639241f1634684d14371614133514131231131211424937132f11100f5447361135100f0e2e3f2d0d357655123b231b0e3d0e0d0c3a0c0b0a3c0b0a09350a090836090808390908073308070635070606300605052f06050537060505410505042d3217075f25160d291b0e073112090438160a043d180c059521170e3e1c0e05341b0d0427180b0325180a0321180b032b180b046a10090655221108451108033a0f0702350d0502310b0401320b04013e0a0402300703011f050201630b06046c070402900a070546090807860b0a08970b0a087c0c0a08650a09076f0b0a08790a0908570a0907530a090760090806810b0908790a0807800a09077b0908066e09080692080705730605046e0807059a0706046d0706044c0a07033f0403023c0a070237030202320202023303020233030302340303033304030334040403330504043505050436060505380706064008070734110c073f64451043342812350b0a09370b0b0a350c0b0b3a16110c320d0d0c467c551435100f0e38241b0b3434260f32131210321312103113111036151413331615133b5c410d331211103413121137191816371c1a194952401f2a211c1121493610293e2d0f1e2e230f414a3815243c2d121f46331127533d131e3c2d1125392b112156401320473513224431114d58421823483512254a371224563e132d412f1521453213236043151d4a3513214836141f5b4215223f30126257442228654b1a215a421a27564018285b4318294133172f4f3c1723604515364d3a17374f3e1a2f6a4e18334736192e5a411739664c1c2548351622553d161e684a1629513d17224d3a1730644b1a364c3c1c296047192e664b1a263d30162d493716245541154b4e360f4063460e516a4b175a5645277e51452c535a4722514e3d1d455f4a2248644f2450604b23525a48265b57452645614a2551664d276d56472d6354432951574626465f4a244d56442642503b164c5d4b254f5a492447554421495041225d5244256c524529575c4a275358482749654f2447644e2244654f23554c3c205a5947254d47381f494a381c515a47286f52422a30443212327957122a3e311522513c123f4c3a17283a2e132e503c1237382b122f3326102e4735132745321321392a1121523c12294c3913243328125b58441d2742331526493614305d4517234736152d3c2f15275a44142241311124382a0f515440191f543e1520473613274f3912896f604b92b2a5816bbfb28968d7c89e55ebdbac58edddaf55f1e2b255ecdfb157ecdeb256eadbb053e6d7aa52e5d6aa52e5d5aa51e1d2a653ddcfa455ddcea553d5c79f56cfc09a59cabc9655b9ad8a4b8b7c5b49766b52296d5b3921402f103d100e0c391f1c19361514133313121135151412381d1b1a351e1d1c341e1c1b331c1b1a341b1a18331a181733423416415e481932171614323a2a0e33151312653f321535141212351312113412111032241d0f3c976d15365a42143d0f0d0d3e0e0c0c360c0b0b320b0a09340a0909380a090837090807340807063307060534060605303a1b093d30180a4924130834160b032f150a0339180b043b211006411e0e05351c0d0422190b031e180b031c180b032f1a0c03590c0704441f0f073a1107022b0d05022c0c0501290b04013b0b04023a0a04012d0803011a0603017d0a06045a0703027d0a07054b090806810a0907990b0907730b0a08690a0907790a0907690a0907530a0806610a08075e080706850a090782090807830908077a0907064d0706058b080604760605046d070605aa07060459040302380202022a020201270202022d03020232030302310303032f04030330040403300504043106050431060505350706063b070706302418062e74501234120f092e0a09092e0a0a092d0c0b0a230b0a09300e0d0c371b160d3d4433147a674e1a391b171127121010260e0d0b2e060604320f0e0c311816152f191715301a181638583f0e321c1b18311e1c1a391816142a1f1d182b584214223c2e12153e2e0f2c050402360e0a0246402b0c3a181106320b0803300a070330070503320907032809070332060503330b08033509070331080602320c0803370a07033808050286130f07c0130f09740a070539110d0732110d07340b09063a110e0734100d07340d0b0837130f0840100d08380d0b07505238133e100d08410d0c083a1610083c110e083a0e0b074514100842120e08430e0c0841130f0943120f09400e0c093f130f083f100d0842090704400e0a03460c08043c090703400d0903400b08043a936a19495c44134b65471430262422352d2b283323211d31201d1a342724212e28252333322e2b31312e2c332c282531322e2a34332f2c33312e2b30322e2a3332302d30302d2a32312f2d467e61252f302c2935302d2b2f33312f2b332f2c272b28243534312f352f2b2933332f2d3535312e312b2824322c29263f2522202f2c28263536312e2f302d2a352b28262f2d2825b41612083d694a113d3a2b0d3f0f0c05350a0805390d0a0442100c05400c0905420d0a0544110e06490c0a06420d0b0641110d063f0c0a05470d0a054a110d064a0c0a05450c0a0542110d063e0b08043a0907043f24190850664719420907043a100b04390908033c0b08038cac9c7c855b4b3c7644352a833c2f268b382c248450453893716551b2d4c6a191e0d3aa72d5c8a155dbcfa051e9dfac52ecdfad56f0e1b455ebdcaf54e6d7ac55e3d6aa54e1d4a951dacca155dacda254d5c89e52d1c2984fcdbd9354cdc09752c7ba9251c2b58f53bfb38d54b9ac8950b1a58355b0a6844590856a33211f1e2f201f1d301f1e1d291d1b19251a1916341c1a1a381d1b1a351f1c1871261b0830171514372f200b2b15141233151413301513122f1412112f131110341211102f805b1042533c13330f0d0c400e0d0c320c0b0a300b0a09340a0a09340a090830080807300707063743200b45371c0c43291509311a0c042f190c04371c0d055428150a401e0f063e1b0d04261b0d03281a0c0328180b032f190b03340f07034f180e083c0f0602370e06023b0d0502310c04014e0c05022f0a04012e0803011f070301a70b0806490703018509070548090806910b0a08980a0907650a0907600a08076e0908066f080706450807054e080806660908067f0908076908080648070604560807054c0706044705030131030301460b0702310202012d02020130030202350302023303030232030303300403032d04040331050404330505042d06050534070606360807054037250a336444112f090908300a0a09320b0b0a330c0c0b350d0d0c310e0d0c2c0f0e0d2e0f0e0e4f6648134848351674553c152f0f0e0d3408070632100e0d331a1917311c1b192e1b181630181614331b19185345320f352c261c251c1b1834815d1918523c1317563f113e130d0449634512ff040302e90e090392725520ce221906ff151109ff0b0904ff2b1f0cff3c2f17ff0d0b06ff1a1407ff2d220cff130f09ff0f0b06ff36280dff3c2e16ff0d0a05ff2b200cff352812ff120f08ff130f07ff382a10ff362c18ff110d08ff423316ff5d4920ff110e08ff1d160aff3c2e1175553c14ff443414ff392e18ff130f0aff433419ff5a4622ff17120bff20190eff473817ff312716ff16120aff614c25ff5d4924ff14110aff2f2512ff443618ff1d180eff17120bff5a4721ff5141226570511a505d44165d4d37163d674c193f80612049775a2048674f1e555c49205e6954263b8664223c8e6a223b77581b33775b223a8b6825418564233d795a2343705322476c502345523b17358a651543402e123e3d2b11374c3612404b3713444836143c4c39153d4c38134e4c3a18484b3a19504436185f4d3c1b3b4531113c7153193b805e1e35745a223b8363223f6047183c5f420ec6302612a04b350dff725a2cff644f26ff17120aff43361bff563f19ff19140bff1a150bff57431bff3f331bff17140bff6a5228ff735828ff1b160dff282113ff584419ff352a14ff18130cff816535c95d481e585f4312ff644e22ff15100aff231b0e7372654a79b2a07e8ca99776a18a7c60a0786c547eb2a2808792836687615242814f3e3187503d31885543379357463b9a77675287bead8b91f1e2b577d9caa160dfcfa452dbcda353e3d5a953e1d2a751dacda054d8cca056d9cda04dd0c29354d5c99d55d3c69c53cdc0974fc7b98f4cbbae8746aea27c46ab9e7b4fb5a9844fae9f7c4cb1a27e55b1a281311f1e1d321f1d1d341e1d1b331d1b19291b1917714d39152d1b19164f92691e2c1e1b152d171615351716153417151432151312331413122e1312102d13101037583c0f48775213301b150c3a0f0d0d340e0c0c2f0c0b0a2e0b09092d0a09083b4b240c4a3f210e462e180a3c1e0f053e1e0e054d2211074e2714084a231106462010042f1c0e03291b0d03331a0c03351a0c031f090503581c0f083f0f0703390e06023b0e0602480c05023e0c0502300a0401310803011f0603014e0d06033f080301a80a0805540807067e0908069e0a09075d090806560807068309080647070605450707054c07060540070605550706056d080705550504033d0705014f08060238020202330202013202020232030202320302023403030232030303320403033104040332050404340605043406050538070606390c09043863450f4b926617330a0909360b0a0a320c0b0a300c0c0b310e0d0c390f0e0e36100f0f361211103b594110351a171337211b13310f0e0d565e431632100e0c341a1816321b1917331b1a17311b1917321c1b18341d1b19321e1a165f3e2c0d371b170e115f47151b513d155a31250da11d1405825b40134a5e4110ff050403ea0d09046e765419d5161007ff2f2510ff271f0fff0d0a06ff0c0905ff362a13ff302611ff050403ff241c0dff271e0dff0a0805ff32240cff382c15ff29200eff070504ff281e0eff322611ff060504ff42351cff3c301bff241d11ff070504ff312815ff382e19ff0605047a513913ff070604ff483a1eff5a4b2cff372d1bff0a0805ff554325ff46381eff070604ff584727ff5a4725ff1d180dff261e0eff514426ff473a1dff070604ff312816ff44371cff0c0906ba3d2f1364694e184b5a4013465b401257584214ad4a3816a82b1f0b5e3b280ba73e2f10a9503d18b3665228a46f5726a5382b10a857431ba557431da84131134b704f18475c42176058411a575b451a4b8c671d436c4e18536d501e5e694e1d5f624c22614c3712a83e3012ad53411da56a5323a23e2e11a455411aa7624c1eb131260f6e3b2b0d9a3b2c0fa9483713a55f49215b5a4115423d2c0dc44f3e1c617c5919ff0a0905ff382d18ff66522cff503f1fff080704ff47391eff3b2f18ff060503ff4e3f24ff6e582eff3c2f17ff0f0b07ff473921ff665530ff060504ff67542bff675632ff0c0a05ca1d140754634512ff060503ff3e331bda483d277bab9c79d0c4b5919782755cf1918871ff8ca982ff9fac89ff8d9373c590886cad8a7c60918c7c5e95c1af898586775d8c85775e945043379943342a9a3e2f25994132269b7d6d5a8197876f9ef4e4bb6acec19a83dcd1a964d6ca9e4bbeb28847b3a98049c0b5874dc6b98e4ec3b68c48c7b78949caba8d49c4b68c4bbaaf8745ad9f7a46a89a764fb4a78255b5a5813522201f36211f1e311e1d1c331e1d1c3b412f123a1f1d1c5f3325103a1e1c1b424a350d361a191832191716311716153417151433161513351514133515131233131211396d4c10487353163b40301135100e0d3c0f0d0c51241f1b38401e0a533e210f4632190a2d210f0535200f05442714075b2e190b4524120640221004381d0e042a1c0d0327190c03321a0c03430e08044d190e07230d0502200c0401290d05022b0b04012a0b04012b0a04012207030113050201470d060343080301b00a08055b07060572090806a40a09067f0908065307060567080705430605045b0807056b0706055608050332020201430503013e040301310202012d0202012e0202022e0302023303030232030302330303033704040333040404300504042f0605053c0706053908070632110c033f6c4b133518130a320a0a0961694c17300c0b0a330d0c0b2f0e0d0c2d0f0e0d33100f0e371311113060420b33231c1130161413300f0e0c31100c062f100f0d4f7c5a15331c1a18341c1a1734191817331c1a192d1f1c1a30201d1b42342c1c2d2a24182760481a1b5843171e4332116c2e1e07ed513a11ff4d39166d6d4d18534a350eff060504ec0d0a05676c4d16cb1c1408ff29200eff1c1609ff2b2111ff2e230eff1e180bff2f250fff141008ff2b210eff241a0aff261d0fff4b3918ff261e0dff403115ff20180bff332710ff33270fff251f11ff493b1cff302511ff4b3d1fff3c2f15ff322815ff382c14ff19140b8b4e3a15ff261f13ff5a4925ff332915ff554325ff413219ff392d17ff44371bff272013ff52421fff3e3017ff5c4a29ff625029ff3f341bff5c4923ff201a0fff51401fff413418ff4a3d22717d5b1a31724f0e535139165e54401a74443517674f3e19534f3b15474d371669513b1a56503c1c5f56411c5d503e19664b3b1a58503d1c58513f1c674b39197d5140205d4a3b1d67513f1c6b4e3d1d487b5a18724f3d1b624f3d1964463618523e2f16714c3a1b6d54401b6d53411a5754401952523e194a503a185e513d1c554e3918654432157d3f3118764d3a195b634a1e595f491e92795d25ce46371c33704e10ff46381dff745d2fff3f3218ff634d25ff312614ff4a3b1cff513e1dff251e0fff725b2eff47391aff836837ff4f4124ff4d3e1eff5c4b24ff231c10ff6c572aff42361cff69532dcd5a4523655c4415ff594728ff3c301774998e6f909f8969a5a089698bb6a682ff8a8471ff8f9884fffca3aafff6c8c1ffffe8cffff7e1dafffbede9ffe4ccbbfbe2b68ee39f876399786d508d8a7b5e8c9082658fb7a682918b7a5e9556473a9a4a3e35933e342db9524337a356483ca55140338a56463792493b2e9445372b8c504236845f513f6c6c5d456d7f6d517e544a366f7d775b7d6f685281827a5d84948a6aa0998f724b2d29243222201f3522201f3e553f1733211e1d42453311301d1b1a331d1b193a1f1d1b3a3e2b082c3227162e19181630191716311716153015151331161513446a4b11321615133318151233805b104277561a92514a3f7e473d335c2212094f2815092e200f0530210f05402a15084830190a3f25130634221004331e0f042b1b0d032f1a0c032c1a0c0343110a065e1f110a3311070338100602330d0502300c05011d0a04011f090401260803010e050201370b0502440703018d0c0906510706047f09070693090806440706045606050476080605770706055b060504310403014b0504012a020201300202013403020236030202360303023703030237030303330303032c040303320504042e050504370605054b0707063208060631704d0f3a60420e310a0908330b0a09330b0b0a330d0c0b3c5d430f310e0e0d31100f0f3311101034171411365f430e2e1413122f161413310f0e0c370807063511100e3b1f1c16361d1b194a6f50182b1a1917301e1c1a30211e1c33211f1e3775591d2b25221c25644b19326b501a15554116c11d1406ff563d12ff60481aff0d0a05ff4f3a15776849196b4b3611ff070504eb0e0b0561664613c71e1606ff1c170dff0f0c06ff291f0cff372b14ff0f0c07ff221a0aff201808ff1c150cff120f08ff30230cff45361cff120e08ff352810ff31250eff1a150cff18130aff30240eff3b301dff14100aff413216ff4a3917ff14110aff221b0dff2a210c6c4c3612ff362910ff43361dff16120bff45361bff554321ff1b160dff292111ff352910ff3e321bff19140eff674e23ff5f4a25ff19150dff3d311aff3d2f13ff2b2415ff1b170dff53411d3e64480f8870542149604412332c28262f282521352824223715130f342b2926491f1c18322e2b293233302d32312e2c322d2b28282f2e2a343332303936343232302e2b2b2d2b282c2e2c2b343433316a352a17343532303534322f2b322d2a3234312d2e2e2c2832302d2a352d2b2833322e2b3133302d35322f2d3a34302f3334312e3d24211d343632303033302d332e2b292f312e2b2a312e28c2372b15477e5916f652411cff6f5828ff1b160cff5c4a25ff423314ff221c10ff251e11ff503d19ff514223ff1b160dff755d2fff604a20ff201a0fff302717ff403011ff3e3218ff1d170dff806536d55e4820525d4111ff60491c6370684e908c7f615d7e6f53646b614b9dafa07eff869279ffc9b2a5fff3aab5ffef96a5ffef9aa8fffffae0ffffffe4ffdfd6b8ffd4c8b0ffffffffffffffcfffffffe6ffffe7cfffd5b594866f61477987795c818e7e5f83493e2b6aae9d7d6fa79675928c7c647b85755b827b6954835c5040784e40307d46372b773b2e237a36291f78392c227b352a228030261e822b211c802a221c7f2f251d441d1c1a31211f1f30221f1d334735153322201e41563e1230211f1d301f1d1b311e1c1b331e1c1c341e1c1c5339290d311f1c18311a1917311a1816361918173d694a123817151436151413350c0b0aad201c172e7250103c7a561393534b3e782c27225e211d19752c2721b03f393273221e18691815116512100d60120f0b610f0d0b5e0d0b09610d0a08240f0804501a0f093214080336110702311006022d0d05013c0e06022c0b0401290803010f050201340c06023b0703017e080604370605044f06050474070605720706053405030133040301500302003202020133020201310202023403020236030302310303023603030237030303360403033604040333050404300605043a060605430707063f130e075a5e45163d412e0d350a0a09320b0a0a330c0b0a310d0c0b2f0d0d0c340f0e0e435c400e3111100f36271e0f384c360e301514133216151330100e0d350a080736110f0e311b1817361d1b1a3a201c17351c1a194874531233211f1d31211e1c42322a1e2725221d2a614811165e461514423214852a210f8946300dff30240eff090705ff5c4619ff32250eff080705aa6046184d4d360eff070604ea0f0b0558654513d0191208ff2b210fff281f0eff100c07ff0f0c05ff2f2510ff2c230fff090705ff231b0cff231c0dff0c0a07ff2b1f0bff382b13ff261d0fff0a0806ff251d0eff2d2311ff0a0906ff3f3118ff3e321bff241c0fff0a0806ff302712ff372c15ff090806694a3310ff0a0806ff3c2f16ff503f21ff342a16ff0c0a06ff483a1fff41341aff0a0806ff584624ff524326ff1d180eff231b0eff554424ff40331cff080705ff2e2513ff43371fff0d0b06466245116677571b48614513863e311b51352916b6342c1db50e0c095a362916b7181512b52c261bb5413726b5493e2ab3151411b4342d1fb6352d1fa12621175b513f1e454c391b5947391e613e321e537b5d1c6449391c484c381b5947391e664839204e4b391bb2231d17b33b3122b5473b27b51a1714b6362e1fb6383121b118161275201a0fa81e1913b4242018b53f35226d2f2616af1c1812406a4a14816c4f1c52946c1cff362c17ff62522eff4b3e20ff0a0805ff4b3d1fff392d18ff090704ff4f4022ff6e5930ff3f3016ff100d08ff47391fff5c4925ff090705ff5b4822ff645029ff0f0c07d31d1508565c4011ff0806056ea19371839a8a677ea4926b8e998b67bc93856bff91a284ffccb19cffe3aaaffffbaabbffffacbefffee2e4fffff8edffffefe6fff6e5d1ffdbbaaeffeadfc8fffff5f0ffffffdefffdf0c5fff5debbfff8cfd1e1605a4aac75665174221d18bd6f634ea75c513cc85f5746be585142ba504a40b34f493bb44f493aaf433d31af3d36299b3e35258c483e2c71524934755147327e5449347b5e553f90625640382624233523212140433214352221203f513c1432201e1c2f201e1c31201f1e301f1d1b331e1c1b331e1b1a321d1b1a3834270e303f3016321a191841553d0d3419181637181715341615143416151337100e0db2322e297045351930714f11483728106914120fb0312c26c3403b33a329251f5c1916114615120d3f120f0b4e13110d4e14110d6c1d19147c201b15831c18147d1815115314110d6212100c6a0e0c08690c0a07680b09066e0c0907610b07044d07040284070503750706046a0504022904030239080602460503023902020138020202340202023503020231030202350303023a0303033b0403033d0404043c0504043b0605053c0605053b0707063f07070647382809685a44183d20180b390a0a093b0c0b0a390c0c0b370d0c0c380e0d0c330e0e0d300f0e0e3b15110c725d461a4e5941173d1514133916141334131311371312103414131232161513391917163b1a19173d1a19173a221d153c1e1d1b5c5a42163e624a1d38342e22510e0d0a1562481715553f16296245148930210aff1c150aff161107ff4b3815ff0c0a05ff191309ff5c4214ff503b15766e4e19444a330eff0a0805ea100c066b664716ce251c0cff241c0cff1d160aff2e2411ff372a12ff1f190cff2c210eff231b0cff241c0eff231b0cff3a2c17ff423114ff231b0fff3a2d16ff2b2210ff2b2110ff292110ff302715ff3f3115ff2c2210ff47381aff41351aff2c2312ff372c14ff2b2314744b3310ff3b301bff483a1cff302614ff524222ff504123ff352b17ff3e3119ff3c301bff44371dff392d18ff685229ff644f29ff392e1aff503f20ff352b19ff45381bff3a301aa17b5c214b593e124c6e5017d746351592523c159f352912d5241b0cdb342a159a3d2c11df423419da3f3318ca1d150adb312611e8302612e421190cd320180bc33a2d1686543e1a805d421463533f14784b3a16469269188b553e17665e4211764e3b15824f3c16794f3c15d8433418db21190bd72f230dd23c2f15da382c14d3342913d25845217f4b3818c15f4820d36f582bd5362b1261584114c453411e3f422d0dd13a2c123b865f14ff65522aff3c311bff655125ff473a1fff43361cff44361cff3c311cff69542aff42351dff7c6230ff68532aff433519ff53411cff3d321aff584621ff41341bff756033cf634d27636244126ba495726faa9a77908d7d5f71847657867d7355ff6e6856ff8a917afffedbadffe09c95ffdea39dffd9af92fffdf4c6ffe2beaefffffffefff3e5dcfffdfefaffffefecffffd5d4fffac9c2ffc5b598ffbbc0acfff7c6c4f69a8e78d16e614e1c0d0b0ad9675949f2867f8aff837c68ff898576ff7d7766ff7f7f6aff96947dff8f8d7aff9d9a8dff83806eff7d796aff5e5a51ff605f55ff68666b887d725883948566291817144841341d4b372a153f2523223a5a411139201f1d381c1c1a3a1c1b1a351d1c1b351f1e1d331d1c1b2f1b1918331c1a1a3a1d1b1a4a2b22145463491b41241f173919171636181715361716143816161430151412391513133d1514133b181511357d58123765480f80141210d514120f7e0f0d0b6916120e7814110d62120f0c7e0f0d0a5e13100c6113100c47100e0a65110f0b310d0b083e0d0b085e100e0b63110e0b620f0c096e0e0c09400d0a079414110d6e0a09074b030200400202013302020134020202340202023503020234030302360303023703030339040303340404033505040434050504390605053406060540070706350707067635260d44291e09350a0909350b0a0a370c0b0a2f0c0b0a340e0c0b2f0e0d0d2f0f0e0d3810100f25100f0e323c2908413424095471501933161514330f0e0c340907063512100e36191716371614143b161413341b1817361e1c1b341e1d1b40201c1734181615361614107554411b1d664d191e4f39170f614815c8120e05f71e170bff443110ff493617ff171109ff3e2f0fff795519ff503c18ff100d07ff4634126b7b581c4a44300eff0d0a07e9140f0767624315cd1d1507ff292112ff161209ff281e0aff39290fff17130aff261c0bff1f1608ff231c0fff1b160bff2c200bff493619ff1c170dff352610ff2a1f0aff201a0fff231c0fff281e0cff473921ff1f180eff3a2d15ff392b0fff221b0fff2e2412ff261b0b76493310ff2d210eff4e3d21ff221b10ff4c3a19ff4b3816ff282013ff352a17ff33250eff493c20ff2a2213ff604a22ff614921ff282013ff49391eff31250eff362c19ff2c231436845e124c5b4110586a4d1935322f2b33322e2b332a28263723201e321e1c192b2523203026231f32312e2b3137322f36322f2c362f2c293735322f35363230312f2b29302e2b27352d2926302a2723332a28253a81601d2e2c2927322c2926332d2a26362826233123211e322e2a262f2c272434282522333632303434312e362c2927302b2927322c28253124201c312b282532312d2a36373431353734303a87631eff2f2516e9574019ff816831ff2d2614ff64522bff403013ff352b19ff352b19ff392910ff695428ff2d2414ff765a2cff54401aff2f2514ff3b301bff33260eff503f20ff2d2414ff6b5120d65941196c816c4670a99b766ca89a75dc4e4137a43f3b347c786b51ff6e6b58ff8a8271ff767367ffb2a182ffd4ab95ffe0b57dffc6a87effd0a082ffb48682ffa37f7cffae8682fff2b6b7ffffe0dcfff6fffffffffabdffa09c8bffe9aaa3cf968b70e96a5b4b1c0f0c0beb635447cb786e65ff969486ff9e9887ff8e8776ff7f7968ff7c7665ff7e7d65ffafa892ffc2bba9ffc5c2b0ff5d5b4aff5a5749ff5a5950d9837d697a96876814241908431b1306432c22104e523c155f40301433222020351b191734141311331b19183422201d30211e1c30201d1c2f1c1c1a311d1b19351d1c195c3f2d0e50573e1435846215341a1918331918173217161535171616351615143515141437151413361412123517151131855c1440875d1738110f0e38100e0e3e100e0e330e0d0c330e0c0c350d0c0b340b0a09310b0a09360a090833080706320605052f05050431050403790a08067a09080531080604700f0c083b080604300202013102020133030202320302023503030234030302350303033404030333040403370504043805050438060505440706063c07060636070706320808074b4b330c350a0909370b0a0a370c0b0b330d0c0b310e0d0c310f0e0d2e0f0e0d2f100f0e341111102f43300b3646310e3114131130141212385a3d0e3309080634110f0d35191817341b1917341c1a19331d1b1a351d1a1938191716351816153b1c1a19323a2f1c4b7b5a19405c481d1e6f5018185e4213a51e1508734a3312ff604417ff4f3b17ff20190dff5d451dff604414ff1c150bff0d0a07ff564017ff2a1f0eff13100c8e5942184e442f0eff0f0c09eb15100962634212ce231b0eff2c2211ff2e2411ff1a150eff15110aff3c2e14ff332813ff1a1611ff291f11ff2c2111ff231f18ff2e2311ff3c2e17ff2c2315ff231e18ff292013ff302716ff211d17ff3e3018ff42351dff292215ff1e1b15ff382c17ff3c311cff1e1a1574463111ff18150fff3f321cff584627ff39301dff191510ff584726ff493b20ff16130eff554425ff63502dff241e13ff2d2416ff5c4a2cff473b24ff1b1711ff352c19ff4b3d2591543c125450390f476d4d17437f6127419671296964512a5254401c4c6c57255e6150243d8768243da27c2a43a17c2c31896a2841896c2f4092712d3e88692a4e57411c5d513e1d4d533e1956614b1d654e3f2249856019535b441d4856411a545b461d6051411d644a3a1c406b5220409c762b65735d2d5379612e4d7d642e4f6c56223d906c263f816121427b5c1f327258243f8d6c2c429e7a2f4195732f4057401bff5b4a2939866013ff3d321dff766138ff4f4124ff262018ff504026ff433721ff201c15ff4d4025ff6e5a35ff3d2f1bff241f15ff504127ff5c4928ff1b1712ff5e4b29ff6b562fff241f17cd2d2313728e806079a2967473aa9c77ad625443a941342974a19670954b412de6605c48ff7c7764ff9b7f74ffb48d84ffe59e8dff9f8577ffe39291ffffe2b6ffe3ddabffe3c8a3ffecb7a1ffa8827cff8d8176ffffa8bfff8e897dffa19a81d88b8267cd57483b200f0b0bfb604f41cc746d59ff858379ff86806eff817b6aff797462ff85836bffa69e8dffe7e3d1ffe8deccff787567ff676350ff605b4bff575344ff797478789382632515110919533b11244330117a4c3c1c383a2e153d23211b352322203422201f33211f1e3522201f3a2321203221201e3522201f2f201e1d321e1c1b4b694b12321c1b1a351c1b193c3b2b0e323f3113331a171630181615301715143316141434161514341514133314131235141312363e2e13453d2d123a12110f35110f0f3e110f0f45100f0e350e0d0c330d0c0b340c0b0b350c0b0a370b0a09390a0908330908073309080730080706320706053007060532070605300605043403020233030302320303022e0303022f04030332040403300504033205050431060504350606053c07060634130f073632240a3208080732090908320a09093d583b0d320b0b0a2f0c0b0a290c0c0b300e0d0d34100f0e3411100f3a1211104035280f342e240f291311102a1311102b0c0b0a3309080645594010321816142f1a18162e1a1816321917152f181714321b1917311d1b18321e1c1a42503f1f2c1f1d193349340d176f50162c533f18931d180a982d1f0aff21180bff2e200cff60471fff634c1eff67491aff0f0c08ff2f230cff392b12ff100d09ff2e230fff583d13ff4c38155960421251422b0cff1d1814ea1a140c53583b10cb302412ff292112ff241c10ff322713ff332611ff2c2415ff2e2512ff332817ff2c2414ff292113ff3d2f1cff3f2e17ff302719ff3a2c16ff3b2e1bff332a1aff2f2618ff42341fff41321cff362b1aff49381dff47371bff362c1bff3b2f19ff473a2358422c0eff40321cff46371dff382f1eff4c3c1eff513f21ff3d321eff3e331dff483b24ff473a20ff3c311dff5f4c2bff5a4626ff403522ff503f22ff504128ff473822e64c3c227a83601e51573c0e5c765319e33a2d15875e461a7d372910bd271d0cb948381b6a39280dc2493819c03a2b14d020180abc2c200cb83c2d15bd20170adf1f180d98513f1c73453311564a350d6b4b3714583d2d115b7b581c6e4a350f66402e0f664733115d4a3612724c380fd03d2f16c622190bbe2c200cc3433318b9271c0bbc251b0bba4f3d1c853a2a11bc553e1cc3523d1bb6291f0f6046300fe15b4828a4382912cc534121406c4e1252644513ff423722ff5a4a27ff57482bff473b24ff4d3f24ff5e4c2cff604b28ff483b26ff695229ff68522eff463720ff4d3c21ff57472aff584625ff453822ff695227cd5c46226478694d647d6f54618275576d80745884887c5f909f927299a0947287a5987571a0936f8e948663bd706c50ff626752ff737967ff82866fff7d7b6affb1aa95fffffbbeffffdfa6fffffbc0fffdf9c2fffff4dbfffebacaff897b74bb928669de604c40180b0a09ee5d4b3f9e5d543eff8f8c84ff817c69ff7d7766ff77705effb3b09dffa9a48fff8c8873ff706e58ff6a6454ff67604dff615a48ff575243ff736d7a8e938464748f7d5fab281e0b19543e12194d3a161f674e1b3013120f371a1711361d1b1a31201e1d3122201e3422201f3522201f3522201f35211f1e34211f1d3e7250142a1c1a18341d1b1a371d1b1a371c1a1a34322712455d4414321816152c1715132b15131331151413351614132e1413122f1412104f745219311211103312100f3211100e32513b12300f0e0c3a0f0e0c3c0f0e0d310d0d0c310c0b0a310b0b0a340b0a09360a0909340909083408080730070706290706053007060533030303300403032d0403032f040403300504042e0504042d0605043c060605350706064131250c3e5e430d2e553b0d3e67481338996b14320b0a09300c0b0a566142122c0d0c0b2b0e0d0c270e0d0c2a0f0e0d2e110f0e374d360d381d18113014131132131210330c0b093408070532100f0d361816163561450e2f1413122d1816142f1a1917301d1a182d1d1b192e1e1c1ba30707063d2a27212b75561a123b30171c4a3918154d38117f1f1406e2171108ff151008ff5f481cff1f170aff7d5a22ff120e08ff71511cff443416ff18130bff5c4517ff654a15ff3a2d14ff1a150eff402f125d6445133f3d290cff2d2821ea261f154f573a0f40261c08ff1e1a14ff211c16ff241f18ff211b15ff241f18ff272018ff29241bff2c261dff2b251dff2c261eff27221aff2a241dff2a241dff2e271fff2d261eff231e18ff2b261dff2a241cff2d271fff2a251dff2b261eff2a251dff28221aff2d272052472e0c822a200eff2a251eff2c261eff25201aff2a251dff26211bff231e17ff25201aff241f18ff252018ff231e17ff262119ff252018ff252119ff252018ff272119596c4d113a8560173e4e360c3d2e251938322e2c3534312f3533302d361b191635302c294035322f31312d2b3333302c3434302e3229272435322f2c2f312d292e322f2d3234312e2e32302d2a322e2a2d322f2b30302d29519c721f2b312d293433312e33312e2b2f302d29322c292631312d2b35332f2d382e2a28383632303535323037312e2c35332f2d38312e2c331e1c19322e2b2833312e2c32322f2e3531302d372a26227d433214d8362b1856865e19ff2a241cff2e271eff282219ff2a241bff2b241cff2b241bff2d261dff2c261cff2d271eff211d16ff231e17ff241f17ff241f17ff241f18ff272119ff2c261d3f3d2d0c557263455f75674b6473664b647065486f6b61465cb8a8856eb8a8816ec8b78b6caa9d7c8cac9d7888a797749da596777ea7987693ae9d7b996a6046ff585f52ff8c9e7effd0e4beffffffeefffffee4ffffffceffffe0c8ff746c5c908c805ffa6454471a0e0c0bc3504138a5756a53ffd9dcdbffc1c3b7ffd1cebeff95928cffb0aba1ffa7a39effb7b3acffc4bdb5ff928c8affa7a3a1ffb3a6a9ff5a5549ff68676ec88e836673938160f5271e0c5b1e140561402e111c3e331814674e1a1a6f5418221f1e1b438f6e222f221f1d2b1b1a182b1916142b1815142e191716311d1c193d6a4c132f201d1b291d1b192d1c1a192b1b1918271917172d19171632221c143c523b1131181715341716143317151334151514331514143e6848143413121236131211318b621632372b1254906a1e3e946c173529200f350f0d0d3e0e0e0d2e0d0c0b2c0c0a0a2b0b0a092b0a09082e0a0908320909072c0808072e0807062e0403033204040331050404300505042f0605053a070605300f0c07395f440f6e563f19321b1408330a0908310b0909360b0b0a517f5a1b330c0c0b370e0d0c3f7951132d0e0d0d31100f0e3616130f374d350b3a1312113414131236141212340d0c0b2f0908072f0f0e0d35151413341716153319171650604513331b1917341c1a182f1d1b1a301e1c1937413318341a191733795615196b4d191a684b1811533c14495f4212745c4016ff6f531bff5d481eff0d0a07ff56411bff866221ff1a140bff6d531fff251c0eff554018ff4b3714ff1b1811ff1f1a12ff533f1aff322615e4261e11606e4c163038290cff2d27204731250ea743351cff2c2620ff342e25ff352f27ff383229ff3a3329ff3b342bff3b352cff3e372dff40382eff3e372eff3d362dff363128ff342f27ff3b352cff3b352cff3b352cff40392fff40382eff40392eff3f372dff3d362cff3f382eff413a30ff413a30ff39322855382a12ff3b342bff3d362dff3d362cff3e382eff3b352cff39332aff3b352cff3f392fff3e372eff393329ff373027ff3b3329ff3b342aff3e372dff3d362cff3c352a3a845e179455401a404d360ee3373128e33631287e58421f65332713e32f2a23e21d181131251b0ce31d1911e31e1912e31e1a13e31e1911e3201a13e2201a13e21f1a12565c441a52604518406849154d61491a584c3c1c3b9a6f1c53674a17446648166954401c44694d17585e4617e2201a11e2231d14e3201a12e3221d14e3231c15e3231d15e3231d1589382b143932250ee3393229e33b342b454b3413e33f372de33e362c48563d0ff44137284c6d4f14ff40382cff423a2fff423a2eff41382dff41382cff41382dff41382dff3f372eff3f392fff3a332aff312b24ff39322aff393229ff3b342aff3d362cff3e372eff3d362d71726345527363464a6c5d3f567264466a6c5f4453796949839a8f73a8423c337939322aba3f382ea3594f41709e90705daea07985b7a78181a395727fb2a17d77a59671a0c0b1868bab9e77b5564f38ec787f63ffa59a73ff766e5b889f9071e14f413628100f0dc654433a9b81735dffccbec3ffdcafafffd5adbaff80877cff6f8470ff728675ff707b6dff798378ff667366ff9b9da0ffc4b4c4ffb9a2b1ffc7a4acc9827a61728f7e5eff1e170aff3227104f44330c683c2a0e214b3b191487661a12634d173e9f75242725221c52634d203225221f3223201c2e1f1d1a301c1a1839735212361c1a18341d1b1a341e1d1b381f1f1b341d1b192f1b1918311b1918351a181734211d153b684a11331b191635181616371715144f6b4a1330131211311312116473561c31121110331210103312100f645141204485611b445840132e0e0d0c3a0e0d0c320d0c0b340c0b0a300b0a092f0a0909330a090931090908360505042f0505043b0606053b0707063b231a083165470e334c350d36090808380a09093a0b0a09330b0a0a330c0b0a2f0c0b0a677e5a1e390f0d0c3d13110c50533a104b1c160d464e360d341c170f35121110341211102f0e0d0c360d0c0b3513121032171615311716153417171532181714361817164a6d4f11361d1a182f1c1a193d32291838483b1f493b2d172c3c2c141c4332161c533c168633260e5e2e1f0959674818606b4a15ff503f1aff685123ff3f3015ff110e0aff6d5119ff68501cff4f3d18ff5f491fff26211aff4f3912ff413217ff241e17ff4335199d624a1bff322d25ff37312aff3b342cff3e382eff39332bff342f28ff3f382fff3d362dff3f392eff3f382fff413b30ff443e33ff484036ff494237ff453e34ff433c33ff433c33ff443d34ff453d34ff433d34ff4d463bff474035ff585043ff655a4cff5f5649ff4b4237ff4d4439ff4d453aff50473cff4c4338ff4d4438ff474035ff473f35ff453c33ff483e35ff494036ff433c33ff413a32ff4c453bff473f34ff463f33ff484034ff443d32ff443c30ff443c30ff484032ff484034ff483f3339825b12ff433b3045422e0c4e332b1e56342c1f5f2c24175a251d0f522c22165331271b5230271966362e2057352d2055322a1f6430281c54332a1f5131281b662b2417572f271a5630281b4831271b4c32281c4f34291c3d9e70195432291b50342a1e4633291c4232271b58332a1c4a32271a54372e1f562e251756372e2054392f21513a2f205132291a70372f22652d251852342b1f5e30271957322a1d55362e2166362e2067362913f3453b2e4e5b4111d8534328ff473e32ff483f32ff494134ff484033ff473f32ff473e33ff463e33ff4c4337ff4c4338ff443c32ff39322bff443c32ff433b32ff473f35ff4a4237ff4a4137ff3d3529a638302363594e3761685b3f6065583e514d442f90403730cf453f37ba3d3830be3d3830c6413c33a53a342ccc483f35bc453d33bd594e439592836b7eafa28178beaf8878a99a7185b9ab818abbac818eb6a87d85a899739ca192719a635543a8554638ce4f4235c3635848f66e6853ffb8a1a2ffb08d9cff94929cff797e76ff717368ff6e7061ff6e7161ff6c7666ff6a7160ff7c7a72ffe2eec1ffc3b49df96a6252708f7d5ecd292113ff291f0d504e390e874c3814533928119d0a07031e86651e185b44151f3e31183a72572429352d1e474d3e243823211f3921201f3e7e59123621201d391f1e1d3e1e1c1b371d1a1a351d1b1a341d1c1b341c19183d1d1b193a1b1a193b1b19193e3227145c7857183f3d2f156f4a34103215141232131212467350153512111137121111371212113611110f34100f0f40251f124b8561192f775512350e0d0d3b0f0d0d3d0d0c0b370c0c0b3a0c0b0a380b0a093f070606310706063135270a3c7c571232271c0a30090908320a0909330b0a0a330b0a0a310c0b0a320c0c0b320c0c0b2c0d0c0b63805d1b330f0e0d4d261b09654b391137271e102911100f29100f0e2f0c0a09330a090833100f0d321614123218161431181614321917152f181714331a18162d1a18164565491231272117525341212b14120f3a845f1e2e7a571a175c43161d49351475291c08e9130e08ff47341366674b195c6b4a16ff735a21ff18130bff70521aff674d18ff221b0dff7e5f23ff4a3918ff584118ff685020ff352d21ff564321fb6c521fdf463c29ff5d544bff635a4fff645a50ff645b50ff5a5046ff5b5147ff63594dff665c4fff6c6253ff6b6254ff72685aff73695bff756d5eff796f61ff796e60ff74695cff7c7163ff796e60ff796f61ff786c5fff837769ff857a6bff83796aff7f7566ff877b6cff867b6cff877d6eff887c6eff897e6dff8d8272ff8f8473ff897e6eff8b7f70ff8b8071ff8c8071ff887d6eff837769ff817769ff85796aff867a69ff827464ff7c6f60ff7f7262ff847867ff817666ff847969ff817565ff887d6dff85796a5a916d23ff75695d4039270c59856623788069354c846526454732117e664f298f7b6134737152237471541f7c6c521f80664f1d8a695020716a501d73634a1c6e76591e4e8f6c23528b6e2a68846b30479171265482682941936819468f6e2a469974285796752b3f9b75244988662673795c2379775d247f745b268180632b7482642a936d582f7284622b76856730836f582e808f72348b7d652c468e6c25788a6b2d4b8a6725504a350ff37567543170500eab866c3fff7c705fff827665ff817565ff8e8170ff837767ff776c5fff7f7465ff807466ff7d7163ff7f7365ff746659ff726658ff766a5cff7a6f5fff7d7160ff62574bff63584b8d6a5a40856050387d61513b6460533b3e4c433180897f6175998b6b79615644dc49443abf3d3830e24a433aca443e36cc423c36e14a453e5c30271fbf413a32b9473e3770a99b7865c3b17e5fb5a4773f211e19543e3a2c87bea97d8ba9997596c0ac8698c8b58e9dbdaf86b196886892a7987598ac9e79b49a8d6ec992886cae887d60965c543ca53b3628b8423d30cc4c463ae44f493feb43483dfe43463de538342a97877a5e9c5d523cff3729104b47340f7059401656221808ff0e0b05803e280b783a2b0e2b42351b152f261521775919320f0d0b3831291b3022201e506b4c163421201c30201f1c2f201e1c341f1d1c301d1c1a321c1c1a311d1c1b311d1b1a341c1a1a2f1a18172d191716321817164d3d30187b543c142d1715132f211b12696d4f1a3113121133131211321311103212110f3212100f3011100e3111100e2f0f0e0d597a5a1c2f7352122f1b150c340c0c0b400d0c0c2f0c0b0b264f39093c7e58133409080835090908320a0908350b0a092e0a0a09330c0b0a2e0b0b0a2e0c0b0a310e0c0b2d0d0c0b40362a13533f30154e13121143211a0c5d4732103211100e300b0a08290706052a0a0807310d0c0b3213110f32191714371a18153919181735191816341b19172c1b1917301c19186c261c0b3642300e4873531c12533c1213412f124955411bf90c0a07fc18120aff5f4618ff362a12ff302411626a4d1d7365491aff1b150bff675125ff14100bff4e3a18ff463515ff3a3324ff645131ff3d311cff503f1dff4f402676684d1fff4c453bff655c51ff675d52ff696055ff635c51ff504941ff595147ff5e544bff61584dff675d51ff6a6054ff6b6054ff6b6053ff6d6356ff736759ff706457ff716556ff6e6254ff73695cff706557ff7c7064ff82786aff756c5fff827869ff8a8070ff897f6fff897e6fff837969ff847a6bff8e8172ff887c6dff867a6bff877c6dff877c6dff84796bff867b6cff8b7f6fff84796aff847a6aff7e7565ff827667ff7f7365ff827665ff7f7363ff86796aff897d6eff887c6dff897b6eff867b6cff796e615d9b70294e674c12fc8074653f422d0d567f65294d876d2a4f97752c387d591c446e521c5b8365254ca47f2d4e94722d5098762b52937128499171285e9b792f7091753557b0882e4eac862e3c936e274d8667265f94742e5f9c7e304a946b2050a27c2e468764284a8d68296d94783f3fa27a2f59a17b35579c79324ea88330449773283b936f273f997424539d7a2b4c9171254959441b5397772a4d94752c4d92722979725a29648c6f2d53b48b2f4e7b591a64634813478a611cff837666ff847666ff837767ff837867ff7e7262ff7e7365ff827668ff847769ff897b6eff8a7d70ff877b6eff675c53ff786c60ff75685dff615649ff605549ff605549a44e44306149402e7e6050387b5b4c3441473e2e57504630638b7e5d719c916b85ad9e7c78ad9e7c66b7a783716b5e4ebd443e36cc403c34602c251d73362b24c2423b32da4c453cd54b443b84b2a17777473c316a342920d6463b30c841372d8f4f4536688478586c98886980ae9f797fab9c7881a798737fa4946f7f98896884928364859083637f9084637a938664748f81617d97886a7e9383676d8b7b5e608073597c8b7c61748d7e60ff0d0a074549330f556144134e211707ff251d0cff463312ff2e2210c81b12061b5c4613142c24121d4a391719725418272e2718624734123b30281d3422211e33211f1c341917153412100e34110f0d35110f0d2e151311321b18162e1b1a182e1a1817301a181632181715956d5524371b191650382c186556441e331c181231141311301312112d1110102e1110102d11100f3212100f3311100e3512100f36100f0e5a644a19477453162c48340c330d0c0b2e08080730090908300a0908320a0908330b0a09330c0b0a330c0b0a310d0b0a300e0d0c320e0d0c2d0f0d0d41231b0c4d322309754230123312111039100f0d4d47330d33080605330e0d0c351614123518161534191716351b1818321a18162c191816321c1a19341c1b19371e1c1b473026166d2c23113f60461611573e13174a37121c4131126e1f190e5e322208ff221b0eff5e4518ff221c10ff503d1aff7e5f226b5e4415796a4b19ff71561eff493716ff16120cff3d3019ff614e26ff7b5b1dff594520ff473a21ff3c311c96695322ff554d42ff5c5348ff675e53ff5d554bff4e463eff5d554bff625a4fff6c6356ff6b6256ff6e6558ff706658ff73685bff746a5cff766b5eff796d60ff74695bff73695cff71685bff6f6558ff756b5eff766c5eff796d60ff7f7466ff827869ff7f7466ff827769ff887d6dff84796aff85796cff8b7f71ff877b6cff8e8172ff897d6dff877b6cff877a6bff897c6dff8a7e6fff8a7e70ff8b7f71ff786e61ff807466ff766a5dff75685bff776b5cff776b59ff796c5aff7e7260ff857866ff807363ff776a5cff6e6356445d401046664a12a46150384752390e35221e1b3225232135211e1c34201d193122201d3c25231f33262420372a2624352a27253427242234282521322926232e2a2621332b2722332b2825332a2724322725233024211f31221e1b4e6848153223201d3223201e2e221f1c2c25221e322926223322201c332926233226232035282623322826233629272335282522312825223823201c32221e1b3729252234292623342c2826322a2623351e1b184a5c43133f5f43108d604b27df7b694dff7e715eff817461ff7b6e5eff736758ff706558ff7a6e60ff7e7164ff807365ff897c6dff74695dff6d6256ff7c7164ff655a4fff625649ff5f5548ff62564aa061533b8262533a83584a34854339287b483d2b5f4a3f2a617064496276694d69837657708f815f739c8c6a73a99a766fa6987582aca07a6f8b82646770624eb650473cba433c33853e362b5eaa9b737e423a3080352d27f4474037dd443c33e2463d35dd433a32d03f372dcd3f36308e372f27746e624c6fa99e806859503c56544b375649413153423b2a52433c2c5f3f3829683a34275a413a2c544a4232515148375a625843656d614aff2e220e7744331359583c126a3d2c0dff342810ff433217ff181207ff1d150a83382509a82419091a372a12234f3c181871541b398b651d73493a1b34241b0b3023201e2f211f1c321f1e1b2e1d1b19301d1a182e1b1917321c1a17321c1a18331d1a19301c1917311b18165f6247152e1917162f2921138f533d1842725115383a2d1432151413361513123114121031131211311211103412100f3411100f32100f0f36100f0f33100f0e312e230ea76e5729360a0a09320a0908350b0a09310b0b0a350d0b0a340d0c0b320d0c0b320e0d0c380f0e0e3a281d083a20190c2f11100e2c110f0e646248163309080738080706834433153415141234161514331716153419171636191816351a1815341a1816351a1917311b191753654d1f2b1a191748241c0d25533c11186e4d13196447146d42301082261b07ff594424ff4c391aff6f5728ff4e3d1bff372c16ff241c0dff4c3c1d89674d195f6a4a16ff59431dff6b5321ff7b5d23ff3f3522ff41351fff6b5122ff715725996f5418c25c4c2bff5e5549ff61584eff645a50ff5c5348ff574e44ff635b4eff6c6154ff6f6355ff706557ff71685bff73695cff756a5bff756a5dff746a5cff796f61ff7a6f61ff7d7162ff7a6e60ff746a5cff7b7263ff7b7162ff84786aff71695cff817667ff7c7163ff7d7163ff7d7163ff867a6aff897d6dff8c8071ff877b6cff887c6eff8c8070ff887a6aff8b7f6eff847767ff8c8070ff918576ff8c8072ff786d60ff7d7164ff766a5dff7c7060ff7e7262ff7e7262ff796d5dff766b5aff786c5bff796d5bff786c5cff776b5aff77695955755216e37c6b5252573c1054372b165d362a16603027176d302513662b20104c3629175e3426146e3429198b332a1c8234291b5831261551362a1754372b184c2e251653372a165a3b2e185b3a2d1850392b175d3529165b322715618b6922873127175f34291657362a175f3b2d17503e2f17523c2f17503d30196135291567362a1870372b1b53382b1957352816573428178c31281a7a2d23146e3027195330251454332817572c2316482d2313604b37123f6345134e6f4f17e574644bff716555ff746655ff786b59ff756857ff7b6d5bff7c705dff7a6e5eff817565ff84776aff887b6cff74685cff70675bff817768ff7d7061ff67594aff6458498c6d5c42615e4f36725447317e5c4d357f5a4c347f5d4f375e594d37616d6043686d5f44676b5d42676c5f445f6b5f43626f63475c716546638374546f8f826176877a5b78a0916f6bc7b1848bc4b388798f81618ea1926e947f765c8b7b6f5891635546b3493d34de493f36f14a4038c93b322b814e4234678a8062635049365648413156413b2b59413b2c55403a2c563f392b533c362a4e3c3629013c362901322c1b293c362a53413a2bff1f170a5549350d86553e16514b3612ff0d0a05ff5c451cff161008ff392a13ff493518ff34250e703f2b0aa8251b0a144637171a77571a1486611b418463232f302a1c3e2f2512381f1d1c38201e1c36201f1c311e1e1b38201e1c351e1c1a331d1b18311d1a18331c1a17396c4c0f371b1817321816157a57421c36171615391c19153d4d3914374a37142b1413112e14121129111010341312113412111034121110361110103410100f33100f0e310f0f0d300b0a09310c0b0b2f0c0b0a320d0c0c350e0d0c300e0d0c350f0e0d443728092b261c092f11100e3111100e2f0e0d0b3209080740755512390e0d0c301513112b432f0b3518161537191716351917163819171637171514311614132f1816154418171633211f19364f3a12257a57172445321416402f1218593f14d3130f0798251a08ff48361dff322610ff322817ff433319ffab8133ff654a18ff241c0fff3b2f11686c4e1962614314ff4e3b1aff2d271fff352b1bff5a4523ff382e1eff6e501c507b5f1bfd554d40ff61584cff62594fff6a6155ff685f53ff595249ff5c5348ff695f52ff776a5aff726757ff716658ff695f52ff72685bff796e5fff766c5cff7e7363ff7e7264ff73685cff786c5fff746959ff7b7264ff7e7365ff7b6f62ff74695bff807566ff837768ff756a5cff7d7262ff837868ff817565ff817567ff8c7f70ff887c6dff8e8173ff887b6fff938676ff8a7d6fff8d8171ff938777ff8e8373ff8c8271ff807668ff877a69ff837563ff857866ff887b6aff7c6f5fff756859ff7a6d5dff7a6d5bff7e705eff7c705fff786a5aa1755d35546b4c16e283725b3a48320d432a26243627221d472925213f26221e3f1d19154024211d4923201c4324201d482724203e26242042211e1a4425211c4425201c4424211d4026231e362a241e3728241f3826221e3826231d3223211c58916f203625221c3727231e3724211e3926211c3124201b38241f1c472622204623201d431f1c194424221e4524211d3e231f1b4024211e41272420421e1a1743211c18482d29243e2826223328231d3e2c27213a1e191445563d1152624518628b6720ff726656ff736656ff7a6c5bff7c6e5eff7b6d5cff7f7160ff837665ff897c6cff8b7e6cff8d8071ff887c6eff85796cff74695dff877a6bff928473ff897c6af52e261c75584b357068563d77615139704c412f8a483e2a8c52452f9054462f8f5748318553452e725e533a646d5f43646e60445f6a5d435f6d6044626e61455e6a5d425d6a5e43527766487e807252778173566981725465796c506c87795a779788687fa4957292b9ac8762afa07d75ab9c7b789484657f86795d5e504835564841305d3e382a5b3f392b593f382a553e3729533d36284a3c3628003a321400363011293f382c54433b2cff120d085f392a0c5d5d3f125a211707ff29200eff140f07ff5b4418ff332611ff503c1aff110c06ff372916f20d09047839270a144d3a181778591d16956e1c1e7f5b1a28392d192b2a26206e493f2936211f1d35201e1d341f1d1b361f1d1c361f1d1c331d1b1a341d1a1838694a0f321c1a18311b19176e624918321817163318171531171514351715143c7958103c56401432151311301312103013111033121110381211103411100f31110f0e3611100f310c0c0b280b0a0a2e0d0c0b360d0c0c34120f0b3f2f21063c15110d33100f0e3211100e310e0c0b31090806310807062e0d0c0b516e50142e131211301513123348320a34141312321413113416151432181715331917153c26201566624f28312a22123a654a1724322612193a291115423010ac0d0a059530240eff523918ff5e451dff735729ff322511ff5c4725ff14110bff3b2e18ff463714ff59451cff362a1253775926725c4116ff42351fff735927ff373028ff524021ff8c6826ae61512dff62584eff645c51ff645b51ff62594cff62594dff554f45ff716759ff706557ff6a5e50ff74695aff7b705fff796e5fff7b7163ff7d7162ff7b7162ff807565ff857769ff7f7164ff7d7162ff7a6f61ff7f7466ff786b5fff70665aff6b6256ff817466ff857868ff7f7464ff827666ff827767ff877b6bff8b7f6fff8d8172ff918475ff948678ff938577ff8d7f71ff918476ff96897aff998c7cff8f8474ff8b8070ff74695dff897c6dff8a7d6dff827463ff877a69ff8e8170ff8a7d6cff827464ff867866ff827463ff807362ff807361ff8373628a8668356e6c5019e383735d576c5020738b6a31537456217f6d562f795d48256c7d5e216b876421688160216d664f2164785b1d6f7d5f206d7b5d1f6d7f60217c795e2475654e1f86695426777a5f27697f64275b8769245a7d62254a926d1e457f5b16598f6d1f528f6b1e59775b215b8363205474541d5b805c20738561237a725525827258297e795d2b6c7f61236a8162206a7b5c2169614a1f675e46166e8b69276b8063296795742e5585692665866b2f8476613343553b11c46f5d3f48946a1bff7e6f5fff7f705eff796c5bff796b5bff817261ff837362ff8c7d6eff928475ff8b7d6fff897c6dff887c6dff847769ff756a5fff746a5cff8b7e6dff645a4dff554c3eff514739c6443a2a664a3f2c6c564832805b4c35835b4c34665144306e4136248c463a27924b3e2a8b4d402b8d4f422c6a5045306f60543c6264583e6265583d5863573c4960523768544931834a3c28a7564935907f7053818374566b746a4e5f75674c6c7e74577993856783a79876689082635c61563e50443a2850443b2a483d3524504038294d3d3627563d3629533e372a473c362800352d1100332d122d3d362458433b2bff1e180e5d34260a4a644614601f1608ff382a0fff443310ff3b2c11ff0b0806ff755724ff100c06ff3d2e16ff453316ff2b1f0b79422e0dd81912071b6e54221b7254181a7d5a184d0f0c06282d271b454b402636332b1e321e1b19331c1a18331c1a19341d1b19341d1b1a3d6d4d0f361b1918331a18163c6e4e1134191816321816152e1715143117151332171514341614133a60461236825d103013121031131210331311102d110f0e2f110f0f30100f0e340c0c0b360d0c0c36120f0a48291c064617130c3c11100f34100f0e330c0b0b2f070706340706052f0c0a092b100f0e2d1311104f6c4e15311312113513121129422f093a1615143e1817163b1816153c171615483b301a2815131241291f0e184332131b6347121b5239118f2e220c8d2c1f0aff110d09ff65502cff0d0b08ff5c4521ff4f3c1cffac812fff5c4217ff3f321bff5f481aff292112ff523f1cff8a6826646045155c5f4215ff5c4824ff604c27ff54452a9c644f23fb51493dff63594fff665c52ff665d52ff63594eff665c4fff5e544aff645a4fff6f6457ff716758ff786d5eff796e5fff7d7260ff7f7362ff817464ff7f7264ff827565ff817364ff817464ff7c7162ff776d5fff74685bff7c7061ff7d7162ff74695cff796d5eff7a6e60ff7b6f61ff70655aff84786aff8b7f6fff877b6dff8c7e6fff8a7d6eff887b6bff928574ff958877ff918574ff9b8f7fff928676ff8c7f70ff867a6aff6f6557ff887b6bff877a6cff8e8073ff8c7f6fff8a7c6bff8e806fff8e806fff867a69ff887a68ff8d7f70ff897c6bff877866ff8b7d6d417e59144a593f10e37d6e5a3e42361e4352442549483c243e3c301a3c44371c464e402242534426395242243f57472748514428394b3d21354c3c1d405444253d4f40223c4739203c564426355746263f52432935584528345744273d5847284972501342524425475547273d50412634524225385a4725424c3d22455545244942361e3a5040213b534527475547283e5142233e5747263f5142234840331d34493a1c3546371d3f5949273e584b29405d4c2a3f4c3d24444d3512aa6452374f855e18ff857767ff7e7060ff7e715fff867869ff8c7f6eff8d7e6cff918371ff998b7aff968777ff948676ff918172ff8a7b6eff8c7d70ff74685cff827567ff534a3eff574d41ff584e44ff3a3025ff292118ff2b2218b83c31236a4e432e725144308152452f8b5648328053452f72473b29ad453a28a2483d29944e402b904d402b8c4d402a92483e2a7b423826793f352383493d2890483b28a04b3f2ba1594b34a45f51387b5345308d6052395a5c523b7d655840696359408b4b402e765345317361513a64594b3661584934654b402d624c412e54493e2d4a483e2c4a453c295c38302268352e21ad31281aff2e24125c32230b535c4010494a3714ff382b12ff3f3013ff191308ff3d2e10ff130e07ff694c19ff493819ff4c3c1aff090704ff513d1eff0c090559573a0e931b160d19352810185740131e735318445b4313271f1c1a4b4038233b1e1d1c44201e1d421f1d1c391b19193761440e361917163d1b19183b6c4a0f381a19173d1918163c191816381716153617161538171614391515133a1615144146351344533e133e1413123c131211351111102f10100f2e0e0d0b442b1e083614110c35100f0e3511100f340d0c0b3308070635080706360d0c0b341211103514131239151413361513123e704f1136161414361615132d432f0a3819171633171615b1443a26271715126d0a08041c5a40144f694c1a186c4d122133240b8d201707dd2c2110ff2f230fff48381bff322713ff0d0b08ff82632cff110e09ff72592eff4d3914ff614b25ff4f3e18ff41331aff312a20ff866b3470584019635e4217ff775b28ff4337238e6f5623ff5c5348ff62594cff675d4fff696053ff685e50ff5d5448ff635a4cff6f6455ff776b5cff776a5aff756958ff7a6e5fff857767ff7e7160ff827663ff7f7362ff827665ff7f7363ff817465ff7d7162ff786f61ff7a6d60ff766a5cff786b5fff695e52ff6b5f52ff665c4fff736759ff7c7061ff877a6bff877b6cff87796aff887b6cff8b7e6fff8b7d6fff837666ff817563ff7e7262ff8b7f6fff908273ff8a7c6dff756b5eff756a5fff746a5dff766a5cff857868ff877968ff8d806dff8d7e6cff877868ff867867ff867766ff847664ff867767ff837465ff837564ff84766652674a1355704f1644705116524d3b17734233157b3025117131250e6c30240e39433112544633154e453414594333145a403214494131134043311240422f145a523b1a5a382a144e3b2c13563b2d1467382c14524233144b413114474534145d6447136a3d31174f4132144c3c2e145b372b1271372b145c352a13594232147a4233186840311459473615444836144443331454433315664a38156b483714504936124c402f124133240f4d332510683a2b14474f3b18455f4310ce6c5c4165735318ff7d6f5eff7c6e5dff7e6f5fff7d6e5dff867666ff877969ff8f806eff908171ff9c8d7cff8c7f70ff887a6bff8d8071ff837868ff90816fff74685bff8a7c6dff8f8270ff695d51ff31291eff272016ff2b2319ff2b2319ff2b2319ff2a2219e530281daa3f35267d4b412d7a4a3f2a874e432e844f422c8752442e6c4d402c61443825954a3e2a9c4c3f2b974e402a954d3e298e4b3d298551442e6b473b2870594b326351442f8e5c4f3991584c37924e44308d433a298c3c33258a352e218530291d8630291d882f281c862f281b842e271c7e2c251985362e1f8c382f218b383020d1282117ff2e2416ff2d210f512f200a535d41125138280eff100d09ff4c3813ff17120aff322610ff4c370fff513c15ff0c0906ff594414ff080604ff3b2c16ff362713ff2f210edf3c2c136a4f350d502720132f3329162357411519765416509270262528241a41785b20361e1d1b341e1c1a40553c0d341c1b19341b1a173e664811321b1917331a1916311a1816341917152d1716143017161432171613341616132a1413122b14131132241e12385f451136141311321312112d0e0d0d37100f0e36100f0e320d0b0b300807063a070605330c0b0a3012110f31121110351413122f1311103115141334151312337753103517161537191716543c2d0d3b6b4e142a1b18153f412f101d704e15166b49132e523c1615543b13ea0d0b064c392608ff19130cff3f2d10ff0d0b07ff49381dff715930ff956b28ff1e160bff3f321bff3a2b13ff362a17ff403216ff856628ff5d461fff614f2bff4b3c204b684715755b3f19f1493a21ff3a342bff5d5548ff61594cff63594bff61594dff63594cff5e564bff675e50ff6a5e4fff6e6254ff716453ff7d705fff7f7263ff7d6f5fff837562ff837663ff7e7261ff807463ff7e7262ff7a6e5eff766b5cff665c51ff685f54ff6c6258ff665c53ff665d51ff685d53ff62584eff655c51ff7a6e5eff837665ff837666ff877a6aff8a7c6cff8a7b6cff867868ff827564ff7f7262ff7c6f5fff827566ff837668ff87786bff786c5eff756a5eff6f675bff797063ff837666ff857968ff847765ff877866ff877866ff877867ff877a67ff92836fff8a7868ff857564ff827363ff837564ff8072612f5a400d8660491f3d39280b2d191613301e1b17361f1d1a321e1b183514120f32221f1c3b242120221f1d1b32292624382b2825332725223125211d352c2926322825232d282522282623222e2925222f24211e29201c1a3923201e3d2724232e543a0b3023201e30221f1c261f1b19271f1c1a31272422352a282536272522312a27242d1c1a183125221f372827233224222036272521322823203c211e1c221815133226221f392d282633211f1d301a1815351e1c1a47593d0fcd6b5c412d64470dff7c6d5cff7d6f5eff807160ff8a7b66ff907f6cff887967ff827564ff928472ff918371ff928371ff938574ff89796bff827567ff897b6dff7d7264ff857769ff8d7d6dff8f806fff8b7d69ff655846ff292217ff292117ff2b2218ff2b2218ff2a2118ff292117ff292118ff292118ff28201790483e2b6b4a3f2b7f4c402b8f50432d8f4e412c83493e2976493e2a834d3d28914e3e2a9a5847319f605036996052379a5f523790594b338b4d412c8a443b29853f3625853930217b312a1c6c2d26195d3e33227b4337278b4e42308b5446326f50443045292217632c241974322a1cff19140fff16110cb71e180c6b31230d4b5a3f1368211709ff4d3c1cff171209ff523c13ff2a200eff483719ff181208ff453619ff0b0905ff856329ff6a5129ff342713ff0a0705ff21180aff140f086256390ef0100b0620261f101d402f14255842181b6449172a3c30172c201f1c4d503f1f393a2909341e1c1b351e1c1a6b6f521b361b1a19381b19183a1b191737191817371917163519181637181716341715143718161532151513381614132e14131239302612417755122f0f0e0d310c0a093308070632070605330c0b0a351211103313121035131211341413123315131334151313371715143a181615367c55113613121034241b0c754a3817614b38113264491623674a171e4433151430240f7f291e0b542c1e07ff4c3516ff60471fff3d2f19ff332711ff15110bff513d19ff120f0bff6f4f1bff7d5c1eff5a4624ff322610ff594726ff221c14ff574829ff44361eff6d572aff45361b597e5e26565a3e15ff443d33ff5b5246ff5f5649ff60564bff61584dff60574cff5f554aff6d6254ff6b6253ff726758ff6f6353ff6d6353ff736759ff786a5bff7c6f60ff7e7162ff7a6d5dff7d705fff776a59ff726658ff796c5cff7d7161ff7d7165ff776c61ff71665bff665c51ff796d60ff7d6f63ff6e6357ff6a6154ff7a6e60ff827666ff827565ff827464ff867867ff877868ff817464ff827666ff837666ff807465ff85786aff847769ff817467ff70655bff6d6358ff978a78ff8b7e6eff7b6d5fff786c5dff77695aff786c5cff7e7161ff7f7160ff8a7b67ff8d7c68ff827361ff7d6e5dff7c6e5fff7b6e5eff776a5cff7b6f615d72521847392a1140332c1d3f39312044392f213e342b1b3b2d2311472d26184a382f1f3d382e1f3b372e1d48362e203f372e1f40372d1c4b3c3323443c33223c3a2f1d38382e1d3c3d3324453a31223e3b311f453b322040372e1f617a5c1c33362c1b36392e1f38382e1e393b30203a3c311f3d382e1d4d3d3324413d34213e342c1c3c3a311e3b392f1d45332c1d39372d1c38392e1b46352b19512e2616423c322244392f204841362343413522443f3420493529165b79581cde746149ff6f6253ff746556ff766958ff827461ff92826eff8d7d6bff897868ff8e7d6dff8b7c6bff847566ff87796aff887969ff8a7c6dff87786aff877a6dff7c6f63ff8f8071ff887b6cff8c8070ff8b7d6cff8c806eff5c5244ff342a20ff2a2117ff292117ff292117ff282017ff271f16ff261e16ff271f16ff282018ff282018b53a3123844339278c463b278a483c298b473b27854d402a70584a336e5346317c594c3471564930986051378e564a32894e412c81433826873c332388362d1f8830291c8630281c8130281c8430281c8a31281c862e271b8b322a1d8c332b1e8331291bff17130dff16110cff15110c6231230c5d523b1356211708ff392d14ff463512ff372a11ff0f0c08ff695022ff161109ff3d2f16ff644a19ff3c2b0fff0b0806ff392a11ff0d0a06ff231b0cff2a2110ff3c2c12ff3e2d143b593b0d8b1e170a213126141b2a221412332713318f671b4977541664352811422d25143518161459765317351d1a19351c1a19351c1919381c1a19361a191733181716331917162f1817152f171514311715132e1614122d1513123516151332141312310a0908340a0907350c0b0a2d0e0d0b2e100e0d2c12100f2c131211321312102d1413113115141233181614341614133212110e5d402d0b3f231a0b381510075d5f481d135e451522362b14153b2c11393f2d0e71251a07e6120e08ff634924ff0e0c09ff543f20ff4b391cff7e5e25ff846028ff14100cff634d29ff15110cff604b21ff4b3a1cff9e7628ff54431cff544627ff57431eff3c3122ff624d27ff7a5b20447e5618535c3f14e15f533fff645b50ff61574bff655c4fff62584eff5d554aff6d6356ff6f6457ff726859ff736759ff766a5bff76695cff7c7061ff7f7363ff7e7263ff7f7365ff827565ff7a7062ff827667ff817466ff817466ff827768ff786d5fff766b5fff6f6559ff7a6e60ff706356ff6f6355ff736758ff756a5bff827565ff817363ff857868ff817467ff867969ff897b6dff887a6bff8b7e6fff867a6bff847869ff887b6cff8a7e6fff8b7e6fff7a6e61ff948777ff988b79ff968774ff897b6aff877867ff867764ff897967ff867764ff867765ff887968ff887866ff897967ff817260ff847565ff867766ff807263ff897c6d546e4e1642362d216f433d386b403a356e35312c702b26227424201b6f332d27832e29236e332e29702e2a246b35302a6f312c276f2d29236a322e276e2f2b2671332e2a49383126443730243a362d2244332b2251352e2344342e234772551845382f243a322b213c332c21463b34263e332e2541322c2272352f2a71342f2b712b26216d2c26216b2f2a2471322d28722f292373302b2472342d26722a251e702d28236d322e286b423b366e4c45406c4a453c5c3f3a30365b3f11de7a694fff7d6d5bff7f6f5dff7e705dff7d6d5cff8c7c68ff8f7d6bff91806dff91806eff958372ff948472ff8f7f6fff8f8071ff948776ff8d7f71ff8c7e6fff867a6cff817467ff928476ff8f8172ff928473ff938573ff685f53ff5c554aff61574aff5c5245ff51473bff31281dff2a2219ff292118ff2a2219ff2a2219ff292118ff2a221aff282018ff251f17f0262017da30281d73463b276352462f7d5a4c338b5d4e35885c4d348e5a4b357f4f432f7f4c402d84473d2b81403728723f3627703c342562625139694d3f2b71403626863c3326653c3324712f271c86322a1e9030291cff1e1811ff1a150fff18130d6633250d603a290d4345310fff382b13ff463717ff272115ff463719ff14100aff6e501bff463416ff533f1bff0d0b07ff594520ff0c0907ff6b4c18ff584119ff413115ff413116ff090705ff47361bd4201608953a270b702d210d27392b15252e241515252015675e472049231b0d3a2f231067563e1334171513331b1917321c1a192e1a1816351c1a18361a18163a18161531161512351816153619181635171714301715142f16151331151413330b0a08300706052e0b09082f0f0e0c31131110311311102e131110301513123316141233171412341816133417151451392b0e496348146063481a285c43181a2e2515202d241515423213ff0c09075934240bff2b1f0bff513c1dff6b4f1fff0f0c09ff765a2bff332611ff221a0eff6d4c1bff694f22ff392b17ff17130eff8d6f33ff2c261eff614e29ff453518ff675228ff574421ff584524866d4d204f3324094b583f12566b4f1cff484034ff5a5145ff635a4eff524a41ff5b5246ff695d4fff6a5f51ff6f6556ff74685aff766b5cff796e5eff7c7162ff807463ff827668ff7e7164ff7f7364ff837768ff837767ff847969ff887b6cff817465ff75695aff7c7064ff625950ff7d7162ff796c5cff796d5dff7e705fff867766ff867868ff8a7c6aff887869ff897c6dff847869ff817466ff8b7e6eff8d8170ff8e7e6dff887c6bff857968ff8a7c6dff8c7f70ff887a6cff7f7465ffa19583ff978a79ff8f816fff918170ff90806eff92826fff968773ff917f6eff907f6dff897a6aff8f7e6cff8c7c6aff897968ff867765ff877867ff8f8171ff928576557553185f6e531e558864233e916721568e6a2a5f88692e675b4620537e60294a81632a4e8a6b28548d712e4b906f2a45745b244083641f489b75264396712443946d23668a6d307e78623483705f366c8067336f886e34439974274c74541844a079264f9a77285d95732a4f926f24519b74255c806226608465274a926b24468864245f8d6a2b65896a3359896730568e6a2e50876527598a6a2b4e8c6a275d755a2636765a20469a74254a9772243a9a73233ba479243c634a1ade806f55ff867563ff887665ff897a66ff8c7a67ff978671ff8f7f6eff978571ff9e8a77ff9a8775ff93826fff978674ff9d8d7bffa09180ff958577ff8b7b6eff8c7c71ff74665cff7f7164ff8a7b6bff8c7e6fff8d7c6cff62584bff63594dff645a4dff62574bff665b4dff695e50ff665c52ff473e33ff3b3126ff2c241bff2c231aff2d241bff2b2219ff251e16ff251e17ff201b15ff282119ff251e16ff261e16ff271f17845d4e36925649357a443b2b7e3931256e393022773830226a3f3525563e3525563d3424543b3222543c32225b3c33235e3b33236b463d2a854c433187483f2cff221c15ff1f1a12ff1b160f692d210b5135260a4a412f0d303a2609ff493611ff282217ff312613ff473514ff533e16ff100d09ff705422ff0f0c08ff3e2f16ff4f3d18ff654916ff362710ff281f0cff614b21ff080604ff3f3017ff4b391cff140f0650533810ff09070514644814195c44131d403115143c2d116b775a1f9a5e4b2348574113311d1c19301c1a182e1b1816361b1a17351a1916331a17142c13110f2a0e0c0a2c0f0d0b2c151310211513101d1412102a151311320d0c0b350a09082f0807052e080705300807062d0b0a0833110f0e301413113216141335161513545d4318271514113b503b141a7353171e453316214f3a18184a3714fc0c0a0757312108ff4f3d1fff0f0c07ff624a23ff624a26ff684c1fff201a10ff1d170cff16110dff7e5e1fff16120cff48381aff775e2cff57441fff433724ff413621ff483b1eff493d27ff514326ff7a5d2453966c1eff544b40ff6b6253ff6c6355ff665e53ff655c4fff61594dff4e473dff5d5448ff6e6356ff665b4eff655a4eff61584cff62584bff6b6152ff6f6455ff786c5dff7a6d5dff786c5eff786d5eff746a5cff7a6f60ff837868ff897c6dff847768ff837768ff7f7265ff786c60ff827668ff7d7162ff827362ff817160ff7c6f5eff7d6e5dff8e806cff8e7f6dff897a69ff847665ff857767ff8b7c6dff8d7f6fff928271ff908270ff8a7e6eff877c6cff827567ff84796aff796b5fffa39585ff988a79ff998978ff91816fff8b7b69ff887866ff988875ff9b8a77ff978673ff958470ff958371ff998774ff9b8a79ff8e7e6dff8d7c6aff8f8171ff908172ff938575496c4c16c3675e54c2685e51c2322b23c3221d17c2211c15bd201b14c1231e17c2211c15c2241e17c1252019c2272119c1262018c1261f18c1262018c4262018c1262018902f281c67382c163f4633144a3c2f1840433416483a2e17496549155341321941403219413f32173b47381649352b174d3f3218bf282119c32a231bc1241e16c2261f17c228221ac329221ac2272118bf29231abf2a231ac4272119c2261f17c2272018c22c261dc2473e34c1736a5cc16c635541412d0cdc7f6b53ff81705dff81705dff8c7b69ff8c7b68ff9d8b75ff9a8873ff9d8a76ffa28f7cffa3917fff9a8876ff998674ff9b8a79ff9b8b7affa39382ff958577ff8b7e71ff8a7d6dff72665bff86786aff908372ff8b7d6dff807364ff63584cff544b3fff5d5246ff635648ff66594bff65584aff60564aff62584cff5c5246ff5a5144ff463c30ff463c30ff51463aff645a4eff50453aff3e352bff352d23ff282118ff2a2218ff292117ff272016ff271f16ff2b2319ff2a2219ff272017ff372e24ff564d42ff4c4237ff3f372c9d40382bab413a2da53c35299e37322785322d22642e291cff2c251dff3c332aff362f25ff342c23ff3d352aff453d32ff352f2671523c14ff594317ff352b17ff48391dff30281cff48391dff120f0bff413115ff604820ff392b12ff100c08ff523c15ff0f0b08ff0e0b06ff1c150bff4d3917ff664c1fff4c3b1cff0f0b06ff2b21105455390fc61e16071e694c151b7350131c6e4d141f6e4f163546371929201f1c361c1810301a18152d13110f2c0e0c092e0c0a082c0c0a082d0d0c0a3013110e301715122b1917142d1816132a1715122f0e0c0b2a0e0c0b2e0e0d0b320f0e0c3313111035151312301614122c1513127b5a452436231f18353f3013457c5a1d2d463517194d38151a6449183b553b124d2b1d07b71b1307ff42341cff2a210eff0c0a07ff5f4a22ff503e20ff4f3a14ff6d5125ff4a3a19ff574523ff3e3013ff17130cff705727ff272217ff806125ff715419ff584726ff3e321dff62502ab1604a22b3624c28ff655a4dff6b6155ff685f52ff5b5246ff60574aff61584bff595044ff695f50ff695e4fff61574bff5f5549ff5e5449ff60564bff756a5bff7f7363ff7c7062ff7f7364ff7c7062ff7c7162ff746a5bff7f7566ff827868ff837869ff827567ff7e7265ff7f7365ff756a5dff86796bff7e7163ff786b5cff776959ff796b5bff7c6c5aff816f5eff7d6e5dff817361ff847663ff857866ff857767ff877868ff867868ff887a6bff8c7f6eff897d6cff7d7162ff796c5dff75695cff908374ff958776ff928371ff867665ff847464ff887865ff8e7c6aff8c7a69ff8b7a68ff897a68ff8d7d6cff958574ff998876ff958372ff90806eff92806eff938270ff948575ff897b6c45664614342b29273427242238201f1c39292724361815132c22211e34252321312524212f2c2926342d2b28392e2a283726232136292623352e2a27362c2a272825222027262422322d2a28322e2b29352e2c29362e2b28342c2b273e6245162c2c2a27322e2c2937312d2a35302c29362c29263126221f362e2a26372f2b2731282523342a2624352f2c2a3b302c2a382d2a28342f2b292c2926243a221e1c2f1f1b192b25221f3523201e392e2b28392f2c292e2d292534322513dc75624cff7a6b59ff7d6d5aff82705eff867562ff907d6aff8f7f6bff93826fff9b8a78ffa18f7cffa3917fffa3907dffa28f7dffa3917fffa99886ff978877ff897b6cff908272ff86786aff887a6bff908170ff8b7d6cff837568ff7f7264ff6a5f54ff665b50ff695e52ff665a4eff675b4eff695d50ff645a4eff665b4fff5d5449ff675c51ff675e51ff685e52ff60564aff635a4eff5c5147ff5b5247ff62574bff5f5447ff463b30ff3f352aff2b2319ff261f16ff271f16ff251e15ff2e261cff584d41ff574d41ff5c5145ff5b5143ff594f43ff594f43ff594f44ff554d41ff4a4338ff453e36ff423c32ff50483eff4f473cff4d4439ff453d33ff42392fff3d362bde362c1c8c352811ff5b471fff292218ff3f3016ff5f4617ff4d3712ff16110bff56421bff110d09ff2a1f0eff493618ff3a2b13ff6a4b1aff513b14ff443318ff53401eff090805ff36280fff2a2212b922170871412b0c3c36250e1b3c2e112d5d441944765720358b651c29352a15323f321b390f0e0b331918162f1614122f151210301412102e13110f2d1513102b1715122d1a1815311a18162f1412112e131210301413112c1413112d1412112b141311470d0b072c211d152a2b231039473511205941182e2c2619184f3c161c563f1554533a11655c4115ff634b20ff4f3d1bff3d2f18ff2d2412ff0f0c09ff3b2d11ff14100cff46381eff17120bff5f4a21ff755c28ff533f18ff5e4a24ff2e2920ff372e1eff322c22ff685225ff463822ff9e79306f8f6921f9483f32ff5e5448ff61554aff61564aff595046ff564e44ff564f44ff5c5448ff63594dff64594bff685e51ff726556ff716759ff716658ff7d7162ff837869ff7d7164ff807465ff7e7163ff7a7060ff746859ff807566ff82776aff857969ff897c6cff87796bff897c6cff7e7265ff897c6eff85786aff7c6f60ff7d7060ff897a68ff8d7d6bff887967ff897a67ff837563ff8a7b6bff8d7f6fff887969ff847666ff7e6f60ff7d6e5eff7f7061ff796c5fff7c6f61ff74695cff72665bff7c7163ff9f907fff9b8b7aff8e7d6cff8c7c6cff948573ff9b8b76ff9c8875ff998775ff8f7e6cff978472ff988774ff9d8b7affa18f7dff968573ff8b7c6cff8d7c6bff897969ff88786a9f715a355a6b4d1754291c09ff393024ff201911ff211a11ff211a12ff221b13ff241d13ff231c13ff231c13ff282016ff292116ff261e15ff271f15ff251e14ff251e14ff211a11615d4113d04f40236e5940146c5842166b5e4816bb50412057664916645940157044361a63523c13605d4614ba433720d14b3e21ff271e13ff261d13ff241c12ff281f14ff292015ff271e14ff261d13ff241c12ff241b12ff241d13ff241c13ff231c13ff211b12ff211a12ff54493b4e35250c5d4b3513de7a6751ff7f705eff8c7c68ff917f6aff92806dffa48f7cff9d8975ffaa9580ffa99782ffab9886ffa99785ffa08d7bff9a8877ff9a8675ff9d8a79ff998676ff907d6eff807267ff807264ff796d60ff897a6bff87786aff8b7b6bff8e7f70ff938273ff8e7e71ff928374ffa29180ff8e7f70ff817366ff6a5f52ff675d50ff675e4fff595044ff675d50ff675d50ff695f51ff645a4eff6a5f53ff645a4eff655b4eff665c4fff64594cff5a4f44ff5e5346ff685a4cff655849ff4e4235ff5d5245ff5d5144ff605549ff60564aff5a5043ff5b5044ff554b3eff51473bff51483dff4d443aff4a4238ff443e35ff3f3930ff4f483fff544c42ff534a3fff463f35ff453d33ff4b4337ff312b2366614714ff6d501fff453519ff503d1cff27221bff4c3c22ff14100bff6f562bff332810ff4f3b1aff493619ff120e08ff362a15ff0b0906ff604519ff080705ff3b2c13ff483617ff4a391bff513b194c412b0d3a382408161b150c23241c13181e1b0f1c3529133865491d2d1d1c19383c331f30392e19331c1917321a19162e1917142f191714351a1715371c1817341a18153f151412441514133b151413361614125034291655392e1b281e1a104c70511821694a13182d2212795141241f624816c3221a0d4934230a4246310d56795517ff1b140aff1e170bff524022ff695020ff7c602eff14100bff322713ff634818ff17130dff6a5226ff6f582bff5e491eff73541cff7a602bff574421ff383229ff78602dff3a32288e725425ff4e453bff5a5146ff594e45ff584e45ff5a5147ff5b5249ff524c43ff5f564aff635a4dff6a5f51ff695e4fff685e50ff736858ff7b7162ff7c6f5fff817563ff7c7060ff7f7361ff7b6f5fff7d7062ff7a6e5eff7f7362ff817365ff847869ff8a7d6eff8c7f6fff897a6cff786e62ff8a7d6fff84776aff857667ff857564ff877a68ff847769ff887b6bff857867ff887c6dff8e7f6fff918373ff897b6bff8c7d6eff837565ff897969ff837668ff807263ff7d7062ff7c6c61ff796b5fff776b61ff9c8c7eff978878ff958474ff8a7868ff948271ff948473ff998878ff90806fff988775ff998979ff9a8877ff948575ff998776ff968675ff8f8070ff847564ff807161ff827163ff7e6e614c5e4412505f43143326231f33292724352927243623211e341714122b2725233a25242032282622342f2c27312f2b28372e2a283423201e37292623392e2b29362f2b29332e2b28352f2b28302d2b27362e2b28312d2b26382b2a25331e1d1957583f132d211f1d382c2927362f2c29342e2b27362d2a27322c2925332e29242e26231e35231e1c3423211f312d2a26332e2b29392e2b29362c2927302b28263123201e311b191532292622302b2725342f2926362f2b29372a2622452a201257523b10ff806e5eff8b7966ff8c7b68ff9b8977ff9b8977ffa5917fffa79685ffa69481ff9f8f7effa18d7aff9f8d7bff958373ff91806fff907f6fff92806fff897768ff847466ff87766bff89796dff7d7064ff8b7b6cff8d7d6dff8e7d6eff938374ff948373ff998979ff9d8a7bffa2907fff9e8d7cff988878ff918272ff716558ff655c4fff62584aff655b4dff655b4dff6c6154ff6e6256ff6f6256ff695d52ff685d52ff6a6052ff5f5448ff5e5345ff65584aff665a4cff63574cff63564aff5e5347ff63584cff665a4eff5f5448ff594f43ff5e5347ff544b3eff574e41ff52493fff4e453bff4b4139ff483f37ff443c34ff484039ff554e44ff534b41ff4d453cff493f36ff4e4439ff3b342b79533f19f029231bff5c451dff2c2720ff503d19ff6d5425ff6c5017ff624718ff5b451cff594219ff0f0c08ff433111ff21190eff0b0906ff64491eff644d1fff523e1dff22190cff16110958775818781f17085450331059452e0d17654711285d43121f4f3a141f30261541100c05221c1a174d67502437292418381b1916371a181533191714391918153d191816321614112a13121035272011614b3b1b251412103635270f1f714f1316483511152c2211154b3713903d2d1052231907a14934197a543d1c5843300e56785316ff1a150bff5a4723ff372b14ff392c13ff583f16ff72551dff392b15ff5e481fff1a150eff57431bff302a23ff7b6130ff3d362aff5f4b24ff5a4928ff4c3d24da584422f0463c2fff5b5247ff5c5348ff5b5248ff5a5148ff5e544aff61584cff4d463dff625a4cff6a5f51ff695f51ff6b5f52ff6f6355ff706659ff776c5dff766b5aff7c7060ff7b6f5fff7a6e60ff776c5dff7f7260ff7f7162ff827565ff847766ff887b6cff877b6dff877969ff7d6f62ff796c5fff85796bff887a6aff7f7262ff837668ff857769ff877a6aff8a7d6dff8e8070ff938575ff948675ff928472ff968775ff968676ff8f8071ff908170ff918272ff918371ff8b7a6bff87776aff87786bff827268ff97897bff988777ff958372ff918171ff948373ff978877ff9a8a78ff9e8d7aff9c8c7aff9b8b7aff9d8b79ff9a8977ffa08e7cff998776ff9b8a7bff998a7aff8e7e6fff8b7b6bff877869ff84766778473613495038104d432e0ea4362711ad3a2a12b33b2c13aa402f13a93a2c13b03b2c129f3b2b119f3b2b11a03b2b11bc382c15b33a2d15a8382b14a53c2d12ba3a2d14aa3a2c126e4d39136c4e3911624f3910754f39125a4f381158503810524b36106c4b371158493610594d380e714d38115149351053533b0fa0392a12a8402f13a93d2d14a43e2e14a43f2e13a3402f13a83c2d14ad3d2d13a03f2e13a03f2f14a13f3014bf3a2d16bc332713a5362913a5392a115c42300e4f654a15473a2909ff857564ff897766ff92816dffa08c78ffab9884ffac9986ffab9784ffa89581ffa89581ffa99782ffa4927fffa2907fff978777ff9d8c7cff9d8b79ff948374ff8f7f70ff918073ff978578ff7d7164ff7e6f64ff988876ff938273ff958475ff928171ff948376ff9e8d7effa08e7cffa3917fffa59383ff9d8b7cff978778ff9a8978ff9d8b7aff847565ff736658ff6a5f52ff6d6355ff6a6052ff685b4fff605449ff665b4fff695d50ff63584cff5e5347ff62574bff655a4dff65594cff675b4eff665a4eff685c50ff665b4fff655a4dff645a4cff64584cff5d5448ff5d5346ff5c5246ff564d42ff51473dff4f453cff4a4139ff4c443cff584f46ff53493fff4f473dff4d453bff50473bff4a4036be45361f9b352916ff3d321fff513f1cff3e321bff292319ff523e18ff15100bff402f10ff130f0aff433318ff332714ff6a4f1fff5b4013ff2c200cff413013ff57411dff141008587a5a1852291d07534d38189e4e3819c32d200c5f291d08215a3f111f7250162e7e591b24563d0f3517130b2b1f1e1b43644d202c1715142f1918162a1816142a17151438151312825f4b232813131143130f0624543b12175940111b2921132a4f3a135e4f390ea2130e05d0160f07ff2f2412c62c210e6e4934115d3f2d0e547a5517ff6a542cff130f0bff14100bff6c5321ff17120dff624a20ff453418ff907032ff83662eff2e2821ff70582aff4c3c1dff2f2921ff715826ff3c332075916c22ff483f35ff5e554aff635b4fff645b4fff665d51ff61594cff5e5449ff534b41ff685e4fff675e4fff6a604fff695e4fff6e6354ff736759ff6f6455ff716759ff6f6255ff756759ff77695bff796c5dff7e7262ff7f7263ff817364ff817465ff857769ff887c6eff807466ff7d7163ff74675aff7f7264ff7e7263ff7b6e5fff867968ff857566ff8b7d6dff89796aff908272ff958473ff968573ff908270ff928372ff928272ff988876ff8c7e6fff918271ff938271ff948372ff938473ff8f8070ff928272ff918274ff958474ff938272ff9a8776ff998774ff9b8977ff9d8b7aff9f8e7dffa0907fff9f8d7bff9e8c7bff9c8a7aff9d8b7bff9e8b79ff9b8977ff928272ff938272ff8e7f6eff928171ff938474ff918271443d2c0c36292523352925233325211f3a2723203625211d2e221e1b271f1d1b402825233c2d2928372e2b29372d2a29392e2b2a392d2a28352e2b29392a2625392b2725332c2724392e2925332c2824352c27232e282520342b27232b272421472d2a26352a2624352825222d2723202d2724222e272421352925213124211c2f25221e32211f1b351c191637292625322c29263b292724362926242c2a26232f2725223e24211e3f221e1c382b272439302c29382c29263728252333282522375b4217ff8c7967ff8b7966ff8e7c68ffa7927effaf9b87ffaf9c89ffac9986ffac9885ffa89784ffa89581ffa79380ff998776ff998875ff998775ff988776ff958473ff9e8e7cffa19080ff9b8b7bff9a897aff79695cff8e7d70ff918171ff968473ff948373ff917f70ff988775ff968777ff938172ff9c8a7aff978474ff948372ff907f6fff968676ff9d8d7cff968677ff9a8a7bff968676ff9a8c7dff968879ff8e7f70ff746659ff726556ff65584cff5f544aff62564bff64594bff675a4cff6a5e51ff6a5e51ff695d50ff6c5f52ff645a4dff655a4dff847564ff8a7b6aff857767ff706355ff6d6052ff6b5f52ff665c50ff65594dff64584cff5e544aff564d43ff52473cff544a3eff52483dff574c3fff574c40ff37312854755615ff31281aff53411fff2d2821ff3e321bff604d24ff17120dff644c23ff6b5325ff433211ff473718ff100d09ff6a501fff0f0c08ff140f08ff47371b5271521949271b07531e1608e5171106ff161008a03a280bd71a12061a261c0d1d21190e3335291334362a162e513b112d3b2f1534312a1b4a5b471f321b18162f1918152414141134221a0f4223190c186f4e131f3a2b10174332122f4b3815e30c0a06583c290bff0e0b07ff5c492aff5845249d2a1e0c5b4a340e4349320c7f70521fff3a2a10ff18130dff6a5124ff332913ff18130eff725a2bff44361dff383128ff614a19ff74581fff5c4821ff4a3920ff4b3e28f741382a497d5d16ff564e42ff5c5347ff5f554aff5e5549ff605649ff62594cff4c453aff584f44ff6b6051ff6b6151ff716657ff706556ff756a5bff756b5cff706659ff766c5eff796c5eff7f7265ff837566ff827466ff817465ff807465ff84786aff817366ff857769ff8b7e70ff827668ff7b6c60ff786c5eff7c7161ff877a68ff867869ff837464ff857766ff8b7d6eff8b7c6cff908272ff958778ff8d7d6cff948474ff968877ff978978ff968776ff968878ff908170ff887869ff847566ff87786aff887869ff8c7d6cff837468ff938475ff928171ff917f6eff988773ff9c8a76ff9d8b79ff9f8f7cff9d8b79ff9a8a79ff978777ff988778ff918173ff8b796bff928172ff968574ff8d7b6cff8e7f6dff907f6eff8e7f6fff91806fd58470584a7b5c1f45916c224376571a5956401b644a371451583f153b956b234c6f53214f87652970766034657e64315d8067345383682c507f65284a87682862725c2f34674f20468f6d26499c76293f9a742445936d235b876a2d5a7d622b6c755f2f6378613277826a353f977124498264245a80652c3c997120488665224d8161204382611d5183622158856527598b69284a8e67244290682654826128507357276a6f572d5f80612e5f5b462151664d1f4f806327418667294f6953273584662252917029ff867462ff8d7b67ff927f6cff95816fff9a8874ff9e8c7bff9c8b79ff988777ff978777ff99877aff907e6fff907f71ff9b8a79ff9d8979ff9f8d7bff9c8975ff9c8a79ffa3917dffa1907dff9d8d7cff918574ff847467ff998879ff9e8b7bffa2907fff9d8c7cff998a7aff9c8e7dff998a7aff9a897aff9a8978ffa08e7eff9e8e7fff9f8f7fffa2907fff99897affa49384ff968679ff978777ffa09282ff998b7cff938374ff897a6bff867869ff8d7e6bff867769ff8f7e6eff6c6053ff6c5f51ff685c4fff685c4fff6a5e50ff685c4fff665b4eff867868ff897c6dff8a7b6cff887b6dff857668ff7e6e60ff736558ff736559ff736659ff756859ff6e6256ff6d6257ff716559ff766a5cff716355ff726555ff746656ff534a3ea8685223f040372aff4b3d26ff433720ff48391fff4d3c15ff3f300fff19140bff403115ff624c23ff120e09ff3d2f14ff6a5227ff120e09ff4936115173511855251a0849231907e40f0b06ff5f4b29ff392d19ff0a08055c5a3f11bc2a1d09173c2a0e1a302410192d24113b2a21129165512b281e1b14503e351f462e281e6756411c1f583f13215c41141838291020573f15b931230c47271b07ff523c1fff54401dff4c3a1cff554322ff594421b12d210e5a6e592f5245300f757a571cff604918ff4a3918ff4e3b1cff372b15ff221c14ff2d2516ff2b261eff81662eff3c362eff614c23ff524121ff795f2c9e83621fd14f412aff5b5144ff605649ff63594bff5a5146ff63594dff63594dff4f493fff564e42ff5b5146ff695e52ff695e53ff6b6153ff6c6152ff6c6153ff726656ff796d5cff7c7061ff7e7164ff817367ff827567ff85796aff7f7165ff847768ff86796aff8b7e6dff8b7e6eff85776aff7a6d61ff6e6559ff8c7d6cff8e806fff968675ff8f8172ff908374ff918374ff948576ff978979ff988878ff968677ff958373ff958575ff928472ff968776ff958674ff948674ff978776ff998877ff998979ff938271ff958676ff897a6cff8a7b6cff908070ff8d7d6dff90806fff968472ff978673ff998776ff9f8c7bff9e8c7cffa1907fffa28f7eff9b897aff9b897bff928071ff9a8879ff998877ff9b8979ff9d8a79ffa18e7aff9a8875ff90806fd2806c51ae5c4a2fff221b13ff1f1911ff201a12ff231c13ff251e14ff241c14ff251d14ff251d14ff241c13ff251d13ff261d14ff261e14ff271e15ff271f15ff271f15ff261e14ff241c13ff261e14ff281f15ff281f15ff282015ff261e14ff231b12ff271e14ff291f15ff2b2216ff2c2217ff2b2217ff2b2116ff2b2216ff2b2217ff2d2318ff2c2217ff2c2317ff2c2217ff2c2217ff2d2317ff2d2318ff2d2317ff2e2318ff2d2317ff2d2317ff2d2318ff2d2318ff2c2318ff261e15ff372c20ff766756ff796b59ff8d7b69ff8f7d6affa5907cffac9886ffb09d88ffad9a87ffae9c89ffab9886ffa49182ff9d8a7cff907f6fff9a8877ff9e8c7bffa18d7dff998575ffa4907fffa49380ff948273ff988677ffa89685ff8a796cff847567ff8a7b6cff958476ffa29181ff998879ff998776ff978677ff968475ff9a8878ff9d8c7affa18f81ffa39183ffa59284ffa39182ff948376ff9b8b7cff9a8a7bff9f8e7eff9f8e7fff988779ff8e7f71ff807266ff998878ff998979ff9d8e7eff988979ff98897aff978879ff8a7d6dff8b7e6eff8f8171ff908270ff918372ff918172ff8c7f6eff8d7e6eff8a7c6cff867868ff847668ff837666ff837566ff7e7163ff7d6f62ff776b5fff6a5f55ff75685bff6f6457ff685e50ff726658ff695e4fff5c5346ff3e372e53755418ff765a24ff4b3c1fff4c3c1eff332e27ff56431fff18130eff241b0dff1b150dff3d2e16ff543f17ff513c16ff5b44166f70531d41271b0842423116f40e0b07ff554426ff423219ff473518ff4f391987533b179337270b7246320d15664814176b4c151c6c4d1316694a163f44320f22171612186c4c151a402f111545310fa32c210b7d1a1306bd1c1408ff4b3a1eff0c0a07ff19150cff261f0fff2b2211ff705a2dac735a266f553e144f49320d597b5517ff21190eff251c0fff44351aff846426ff735620ff372f22ff624e27ff675124ff2e2821ff7e6128ff3d35273f7e5d18ff4f463bff62584bff62584cff675d51ff635b4eff61584dff5b5348ff534b40ff5b5246ff5e5348ff62574bff5c5247ff64594dff6e6252ff706555ff776b5aff7d7161ff817362ff7e7161ff7a6e60ff7f7263ff817567ff7e7063ff807365ff827465ff8b7c6bff837666ff887a6bff7a6e62ff6d6156ff8d8070ff938374ff918272ff948574ff8e8172ff918475ff918373ff928476ff908374ff928576ff978877ff9b8b7aff9b8a7aff958678ff9c8c7bff9c8d7bff9f917fff9b8c7bff9a8b7aff9a8c7cff9d8e7eff938476ff827568ff9a8a79ff938270ff8d7e6dff978774ff988774ff9a8877ff998675ff9f8c7dff998778ff9b8978ff9c8b7bffa18e7effa39181ff9b8878ff9d8d7dffa08f7dffa69380ffab9986ff9d8b7cff998777ff998878c7776856ff4a3d30ff1d1811ff211a12ff201911ff221a12ff221a12ff201911ff231b12ff231b12ff261e13ff271e14ff282015ff281f15ff271e14ff261e14ff271e15ff261e14ff261e14ff261d14ff271e14ff281f15ff271e14ff261e14ff201910ff251d13ff291f15ff2a2016ff2b2217ff2a2116ff2b2116ff2a2116ff2a2116ff2a2116ff2a2117ff2b2218ff2c2217ff2d2318ff2c2217ff2e2318ff2e2418ff2e2418ff2e2419ff2e2419ff2c2318ff2d2319ff2e2419ff282016ff2a2217ff2d2318ff6b5b48ff847362ff8f7e6affa38f79ffa8937fffac9784ffb19d8affa3907fffaa9685ffa69382ffad9a88ffa49280ff9b8a7affa39281ffa59280ffa18e7effa79584ffaa9787ffa99684ffa79482ffa48f80ff9a8879ff847568ff8e7d6dff907f6eff938272ff8a7a6cff8c7b6eff988675ff9c8a7affa28f7cffa79382ffa5917fff9e8d7cff9b8b7bff9d8c7dff9d8d7dff9a897aff9b8b7cff9d8b7dff9f8e7cff9f8f80ff9a8a79ff8f7e6fff7b6d60ff9a8c7cff9e8f7fff9e8d7fff9d907fff9a8b7cff97887aff928575ff918474ff8f8372ff938776ff988978ff938573ff918372ff8e8071ff8f8071ff8a7c6cff8b7f6fff877b6dff84786aff837769ff83766aff7c7063ff6b6055ff776a5dff706456ff6c6053ff6b5f52ff6c6253ff6a5f51ff443d32458e681dff3e362aff5e491cff3a342bff49391dff504120ff241e15ff6a5126ff6b5022ff372812ff2c210fff1b150c547556194e261b084c473312ec6a501eff68532bff40311aff40311bff090705ff161007ff1d160c4d53390e8c33230a2a2118091c2b200f1b2a200e1334250f284d3713141f190e1138280e8e0d0a043d462e09ff0c0a07ff5c4727ff5d4728ff0e0b08ff1a150dff5f4c26ff2c220dff13100bd555401b95533c123f49320c467b5516ff21190eff695026ff302920ff5b4b2dff372b19ff604b22ff5e4a29ff705724ff393023b95c4923c64e3f26ff5d5548ff5d5447ff585045ff62594eff655a50ff61574cff514840ff5b5246ff5c5146ff63574bff5e5448ff65594bff6a5f50ff6e6354ff726757ff756858ff7c6d5eff766a5cff7a6e5eff7f7160ff807262ff796c5fff716556ff786b5dff75685bff7f7263ff817565ff807261ff837667ff786d60ff887b6dff8e7f70ff8d7e6fff8e7e6dff91806fff928370ff897969ff90806fff988979ff9a8b7aff9c8d7bff968776ff968676ff968777ff978879ff9a8a7aff9f8e7eff9c8b7aff958474ff998777ff9d8c7dff9d8c7cff9d897cff978878ff9f8d7dff9b8878ff9f8d7cff978677ff948273ff958170ff9d8a79ffa18e7cffaa9587ffa69180ffaa9685ffa3907fffa4917fff9f8d7cffa79585ffa49281ffa79685ffa79683ff9e8d79ff9e8e7effa39083fe9a8a7aff706356ff5e5449ff6a5e51ff6a5c51ff504539ff42392dff605446ff706455ff766958ff7e6f5dff7b6b5bff6f6253ff706353ff76695aff7e6f5fff7e7061ff736558ff756658ff76665aff76675bff7e6f5fff7c6c5dff7b6b5fff75685aff7b6d5eff7e7061ff827364ff7d6e5eff7f6f5fff827361ff7f7060ff7a6c5bff75695aff605446ff685a4bff6a5c4dff7f7260ff7c6d5dff806e5dff7f705eff655748ff5f5143ff7c6e5dff807060ff807161ff847465ff827463ff6f6356ff847868ff988875ffa5917effac9886ffa59180ffa48e7dffa5917fffb09b87ffb09b88ffb19c8affb29d88ffaf9b89ffab9785ff9d8a79ff9d8a7aff9e8b7bffa69483ffab9a87ffa89581ffa2907effa89484ffa99588ff9c8a7dff87786cff8d7c6eff8b7a6dff948172ff8d7c6dff907f6fff9b8776ff998675ff9f8f7bff9f8d7affa5907fffa08d7dffa08c7cffa38e7dff9f8d7eff9d8b7dff938173ff9a8677ff9b8779ff99877aff9e8c7cff948272ff8f7e70ff897a6cff9b8b7aff998878ff978675ff988775ff928272ff958573ff8b7b6cff918273ff938576ff948474ff998c79ff958674ff8c7e6eff857767ff877a6bff807266ff8a7c6cff857869ff817365ff7f7263ff847669ff7e7264ff75695eff6f6358ff766b5eff716558ff706557ff6c6153ff6b6051ff54493efb453c31fc3f382dff3e3528ff503f1fff5a461eff4c3a1aff382a12ff251d10ff19140dff604920ff1f180e567858148122190a414a3612e560471bff0f0c09ff543f1aff624b26ff0b0906ff0a0806ff543f24ff342815f90c090551553b0ff80c09051d533e1417533c111b503a12ff0a08065a322309ff493418ff503a18ff382a14ff3f3117ff5d4c2bff0e0c09ff544222ff14100aff13100cff4d3e22d53428126b4f391258412d0d41724e15ff6c5328ff25211aff302a21ff5c4a1dff373028ff634e2bff544428ff664f2058785a1fff443c32ff5c5247ff5c5346ff5b5247ff5f564bff5b5147ff534a40ff4c433bff5e554aff5e5349ff60564aff64594dff6a5d50ff6b5e50ff6c6154ff716559ff73685cff766a5dff74695bff7c6f61ff7a6d5eff7b6e5eff7c6f60ff776b5eff6f6356ff6f6355ff7f7364ff807264ff837467ff817565ff766a5dff8c7d6eff8c7e6fff8b7b6cff8f7e6dff8e7e6dff8b7b69ff8e7e6cff938472ff958676ff978878ff978976ff998977ff938372ff9a8879ff998878ff968475ff958475ff978676ff988777ff9c8a7bff9b8979ff998679ff928073ff8c7c6fff998879ffa79587ff9e8d7eff9c8979ff958577ff938072ff9a8677ff988574ff9d8a7bffa3907fffa79383ffa59180ffa89383ffa79380ffa18e7fffa69482ffa48f7dffa79283ffa28f7fffa89479ffe0bc38ffe0be3bffc8a42cff9f7e1cffa5811cffaa891effa6851dffa78b20ffaa8e22ffa98f22ffa88f22ffaf9124ffb49526ffb39528ffb59728ffb49727ffb49828ffb39728ffb49829ffb08f21ffaf8b1fffaf8b1fffb18f21ffb49425ffb49122ffb29023ffb19126ffb19227ffb59827ffb39325ffb19226ffb09022ffb29324ffb39424ffb39525ffb59829ffb79c2dffb79c2effb59828ffb79a2affb69829ffb99929ffba9827ffb79526ffb99728ffb99826ffba9c2affb79927ffb89726ffb99927ffb69627ffc1a32dffeaca46ffeac944ffeac843ffa28f7eff9e8b7cff9b8678ffa58f7fffa69281ffa99583ffb29d8bffad9a88ffaf9987ffb19b89ffae9885ffa89583ffa3927fffa99481ffa99483ffa59281ffa49082ffa79586ffa08e7fff8f7d6fff867267ff938174ff958275ff938174ff988678ff9e8c7bff9d8a79ff998979ff9f8d7fff9f8d7fffa19080ff9c8a7bffa59180ffa08f7effa08f7fff9a897aff8b7b6eff8b7c6eff837467ff928273ff938275ff988578ff968676ff867769ff9d8c7cff988675ff9e8c79ff988573ff94836fff91806cff8f7f6dff8e7f6eff948473ff968878ff8e8170ff908170ff8e7f6fff8c7c6dff8a7c6dff837667ff847668ff817565ff817465ff847667ff7d7063ff786b5eff77695eff716559ff766b5fff766b5fff71675aff6e6356ff685e51ff594f45ff3c352b7d513d18ff574319ff453922ff4c3f22ff373129ff4b3717ff201b14ff16120dff55401d526d501352281d0861201708ea201809ff271f12ff100d0aff1e170aff1c160dff0b0806ff5c4724ff271e12ff4b381dff4e3717994f3812564e350c721f16081e614613a8231807ff433015ff0c0907ff574423ff4f3d1dff3f3119ff785f34ff54411fff433111ff14100bff604c28ff604a1ebb3327105553391059422e0d4c7c5515ff4b3b1aff514026ff524220ff46381fff2e2920ff5d4921ff342d24a35d4820ff443c32ff52493dff595044ff585044ff5a5247ff544c43ff4f473eff453d36ff574d43ff5c5247ff615649ff62574bff605649ff685d4fff685d51ff6f6255ff726557ff73695aff766b5cff776b5cff716559ff706458ff746659ff786b5dff776a5eff766a5dff776b5fff786c5eff7c6e60ff837467ff786e61ff857666ff877868ff847464ff807060ff8e7e6dff88796aff897969ff8e7e6dff8d7c6bff92826fff948473ff968675ff918271ff8d7d6dff89786aff817164ff857467ff8a7868ff8f7e6fff948476ff958374ff8d7d6fff8b7b6eff89786cff968477ff958577ffa29081ffa29182ff998878ff988574ff917e70ff948172ff9b8775ff968475ff9c8977ffa28f7cffa39280ffa08d7bff9a8876ff968574ff8e7c6dff907e6eff968271ff9c8a79ffccad47ffdeba36ff9d8b7dff84766aff7e6e62ff87766aff88766aff807062ff87796aff877a68ff857868ff8f8170ff7c6f61ff998676ff9f8b79ff9c8a7affa18e7dff9d8c7cff9d8a7bff8f7e6eff958272ff958473ff998678ff988676ffa08d7cff9d8a7aff9c887affa59383ff9f8d7cffa48e7bffa28d7aff9f8a76ffa28c78ffa4907cff91816fff928270ffa18d79ff9e8b78ffa89580ffa2907cffa7937eff90816fff978471ff978170ff827061ff877563ff99836fff9a8674ff887969ff948270ff9e8c7aff978576ff9e8d7eff9a8678ffa59382ffdebe4bffe6bf3bffa18e7dff988575ff9c8878ffa18d7bffa08c7aff9e8d7bffa6927fffaa9583ffa4907fffa3907dff9d8a79ff9b8776ff928070ff9c8876ff9a8674ffa08d7cff9e8c7cffa18e7fff928174ff887769ff7f6e64ff8f7c70ff978476ff978475ff968475ff958373ff998876ff998879ff9d8b7cff9f8d7dff9e8c7cff9c8b7bff9c8a7aff938173ff8f7e6fff928071ff968576ff908072ff928274ff8f7f71ff8f7f70ff8e7d6fff958476ff8a7c70ff968472ff978473ff8f7e6cff8c7b69ff91816eff8d7d6cff877766ff8d7d6cff8c7b6bff8b7b6aff8e7f6fff908070ff847565ff847666ff7c6e5fff746759ff736558ff776859ff7a6c5cff7a6e60ff776b5eff726659ff706559ff655b50ff6d6255ff6d6255ff766b5eff6f6458ff675d51ff605548ff413a2f80695021f13a3326ff5d461eff363026ff473821ff4d3d20ff3d321fff4f3a145166491253271b084a241908e715100aff5f4a23ff48391fff0f0d09ff6b501aff433416ff63502cff48371dff21190dff40301bff0b0906ff584321863c2a0be0151006ff4d3c22ff0c0907ff0c0907ff5d4822ff3e311bff45361aff16120aff564019ff6d521cff56421dff523f1dff5b4823ab3426105c6f55257a3d2c1038684614ff402f10ff46381cff584727ff46391cff5f4d2c5f77591bf33b3225ff494137ff51493dff50493fff554e42ff574e43ff574e44ff4e473dff49423aff574f44ff5b5046ff5b5246ff5e5549ff62574dff63584cff5f5449ff6d6052ff6f6354ff706457ff776b5eff766a5eff6f6357ff6d6155ff716559ff6e6257ff74685bff776b5eff7a6d60ff6e6255ff776a5eff827467ff7e6f62ff827565ff796d60ff7c6c5fff7f7163ff827566ff807365ff897a6bff877969ff8e7f70ff968576ff9a8a7aff988776ff91806fff918071ff8a7b6dff827263ff8d7b6cff827162ff887769ff8b7b6cff988675ff927f72ff8a7a6dff8a796dff8e7e71ffa39081ffa19182ff998677ff9a8779ff9b8878ff928272ff9b8878ff968372ff8e7c6eff978574ff9d8a79ff9b8876ff998775ff998675ff998676ff8d7c6eff938172ff8b786aff8f7c6dff938271ffddb836ffac9561ff978576ffe3cfb8ffcbb9a4ffa99885ffa69887ffa89884ff9f907dff9f907bff7e7260ffbdac97ffc9b6a0ffe5d2b8fff9e5c6fff4e0c4ffcab99cffd7bea3ffdbc5a6ffc9b599ffc3b097ff998975ff857869ffd5c0a7ffe4ceb2ffe7cfb6ffd6c1a8ffd1bda4ffc3b29affd4bfa4ffbcac93ffbaa890ffad9b87ff867a68ff9e907effd4c2a8ffe4cdb3fff1d9bffff2d8bcffcdb9a1ffd3bda5fff0d7bbffb39f8bff7a6e60ff928470ff998b78ffbfad96ffc5b199ffd1bca2ffdbc4aaffd4c1a8ffe0cbb1ffe0caafffbba890ff948473ffa79375ffe4c03affa4917fff9e8d7cff9c8a78ff9e8a78ff958070ff958271ffa18e7dffa18d7bff9e8a79ffa4907eff9c8878ff948171ff8b7a6bff998575ff927f70ff998676ff988677ff978677ff998777ff938072ff827267ff7d6d64ff8b7a6cff8f7c70ff938274ff978476ff958274ff958375ff958475ff998677ff9a8877ff9c8a7aff9e8d7eff9b8a7aff938375ff8a796cff8c7d6fff928274ff8b7c6dff908072ff938275ff867669ff88786bff948376ff8a7a6dff8d7d6dff897869ff897868ff857562ff8b7a68ff867665ff8b7969ff8c7c6cff8a7b69ff92806fff948474ff857667ff857765ff7c6e5dff796c5dff746456ff746557ff6f6152ff706253ff726457ff75685aff746758ff655b4fff5d5449ff665c50ff766b5dff716759ff6b6153ff685e52ff64594cff4c443ae84c3f2c6f392a10ff504129ff514024ff544121ff4c3b1bff3d2e0e4b61461363251a094f403017ea15100aff4e3d21ff403217ff60481cff6d531dff543f1dff141008ff5d4924ff3d2e18ff3b2d17ff0b0906ff211708ff372a17ed110c06ff5a4624ff0d0a08ff0e0b09ff795e2bff120f09ff110e0aff41341bff120f09ff201a0eff2a2112ff382a10ff71592c9d785c2961573f1346472f0d4c704d17ff31291eff30291cff624e2bff7a5e2026603f16ff3d372eff48433aff50483fff50483eff4f463eff544d42ff574e44ff494239ff4f483dff554d42ff594f43ff564d41ff584f41ff5d5448ff5f5449ff60564aff6b6052ff6a5e50ff6d6055ff75695cff74685cff75695dff716459ff6a5f52ff776a5eff786a5fff716358ff716558ff726659ff74675bff7e7163ff796d61ff847669ff877869ff867768ff857568ff8d7d6eff8d7e6fff8d7e70ff8f8071ff908173ff968779ff968677ff968677ff968676ff958575ff968575ff928172ff948373ff998878ff9d8a79ff988776ff9a8778ff9b897aff958476ff958677ff8e8073ffa59284ffa89588ff978372ff978474ff9e8a7cffa18d7dff9f8b7bff9c8979ffa08d7bffa18c7cffa18e7dffa3907dff9f8d7cff9d8b7aff9c8a78ff9f8b7aff958576ff9a8a78ff8f8073ff9b8a7bffa69068ffd7b232ff8f7d70ff92826fffa99987ffa59482ff998b79ff908271ff887863ff8d7e6bff8b7c6bff8f8170ff908372ffac9a87ffbba994ffbcab94ffb8a890ffb4a48affb09e85ffa8967effa99881ffb0a289ffb0a187ffac9c84ffada088ffab9c86ffb0a089ffb5a18bffae9c85ffb5a18cffa79680ffae9c85ffac9b83ffac9a84ffaa9781ffa99782ffab9a84ffa89681ffa5937effa99781ffa08f7affae9b85ffb19e88ffab9983ffa6947fff91816eff91816dff9c8874ffa6937dffa8947effb09d86ffaf9d86ffa99983ffa99883ffa2917dff837362ffa6927fffe0bb36ffcaab4bffa69282ffa18d7dffa08c7bffa48f7cffa48f7effa79280ffa99381ffa5907fffa69282ffa79384ffa79280ff9e8a7bff948373ff9a8979ff958476ff99867aff958376ff907e71ff907f71ff938274ff7e6c61ff8a796cff8f7d6fff907e6eff877769ff847366ff8c7b6eff88776aff8d7c6fff958374ff938271ff998678ffa29182ff958577ff988679ff857569ff8a7a6dff928174ff8f7f71ff88796bff88796bff817367ff837569ff938475ff83776aff938576ff918170ff928070ff948270ff91806fff938373ff918170ff8f7f6dff8f7f6eff978777ff907f71ff8b7c6bff887a69ff887a6aff8a7a68ff827463ff7e6f60ff817263ff7e6f5fff807361ff7d7161ff7b6f60ff716659ff6d6558ff776c5eff7b6f61ff74685bff665b4cff615749ff6a5d51ff5f5449ff40382e33503414ff654a1aff574529ff453722ff3c32254b5f4313731e150a54423114e47c5b26ff664e27ff4c3816ff4d3a17ff120e0aff2c210cff17120cff0e0c08ff2a1f0eff554325ff0a0806ff15110aff3f311bff48371fff594724ff110d08ff43341bff17120aff110e0aff41341dff58451eff14100bff20190fff5a4624ff40341dff27221c9c58421c654231113f47300d4c6b4918ff382e1fff54421fe33b31209858431eff473e36ff4e463eff524940ff4e463dff544c42ff554c43ff564c41ff453c34ff4f473dff50483eff564d41ff595043ff5f5447ff655a4dff5c5449ff645a4eff695e50ff6c6255ff716659ff76695cff74685aff75695bff786c5eff6f6457ff74685aff74685bff776b5eff7c6e61ff7c6d60ff796c5fff837465ff796d61ff897c6dff887b6bff837567ff837566ff8a7c6cff908375ff8c7e70ff8b7d70ff8c7f71ff908174ff908071ff8c7e70ff968779ff9a897aff978777ff948274ff938273ff968676ff99897bff9d8a7cff9b887aff948373ff9c887aff998679ff908074ff9d8979ff9e8e7dff9d8a7aff988678ff927f70ff907f71ff9b8779ff9f8b79ffa18f7fffa18e7eff9f8c7bff9e8c7cff9b8878ffa08d7dffa79786ffa08f80ff99897aff958477ff917f72ff988578ff958276ffd5ad34ffc8a73eff998679ff786a58ffab9b88ffa99886ffa99988ffa49483ff958573ff857563ff837462ff8b7d6dff897c6cff9c8e7dffad9d8affaf9f8cffafa08cffafa08cffa69782ffa69782ffa59680ffae9f89ffaea08bffac9e88ffad9d86ffa39680ffa2957fffa1917dff9e8e7aff9e8d78ffa08f7affa1907bffa3917cffac9983ffa89781ffa4937fffa69682ffb09e89ff9c8b78ffa3917dff9f8e78ffac9983ffad9b85ff9e8d79ff998775ffa5937effa5927fff93826fff8f7d6affaa9680ffad9a84ffae9c84ffaf9e87ffb2a08affa99a83ff7c6e5fffa5927effddb838ffdcb735ff917f71ff9c8879ffa18c7bffa48f7fffa79382ffa59180ffa18e7effa18d7dffa49280ffa79585ffa69584ffa08e7eff9a877aff907d71ff917f72ff9a877aff948174ff928072ff988578ff948175ff8c7a6cff817064ff947f71ff8b786bff8c7a6bff8f7e6eff948171ff928071ff8c7c6eff928072ff9b8879ff9b8879ff9d8b7dff9b897aff938174ff9d8a7cff958475ff907f71ff958475ff8e7e6fff908071ff938273ff938374ff8a7a6dff948474ff807467ff958576ff928272ff8c7c6cff8f7e6fff928270ff948475ff8b7b6dff8d7d6eff8e7d6fff8c7b6cff8c7b6bff8a7b6bff8c7e6eff89796aff847565ff827364ff817262ff817465ff7e7263ff7c6f5fff786a59ff746758ff746558ff736658ff6e6356ff736758ff716759ff695d4fff65594dff5d5346ff5a5146ff473e339a705625ff41392fff533e1eff3b32233b593c11602217085d3a2a0fe455401fff19140eff544222ff614b24ff120e0aff130f0bff634b20ff1f180dff0e0c08ff473311ff120e09ff241a0bff211a0eff463722ff4f3e1dff7a5e28ff594119ff4b3914ff5f4b24ff2f2614ff5a4925ff16110cff42351fff2b2419ff2d2721ff504327bb3d2f19585037104c49310e46684516ff7459217d684f1fde3f3526ff534a41ff554d42ff564d44ff564e44ff584f45ff584e44ff524a40ff484038ff50473dff4f473dff554d43ff5b5147ff5e5549ff60564aff5f5649ff63594dff6b5e51ff64594dff695e50ff6f6354ff716456ff726556ff726457ff706356ff716557ff746758ff736658ff74675aff726458ff726458ff776a5eff7b6d60ff817666ff887a6aff807264ff847665ff897a6bff8b7e70ff8a7b6fff8c7f70ff8c7f71ff8c7f71ff8e8072ff8d8071ff918375ff938476ff928273ff958475ff958475ff968677ff988779ff988778ff998778ff968678ff988778ff948376ff9b8a7aff968678ff928272ff938273ff978475ff988475ff998677ff978576ff9a8778ffa39082ffa18f81ff9d8b7dffa59486ffa18f80ffa08e80ffa49183ffa99687ffa79485ff938374ff927f73ff9f8b7dff9e8c7dff9f8d7effdcb93cffab9677ffa79484ffa99987ffa89885ffa49482ffa59483ffa09080ff948374ff807163ff8c7c6cff9e907dffa89986ffa79885ffa89686ffa39382ffa59583ffa79a85ffaa9b88ffa49682ffa1917effa19380ffab9f88ffac9d87ffa99b84ffa1927eff9d8e7cffa0907eff9e8e7bff9f8f7cffa4917fffa08e7affa7947fffa4927bffa3917bff998a75ff9f8f7affa3927dffa3927effa4927eff9e8d7affa4927effa99782ffa5927bff9e8c79ff9b8a77ff90806eff91816eff9f8e79ffab9a85ffab9984ffad9c83ffa99882ffaf9e86ffb2a089ff9d8e7affa5927fff9d8976ffdbb838ff9c8877ff9d8a79ff998677ffa3907fffa49181ffa08d7effa08e7fffa79585ffa08d7fffa69385ffa99585ffaa9889ff9a8879ff958275ff9c887bff9c897bff9f8c7effa08b7cff9f8b7eff9a877aff958174ff7f6e61ff837266ff867668ff8f7c6fff8c7a6dff927f70ff927f70ff918071ff908070ff968373ff948171ff958273ff948273ff988575ff958373ff958373ff8f7d6eff8b7a6aff948373ff92806fff8d7b6bff857568ff8b796aff867568ff938374ff807265ff958676ff918372ff8a7b6bff8e7e6fff908071ff8f7f70ff8b7b6dff8f7e6eff8a7c6cff87796aff897b6bff867867ff897a6dff88796bff807162ff867666ff837566ff827464ff827365ff7e7163ff807264ff756759ff736658ff716557ff665c4fff706558ff6b6152ff675b4eff65594dff61574aff61584bff4b4339cd4c3d26a240321cff745a295d624517921e160a3f251907eb34291aff2c241bff1a150fff322611ff18130dff14100cff604820ff2e230fff57431dff543f17ff6e5938ff6e511bff5d4925ff2e2311ff100d09ff644d22ff181309ff4c3a16ff45371dff473617ff624f28ff292318ff54401cff29251eff735931ff5f4b22c13e311e5e533910643d2b103b6040145976561dff463f35ff5a5248ff564e43ff534b41ff595048ff554c44ff574e44ff4f473eff474038ff514a3fff4f473dff534a3fff544b40ff554d42ff62584dff5d5247ff62574cff645a4eff64594eff6b6052ff695d4fff655a4cff6c5e51ff6f6254ff6a5f52ff726558ff706457ff6f6356ff706457ff706558ff74685bff786a5eff7d6f61ff6d6255ff7e7261ff887a68ff897b6bff887b6dff8b7d70ff897c6eff897b6eff8a7b6fff87796cff8d8172ff908172ff8e8071ff8f8071ff8e8072ff958576ff988777ff928374ff938375ff978679ff99887bff988678ff958476ff978479ff928075ff776a5eff948375ff978677ff958372ff9b8979ff9a8879ff948272ff968476ff9d8c7effa49284ffa28f82ff908172ffa08c80ffa39183ffa99689ff9e8b7dff9b8a7cffa49383ff9f8d7fffa39282ffa69484ffa99588ffd1b34effdab93fff9f8b7fff8a7c6affae9d8cffad9c8affa99888ffa49382ffa39280ff918170ff867566ff847464ff8e7d6cff9c8b7affa49282ffa39382ffaa9a88ffa69685ff9c8c7bff9d8e7dff9e8e7dffa49583ff9e907dffa69683ffa2937effa1927fff9c8978ff9c8978ff9a8979ff9e8d7cffa3907fffa18f7dffa18f7dff9b8979ff9c8c7aff918271ff988674ff9a8b7bff978678ff9b8a79ffa49281ffa59380ffae9b88ffaa9684ffa69481ff958572ff907e6dff887867ff8f7e6dff918270ffa69583ffaf9e8bffad9b88ffb6a490ffaf9d87ffab9984ffb1a08aff91806eff9a8672ffd9b83cffb39a60ff998676ff9a8779ffa39183ffa89586ffa38f82ff988679ff9d8b7cffa39283ffa99787ffa49281ff998879ffa59383ffa08d7fffa18f80ffa49080ffaa9689ffa29081ff9a897aff9e8b7fff968276ff968277ff796a5fff807064ff867669ff806f63ff867467ff867567ff918071ff938374ff927f70ff948070ff907d6eff9a8573ff8d7b6cff8d7b6cff8a7a69ff8d7969ff8d7d6dff8e7d6cff8e7d6dff8d7d6dff8e7e6dff857566ff887767ff897769ff8c7c6dff807263ff8a7a68ff90816fff8c7c6eff8e7e6fff8e7f70ff8d7e6fff8a7c6cff887a6cff87796aff867869ff8a7d6cff88796aff887869ff827465ff847666ff817363ff827364ff7c6e60ff796c5eff7c7062ff7f7364ff736656ff75695aff74675aff6f6256ff6c6153ff675d4fff665a4cff655a4cff63594aff655b4fff594e43ff41382f59523b134a5a3d15652318094c211809ea372f25ff584423ff4b3d27ff1b1610ff74561fff1f180fff5f4a25ff5f4820ff372a13ff36280cff291f0bff2b2110ff100d0aff513f1bff362d1bff1f180bff130f0bff584622ff3b2e15ff554522ff3a2c13ff5c4827ff62481dff564221ff473a22ff604b20b03e2f184d7b5f2b7c3728123a674412ff413a34ff4c433dff4d453dff4c443eff4a433cff494139ff534a41ff3d362fff473f37ff484037ff463f36ff4b4339ff4a4339ff574c40ff574e43ff5b4f45ff594e44ff5a4f44ff605549ff5e5549ff65594cff65594cff62574cff665a4dff5f5346ff5e5246ff675a4eff64594cff726459ff6c6056ff76695fff807166ff817469ff7b6d61ff7e6f63ff7b6d61ff897b6dff8a7c6eff89786bff8a796cff857769ff847668ff85786bff8f8072ff8b7d70ff8c7c70ff8e7e72ff938276ff8d7e71ff958878ff908173ff908073ff8e8072ff938578ff968779ff9a877bff988779ff988679ff907d73ff968375ff907f72ff968475ff918072ff928174ff9b897bff8f7e70ff968475ff9e8a7bff9d897aff9e8b7dff9f8e7fff9a8778ffa28f81ff9e8b7eff8f7e71ff938274ff9c8979ff988576ff958276ffa18c80ff9b8778ffd7b63cffd4b447ff907d72ff817464ffaa9987ffaa9a88ffad9c89ffb3a18affa99783ff988775ff837464ff8a7b6aff988775ffa2927effa08f7dff9e8f7cff9d8e7cffa0907fff9f917fffa29381ffa69684ffa59684ffa39382ffa19180ffa49382ff9c8d7aff9d8d7bff9d8d7cff9b8c7aff9e8e7bffa2917cffa5947fffa2917eff9b8b78ff9f8f7cff9d8d7bff9e8d7bff9c8c78ffa29180ffa69685ffa69583ffa1937fffa79683ffa49280ff9e8e7bff938471ff988874ff9e8d79ff9b8c78ff958774ffa0927fffa79582ffad9c88ffb3a28effab9983ffaa9982ff9d8e7aff766859ff968475ffd9b539ffdab537ffa4907eff9b8776ff988674ffa18d7dffa08d7bffa18d7dffa39080ffa18d7dffa08c7dffa18d7fff938173ff968475ff9c8879ff958274ff958374ff9f8c7eff9a8576ff9a877affa49083ff89786cff8d7b70ff7d6e61ff7c6a5fff847063ff867265ff897568ff867365ff8a776aff877468ff8b796bff88766aff887568ff857364ff897869ff897767ff8c7969ff857464ff887668ff877464ff7e6d5eff817062ff827264ff8a796aff7d6c5fff87776aff907e70ff928174ff7f7064ff8b7a6bff8d7b6cff8d7d6dff907f6fff8f7e6fff8e7c6eff89786aff847466ff817264ff897869ff89796aff827365ff7c6d5eff7e7061ff807163ff7e7061ff7c7060ff776a5cff76695bff76695bff786b5dff74685aff706457ff6f6356ff6d6055ff695c51ff695d50ff64584bff62584bff61564aff63584bff5f5548ff463e355063451546271b084b443417e3352d23ff524329ff3b301eff5e481dff674e19ff684d22ff33260fff3d311aff332714ff3c2e17ff140f0bff5c4414ff19140eff100d09ff534225ff120e0aff110e0aff61502bff45371cff241f18ff2c2519ff2c2517ff2f271aff342b1dff362c19ff6d572cb6755b2748594114794330133f6b47116f4a3a1aff4a443bff443e36ff423c35ff463f38ff484138ff4f473eff4e473eff494238ff51493fff534b40ff544c41ff544b41ff5f5449ff61554aff5c5147ff5a4f45ff5b5147ff574e45ff574f45ff60574cff5f564bff63594eff5e5448ff63574bff60544aff62564bff665a4fff6c6055ff5a5048ff6e6257ff6d6155ff796d61ff75685dff73675aff796e60ff7d6f62ff75685cff7b6e60ff76695cff75685aff796e62ff85786cff7b6f64ff837669ff887b6fff87786cff86786bff827468ff847568ff847466ff86786bff877869ff88776cff958678ff8e7e71ff87786dff827267ff7a6c60ff8c7b6dff88776aff948374ff938374ff847365ff8b7b6cff867668ff8d7c6dff927f6fff978475ff978575ff948272ff978675ff968376ff8f7d70ff918072ff877669ff8f7e71ff8f7d70ff958577ff8a7c6effa08c5affc6a331ff847369ff837466ffa79785ffb1a28fffb1a28effb2a08bffa89782ffa89683ff928271ff887a6aff948473ff9f8e7cffa1907dffa49582ffa09280ffa49682ffa39482ffa59784ffa69784ffa69785ffa69684ffa79884ff9d8d7cffa39381ffa49482ffa1907eff9d8b7aff998877ff978776ffa59381ffa08f7cffa2917dffa1917dffa69480ffa89682ffa5937fffa79682ffa2917fffa59380ffa6947fff998976ff9a8b77ff9c8d79ffa1927eff958874ff938673ff9c8c79ff9f907dff988a77ff9c8e78ff9d8f7aff9f917cffa2937effa1917bffa99983ffab9984ff887a68ff8f7e70ffa99262ffd5b33cff867461ff907e6fff89786bff8f7d6eff95806fff9a8776ff998676ff91806fff968675ff948174ff928073ff918071ff8b7b6dff917f72ff8c7b6eff8b7c6fff7d7063ff7d7163ff74675cff7a6a60ff7f6e64ff7a6a5fff6e6055ff76685cff716157ff806e61ff7b6b60ff78685eff817065ff7d6d60ff817065ff7b6b60ff78685cff736559ff7b6b60ff716457ff786a5cff726558ff7e6d61ff6f6356ff746459ff6f6256ff6d6054ff7b6d61ff75695bff63594fff73655aff736558ff78695dff75685cff716358ff76695dff786b5eff77695dff796b5eff716458ff6c5f53ff706458ff7e6f62ff73665aff706357ff74685cff77695cff726557ff6d6154ff675b4fff6c5f51ff63574aff64594cff665b4eff6d6155ff655b4eff60564bff564d43ff4b423aff5b5145ff61574bff5e5347ff62594bff443b2f58513c15526649166a261b094639270de45d4519ff574523ff46381aff5a4822ff2c261eff433216ff17120dff17120cff5a4522ff3f321dff130f0cff20190dff634f25ff271f12ff634d25ff120e0aff17130fff3c2f14ff322c24ff2b241bff483515ff2f2921ff32291eff5d4b2bff47371ccf3026144f4331103a3224094a2b200a58433310ca352b1dff564d47ff443d35ff39332dff463f36ff514940ff4f473dff50483eff5a5146ff594f44ff5a5044ff5c5247ff5e5348ff5f5448ff61554aff61564aff6a5e52ff675c50ff64594eff675b51ff62594eff655a4fff675a4fff675b50ff6e6255ff685d50ff6b5e52ff6e6155ff6b5d52ff716358ff675a50ff7c6e63ff7a6c61ff7d6e63ff786a5fff7d6f62ff766c5fff8a7c6eff847569ff837467ff8a7c6eff8b7d70ff8c7d70ff88796cff8c7e6fff8e7e70ff897a6cff8b7b6eff8b7b6dff8f7e70ff8a7c6fff918172ff918173ff928375ff908174ff8f7f74ff918375ff796d62ff8d7d70ff87776aff89776cff837166ff857368ff8a786bff817163ff877668ff8c7b6cff968473ff9b8778ff9b8878ff968475ff938172ff8f7c6dff887768ff807164ff857567ff8a786aff887668ff978479ff907c6fffd6b33cffd6b840ff8f7d71ff8b7e6affb4a290ffb8a893ffb2a18dffb1a28dffab9b88ffa69683ff988876ff9b8b7affa29280ffa99986ffa89987ffa99b89ffa29481ffa0917effa29482ffa79884ffa09280ffa29381ffa3937fffa08f7dff9f8f7dffa2917fffa89985ffa39382ffa29281ff9b8d79ffa08f7dffa49481ffa39480ffa69781ffa5967fffaa9984ffa49581ffa59681ffa1907dffa79682ffa69581ffa2917dff9e907bff938574ff958775ff9d8f7aff9c8d79ff938471ff938371ff91826fff928371ff978975ff9f907dffa1927eff9d8f7affa79882ffa69580ffa79581ff9a8976ff847666ff8c796dffcca530ffcca836ff8c7968ff857465ff897665ff8d7a69ff988571ff9d8976ff9b8874ff998674ff958373ff8e7b6dff897768ff806f63ff827164ff837263ff897668ff907f72ff8f7b6eff928071ff938173ff8a796dff6f6259ff736559ff7b6b5fff7c6c61ff887668ff927d6dff8c796aff867567ff877467ff887568ff907b6cff907c6fff8d796aff887668ff887769ff8a786aff907d70ff837164ff877568ff827164ff827264ff837264ff7c6c5fff827062ff837263ff7f6f62ff847365ff7b6a5cff8d7a6cff867467ff847466ff827164ff837365ff7e6e61ff887769ff837467ff7b6d5fff7a6b5eff85786aff847567ff847667ff7e7060ff7e7061ff7b6d5fff796b5cff76685bff796c5cff706355ff74675aff736659ff74675aff716458ff716559ff695e52ff5a5045ff62564bff5f5549ff594f44ff574d433a37280c5737280c3c211706342e21085a694a19ff241e16ff503f1fff56431dff342e25ff383127ff755e31ff1d1812ff14100bff685020ff14100bff21190dff271e10ff1f180eff5f4822ff5b4518ff624d27ff1b150eff42351eff392d17ff5b4826ff1c1712ff3c3220ff29201032583c11ff2a231bff3a342cff3a342cff40392fff4a4239ff50483fff3d362fff3c362fff413c34ff4f483fff4e473dff554c40ff564e42ff584f44ff595044ff5f554aff5e5349ff5e5449ff5f5549ff60564aff61564bff64584cff665a4eff685d51ff655b4eff675c50ff685c51ff665c50ff655a4eff685d51ff695c50ff6b5e53ff685d51ff6b6154ff6e6256ff74665aff786a5dff7a6b5fff776a5dff76685bff7a6c5fff7b6d60ff7c6e60ff897c6cff857769ff847769ff897c6eff7e7163ff7e6f61ff87786aff88796cff8b7b6eff88776aff8e8071ff8d7e70ff8d7d6fff8d7e71ff938376ff8d7e71ff928276ff8c7c70ff776b60ff88796cff837467ff827165ff827164ff89786aff8b786aff8a796bff8b7969ff8a7869ff8b796aff897769ff8d7b6dff8b7b6cff8c7b6dff8e7a6aff917f6eff8b796aff8a786aff908072ff978473ff948475ff8b786aff897769ffd4b138ffa89370ff77685fff928271ffa69787ffad9e8dffafa18cffa99a87ffab9c8affa29384ffa29382ffa0907fffa0917fffa79886ffa79785ffa49583ffa39583ffa29381ffa39582ffa79885ffa29380ffa0907effa0917dff9c8c78ff9e8e7cff9f8e7cffa69582ffa69581ffa08f7dff9c8c78ff9e8f7cff9c8c7aff9f927effa0927cffa2937dffa0917dff9f8f7cffa0917dff9d8d7bffa2927effa4927effa08f7bff9c8d79ff918470ff948672ff9e8e7cffa4947fff9d8c78ff9b8a77ff958572ff9c8c78ff9c8d79ff9d8d79ffa79881ff9d8e7bffa5937fffa89a85ffa59480ff9d8c78ff7f705fff897768ffc6a237ffceaa32ff8e7b6bff8e7b6bff8d7a6aff8d796aff8d7869ff897566ff8c7869ff907c6dff8e7b6cff8e7969ff907c6bff8a7767ff8b7869ff8d7b6cff95816eff91806fff877465ff847263ff917e70ff988478ff72635aff72625aff76655dff8d7a6eff8d7a6bff8b7869ff8c7869ff8c786cff8d7a6dff8f7c6fff8f7c6fff8e7a6dff8c796aff877667ff897768ff867465ff877465ff8b796aff867464ff857365ff857365ff817164ff807062ff7d6c60ff827264ff827264ff796a5cff837264ff806f60ff827163ff837264ff887769ff88786aff7c6d5fff7b6c5eff807162ff7d6d5fff857565ff827365ff827265ff857668ff77695cff746558ff7a6b5dff7b6d5eff796a5cff746658ff786a5cff75685aff736557ff716357ff75685bff6e6255ff6f6457ff6c6155ff554d42ff675b4dff5b5046ff554c41ff564c41ff52493eff4b4338ff494034ff342c2277604518d01f1810ff423213ff201a13ff211c15ff594421ff51401dff32291bff261e10ff685127ff6e5118ff44351cff654e22ff20180bff53411eff453413ff503d17ff3b2e1aff47391dff5e4b27ff262018ff5e4719355d4211ff332c24ff403a31ff453f36ff474037ff4a423aff484038ff423b32ff433d34ff3f3830ff4f483eff4f473dff51483dff564d42ff564e42ff585045ff5b5246ff5d5247ff615649ff5a5045ff5d5247ff5e5348ff62574aff65594dff675b50ff665a50ff675c50ff6b5f53ff6a5e52ff64584dff675c50ff685d52ff6f6458ff6e6156ff74675bff6f6156ff6d6156ff7b6d5fff74665aff736559ff746559ff75685bff77695cff7e7163ff827365ff867768ff867668ff807164ff87786aff7a6d60ff897b6dff857669ff8b7b6dff8b7a6cff8b7b6dff8c7c6fff8a7a6cff8b7b6eff948377ff938377ff958679ff86766bff837468ff87776cff8a7a6eff807064ff877669ff8a786aff8d7a6cff8e7b6cff8e7b6cff89786aff887667ff877668ff877669ff8e7a6bff8d7b6cff907d6eff8f7c6cff8f7c6cff8e7c6cff907d6dff907f71ff897769ff928173ff9a8778ff998462ffd3b139ff938174ff9a8979ffa79886ffa69786ffaa9c8cffa79887ffa69685ff9e907fffa29484ffab9d8cffa89884ffa69784ffa99b88ffa39583ffa59785ffa39683ffa79985ffa89782ffa39480ffa39380ff9c8d7affa1907dff9c8c79ff9d8d7cff9c8c7bffa49583ffa49582ffa79683ff9f907dffa1917eff998977ff968574ff9b8c79ff9e8e7cff978877ffa39280ffa2917eff9d8c7bff9e8d7aff9a8a78ff9a8a77ffa2927dff9c8b77ff9d8c79ff9d8d7affa3927fffa18f7bff9f8e7aff9e8c79ff9f8e7bffa2907dffa89783ffa69582ffaa9a86ffaa9884ffa79681ffa99884ffa89682ff8f7f6dff887468ff9b8359ffcca734ff8d7a6bff8e7b6cff8e7b6cff897668ff8a7667ff887466ff867263ff8c7767ff8c7869ff8c796aff8c7968ff8e7a6aff8a7767ff8a7766ff8d7b69ff857060ff917d6dff917d6dff847367ff8f7b70ff8c786cff7e6b5fff7a695fff847166ff88776bff88776aff8a7869ff8f7c6cff8c796bff8d7c6dff89796bff887667ff8a786aff857265ff877365ff847264ff837162ff887566ff877568ff8a786aff857466ff887567ff857466ff7c6d60ff817364ff7d6e61ff807264ff7e6f61ff806f62ff78685cff837364ff877667ff7e6f60ff7b6a5eff7a695dff7a6b5dff7a6b5cff7f7062ff827364ff7c6d5fff837465ff7c6e60ff7d6e60ff776759ff7b6d5eff756758ff77685aff746558ff756759ff716456ff706253ff6f6254ff716558ff6e6356ff6b6054ff60544aff564c42ff60554aff5b5146ff564c42ff52473dff564d42ff51483eff4c4337ff3f372dd43a2d1b89574019ff795e26ff231d16ff4d3c1fff47361bff48381aff624a17ff4c3711ff3f2f10ff382b12ff3c2f19ff28231dff3d2f10ff221e18ff554220ff42371fff4c3f23ff624b1e5c73582ce0352c1cff3d372eff473f35ff484138ff474038ff484138ff413b32ff494239ff443d36ff443e36ff4c453bff50483dff4e463aff564d40ff574e42ff595144ff584e43ff5a4f45ff5c5146ff615549ff60554aff62564bff62564bff63584dff63584dff64594eff65594dff675b4fff665a4fff5d5348ff675c51ff63584dff716559ff685d51ff6b6054ff736559ff5f5449ff6e6155ff736559ff74675aff706357ff6e6356ff716558ff76685aff7b6e60ff7e7062ff817264ff8b7c6dff88796bff8b7b6dff817165ff84766aff8e7d71ff857569ff817367ff8f7e70ff847568ff918174ff908073ff97877aff968579ff97867aff907e70ff6a6059ff87786eff827063ff827062ff8e7a6aff917f70ff927f70ff907d6eff887769ff8a7869ff8a7869ff8b7969ff8c7869ff8c796aff8e7c6eff8d7a6cff897668ff8d7a6bff897769ff8b786aff8f7d70ff928072ff948272ff938275ffd1b139ffd3b139ff837466ff7b6c5bffaa9b86ffa79784ffa89884ffa89987ffa49583ffa49685ffa69887ffa69683ffa59583ffa1927fffa29382ff9c8f7cff9e9180ffa89987ffac9c89ffa4937effa18f7affa08f7affa5937fffa99883ff9f907cff9b8b7affa99a86ffa39380ffa69783ff9f917dff9c8c79ffa0907eff9b8c7aff958674ff998a77ffa69582ff9b8b79ffa1917fff9d8b79ff9d8c7aff9e8e7aff9a8a77ff9e8d7aff968673ff9f8f7dff958473ff9b8a77ffa3917eff9c8b78ffa2917cff998773ffa1907eff9d8d7affa1917dffa39480ff9e8f7cffa99985ffa99883ffaa9883ffa7967eff978672ff857362ff887566ffccaa35ffc1a342ff927e6eff917e6dff887667ff8b7666ff887465ff8d7767ff8c7666ff897567ff8a7667ff897566ff867261ff8c7765ff857262ff897464ff8a7768ff8f7c6cff917c6cff8e7b6dff8c786cff8e7a6eff7b6b5cff806d60ff7f6f62ff76675dff877568ff8a776aff8a7767ff8e7a6bff8c796bff867567ff847264ff847265ff8a7767ff8c7869ff8a7768ff887668ff867365ff8a786aff847365ff887668ff867365ff877566ff837063ff736458ff7e6e62ff817063ff847366ff827164ff857366ff8b7769ff7b6b5fff7a6a5dff807063ff7b6b5eff79695cff76675aff766759ff79695bff78695bff7d6e60ff7d6d5fff7f7163ff7e7062ff75685bff78695dff77695dff7a6a5dff736456ff726456ff756757ff6a5d50ff6e6155ff716458ff72665aff716458ff6c6055ff61564aff5b5147ff5a5046ff584e43ff564b40ff584d41ff544a3eff534b3fff4e473cff322c24486c4d13ff695024ff554320ff2f271aff31291aff43361eff272019ff675020ff18130dff1a140cff54411eff26211aff211d17ff564320ff614e27ff2620184a6d5116ff302921ff403931ff443c33ff484138ff473f37ff463f37ff473f37ff49423aff3c3730ff3e3830ff4d453cff524940ff564c41ff564c41ff534b40ff534b40ff534a40ff564c42ff5d5349ff5c5248ff5a5046ff5e5249ff605549ff665a50ff5e5248ff5e5348ff60554aff61564aff615549ff51473eff534b41ff655a4fff6e6257ff6a5d52ff6a5d53ff706157ff62564bff6f6256ff6a5d52ff786a5dff746659ff6b5e53ff746758ff817263ff7f7163ff7e7164ff807264ff756659ff76695cff7d7163ff807265ff7f7264ff89796cff8a796cff877669ff88796bff8a796cff867669ff907f72ff948276ff8d7b6eff85766dff907f74ff786a5fff88796cff8c796bff8a7667ff8f7b6aff8e7969ff8f7d6dff8f7c6dff897868ff867465ff847365ff847264ff857366ff8c7a68ff927e6eff8d7a6aff8d7a6bff8c796aff8b7869ff8d7a6bff8c7969ff917f70ff8a7769ff907d6fff998779ffd3b039ffac9258ff8d7a6fff8c7a68ffad9b86ffa69580ffa69783ffa39582ffa79885ffa1937fff998b7affa0927fffa99987ffa49583ffa99b88ffa69783ffa89885ffa89885ffa99884ffa5947fffa79784ffa99985ffa49580ffa49480ffa1927eff9c8c7affa99985ffa4937fff958975ff9a8a78ff978877ff998a79ffa0917fff958674ff968774ff9a8b77ff9c8c78ff9e8f7bff9b8a78ff9c8b78ffa08f7cff9e8d7aff9e8e7bff978876ff9b8b79ff928370ff9c8a78ff9d8c79ffa1917dffa28f7bff9c8a77ff9a8875ffa0907bff9f907cff9f8f7cff9d8d7aff9f8f7bff9b8c78ffa2927effa79681ffb19e87ff7e6e5dff907b6affc9a63affcda935ff8f7d6eff8e7c6cff887665ff7f6c5eff847163ff826e61ff877365ff8b7766ff8b7666ff897565ff887465ff877464ff847162ff887464ff867262ff8d7a6aff877364ff897665ff8f7d6eff8b786bff877468ff887466ff897668ff77685dff806f62ff887567ff8a7768ff8a7567ff8b7667ff817062ff7f6e60ff847365ff837064ff897668ff857465ff867366ff847165ff897667ff7f6e62ff847163ff806e60ff837064ff7a695cff79695cff68594eff7c6b5fff7c6b5eff7d6c60ff7e6d60ff7f6c5fff7a6a5dff736458ff78695cff7a6a5cff7b6d5fff76685aff716255ff7b6b5cff7d6d5eff796a5eff7c6d60ff77685bff706154ff6a5c50ff746659ff6d6053ff716357ff746659ff756659ff6b5d50ff706356ff695c4fff6e6155ff6d6154ff706357ff655a4eff64584eff60554bff453e36ff5d5348ff574c41ff54493eff5a4f42ff574d42ff544c41ff524a3fff3a342aca44361dad302615ff322818ff574420ff453820ff312a21ff362a15ff5f4d2eff191510ff50401fff1e1914ff1f1b16ff604b1df12f271c7f61491bff383129ff473f36ff453d34ff463d35ff494138ff4b443aff484038ff49423aff3c3730ff3c372eff433c33ff484137ff574e44ff574d42ff544c40ff534a3eff564d43ff4f473eff584f44ff564d42ff5b5147ff62574dff5f5448ff62564aff64584dff665a50ff665b50ff60564aff645a4eff5c5247ff60554aff655a4fff6d6257ff6a5e54ff695d52ff6a5d53ff685b51ff6e6256ff736558ff716457ff6e6154ff65594fff6f6256ff76695dff786a5eff7a6b5eff7b6d61ff7d6e60ff887869ff847567ff807365ff8a7c6eff8b7c6eff86786aff897b6dff918273ff87776bff8a796cff8f7f72ff938174ff8f7e71ff998778ff937f73ff968376ff807166ff917f72ff8d796aff8e7a6bff8c796aff8b796aff938070ff917e6fff867363ff867363ff857162ff897565ff857263ff877366ff8f7a69ff8b7868ff8e7a6bff8b7668ff8e7a6bff927e6eff948172ff978374ff9e897aff8e7b6cffc9a63bffd3b03bff958275ff917f6fffa6957effa59480ffa79682ffa79781ffa1917cff9f8f7bffa49380ff9e8f7cffa19381ffa1917effa59783ffa69984ffa89a85ff9f927fffa49483ffae9f8affa39580ffa89985ffa79884ffa39480ffa59680ffa49481ffa0907cffa1917eff9d8d79ff9b8b77ff918270ff90816fff958573ff968874ff948472ff9b8b78ff9b8c79ff9c8c78ff988a76ff91826fff988977ff958573ff978876ff968674ff948372ff938371ff958672ff968673ffa6957fff9f8e7bffa08f7bffa5947fffa1927eff9c8e7bffa1917eff9d8e7bffa0917dffa1917bff9e8e7aff9f8f7bff9f8f7cff988872ff897a66ff8d7a6aff927e6dffd2ac36ff9f8661ff958172ff8f7b6cff877364ff837061ff867364ff867263ff836f61ff867264ff8a7666ff877466ff8a7768ff867264ff867264ff8e7a6aff8f7a6aff917d6dff8d796aff8a7565ff8b786bff8e7a6dff847366ff8d786bff7e6d62ff76655aff7a685bff806d60ff877466ff8f7b6bff877465ff877364ff837061ff7c6a5dff7c6b5eff867365ff827163ff897668ff897568ff857363ff887668ff847265ff867467ff7f6e62ff7e6d5fff7b6a5eff766659ff78695bff7e6e62ff807163ff7e6e61ff7a6a5dff78685cff726357ff796a5cff7a6b5dff7b6b5eff6f6154ff6b5c51ff756659ff7a6b5eff77685aff736557ff746558ff6c5d51ff7a6b5dff736558ff76685bff75685bff76685bff6c6053ff716457ff716355ff6d5f53ff6c5f53ff706356ff6c6054ff6d6155ff6f6558ff675d50ff60564bff584f46ff5d5248ff554b40ff564b3eff564b3fff544b3fff574e41ff463d32ff322a224a59400fff2f281eff5d4a28ff2d271eff342b1eff403216ff644c24ff534220ff221d15ff5a482594554219da3f3321ff3b352cff423b32ff484138ff4a4239ff484038ff474037ff494138ff484038ff3a342dff463e37ff4c443aff524a3fff4f463bff51473eff51483eff524940ff595046ff5d5349ff5b5147ff4f463dff544a41ff60554aff62564aff655a4eff61574cff685c50ff675c51ff665a4fff695e52ff62574bff64584eff6a5e53ff72675aff695d53ff685a51ff6e6156ff5e544aff6c6155ff716458ff74675aff6f6155ff706358ff6f6357ff73665cff76685cff77685bff796a5dff807163ff807163ff85776aff8b7b6eff8c7a6eff8d7c70ff867769ff806f63ff89796cff88786aff8c7b6eff8d7c70ff928174ff8e7d71ff8a7b6eff908073ff807065ff625850ff86766aff8b7a6bff897768ff8f7a6cff897869ff8e7a6dff927e6eff927e6eff8a7768ff897566ff847160ff8d7967ff897768ff827062ff8a7768ff877467ff8d7869ff917d6fff907d70ff958171ff9c8879ff927f70ff978374ff9e897cffd4b13effcdac47ff927f71ff786958ffa29380ffa39280ffa69783ffa5937fffa69683ffa49481ffa2927fffa69683ffa39380ff9d8e7affa2927fffa29281ffa69683ffa99885ffa79683ffa2927fffa79783ffa1927fffa69680ffab9b85ffa59581ff9e8f7bffa08f7cff998977ff9b8c79ff978875ff978675ff978775ff958674ff978875ff918170ff928472ffa18f7cff988875ff978775ff958573ff9a8a77ff918371ff918271ff998a76ff9d8c7aff9b8b79ff9c8b78ff9a8a77ff998a79ff9a8b78ff9d8d7aff9f8d7bffa08f7dffa1937effa0907bffa0927dff9f907dffa0917effa0917dffa0917dff998774ff938370ff938370ff928270ff8b7968ffc5a535ffbd9c3bff988374ff958170ff917d6dff867262ff847263ff826f5fff877261ff826e5fff7b685aff857061ff847061ff897464ff8b7666ff8c7869ff8c7869ff958071ff8c786aff8f7a6bff8d786aff8d7869ff927d6eff857164ff897668ff75665aff7a685dff7b695eff7c6a5eff857263ff857263ff867264ff837062ff877568ff877567ff867366ff827063ff706056ff7d6c5fff867366ff887566ff847264ff7c6b5fff867467ff867467ff827063ff7d6d60ff766559ff78685bff7d6d60ff807164ff7a6b5eff6e5f54ff6e5f54ff726357ff7b6c5fff796b5dff7a6a5dff716356ff716256ff716356ff6e6055ff756659ff746558ff746557ff78695aff796a5dff7d6e62ff7a6c5fff776a5eff76685cff6f6255ff73665aff6f6357ff6f6256ff6f6256ff706257ff6e6156ff675c50ff665b4fff564d42ff544b41ff584e45ff5b5046ff5a4e42ff564b3fff564a3fff52483dff574d41ff4d4438ff383026447e5d14bf42310fff342b1fff3b2d19ff362b19ff423317ff5a4824fe69502252694f1aff373029ff413a32ff443d34ff413b32ff463e36ff423b33ff433c34ff403a32ff3a362eff3e372fff4e453cff52493fff4c443aff473f35ff4f473cff52493eff564b40ff574d44ff594f45ff5c5348ff61574cff60564bff5f544aff5c5248ff60564bff63574bff695c51ff685b51ff5b5147ff655a4fff655b4fff5c5349ff63584dff6d5f55ff5d5048ff574e45ff5f554aff5a5148ff695c52ff6f6256ff716256ff6f6053ff706356ff6f6357ff786b5fff75685cff7d7064ff796c5fff807466ff7e7265ff837569ff837568ff897a6dff8a7a6eff8c7c6fff837366ff827467ff8e7d71ff907e71ff938173ff938174ff938274ff907f72ff8f7e70ff8e7d70ff7b6b61ff7d6c63ff907e70ff8d7b6dff897465ff8b7768ff927f72ff8b796bff968375ff917f71ff938273ff8c796aff8e7a6aff928272ff8b7869ff897668ff927d6fff937f6fff8b7869ff937f6fff968274ff9e8a7cff9c897cff8e7c6fff948275ff938174ffd0ae38ff8a786aff907d6fff9b8b7affaa9a88ffa59684ffa59583ffa29382ffa29382ffa49482ffa99987ffab9c8affa2927fffa1907dffa69482ffa99885ffa29380ffa79683ffaa9984ffaa9783ffa3917dffa79580ffa3927dffa49580ffa59581ff9d8e7cffa39480ffa99885ff9f8f7dff968776ff958673ff938472ff968776ff968675ff928475ff9d8c7aff9f8f7bff988976ff948472ff9a8a78ffa08e7cff958673ff978774ff988873ff9b8a76ff9c8b78ff968774ff9a8b77ffa08f7cff9e8e7bffa1907dffa2917eff9a8b77ff9a8976ff9f8e78ff9f907aff9e907dffa0907dffa39580ffa1937fff9c8c79ff978674ff998876ff897b69ff8f7a6bffc5a031ffc7a334ff8b7767ff8f796aff988373ff9a8474ff937f6fff8a7565ff8c7767ff8b7a6aff887464ff847163ff897466ff887565ff857061ff897565ff8d796aff948071ff867466ff877366ff8b786aff837063ff877366ff7b6a5cff827063ff7d6c5fff716257ff7b695cff877567ff827062ff7c6a5dff7a675cff8a7666ff8d796aff8b7769ff887568ff887568ff887668ff847265ff827063ff78675bff827163ff817062ff847265ff877467ff816f63ff816f63ff736458ff7d6d60ff7c6b5fff7f6e62ff7f6d62ff6b5d53ff726257ff6a5b51ff6d5f55ff78695cff77685bff78675aff756659ff756557ff766759ff746558ff77685aff77685bff756759ff786a5dff706357ff726559ff776a5dff7a6b5fff74655aff706256ff62544aff716459ff6d6055ff75675cff6e6256ff706458ff685e51ff665b4fff675c51ff554b42ff4c443dff574d43ff5b5045ff594e43ff52463bff53483dff52483cff554a3dff42392fff322b23525f461fff6c4f1cff5d4723ff453418cc3a2d1ab34f3f1fff3e3730ff463f37ff49413aff453e36ff443e35ff3f3831ff403931ff494139ff38322cff423c33ff494239ff50473eff514940ff4f463cff534a40ff574d43ff584f43ff564c42ff5a4f45ff5c5148ff5b5247ff61574cff5d5348ff5f554aff62584dff62574cff63584eff64594eff5e5449ff61564bff60544aff5c5248ff62584dff695d52ff62584dff6a5e51ff6a5e53ff595046ff63574bff6c5e54ff706357ff73665aff74675aff746659ff77695cff75685bff75675bff716358ff786b5fff796a5eff807265ff7b6d62ff7a6d61ff7d6f63ff8c7c71ff837469ff8a7b6eff8b7a6eff89796cff8f7f73ff8e7e71ff8f7e73ff8e7e70ff87786cff837468ff77675fff847568ff837367ff8c7b6dff968274ff937f6fff8c7868ff8f7b6cff927f70ff8f7c6dff8d7a6cff897769ff8a7769ff867466ff948173ff8e7d6eff8a776aff877667ff8c796aff8d796bff8d7a6cff988577ff9d8a7cffa18d7fff9c897aff9a8678ffd0ad38ffd1ad39ff847265ff9c8a78ffa49481ffa69683ff9f917effa29382ffa19180ffa39585ffa69888ff9d8e7dffa29482ffa09281ffa0917effa0907effa19380ffa39480ffa49481ffa49280ffa59481ffa49381ffa59481ffa4927effa2907dffa59481ffa69684ffa99885ffa39380ff9d8d7cff918273ff948675ff948574ff988978ff988878ff998b7aff978976ff9a8a77ff948572ff988976ff968876ff998977ff938471ff968674ff998875ff9a8a77ff9f8e7aff9a8975ff9b8a76ff9b8d79ff988876ff9b8c78ffa08f7cffa2927effa4947eff9c8c78ff9c8b78ff958572ff958571ff958572ff988876ff948573ff988876ff948573ff877867ff8d7b6dff9a8569ffc6a335ff98805dff917b6bff907c6cff8e796aff937e6eff8f7b6cff8b7768ff8f7b6cff8e7a6bff887566ff887464ff847161ff857161ff887465ff867264ff8d7a6bff968273ff927e6fff8c796bff867366ff837064ff7f6c5fff79675aff867366ff736358ff6f5f55ff7d6d62ff89776aff857367ff867466ff816f62ff857366ff857466ff877568ff88776aff857366ff877467ff887568ff887568ff897669ff877568ff877668ff857466ff847266ff817063ff79685cff7a6a5eff78685eff736459ff7d6d60ff716357ff706156ff6d6054ff5f5349ff6d5e52ff76675aff77675aff7b6b5eff77685aff766759ff7a6a5bff76675aff716457ff736559ff706256ff73655aff726458ff706357ff6d6053ff706257ff74665bff73655aff6f6256ff6d5f52ff6e6155ff726458ff6d6154ff6d6053ff6f6357ff62584eff61574cff564c43ff4a413aff5a5045ff5d5247ff5d5348ff594d43ff544a3fff564b3eff544a3eff494035ff362e25644d3a14ff2d261fff513c18ff332c25ff3e3730ff423b33ff484037ff484036ff443d35ff413931ff473f37ff494139ff3c362fff464037ff494238ff4b443bff4f473eff4f463dff51483eff554c41ff564e43ff584e44ff584e42ff5b5146ff5a5046ff5c5349ff5b5246ff5b5147ff60564aff60554bff5f5449ff5e5349ff61564cff5f564bff5a5146ff564e45ff5c5248ff5e544aff64594eff655a4fff5f5349ff63584dff655a4eff65594eff6b5e53ff675b50ff6c6054ff675a51ff665a4fff77695cff7d6e61ff786a5eff76695cff7a6b5eff7d6d61ff78695dff7c6e62ff817267ff88796dff897a6dff85776bff857568ff89796cff8f7e72ff8d7d70ff918176ff8a796eff807165ff786b61ff74675dff6c6057ff87766bff837266ff8c7b6fff8e7d71ff917f70ff8b7768ff907c6eff917e6fff917d6eff907d6eff8a786aff8c7a6aff907e6fff8d7b6cff978475ff927f72ff8c7a6bff8e7b6cff917d6fff968475ff9b897aff978577ff937f73ff9d887bff9e8a7cffd3b13effcfaa38ff907d6fff8b7b69ff9d8d7bffa59481ffa89784ffaa9987ffa89885ffa69684ffa19280ff9e8e7dffa39482ffa59684ffa49582ffa69683ffa19280ffa09280ffa69686ffa89683ffa69683ffa49380ffa3927dffa79580ffa89682ffa2917effa69683ffa69582ff9e907eff9d8e7bff978877ff918474ff978979ff9c8d7bff9a8c79ff978876ff988a77ff968875ff948673ff958674ff9b8c79ff9c8d7aff948472ff968774ff9b8b7aff998977ff9c8a77ff9a8873ff968873ff998a76ff988976ffa08e7aff9e8c79ff9f8f7bff9f8f7bff9b8b77ff9b8b77ff988875ff978775ff998a77ff948473ff938372ff8f7f6eff897b69ff7f7161ff8a7a69ff928072ffc6a639ffc6a437ff8f7869ff907c6bff8e7969ff8a7667ff8b7868ff837163ff857364ff917f70ff938071ff917d6dff887667ff877364ff847062ff867264ff8b7969ff8f7b6dff907c6dff877366ff8e7a6cff917c6eff867365ff7b695cff837163ff857365ff6f6156ff7b6a5eff806e63ff816f64ff867568ff7f6e63ff827165ff89776aff817064ff837164ff7f6e61ff857364ff867264ff857365ff827063ff806f61ff817062ff806f61ff7a685cff7e6d60ff7d6c5fff7b6a5fff726257ff76655aff6d5e53ff726256ff766559ff75665aff7b6a5eff65594fff685b4fff726357ff746458ff736458ff736559ff6f6155ff6c5e53ff726356ff736558ff6f6255ff6f6255ff716456ff6d6052ff6e6154ff6e6155ff6f6256ff73655aff726459ff6d6054ff6e6154ff6b5e50ff716456ff716457ff6d6154ff6b5f56ff5e5349ff5c5248ff51493fff484139ff5b5147ff564c42ff5a5045ff584e44ff574d42ff53493eff554a40ff50463bff373026885a421bdd32291dff413b32ff3f3730ff3d362fff3f3931ff443e35ff433b33ff443d35ff443e35ff36302aff433c33ff3f372fff453e35ff4d453aff4b433aff544b42ff544b40ff544b3fff584f43ff585043ff5f5549ff595045ff5d5348ff5d5448ff5e5549ff5b5245ff61574bff5f5449ff63584cff62584dff5f554bff595046ff5b5146ff544b42ff61574cff63584dff574e45ff645a4fff64574eff60554bff64574dff675b4fff675b50ff6a5e54ff594f47ff64584dff716357ff74675bff75685bff796b5eff796c60ff796b5fff7b6c60ff7a6d60ff79695cff807063ff857568ff857567ff88786bff847568ff8a7b6eff8a7a6eff867669ff89786bff7f7064ff87776bff75695eff6d5f55ff84766aff827266ff867668ff86766aff8d7c6fff907d6fff8b786bff8d7a6dff968275ff948174ff948072ff8f7c6dff8c7a6bff8f7b6cff917d6fff978475ff927f70ff978475ff968373ff968374ff998677ff9b8779ff9b8879ff958275ff907d70ffa48c61ffceab39ff9c8872ff937f72ff8f806eff9d8e7cffa89783ffa49482ffaa9a87ffae9d89ffa99883ff9f917cffa49481ffa29380ffa09281ffa1927fffa49482ffa1927fff9e907dffa1917fffa79884ffa89985ffa08f7cff9f8f7bffa2917cffa18e7affa89782ff9e8e7bff9f8f7cffa08f7aff9c8b77ff9d8c79ff988976ff988a77ff978676ff9a8a78ff988877ff978876ff9b8d7aff9a8b78ff9c8d7aff9e8f7bffa08f7cff9f8f7eff9a8c79ff9b8c79ff988a76ff978774ff9a8974ff978673ff9c8c79ff958673ff9f907cff968572ff9e8e7bff998976ff978571ff998974ff9c8b79ff968574ff938473ff958674ff948474ff928271ff8e7e6dff897b69ff7e6f5fff8c7a6cffaa9050ffc3a238ff8d7869ff8b7666ff8d7869ff8f7b6cff927e6fff8b7767ff8e796aff867262ff8a7768ff8c786aff907d6eff948070ff8c796aff897667ff8f7b6cff8d796aff8d796bff8d796aff847163ff837063ff7f6c60ff827062ff806e62ff806d5fff7e6c5eff6d5e54ff76665cff746358ff736256ff7e6d60ff7d6b5eff7f6e61ff837164ff827063ff867468ff847265ff887465ff857163ff847266ff867466ff816f61ff7e6c5eff826f62ff806e62ff837164ff827164ff7d6c60ff76675bff706257ff64574eff726357ff746659ff6b5c51ff79695cff5a4f45ff6e6054ff6d5e52ff6c5c51ff695c50ff685b50ff5e5148ff64564dff6f6155ff706255ff726456ff6c6053ff6d6053ff716455ff6d6053ff6b5d52ff695c51ff6d5f54ff706356ff706356ff726557ff6c6051ff706455ff6f6356ff6b5f54ff685c52ff5f5349ff5c5247ff4f483eff484038ff584e45ff554b42ff50463dff564b42ff564b42ff564c41ff51473cff4f463aff3f372ef33a3227ff3c352dff403931ff423b33ff433c34ff403931ff443c34ff38322cff39322bff433b33ff463f35ff4b4339ff50483dff4f453bff50473cff50463cff52493eff574e42ff574e42ff5c5246ff5b5145ff594e43ff5b5146ff5c5246ff5e5448ff5f5549ff5a5145ff5a5045ff5d5248ff5c5348ff5f544aff60564bff61584cff5d5347ff61574bff564c41ff5a5147ff584d44ff574c42ff5b4f44ff5d5147ff5f5349ff6a5d51ff6a5d51ff6d5f53ff706457ff74675bff726559ff75685bff75685cff73665aff75685cff7a6d60ff7d6f63ff7a6c5fff7a6b5dff7c6c5fff7d6e61ff827366ff86766aff8b7b6fff88786bff837265ff817062ff7c6c61ff78695fff7d6c61ff7f6f63ff77675bff7b6b5fff877668ff8a786bff897667ff927f6eff8d7b6dff8b796bff8d7a6cff8c7a6cff8d7c6dff8e7c6eff8b7868ff897769ff927e70ff917d6fff8c786aff8e7b6cff937e70ff937f71ff978575ff988374ff9a8677ff968173ff947f72ffcca837ffceac39ff907d70ffa79783ff988b7cffa19281ffa59581ffa59580ffa59582ffac9a86ffa59582ffa3927fffa89781ffa49582ffaa9a89ffa49582ffad9b88ffaa9984ff9e8f7cffa89884ffa89985ffaa9985ffa89782ffb09f88ffa59480ffa89883ffa99883ffa2927fffa1917effa69783ffa1917dffa08e79ffa4937fff9b8c7affa1907fff9a8c7cff958675ff9a8b7aff9c8d7bff9a8b79ff968979ff988a78ff9c8d7bff9e8e7cff9d8e7bff9d8e7aff9d8d79ff9a8976ff9c8b75ff9b8c78ffa59581ffa1917dff9b8c78ff9a8a77ff9a8975ff9f8f7aff9d8d78ff9e8d79ff9e8e7aff988977ff908272ff918474ff958675ff938473ff8e8171ff8a7d6eff7f7161ff8c7869ff8b786affbf9f36ff9d8466ff927d6cff8c7768ff8a7668ff8d7969ff8d7969ff8b7767ff897566ff837061ff877264ff8c7769ff846f62ff8d7869ff917b6cff947f70ff8f7a6bff8d7a6aff8a7768ff8d7a6aff836f63ff816e62ff7e6c5fff7e6c5eff7e6c60ff7c695eff6d5e53ff6c5c52ff7a675bff726156ff77665aff837063ff806f62ff816f62ff816f61ff806f60ff867465ff857364ff847262ff847264ff867364ff857365ff816f61ff7e6d5fff7f6e60ff7a6a5cff756559ff7a6a5dff7d6d60ff76665aff75655aff6d5e54ff716257ff6f5f54ff695b51ff726357ff5e5249ff63554aff66584cff695b4fff6a5c4fff6f6055ff6b5d51ff695c50ff6e6154ff706356ff6d6052ff6e6152ff6e6254ff6e6053ff6c5e53ff6c5f53ff675a4eff65594cff695c4fff6b5d4fff6a5e4fff695c4eff6a5e52ff6f6359ff6c5f54ff62574cff5c5145ff5a5044ff564d43ff595046ff4c443bff554b41ff52483eff564c42ff554c42ff52483fff554a3fff55493eff473e34ff443c35ff453e36ff423b33ff423b33ff473e36ff37312aff3c362eff473f36ff4b4339ff4f483cff4c4339ff4f463cff50463cff4f463cff51493fff5b5146ff5a5044ff5a5145ff5b5246ff5d5448ff5a5044ff5d5347ff61574bff60554bff61564bff5d5447ff63594eff62584dff584f46ff60574cff5d5249ff60554bff5c5147ff62574dff574d43ff51493eff5c5247ff554b41ff544b40ff584f44ff60554aff66594eff6c5f54ff716458ff716559ff716459ff736559ff77695dff76685bff76685bff796a5cff7b6c5fff746558ff74665aff77685bff75675aff726459ff78695dff817164ff847366ff857467ff7f6f61ff74665bff716259ff72645cff6a5d54ff76685eff746459ff7b6a5eff806e61ff877567ff8b7869ff8d7b6cff907c6eff8d7969ff8b7869ff8d7a6bff8a7868ff8b7768ff8a7768ff897767ff8b786aff8c7a6cff897669ff927e6fff8e7b6dff8d7a6dff998579ff978377ff907c70ff8b7769ff947e70ffceab3bffae9661ff8a796aff8d7c6bffa29381ffa49380ffa89883ffa59482ffa79885ffab9a86ff9d8e7bff9e8d7affa39581ffa99988ffa49584ffa59683ffa79682ffa69580ffac9b87ffa5937effa3927dffa79681ffab9a86ffaf9d88ffae9d89ffa69581ffa59482ffac9b86ffad9d87ffaa9a84ffa99885ffa39380ffa39480ff9f907dffa69685ffa19181ff978978ff978978ff9f9280ff998a78ff9b8d7bff968775ff978977ff968875ff978977ff9d8d7aff9d8d79ff978774ff9b8a76ff988774ff9b8b77ffa1907cff9f8e7aff9f8e79ffa1907cffa2907bff9c8b78ff9d8d79ff9f8f7bff9c8c7bff9c8d7aff9c8c7aff9b8d7aff968876ff988977ff988877ff8c7e6cff8b7b6aff7f6f63ffbc9b35ffc09e37ff8f7a6aff927d6dff8a7667ff8a7565ff8c7767ff877364ff897564ff867262ff836f5fff857160ff847162ff806d5fff887363ff867263ff867264ff927d6fff937e70ff877467ff806d60ff7a685bff826f63ff867366ff816f62ff7e6d5fff857162ff6a5a51ff6f5f54ff7c6b5fff7c6b5eff827264ff7c6a5dff806e5fff786758ff7c6b5bff7a6a5bff847464ff837362ff827161ff837263ff837363ff817161ff847363ff837263ff7d6c5fff7d6c5fff7d6c5fff7d6b5fff7d6c5fff736258ff77675cff746359ff736157ff6b5b51ff66584eff61544aff5c5046ff63564bff5e5146ff5f5147ff625648ff685a4eff6c5e50ff6c5e51ff6e6052ff716153ff6e5f52ff6b5c4fff6d5e50ff695a4dff685a4dff695c4eff6a5c4fff65594cff625648ff625749ff64584aff615447ff64574bff66594cff64584bff62564aff5e5346ff544a3fff4f463cff4d433bff494037ff50463cff494037ff494137ff4e463bff52483cff54493dff55493eff443d35ff463e36ff453e36ff473f36ff352f29ff413932ff4c433aff4c443aff494137ff534b3fff4f473bff4e463aff51483dff4f463cff534a3fff5b5145ff534a3fff584e42ff5a5145ff5d5446ff5e5447ff5b5145ff5b5145ff605549ff574d43ff5a5246ff5d5349ff4e473fff514840ff5a5046ff63594dff584e45ff534a42ff5d5349ff544c43ff574e43ff544a40ff524940ff524940ff5c5147ff60554aff695c51ff695c51ff74665bff74665bff736559ff75675bff76685cff716357ff796b5eff7c6d61ff73655aff77695eff776a5eff736559ff716355ff76675bff7c6d60ff807164ff837366ff837266ff7c6d62ff6d6056ff6f625aff786b60ff78695eff77695dff78685dff7d6b60ff806f62ff7b6b5eff837062ff917d6dff8f7b6bff907c6dff8f7b6bff8a7566ff8f796aff917d6dff907c6dff927d6fff8b7869ff8b786aff8e7e70ff938071ff917e70ff938072ff928071ff948274ff917e70ff937f70ffcba838ffcdad3cff927d71ff948174ff9a8877ffa89583ffa79683ffa89784ffa89885ffa5957fff9b8c79ffa0917effa29380ffa49583ffa1917effa89988ffa29482ffa29481ffa39380ffa39380ffa89884ffad9b85ffa99681ffa99985ffa89884ffac9985ffad9c88ffa89683ffaf9e87ffb1a18dffa69680ffa89885ffa99987ffa49583ffa29280ffa39482ff9b8c7bff9f8f7fff9f9182ffa09382ff9d8e7affa0917cff9e907dffa0927fff998976ff998a77ff9c8b78ffa08f7aff9c8b76ff9d8c77ff9f8e7affa08f7bff9f8f7bff9e8d7bff988773ff9c8b76ffab9986ffa1907fffa69584ffa1917effa1917dff9d8f7bff998977ff968675ff918270ff988977ff978676ff907f6eff7f705eff79685cffaf913fffb89632ff837062ff8a7666ff917b6bff8a7666ff867363ff887363ff887363ff867162ff837061ff857162ff877263ff7e6b5eff847264ff887566ff877365ff826d5fff8a7667ff8d786aff8b7769ff857264ff7e6c5eff836f61ff837063ff7d6c5fff847264ff7c6a5dff726056ff7a695eff857365ff7d6c5eff806f62ff847366ff837161ff786758ff7d6b5cff857464ff867464ff8a7968ff827262ff7f6e5fff7d6d5cff7e6d5dff7f6e5fff7f6c5dff7d6b5eff7a685bff746357ff79695cff6d5e53ff675a50ff6c5d53ff6b5c51ff706155ff6c5e52ff66594fff64594eff5a4d45ff605248ff5b4e44ff564b40ff5d5146ff615448ff66584bff67584cff6b5d4fff6f5f52ff6c5d51ff6a5b4dff6b5d50ff685a4dff6b5d4fff6b5f51ff695d50ff63574aff635649ff5e5346ff5b4e40ff5b4e41ff5d5044ff62564aff5f5448ff615649ff5b5145ff534a40ff494238ff4b4139ff453e35ff4e453cff453e34ff4a4237ff4c4238ff4c4238ff494036ff403a32ff413a32ff3e3630ff3b342dff413932ff473e36ff4b4339ff4a4238ff4c4439ff4d4438ff53493dff554d40ff544b40ff564c41ff534a3fff594e43ff5a5043ff5d5245ff5b5144ff584e42ff534b3fff5a5044ff594e44ff5c5246ff5a5045ff52493fff4b443bff4c443cff4d463dff5a4f46ff584f45ff4f463eff584f44ff4e473dff554a42ff534841ff4e453cff4c433bff5a4f45ff62564cff695c52ff6c5f54ff6f6155ff726558ff74675aff736659ff746659ff75675bff756658ff75665aff75675bff73655aff716357ff746558ff746659ff75665aff796a5eff7a6b5fff75675bff7e6d61ff746559ff75675cff71645bff76675fff76685fff7b6c63ff77695eff79695dff817063ff827264ff7f6d5eff867465ff887565ff867163ff8a7566ff8b7869ff8e7a6aff8e7b6bff927e6eff948070ff8f7b6cff8e7a6bff8a7869ff8e7c6dff927e6fff8f7b6cff8c796bff8e7b6cff937f6fff907d6fff8c7768ffc8a436ffc7a438ff8c786bff998673ffad9c89ffaa9885ffa89984ffad9d87ffaf9e8affa49581ffa0917fff9b8c7aff9f8f7cffa49582ffa69784ffa89987ffa99b88ffa1917fff9e8f7cffa29280ff9e8d7bffa0907effa59580ffa2937fffaa9984ffa89685ffab9b87ffb3a28fffaa9885ffad9d8affae9e89ffa39582ff9f8f7dffa49483ffa29482ffa89988ffa0917effa09281ffa1937fffa29380ffa3927fff9d8e79ff9f917effa39581ffa1927effa1927fff998877ff938575ff928271ff9f907dff998875ffa3937fff9e8d79ff9d8a77ffa2917dff9e8e7bffa2917fff998978ffa2907effa08e7bff8e7f6dff8f8170ff9b8c79ff9c8c7aff948876ff948573ff938372ff9c8a79ff7e6e5cff7b6a5eff7f6d61ffb99933ffa18441ff826d5eff877262ff867161ff8b7665ff897565ff8b7767ff887463ff907b6aff8a7665ff897464ff897464ff847161ff7e6c5eff877364ff857163ff826f61ff7f6c5eff806d5eff857261ff806d5fff7e6a5dff7b685cff7e6b5fff7c695dff79675aff6b5c50ff706056ff77665bff716155ff7d6d5fff7a685bff7a695aff7b695aff7e6b5bff816e5eff827061ff857364ff776659ff816f60ff806e5fff7a6859ff7f6e5dff776658ff79685aff796859ff776759ff7a695bff756558ff746457ff64564dff5d5148ff5e5149ff706156ff62554aff66584cff756458ff5d5147ff5c4f45ff574c43ff554940ff55493fff64564aff63564aff68594dff6d5d4fff6c5d4fff6e6052ff6e6052ff6d6052ff6a5e51ff64594bff66594bff665a4eff67594dff64574aff615447ff5b4f42ff5a4f43ff5c5045ff5d5146ff5c5146ff594f43ff5d5247ff554a40ff55493fff544940ff483f36ff4d433aff4f453cff4d4238ff4a4137ff4f463bff413a33ff3f3830ff453e35ff453d34ff473e35ff453d33ff4a4238ff4e463aff4c4338ff524a3eff50483dff554d42ff564c41ff564c41ff574e43ff5b5144ff5a4f43ff595044ff574e43ff5c5246ff584e43ff5b5246ff594e43ff5b5044ff564d43ff49413aff4f473dff4d463dff534d44ff534a40ff4b423bff4f473eff4c443bff544b42ff524841ff4f453eff494139ff514940ff64584dff61564bff695d51ff695c50ff6b5e52ff6c5f52ff6f6154ff726356ff736557ff746458ff706254ff766759ff716355ff6f6153ff6f6154ff6f6154ff6d5f54ff746558ff75665aff77685cff79695eff79685eff6e5f55ff716359ff6d6157ff665c53ff74675dff796a5eff79685dff827164ff7f6f62ff827164ff816f61ff826f60ff837061ff877364ff847264ff897667ff887567ff8f7c6cff8f7b6cff8e796bff8f7c6dff877566ff897667ff877466ff907c6dff867466ff8b786aff8b786bff917e6fff8c796bffa1895fffc6a335ffa88d56ff907c6fff7f6f5dffa59480ffa69681ffa39481ffa69682ffa79783ffa79884ffa0917fff9d8f7cffa09080ff9f907effa69784ffa79683ffa49482ffa29382ffa29380ffa1907fffa2927fffa2917fffa79683ffaf9e8bffab9a87ffaa9986ffac9b88ffa79785ffa99a88ffa79886ffab9c88ff9c8e7dff9d8f7dffa79886ffa59584ffa19181ffa09180ff9b8c7cff9d8e7dffa19281ffa39483ffa79886ffa99986ffa69683ffa29280ffa59682ff9f907dff9e907dff9c8c7aff9f907eff9c8c7affa08e7bff9c8b78ffa5937fff9e8b78ff998974ff9b8c7affa1907dff9c8b79ff938271ff918171ff8e7e6cff8e7f6dff9a8a76ff978875ff9c8b79ff998876ff948471ff867664ff857464ff867366ffb99833ffba9934ff836f61ff857262ff846f60ff867161ff857061ff867263ff847162ff887363ff8b7666ff897363ff846f60ff836f5fff7d695bff7e6b5cff816e60ff79675aff7e6a5dff7d6a5dff7b6a5dff806d5fff7e6b5dff79675aff736257ff7a685bff77675bff776759ff6a5b51ff746458ff776559ff7a685bff7a695cff78665aff7a685aff7e6c5bff7f6d5dff806d5fff827062ff7f6d5eff816f60ff857262ff81705fff827161ff7c6c5dff776759ff7a695bff756558ff78685aff736255ff7a695aff6a5c51ff5d5049ff67584fff5d514aff685a52ff5f5048ff5c5048ff605349ff5b4e45ff5a4e44ff574b42ff54493fff50453cff594e43ff695c4fff66584cff695b4eff675b4eff685b4dff695c4eff695c4eff675b4dff675a4dff66574aff635547ff635547ff5d5043ff5d4f42ff5a4d40ff584c3fff574d41ff5b4f43ff584e42ff564d41ff564b40ff50463cff53483dff4b4239ff463e36ff474038ff484038ff4d4339ff4c4238ff3a342dff443c34ff423b33ff423b32ff463e35ff473e35ff473e35ff484035ff4e453aff4e463aff51483dff534a3fff554b3fff594e41ff53483dff534a3fff544b3fff544a40ff51483eff52483eff51483dff52483dff54493eff53493eff4f463bff544b42ff4c463dff554e45ff524a42ff4f473eff4c443bff443e36ff51483fff524840ff4f463eff51473fff4f4640ff5e534aff5f554aff685d53ff6c6055ff6e6155ff6f6155ff6d5f52ff6d5f51ff76685aff746759ff766759ff746659ff716457ff746759ff756758ff756759ff6f6154ff746559ff736458ff746457ff7b6c5fff7a6b5dff77685bff706258ff6f6258ff62564eff786a5eff74665bff726459ff76675cff78685dff7e6d62ff7c6b5eff7e6d60ff857364ff877465ff857263ff877264ff877363ff8c7868ff968170ff998573ff978371ff907c6cff8e7c6dff8f7c6dff8e7c6eff8c796bff897668ff877466ff867265ff8a7769ff887668ffc3a43fffc9aa3bff937f72ff9d8a7bff9a8b79ffa2917eff9b8e7cffa29380ffa2937fffa49582ffa19281ff9a8c7aff9f9280ff9b8b7cff988a78ffa29280ffa49381ff9f8e7bffa89786ffa69483ffae9d8affa99886ffb1a08dffaf9e8bffa99886ffb09d89ffab9b86ffaa9986ffac9b89ffa49582ffa09381ffa69784ffa59682ffa19280ffa29280ffad9e8cffad9f8cffa99b89ffa39382ff9e8f7fffa49484ffa0917fffa19280ffa69684ffa49481ffa4927fffa39281ffa59581ff9e8c79ffa2927dffa1927fffa79887ff9f8d79ff9d8b78ffa28f7cff9f8e7affa1917dffa59382ff988776ff978675ff968676ff978977ff978573ff9b8b79ff9a8a76ff968571ff998875ff958472ff908170ff8c7c6aff877965ff7b695dffb49330ffb79833ff8d7757ff7e6c5eff867161ff857061ff836f61ff836e5fff826e5fff836e60ff8e7a6aff917d6bff8d7968ff857262ff816f60ff7f6d5eff827062ff816e61ff7c675aff796558ff7a6559ff786458ff7a675bff816e61ff7e6b5eff806e61ff7a695dff7e6b5fff6e5d54ff7a685cff77665aff705f53ff726155ff716155ff736255ff726054ff766256ff7e6a5cff766458ff79675aff796757ff7c6859ff806c5cff7a6759ff7a6859ff7a6758ff746355ff746455ff6d5c4fff6b5b4eff726053ff67574bff66574cff635449ff5f5246ff62554aff61544bff66584eff5f5248ff5d5147ff5d4f46ff5a4e44ff55493fff54483eff564a40ff594c43ff5d5145ff63564aff6a5d50ff685b4fff605348ff67594cff67584bff655649ff6a5b4eff68594bff665749ff615345ff605245ff5d5043ff5b4f42ff574c40ff574d40ff564a3fff55493eff584c40ff584c41ff574d41ff4c4339ff4c4339ff463f36ff443c35ff494037ff483f37ff484039ff443d34ff463e35ff433b32ff4a4138ff463e35ff494036ff4d443aff4c4439ff524a3fff534a3eff554b3fff574d41ff53493eff574c41ff544a3eff5e5447ff52483dff51473cff52483cff4f453bff51483dff594e42ff5b5145ff5c5246ff5c5047ff5d5248ff50473fff4d463cff4d443bff464037ff595147ff5d5449ff62574bff4c443cff574d44ff544940ff584e45ff60544bff695c52ff6d6156ff6b5e53ff6c5f52ff6d6153ff6e6153ff756759ff736657ff706355ff706456ff726657ff756759ff716356ff736558ff726457ff706256ff776a5cff716357ff786a5cff716356ff65594eff675b51ff685b51ff76695cff7b6d5fff7d6d61ff7d6d61ff74645bff736459ff79695dff77665bff7d6c5eff847162ff826f60ff7f6c5eff826e5fff816e5fff907c6bff917c6dff957f6fff8e7a6bff877364ff897668ff8a7769ff8c796cff816e63ff816f64ff857367ff867469ff8c796cff837064ffc7a539ffccad43ff857166ffa69380ffa39280ffab9985ffa99b87ffa29480ffa99b86ffa89987ff9c8e7eff9a8d7cffa39585ffa29383ffa89a87ffab9b88ffa79584ffae9d8affab9a87ffaa9884ffaf9e8bffad9d89ffaf9d8affae9d8affa89886ffa0917fffa69783ffbeab96ffb2a08bffa29280ffa3937effa79882ffa1917fffa49480ffa79986ffb0a290ffa99986ffaea08effafa08eff9e8e7fff9b8b7bff9d8f7effa0907fffa09180ffa79785ffa99886ff9e8e7dffa0907fffa0907fffa49482ffa4937effa3937fff9c8d7bffa39380ffa3927cffa4917effa28f7eff9f8e7eff9d8c7cff9c8d7bff9b8b78ffa2907effa5927eff968672ff9c8b76ff9d8b77ffa08e7bff968774ff958674ff91806eff8b7c69ff7d6a5dff816c59ffb38f30ffb59231ff786559ff806c5dff826e5eff7f6b5dff7e6b5dff7f6c5eff7b675aff816f5fff8a7767ff887465ff837062ff7f6c5fff7e6c5fff7c6a5dff816f62ff7f6b5eff7a655bff786559ff7c6a5cff79655bff705d53ff786559ff7a685cff766458ff776559ff726256ff6b5d52ff716054ff79675bff736256ff726255ff766459ff6e5f53ff736054ff7b685aff7a685bff7b685bff7c695bff7d6a5bff7f6c5dff7d6a5bff776456ff786658ff7b685aff796759ff6f5f52ff6b5b4dff6e5c4fff6d5d4fff705e51ff6e5e50ff6c5c50ff6d5e53ff67594fff6d5e52ff62554aff5d4f46ff64554cff625549ff65584dff6a5c50ff695b4fff52473fff63554bff584b42ff5b4e43ff66584dff695b4fff6a5b4eff66574bff645548ff615245ff685a4cff645749ff67584bff615447ff5a4e42ff5e5246ff5d5145ff5a4f42ff564b3fff574c40ff53483cff564b3fff564a40ff544a3fff4b4338ff473f35ff413932ff3c342eff53493eff494138ff463e35ff4b4339ff4e453bff4d433aff493f35ff483f36ff443d33ff4c443aff50483cff4d4439ff52493eff564d41ff5c5145ff534a3fff52493dff554b40ff574d42ff544a3fff564b40ff554b3fff5b5044ff594f43ff5c5146ff5b5146ff5a4f45ff5a4f46ff605449ff62574cff51493fff50473eff5d534aff5f554bff5c5148ff5a5047ff4f463eff534942ff5b5047ff62564cff64584dff675a4fff6b5d52ff695b4fff675b4eff6c5e52ff6a5b50ff6a5c50ff6d6054ff6c5f53ff6d6053ff716356ff726458ff736559ff736659ff736558ff716456ff74675aff736659ff726559ff675950ff60554bff5a5044ff8c7d6dff887868ff847466ff73655bff726359ff72645aff76665bff746459ff736356ff746356ff7b685bff7e6c5eff7a695bff847162ff887465ff857061ff7e6c5dff7e6b5dff7e6b5fff816e60ff7f6c60ff887668ff847263ff7f6d60ff837265ff87766aff887568ffa18955ffc5a539ff877469ff87766aff9e8a76ffac9c87ffa89985ffaa9a87ffa89885ffa69683ffa69784ffa59582ffa29583ffaa9c8affa59784ffa69784ffa1907fffab9a87ffab9b88ffa89684ffab9a88ffa89784ffa69582ffa59481ffa89886ffa1927fffab9a87ffb09e89ffa99985ffa79884ffa59581ffa3927dff9e8f7bff9f907effa39480ffafa18effa99a88ffb4a492ffad9e8cff9d8f7fff9f9181ff9e9180ffa39686ffa19381ffa69683ffa49482ffa79884ffa2917fff9b8b7aff9b8b7aff998a78ffa1927eff9c8d7aff9e8e7dffa2927fffa7957fffa6937effa49482ff9b8b7aff998a79ff9a8b7aff9e8e7cffa2927fff9d8b76ff9b8b76ff9b8b78ff9a8a78ff9c8c7aff9b8a77ff9a8977ff9d8c7aff9b8b76ff8b7968ff7c695dffb28e30ffb28e30ff7b675bff736154ff736154ff746054ff796559ff786659ff726055ff7d6a5cff7f6d5eff7c6a5cff776457ff736256ff746357ff746357ff766357ff79675aff786557ff776457ff736256ff79655aff79665aff756357ff77655aff736256ff746358ff7c6b5eff6a5c52ff715f55ff776559ff7a695cff746256ff756558ff79675aff766559ff756356ff736256ff705f53ff736256ff766458ff786657ff766456ff7b6a5bff7d6a5cff746456ff736355ff726153ff6d5e51ff6e5d50ff6c5b4fff68594cff6d5d4fff6b5b4fff716154ff6e5e52ff716256ff66594eff68594eff5e5248ff61544aff605349ff63564cff685b51ff66584eff54483fff5a4f44ff584b41ff584c42ff615348ff615347ff615347ff625347ff605247ff625447ff605246ff5f5245ff615347ff594e42ff584c41ff574b40ff574c41ff574c41ff574b40ff5a4e42ff5c5044ff564c41ff574d41ff52493eff4f473cff494138ff403830ff413931ff423c33ff494138ff4d443aff51483dff4e443bff4d443bff4f463dff51493fff524a40ff51493eff544b41ff574d43ff594f44ff574c41ff574e41ff594e42ff5c5144ff5c5146ff5e5346ff5e5247ff5f5549ff584d44ff5b5147ff5e5348ff584e44ff5e5348ff5d5246ff574d43ff564c44ff564d42ff5e5348ff584f44ff5b5146ff5a5045ff584d44ff584d44ff5d5147ff63564bff695d51ff695d51ff685c4eff675b4eff65584cff6a5c50ff6c6054ff695c4fff685c50ff6f6154ff6d6054ff716358ff716458ff726458ff726357ff746559ff746558ff77695cff736659ff6c6054ff76685bff6a5d53ff756659ff8f7f6fff8d7c6cff887769ff887768ff79695cff79695dff837063ff7a685bff7b6a5dff806e5eff7d6c5cff837160ff826f60ff7f6d5eff826f60ff7f6c5dff7e6a5cff7f6c5eff7d6a5dff7f6b5eff847164ff897668ff887568ff897667ff847265ff8a7769ff89766aff8d7b6fffc4a339ffc3a238ff817065ff998777ffa99883ffa59683ffa99984ffab9b86ffaf9f89ffaf9f8bffa99a85ffa59582ffa19281ffa59683ffa29483ffab9a88ffa99987ffa09280ffb0a28effa79685ffaa9987ffaa9986ffa49480ffa49481ffa79785ffaa9a86ffad9d89ffb4a38effab9b87ffad9e8affa59682ffa69580ffa69683ffa39480ffa39481ffb0a18fffb0a18fffb0a28fffab9b8bff9e9181ffa49584ff9d917fffad9e8bffa79785ffa2927dffa99b88ffa1917eff9f8e7cff9e8f7dff9c8d7affa1917fffa89783ffa2927fffa3927fffa3907dffa69581ffa99784ffad9c88ffaa9a85ff9f8e7bffa2927fffa39380ffa59481ffa08f7cffa2927fffa39381ff9d8d7cffa1907fff9e8d7bff9d8c79ff9e8d79ff928271ff776857ff8f7a6bff9d8040ffb39130ff867261ff7c6859ff7c685aff7e6a5bff7c685aff7d6a5cff7a675aff736256ff796659ff766456ff766357ff776557ff705f53ff736054ff746257ff7b695cff7d695bff79665aff766357ff766358ff766357ff7b675cff7a685cff746357ff726156ff756458ff7c6b5eff67594eff67584eff756558ff7d6b5fff756458ff79685bff7d6b5eff7e6b5eff77655aff716055ff6e5d53ff746358ff756458ff796758ff776758ff7c6a5cff7d6b5eff776659ff716052ff756456ff756355ff756356ff756455ff746254ff736355ff716154ff6f5f53ff6d5d51ff685a4eff66584cff6c5d51ff726255ff6a5b4fff635549ff63554aff66584cff65574bff64554aff615348ff5e5145ff584c41ff605146ff625448ff625649ff64564aff5f5246ff584c40ff5c4e43ff594c41ff5a4e42ff5a4d42ff594d41ff5a4d41ff5b4f43ff5a4e42ff564c40ff574c41ff594d41ff52483dff534a3eff554c40ff544a3fff51473cff463d34ff484138ff4b4239ff4d453bff4a4238ff4e453bff50473dff4f473dff544b41ff554c42ff554c42ff5a5046ff574e44ff594f44ff5b5146ff5b5045ff5a5146ff564d42ff5e5349ff5c5248ff5a5146ff574f45ff60554bff645a4fff595046ff5a5045ff4e453cff5f5449ff4b423aff594e45ff5c5146ff554a41ff52483eff544a40ff564b42ff584d43ff584d43ff62574bff65594dff685a4dff67594dff675b4fff65594dff695d51ff6f6356ff6c6054ff706357ff74675aff716358ff726459ff75675bff716358ff75675bff6e6155ff726359ff786b5eff7a6c5fff796b5fff7a6c60ff706156ff6c5e53ff7a6c60ff907f72ff8a796bff8a786aff877566ff7f6e60ff7b6a5dff79685bff7e6c5eff806c5dff806d5eff806e5fff806d5eff837060ff816f60ff857263ff8a7766ff867362ff897565ff8a7666ff857264ff836f62ff867265ff897566ff89776aff887568ff887467ff937f71ff9d8871ffc2a238ffc5a43aff847267ff9c8c7bffa69783ffa99b86ffa59581ffb09f89ffb4a58fffab9c87ffab9a87ffa89986ffaa9a88ffa59584ffa89988ffa89986ffaa9a87ffac9c89ffa69683ffa59583ffa99987ffac9c89ffa99886ffaf9e8affad9d89ffa99886ffab9c88ffac9c88ffa89884ffab9c88ffa69683ffa59583ffa49482ffaa9986ffb0a18bffb3a693ffaf9f8dffaa9a88ffa39585ffad9f8cffaea08fffafa08effab9a88ffab9c8affa99a85ffa69785ffa59582ff9e907fffa2927fffa99985ffa69581ffa59582ffa69783ffa99885ffa49380ffab9b85ffab9b87ffaa9a85ffa79682ffa79683ffa79783ffa89883ffa4937fffa89784ff9d8e7cffa0917eff9b8a76ff9d8c79ff9d8d79ffa4937eff948473ff998978ff776757ff8d796aff8d7863ffb79936ffb49433ff806d5fff7c695aff7d695aff806b5cff826e60ff7f6d5eff806e5fff776457ff7f6c5eff7d6a5cff7a6759ff846f60ff7c695aff756256ff7b665aff7a665aff7a6659ff79665aff7b675bff786459ff806c60ff816e62ff78665aff766558ff736156ff7a695cff7a685cff685a50ff766459ff75645aff79685dff766459ff78665bff78665bff79665bff736157ff7a675dff756359ff6d5c51ff786659ff746356ff7c6b5dff736255ff736254ff786659ff79675aff736355ff756456ff6a5b4fff746355ff756455ff726254ff6f5f52ff6e5e51ff746457ff63554aff685a4eff6c5c4fff6b5b4eff64564bff68594dff675a4cff5f5145ff5f5045ff5a4c41ff594b41ff594b41ff574a3fff5c4f43ff5e5145ff635549ff5e5145ff605347ff5a4d42ff5b4e42ff61544aff5d5045ff5b4e42ff5b4f43ff5b4e43ff5c4f44ff594d42ff574b40ff5c5146ff54493fff50463bff554b40ff5c5246ff52493fff584d41ff494138ff4a4239ff4d443bff4e453bff4b4439ff50473dff52483eff574e44ff5b5046ff594f44ff554b42ff574c43ff594f44ff584e44ff5b5045ff594e43ff5a5044ff5c5146ff5b5247ff5c544aff5d554bff60564cff5d5248ff5a4f45ff534940ff5a4f45ff483e37ff544a40ff5c5045ff574c42ff5b4f45ff544a40ff5a4f44ff5a5044ff625649ff64594cff695d52ff6b5f52ff6c5f51ff695d4fff6d6054ff675c50ff6b5f53ff685d50ff6b5f53ff74675aff726458ff726459ff76685cff736459ff716258ff706257ff746559ff78695dff78695dff796a5fff7b6b5fff78695dff72635aff716359ff8d7c70ff8a796bff857567ff8b786bff7e6c5fff7f6d61ff826e60ff867364ff847063ff836f62ff847264ff867464ff867465ff887465ff7f6d60ff837263ff857364ff877463ff8c7a69ff8b7867ff8c7a68ff907d6cff8c7868ff907c6cff877467ff877567ff907c6fff968274ffc6a73dffc4a439ff988160ff917d71ff8e7f6dffa69782ffa99984ffa99983ffac9c85ffab9d86ffb4a48cffab9b87ffad9d89ffa69684ffa59584ffa79785ffab9c89ffac9a86ffaa9885ffa89884ffa79786ffad9e8affb3a38fffb4a48fffb0a08effae9e8affa89885ffa89785ffab9985ffb09f88ffa6947fffa89581ffa3927dffa79581ffab9985ffae9c88ffa69683ffa59683ffaf9f8bffaa9b88ffaf9f8bffad9e8bffb6a693ffaa9a88ffaa9885ffa69784ffa79784ffad9c87ffa69683ffa69682ffaf9e8bffb0a18cffafa08affad9b88ffa99783ffa2907dffac9a85ffab9985ffa99681ffa99783ffa69582ffa2927fffa1927fffa1907effa49681ffa0907cff9c8c7aff9c8a78ff9f8e7cffa49381ff9e8d7aff9d8c79ff988875ff92826fff8e7c6aff907c6dffb59635ffb69937ff877365ff877364ff827061ff816d60ff806d5fff7e6a5aff7c695aff826d5eff786559ff79675aff7e6a5cff7d695aff846e60ff7f6a5dff7b6759ff816c5eff7e685bff806c5eff7c675bff746157ff7d685dff846f64ff7e6b5fff7a685dff746357ff76645aff79695dff716357ff65574eff6e5d52ff7e6b5fff76655aff7b695dff78665bff766659ff756458ff736357ff76655aff736258ff756458ff7a685cff77665aff79685bff78685bff77665aff766659ff766558ff776658ff776557ff6d5d50ff736355ff746456ff756457ff706054ff736356ff746559ff6b5d51ff685a4eff5d4f45ff6a5a4eff5e5045ff5f5146ff645549ff665649ff5a4d41ff584c40ff5b4d42ff5a4d42ff615246ff5b4f43ff62554aff63564aff5e5145ff5d5043ff605347ff5d5045ff5e5146ff5e5245ff5b4e43ff605447ff605246ff594c41ff5f5347ff594d42ff564b41ff564b40ff574c42ff54493eff594d41ff574b41ff483f37ff4a4339ff4d453bff51493eff4c443aff4c433aff544a41ff564c42ff564c42ff5b5045ff574d43ff4e443cff594e44ff594f44ff594e43ff564d42ff5b5146ff5b5146ff5e544aff5f554aff5d544aff5a5045ff584d43ff4c433bff484037ff473e37ff574c42ff615549ff574b41ff584d43ff554b41ff5e5246ff5e5247ff65584cff685b4eff685b4fff695d50ff695d4fff695c4fff6b5f51ff675c50ff6c6054ff695e51ff6f6357ff706256ff736559ff736457ff75665aff77675bff78695cff76685cff74665aff746659ff76675bff78695eff78695dff7b6b60ff77675cff77675dff8d7c70ff88776aff897669ff8a7769ff816f63ff7c6a5dff806d61ff867366ff867264ff877566ff8a7769ff857263ff837061ff8a7667ff816e60ff857364ff857365ff887666ff887564ff8b7766ff8e7b6aff8a7867ff8e7b6aff897666ff8b7969ff8e7b6bff907c6cff968475ff938072ffc7a83effc4a43aff8a766bffa08d7effa69784ffaf9e8affb2a390ffae9d89ffa4957fffa79884ffac9c87ffad9d8bffab9986ffa99987ffa79685ffab9a89ffae9d8bffa79684ffa3917effa99886ffab9a88ffab9b87ffa1917effb1a08dffaf9f8bffae9d8affb1a08dffb09e89ffb6a48effc2b098ffb09f89ffa79782ffac9c88ffb4a38dffb4a38effae9c88ffaa9a85ffb2a28dffb2a28cffb1a28bffae9f8affb2a18dffb7a894ffb6a691ffad9d8affa99984ffab9a86ffaf9f8bffa89985ffaa9986ffac9d88ffa49481ffa69683ffa79683ffac9a87ffa89884ffad9c89ffad9d89ffaf9e8affa99885ffa3917effa89885ffa69783ffa99885ffa39381ffa59382ffa1917eff978878ff978978ffa19180ff9a8a79ff978776ff968675ff867766ff8c7e6bff8b7868ffa38840ffb49632ff957f54ff877466ff857365ff877263ff867163ff826d5eff816d5eff836e60ff796758ff7e6b5dff7e6b5dff7f6a5cff806b5dff816b5dff836d5fff7d675aff806b5dff7c675aff7c685bff7c675cff7e685cff836f63ff7d6b5fff7f6d60ff78675bff746258ff746258ff75655aff65574dff64544cff6c5c52ff706054ff726055ff736358ff706054ff6e5e52ff706055ff736156ff726256ff746358ff726257ff6c5c51ff756458ff7a695cff79675bff7b6a5bff746458ff69594eff716054ff726255ff726153ff6d5d51ff706053ff6f6053ff746457ff706155ff736457ff66574bff66584bff605247ff5c4f45ff55493fff5c4e43ff5c4f43ff5c4e42ff5a4c42ff584b40ff5d4f43ff5f5145ff605247ff625448ff64564aff605347ff5f5347ff5e4f43ff615345ff5c4f43ff615448ff594d41ff5b4f43ff5d5045ff5e5144ff5a4d42ff5f5245ff605347ff5c5045ff594e43ff52483dff554a3fff54493eff4f473cff4f473dff4e463bff524a3eff534b3fff564d41ff564c41ff584e44ff564e43ff574d44ff574d43ff594f45ff594f45ff5b5045ff5d5247ff5b5046ff5e5248ff5f5549ff61564bff5d5348ff574e45ff524840ff5e534aff524942ff3e3730ff51473eff5f5347ff5f5246ff584d42ff5e5245ff5d5145ff605447ff63574bff65584cff66584cff6e6153ff6d6051ff6d5f52ff6d5f53ff6f6356ff685e51ff6b5f53ff6d6153ff675b4fff716356ff776a5dff726458ff706256ff77685cff74665aff726458ff736457ff736559ff76685aff7f7064ff7a6b60ff79685fff74635aff786a5eff8f7d70ff8c796cff887669ff887469ff857265ff847063ff826e61ff826e61ff867365ff857263ff8e7b6bff8a7867ff867263ff8a7669ff857264ff7b6b5dff7f6e60ff897665ff877565ff8b7867ff8d7869ff8a7767ff877564ff8a7768ff8c7968ff8d7969ff988676ff9b8879ff988476ffc2a339ffad9150ff89756bffa29480ffaa9b88ffa89986ffaea08cffaa9b88ffac9c88ffac9c8affa99987ffab9989ffa39582ff9b8c7bffa89783ffa89884ffaa9986ffaa9884ffa79783ffa99783ffa99783ffa79581ffae9c87ffb6a58effb1a18dffae9e8affaf9d8bffb9a791ffbca893ffb5a58fffb09f8bffb1a08cffad9d89ffb5a38effb2a08cffae9c89ffac9a87ffb1a18dffaf9f8affac9c88ffb1a08dffa89784ffb9a994ffbcab98ffb5a491ffae9e8affad9c89ffb3a18cffb2a08dffb09f8cffaf9e8affae9d89ffad9c89ffa49482ffa59381ffa5937fffa89681ffab9c89ffad9c88ffa59482ffa99885ffa2927dffa89985ffa39380ffa1917eff9e8e7bffa18f7cff9e8c7aff9f8f7dff9f8f7cff958777ff998977ff958775ff8c7b69ff756959ff927d6eff8e7a6bffb39734ffb1983cff897566ff8c7667ff8c7768ff867163ff8b7666ff867161ff846f60ff857162ff7f6b5eff766456ff806b5eff7e695bff826d5eff826c5eff826b5eff7f695bff7d685aff7e685cff7d685bff816c60ff877266ff867366ff7e6c60ff78665aff736256ff705f54ff77665bff685a4fff62534bff65554cff705f53ff715f52ff6f5f53ff716155ff706054ff6f5e52ff736256ff766558ff766559ff766559ff776659ff746357ff79685bff786759ff7a685bff766559ff746357ff756457ff766558ff726155ff756456ff736356ff736256ff746456ff736357ff77685aff736356ff695b4fff635348ff64564aff5c4f45ff4f433aff5b4e43ff6b5b4eff615246ff5d4f43ff5a4d42ff615346ff5e5244ff65574aff66574aff625346ff67594bff605246ff5f5144ff5f5246ff5f5145ff5b4f43ff5a4e43ff5a4e42ff5c4f42ff5e5144ff635649ff584d42ff594d42ff594e43ff584d42ff554a3fff53483dff4a4239ff4e463cff4f473dff51493eff534a40ff574e43ff564e43ff554c42ff524940ff534a41ff585045ff564d42ff564d43ff584f45ff5d5348ff594f47ff5d5348ff60554aff60554aff5a4f45ff5b5146ff584d45ff564c43ff3b352eff52483fff5b4e44ff625649ff605347ff615246ff615347ff605447ff615347ff625549ff625448ff6a5c4fff67594dff675a4eff6b5c4eff6a5c4fff695c50ff66594eff605348ff65584cff6a5b4fff6c5c50ff736458ff706154ff6c5d52ff726255ff716356ff7d6d61ff736458ff75665aff78695dff7e6e62ff7b6a60ff78655cff544b42ff8e7b70ff88766aff89776cff8e7b6eff867164ff846f62ff816e61ff806b5eff7f6d5fff857063ff847262ff887465ff877364ff877464ff877363ff7b6a5aff7e6b5cff7c685bff7d6a5cff7e6b5dff806c5eff836e60ff8a7666ff857262ff8f7b6aff8c7967ff988575ff988576ff998677ffc6a73cffc5a53bff837064ff7d6d62ff7b6d5affae9e8bffab9c89ffa89987ffa39380ffa99986ffab9987ffae9e8bffa69684ffa0917fffa0927fff9f8f7dffa99783ffa69683ffad9c87ffa2927cffb5a490ffad9b87ffa99885ffad9c88ffa99682ffb8a58fffb9a691ffbca994ffb9a693ffb5a58fffb6a48effb8a68effb8a791ffb5a38dffaf9f8bffa99b86ffae9d89ffaf9d8affaf9e8bffaf9d8bffae9e8affb3a28dffb09f8bffb5a490ffb4a491ffbaa994ffb3a28fffab9a88ffaf9e8bffb09f8bffb3a38fffb1a08cffaa9885ffaa9a86ffa59483ffab9a87ffaf9e8affaa9784ffaa9985ffaf9e8bffaa9886ffa4937fffa2907dffac9b88ffa99883ffa2917dffa59682ffa1917fff9c8b78ff9e8f7cff9c8c7aff978977ff978775ff8f7f6dff9a8975ff817261ff8d7c6cff947f70ffb89b39ffb49734ff887465ff836f60ff857161ff857162ff857061ff887364ff877263ff7f6c5dff836f5fff7e695aff7c6658ff7e675aff796356ff7c6659ff7d675aff7e685bff7e685bff7a6558ff7e695bff7b6759ff836f62ff836f63ff7e6b5fff78675bff77665aff67584dff6f5d54ff75645aff6d5d52ff65554cff67574cff6d5d51ff716054ff6f5f54ff706054ff78665aff736256ff746256ff79665aff746256ff766358ff756356ff756357ff786559ff79685aff786659ff726155ff746357ff706154ff716155ff716255ff716055ff6b5b4fff726255ff706154ff6c5e52ff716256ff716255ff68594fff68594dff64564aff605247ff3e362fff5e5045ff69594bff655648ff615446ff635548ff605245ff615345ff5f5143ff625346ff615346ff645547ff635446ff615345ff5e5042ff625448ff5e5146ff594c40ff55493dff574a3fff5c4f42ff584c40ff605448ff5a4f43ff574c40ff574b40ff564a3eff474036ff4b4339ff4d4339ff50463aff51473cff51473cff544a3fff51493fff50473eff574f45ff544b41ff4e463cff534a41ff574d43ff5a5147ff5f554aff61564bff62564aff5b5045ff605549ff5a4f44ff54493fff51483fff62564aff65594bff605347ff5f5246ff66574aff63564aff605448ff615549ff605448ff625549ff6b5e50ff6b5f51ff6c5e51ff6c5f51ff6b5e51ff695c4fff675a4dff665a4dff66594eff716255ff736557ff746559ff75675aff756659ff7c6d60ff76685cff76675bff77695dff736559ff75675bff78685dff79695eff6e5e55ff75655bff8b7b6eff928073ff877668ff8a776aff8d7a6cff867365ff816e60ff837061ff816f61ff837162ff867163ff907b6bff907b6cff8a7667ff897566ff847161ff816f5fff877564ff8a7667ff927d6dff8c7869ff8d796aff8c7869ff8d7969ff8d7969ff937e70ff958272ff9c8879ff9b8779ff9d897bffc7aa41ffc1a13bff89766affa69380ffac9984ffac9c88ffa89783ffa39381ffa79785ffa69684ffa89785ffaa9987ffa99885ffa59581ffa39381ffa69785ffa29381ffa08f7fffa29281ffa08f7dffa69583ffa3927fffaa9885ffaf9e89ffbaa893ffbfad97ffb6a38fffb2a08dffb6a28dffb5a18cffb39e8bffb6a38effb8a591ffb3a28dffb09f8cffb5a58effb3a38dffb3a28effaa9a87ffab9b89ffa89986ffa69484ffaa9986ffb1a08effb3a290ffc1b09effb9a794ffb2a08fffb19e8dffb09e8bffa89785ffb5a290ffab9a87ffa2927fffa49482ffab9985ffb6a48effb19e8bffad9a88ffae9c8affaa9885ffad9b88ffaa9785ffa99784ffb09e8bffa2917fffa2917fffa39280ffa08e7cff9d8d7aff9e8e7cff9f8e7dff9e8c79ff988672ff91806cff817361ff847563ff988272ffac914effb89a39ff9d8352ff887464ff867264ff837061ff887163ff8c7566ff897464ff857061ff836e5eff7d695aff7d6859ff7f6b5cff836d5fff856e61ff816b5eff816c5eff816c5dff816b5dff816b5dff806b5eff846f62ff877367ff816e62ff816e62ff7b6a5dff766459ff6c5c52ff7a695cff736356ff5e5047ff65564cff6e5d52ff776557ff716054ff706054ff736356ff726055ff705f53ff705e53ff6e5c51ff6b5a4fff726155ff716053ff786457ff776557ff776558ff746356ff736256ff6f5e53ff695a50ff706156ff6d5d52ff685a4fff6f6055ff6c5e52ff6c5e54ff726459ff6d5f52ff6f6053ff66584cff6b5c4fff625348ff5e5045ff50433bff645549ff635549ff645547ff5f5045ff655549ff615346ff635446ff615345ff5f5145ff5f5043ff5f5144ff645446ff615244ff625445ff5e5143ff5d5043ff56493cff56493dff574a3eff5b4e41ff5a4d41ff5e5246ff584c40ff574b40ff5a4e41ff493f36ff4a4036ff51463aff52483dff52483eff544a40ff524940ff51493fff554c42ff524a40ff4c453bff564d43ff584f45ff5a5047ff5b5147ff5e5449ff5c5247ff574d43ff5e5348ff5f5449ff564c42ff4c453cff61574cff5e5348ff62564aff5e5145ff5f5245ff5f5146ff5b4e43ff5c4f44ff5f5146ff5e5045ff605347ff706356ff6d6052ff6d6052ff695d4fff65594eff675c4eff64584cff6b5e51ff726356ff6f6155ff706256ff766659ff77685cff74665aff746559ff716358ff76685cff6d6156ff6f6257ff6e6055ff75675aff76665cff695c52ff796d5fff8b7c6eff867969ff857566ff897868ff847463ff7f6e5eff7a695bff796959ff7f6b5dff7a675aff8d796aff8c7869ff907d6dff8d786aff8a7666ff897666ff8a7566ff8d7868ff8d7869ff917c6dff947f6fff958070ff907c6cff917c6cff8c7769ff948072ff9a8576ff948071ff988275ffb49d5fffc7aa41ffa99069ff8f7c6fffa6937dffaf9c86ffb09d88ffac9a87ffaa9985ffa79682ffa79684ffb09e8bffaa9682ffa89683ffa2917fff9a8a78ffa1907fffaf9e8bffa49483ff9e8d7cff9f8f7fffa49383ffaf9e8bffa59580ffb19f89ffb6a38dffbba994ffbba996ffbbaa95ffb29e8cffb3a08dffbda894ffb7a28fffb4a290ffb4a28effad9e8affa79782ffad9d89ffad9d89ffb09d89ffaa9a86ffa29280ffa79683ffab9985ffa99987ffaa9a88ffb9a894ffbdad9bffb2a18fffad9c8affad9c89ffad9d89ffac9b87ffab9a88ffa39483ffa69685ffac9b88ffaa9986ffa89785ffaa9583ffab9886ffab9987ffa59481ffb19f8cffae9c8affa3917effa08f7dff9e8f7cffa59681ffa39280ff9c8c79ff9b8b79ff988977ff9a8977ffa18e7affa08e79ff968672ff847463ff927b6dff988071ffb99837ffb99737ff856d60ff836d5fff836c5eff7f695bff947c6dff8a7365ff8f7868ff8c7567ff7f6b5cff877262ff856f60ff867161ff836f60ff857163ff897466ff857162ff816d5fff816c5eff7e695dff826e61ff867165ff806d60ff836f63ff887668ff7b6a5dff7e6c5fff77665aff756459ff6b5b50ff5f4f47ff615249ff6d5c4fff766357ff726154ff705f53ff6f5f53ff6d5c50ff6c5c50ff65554aff65564bff635549ff6a5a4fff736357ff756355ff716053ff6f5f52ff716052ff6f5f53ff695b4fff6a5c50ff6c5e52ff695b4fff62554aff6f6154ff6e5f54ff706156ff6e6054ff706356ff6b5d51ff64574cff6c5e52ff685b4fff5c4f45ff5f5247ff66594dff63564aff5f5145ff645447ff655547ff625246ff5d4d40ff5e4f42ff5a4b3fff5a4b3eff665646ff635645ff675848ff625445ff5c4f42ff5e5145ff5b4e41ff564b3fff5d5145ff5c5045ff5d5044ff5d5145ff5b4e42ff5c4f42ff473e36ff52493fff50473dff544b40ff51483eff534a42ff4e453cff524a41ff4f463dff4e463eff595047ff574d45ff595046ff595046ff5e5449ff5f5449ff514940ff61554bff61554bff544941ff433b34ff61574cff62574cff62564bff5f5449ff5b5046ff5f5348ff5f5248ff615449ff5f5347ff64574bff66594cff675a4dff695b4eff685c4eff6b5d50ff64584bff665b4eff685c4eff675b4fff6f6154ff76685bff716356ff75675aff736456ff786a5cff7a6b5eff76675bff78695dff7d6e62ff79695eff76675bff716258ff665950ff66584fff6a5c51ff8a796eff857368ff847266ff857367ff7f6e62ff847164ff806e60ff816e62ff806e60ff857163ff8c786aff8c7869ff8c7869ff897568ff897567ff887365ff887464ff897566ff8c7869ff927c6dff8c796aff947f70ff947f70ff927d6dff94806fff937f71ff927e70ff927e70ff998475ff968274ffc4a33affc19f3aff998578ff8f7b6fff9f8e7affaf9d89ffa99784ffa69381ff9f907dffa1907dffa39382ffa0907fffa4927effa69684ffa89883ffa29382ffa99785ffab9986ffaa9986ff9f8e7effa49283ffa39482ffb09e89ffae9d88ffb9a790ffb4a28fffbdab96ffb6a591ffbaaa96ffb8a793ffb6a490ffb6a28dffb29f89ffae9b88ffb09e8bffb3a18fffb5a491ffaf9e8bffb1a08dffa99986ffa99885ffa79784ffab9a85ffa99885ffa59682ffa79684ffa99a86ffaa9a87ffac9b88ffb8a896ffaf9e8bffa69683ffa69583ffa89785ffa99986ffa1917fffaa9a86ffa99986ffaf9d8affb3a18effb7a592ffb2a18effb2a08dffae9f8cffac9b87ffa69683ffa39481ffa59480ffa3927effa69480ffa2927effa49381ffa29380ff9f8f7bff9d8e7bffa2927eff988775ff847462ff8e7a6bff907b6dffb99a3affb89939ff8c7567ff867162ff867161ff867061ff887263ff907969ff8c7666ff897264ff887263ff846f60ff836d5fff816d5fff857061ff897465ff867264ff857163ff806c5eff826c5fff826d5fff826e61ff816c60ff806d60ff7f6c5fff816e60ff79675bff746256ff7c6b5fff7a675bff786559ff605348ff65544bff6d5c50ff705e52ff726155ff6e5e53ff6c5b4fff6b5a4fff68584dff63554aff625349ff625349ff655549ff6e5d50ff6b5a4eff766457ff776556ff726053ff726053ff705f52ff6d5e52ff6b5b4fff6c5d50ff64554aff615449ff6f5f53ff6b5c4fff695a4fff6d5d51ff6d5f53ff63554aff68594dff6a5c4fff685a4fff5a4c43ff635449ff67594dff68594cff66574aff65564aff5f5043ff645346ff625344ff5f5143ff5c4d40ff594b3eff5d4e40ff655749ff625446ff605346ff615345ff5e5144ff5a4e43ff564a40ff584d42ff5d4f42ff5b4e41ff584c41ff5a4e41ff52493eff51483eff564d42ff544b41ff534a40ff514840ff564d43ff524a40ff4a4239ff574f45ff544d43ff584f46ff595047ff5c5348ff594f45ff595045ff5f554aff61554bff52483fff4c4339ff5e5348ff615448ff5a4d41ff5a4e40ff5f5346ff554a3fff51453cff53473cff584b3fff564a3dff584b3fff5d4f43ff5c4f44ff5d5144ff5e5143ff635549ff5f5347ff685a4dff67594dff675b4eff695b4fff695b50ff6d5e51ff706155ff6e5f54ff736559ff75665aff756458ff75685bff796a5eff64574dff74645aff665850ff665950ff736358ff817065ff816f63ff78685cff806f60ff816f61ff756357ff715f55ff746255ff776357ff786557ff7f6b5eff816c5eff806c5eff7c685bff7e695bff857062ff766457ff867263ff877264ff8d796aff927d6dff958070ff947f6fff937e6fff8e796aff8f7a6bff938071ff958072ff9b8576ff978273ff9e8864ffc3a33affbe9d38ff917d70ff9f8d7affa3927effa39583ff9d8f7bff998b7cff9e8c7dffa69682ffaa9985ffac9b86ffaea08bffb3a08cffa99785ffa89887ffad9c89ffb6a391ffaf9f8bffac9c8affa59484ffaa9888ffab9a88ffb19e8affbbaa95ffbeae99ffc8b6a0ffb6a28fffc0ae99ffbba893ffb4a28dffb6a38fffb4a18dffad9986ffb2a18effa59383ffac9b89ffab9b88ffa99a86ffa89985ffa99985ffa59782ffad9e8affa79784ffa69683ffa29480ffab9b88ffa69784ffaf9e8bffb5a391ffc0ad9bffab9a87ffa39583ffa89986ffa99886ffa89884ffb0a08bffb1a18dffaa9985ffae9c88ffaf9c8bffb5a391ffab9786ffa89783ffa89682ffa89885ffa39481ffa79682ffa79681ffa89682ffa79582ff9e8f7cffa1927fffa29380ffa79782ff9f8f7bff958573ff847665ff827362ff8f7869ff9a815bffb49337ff957a53ff846e5fff816c5dff867161ff877263ff877061ff816b5cff826d5dff7e695aff7e695aff7c675aff836d5fff7e6a5dff847162ff897365ff8a7566ff847061ff826e60ff7f6a5cff826d5fff867364ff7e6b5eff847062ff816e60ff7a685bff766357ff756357ff79665aff766458ff746356ff67554bff6c5b50ff796659ff705f53ff6f5f52ff6c5b4fff6c5c50ff67584cff68584bff635348ff65554bff645348ff69594dff6f5f52ff6d5d50ff736355ff826f61ff7f6c5fff786658ff726154ff6e5f52ff6d5d51ff6d5e51ff675a4dff67584dff6d5e52ff6a5c50ff6d5e51ff6c5d51ff6c5d51ff64564aff6e5e52ff6c5e50ff68594dff5d4e44ff66584eff66574bff645548ff5f5145ff645547ff5e5043ff625247ff5d4e42ff57493eff594b3fff5b4d3fff5b4c40ff5c4e41ff574b3eff574b3eff594b3eff564a3cff574a40ff594c41ff53463cff56493eff584c40ff594c3fff584d42ff534a3fff544a40ff554b42ff51483fff544c41ff51493fff4b443aff595145ff5b5247ff5d5348ff5c5248ff5b5247ff5d5448ff52483fff564d44ff5c5047ff574c43ff4f463dff61564aff66594dff605448ff5d5247ff5b5046ff574c41ff594d43ff574d42ff5d5145ff5d5144ff615348ff66584aff615348ff625448ff65584aff65584bff685b4eff685c4fff6d6053ff6b5f51ff66594dff6c5e52ff6f6155ff6b5d50ff695c51ff6f6055ff726458ff716458ff736459ff73655aff6b5d53ff67594fff66574eff64564eff6a5c53ff73675cff857468ff827164ff806f63ff837165ff7a675cff756458ff7a695bff7a675cff7b695bff7d695cff867162ff847062ff806c5fff867164ff877264ff857163ff857262ff8b7768ff8f7a6bff907b6dff927e6eff917d6fff927e70ff948173ff907c6eff94806fff947f70ff978273ff998577ff998577ffc5a63fffc4a43dff907a60ff887669ff91806cffa59582ffa49582ffaa9986ffa0917effa59684ffa79784ffb1a18dffaf9e89ffa89885ffa69684ffab9b89ffab9a87ffb5a28effb2a08bffb4a18dffaf9e8dffb09f8effb09d8bffb8a491ffb7a490ffbfab96ffc4b19effbeaa97ffb8a693ffb7a48fffbcaa94ffbaa691ffb4a18effb2a291ffae9c8affb1a08dffa89986ffab9a89ffb2a28effac9c87ffaf9d89ffad9c88ffa79683ffb1a18dffa59683ffa89a85ffa99a86ffae9f8cffaa9987ffab9988ffb7a493ffbba997ffbaa996ffb2a18fffa49482ffaa9b87ffa79884ffa89985ffab9a85ffaf9c87ffb4a18cffb09d8cffab9a87ffab9a89ffac9886ffa49081ffaa9886ff9e8f7effa29482ffa1907bffa1907bffa59482ff9b8d7dff9f8f7eff9e907dffa79783ff9c8c79ff9d8d79ff968874ff776958ff947e6fff937c6effb39235ffb29134ff816d5eff846f60ff806c5cff856f5fff866f5fff867061ff826c5dff836e5fff846f60ff7e695cff806b5eff857163ff847062ff847162ff857162ff857163ff867264ff816e61ff806c5fff846f60ff867162ff836f61ff857164ff847164ff7a665aff756256ff715e53ff766256ff766357ff715f53ff69574dff705f52ff6f5e51ff756256ff6e5d51ff6a594dff6b5a4eff665549ff68564bff625348ff64554aff625348ff6f5d51ff756456ff776457ff786759ff827062ff857264ff867365ff78675aff716154ff726154ff706053ff685a4fff6b5b4eff6e5f52ff716154ff6b5c50ff6d5e51ff6a5b4fff615448ff65574bff6a5b50ff64554bff615349ff5c4f44ff6a5c4fff615245ff635447ff655548ff594c3fff5a4c40ff594b3fff574a3dff56493cff584b3dff5c4e40ff5a4d3fff55493dff594d3eff5b4e41ff584b40ff5c4f44ff5a4e42ff594c40ff584b3fff564a3dff584e42ff554b41ff544c42ff564d42ff554c42ff524a3eff4a4239ff5d5347ff5b5146ff5d5348ff5c5247ff5d5348ff5a5147ff595247ff5c5247ff61564bff5a4f46ff4f463cff5f5348ff605448ff605447ff594d42ff574b41ff574c41ff5a4f45ff594f43ff5f5246ff5f5343ff615447ff5e5044ff5e5144ff645447ff605246ff5f5146ff5f5246ff6b5d51ff6d6053ff6c5e51ff6a5b50ff6b5d51ff716255ff6a5d4fff6d5f53ff6a5d50ff746559ff706257ff726457ff6c5d52ff6d5f53ff6a5c52ff6b5c52ff62544dff685a4fff594d46ff827165ff7c6c60ff847365ff867165ff7b695eff78675bff7e6c5fff776458ff7f6b5dff796657ff7b6a5bff7c675aff7c685cff897163ff836e61ff7d6a5cff836f60ff8d7868ff927c6dff917d6fff8b796bff8f7c6eff8f7b6dff8e7c6dff8f7a6cff8b7668ff907b6cff8f7b6dff937e70ff968171ff937e70ffc1a13bffbb993aff7e6d63ff907d6fff897a68ffa59584ffa29282ffac9a8affa29283ffa69787ff9e8d7affa89886ffb0a18dffa99a88ffa99885ffa89683ffad9a87ffac9b88ffb5a38effb19f8affb09d8affb4a38fffb9a694ffb09d8affb19f8cffbeaa96ffc4b19cffc5b2a0ffb8a391ffb09d88ffbba992ffbdac97ffaf9d8cffaf9e8cffae9d8affb19f8affb6a390ffb09f8cffb4a28effad9c8affac9c89ffb1a28dffb5a58fffb1a38dffb1a18bffb0a08dffb1a08dffac9b8affb6a694ffab9a88ffac9a89ffb5a493ffb6a593ffc1ae9bffb5a391ffad9c8affa99986ffa79784ffaf9f8affab9986ffb6a28effb3a08cffab9a88ffaf9d8cffa99784ffb29e8affa39181ffa69786ff998a78ff998a78ffa2927effa3927fffa2907dffa2927fff998a78ff9f9280ff998a77ff9c8e7bff958675ff746758ff8f7b6dff917b6bffb69636ffb39233ff867263ff897264ff877161ff887161ff877160ff826b5cff7c6558ff816b5cff7f695bff846d60ff826d60ff826e61ff847062ff877365ff867264ff877365ff836f62ff837062ff7b685aff7c695bff816d5eff816d5fff7f6b5dff816e60ff7b685bff786457ff6d5a4fff67564cff715e52ff705d52ff66574dff65554cff6a594dff715f52ff746052ff715f52ff715e51ff645448ff68564bff635348ff615246ff69584cff6d5d50ff705e51ff766457ff786657ff7b695aff756456ff827162ff7f6f60ff7f6e60ff6f6054ff6f5f52ff6c5d50ff5a4e43ff6c5c51ff6b5d51ff6d5d50ff6e5d50ff6c5d50ff6a5b4fff635549ff66584cff675a4eff65564bff67584eff66584cff67594cff625549ff5d5044ff615446ff594b40ff5b4d41ff56493eff5d4f42ff5c4e40ff5b4d3fff5d4e41ff594a3dff53453aff55493dff55483dff574a40ff574b3fff54493eff584b40ff574c3fff564d43ff544b40ff4e453cff544b41ff4c433bff4c443bff594e45ff5d5248ff5a5045ff584f46ff5b5247ff5c5349ff595146ff5f544bff61574cff595046ff524a40ff6a5d51ff63584bff605347ff65574bff605347ff564b40ff594e43ff605447ff65584cff675b4dff675b4dff675b4dff675b4dff6d5e50ff625448ff67594dff6d5f52ff706255ff706255ff706155ff6d5d52ff6d6053ff706255ff6f6154ff6d5f53ff675a4fff6d5f53ff6e5f54ff6f6155ff706155ff6c5e53ff65584eff67584fff6b5b52ff67594fff706157ff877669ff8a796cff867468ff887769ff817063ff78685cff7b695eff7f6c60ff816e61ff897666ff8a7666ff867161ff8e7868ff8c7969ff806c5dff826e5fff8a7465ff8d7968ff917b6cff968070ff968070ff978374ff937f6fff907d6eff8e796bff927e6fff907b6dff958071ff917c6eff937d6fff947f71ff988066ffc09e39ffb7953bff847165ffa69583ffa49382ff9d8e7effa39280ffa39382ffa89787ffa39384ffa39282ffa1917fffa49583ffa09182ffae9e8bffb4a18effaf9c8affac9987ffae9d88ffac9985ffaf9e89ffad9a87ffae9e8affb0a08cffb3a38dffb1a08affb8a993ffb5a38fffb4a392ffb19f8dffb19f8effae9d8cffb6a492ffb9a693ffb19f8bffb4a38dffb19f8affad9e8affbcaa95ffb8a591ffb8a792ffbdac97ffb5a690ffad9d86ffb6a591ffab9c87ffab9b87ffad9d8affad9b89ffab9988ffad9b8bffb9a998ffb4a190ffb4a291ffb7a592ffb09f8dffac9b8affa99988ffb19e89ffb3a08fffae9b8affb4a28fffb4a28fffb09d8cffa79685ffa89786ff9f8e7eff9e8e7dff9f907fff9a8b7affa2907dffa79682ffa79784ffa79680ffa08e7affa0917dffa5957fff9b8c7aff958675ff867968ff7e6f5dff927c6dff9f8548ffb49534ffad903eff8f7869ff8e7868ff907b6aff907b6aff907a68ff8f7767ff857060ff806a5bff846e60ff877062ff887263ff8a7466ff8a7465ff897364ff897464ff877364ff7f6a5cff816c5dff7a6859ff816d5eff826e5fff7f6b5dff7f6b5dff806b5eff796558ff6f5d52ff68584eff6e5c50ff69574cff736155ff604f45ff615147ff6f5c50ff735f52ff6a584dff6d5c4fff705d50ff6e5c51ff6a594eff6b5a4fff6a5a4eff66554bff6f5d52ff6e5d52ff766456ff7a6858ff756355ff726254ff847163ff7b6a5eff7e6d60ff7a6a5dff7e6c60ff6a5c51ff5d5046ff6e5e53ff6d5e51ff6c5d50ff6a5c4fff6d5f52ff6c5e51ff62564bff695b50ff6c5d50ff66584dff6a5b51ff675a4dff6b5c50ff685a4bff645549ff5b4d41ff5a4c40ff5c4f43ff584b3fff605245ff635445ff625445ff635546ff605243ff584b3dff55483aff524439ff55493dff5b4d41ff5c4f43ff5c4f43ff554c42ff534a40ff564c42ff50463dff4f463dff5b5247ff585046ff5a5147ff595046ff5f554bff60564cff5d544aff5d5349ff60554cff5e554bff554b42ff64584dff665a4fff605449ff605346ff5d5146ff5a4f43ff5c5044ff5f5245ff615348ff66584bff66594bff67594bff655649ff665849ff615549ff685b4eff67584cff6c5d51ff685a4dff6c5f52ff6c5e52ff67594cff685b4eff695b4eff67594eff68594eff685a4eff67594eff675a4fff66594fff695b4fff685a4fff66594eff685b51ff65584eff675950ff685e53ff8d7c6fff89776bff857365ff806f62ff7c6b5eff7f6d61ff7e6c5fff877366ff867364ff8b7766ff8b7666ff887363ff877262ff847061ff806d5fff867161ff867162ff887263ff8c7666ff917a6bff90786aff978171ff8d7868ff907b6cff897567ff8b7667ff8f7a6bff8f7a6bff8f7a6bff8e786aff917a6cffbf9f3cffc2a038ff997f5aff836e62ffa4937fffa79785ffa09180ffa79685ffa59583ff9f9080ffa29382ff9e8e7cffa69683ff9e907effa49382ffab9a87ffae9c89ffac9c89ffb9a896ffb4a290ffb29f8dffac9b88ffaf9d8affaf9e8bffab9b89ffac9c89ffb2a18dffb8a893ffb8a894ffb7a794ffb09f8cffb09e8cffb09e8effbaa796ffaf9e8dffae9e8cffb0a18dffb3a38fffb7a792ffb6a691ffb7a791ffbcac95ffbbab95ffbcac96ffb2a38effb3a38fffae9d8affae9d8bffac9a8affab9a8bffb3a090ffb7a697ffb5a492ffb8a693ffbead9cffb3a18fffb9a695ffb29f8effaf9e8cffb29f8dffb5a291ffaa9988ffb2a08effb19f8dffa99886ffa99987ffa79784ffa49584ffa2907fffa29383ff9e8e7cff9f8d7bff9d8c7affa1907cffa39280ffa08f7cffa3937fff988877ff9e8e7cff9e8f7cff958674ff6e6151ff957e70ff907a6bffb79938ffb49635ff8d7668ff8f796bff937d6dff907b6aff907a6aff8d7667ff8f7768ff877262ff857061ff897364ff877162ff867060ff8b7463ff866f5fff8a7464ff877162ff7e695bff7e6a5bff7e6a5bff7c6759ff7a6659ff7d695bff7b6759ff7b6658ff796558ff786457ff6f5d51ff6c5a4fff69584dff69584cff6a5a4dff655448ff6e5c4fff715f52ff6b5a4dff6c5a4dff6c5b4fff6e5c50ff705d52ff736155ff756358ff6e5d52ff6b594fff715f54ff766558ff79695aff78685aff746356ff766457ff7f6e60ff7e6d5fff7d6d5fff716055ff7f6e60ff7a695cff6c5b50ff6f5e52ff716155ff6a5c51ff685a4fff6b5e51ff6e5f53ff67594dff6d5e52ff6e5f53ff685a4eff64564bff66594cff685b4fff66574cff66584cff625447ff594b3fff5b4e40ff5f5043ff635447ff655748ff625446ff645647ff5f5144ff635445ff584c3fff52473cff5c4f43ff5c5044ff594d41ff4f463dff574d43ff554a41ff544a40ff594e45ff584f45ff5a5147ff584e45ff60564cff63584eff63584fff60574eff62584fff5c544aff574e45ff5f5449ff64584cff605449ff5f5348ff594d42ff5f5346ff5a4d43ff64584aff695a4dff63574aff6a5c4eff695b4dff706154ff6f6154ff63574bff66594eff6d5f53ff6c5f53ff746558ff605449ff66584eff67594dff6c5e52ff695a4fff685b50ff6c5e51ff716356ff6c5d52ff695b50ff68594fff6a5c52ff65574eff6b5b52ff68594fff685a4fff685a50ff5a5048ff837366ff837366ff837366ff887567ff79685cff7d6b5fff776658ff806f61ff827062ff837061ff877566ff887465ff907b6cff927c6cff887465ff867263ff8e7869ff8a7565ff8c7867ff897466ff8c7769ff937d6eff907a6aff8e7969ff8d7769ff8c7668ff867163ff887364ff826f62ff8f786aff8c7769ff887467ffbf9e3affbf9d38ff877264ff887367ff9a8c78ffa29483ffa59584ffaa9988ff9c8b7affa1917fffa39583ffa79684ffa0907effa29281ffa49482ffad9e8bffae9d8affae9c8bffaf9d8bffb7a592ffb5a08fffaa9987ffad9c89ffac9c89ffb0a08effb1a18dffb7a691ffb4a390ffad9e8cffb1a18dffb7a893ffb7a591ffac9c8affb09f8dffab9b89ffab9c89ffa99887ffb3a38effb5a38effb0a08dffb9a893ffbbab94ffb6a690ffb1a290ffb5a593ffb5a691ffb1a08dffaa9a87ffb19e8dffad9b8bffb29f8fffae9d8cffb4a190ffb5a292ffc1ad9cffbdaa9affbcaa9bffb8a696ffae9c8bffb5a091ffaf9f8cffb4a390ffb2a18fffb09f8dffa89684ffa99b8affa59584ffa69785ffac9a89ffad9e8cffa49484ffa79685ffa59583ffab9986ffaa9a88ffa29280ffa59582ffa49682ffaa9b87ffa69783ff908271ff7e6f5dff968371ff917b6bffb89938ffb79636ff9a8153ff867263ff907969ff8c7766ff8c7667ff8c7667ff8e7868ff887363ff847061ff877263ff877263ff85705fff826c5cff866f60ff866f60ff8b7464ff816b5cff806b5eff796558ff776356ff7c6859ff776355ff746053ff746154ff756255ff715f53ff7b685cff705e52ff6c5a4eff6e5c50ff6d5b4eff625246ff68564cff6d5c50ff6e5c50ff715e51ff6d5c51ff6e5d51ff726055ff6f5d51ff736155ff736155ff736055ff756357ff786658ff6e5e51ff746256ff766457ff736255ff746456ff766558ff7d6b5eff7d6b5fff7c6a5eff7c6b5eff78675bff7c6b5eff817063ff6f6153ff6a5d50ff6a5c50ff6d5e52ff706155ff706055ff6e5f54ff6c5e53ff63554cff64564cff66584dff675a4fff63564bff605247ff5d4e42ff5c4e41ff584b3fff5c4d41ff5c4d41ff625245ff605143ff5f5142ff5d5041ff5e5042ff5a4d41ff5a4c41ff5c5043ff5d5042ff574d43ff52483fff544a40ff584e43ff585044ff574d44ff584f45ff62574dff60564cff62584dff5e544aff61574dff60564dff5a5048ff625649ff665a4eff685b4fff5d5146ff594d42ff5b4e44ff5b4f42ff635649ff635548ff685b4eff66594dff66594cff675a4dff63564aff665a4fff6a5d52ff706358ff716359ff6f6156ff6c5d53ff64584dff63554aff706154ff68594cff5c5147ff726255ff6f6055ff706156ff695b50ff695b50ff695b50ff68594fff64574dff695b52ff685b51ff66594fff77685fff88786cff7f7063ff867568ff857568ff7a6a5dff7d6a5eff736055ff7e6d5eff816f62ff8a7667ff897668ff857364ff857364ff847163ff847165ff837063ff8c786bff8d7a6dff8b7769ff877265ff857263ff8e7a6aff8a7566ff927c6cff957e6fff917c6cff8d7669ff8b7465ff887264ff887266ff957d6eff8d7768ffa68a47ffbe9b39ffac8d42ff846f63ff948572ffa79987ffaa9a88ffa99988ffad9c8aff9e8e7cffa19180ffa79785ffa39483ffab9d88ffa1917bffa79886ffac9c89ffac9c88ffab9a89ffa89886ffab9a88ffaf9c8affae9c8affaf9f8cffa99a87ffad9e8bffb1a28fffaf9d8cffb7a792ffab9b89ffad9d8affb8a893ffb4a390ffb1a18dffb09f8dffb1a08effab9c89ffb09f8dffb4a38effb8a894ffbaaa94ffbcab96ffbcac98ffb5a591ffab9d8bffab9d8bffb1a290ffb2a18fffb09f8dffb29f8effb5a290ffb29f8effad9c8cffb19f8effb4a190ffb3a08fffb5a291ffb5a292ffb6a392ffb7a494ffae9c8cffa99988ffac9c8cffb1a08effad9c8affa18f7effb4a190ffa89786ffa99887ffad9c8bffb3a391ffa99988ff9f8e7effa4917fffa39282ffa89786ff9f8e7dffa49482ffa39480ff9b8c7aff9b8d7bffa0907dff9a8976ff837462ff8c7569ffaf913dffb19135ffb59638ff907b6aff917a6bff8d7768ff8d7868ff8b7566ff897465ff857062ff867264ff857163ff897568ff867262ff867060ff7f695bff826d5fff7d6759ff846e60ff7e6a5cff877162ff7d695cff796557ff786558ff756254ff796658ff796556ff6f5d50ff705d51ff735f52ff69584bff6c5a4eff715e52ff6f5d50ff635348ff67574cff6d5b4fff6b594dff705e53ff705f53ff67584dff736155ff6e5e51ff746254ff735f54ff705d51ff6f5e52ff6b594eff6b5a4eff776658ff726154ff756557ff705e52ff6d5d51ff7f6f62ff806e61ff7b695dff7d6c5fff79685cff756558ff7c6b5fff78685cff736356ff6a5c50ff706054ff6f6054ff6d5e53ff6e5f53ff6e5f54ff6b5d52ff60544bff65594eff695c4fff64574cff5b4f44ff5a4c41ff5e4f42ff5f4f43ff5f5043ff635447ff655749ff645647ff615245ff625345ff5b4f43ff594d41ff584c40ff5f5146ff554a3fff584d42ff574c41ff5a5044ff584e44ff5b5147ff5a5047ff5e544aff5a5048ff61564cff5b5048ff5e544cff554b43ff5d5146ff63574aff594e43ff61554aff65584cff605346ff63554aff5b5044ff63564aff605349ff5c5146ff67584cff64564bff64574aff685a4eff65584dff695b4fff6a5b4fff6c5e52ff706257ff746559ff6d5e53ff706256ff6d5d52ff66594dff6d5f53ff6c5e53ff6e6055ff6a5c51ff6d5e52ff695b50ff695b50ff66584eff6c5e54ff66594fff6a5b53ff675851ff74675dff86746aff847367ff827366ff867466ff806e61ff7b6a5eff806d5fff847163ff816e62ff7a695eff847163ff847163ff7f6d5fff837063ff867365ff877466ff867265ff8c7667ff8f7a6bff8e796bff897266ff8e7868ff8e7868ff907c6cff8c7768ff8a7668ff8c7567ff887265ff856f62ff8c7767ff887366ff897467ffbf9d39ffc29e3bff857164ff8a776cff897c6affa29484ffa09181ffa09080ff9f907fff998a7affa09180ffa09180ffa89886ffa39581ffa3927fff9d8f7effa39382ffa49683ffa49885ffab9b87ffb1a08cffaf9d8affb1a38fffab9b88ffaa9b87ffad9d88ffae9f8cffb0a08dffac9d8affac9d8bffae9e8cffb4a390ffb6a694ffafa08affae9f8affb4a38fffb3a290ffb9a995ffb2a18effb6a591ffb6a590ffac9c89ffac9d8affac9d8affb5a591ffb9a895ffac9d8cffbdab9affaf9d8cffb09e8dffb6a292ffb4a190ffbba898ffbfad9affb9a695ffb7a493ffb8a594ffbca897ffbeab9affc1af9fffbaa999ffb1a190ffb3a291ffaf9f8effa99987ffa79786ffa89786ffad9b8affad9b8cffad9c8cffb09f8effa99887ffa69383ffa79483ffb2a08dffad9b88ffaa9787ffab9a88ffaa9985ffa1927fff9a8b7bff988879ff938273ff685b4cff927c70ff8f786bffb59737ffb49737ff8d7668ff8c7667ff8a7569ff8b7668ff8f796aff877163ff826f61ff8a7567ff877264ff887467ff867163ff887262ff877162ff836e60ff836d5fff806b5cff7e6b5bff7e6a5cff776457ff756256ff766155ff725f53ff736053ff776354ff756152ff725e51ff735e52ff705d51ff715e51ff6e5c51ff6f5c50ff625449ff65544aff6f5e51ff6c5a4eff6d5c4fff6f5d50ff6e5d51ff6e5d50ff6f5d51ff6c5a4fff726053ff746153ff776457ff756456ff766255ff776658ff766557ff776456ff736255ff706053ff746254ff756557ff78675bff7e6c5fff7d6c5eff77675aff7a6a5dff79695bff7c6b5dff736357ff7a695cff6e5f52ff706054ff716155ff6f6054ff695a50ff61554bff5e5249ff63564aff6b5d51ff63574bff5e5046ff615245ff5b4d41ff5f5043ff615245ff605244ff615245ff5d4f44ff605246ff594d42ff53473dff5f5045ff5b4f43ff554a40ff584e44ff574d43ff594e43ff5a4f45ff5d5349ff5d5349ff5c5247ff584e44ff5b5148ff564c44ff594e44ff5e5349ff5b4f45ff61554aff60554aff5f5347ff5d5146ff605347ff605449ff5c5045ff605549ff66584bff65584bff66594cff6b5c4fff65574aff6b5c4eff6b5e51ff67594dff6d5e52ff6e5e52ff6d5f53ff746759ff73655aff6d5f53ff6d5e51ff6f6256ff6c5e51ff6b5c52ff675a4eff6c5c52ff6b5d52ff65574dff685a50ff6c5e55ff68594fff716056ff5b4f47ff6e6358ff87766bff7f7063ff7f6f61ff7d6c5fff7f6e60ff7f6e61ff7d6c5eff806e60ff806d60ff857264ff867365ff857164ff8a7667ff8c7768ff857162ff867264ff887465ff867365ff867364ff8b7768ff8a7767ff8a7667ff917a6aff8e786aff957f70ff907c6cff947d6dff8c7868ff8f7b6bff907a6cff8e786aff8c776aff937c5dffbf9e3affbb9737ff877266ff9a8778ff8b7d6dffa59684ffa29483ffa59685ff9f9080ff978978ff9d8e7dff9f9180ff9c8e7dff9e907fff988a7aff9f9180ff9e8f7fff9e917fffa89a88ffa69885ffab9b87ffad9d88ffac9e89ffae9e89ffb0a08dffb1a18effb0a18dffae9f8cffafa18dffad9e8cffac9e8bffb5a693ffb4a491ffb19f89ffb3a38dffb7a691ffb6a691ffbaaa95ffbcab97ffbaa994ffafa28dffa89986ffaf9f8effb7a692ffb6a591ffb6a493ffc8b59fffbbac9affb2a290ffb6a492ffb9a695ffc1ac99ffc7b3a1ffcab6a4ffb9a897ffb9a998ffb2a08fffbaa896ffbdac9bffc2b0a0ffc0af9effbaa996ffbba896ffb39f8cffa89788ff9e907effae9c8bffae9c8bffb09e8dffac9b8affad9a8affa99686ffa39280ffa39180ffaa9786ffac9a88ffa2907effa99887ffa59381ffa99785ff9e8e7eff98887aff978676ff796b5cff8a7567ff90796bffb6993bffb49839ff907958ff887364ff8c7667ff8a7566ff8a7364ff8c7667ff8c7767ff8a7463ff877162ff857061ff836f60ff836f60ff867162ff816c5dff816c5cff806c5dff816d5dff806b5cff7f6a5cff816b5cff776255ff746053ff7d695bff776255ff746153ff736052ff746154ff6d5b4fff6d5a4eff705d52ff746156ff725f53ff5a4d43ff6f5d51ff6f5e52ff715f54ff726055ff78665aff756559ff756355ff736154ff6a584eff6f5c51ff746254ff776457ff7a665aff736254ff756354ff7b695aff766558ff726256ff716155ff736256ff706054ff7f6d60ff7d6c5eff7f7061ff7c6c5eff7b6a5cff7a6a5dff7a695cff79685bff7b6a5dff7a695cff6d5c51ff695a4dff68584cff67584eff63544aff5b4e43ff66594cff60564aff5f5247ff605448ff605246ff645447ff5f5145ff5b4d42ff5c4f42ff605145ff5c4e42ff5d4e42ff605245ff5d4e41ff594d3eff5a5045ff594f44ff595044ff5e5449ff5e5549ff62564dff60554bff5f5348ff5b5047ff584d45ff594e45ff5d534aff5e5349ff63574dff63554bff5d5147ff594c42ff625549ff5d5247ff5f5448ff615549ff64574aff675a4fff685b4eff6c6055ff6f6156ff6b5c50ff6a5c4fff716154ff6d5f52ff736357ff746659ff736559ff726358ff76675aff746457ff6f6055ff6d5f54ff706155ff716154ff6f5f52ff756456ff6a5b4eff6b5d52ff6c5e52ff6e5f55ff6a5c51ff6e5e54ff716159ff89796dff847367ff847267ff827163ff826f62ff7c6a5eff7d6c5fff806e62ff817064ff887567ff877668ff867467ff867467ff8a776aff8f7a6cff8f7a6bff8b7769ff8b7769ff8b7767ff8c7768ff8d7969ff957f71ff927d6eff927c6eff927c6eff978172ff927c6eff95806fff8e796aff90796aff867263ff967e70ff907b6dffbc9d3affbf9e3aff927c64ff8e7a6dff9e8d7bff9a8c7affa79785ffa59785ffa59684ffa79886ff9c8d7aff9d917eff9d8d7bffa29582ff9e917fff9e917fff9d8e7dffa2927fffa29483ffa59685ffa89986ffaf9f88ffad9a86ffb1a088ffb0a08bffad9d89ffb19f8bffaf9f8affaf9f8affb0a08dffb0a08bffac9d89ffae9d8bffb09f8cffae9d87ffb7a590ffb7a691ffbaa993ffb7a590ffbaaa95ffbbaa95ffbbaa96ffb5a491ffb9aa95ffb2a18fffb5a392ffb7a493ffbeac99ffb6a493ffb8a694ffb5a492ffbbaa97ffc4b29fffb7a793ffb7a593ffbdac99ffbcaa98ffb6a795ffb3a390ffbbaa97ffbba997ffbeae99ffbfad98ffb19d8affad9a88ffae9c8cffa39081ffac9a8affaf9e8effac9989ffac9b8bffa99785ffab9888ffac9a8affaf9c8cffa69484ffaf9c88ffa19180ffa39180ffa2917effa28f7cffa08e7dff968676ffa08e7eff90806fff726555ff8f796bff947c60ffb79837ffb79838ff8f796aff907a6bff917a6aff8e7868ff907a6bff8d7769ff897567ff8d7667ff8a7567ff8a7364ff8b7566ff867161ff867061ff877162ff816c5dff836d5eff836e61ff836f61ff806b5dff7e675aff7e6a5bff7e695bff7c6658ff806a5bff796458ff806b5dff786457ff766356ff776457ff786559ff786459ff6d5b4fff6a584eff66554cff6f5c4fff756154ff6c5950ff746256ff746255ff6d5b4fff6e5c4fff6a594dff6d5b50ff756254ff7c6a5bff776555ff736354ff766658ff7a685bff776558ff6f5f51ff736357ff6b5c51ff6c5d50ff79695cff7f6e60ff807062ff7b6a5cff7c6d5fff7c6d5fff7b6b5eff766659ff7b6b5eff7a6a5eff7d6d60ff6e5e51ff66574aff605247ff5a4d44ff554940ff62554bff5f5349ff64574dff625449ff5f5145ff615246ff5f4f43ff645548ff615346ff5d5043ff5e5143ff605347ff605346ff5e5246ff574c41ff584d42ff5d5248ff615549ff564c42ff5b5045ff5c5248ff584d45ff544941ff5a4f47ff594f46ff5e534aff5e534aff62564cff5e5349ff5b4f45ff5f5449ff615549ff5f554aff615549ff65584cff685b4fff675a4eff695c51ff6a5b4eff716355ff6f6053ff6f6256ff746559ff736356ff726255ff76675aff7a6a5cff746356ff706154ff746558ff756457ff756557ff756659ff756559ff77675aff736356ff78675aff6f6055ff736458ff716257ff726358ff66574eff645a50ff857468ff7e6d61ff7f6d60ff7d6b5dff7c6a5cff7b6a5cff837162ff826f62ff837063ff867365ff867365ff877466ff8d7a6dff897768ff8d796aff8a776aff8e7a6cff897467ff907c6dff8d7869ff927c6dff907b6dff907a6cff917c6eff8e7a6dff907c6eff947e6fff988172ff907a6cff978070ff947e6fff8e796bff8b7568ffbb9b37ffc09e39ff8c776aff8e766aff7a6b5bffa89985ffa99984ffa59682ff9e917fff9f8f7fffa39282ffa29482ffa09181ffa69685ff9c8c7affa1917effa19382ffa39583ffa79887ffa69785ffb1a08cffb19f8bffab9985ffaf9d88ffb4a08bffaea08affb3a38dffb2a08bffb6a48effb0a18cffac9d8bffb1a08cffb8a790ffbaa891ffb6a490ffab9a86ffae9a89ffb2a18cffad9d88ffb1a18dffbeab96ffbbad95ffb4a591ffae9e8cffb8a693ffaa9887ffb5a492ffb6a594ffb5a291ffb7a492ffb7a491ffb7a493ffb7a693ffbbaa97ffb8a896ffbbaa98ffb8a694ffaf9e8effb5a492ffbbab97ffc0ab97ffbaa693ffc1afa0ffc0ad9bffaa9987ffac9b8affa89686ffaa9887ffad9c8cffaf9d8cffab9b8affa28d7effac9a88ffa18f7fffa29080ffa29381ffa79685ffa39482ffa0917fff9f8e7dffa49281ffa18e7dff9b8a7affa1907effa99682ff665a4bff907a6bff90796affb99a3affbb9b3bff8d7767ff927a68ff937b6aff917868ff8e7666ff8f7869ff8d7768ff8b7565ff897364ff897465ff8a7365ff8a7365ff857061ff867060ff846e5eff836d5eff846c5dff846e60ff826d60ff7f695dff7b665aff7d675bff7c675aff7d695bff776356ff725e52ff756154ff6f5c51ff715f52ff786458ff786458ff746154ff625248ff64524aff6e5a4fff7c6658ff746055ff736054ff726055ff725f54ff6d5c4fff746053ff705e50ff6e5c50ff746253ff766355ff736052ff766556ff756356ff756559ff736357ff716154ff706054ff6e5e51ff6b5c50ff776658ff7f6f62ff7c6b5eff7b6a5dff806f62ff7e6d60ff7b6c5fff7e6e63ff7f7063ff817165ff7d6e62ff78695dff79695dff63564cff615349ff4f453cff605348ff605449ff5f5348ff65564bff574a3fff594b3fff5d4e43ff5f5044ff5d5044ff5e5143ff5c4f42ff584d41ff5c4f42ff594e43ff5a5045ff5d5247ff5c5147ff5b5046ff5d5349ff574e46ff554a42ff5a4f46ff595046ff5d5449ff5a4f45ff5d5146ff5b5046ff64584dff605549ff62564aff605448ff61564aff63564bff64594dff685c4fff6b5d52ff6b5e51ff6b5d50ff6e6053ff695c4eff6d5e51ff6e5f53ff716153ff766759ff79695cff726356ff716256ff716254ff716255ff736356ff736356ff77675aff79695cff79685cff78685bff78675aff79685bff79695cff796a5dff79695cff6f6258ff857368ff816f61ff837061ff826f60ff826f60ff826f62ff816f62ff867365ff887668ff816f62ff837163ff8b796bff8b7869ff897666ff8c796aff907a6cff8b776aff927e70ff8f7b6eff937f70ff917d6eff958172ff937e70ff8f7a6dff8d796cff937d70ff937d6eff917c6dff937d6fff967f72ff8d796cff907a6dff8c776affaf9457ffc1a23dffc4a23dff8f786bff8f7b6cff837464ffa89985ffa69884ffa69784ffa39281ffa49482ffa59481ffa89685ffa1917fffa79684ffa19180ffa09180ffa49482ffa59786ffa59481ffac9a87ffb4a28cffb5a48dffb19f88ffb4a38bffb6a48effbaa893ffbaa891ffb4a28dffb6a691ffb2a28effaa9a88ffa99985ffb2a38effac9c8affac9c8affad9d88ffae9d89ffb5a38dffb9a790ffb3a38dffbca893ffb8a691ffb2a28effac9b89ffbeab97ffb2a390ffb6a492ffbaa897ffbeaa99ffc2b09dffc1ad99ffbeac9affbba795ffb4a391ffb6a591ffb5a591ffb5a591ffb0a08effaf9c8cffbcab98ffc3b19effc8b6a2ffbba897ffb6a393ffbaa998ffb09f8fffab9a8affa99887ffb4a390ffa09080ffad9d8affab9a88ffac9b89ffa49383ffa69382ffa49281ffa59382ffa49482ffa49481ffa89583ffa08e7cff9f8d7dff998776ffa28f7fff9a8a79ff6d6051ff947d6dff957e6dffbb9c3bffbb9a39ffa58b55ff957d6eff8d7667ff917a69ff917a6bff927b6bff8f7868ff907a6aff907969ff8a7466ff8d7767ff8a7465ff8a7465ff877262ff897363ff897363ff846e5eff826d5eff826d5fff826c5eff836d5eff7f695cff7d685bff7e685bff786457ff776256ff776357ff776558ff766356ff756155ff726053ff726055ff726054ff5d4d44ff69574cff705c50ff726053ff7a6557ff705d51ff705e51ff6d5b4fff725f52ff715f51ff725f51ff726152ff726153ff746154ff6e5e51ff726153ff736254ff756356ff6e5d51ff6d5d51ff6f5e52ff69594fff68594eff69594eff7a6a5dff76665aff77685bff7e6d5fff7f6f5fff7b6a5cff7d6d60ff7b6b5fff7c6d5fff78695eff796a5dff7c6c5fff6e5f55ff63554bff584c42ff625549ff615349ff5b4e43ff605146ff605246ff5f5146ff625448ff5e5144ff5c4f43ff5a4c3fff615446ff5b5044ff5c5147ff5d5248ff5b5046ff574c42ff564a42ff554b41ff574d44ff65584fff5e5348ff564d43ff564c43ff5a5246ff5c5148ff5c5147ff61564bff615649ff615548ff63574bff6a5d51ff6b5e51ff6c6053ff685b50ff6e6155ff6f6154ff756658ff6f6254ff6e5f53ff6d5e51ff726356ff736355ff766659ff716155ff716154ff6c5e51ff706154ff756457ff6f5f53ff7e6b5eff776759ff766559ff7a695cff7a6a5cff7a6a5cff716154ff786659ff7b695dff8a7668ff867466ff7e6c5eff79685aff837060ff847060ff837063ff816e60ff847162ff877365ff837163ff837063ff887668ff8c786aff8e7a6bff8e7a6cff8d796aff8d7769ff927c6cff8c786aff8f7a6dff927e70ff907b6cff937e6fff8f796dff8f7c6dff8e796bff8a7769ff8b7769ff907b6cff8e7a6dff907b6cff907c6dff8c7769ff927d6effc6a642ffc3a33fffaa9163ff947f71ff90816fffa49482ff9f8e7dffa49380ffa1917fffa19380ffa39381ff9c8d79ffa99784ff9f907fff9e8f7eff9f8f80ffa09181ffa49584ffa59684ffa59685ffaa9b88ffad9d8affb1a28effaf9e8affb8a690ffb8a58fffbaa792ffbaaa94ffb8a794ffb6a793ffb0a18effab9b89ffab9a86ffad9d8affaf9e8bffaf9d89ffaa9a87ffb2a18cffb6a38cffc3b099ffb19e8dffc4ae97ffbeac98ffb9a794ffb2a08fffb7a894ffb4a591ffbaa691ffb6a491ffb8a693ffc2ac99ffbda894ffab9a8affb7a493ffbcab97ffb8a792ffb6a591ffbba995ffb09f8cffb3a190ffbeaa99ffb6a392ffb29f8effc6b2a1ffc5b19dffc3b09fffbca998ffae9c8bffae9f8effaa9987ffae9f8affaa9987ffaa9988ffa99687ffa59484ffa29280ffa39280ff9e8c7aff9c8b7bffa08f7fffa49282ffa18f7effa3917fff9f8c7bffa08d7dff8a7a6aff7e6f5fff796958ff998070ffa98d58ffbb9b3bffba9b3cff957d6eff8f7768ff8d7768ff8c7668ff8f7869ff8a7466ff907969ff8f796bff877264ff8f7869ff887262ff8b7464ff8a7464ff8b7564ff887262ff846e5eff846e5eff806b5cff7c6759ff816c5dff7c6758ff7b6658ff766255ff7b6659ff756153ff766255ff776458ff7d695bff725f54ff725f55ff756256ff746156ff69594eff65534aff68564cff736054ff6f5c51ff6d5b4fff6f5e52ff796659ff725f53ff725f51ff6f5c4fff6f5d50ff726152ff6f5d50ff6e5d4fff6d5c4fff706052ff766456ff6f5e51ff6d5e51ff6d5c51ff6a5a4eff605247ff635449ff645449ff776659ff77665bff746559ff78695cff78685cff78685aff78685bff7a6b5fff7b6b5eff77695dff78685dff756659ff6b5c50ff6f6055ff60544aff605246ff55493fff5d5044ff5d5145ff5f5145ff625246ff5b4e42ff5e5043ff605144ff5f5145ff584b40ff5f5449ff5c5147ff5b4f46ff564c43ff594f45ff554a41ff61554bff594f46ff584e45ff554c43ff5a5044ff554b40ff52473cff60554aff5f5447ff594e42ff5e5345ff62574aff6c5f52ff62564aff6e6053ff6b5d51ff6c5e52ff6d6254ff706154ff6e6053ff6d5f52ff6a5c51ff746558ff706154ff736357ff77675aff776759ff716154ff6f5f53ff786859ff756457ff726155ff79685aff766658ff7b6a5bff736254ff736256ff79685cff77675aff77665aff685b50ff7f6e61ff7e6d5fff796759ff816f60ff867163ff877364ff867162ff827061ff857061ff877365ff887366ff907a6bff8c786aff8f7b6cff8b7668ff8d7768ff8c7768ff8e796aff907b6cff8d7769ff917b6dff8c7768ff917b6dff8c786bff8c786bff887568ff8a7769ff867265ff877366ff8b7769ff8f7a6cff968073ff968072ff9b8375ffc5a540ffc5a844ff9a8375ff947d70ff7a6c5cff9f907fffa0907dffa59482ffa79683ffa39482ffa29180ffa29380ffa59582ffa39481ffa79885ffa49483ffa09181ff9c8f7dffa99a88ffa99a89ffaa9a88ffb4a591ffb7a590ffb5a38effbdab97ffbfac98ffb3a38effb8a692ffb8a793ffb8a894ffbeae98ffbdac96ffb6a591ffb1a08dffb1a18effb7a793ffac9c89ffb7a48fffbdac95ffbeab96ffb9a791ffad9984ffb6a58fffac9c88ffb7a590ffc0af9affbfaf9bffb3a28effbaa995ffb8a692ffbfab96ffbaa793ffb6a28fffb5a291ffb3a28fffbaaa95ffb5a490ffae9f8affb09f8cffb5a492ffc3af9cffbda997ffb5a18effb9a795ffcbb8a6ffc6b3a1ffbfac9affbcaa97ffad9b8bffaa9a87ffae9c89ffaa9885ffaa9883ffad9c8bffa89685ffa39380ffa39180ff9d8d7cffa2907dffa39180ff9c8c7affa08f7effa3907fffa2927eff9d8b79ff8e7e6cff7d6e5eff6c5e4fff967d6cff957b6cffbc9d3cffb89a3aff8c7464ff907969ff957d6eff907a6bff8f796aff8d7667ff947c6cff8e7868ff8c7665ff8b7465ff8c7565ff897263ff856f60ff897363ff836d5eff866f61ff766457ff816b5dff7f6b5dff7d675aff766255ff776255ff786355ff7a6657ff7f6a5cff796557ff7e695bff7f6c5eff806d5eff7d685cff756357ff736055ff776558ff4a3e37ff64534aff6d5b51ff786458ff6c5c50ff6f5d50ff756255ff796457ff6f5d50ff6e5b4fff705f51ff746254ff6f5d50ff6f5f52ff6e5d51ff6b5b4fff705f52ff6c5c50ff6d5d50ff635448ff69594dff6a5a4fff66574bff67594eff6d5d50ff816f62ff7f6e60ff78685cff77675aff7e6d5fff78675aff79685aff7b6b5dff7a685aff796a5cff756559ff746458ff6e6153ff6d5e53ff68584eff6f6155ff5b5044ff5b4e44ff5d5145ff584c41ff5b4e42ff5c4e41ff5f5043ff5e5143ff5f5143ff5f5449ff5c5247ff584e44ff584d43ff594d43ff5a4f45ff594e45ff584e45ff51473fff564b41ff544a40ff544a40ff605448ff5c5145ff5b5044ff5a4e41ff605549ff665a4eff62564aff63574bff66584cff695c50ff6e6054ff6f6155ff6b5d51ff706257ff736457ff75665aff706155ff6b5d50ff6d5e52ff6a5c50ff6d5d50ff6a5d50ff706054ff6f6053ff6a5c50ff756456ff706153ff706053ff766659ff726154ff78675aff776558ff746458ff76655aff817063ff7c6b5dff7a675aff826e60ff7c685aff806c5eff847161ff826f61ff867263ff877264ff8a7668ff8d7868ff8c786aff8e7a6cff907c6dff917b6dff8d7769ff8d786aff8b7668ff8d796bff8d786aff877466ff8a7567ff8a7669ff937d6fff907b6cff897467ff8d776aff8e786bff8b776aff958071ff957f71ff9c8678ff968172ffb49a4cffc3a541ffbfa34bff9d8678ffa28d7fff887969ffa29280ffa39482ff9c8d7dffa59482ffa1917fffa59583ffa59582ffad9e8affa89885ffaf9e8bffab9a88ff9d8e7dffa79687ffa69785ffa79786ffb2a190ffb6a692ffb8a893ffb9a792ffb3a48fffbcaa95ffbaa893ffb8a792ffb7a591ffc0ad97ffc3b099ffbaa993ffb6a491ffb6a795ffb2a28effb3a38fffb7a691ffb7a590ffbdaa93ffbca992ffb7a58fffb9a793ffb7a691ffb8a791ffb9a791ffa59581ffb4a390ffa79885ffb2a08cffb5a491ffb9a794ffbca996ffbba896ffb8a793ffb09f8cffbbaa96ffb6a591ffb7a793ffaf9f8bffbbaa96ffbca996ffbaa795ffbaa592ffbba996ffb9a695ffbcaa97ffc3b09cffc1af9bffb9a793ffb6a490ffb19f8cffa79683ffa69481ffa79683ffa79582ffa49380ffa3907effa08d7cffa79480ffa59381ffa28e7dffa1917fffa69482ffa2917dffa28f7bff9e8c79ff8e7e6cff615446ff9b7f6fff997d6effbb9c44ffbb9f3fffab904dff957e6dff937a6aff947c6cff937b6cff927b6bff927a6aff917a6aff8e7768ff8e7666ff8a7464ff8b7465ff887364ff826c5dff816c5eff836e5fff7e6a5dff806b5dff806b5dff7b665aff7e695bff7c6658ff7d6759ff7c6758ff806a5bff816d5dff7e6a5bff796659ff7d695dff7d6a5dff7c685cff7a675bff776559ff706053ff605046ff6b594fff776356ff786457ff736155ff736153ff705e52ff746154ff716052ff6e5a4dff6f5e51ff736153ff746456ff6e5d51ff6c5b50ff6a5b50ff6d5c50ff66564cff69594eff6c5c50ff6e5e51ff6a5a4eff6a5b4fff6b5b4fff6e5f52ff7a695cff7a695bff7b6a5eff7e6d60ff7b6a5cff7a6a5dff79695bff7c6b5fff7b6b5eff7a695dff726357ff746558ff716154ff6c5d52ff706155ff716457ff695b4fff615247ff584b3fff584a3eff5c4f43ff615245ff574b3fff594c3fff5b5147ff554b41ff564c42ff584e43ff5d5046ff524840ff584e45ff594f43ff564c42ff544b41ff53473eff605448ff5b5044ff5d5145ff625649ff63584bff665a4cff64574aff65584aff6d5f52ff6a5d50ff716256ff6d5f53ff695c50ff6d6055ff6f6155ff6f5f54ff716155ff716153ff6f6053ff6c5e50ff746457ff736255ff6d5d4fff67574bff6e5f51ff67574dff69594dff6b5b4fff6d5d50ff6d5d52ff746456ff746558ff746358ff746258ff817063ff7b6b5fff7a685bff7e6c5fff7d6b5cff796658ff786659ff816f5fff847161ff877464ff887467ff8b7667ff8e796bff8d786bff8f7a6bff8d786aff8d796aff8d796aff907a6cff8c786bff8a7567ff917c6cff847164ff8d7768ff8f796aff8c7668ff897568ff8a7467ff8d7769ff897567ff917b6dff8e786aff917b6eff988273ff947e70ffc0a644ffbfa341ff9b8476ff998375ff9a8976ffa49483ffa39382ff9d8d7dff9c8e7dff9a8c7affa08f7dff9f8f7effa0907dffa69482ffac9b88ffa99a86ffa39481ffa39382ffa79786ffa59585ffaa9a89ffb8a693ffb9a895ffb9a996ffbeac98ffb8a793ffbeac99ffbaa894ffbeac97ffb9a690ffb6a48fffc3ae98ffb8a48fffb9a994ffb9aa96ffb8a790ffb4a28dffb6a38effbdac95ffb9a992ffb6a490ffb2a18dffb5a490ffb9a893ffbeac97ffb9a793ffc1ae9affbcaa96ffb3a390ffb4a28effb6a592ffb7a794ffbcaa97ffb8a593ffbca996ffb19f8cffb4a28effb8a591ffbaa793ffb5a38fffb8a692ffb9a892ffbfac99ffb9a692ffb7a393ffb8a794ffb4a28fffb8a692ffbaa993ffbcaa96ffb6a490ffae9c88ffa49380ffac9c87ffa39381ffa49381ffa89481ffa18f7cffa08f7eff9f8d7bffa69582ffa2907cffa69482ffa59481ffa89684ffa28e7bffa18f7dff998875ff7c6d5fff7a6958ff977d6dff9c815fffb99a3affb89c3eff977f70ff947c6bff977f6eff947b6bff947b6bff92796aff937b6bff8f7768ff8e7768ff8e7667ff8c7566ff8b7466ff8a7465ff887263ff7b6659ff826c5dff816c5eff7e695cff7c685bff786457ff7e6759ff786356ff796356ff7e6858ff7e685aff7d6859ff7d6859ff7d6a5bff746256ff7b685bff756256ff756357ff766458ff594c42ff5a4c44ff68574dff736155ff6a594eff726053ff6f5f54ff6b5c4fff6f5e51ff66564aff6b594bff6e5d51ff746154ff766356ff726054ff6c5b50ff6c5c50ff6e5f53ff6b5b4fff736355ff6d5d50ff6a5a4eff6f5d51ff6c5b4eff6e5d51ff6e5d51ff6f5e51ff786659ff847163ff7f6d5eff79685bff756558ff766659ff75655aff7c6c5fff78685cff77675bff726357ff706055ff6a5c50ff6a5b51ff6f6054ff60554bff65574cff625448ff5b4d41ff5e5043ff5d4f42ff594c3fff554b41ff584d43ff544940ff584d44ff51473eff554a40ff5d5145ff5f5547ff5a4f44ff5c5046ff5d5045ff5c5146ff5d5144ff605448ff61564bff675a4dff64584bff6a6053ff6b5f53ff71635aff6b5f54ff65584dff65594eff6f6155ff6f6257ff736457ff706154ff77685aff756558ff726154ff766558ff79695bff6f6054ff6e5f53ff736356ff706153ff6d5c52ff7a695aff726255ff6b5a4eff67584dff6f5d52ff716057ff6b5a52ff61534bff79685cff7c695dff7b695dff867365ff7d6a5cff7c695bff826f60ff8b7667ff857062ff887466ff897667ff8a7566ff8b7769ff8a7868ff887567ff8b7769ff897568ff8c7769ff8e786aff967f71ff857165ff897466ff806e61ff836f62ff887467ff967f70ff8f796aff867164ff8d796bff877263ff978072ff8b7668ff9a8373ff968070ffa88e58ffc7aa44ffc2a43fff998272ff968071ff95836effa59683ffa29280ff9c8e7dff988978ff9f8f7effa09180ffa39482ffa3937effa2917fffaa9987ffa89784ffa79684ff9f8f7effa69685ffa59685ffa79787ffac9c8bffb5a594ffb9a794ffbdac98ffbaa995ffbeac96ffbbaa93ffb6a490ffbdab97ffb4a28effae9d8affb6a591ffb7a793ffb8a691ffbdaa95ffb3a38effb8a893ffb5a491ffb7a693ffb9a794ffbcac96ffb5a690ffb8a793ffb7a592ffa89784ffb8a693ffbba995ffb6a692ffc1af9dffbfad9affb6a493ffb5a392ffb9a793ffb8a48effbaa892ffb5a48fffbfad98ffbaa891ffb9a793ffb6a590ffb3a38effb6a591ffb8a792ffb9a894ffb3a28fffb9a793ffbcab94ffb8a692ffbeab96ffbdaa95ffb1a18cffa89784ffa49180ffad9a87ffa89885ffa59481ffa2937fffa39380ffa49380ffa49380ffaa9885ffa59480ffa3917fffa59481ff9f8d7affa8967fff9a8976ff807260ff726353ff9e8475ff977d6dffbd9d3cffbb9d3cff987f6eff967d6cff957c6bff967d6cff947a69ff957c6bff937c6cff907968ff8f7869ff8d7566ff8b7466ff897263ff8a7365ff846d61ff846e5fff7e6a5cff7e685bff7c685cff846f61ff7e695cff7a6458ff7a6659ff7b6759ff7e6a5bff766355ff796556ff7f6a5cff7c6859ff7c685aff786558ff776457ff776458ff776559ff756458ff554840ff65554bff6e5d51ff79675aff756256ff786658ff756458ff756558ff746256ff746256ff736355ff736255ff756356ff726154ff705f53ff706053ff736154ff705f51ff6c5b4fff726154ff6f5f52ff746256ff6d5c50ff6c5c4fff705e51ff695a4cff78675aff776659ff857365ff7a6a5dff79695dff79675bff706054ff79685dff7f6f63ff75665aff736458ff77675bff716256ff6b5c53ff64564aff65574cff63554aff66584cff66584cff625448ff5c4e43ff584b3f + m_SourceTextures: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/cube_env_robotLab_sharp.cubemap.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/cube_env_robotLab_sharp.cubemap.meta new file mode 100644 index 0000000..6d59bc4 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/cube_env_robotLab_sharp.cubemap.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 9c45003dc05b3f44eb34c04bec8173b0 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/cube_env_robotLab_soft.cubemap b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/cube_env_robotLab_soft.cubemap new file mode 100644 index 0000000..bb80561 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/cube_env_robotLab_soft.cubemap @@ -0,0 +1,33 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!89 &8900000 +Cubemap: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: cube_env_robotLab_soft + m_Width: 16 + m_Height: 16 + m_CompleteImageSize: 1024 + m_TextureFormat: 5 + m_MipMap: 0 + m_IsReadable: 1 + m_ReadAllowed: 1 + m_ImageCount: 6 + m_TextureDimension: 2 + m_TextureSettings: + m_FilterMode: 1 + m_Aniso: 1 + m_MipBias: 0 + m_WrapMode: 1 + m_LightmapFormat: 0 + m_ColorSpace: 0 + image data: 6144 + _typelessdata: 59ffa24b75ffb05b6affb65c48ff7a385fff934e8affffb27cffe08691ffe5868afffc9456ffca6897ffffa76affff9266ff8f4b62ffa45547ff9e455dff9447665a301f58582d186670442d6b7b4e3a6d582b164a774834587b503e707c513f70855740818b5a42557546327b5f311b63784d3a58663f2f56552d1c3e532d1b63a450246f7f4824ba988f86f3e9ddd5c8a0978fc1f9efe8f6ffffffe9f7eee3eaccc3c2f0ffffff77f8f2e9ff5a534e8bc4bcbabac5b7ac814f463c6b82401c7d5e301747682a10ffa9a49dffa49d95ffc3bbb4ffdbd5cffffffffefffbf5f0fffffffffff3eae3ffcfc9c5fff7efe9ff928981ff958d887493491d595525115a94421b467a391454000000540000005400000053000000ff928882fff6f0ebffe7e3dfffb2ada9530000004f0000005f0000004e00000047672c12535e260f493b16085c5d2e11bf201d1ac6312d29e2413a347e322b24ff332c27e92b2723d7443d37ff322c27dd302821ec322c24cc312c269e201b175352230d3e3413066e25201c6c351a109522120ac9221e1ad326211daf25211df42c2723a924201b9c221e19ff241e1aa4221e19ff27221ec01e1a16ff1916134f2f14064d5f2a0eeb28231ebc221e196c492310881f1b16c9211d198725201bc225201ca9231e1acc221d18ff1e1a16b6201c17b41d1915901a1612582f15088f1a16128d19161277181613a0141210690e0b089314110f7814120f851c1a17791c1a179f1a181593151411811513109615130f810f0e0b8d0e0b0968110a066f0e0d0b5d0e0c0a7723211d7513110e531714126512100f721514118925231e87211f1a3d1715138d11110fa01c19158b1b1914851d19148416130f7615130f7314120e6413110e871d1a175b2d2a27592b2a2a71131211ea0c0a09aa191613a213110f7e3837345a2827267b12100da314110d930e0c09530f0b065e0907065e080705880a08066612100e5a59585a563332316012100fff100e0c8a100f0de60a090866393632532322206e0908078a0b09077f090706530a070331060605320807073d36260b5e4a4a4a3d3d3c3b60171717ff2c2928ff1a1713ff171410ff211e1b702b2a275c1f1d1cff100d0bff17130fff181410ff0f0c09ff0d0a0443523c15406046174842413ea5423f3cff312d29ff3a342fff2d2822ff25201aff1b18143e21262465373d3cff201b16ff1f1a15ff251f19ff312b24ff221d17ff4b3c1eff574320ff5b5148ff50473fff453d35ff3e3730ff3a3227ff322b22ff2c261d4a2c33325f323a3a671a1d1dff231c15ff393025ff3a322bff3b342cff453d33ff3c362dff62574eff4b423aff544b42ff594f44ff473f36ff39312aff3a322a63555d5f74444e4e612f3737ff261e17ff413930ff51473bff473e36ff494037ff584e44e0726d65ff181614ff14110fffa8a39feffffff8effffffaeffffff9effffff9efffffffefffffffefffffffefffffffff726862ff151310ff1d1a17aa71685e656f301152642c11675b2912535a281062642c1452682f12617038176a6533164c56260f5e5d2b13555625105c5a2711605e2a1142602b0e4d5d280f685b2a1167b55e2d60110c087f201b17e32c2722ff1a1612df322b25c2332d26b8342e2798362f29bc3c342dd03f372fc42f2823b0302a24b52925208c2d26205b8a411f657f3e1d44250f05ff1e1a16ff221c18ff2a231eff2f2822ff322d29ff221e1cff2b2623ff433c35ff352e2aff2b2622ff211d18f41b171439361509785e3016362c11044b3817086f5025109317120fa81b171394191511ff2f282395322e298f413d39c968625f9448423e942e2925931c1815754f24116f46210e93181310ff0000006641190a54210d05ff0b0908ff0e0c0aff13110eff26211bff1e1b17ff2f2b28ff35322fff3a3733ff292623fc15121162251006ab502614ff15110f533b1707572c1206422b12064e200d04ff100e0bff0c0a08ff100e0cff171512ff23201eff31302cff2f2c29ff12100d3e2812056f3e1c0cff090806ff0a08065d191610b01c1611731c150f6c2a12086e23201a2c0d0b0a862b26208534302c7f4644428a8b897b49191613919692866a43220f65342d237a2620194d2721195914100c861914107620140d402d13076a1f1b16240d0b09b8332e297f1615145d1a19188e7472732912100e91a0998b5250260f60342c227430261e56261f186415120db41c1713761f140d4d190a046f1c181336100e0cc7312c26cf090909df1717176e3f3e3c3914110f809d968651562a136e473d2f762e261f5530291f840c0a07660c0a0791140b07360e0701501f190f5b221b11b4080707891a1816781d1c1a86393939471a17156b756b643c53270f69362d2467342b227c19140d350e0e0d340e0d0c4f17140f390704015415100b38110d096e08070694191715811715136b191714370c0b096f6a61595668301453894a265f25201b6f1d1913474835124b503a1696120d07ff0d0907ff16120fff1d1609ff251c0cff2a200eff342a13ff4d3f1dff6e5e2cff71665bff84796e8fa68c75ff56483dff594c3eff463414ff1e1811ff1f1812ff383028ff29211aff2c231bff4f4439ff5f5347ff43392fff53493eff786a5cff685a4bffb1a495ffad9d8bff998876ff6d5d4eff494034ff4a3f34ff453b31ff3d332bff372e24ff31271eff2e251dff594d40ff4b3f33ff5f5346ff807164ff8f8271ffb5a48effc8b6a5ffc9b9a8ff9e8f81ff5e5044ff685a4dff483f36ff453a2eff42372bff342a20ff3c3228ff3b3127ff4e4338ff635749ff7c6d5effa19282ffbead98ffcdb9a6ffe4cebefff4dcc5b2948a83f0857e76ee6f6863bc544f49a42d2823c4322d28ad322d2a3464270dcb979590e87d7d78e0696661ca3b3733f33b3733c976706fc47a7772a564615dff181513ff1e1b185f38342f50322f2beffffffaff1a1714ff1b18163c67260d4629252158514c454e45403cff23201eff22201dff302d2a3825231f5f4a4743541614102a1a18155b57524d6547423eefffffff691b17137125201d5e7e3515705a554f5f4c464240554e48902a27238e34302c63322f2c60514d4a4943413cff918d89ff413c38ff514d4bff3e3b39ff45423eff43403dff8c796b5e863b18ff6b6764ff4b4845ff34312fff443e38ff363330ff817a72ff51504dff4c4a4845221d196f2a2622804b45405b3e3b34fa615d5a812d2621612e29235b93401933322e29e8675f593d3a373369312d29973b3732a34b45403a3a3733cb49464150201c177c2d27222a39373293514c48efffffff6429241f833b352e408039144f7068606047433d845f595380322f2bb64b463fc05d57514d5b56514d4f4c4832231f1a652d2722a6615b57a95e5853efffffff3527221e62352f295b74341578655b51a36c655e46544e475535302bc44b453fae514d467a5f5a54825c5855491f1b184b24201c8f413c388e716860efffffff252a261f6836322c406f31127742392f8861584faf726962582c292596413e39663a37317d433f3a66514c4857241f1b82332e29be5d565195554f4aefffffff6a35312b943f383243742f12c16f60549062574e7147413c8c403b35c7544f48bf564f4a8b5b5752765c5752672b26214a28231f6a675f58ac675f59efffffff8337312c9f3e37303e7430133b5a514667665d559c635c56b54e4741f0605a52614b4642254946413f57534e752924203024201bc57870677f46423defffffff76332d278d37312b42813617956b645bad7e766e7759544fd14b453f76383430543936317b5f5b567166625d5525201c3b28251fad746b61b5514d48efffffff6a2925217e36302b65853c1a93655e562f39352fdc59544f7e332f2c6938332f9e46423d775b5750474b4842ff7d7975dc4f4b46ff4e4b48ff3d3a37ff3b332dff2a27245c2b262264853e1bff857d76ff403c3aff35322fb7332f2cff2d2a279c524d47ff8d8a87ff63616074221e1a6027221e80504a459758514cefffffff331915125c211d19507b351483534d4844413c3786554e499d2b26235a24221fcc4b47438245433f7055524fff1a1715ff1b18166a211d1a61423d38f881807dff1f1c19ff1e1b183a6a3010d52a26227346413d5f403c37ff1d1a18ff1e1c1aff221f1dff433e3a573b3936be615950ae544c43b15c534bd7574e46e25a5349c95a5148ce4f463d4a5c260e9b6f645ae570665dea696159d34b4743bf61554af27d72697a89827ba776726cffefd5c3ffe1c6b3ffc1a596ffc6a997ffd7b5a1ffedd9c3fff1dcc4fff0dbc2ffe0cbb5ffd7c3aeffc2ae9affb2956bff947c6eff8f7c71ff7a6c60ff675b50fff7deccfffde3d0fffff3ddffffe8d7fff3dec2fff5e0c8fff1dbc5ffe7d4bfffdfcdb6ffcdbaa3ffbfac98ffaa9885ffa98f69ff867366ff7d6d61ff655950ffd9c4b3fffae2cefffffcf0fffffffffffffce6fff6e0c8fff0d9c2ffdcc8b3ffc7b5a2ffc0ad9bffbca894ffb1a08cff9b8b7bff917d5cff75655aff62554affb8a695fffaecd3fffffffffffffffffffffffdfff1dcc6ffd5c1abffcdbba6ffb9a894ffa79786ffa69583ff9d8b7aff8f7f70ff7d6e5dff6a5e52ff5e5347ffa69682ffdfccb6fffffff8fffffffffffffffff9fae8d1ff9a8a7bff968778ff867769ff796b5eff85786aff8a7a6bff75695cff6d6154ff615549ff50473cff8d7d6effcab6a3fffff1d8ffffffef6564583bfffcebd4ffc6b4a0ffaa9a87ff9c8d7bff8d7d6dff857769ff807161ff665a4eff574c42ff52483dff463d34ff6f6355ffa39482ffd3c2afffdfcfbafff2dfcafff0dec8ffcbbaa78f33302a2652411ad0746d5e2f131513ff756656ff605449ff53493cff4b4137ff40382eff887969ff908070ffb4a591ffc0af9bffcfbfabffcfbdacffc6b4a06e4f54544513161536343d34125f491b35e1b0381aaa7c21623e47493c333b33543e4a47ff675b4dff897a6affb7a591ffac9d8affafa08cff393431ff0b0a0a24b085292b88671726333b333c3e3d3630deae3944ab8a3e59343d3d302e36305c394644ff362c21ff6c5f51ff9b8c7cffb6a593ff9c8c7bff948574ff9f8d7b56715e3245252d2c483d4947242522165e77643aff352c23ff30281eff2f261e7d3a3f43ff372d22ff44392dff695b4cff8a7a6924403013ff978573ff90806eff877767ff7e6f5fff7d6f5eff42362bf8463a2eff382e24ff352c23ff30281fff2b231cff3d3329ff473c31ff635547ff897968ff9d8b78ca7a6a5cff857564ff7e6e5fff847363ff847463ff756759ff74675aff675b4dff5f5446ff53483cff473e34ff4a4034ff54473cff665848ff857664ff9d8a78ffa3917eff9a8774ff968472ff91806dff8b7a68ff8f7f6dff837666ff76695bff6a5d4fff5c4f43ff554b3fff453a31ff5a4940ff615145ff867562ff978572ffa4917effa89681ffa1907bffa4927eff9a8875ff958472ff928271ff807363ff716056ff62554aff4f443cff52473dff66564aff665548ff776155ff938372ffa8947fffae9b88ffab9a88ffa99683ffa69481ff9d8d79ff938473ff836e60ff746356ff6c5f53ff594e44ff6a5c50ff7b695aff675549ff816b5cff8e7667ffa08d7cffac9a87ffad9a88ffac9988ffa79483ffa69585ff957e6fff897365ff7f6e61ff736457ff5f5449c19f9b97b984807df7827d77ec6f6963c85d58509455524c6e4a4642385a250ce19b9490bf746e68935a544e67524c468f4d4a468c64615f8599969460e58448374e230c5b5c2e11725a2c13865b2d15615f2e125a5d2d147464321849692c104054280e5b542b1179552b138d5a2f1765603014556330156f6c351935f4772a5a522510535a2711685b2a146f5829158b6d341c7871361d7679391e6258220e63722f12656e2d137e75361b71823b1d7a7235195d7c371a7a662d16516f2f1352823c1831632b0e574e26118765351b7a5d311969592d1578552b167d763e1f564824106d66361863542a13845a2e1553562910679e4a2078a74f1e536f3012ff171310ff191511ff332e2a2af5671eff7d7671ff786e64ff4d453eff352d26ff5b4f46ff76695effa99a8f695d2e1dff3b322bba0e0c09ff25201cff2c2622ff0e0c093c2e14064e3615074f54240e77783a1b7d994e256686401e6d8641208f944e288cb86032499b481f806b33178e522a14fc1915123f000000bb12100ea124110862311307763116074a200d045e51230d728c461f5a813c1b7c84402381964c2578ac582d5e5c2810561f0c05b3060605753b1b0dff211d18fd312b275c401b0d712f14094c1a1712612f1408602c130a91211d1881433d338f47403687413b328335312b5b24211bff181614ff1b1815ff23201c70341b0d891d191677451f0d613f1c0b4c191611623318097b32190cb98886837b827e76831f1c188e25221d919a97936c292520651817134a1918154b191814501b1a155a17161268421e0d7d421e0c4213100d91522c153f4927148e2723207857534f7f6760576c665e535f494743653c393671443c2d55151310a98f8e8b461c1a156824221c44431d0b5850240d4a2f2b25446732153626242231312d2c323b373537423f3e36413d3d32373432332c292737201e1d351412126c453c2e450c0a088a1b181543471e095e6634154b2b21125a563e1a3b65502a33453e37566d51253745413f2f403d3a3a453d3131363230415b4b2b3322201e4b4837144a0404033d12100eff65574aff726454ffa19181ffa18f7fffb8a391ffc9b19effe4d385fffdf1d6fffaeacdffeeddc0ffb8a38effc0af9dff978b7dff837667ff61584cff524c45ff7b6b5dff8b7a69ffa59181ffb7a090ffa58f7fffc7ad9cfff2dcc1fffce9d0fffff1d6fffce7cdffdabeacffc2a996ffbda897ff8c7d71ff837668ff6d645bff92806fff867262ff968273ff988173ffb29885ffd1b39efffdead1fff6e0c6fffdeaceffedd8c1ffe7cd78ffc1a592ffa79385ff978576ff7b6e64ff776b60ffc1aa9bffa69081ff937b6aff9a8275ffccad9bffe3c6aefff6e0cafff0dac6fff1dbc6ffdac6b1ffcdbaa5ffaf9684ffa78f80ff98877aff7f7164ff63584e56fe872a9495939175b7b0ac8e65615d776e675e73736d68b188847df7b8b1aa4766280dfe948e88b467625bdc767067d97f7972dd8f8983e5bdb7b1c5bab3ae48de6b285b913d16464c29165656301b5059361e575e38245a53321e575b341f5456240c66673c235d53311e69593621685c39246855331f664225163c321a0e8640200d4b391809524b220c6b50250f805629116f562811805c2e16ad5b2d13ae642f1469622d127f572a135d4f240e8c562a138f4d26116b37190a76331809456e301256b857225f89472677b2572b50843c1a75a9522c618941226a74391c66f57a3c67a9542b81834625618a42228d8c46286777381b584c200d719b4b275b9d481cff2f261fb003020166803b1b505a1d08ff000000ff000000ff000000ff000000ff000000ff000000ff0000007b72381bff000000ff040302395b230b41ad4c1c4a000000ef181410822d1408536e341767ad57286b984d23a28e4c259283441f3b75341476c6653288a264416d6731136a4f240f4e1d0b03829e4d20512d1307453414063e441a0636411806444a1c07413d140553351306472f1106432e110656341306593815074f3c1506563c16053d3a1506383b14054a3e16058e181511fa1f1a16ff15120fff0f0d0b58212018612f2c25792927218623201c8928241e8e3a362e703a342a571e1c16661f0e054c120f0b5d200e0570251107550d0c0a4c0e0d0a4c07060556090806631a19137522201a8c22201ca412100d6d2b1c17912e2a22812c2820721f1c1658210e064c0f0c096b230f065f230f066013110d550e0d0a500e0b073a100b09641818166e32312e5c2e2d2a5a27251f552b272056312f2b623b38344922211d731f10084e08060560190b04621f0d0651090705300302022b0d0c0b2b423216990c09047f3b2b0fa11e180b345342223f3f3522a02d220f7a4c371470c2b48d4db4a8833116141346331a0b3b0c0401361e170b36191715ff332812ff595147ff7b7162ff8c7f6f9273582e4a2b2419542b2318d1786545df615544697b6e505b4c4432ff291f0d341f1e1c31231d11ff322613ff544528ff64594eff847769ff968776ff9c8978ea392e20ff251d13ff2b2116ff615443ffa18d7dffa28f7eff9a8b7cff807365ff41341ac62f220dff3f372fff534b41ff6a5e53ff7d7062ff8c7a6cff8b7869ffa2937fffa0907dff9a8a77ff9e8e79ff877364ff7a6a5eff847163ff746558ff6d5f53dd3b3021ff564d43ff574e43ff695c4fff796a5fff837061ffa38b64ffa89987ffa59481ffa59582ffa49480ff806d5eff7c675bff77665aff726153ff594b41ff5a4d42ff5b5046ff675a4eff6c5d51ff7e6d5fff8f7a6bff9c8d7bffad9c87ffb8a792ffbfad9affad9b8aff867364ff846f60ff725f53ff786557ff7a6a5cff5e4f43 + m_SourceTextures: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/cube_env_robotLab_soft.cubemap.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/cube_env_robotLab_soft.cubemap.meta new file mode 100644 index 0000000..22bc2f1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/cube_env_robotLab_soft.cubemap.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 0398a2ea793d8be4e99a112c951ee76b +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/decal_pl1_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/decal_pl1_dff.tif new file mode 100644 index 0000000..947712b Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/decal_pl1_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/decal_pl1_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/decal_pl1_dff.tif.meta new file mode 100644 index 0000000..6e42109 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/decal_pl1_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: a366b5d0ca67f124198fcad2c9a1995b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 256 + textureSettings: + filterMode: 2 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_dado_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_dado_dff.tif new file mode 100644 index 0000000..bd54ae4 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_dado_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_dado_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_dado_dff.tif.meta new file mode 100644 index 0000000..79dfa88 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_dado_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: f234e683b9225384a9fe8e47450bbb2c +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_dado_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_dado_nrm.tif new file mode 100644 index 0000000..896db5a Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_dado_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_dado_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_dado_nrm.tif.meta new file mode 100644 index 0000000..240006e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_dado_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: e8338abff5164bb46a263f8eb2916856 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_kicker_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_kicker_dff.tif new file mode 100644 index 0000000..fd69895 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_kicker_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_kicker_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_kicker_dff.tif.meta new file mode 100644 index 0000000..b8cbdc2 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_kicker_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 04bfff631dead7042ba58581f32d10ee +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_kicker_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_kicker_nrm.tif new file mode 100644 index 0000000..8a2df3a Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_kicker_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_kicker_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_kicker_nrm.tif.meta new file mode 100644 index 0000000..0b38661 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_kicker_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: b4303fe23cd5ef84e84a9eca1e131e74 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_main_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_main_dff.tif new file mode 100644 index 0000000..ff48102 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_main_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_main_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_main_dff.tif.meta new file mode 100644 index 0000000..9c9eb2f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_main_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: d076f744289222349ad97bf664b62634 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_main_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_main_nrm.tif new file mode 100644 index 0000000..26d14ae Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_main_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_main_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_main_nrm.tif.meta new file mode 100644 index 0000000..26e37da --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_main_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 5ebe7f9c44690864d9f7293ae41015cc +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_plates_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_plates_dff.tif new file mode 100644 index 0000000..1969ccb Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_plates_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_plates_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_plates_dff.tif.meta new file mode 100644 index 0000000..76adbcb --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_plates_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 3beff9775ca8279448776f8862b3c6f8 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_plates_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_plates_nrm.tif new file mode 100644 index 0000000..e441cc2 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_plates_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_plates_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_plates_nrm.tif.meta new file mode 100644 index 0000000..9b3044c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/door_pneumatic_plates_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 79d775731fced114a886b4aebe8764dd +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/part_bokeh_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/part_bokeh_dff.tif new file mode 100644 index 0000000..cbe3c2d Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/part_bokeh_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/part_bokeh_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/part_bokeh_dff.tif.meta new file mode 100644 index 0000000..e61b6b8 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/part_bokeh_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: fb9c25b252277914ea797ea9f547b849 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 64 + textureSettings: + filterMode: 2 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/part_steam_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/part_steam_dff.tif new file mode 100644 index 0000000..5864d8f Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/part_steam_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/part_steam_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/part_steam_dff.tif.meta new file mode 100644 index 0000000..8efb5c4 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/part_steam_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 4db432aa89364e34e9c3682e1e0b2d1e +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 128 + textureSettings: + filterMode: 2 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_airConditioner_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_airConditioner_dff.tif new file mode 100644 index 0000000..61d0815 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_airConditioner_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_airConditioner_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_airConditioner_dff.tif.meta new file mode 100644 index 0000000..a998d6a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_airConditioner_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 25c928de4808c2748b303a2e0acce7b5 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_airConditioner_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_airConditioner_nrm.tif new file mode 100644 index 0000000..1906c4b Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_airConditioner_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_airConditioner_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_airConditioner_nrm.tif.meta new file mode 100644 index 0000000..568b80f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_airConditioner_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 2795b1e1a9509b24a9c82c6914b134f3 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_batteringRam_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_batteringRam_dff.tif new file mode 100644 index 0000000..2c6b0c8 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_batteringRam_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_batteringRam_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_batteringRam_dff.tif.meta new file mode 100644 index 0000000..2881b52 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_batteringRam_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 2370f45810aa85146a8bc841f889d9bf +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_batteringRam_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_batteringRam_nrm.tif new file mode 100644 index 0000000..093911d Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_batteringRam_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_batteringRam_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_batteringRam_nrm.tif.meta new file mode 100644 index 0000000..d927a5e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_batteringRam_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 15c88f0a20281d7498eb4253248899bc +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_bench02_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_bench02_dff.tif new file mode 100644 index 0000000..39474ff Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_bench02_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_bench02_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_bench02_dff.tif.meta new file mode 100644 index 0000000..c03a779 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_bench02_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: d36a4d696e145874f96d5ccf8aee787e +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_bench02_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_bench02_nrm.tif new file mode 100644 index 0000000..14118ac Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_bench02_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_bench02_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_bench02_nrm.tif.meta new file mode 100644 index 0000000..8a80294 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_bench02_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: fea144cdb270fac4caf277c530ba3ccc +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_blastDoor_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_blastDoor_dff.tif new file mode 100644 index 0000000..f3768f7 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_blastDoor_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_blastDoor_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_blastDoor_dff.tif.meta new file mode 100644 index 0000000..fc80f1a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_blastDoor_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 1c24a4034ffc8a642a3e9cd001f7684f +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_blastDoor_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_blastDoor_nrm.tif new file mode 100644 index 0000000..8fdd5e8 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_blastDoor_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_blastDoor_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_blastDoor_nrm.tif.meta new file mode 100644 index 0000000..18ec072 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_blastDoor_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 44b30e1b99d38484e930a5ecd1eecf62 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_capsule_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_capsule_dff.tif new file mode 100644 index 0000000..8c266c9 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_capsule_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_capsule_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_capsule_dff.tif.meta new file mode 100644 index 0000000..848fad9 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_capsule_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 7354abf5425bc99428d5a12461cf1d41 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 2 + aniso: 4 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_capsule_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_capsule_nrm.tif new file mode 100644 index 0000000..0c1819e Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_capsule_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_capsule_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_capsule_nrm.tif.meta new file mode 100644 index 0000000..ce41366 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_capsule_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: d141ec36e4fb0f64bb4ac4047617544e +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingJoint_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingJoint_dff.tif new file mode 100644 index 0000000..511c8b4 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingJoint_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingJoint_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingJoint_dff.tif.meta new file mode 100644 index 0000000..6c578cb --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingJoint_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: a4c8bf75cf779a04d876d66e3c424b22 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 256 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingJoint_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingJoint_nrm.tif new file mode 100644 index 0000000..3e83730 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingJoint_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingJoint_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingJoint_nrm.tif.meta new file mode 100644 index 0000000..11fe374 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingJoint_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 3a6c53c8c7b912d47a3c325b902452ae +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 256 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingSupport_base_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingSupport_base_dff.tif new file mode 100644 index 0000000..344673f Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingSupport_base_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingSupport_base_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingSupport_base_dff.tif.meta new file mode 100644 index 0000000..2975bad --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingSupport_base_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 6ee0cdb03f6235849934d2f4eca64e50 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingSupport_base_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingSupport_base_nrm.tif new file mode 100644 index 0000000..343965e Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingSupport_base_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingSupport_base_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingSupport_base_nrm.tif.meta new file mode 100644 index 0000000..b72a857 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_ceilingSupport_base_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: c1c455bc2a481fc4da42ae358cc227c9 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_A_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_A_dff.tif new file mode 100644 index 0000000..238ffa7 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_A_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_A_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_A_dff.tif.meta new file mode 100644 index 0000000..72176d9 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_A_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: d1d665634e2d4314289ea10e4601ce46 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_A_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_A_nrm.tif new file mode 100644 index 0000000..50f60e1 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_A_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_A_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_A_nrm.tif.meta new file mode 100644 index 0000000..8dafad9 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_A_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 082201cc74a2a494a8ffa671ab7b699d +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_B_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_B_dff.tif new file mode 100644 index 0000000..6082e23 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_B_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_B_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_B_dff.tif.meta new file mode 100644 index 0000000..350356c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_B_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: ad8454213300ebe44b65c4f0b47b4aea +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_B_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_B_nrm.tif new file mode 100644 index 0000000..f30ad19 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_B_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_B_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_B_nrm.tif.meta new file mode 100644 index 0000000..4d48aa9 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_B_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: c95617b557171104ab39b1b72a0baff5 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_C_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_C_dff.tif new file mode 100644 index 0000000..18e5fb6 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_C_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_C_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_C_dff.tif.meta new file mode 100644 index 0000000..9881b05 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_C_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 54a52fe4ebc21f346ad267d9ccc42970 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_C_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_C_nrm.tif new file mode 100644 index 0000000..fca041f Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_C_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_C_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_C_nrm.tif.meta new file mode 100644 index 0000000..9aff410 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_computerStation_C_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: c1187f562fa79a84bad0173b6e357232 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_fan_large_aperture_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_fan_large_aperture_dff.tif new file mode 100644 index 0000000..ff70742 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_fan_large_aperture_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_fan_large_aperture_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_fan_large_aperture_dff.tif.meta new file mode 100644 index 0000000..42ad629 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_fan_large_aperture_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 96dc944c8048d6947b0d89f40031bc1a +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_fan_large_aperture_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_fan_large_aperture_nrm.tif new file mode 100644 index 0000000..bfe3ba0 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_fan_large_aperture_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_fan_large_aperture_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_fan_large_aperture_nrm.tif.meta new file mode 100644 index 0000000..56a0392 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_fan_large_aperture_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: f2eab48fdd6247846a288f2deaa8d811 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_floorBot_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_floorBot_dff.tif new file mode 100644 index 0000000..27026c9 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_floorBot_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_floorBot_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_floorBot_dff.tif.meta new file mode 100644 index 0000000..29113c5 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_floorBot_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: aadb87c7d77078543b7e1ac2e60a9e39 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_floorBot_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_floorBot_nrm.tif new file mode 100644 index 0000000..8640626 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_floorBot_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_floorBot_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_floorBot_nrm.tif.meta new file mode 100644 index 0000000..b449f9e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_floorBot_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 4724455be221c9b48899f07add0e4d70 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_hoverPad_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_hoverPad_dff.tif new file mode 100644 index 0000000..79f7172 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_hoverPad_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_hoverPad_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_hoverPad_dff.tif.meta new file mode 100644 index 0000000..2860541 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_hoverPad_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: ae30ff48c889981458779824ff23213b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_hoverPad_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_hoverPad_nrm.tif new file mode 100644 index 0000000..3652064 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_hoverPad_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_hoverPad_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_hoverPad_nrm.tif.meta new file mode 100644 index 0000000..a4449dc --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_hoverPad_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: f23e6a126f7b65f499ad2d9bcf247004 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_parachuteCrate_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_parachuteCrate_dff.tif new file mode 100644 index 0000000..0386a8e Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_parachuteCrate_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_parachuteCrate_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_parachuteCrate_dff.tif.meta new file mode 100644 index 0000000..e967b03 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_parachuteCrate_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 45e99fd8aa5ec124980e07ac4c103302 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_parachuteCrate_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_parachuteCrate_nrm.tif new file mode 100644 index 0000000..ed28383 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_parachuteCrate_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_parachuteCrate_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_parachuteCrate_nrm.tif.meta new file mode 100644 index 0000000..64ec1ea --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_parachuteCrate_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 852a4e2a82385004a93f169c65e9903b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_powerCube_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_powerCube_dff.tif new file mode 100644 index 0000000..ca142e4 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_powerCube_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_powerCube_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_powerCube_dff.tif.meta new file mode 100644 index 0000000..aa0fea3 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_powerCube_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: dd87913ae634012479e427241ea29c5f +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_powerCube_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_powerCube_nrm.tif new file mode 100644 index 0000000..c27cb8f Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_powerCube_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_powerCube_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_powerCube_nrm.tif.meta new file mode 100644 index 0000000..5cc1db4 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_powerCube_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: ceea5d50d650fb64fbf2235ec8db0097 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_retroTelevision_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_retroTelevision_dff.tif new file mode 100644 index 0000000..24e4852 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_retroTelevision_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_retroTelevision_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_retroTelevision_dff.tif.meta new file mode 100644 index 0000000..8028fbe --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_retroTelevision_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 882034664713772499e4d39ea6e7f6bf +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_retroTelevision_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_retroTelevision_nrm.tif new file mode 100644 index 0000000..f50bde6 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_retroTelevision_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_retroTelevision_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_retroTelevision_nrm.tif.meta new file mode 100644 index 0000000..25c292f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_retroTelevision_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 65c92c3588734a948a867797af685ac0 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_robotArm_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_robotArm_dff.tif new file mode 100644 index 0000000..59df911 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_robotArm_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_robotArm_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_robotArm_dff.tif.meta new file mode 100644 index 0000000..058a00e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_robotArm_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 89a8157e5dfe7cf409a2124443e05ff5 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 4096 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_robotArm_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_robotArm_nrm.tif new file mode 100644 index 0000000..28ac66e Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_robotArm_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_robotArm_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_robotArm_nrm.tif.meta new file mode 100644 index 0000000..5e44442 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_robotArm_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 244e7cacbaba3024ca26a4405fcd083b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 4096 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_samoflange_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_samoflange_dff.tif new file mode 100644 index 0000000..672e97b Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_samoflange_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_samoflange_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_samoflange_dff.tif.meta new file mode 100644 index 0000000..bda5b85 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_samoflange_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 6677f4d8c55320a43b8357cca0add58e +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_samoflange_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_samoflange_nrm.tif new file mode 100644 index 0000000..cf3b1d3 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_samoflange_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_samoflange_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_samoflange_nrm.tif.meta new file mode 100644 index 0000000..5762c78 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_samoflange_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: b169c077e6fe56c4d85caa3c30fa9cb4 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_support_foot_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_support_foot_dff.tif new file mode 100644 index 0000000..428a276 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_support_foot_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_support_foot_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_support_foot_dff.tif.meta new file mode 100644 index 0000000..fcc8e4f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_support_foot_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 6bca6c88db10efc4f919abea9c1055e8 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 256 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_support_foot_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_support_foot_nrm.tif new file mode 100644 index 0000000..9c2d024 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_support_foot_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_support_foot_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_support_foot_nrm.tif.meta new file mode 100644 index 0000000..e9c9480 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_support_foot_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 424c4da4a7e6ae04991227925a81fac6 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 256 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_turbine_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_turbine_dff.tif new file mode 100644 index 0000000..af4ba11 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_turbine_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_turbine_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_turbine_dff.tif.meta new file mode 100644 index 0000000..1910029 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_turbine_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: c4c6d0cc3beda564390cae41120db02b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_turbine_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_turbine_nrm.tif new file mode 100644 index 0000000..c013cd7 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_turbine_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_turbine_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_turbine_nrm.tif.meta new file mode 100644 index 0000000..0865a49 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_turbine_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: e0dcd740f8802dc42974b17d6b9edd92 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_vent_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_vent_dff.tif new file mode 100644 index 0000000..8e240f8 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_vent_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_vent_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_vent_dff.tif.meta new file mode 100644 index 0000000..e4dd012 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_vent_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 547d9195d7e0ce04a8e14169bd76ea90 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_vent_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_vent_nrm.tif new file mode 100644 index 0000000..8a1cab3 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_vent_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_vent_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_vent_nrm.tif.meta new file mode 100644 index 0000000..f4c28b7 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_vent_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 5bc27fa8d8b4ad54f8f146ecf5d17069 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_wallLight_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_wallLight_dff.tif new file mode 100644 index 0000000..357fb8c Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_wallLight_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_wallLight_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_wallLight_dff.tif.meta new file mode 100644 index 0000000..e0772fd --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_wallLight_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 38f308ce5a43e6a4480d67daf059e8fc +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_wallLight_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_wallLight_nrm.tif new file mode 100644 index 0000000..42fa5c6 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_wallLight_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_wallLight_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_wallLight_nrm.tif.meta new file mode 100644 index 0000000..4656a5b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_wallLight_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 96924dfb872085e4a988982b0be62b19 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_weight_ton_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_weight_ton_dff.tif new file mode 100644 index 0000000..baeb1e0 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_weight_ton_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_weight_ton_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_weight_ton_dff.tif.meta new file mode 100644 index 0000000..e87f930 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_weight_ton_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 4591e3c30bfcb9a4aa5f79b5f7d65fd6 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_weight_ton_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_weight_ton_nrm.tif new file mode 100644 index 0000000..f1dbdd3 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_weight_ton_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_weight_ton_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_weight_ton_nrm.tif.meta new file mode 100644 index 0000000..3cead46 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/prop_weight_ton_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: f56d7cc7e2523934fac126e74f923490 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/swatch_greyMid_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/swatch_greyMid_dff.tif new file mode 100644 index 0000000..fa83f8b Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/swatch_greyMid_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/swatch_greyMid_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/swatch_greyMid_dff.tif.meta new file mode 100644 index 0000000..5cb22ef --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/swatch_greyMid_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: a04c2c7fbdeabc84583bb12e72f1c07e +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/swatch_whiteDirty_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/swatch_whiteDirty_dff.tif new file mode 100644 index 0000000..9201be7 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/swatch_whiteDirty_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/swatch_whiteDirty_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/swatch_whiteDirty_dff.tif.meta new file mode 100644 index 0000000..c7229f9 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/swatch_whiteDirty_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 5d7faddc7c30ce845b09c89f01db2c42 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 64 + textureSettings: + filterMode: 2 + aniso: 4 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_chevron_yellow_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_chevron_yellow_dff.tif new file mode 100644 index 0000000..5b0d8a9 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_chevron_yellow_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_chevron_yellow_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_chevron_yellow_dff.tif.meta new file mode 100644 index 0000000..3f70adb --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_chevron_yellow_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 7993692de37df70448aa6d78bc854530 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_chevron_yellow_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_chevron_yellow_nrm.tif new file mode 100644 index 0000000..a78acaa Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_chevron_yellow_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_chevron_yellow_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_chevron_yellow_nrm.tif.meta new file mode 100644 index 0000000..68f13f6 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_chevron_yellow_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 710161cf57261974893b0b3428b2a37f +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_crt_fuzz_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_crt_fuzz_dff.tif new file mode 100644 index 0000000..65be46e Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_crt_fuzz_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_crt_fuzz_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_crt_fuzz_dff.tif.meta new file mode 100644 index 0000000..cede707 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_crt_fuzz_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: e86550c8af6f9b24d9bdba74aa84b465 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_fabric_parachute_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_fabric_parachute_dff.tif new file mode 100644 index 0000000..07ea7f3 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_fabric_parachute_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_fabric_parachute_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_fabric_parachute_dff.tif.meta new file mode 100644 index 0000000..fc8835d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_fabric_parachute_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: f7310ea6ed218564eaf8cb30ac345562 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 7 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSlabs_01_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSlabs_01_dff.tif new file mode 100644 index 0000000..9676573 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSlabs_01_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSlabs_01_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSlabs_01_dff.tif.meta new file mode 100644 index 0000000..f8e0861 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSlabs_01_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 7819172fcf274f44382302040a469c78 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 9 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSlabs_01_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSlabs_01_nrm.tif new file mode 100644 index 0000000..3fc5d59 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSlabs_01_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSlabs_01_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSlabs_01_nrm.tif.meta new file mode 100644 index 0000000..8de8c23 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSlabs_01_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 2b7730b04660ac542bf37bed8a6a1ee5 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSmooth_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSmooth_dff.tif new file mode 100644 index 0000000..1106ed3 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSmooth_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSmooth_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSmooth_dff.tif.meta new file mode 100644 index 0000000..cecbc95 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSmooth_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 2a85d3adba2f20942acf6bd8b3969584 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 9 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSmooth_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSmooth_nrm.tif new file mode 100644 index 0000000..b3b8389 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSmooth_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSmooth_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSmooth_nrm.tif.meta new file mode 100644 index 0000000..1c6f355 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_concreteSmooth_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: bfa791c7e24bd4d48b674f8be27b88da +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_rubber_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_rubber_dff.tif new file mode 100644 index 0000000..e1e5203 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_rubber_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_rubber_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_rubber_dff.tif.meta new file mode 100644 index 0000000..c78d4a7 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_rubber_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: beba57604bd0f7c4c86b1a2020b6f669 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 5 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_rubber_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_rubber_nrm.tif new file mode 100644 index 0000000..4235f9a Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_rubber_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_rubber_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_rubber_nrm.tif.meta new file mode 100644 index 0000000..a01a951 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_floor_rubber_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 54b5c1b2ef782884e841595300922f46 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_grate_tech_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_grate_tech_dff.tif new file mode 100644 index 0000000..106e463 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_grate_tech_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_grate_tech_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_grate_tech_dff.tif.meta new file mode 100644 index 0000000..ac99318 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_grate_tech_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: f6ea480f5cd5a694084d4db503733830 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_grate_tech_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_grate_tech_nrm.tif new file mode 100644 index 0000000..2bfe8d8 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_grate_tech_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_grate_tech_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_grate_tech_nrm.tif.meta new file mode 100644 index 0000000..9f01497 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_grate_tech_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 9a8f12fee98936349858716a27ce464e +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_gutter_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_gutter_dff.tif new file mode 100644 index 0000000..549fbf8 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_gutter_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_gutter_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_gutter_dff.tif.meta new file mode 100644 index 0000000..84cbff7 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_gutter_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 059330c175075e04dba17cb9a2ccecdb +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 8 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_gutter_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_gutter_nrm.tif new file mode 100644 index 0000000..4d03d88 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_gutter_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_gutter_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_gutter_nrm.tif.meta new file mode 100644 index 0000000..b9dcc79 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_gutter_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: aa356b2627cf3364d9114cab1853fe16 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_handrail_yellow_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_handrail_yellow_dff.tif new file mode 100644 index 0000000..5f11116 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_handrail_yellow_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_handrail_yellow_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_handrail_yellow_dff.tif.meta new file mode 100644 index 0000000..a563579 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_handrail_yellow_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: f24fb563d538066489138e2d29c515a3 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 5 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_handrail_yellow_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_handrail_yellow_nrm.tif new file mode 100644 index 0000000..631f4de Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_handrail_yellow_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_handrail_yellow_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_handrail_yellow_nrm.tif.meta new file mode 100644 index 0000000..0d8bc4f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_handrail_yellow_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 853ae482c7cfd70498d8331224c1fac1 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_metal_grey_dark02_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_metal_grey_dark02_dff.tif new file mode 100644 index 0000000..f7fc935 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_metal_grey_dark02_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_metal_grey_dark02_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_metal_grey_dark02_dff.tif.meta new file mode 100644 index 0000000..18a4080 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_metal_grey_dark02_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: c6f5a160ff47e4b46b727e3076529f99 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_metal_grey_dark02_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_metal_grey_dark02_nrm.tif new file mode 100644 index 0000000..011bb35 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_metal_grey_dark02_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_metal_grey_dark02_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_metal_grey_dark02_nrm.tif.meta new file mode 100644 index 0000000..995b07f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_metal_grey_dark02_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 213a8be835c267849a37dc8f51dbbab9 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_metal_light_dirty_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_metal_light_dirty_dff.tif new file mode 100644 index 0000000..b17dc48 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_metal_light_dirty_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_metal_light_dirty_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_metal_light_dirty_dff.tif.meta new file mode 100644 index 0000000..19f6fc6 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_metal_light_dirty_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 0eb71c160050e4c4383e281c11aa37ad +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_paint_orange_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_paint_orange_dff.tif new file mode 100644 index 0000000..a5a2607 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_paint_orange_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_paint_orange_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_paint_orange_dff.tif.meta new file mode 100644 index 0000000..eae8b9e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_paint_orange_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: b524f9db1ef65e746a5cca27a4b74ec7 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_paint_orange_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_paint_orange_nrm.tif new file mode 100644 index 0000000..dec5248 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_paint_orange_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_paint_orange_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_paint_orange_nrm.tif.meta new file mode 100644 index 0000000..91f0ffa --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_paint_orange_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 12bc7b9834ecf6742957be57c93019e9 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_pipe_blue_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_pipe_blue_dff.tif new file mode 100644 index 0000000..a737d6b Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_pipe_blue_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_pipe_blue_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_pipe_blue_dff.tif.meta new file mode 100644 index 0000000..85ca0a1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_pipe_blue_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 7895f2f4ae3c3a14eae5aa952c91b074 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 2 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_pipe_pink_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_pipe_pink_dff.tif new file mode 100644 index 0000000..15081fb Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_pipe_pink_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_pipe_pink_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_pipe_pink_dff.tif.meta new file mode 100644 index 0000000..e945331 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_pipe_pink_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 480e680a233cf084695c0c210ff6853c +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 2 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_pipe_red_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_pipe_red_dff.tif new file mode 100644 index 0000000..df4d899 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_pipe_red_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_pipe_red_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_pipe_red_dff.tif.meta new file mode 100644 index 0000000..34c1af5 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_pipe_red_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 4de0e403bca315e49a4c83f12548e6b4 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_strip_metal_dark_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_strip_metal_dark_dff.tif new file mode 100644 index 0000000..09629f8 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_strip_metal_dark_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_strip_metal_dark_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_strip_metal_dark_dff.tif.meta new file mode 100644 index 0000000..09d0504 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_strip_metal_dark_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: ff7f6beb534955949bccf51e989c8555 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_strip_metal_dark_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_strip_metal_dark_nrm.tif new file mode 100644 index 0000000..f234b00 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_strip_metal_dark_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_strip_metal_dark_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_strip_metal_dark_nrm.tif.meta new file mode 100644 index 0000000..a5086c4 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_strip_metal_dark_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 97bd86e357a026340a923de930ddf5e0 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_support_upright_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_support_upright_dff.tif new file mode 100644 index 0000000..e025200 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_support_upright_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_support_upright_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_support_upright_dff.tif.meta new file mode 100644 index 0000000..7219404 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_support_upright_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 5748c3ce3369e1f479200b0c677fb6d8 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 4 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_support_upright_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_support_upright_nrm.tif new file mode 100644 index 0000000..4f31841 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_support_upright_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_support_upright_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_support_upright_nrm.tif.meta new file mode 100644 index 0000000..d5a470a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_support_upright_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: b1e3677265ef71745b9e9f4a862eada4 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_tube_ribbed_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_tube_ribbed_dff.tif new file mode 100644 index 0000000..8cfaa06 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_tube_ribbed_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_tube_ribbed_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_tube_ribbed_dff.tif.meta new file mode 100644 index 0000000..f0df6dd --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_tube_ribbed_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 91dda1cd9a9dda44db5c00781e19e185 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 2 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_tube_ribbed_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_tube_ribbed_nrm.tif new file mode 100644 index 0000000..2f9c3ed Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_tube_ribbed_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_tube_ribbed_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_tube_ribbed_nrm.tif.meta new file mode 100644 index 0000000..f8fffe2 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_tube_ribbed_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 987560774a0ae9543bd328e2b799e1b2 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel01_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel01_dff.tif new file mode 100644 index 0000000..af7331b Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel01_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel01_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel01_dff.tif.meta new file mode 100644 index 0000000..3ca6d30 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel01_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 11b6b7f6c008fe54eb962f628800921a +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 4 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel01_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel01_nrm.tif new file mode 100644 index 0000000..217d890 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel01_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel01_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel01_nrm.tif.meta new file mode 100644 index 0000000..1ce65e0 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel01_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 60f2a31230446e747bf69d8b6fd875b7 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel02_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel02_dff.tif new file mode 100644 index 0000000..cc83c76 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel02_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel02_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel02_dff.tif.meta new file mode 100644 index 0000000..af6af84 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel02_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: e756e0d44f412524e8f45166736b0b7b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 4 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel02_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel02_nrm.tif new file mode 100644 index 0000000..173943f Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel02_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel02_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel02_nrm.tif.meta new file mode 100644 index 0000000..2c44e9b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel02_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 2f161a8975c704d43b0b7ca51e9dd337 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel03_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel03_dff.tif new file mode 100644 index 0000000..c1aad7b Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel03_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel03_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel03_dff.tif.meta new file mode 100644 index 0000000..41ec27a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel03_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: f249f695884b6db4d83ea2de60ad3c06 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 4 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel03_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel03_nrm.tif new file mode 100644 index 0000000..93858ae Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel03_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel03_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel03_nrm.tif.meta new file mode 100644 index 0000000..817b0db --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/tile_wallPanel03_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 2cd5da909ac5fa84f815421b3a4da673 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcFlyer_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcFlyer_dff.tif new file mode 100644 index 0000000..8201425 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcFlyer_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcFlyer_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcFlyer_dff.tif.meta new file mode 100644 index 0000000..ad81223 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcFlyer_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: d56722fd7cc841042bfafe48130cf5d8 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcFlyer_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcFlyer_nrm.tif new file mode 100644 index 0000000..d24ab19 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcFlyer_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcFlyer_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcFlyer_nrm.tif.meta new file mode 100644 index 0000000..b7a40d1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcFlyer_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 0ad7c77e77679ab46bf11303c59b229a +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcLand_clean_dff.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcLand_clean_dff.tif new file mode 100644 index 0000000..2ea5c3a Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcLand_clean_dff.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcLand_clean_dff.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcLand_clean_dff.tif.meta new file mode 100644 index 0000000..f26d458 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcLand_clean_dff.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 824732871104541408217557a73d9490 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcLand_clean_nrm.tif b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcLand_clean_nrm.tif new file mode 100644 index 0000000..0bc70c8 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcLand_clean_nrm.tif differ diff --git a/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcLand_clean_nrm.tif.meta b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcLand_clean_nrm.tif.meta new file mode 100644 index 0000000..1fc432f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/RobotLabModels/Textures/vehicle_rcLand_clean_nrm.tif.meta @@ -0,0 +1,54 @@ +fileFormatVersion: 2 +guid: 01463b33e7d716843bbe104900713009 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic/Scenes.meta b/PerspectivePuzzleMechanic_2018/Scenes.meta similarity index 100% rename from PerspectivePuzzleMechanic/Scenes.meta rename to PerspectivePuzzleMechanic_2018/Scenes.meta diff --git a/PerspectivePuzzleMechanic_2018/Scenes/Hangar.unity b/PerspectivePuzzleMechanic_2018/Scenes/Hangar.unity new file mode 100644 index 0000000..18807d4 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Scenes/Hangar.unity differ diff --git a/PerspectivePuzzleMechanic_2018/Scenes/Hangar.unity.meta b/PerspectivePuzzleMechanic_2018/Scenes/Hangar.unity.meta new file mode 100644 index 0000000..e9fe321 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Scenes/Hangar.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5662c8b151260eb42bcd2f1b2e744db7 +timeCreated: 1460160018 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Scenes/Puzzle.unity b/PerspectivePuzzleMechanic_2018/Scenes/Puzzle.unity new file mode 100644 index 0000000..a3b09ea Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Scenes/Puzzle.unity differ diff --git a/PerspectivePuzzleMechanic/Scenes/Puzzle.unity.meta b/PerspectivePuzzleMechanic_2018/Scenes/Puzzle.unity.meta similarity index 100% rename from PerspectivePuzzleMechanic/Scenes/Puzzle.unity.meta rename to PerspectivePuzzleMechanic_2018/Scenes/Puzzle.unity.meta diff --git a/PerspectivePuzzleMechanic/Scripts.meta b/PerspectivePuzzleMechanic_2018/Scripts.meta similarity index 100% rename from PerspectivePuzzleMechanic/Scripts.meta rename to PerspectivePuzzleMechanic_2018/Scripts.meta diff --git a/PerspectivePuzzleMechanic_2018/Scripts/FirstPersonController.cs b/PerspectivePuzzleMechanic_2018/Scripts/FirstPersonController.cs new file mode 100644 index 0000000..8ab87b1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Scripts/FirstPersonController.cs @@ -0,0 +1,257 @@ +using System; +using UnityEngine; +using UnityStandardAssets.CrossPlatformInput; +using UnityStandardAssets.Utility; +using Random = UnityEngine.Random; + +namespace UnityStandardAssets.Characters.FirstPerson +{ + [RequireComponent(typeof (CharacterController))] + [RequireComponent(typeof (AudioSource))] + public class FirstPersonController : MonoBehaviour + { + [SerializeField] private bool m_IsWalking; + [SerializeField] private float m_WalkSpeed; + [SerializeField] private float m_RunSpeed; + [SerializeField] [Range(0f, 1f)] private float m_RunstepLenghten; + [SerializeField] private float m_JumpSpeed; + [SerializeField] private float m_StickToGroundForce; + [SerializeField] private float m_GravityMultiplier; + [SerializeField] private MouseLook m_MouseLook; + [SerializeField] private bool m_UseFovKick; + [SerializeField] private FOVKick m_FovKick = new FOVKick(); + [SerializeField] private bool m_UseHeadBob; + [SerializeField] private CurveControlledBob m_HeadBob = new CurveControlledBob(); + [SerializeField] private LerpControlledBob m_JumpBob = new LerpControlledBob(); + [SerializeField] private float m_StepInterval; + [SerializeField] private AudioClip[] m_FootstepSounds; // an array of footstep sounds that will be randomly selected from. + [SerializeField] private AudioClip m_JumpSound; // the sound played when character leaves the ground. + [SerializeField] private AudioClip m_LandSound; // the sound played when character touches back on ground. + + private Camera m_Camera; + private bool m_Jump; + private float m_YRotation; + private Vector2 m_Input; + private Vector3 m_MoveDir = Vector3.zero; + private CharacterController m_CharacterController; + private CollisionFlags m_CollisionFlags; + private bool m_PreviouslyGrounded; + private Vector3 m_OriginalCameraPosition; + private float m_StepCycle; + private float m_NextStep; + private bool m_Jumping; + private AudioSource m_AudioSource; + + // Use this for initialization + private void Start() + { + m_CharacterController = GetComponent(); + m_Camera = Camera.main; + m_OriginalCameraPosition = m_Camera.transform.localPosition; + m_FovKick.Setup(m_Camera); + m_HeadBob.Setup(m_Camera, m_StepInterval); + m_StepCycle = 0f; + m_NextStep = m_StepCycle/2f; + m_Jumping = false; + m_AudioSource = GetComponent(); + m_MouseLook.Init(transform , m_Camera.transform); + } + + + // Update is called once per frame + private void Update() + { + RotateView(); + // the jump state needs to read here to make sure it is not missed + if (!m_Jump) + { + m_Jump = CrossPlatformInputManager.GetButtonDown("Jump"); + } + + if (!m_PreviouslyGrounded && m_CharacterController.isGrounded) + { + StartCoroutine(m_JumpBob.DoBobCycle()); + PlayLandingSound(); + m_MoveDir.y = 0f; + m_Jumping = false; + } + if (!m_CharacterController.isGrounded && !m_Jumping && m_PreviouslyGrounded) + { + m_MoveDir.y = 0f; + } + + m_PreviouslyGrounded = m_CharacterController.isGrounded; + } + + + private void PlayLandingSound() + { + m_AudioSource.clip = m_LandSound; + m_AudioSource.Play(); + m_NextStep = m_StepCycle + .5f; + } + + + private void FixedUpdate() + { + float speed; + GetInput(out speed); + // always move along the camera forward as it is the direction that it being aimed at + Vector3 desiredMove = transform.forward*m_Input.y + transform.right*m_Input.x; + + // get a normal for the surface that is being touched to move along it + RaycastHit hitInfo; + Physics.SphereCast(transform.position, m_CharacterController.radius, Vector3.down, out hitInfo, + m_CharacterController.height/2f); + desiredMove = Vector3.ProjectOnPlane(desiredMove, hitInfo.normal).normalized; + + m_MoveDir.x = desiredMove.x*speed; + m_MoveDir.z = desiredMove.z*speed; + + + if (m_CharacterController.isGrounded) + { + m_MoveDir.y = -m_StickToGroundForce; + + if (m_Jump) + { + m_MoveDir.y = m_JumpSpeed; + PlayJumpSound(); + m_Jump = false; + m_Jumping = true; + } + } + else + { + m_MoveDir += Physics.gravity*m_GravityMultiplier*Time.fixedDeltaTime; + } + m_CollisionFlags = m_CharacterController.Move(m_MoveDir*Time.fixedDeltaTime); + + ProgressStepCycle(speed); + UpdateCameraPosition(speed); + } + + + private void PlayJumpSound() + { + m_AudioSource.clip = m_JumpSound; + m_AudioSource.Play(); + } + + + private void ProgressStepCycle(float speed) + { + if (m_CharacterController.velocity.sqrMagnitude > 0 && (m_Input.x != 0 || m_Input.y != 0)) + { + m_StepCycle += (m_CharacterController.velocity.magnitude + (speed*(m_IsWalking ? 1f : m_RunstepLenghten)))* + Time.fixedDeltaTime; + } + + if (!(m_StepCycle > m_NextStep)) + { + return; + } + + m_NextStep = m_StepCycle + m_StepInterval; + + PlayFootStepAudio(); + } + + + private void PlayFootStepAudio() + { + if (!m_CharacterController.isGrounded) + { + return; + } + // pick & play a random footstep sound from the array, + // excluding sound at index 0 + int n = Random.Range(1, m_FootstepSounds.Length); + m_AudioSource.clip = m_FootstepSounds[n]; + m_AudioSource.PlayOneShot(m_AudioSource.clip); + // move picked sound to index 0 so it's not picked next time + m_FootstepSounds[n] = m_FootstepSounds[0]; + m_FootstepSounds[0] = m_AudioSource.clip; + } + + + private void UpdateCameraPosition(float speed) + { + Vector3 newCameraPosition; + if (!m_UseHeadBob) + { + return; + } + if (m_CharacterController.velocity.magnitude > 0 && m_CharacterController.isGrounded) + { + m_Camera.transform.localPosition = + m_HeadBob.DoHeadBob(m_CharacterController.velocity.magnitude + + (speed*(m_IsWalking ? 1f : m_RunstepLenghten))); + newCameraPosition = m_Camera.transform.localPosition; + newCameraPosition.y = m_Camera.transform.localPosition.y - m_JumpBob.Offset(); + } + else + { + newCameraPosition = m_Camera.transform.localPosition; + newCameraPosition.y = m_OriginalCameraPosition.y - m_JumpBob.Offset(); + } + m_Camera.transform.localPosition = newCameraPosition; + } + + + private void GetInput(out float speed) + { + // Read input + float horizontal = CrossPlatformInputManager.GetAxis("Horizontal"); + float vertical = CrossPlatformInputManager.GetAxis("Vertical"); + + bool waswalking = m_IsWalking; + +#if !MOBILE_INPUT + // On standalone builds, walk/run speed is modified by a key press. + // keep track of whether or not the character is walking or running + m_IsWalking = !Input.GetKey(KeyCode.LeftShift); +#endif + // set the desired speed to be walking or running + speed = m_IsWalking ? m_WalkSpeed : m_RunSpeed; + m_Input = new Vector2(horizontal, vertical); + + // normalize input if it exceeds 1 in combined length: + if (m_Input.sqrMagnitude > 1) + { + m_Input.Normalize(); + } + + // handle speed change to give an fov kick + // only if the player is going to a run, is running and the fovkick is to be used + if (m_IsWalking != waswalking && m_UseFovKick && m_CharacterController.velocity.sqrMagnitude > 0) + { + StopAllCoroutines(); + StartCoroutine(!m_IsWalking ? m_FovKick.FOVKickUp() : m_FovKick.FOVKickDown()); + } + } + + + private void RotateView() + { + m_MouseLook.LookRotation (transform, m_Camera.transform); + } + + + private void OnControllerColliderHit(ControllerColliderHit hit) + { + Rigidbody body = hit.collider.attachedRigidbody; + //dont move the rigidbody if the character is on top of it + if (m_CollisionFlags == CollisionFlags.Below) + { + return; + } + + if (body == null || body.isKinematic) + { + return; + } + body.AddForceAtPosition(m_CharacterController.velocity*0.1f, hit.point, ForceMode.Impulse); + } + } +} diff --git a/PerspectivePuzzleMechanic/Scripts/FirstPersonController.cs.meta b/PerspectivePuzzleMechanic_2018/Scripts/FirstPersonController.cs.meta similarity index 100% rename from PerspectivePuzzleMechanic/Scripts/FirstPersonController.cs.meta rename to PerspectivePuzzleMechanic_2018/Scripts/FirstPersonController.cs.meta diff --git a/PerspectivePuzzleMechanic_2018/Scripts/LampShutOff.cs b/PerspectivePuzzleMechanic_2018/Scripts/LampShutOff.cs new file mode 100644 index 0000000..4d1b584 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Scripts/LampShutOff.cs @@ -0,0 +1,21 @@ +using UnityEngine; +using System.Collections; + +public class LampShutOff : MonoBehaviour { + + private Transform light; + + // Use this for initialization + void Start () { + light = this.gameObject.transform.GetChild(1); + } + + // Update is called once per frame + void Update () { + if(this.gameObject.GetComponent() != null) + { + Destroy(light.gameObject); + this.GetComponent().enabled = false; + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Scripts/LampShutOff.cs.meta b/PerspectivePuzzleMechanic_2018/Scripts/LampShutOff.cs.meta new file mode 100644 index 0000000..9060878 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Scripts/LampShutOff.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2800c1b4c3f560f4ba4c48eabe572819 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Scripts/Last versions.txt b/PerspectivePuzzleMechanic_2018/Scripts/Last versions.txt new file mode 100644 index 0000000..3b1f7b8 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Scripts/Last versions.txt @@ -0,0 +1,757 @@ + + //----------V 1.4 + // too much time since the last try, I'll try to redo the work from scratch on the next version + // + //public Material whiteToon; + //public Material blueToon; + //public Material redToon; + // + //private Camera mainCamera; + //private Transform targetForTakenObjects; + //private GameObject targetForTakenObjectsObject; + //private Vector3 tempBounds; + //private float tempCenter; + //private float tempDistance; + //private float tempDistance_; + //private float tempCos; + //private Vector3 tempScale; + //private GameObject pointer; + //private GameObject takenObject; + //private RaycastHit hit; + //private Ray ray; + //private float distanceMultiplier; + //private Vector3 scaleMultiplier; + //private LayerMask layerMask = ~(1 << 8); + //private float cameraHeight = 0; + //private float cosine; + //private float positionCalculation; + //private float lastPositionCalculation = 0; + //private Vector3 lastHitPoint = Vector3.zero; + //private Vector3 lastRotation = Vector3.zero; + //private float rayMaxRange = 1000f; + //private bool isRayTouchingSomething = true; + //private float lastRotationY; + // + //private Vector3 lastHit = Vector3.zero; + //private Vector3 centerCorrection = Vector3.zero; + //private float takenObjSize = 0; + // + //void Start() + //{ + // + // mainCamera = GameObject.FindGameObjectWithTag("MainCamera").GetComponent(); + // targetForTakenObjects = GameObject.Find("targetForTakenObjects").transform; + // targetForTakenObjectsObject = GameObject.Find("targetForTakenObjects"); + // pointer = GameObject.Find("Pointer"); + // //Cursor.visible = false; + // pointer.transform.position = mainCamera.ScreenToWorldPoint(new Vector3(Screen.width / 2, (Screen.height / 2) + (Screen.height / 10), 1)); + // pointer.transform.parent = mainCamera.transform; + //} + + //void Update() + //{ + // + // ray = mainCamera.ScreenPointToRay(new Vector3(Screen.width / 2, (Screen.height / 2) + (Screen.height / 10), 0)); + // Debug.DrawRay(ray.origin, ray.direction * 200, Color.yellow); + // + // if (Physics.Raycast(ray, out hit, rayMaxRange, layerMask)) + // { + // if (hit.transform.tag == "Getable") + // { + // pointer.GetComponent().material = blueToon; + // } + // else + // { + // pointer.GetComponent().material = whiteToon; + // } + // } + // + // isRayTouchingSomething = Physics.Raycast(ray, out hit, rayMaxRange, layerMask); + // + // if (takenObject != null) + // { + // pointer.GetComponent().material = redToon; + // } + // else + // { + // targetForTakenObjects.position = hit.point; + // } + // + // if (Input.GetKeyDown(KeyCode.E) || Input.GetMouseButtonDown(0)) + // { + // if (hit.transform.tag == "Getable") + // { + // + // takenObject = hit.transform.gameObject; + // targetForTakenObjects.position = takenObject.transform.position; + // targetForTakenObjects.rotation = takenObject.transform.rotation; + // targetForTakenObjects.localScale = takenObject.transform.localScale; + // tempBounds = takenObject.GetComponent().bounds.size; + // tempDistance = Vector3.Distance(hit.point, takenObject.transform.position); + // tempCos = Vector3.Dot(ray.direction, hit.normal); + // tempScale = takenObject.transform.localScale; + // tempDistance_ = Vector3.Distance(mainCamera.transform.position, takenObject.transform.position); + // + // if (takenObject.GetComponent() != null) + // { + // System.Type type = takenObject.GetComponent().GetType(); + // Component copy = targetForTakenObjectsObject.AddComponent(type); + // targetForTakenObjectsObject.GetComponent().sharedMesh = takenObject.GetComponent().sharedMesh; + // targetForTakenObjectsObject.GetComponent().convex = true; + // targetForTakenObjectsObject.GetComponent().isTrigger = true; + // } + // // Copied fields can be restricted with BindingFlags + // //targetForTakenObjectsObject.GetComponent().material = takenObject.GetComponent().material; + // + // distanceMultiplier = Vector3.Distance(mainCamera.transform.position, takenObject.transform.position); + // scaleMultiplier = takenObject.transform.localScale; + // lastRotation = takenObject.transform.rotation.eulerAngles; + // lastRotationY = lastRotation.y - mainCamera.transform.eulerAngles.y; + // + // //takenObject.transform.transform.parent = Camera.main.transform; + // + // if (takenObject.GetComponent() == null) + // { + // takenObject.AddComponent(); + // } + // takenObject.GetComponent().isKinematic = true; + // takenObject.GetComponent().isTrigger = true; + // if (takenObject.GetComponent() != null) + // { + // takenObject.GetComponent().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; + // takenObject.GetComponent().receiveShadows = false; + // } + // takenObject.gameObject.layer = 8; + // foreach (Transform child in takenObject.transform) + // { + // takenObject.GetComponent().isKinematic = true; + // takenObject.GetComponent().isTrigger = true; + // child.gameObject.layer = 8; + // } + // } + // + // + // } + // if (Input.GetKey(KeyCode.E) || Input.GetMouseButton(0)) + // { + // if (takenObject != null) + // { + // + // float newCos = Vector3.Dot(ray.direction, hit.normal); + // float newDistance = (tempDistance * Mathf.Abs(newCos)) / Mathf.Abs(tempCos); + // float newDistance_ = hit.distance - newDistance; + // //GameObject sph = GameObject.Find("Sphere_Test"); + // //sph.transform.position = hit.point - (ray.direction * (tempScale.x * Mathf.Abs(newDistance_)) / Mathf.Abs(tempDistance_)); + // + // //StartCoroutine(Calculo()); + // //*** IMPROVE: + // //*** this calculation is too slow: recenter the object to the center of the mesh regardless real pivot point + // if (takenObject.GetComponent() != null) + // centerCorrection = targetForTakenObjects.position - targetForTakenObjectsObject.GetComponent().bounds.center; + // else + // centerCorrection = Vector3.zero; + // //* + // + // takenObject.transform.rotation = Quaternion.Lerp(takenObject.transform.rotation, Quaternion.Euler(new Vector3(0, lastRotationY + mainCamera.transform.eulerAngles.y, 0)), Time.deltaTime * 5); + // + // cosine = Vector3.Dot(ray.direction, hit.normal); + // cameraHeight = Mathf.Abs(hit.distance * cosine); + // + // //*** IMPROVE: + // //*** make this part of code better + // if (targetForTakenObjects.localScale.y > targetForTakenObjects.localScale.x) + // { + // takenObjSize = targetForTakenObjects.localScale.y; + // } + // else if (targetForTakenObjects.localScale.x > targetForTakenObjects.localScale.z) + // { + // takenObjSize = targetForTakenObjects.localScale.x; + // } + // else + // { + // takenObjSize = targetForTakenObjects.localScale.z; + // } + // //* + // + // //positionCalculation = (hit.distance * takenObjSize / 2) / (hit.distance * cosine); + // + // + // if (positionCalculation < rayMaxRange) + // { + // lastPositionCalculation = positionCalculation; + // } + // + // //*** NEEDED: + // //*** if the wall is more distant then the raycast, increase the size only untill the end of the raycast + // if (isRayTouchingSomething) + // { + // lastHitPoint = hit.point; + // } + // else + // { + // lastHitPoint = mainCamera.transform.position + ray.direction * rayMaxRange; + // } + // + // takenObject.transform.position = Vector3.Lerp(takenObject.transform.position, Camera.main.transform.position + // + (ray.direction * distanceMultiplier) , Time.deltaTime * 10); + // + // } + // } + // if (Input.GetKeyUp(KeyCode.E) || Input.GetMouseButtonUp(0)) + // { + // if (takenObject != null) + // { + // //targetForTakenObjects.position = lastHitPoint - (ray.direction * lastPositionCalculation); + // //targetForTakenObjects.localScale = scaleMultiplier * (Vector3.Distance(mainCamera.transform.position, targetForTakenObjects.position) / distanceMultiplier); + // //targetForTakenObjects.rotation = Quaternion.Euler(new Vector3(0, lastRotationY + mainCamera.transform.eulerAngles.y, 0)); + // float newCos = Vector3.Dot(ray.direction, hit.normal); + // float newDistance = (tempDistance * Mathf.Abs(newCos)) / Mathf.Abs(tempCos); + // float newDistance_ = hit.distance - newDistance; + // Debug.Log(tempDistance_ + " " + newDistance_); + // + // positionCalculation = (takenObject.transform.localScale.x / 2f) / ( cosine); + // lastPositionCalculation = positionCalculation; + // + // Destroy(targetForTakenObjectsObject.GetComponent()); + // + // takenObject.transform.position = hit.point - (ray.direction * Mathf.Abs(newDistance)); + // + // //takenObject.transform.rotation = targetForTakenObjects.rotation; + // takenObject.transform.localScale = (tempScale * Mathf.Abs(newDistance_))/ Mathf.Abs(tempDistance_); + // //(takenObject.transform.localScale * hit.distance * Vector3.Dot(ray.direction, hit.normal)) / (tempDistance * tempCos); + // + // + // takenObject.GetComponent().isKinematic = false; + // takenObject.GetComponent().isTrigger = false; + // if (takenObject.GetComponent() != null) + // { + // takenObject.GetComponent().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.On; + // takenObject.GetComponent().receiveShadows = true; + // } + // takenObject.transform.parent = null; + // takenObject.gameObject.layer = 0; + // foreach (Transform child in takenObject.transform) + // { + // takenObject.GetComponent().isKinematic = false; + // takenObject.GetComponent().isTrigger = false; + // child.gameObject.layer = 0; + // } + // + // takenObject = null; + // } + // } + // + //} + + + //----------V 1.3 (good but slow and costly) + //void Update() + //{ + + // ray = mainCamera.ScreenPointToRay(new Vector3(Screen.width / 2, (Screen.height / 2) + (Screen.height / 10), 0)); + // Debug.DrawRay(ray.origin, ray.direction * 200, Color.yellow); + + // if (Physics.Raycast(ray, out hit, rayMaxRange, layerMask)) + // { + // if (hit.transform.tag == "Getable") + // { + // pointer.GetComponent().material = blueToon; + // } + // else + // { + // pointer.GetComponent().material = whiteToon; + // } + // } + + // isRayTouchingSomething = Physics.Raycast(ray, out hit, rayMaxRange, layerMask); + + // if (takenObject != null) + // { + // pointer.GetComponent().material = redToon; + // } + // else + // { + // targetForTakenObjects.position = hit.point; + // } + + // if (Input.GetKeyDown(KeyCode.E) || Input.GetMouseButtonDown(0)) + // { + // if (hit.transform.tag == "Getable") + // { + + // takenObject = hit.transform.gameObject; + + // distanceMultiplier = Vector3.Distance(mainCamera.transform.position, takenObject.transform.position); + // scaleMultiplier = takenObject.transform.localScale; + // lastRotation = takenObject.transform.rotation.eulerAngles; + // lastRotationY = lastRotation.y - mainCamera.transform.eulerAngles.y; + // takenObject.transform.transform.parent = targetForTakenObjects; + + // if (takenObject.GetComponent() == null) + // { + // takenObject.AddComponent(); + // } + // takenObject.GetComponent().isKinematic = true; + // takenObject.GetComponent().isTrigger = true; + // if (takenObject.GetComponent() != null) + // { + // takenObject.GetComponent().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; + // takenObject.GetComponent().receiveShadows = false; + // } + // takenObject.gameObject.layer = 8; + // foreach (Transform child in takenObject.transform) + // { + // takenObject.GetComponent().isKinematic = true; + // takenObject.GetComponent().isTrigger = true; + // child.gameObject.layer = 8; + // } + // } + + + // } + // if (Input.GetKey(KeyCode.E) || Input.GetMouseButton(0)) + // { + // if (takenObject != null) + // { + + // //StartCoroutine(Calculo()); + // //*** IMPROVE: + // //*** this calculation is too slow: recenter the object to the center of the mesh regardless real pivot point + // centerCorrection = takenObject.transform.position - takenObject.GetComponent().bounds.center; + // takenObject.transform.position = Vector3.Lerp(takenObject.transform.position, targetForTakenObjects.position + centerCorrection, Time.deltaTime * 5); + + // takenObject.transform.rotation = Quaternion.Lerp(takenObject.transform.rotation, Quaternion.Euler(new Vector3(0, lastRotationY + mainCamera.transform.eulerAngles.y, 0)), Time.deltaTime * 5); + + // cosine = Vector3.Dot(ray.direction, hit.normal); + // cameraHeight = Mathf.Abs(hit.distance * cosine); + + // //*** IMPROVE: + // //*** make this part of code better + // //takenObjSize = takenObject.GetComponent().bounds.size.y; + // if (takenObject.GetComponent().bounds.size.y > takenObject.GetComponent().bounds.size.x) + // { + // takenObjSize = takenObject.GetComponent().bounds.size.y; + // } + // else if (takenObject.GetComponent().bounds.size.x > takenObject.GetComponent().bounds.size.z) + // { + // takenObjSize = takenObject.GetComponent().bounds.size.x; + // } + // else + // { + // takenObjSize = takenObject.GetComponent().bounds.size.z; + // } + // //* + + // positionCalculation = (hit.distance * takenObjSize / 2) / (cameraHeight); + + + // if (positionCalculation < rayMaxRange) + // { + // lastPositionCalculation = positionCalculation; + // } + + // //*** NEEDED: + // //*** if the wall is more distant then the raycast, increase the size untill the end of the raycast + // if (isRayTouchingSomething) + // { + // lastHitPoint = hit.point; + // } + // else + // { + // lastHitPoint = mainCamera.transform.position + ray.direction * rayMaxRange; + // } + + // //takenObject.transform.position = lastHitPoint - (ray.direction * lastPositionCalculation) + centerCorrection; + + // //takenObject.transform.position = Vector3.Lerp(takenObject.transform.position, lastHitPoint + // // - (ray.direction * lastPositionCalculation) + centerCorrection, Time.deltaTime * 10); + + // targetForTakenObjects.position = Vector3.Lerp(targetForTakenObjects.position, lastHitPoint + // - (ray.direction * lastPositionCalculation), Time.deltaTime * 10); + + // takenObject.transform.localScale = scaleMultiplier * (Vector3.Distance(mainCamera.transform.position, takenObject.transform.position) / distanceMultiplier); + + // } + // } + // if (Input.GetKeyUp(KeyCode.E) || Input.GetMouseButtonUp(0)) + // { + // if (takenObject != null) + // { + + // takenObject.GetComponent().isKinematic = false; + // takenObject.GetComponent().isTrigger = false; + // if (takenObject.GetComponent() != null) + // { + // takenObject.GetComponent().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.On; + // takenObject.GetComponent().receiveShadows = true; + // } + // takenObject.transform.parent = null; + // takenObject.gameObject.layer = 0; + // foreach (Transform child in takenObject.transform) + // { + // takenObject.GetComponent().isKinematic = false; + // takenObject.GetComponent().isTrigger = false; + // child.gameObject.layer = 0; + // } + + // takenObject = null; + // } + // } + + //} + + //IEnumerator Calculo() + //{ + // takenObject.transform.position = lastHitPoint - (ray.direction * lastPositionCalculation) + centerCorrection; + + // yield return new WaitForSeconds(0.1f); + //} + + + //---------V 1.2 (working good) + //void Update() + //{ + + // ray = mainCamera.ScreenPointToRay(new Vector3(Screen.width / 2, (Screen.height / 2) + (Screen.height / 10), 0)); + // Debug.DrawRay(ray.origin, ray.direction * 200, Color.yellow); + + // if (Physics.Raycast(ray, out hit, rayMaxRange)) + // { + // if (hit.transform.tag == "Getable") + // { + // pointer.GetComponent().material = blueToon; + // } + // else + // { + // pointer.GetComponent().material = whiteToon; + // } + // } + + // if (Physics.Raycast(ray, out hit, rayMaxRange, layerMask)) + // { + + // if (takenObject != null) + // { + // pointer.GetComponent().material = redToon; + // } + // else + // { + // targetForTakenObjects.position = hit.point; + // } + + // if (Input.GetKeyDown(KeyCode.E) || Input.GetMouseButtonDown(0)) + // { + // if (hit.transform.tag == "Getable") + // { + // distanceMultiplier = Vector3.Distance(mainCamera.transform.position, hit.transform.position); + // scaleMultiplier = hit.transform.transform.localScale; + // hit.transform.transform.parent = targetForTakenObjects; + // takenObject = hit.transform.gameObject; + // takenObject.GetComponent().isKinematic = true; + // takenObject.GetComponent().isTrigger = true; + // if (takenObject.GetComponent() != null) + // { + // takenObject.GetComponent().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; + // takenObject.GetComponent().receiveShadows = false; + // } + // takenObject.gameObject.layer = 8; + // foreach (Transform child in takenObject.transform) + // { + // takenObject.GetComponent().isKinematic = true; + // takenObject.GetComponent().isTrigger = true; + // child.gameObject.layer = 8; + // } + // } + // } + // if (Input.GetKey(KeyCode.E) || Input.GetMouseButton(0)) + // { + // if (takenObject != null) + // { + // takenObject.transform.position = Vector3.Lerp(takenObject.transform.position, targetForTakenObjects.position, Time.deltaTime * 5); + // //takenObject.transform.position = targetForTakenObjects.position; + + // //pointer.transform.position = targetForTakenObjects.position; + + // takenObject.transform.rotation = Quaternion.Lerp(takenObject.transform.rotation, targetForTakenObjects.rotation, Time.deltaTime * 5); + + // cosine = Vector3.Dot(ray.direction, hit.normal); + // cameraHeight = Mathf.Abs(hit.distance * cosine); + + // positionCalculation = (hit.distance * takenObject.GetComponent().bounds.size.y / 2) / (cameraHeight); + + // if (positionCalculation < hit.distance && positionCalculation > 0) + // { + // targetForTakenObjects.position = Vector3.Lerp(targetForTakenObjects.position, hit.point + // - (ray.direction * positionCalculation), Time.deltaTime * 10); + // lastPositionCalculation = positionCalculation; + // } + // else + // { + // targetForTakenObjects.position = Vector3.Lerp(targetForTakenObjects.position, hit.point + // - (ray.direction * lastPositionCalculation), Time.deltaTime * 10); + // } + + + // takenObject.transform.localScale = scaleMultiplier * (Vector3.Distance(mainCamera.transform.position, takenObject.transform.position) / distanceMultiplier); + + // } + // } + // if (Input.GetKeyUp(KeyCode.E) || Input.GetMouseButtonUp(0)) + // { + // if (takenObject != null) + // { + + // //pointer.transform.position = mainCamera.ScreenToWorldPoint(new Vector3(Screen.width / 2, (Screen.height / 2) + (Screen.height / 10), 1)); + // takenObject.GetComponent().isKinematic = false; + // takenObject.GetComponent().isTrigger = false; + // if (takenObject.GetComponent() != null) + // { + // takenObject.GetComponent().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.On; + // takenObject.GetComponent().receiveShadows = true; + // } + // takenObject.transform.parent = null; + // takenObject.gameObject.layer = 0; + // foreach (Transform child in takenObject.transform) + // { + // takenObject.GetComponent().isKinematic = false; + // takenObject.GetComponent().isTrigger = false; + // child.gameObject.layer = 0; + // } + + // takenObject = null; + // } + // } + + + + // } + //} + + //----------V 1.1 + //void Update() + //{ + + // ray = mainCamera.ScreenPointToRay(new Vector3(Screen.width / 2, (Screen.height / 2) + (Screen.height / 10), 0)); + // Debug.DrawRay(ray.origin, ray.direction * 200, Color.yellow); + + // if (Physics.Raycast(ray, out hit, Mathf.Infinity)) + // { + // if (hit.transform.tag == "Getable") + // { + // pointer.GetComponent().material = blueToon; + // } + // else + // { + // pointer.GetComponent().material = whiteToon; + // } + // } + + // if (Physics.Raycast(ray, out hit, Mathf.Infinity, layerMask)) + // { + + // if (takenObject != null) + // { + // pointer.GetComponent().material = redToon; + // } + // else + // { + // targetForTakenObjects.position = hit.point; + // } + + // if (Input.GetKeyDown(KeyCode.E) || Input.GetMouseButtonDown(0)) + // { + // if (hit.transform.tag == "Getable") + // { + // distanceMultiplier = Vector3.Distance(mainCamera.transform.position, hit.transform.position); + // scaleMultiplier = hit.transform.transform.localScale; + // hit.transform.transform.parent = targetForTakenObjects; + // takenObject = hit.transform.gameObject; + // takenObject.GetComponent().isKinematic = true; + // takenObject.GetComponent().isTrigger = true; + // if (takenObject.GetComponent() != null) + // { + // takenObject.GetComponent().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; + // takenObject.GetComponent().receiveShadows = false; + // } + // takenObject.gameObject.layer = 8; + // foreach (Transform child in takenObject.transform) + // { + // child.gameObject.layer = 8; + // } + // } + // } + // if (Input.GetKey(KeyCode.E) || Input.GetMouseButton(0)) + // { + // if (takenObject != null) + // { + // //takenObject.transform.position = Vector3.Lerp(takenObject.transform.position, targetForTakenObjects.position, Time.deltaTime * 5); + // takenObject.transform.position = targetForTakenObjects.position; + + // //pointer.transform.position = targetForTakenObjects.position; + + // takenObject.transform.rotation = Quaternion.Lerp(takenObject.transform.rotation, targetForTakenObjects.rotation, Time.deltaTime * 5); + + // heightRay = Physics.RaycastAll(mainCamera.transform.position, -hit.normal, 100); + // //Debug.DrawRay(mainCamera.transform.position, -hit.normal); + // foreach(RaycastHit hhit in heightRay) + // { + // if(hhit.transform.gameObject == hit.transform.gameObject) + // { + // cameraHeight = hhit.distance; + // } + // } + + // //if (Physics.Raycast(mainCamera.transform.position, -hit.normal, out heightCalculationRay, Mathf.Infinity, layerMask)) + // //{ + // // cameraHeight = heightCalculationRay.distance; + // //} + + // float calc = (hit.distance * takenObject.GetComponent().bounds.size.y / 2) / (cameraHeight); + + + // targetForTakenObjects.position = Vector3.Lerp(targetForTakenObjects.position, hit.point + // - (ray.direction * calc) + // //+ (hit.normal * (takenObject.GetComponent().bounds.size.y * 0.5f) ) + // , Time.deltaTime * 10); + + // takenObject.transform.localScale = scaleMultiplier * (Vector3.Distance(mainCamera.transform.position, takenObject.transform.position) / distanceMultiplier); + + // } + // } + // if (Input.GetKeyUp(KeyCode.E) || Input.GetMouseButtonUp(0)) + // { + // if (takenObject != null) + // { + + // //pointer.transform.position = mainCamera.ScreenToWorldPoint(new Vector3(Screen.width / 2, (Screen.height / 2) + (Screen.height / 10), 1)); + // takenObject.GetComponent().isKinematic = false; + // takenObject.GetComponent().isTrigger = false; + // if (takenObject.GetComponent() != null) + // { + // takenObject.GetComponent().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.On; + // takenObject.GetComponent().receiveShadows = true; + // } + // takenObject.transform.parent = null; + // takenObject.gameObject.layer = 0; + // foreach (Transform child in takenObject.transform) + // { + // child.gameObject.layer = 0; + // } + + // takenObject = null; + // } + // } + + + + // } + //} + + //--------------V 1.0 + //void Update() + //{ + + // ray = mainCamera.ScreenPointToRay(new Vector3(Screen.width / 2, (Screen.height / 2) + (Screen.height / 10), 0)); + // Debug.DrawRay(ray.origin, ray.direction * 200, Color.yellow); + + // if (Physics.Raycast(ray, out hit, Mathf.Infinity)) + // { + // if (hit.transform.tag == "Getable") + // { + // pointer.GetComponent().material = blueToon; + // } + // else + // { + // pointer.GetComponent().material = whiteToon; + // } + // } + + // if (Physics.Raycast(ray, out hit, Mathf.Infinity, layerMask)) + // { + + // if (takenObject != null) + // { + // pointer.GetComponent().material = redToon; + // } + // else + // { + // targetForTakenObjects.position = hit.point; + // } + + // if (Input.GetKeyDown(KeyCode.E) || Input.GetMouseButtonDown(0)) + // { + // if (hit.transform.tag == "Getable") + // { + // distanceMultiplier = Vector3.Distance(mainCamera.transform.position, hit.transform.position); + // scaleMultiplier = hit.transform.transform.localScale; + // hit.transform.transform.parent = targetForTakenObjects; + // takenObject = hit.transform.gameObject; + // takenObject.GetComponent().isKinematic = true; + // takenObject.GetComponent().isTrigger = true; + // if (takenObject.GetComponent() != null) + // { + // takenObject.GetComponent().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; + // takenObject.GetComponent().receiveShadows = false; + // } + // takenObject.gameObject.layer = 8; + // foreach (Transform child in takenObject.transform) + // { + // child.gameObject.layer = 8; + // } + // } + // } + // if (Input.GetKey(KeyCode.E) || Input.GetMouseButton(0)) + // { + // if (takenObject != null) + // { + // //takenObject.transform.position = Vector3.Lerp(takenObject.transform.position, targetForTakenObjects.position, Time.deltaTime * 5); + // takenObject.transform.position = targetForTakenObjects.position; + + // pointer.transform.position = targetForTakenObjects.position; + + // takenObject.transform.rotation = Quaternion.Lerp(takenObject.transform.rotation, targetForTakenObjects.rotation, Time.deltaTime * 5); + + // if (Physics.Raycast(mainCamera.transform.position, -hit.normal, out heightCalculationRay, Mathf.Infinity, layerMask)) + // { + // cameraHeight = heightCalculationRay.distance; + // } + + // float calc = (hit.distance * cameraHeight) / (takenObject.GetComponent().bounds.size.y / 2); + + // targetForTakenObjects.position = Vector3.Lerp(targetForTakenObjects.position, hit.point + // - (ray.direction / calc) + // + (hit.normal * (takenObject.GetComponent().bounds.size.y * 0.5f)) + // , Time.deltaTime * 10); + + // takenObject.transform.localScale = scaleMultiplier * (Vector3.Distance(mainCamera.transform.position, takenObject.transform.position) / distanceMultiplier); + + // } + // } + // if (Input.GetKeyUp(KeyCode.E) || Input.GetMouseButtonUp(0)) + // { + // if (takenObject != null) + // { + + // pointer.transform.position = mainCamera.ScreenToWorldPoint(new Vector3(Screen.width / 2, (Screen.height / 2) + (Screen.height / 10), 1)); + // takenObject.GetComponent().isKinematic = false; + // takenObject.GetComponent().isTrigger = false; + // if (takenObject.GetComponent() != null) + // { + // takenObject.GetComponent().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.On; + // takenObject.GetComponent().receiveShadows = true; + // } + // takenObject.transform.parent = null; + // takenObject.gameObject.layer = 0; + // foreach (Transform child in takenObject.transform) + // { + // child.gameObject.layer = 0; + // } + + // takenObject = null; + // } + // } + + + + // } + //} \ No newline at end of file diff --git a/PerspectivePuzzleMechanic_2018/Scripts/Last versions.txt.meta b/PerspectivePuzzleMechanic_2018/Scripts/Last versions.txt.meta new file mode 100644 index 0000000..364119f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Scripts/Last versions.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: badbbc03042e55945a9664c033622ec7 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Scripts/PerspectiveManager.cs b/PerspectivePuzzleMechanic_2018/Scripts/PerspectiveManager.cs new file mode 100644 index 0000000..df76077 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Scripts/PerspectiveManager.cs @@ -0,0 +1,198 @@ +// Forced Perspective Illusion +// Project from Daniel C Menezes +// V1.32 - 17/09/2019 +// GitHub: https://github.com/danielcmcg/Forced-Perspective-Illusion-Mechanic-for-Unity + +using UnityEngine; + +public class PerspectiveManager : MonoBehaviour { + + public Material yellowToon; + public Material blueToon; + public Material redToon; + + private Camera mainCamera; + private Transform targetForTakenObjects; + private GameObject pointer; + private GameObject takenObject; + private RaycastHit hit; + private Ray ray; + private float distanceMultiplier; + private Vector3 scaleMultiplier; + private LayerMask layerMask = ~(1 << 8); + private float cameraHeight = 0; + private float cosine; + private float positionCalculation; + private float lastPositionCalculation = 0; + private Vector3 lastHitPoint = Vector3.zero; + private Vector3 lastRotation = Vector3.zero; + private float rayMaxRange = 1000f; + private bool isRayTouchingSomething = true; + private float lastRotationY; + + private Vector3 lastHit = Vector3.zero; + private Vector3 centerCorrection = Vector3.zero; + private float takenObjSize = 0; + private int takenObjSizeIndex = 0; + + void Start() + { + mainCamera = GameObject.FindGameObjectWithTag("MainCamera").GetComponent(); + targetForTakenObjects = GameObject.Find("targetForTakenObjects").transform; + pointer = GameObject.Find("Pointer"); + pointer.transform.position = mainCamera.ScreenToWorldPoint(new Vector3(Screen.width / 2, (Screen.height / 2) + (Screen.height / 10), 1)); + pointer.transform.parent = mainCamera.transform; + } + + void Update() + { + ray = mainCamera.ScreenPointToRay(new Vector3(Screen.width / 2, (Screen.height / 2) + (Screen.height / 10), 0)); + Debug.DrawRay(ray.origin, ray.direction * 200, Color.yellow); + + if (Physics.Raycast(ray, out hit, rayMaxRange, layerMask)) + { + if (hit.transform.tag == "Getable") + { + pointer.GetComponent().material = blueToon; + } + else + { + pointer.GetComponent().material = yellowToon; + } + } + + isRayTouchingSomething = Physics.Raycast(ray, out hit, rayMaxRange, layerMask); + + if (takenObject != null) + { + pointer.GetComponent().material = redToon; + } + else + { + targetForTakenObjects.position = hit.point; + } + + if ((Input.GetKeyDown(KeyCode.E) || Input.GetMouseButtonDown(0)) && isRayTouchingSomething) + { + if (hit.transform.tag == "Getable") + { + takenObject = hit.transform.gameObject; + + distanceMultiplier = Vector3.Distance(mainCamera.transform.position, takenObject.transform.position); + scaleMultiplier = takenObject.transform.localScale; + lastRotation = takenObject.transform.rotation.eulerAngles; + lastRotationY = lastRotation.y - mainCamera.transform.eulerAngles.y; + takenObject.transform.transform.parent = targetForTakenObjects; + + if (takenObject.GetComponent() == null) + { + takenObject.AddComponent(); + } + takenObject.GetComponent().isKinematic = true; + + foreach (Collider col in takenObject.GetComponents()) + { + col.isTrigger = true; + } + + if (takenObject.GetComponent() != null) + { + takenObject.GetComponent().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; + takenObject.GetComponent().receiveShadows = false; + } + takenObject.gameObject.layer = 8; + foreach (Transform child in takenObject.GetComponentsInChildren()) + { + takenObject.GetComponent().isKinematic = true; + takenObject.GetComponent().isTrigger = true; + child.gameObject.layer = 8; + } + + takenObjSize = takenObject.GetComponent().bounds.size.y; + takenObjSizeIndex = 1; + if (takenObject.GetComponent().bounds.size.x > takenObjSize) + { + takenObjSize = takenObject.GetComponent().bounds.size.x; + takenObjSizeIndex = 0; + } + if (takenObject.GetComponent().bounds.size.z > takenObjSize) + { + takenObjSize = takenObject.GetComponent().bounds.size.z; + takenObjSizeIndex = 2; + } + } + } + + if (Input.GetKey(KeyCode.E) || Input.GetMouseButton(0)) + { + if (takenObject != null) + { + // recenter the object to the center of the mesh regardless real pivot point + if (takenObject.GetComponent() != null) + { + centerCorrection = takenObject.transform.position - takenObject.GetComponent().bounds.center; + } + + takenObject.transform.position = Vector3.Lerp(takenObject.transform.position, targetForTakenObjects.position + centerCorrection, Time.deltaTime * 5); + takenObject.transform.rotation = Quaternion.Lerp(takenObject.transform.rotation, Quaternion.Euler(new Vector3(0, lastRotationY + mainCamera.transform.eulerAngles.y, 0)), Time.deltaTime * 5); + + cosine = Vector3.Dot(ray.direction, hit.normal); + cameraHeight = Mathf.Abs(hit.distance * cosine); + + takenObjSize = takenObject.GetComponent().bounds.size[takenObjSizeIndex]; + + positionCalculation = (hit.distance * takenObjSize / 2) / (cameraHeight); + if (positionCalculation < rayMaxRange) + { + lastPositionCalculation = positionCalculation; + } + + // if the wall is more distant then the raycast max range, increase the size only untill the max range + if (isRayTouchingSomething) + { + lastHitPoint = hit.point; + } + else + { + lastHitPoint = mainCamera.transform.position + ray.direction * rayMaxRange; + } + + targetForTakenObjects.position = Vector3.Lerp(targetForTakenObjects.position, lastHitPoint + - (ray.direction * lastPositionCalculation), Time.deltaTime * 10); + + takenObject.transform.localScale = scaleMultiplier * (Vector3.Distance(mainCamera.transform.position, takenObject.transform.position) / distanceMultiplier); + } + } + + if (Input.GetKeyUp(KeyCode.E) || Input.GetMouseButtonUp(0)) + { + if (takenObject != null) + { + takenObject.GetComponent().isKinematic = false; + + foreach (Collider col in takenObject.GetComponents()) + { + col.isTrigger = false; + } + + if (takenObject.GetComponent() != null) + { + takenObject.GetComponent().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.On; + takenObject.GetComponent().receiveShadows = true; + } + takenObject.transform.parent = null; + takenObject.gameObject.layer = 0; + foreach (Transform child in takenObject.GetComponentsInChildren()) + { + takenObject.GetComponent().isKinematic = false; + takenObject.GetComponent().isTrigger = false; + child.gameObject.layer = 0; + } + + takenObject = null; + } + } + } +} + + diff --git a/PerspectivePuzzleMechanic/Scripts/PerspectiveManager.cs.meta b/PerspectivePuzzleMechanic_2018/Scripts/PerspectiveManager.cs.meta similarity index 100% rename from PerspectivePuzzleMechanic/Scripts/PerspectiveManager.cs.meta rename to PerspectivePuzzleMechanic_2018/Scripts/PerspectiveManager.cs.meta diff --git a/PerspectivePuzzleMechanic_2018/Scripts/Read Me.docx b/PerspectivePuzzleMechanic_2018/Scripts/Read Me.docx new file mode 100644 index 0000000..e69de29 diff --git a/PerspectivePuzzleMechanic_2018/Scripts/Read Me.docx.meta b/PerspectivePuzzleMechanic_2018/Scripts/Read Me.docx.meta new file mode 100644 index 0000000..f714b06 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Scripts/Read Me.docx.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 86f976667f341d2489e36da160333e1e +timeCreated: 1525037090 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Scripts/SparksPlayer.cs b/PerspectivePuzzleMechanic_2018/Scripts/SparksPlayer.cs new file mode 100644 index 0000000..6e42805 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Scripts/SparksPlayer.cs @@ -0,0 +1,32 @@ +using UnityEngine; +using System.Collections; + +public class SparksPlayer : MonoBehaviour { + + private GameObject relatedObject; + public ParticleSystem sparkPS; + public GameObject sparkLight; + + private Vector3 position; + + // Use this for initialization + void Start () { + position = sparkPS.transform.position; + relatedObject = this.transform.parent.gameObject; + } + + // Update is called once per frame + void Update () { + + if (relatedObject.layer == 8 && this != null) + { + sparkPS.transform.parent = null; + sparkPS.transform.position = position; + sparkPS.Play(); + sparkLight.SetActive(true); + sparkPS.gameObject.layer = 0; + this.GetComponent().enabled = false; + } + + } +} diff --git a/PerspectivePuzzleMechanic_2018/Scripts/SparksPlayer.cs.meta b/PerspectivePuzzleMechanic_2018/Scripts/SparksPlayer.cs.meta new file mode 100644 index 0000000..62752f0 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Scripts/SparksPlayer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f9261d0f19739a049947a9c1630ea3a2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic/Sounds.meta b/PerspectivePuzzleMechanic_2018/Sounds.meta similarity index 100% rename from PerspectivePuzzleMechanic/Sounds.meta rename to PerspectivePuzzleMechanic_2018/Sounds.meta diff --git a/PerspectivePuzzleMechanic/Sounds/Footstep01.wav b/PerspectivePuzzleMechanic_2018/Sounds/Footstep01.wav similarity index 100% rename from PerspectivePuzzleMechanic/Sounds/Footstep01.wav rename to PerspectivePuzzleMechanic_2018/Sounds/Footstep01.wav diff --git a/PerspectivePuzzleMechanic/Sounds/Footstep01.wav.meta b/PerspectivePuzzleMechanic_2018/Sounds/Footstep01.wav.meta similarity index 100% rename from PerspectivePuzzleMechanic/Sounds/Footstep01.wav.meta rename to PerspectivePuzzleMechanic_2018/Sounds/Footstep01.wav.meta diff --git a/PerspectivePuzzleMechanic/Sounds/Footstep02.wav b/PerspectivePuzzleMechanic_2018/Sounds/Footstep02.wav similarity index 100% rename from PerspectivePuzzleMechanic/Sounds/Footstep02.wav rename to PerspectivePuzzleMechanic_2018/Sounds/Footstep02.wav diff --git a/PerspectivePuzzleMechanic/Sounds/Footstep02.wav.meta b/PerspectivePuzzleMechanic_2018/Sounds/Footstep02.wav.meta similarity index 100% rename from PerspectivePuzzleMechanic/Sounds/Footstep02.wav.meta rename to PerspectivePuzzleMechanic_2018/Sounds/Footstep02.wav.meta diff --git a/PerspectivePuzzleMechanic/Sounds/Jump.wav b/PerspectivePuzzleMechanic_2018/Sounds/Jump.wav similarity index 100% rename from PerspectivePuzzleMechanic/Sounds/Jump.wav rename to PerspectivePuzzleMechanic_2018/Sounds/Jump.wav diff --git a/PerspectivePuzzleMechanic/Sounds/Jump.wav.meta b/PerspectivePuzzleMechanic_2018/Sounds/Jump.wav.meta similarity index 100% rename from PerspectivePuzzleMechanic/Sounds/Jump.wav.meta rename to PerspectivePuzzleMechanic_2018/Sounds/Jump.wav.meta diff --git a/PerspectivePuzzleMechanic/Sounds/Land.wav b/PerspectivePuzzleMechanic_2018/Sounds/Land.wav similarity index 100% rename from PerspectivePuzzleMechanic/Sounds/Land.wav rename to PerspectivePuzzleMechanic_2018/Sounds/Land.wav diff --git a/PerspectivePuzzleMechanic/Sounds/Land.wav.meta b/PerspectivePuzzleMechanic_2018/Sounds/Land.wav.meta similarity index 100% rename from PerspectivePuzzleMechanic/Sounds/Land.wav.meta rename to PerspectivePuzzleMechanic_2018/Sounds/Land.wav.meta diff --git a/PerspectivePuzzleMechanic/Sounds/hal-spark.wav b/PerspectivePuzzleMechanic_2018/Sounds/hal-spark.wav similarity index 100% rename from PerspectivePuzzleMechanic/Sounds/hal-spark.wav rename to PerspectivePuzzleMechanic_2018/Sounds/hal-spark.wav diff --git a/PerspectivePuzzleMechanic/Sounds/hal-spark.wav.meta b/PerspectivePuzzleMechanic_2018/Sounds/hal-spark.wav.meta similarity index 100% rename from PerspectivePuzzleMechanic/Sounds/hal-spark.wav.meta rename to PerspectivePuzzleMechanic_2018/Sounds/hal-spark.wav.meta diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets.meta b/PerspectivePuzzleMechanic_2018/Standard Assets.meta new file mode 100644 index 0000000..5511716 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d8232973de204cf489bcabbff69e9fc5 +folderAsset: yes +timeCreated: 1460160194 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Characters.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters.meta new file mode 100644 index 0000000..f633095 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 8c32f58513a41ef4dab9cb7704c5fb92 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter.meta new file mode 100644 index 0000000..d7dcdc3 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 943e057eaae705e43b9e9b2e53d6adb0 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Audio.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Audio.meta new file mode 100644 index 0000000..aa7e7f4 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Audio.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 2dac79461900e0f4c93561031c2e6902 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Audio/Footstep03.wav b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Audio/Footstep03.wav new file mode 100644 index 0000000..f796749 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Audio/Footstep03.wav differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Audio/Footstep03.wav.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Audio/Footstep03.wav.meta new file mode 100644 index 0000000..bc1843f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Audio/Footstep03.wav.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: 5a9383dda6cabc047b7a297602e93eb4 +AudioImporter: + serializedVersion: 5 + format: -1 + loadType: 1 + quality: -1 + sampleRate: 0 + forceToMono: 0 + preloadAudioData: 1 + loadInBackground: 0 + overrideSampleRate: 0 + optimizeSampleRate: 0 + 3D: 1 + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Audio/Footstep04.wav b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Audio/Footstep04.wav new file mode 100644 index 0000000..657f67f Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Audio/Footstep04.wav differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Audio/Footstep04.wav.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Audio/Footstep04.wav.meta new file mode 100644 index 0000000..3ca138d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Audio/Footstep04.wav.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: e9714160ce34f2b4ab63ff8c27bd68e1 +AudioImporter: + serializedVersion: 5 + format: -1 + loadType: 1 + quality: -1 + sampleRate: 0 + forceToMono: 0 + preloadAudioData: 1 + loadInBackground: 0 + overrideSampleRate: 0 + optimizeSampleRate: 0 + 3D: 1 + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/FirstPersonCharacterGuidelines.txt b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/FirstPersonCharacterGuidelines.txt new file mode 100644 index 0000000..2d2c53c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/FirstPersonCharacterGuidelines.txt @@ -0,0 +1,18 @@ +The first-person character is a single prefab which is designed to be used as-is. There's usually no need to create your own from the separate scripts provided. Just drop the prefab into your scene and you're good to go. + + +The simplest way to get started with the First Person Character is to follow these steps: + +1) Start with a suitable scene. There ought to be enough flat ground to walk around on. + +2) Place the "FirstPersonCharacter" prefab in the scene. + +3) If present, delete the "Main Camera" that exists in new scenes by default. The First Person Character prefab contains its own camera, so you don't need the default camera, or any of the camera rigs to use it. + +The first-person character is made up of a few components acting together. The FirstPersonCharacter script provides the functionality of moving, strafing and jumping. The SimpleMouseRotator provides the functionality of turning the body of the character left and right, and another copy of the same script on the "FirstPersonCamera" controls the looking-up-and-down effect. + +There is also an optional "Head Bob" script which provides a head bobbing effect and optionally also plays footstep sounds in sync with the head bobbing. This script can be disabled or removed if required. + +There are a number of simple adjustable settings on each component allowing you to change the movement speed, jump power, head bob style, and more. For more detail about each setting, see the comments in each script. + +The Character script also requires references to "zero friction" and "max friction" physics materials. These are provided already set-up for you. diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/FirstPersonCharacterGuidelines.txt.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/FirstPersonCharacterGuidelines.txt.meta new file mode 100644 index 0000000..98d15f6 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/FirstPersonCharacterGuidelines.txt.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: bc9b000e9b8028247bd816e159382646 +TextScriptImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Prefabs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Prefabs.meta new file mode 100644 index 0000000..d72bb1c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Prefabs.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 0bfb2599080d5d24e84362b4ae314ae7 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Prefabs/FPSController.prefab b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Prefabs/FPSController.prefab new file mode 100644 index 0000000..f2582df --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Prefabs/FPSController.prefab @@ -0,0 +1,306 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 143: {fileID: 14300000} + - 114: {fileID: 11400000} + - 54: {fileID: 5400000} + - 82: {fileID: 8200000} + m_Layer: 0 + m_Name: FPSController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100002 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400002} + - 20: {fileID: 2000000} + - 81: {fileID: 8100000} + m_Layer: 0 + m_Name: FirstPersonCharacter + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 140.699997, y: 12.8000002, z: -46.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 400002} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!4 &400002 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: .800000012, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 400000} + m_RootOrder: 0 +--- !u!20 &2000000 +Camera: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: .192156866, g: .301960796, b: .474509805, a: .0196078438} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: .300000012 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_HDR: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: .0219999999 +--- !u!54 &5400000 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: .0500000007 + m_UseGravity: 1 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!81 &8100000 +AudioListener: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 +--- !u!82 &8200000 +AudioSource: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 1 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 05ec5cf00ca181d45a42ba1870e148c3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IsWalking: 0 + m_WalkSpeed: 5 + m_RunSpeed: 10 + m_RunstepLenghten: .699999988 + m_JumpSpeed: 10 + m_StickToGroundForce: 10 + m_GravityMultiplier: 2 + m_MouseLook: + XSensitivity: 2 + YSensitivity: 2 + clampVerticalRotation: 1 + MinimumX: -90 + MaximumX: 90 + smooth: 0 + smoothTime: 5 + m_UseFovKick: 1 + m_FovKick: + Camera: {fileID: 0} + originalFov: 0 + FOVIncrease: 3 + TimeToIncrease: 1 + TimeToDecrease: 1 + IncreaseCurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 1 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_UseHeadBob: 1 + m_HeadBob: + HorizontalBobRange: .100000001 + VerticalBobRange: .100000001 + Bobcurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: .5 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1.5 + value: -1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 2 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + VerticaltoHorizontalRatio: 2 + m_JumpBob: + BobDuration: .200000003 + BobAmount: .100000001 + m_StepInterval: 5 + m_FootstepSounds: + - {fileID: 8300000, guid: 42e65e088b3f4374e851b8dbd38f3df9, type: 3} + - {fileID: 8300000, guid: 8bc94ec6ed537e743b481638bdcd503d, type: 3} + m_JumpSound: {fileID: 8300000, guid: 5897aeed9b676024fbb8c694b421a861, type: 3} + m_LandSound: {fileID: 8300000, guid: 3b09d59f4499d45428baa7a21e954296, type: 3} +--- !u!143 &14300000 +CharacterController: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Height: 1.79999995 + m_Radius: .5 + m_SlopeLimit: 45 + m_StepOffset: .300000012 + m_SkinWidth: .0799999982 + m_MinMoveDistance: 0 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Prefabs/FPSController.prefab.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Prefabs/FPSController.prefab.meta new file mode 100644 index 0000000..ea0673c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Prefabs/FPSController.prefab.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 5e9e851c0e142814dac026a256ba2ac0 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Prefabs/RigidBodyFPSController.prefab b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Prefabs/RigidBodyFPSController.prefab new file mode 100644 index 0000000..152f795 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Prefabs/RigidBodyFPSController.prefab @@ -0,0 +1,246 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100004 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 20: {fileID: 2000000} + - 81: {fileID: 8100000} + - 114: {fileID: 11400006} + m_Layer: 0 + m_Name: MainCamera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &100006 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400002} + - 54: {fileID: 5400000} + - 136: {fileID: 13600000} + - 114: {fileID: 11400004} + m_Layer: 0 + m_Name: RigidBodyFPSController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: .600000024, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 400002} + m_RootOrder: 0 +--- !u!4 &400002 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_LocalRotation: {x: 0, y: 1, z: 0, w: -1.62920685e-07} + m_LocalPosition: {x: -30, y: 1, z: 25} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 400000} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!20 &2000000 +Camera: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: .192156866, g: .301960796, b: .474509805, a: .0196078438} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: .300000012 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_HDR: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: .0219999999 +--- !u!54 &5400000 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + serializedVersion: 2 + m_Mass: 10 + m_Drag: 0 + m_AngularDrag: .0500000007 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 112 + m_CollisionDetection: 0 +--- !u!81 &8100000 +AudioListener: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_Enabled: 1 +--- !u!114 &11400004 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 81c9795a96c094f4cbde4d65546aa9b2, type: 3} + m_Name: + m_EditorClassIdentifier: + cam: {fileID: 2000000} + movementSettings: + ForwardSpeed: 8 + BackwardSpeed: 4 + StrafeSpeed: 4 + RunMultiplier: 2 + RunKey: 304 + JumpForce: 50 + SlopeCurveModifier: + serializedVersion: 2 + m_Curve: + - time: -90 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 90 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + CurrentTargetSpeed: 8 + mouseLook: + XSensitivity: 2 + YSensitivity: 2 + clampVerticalRotation: 1 + MinimumX: -45 + MaximumX: 90 + smooth: 1 + smoothTime: 18 + advancedSettings: + groundCheckDistance: .100000001 + stickToGroundHelperDistance: .600000024 + slowDownRate: 20 + airControl: 0 +--- !u!114 &11400006 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100004} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 83c81407209f85e4c87c0cda8b32868e, type: 3} + m_Name: + m_EditorClassIdentifier: + Camera: {fileID: 2000000} + motionBob: + HorizontalBobRange: .100000001 + VerticalBobRange: .0500000007 + Bobcurve: + serializedVersion: 2 + m_Curve: + - time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: .5 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 1.5 + value: -1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - time: 2 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + VerticaltoHorizontalRatio: 2 + jumpAndLandingBob: + BobDuration: .150000006 + BobAmount: .200000003 + rigidbodyFirstPersonController: {fileID: 11400004} + StrideInterval: 4 + RunningStrideLengthen: .722000003 +--- !u!136 &13600000 +CapsuleCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100006} + m_Material: {fileID: 13400000, guid: c2815a7ab32e42c4bb42f59caacb8ec1, type: 2} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: .5 + m_Height: 1.60000002 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100006} + m_IsPrefabParent: 1 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Prefabs/RigidBodyFPSController.prefab.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Prefabs/RigidBodyFPSController.prefab.meta new file mode 100644 index 0000000..628a7e0 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Prefabs/RigidBodyFPSController.prefab.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: c6453f8e1f814744d8b94e5a6d1f9942 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Scripts.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Scripts.meta new file mode 100644 index 0000000..6d321fa --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Scripts.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 314f49b24dc9d5d40956a7b28c67b237 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Scripts/HeadBob.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Scripts/HeadBob.cs new file mode 100644 index 0000000..d33f136 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Scripts/HeadBob.cs @@ -0,0 +1,55 @@ +using System; +using UnityEngine; +using UnityStandardAssets.Utility; + +namespace UnityStandardAssets.Characters.FirstPerson +{ + public class HeadBob : MonoBehaviour + { + public Camera Camera; + public CurveControlledBob motionBob = new CurveControlledBob(); + public LerpControlledBob jumpAndLandingBob = new LerpControlledBob(); + public RigidbodyFirstPersonController rigidbodyFirstPersonController; + public float StrideInterval; + [Range(0f, 1f)] public float RunningStrideLengthen; + + // private CameraRefocus m_CameraRefocus; + private bool m_PreviouslyGrounded; + private Vector3 m_OriginalCameraPosition; + + + private void Start() + { + motionBob.Setup(Camera, StrideInterval); + m_OriginalCameraPosition = Camera.transform.localPosition; + // m_CameraRefocus = new CameraRefocus(Camera, transform.root.transform, Camera.transform.localPosition); + } + + + private void Update() + { + // m_CameraRefocus.GetFocusPoint(); + Vector3 newCameraPosition; + if (rigidbodyFirstPersonController.Velocity.magnitude > 0 && rigidbodyFirstPersonController.Grounded) + { + Camera.transform.localPosition = motionBob.DoHeadBob(rigidbodyFirstPersonController.Velocity.magnitude*(rigidbodyFirstPersonController.Running ? RunningStrideLengthen : 1f)); + newCameraPosition = Camera.transform.localPosition; + newCameraPosition.y = Camera.transform.localPosition.y - jumpAndLandingBob.Offset(); + } + else + { + newCameraPosition = Camera.transform.localPosition; + newCameraPosition.y = m_OriginalCameraPosition.y - jumpAndLandingBob.Offset(); + } + Camera.transform.localPosition = newCameraPosition; + + if (!m_PreviouslyGrounded && rigidbodyFirstPersonController.Grounded) + { + StartCoroutine(jumpAndLandingBob.DoBobCycle()); + } + + m_PreviouslyGrounded = rigidbodyFirstPersonController.Grounded; + // m_CameraRefocus.SetFocusPoint(); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Scripts/HeadBob.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Scripts/HeadBob.cs.meta new file mode 100644 index 0000000..4cff284 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Scripts/HeadBob.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 83c81407209f85e4c87c0cda8b32868e +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Scripts/MouseLook.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Scripts/MouseLook.cs new file mode 100644 index 0000000..3eac306 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Scripts/MouseLook.cs @@ -0,0 +1,73 @@ +using System; +using UnityEngine; +using UnityStandardAssets.CrossPlatformInput; + +namespace UnityStandardAssets.Characters.FirstPerson +{ + [Serializable] + public class MouseLook + { + public float XSensitivity = 2f; + public float YSensitivity = 2f; + public bool clampVerticalRotation = true; + public float MinimumX = -90F; + public float MaximumX = 90F; + public bool smooth; + public float smoothTime = 5f; + + + private Quaternion m_CharacterTargetRot; + private Quaternion m_CameraTargetRot; + + + public void Init(Transform character, Transform camera) + { + m_CharacterTargetRot = character.localRotation; + m_CameraTargetRot = camera.localRotation; + } + + + public void LookRotation(Transform character, Transform camera) + { + float yRot = CrossPlatformInputManager.GetAxis("Mouse X") * XSensitivity; + float xRot = CrossPlatformInputManager.GetAxis("Mouse Y") * YSensitivity; + + m_CharacterTargetRot *= Quaternion.Euler (0f, yRot, 0f); + m_CameraTargetRot *= Quaternion.Euler (-xRot, 0f, 0f); + + if(clampVerticalRotation) + m_CameraTargetRot = ClampRotationAroundXAxis (m_CameraTargetRot); + + if(smooth) + { + character.localRotation = Quaternion.Slerp (character.localRotation, m_CharacterTargetRot, + smoothTime * Time.deltaTime); + camera.localRotation = Quaternion.Slerp (camera.localRotation, m_CameraTargetRot, + smoothTime * Time.deltaTime); + } + else + { + character.localRotation = m_CharacterTargetRot; + camera.localRotation = m_CameraTargetRot; + } + } + + + Quaternion ClampRotationAroundXAxis(Quaternion q) + { + q.x /= q.w; + q.y /= q.w; + q.z /= q.w; + q.w = 1.0f; + + float angleX = 2.0f * Mathf.Rad2Deg * Mathf.Atan (q.x); + + angleX = Mathf.Clamp (angleX, MinimumX, MaximumX); + + q.x = Mathf.Tan (0.5f * Mathf.Deg2Rad * angleX); + + return q; + } + + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Scripts/MouseLook.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Scripts/MouseLook.cs.meta new file mode 100644 index 0000000..2e6a76f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Scripts/MouseLook.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 37e60a97f2c87ae41b6cdc1055d78cb9 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Scripts/RigidbodyFirstPersonController.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Scripts/RigidbodyFirstPersonController.cs new file mode 100644 index 0000000..0309a71 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Scripts/RigidbodyFirstPersonController.cs @@ -0,0 +1,264 @@ +using System; +using UnityEngine; +using UnityStandardAssets.CrossPlatformInput; + +namespace UnityStandardAssets.Characters.FirstPerson +{ + [RequireComponent(typeof (Rigidbody))] + [RequireComponent(typeof (CapsuleCollider))] + public class RigidbodyFirstPersonController : MonoBehaviour + { + [Serializable] + public class MovementSettings + { + public float ForwardSpeed = 8.0f; // Speed when walking forward + public float BackwardSpeed = 4.0f; // Speed when walking backwards + public float StrafeSpeed = 4.0f; // Speed when walking sideways + public float RunMultiplier = 2.0f; // Speed when sprinting + public KeyCode RunKey = KeyCode.LeftShift; + public float JumpForce = 30f; + public AnimationCurve SlopeCurveModifier = new AnimationCurve(new Keyframe(-90.0f, 1.0f), new Keyframe(0.0f, 1.0f), new Keyframe(90.0f, 0.0f)); + [HideInInspector] public float CurrentTargetSpeed = 8f; + +#if !MOBILE_INPUT + private bool m_Running; +#endif + + public void UpdateDesiredTargetSpeed(Vector2 input) + { + if (input == Vector2.zero) return; + if (input.x > 0 || input.x < 0) + { + //strafe + CurrentTargetSpeed = StrafeSpeed; + } + if (input.y < 0) + { + //backwards + CurrentTargetSpeed = BackwardSpeed; + } + if (input.y > 0) + { + //forwards + //handled last as if strafing and moving forward at the same time forwards speed should take precedence + CurrentTargetSpeed = ForwardSpeed; + } +#if !MOBILE_INPUT + if (Input.GetKey(RunKey)) + { + CurrentTargetSpeed *= RunMultiplier; + m_Running = true; + } + else + { + m_Running = false; + } +#endif + } + +#if !MOBILE_INPUT + public bool Running + { + get { return m_Running; } + } +#endif + } + + + [Serializable] + public class AdvancedSettings + { + public float groundCheckDistance = 0.01f; // distance for checking if the controller is grounded ( 0.01f seems to work best for this ) + public float stickToGroundHelperDistance = 0.5f; // stops the character + public float slowDownRate = 20f; // rate at which the controller comes to a stop when there is no input + public bool airControl; // can the user control the direction that is being moved in the air + } + + + public Camera cam; + public MovementSettings movementSettings = new MovementSettings(); + public MouseLook mouseLook = new MouseLook(); + public AdvancedSettings advancedSettings = new AdvancedSettings(); + + + private Rigidbody m_RigidBody; + private CapsuleCollider m_Capsule; + private float m_YRotation; + private Vector3 m_GroundContactNormal; + private bool m_Jump, m_PreviouslyGrounded, m_Jumping, m_IsGrounded; + + + public Vector3 Velocity + { + get { return m_RigidBody.velocity; } + } + + public bool Grounded + { + get { return m_IsGrounded; } + } + + public bool Jumping + { + get { return m_Jumping; } + } + + public bool Running + { + get + { + #if !MOBILE_INPUT + return movementSettings.Running; +#else + return false; +#endif + } + } + + + private void Start() + { + m_RigidBody = GetComponent(); + m_Capsule = GetComponent(); + mouseLook.Init (transform, cam.transform); + } + + + private void Update() + { + RotateView(); + + if (CrossPlatformInputManager.GetButtonDown("Jump") && !m_Jump) + { + m_Jump = true; + } + } + + + private void FixedUpdate() + { + GroundCheck(); + Vector2 input = GetInput(); + + if ((Mathf.Abs(input.x) > float.Epsilon || Mathf.Abs(input.y) > float.Epsilon) && (advancedSettings.airControl || m_IsGrounded)) + { + // always move along the camera forward as it is the direction that it being aimed at + Vector3 desiredMove = cam.transform.forward*input.y + cam.transform.right*input.x; + desiredMove = Vector3.ProjectOnPlane(desiredMove, m_GroundContactNormal).normalized; + + desiredMove.x = desiredMove.x*movementSettings.CurrentTargetSpeed; + desiredMove.z = desiredMove.z*movementSettings.CurrentTargetSpeed; + desiredMove.y = desiredMove.y*movementSettings.CurrentTargetSpeed; + if (m_RigidBody.velocity.sqrMagnitude < + (movementSettings.CurrentTargetSpeed*movementSettings.CurrentTargetSpeed)) + { + m_RigidBody.AddForce(desiredMove*SlopeMultiplier(), ForceMode.Impulse); + } + } + + if (m_IsGrounded) + { + m_RigidBody.drag = 5f; + + if (m_Jump) + { + m_RigidBody.drag = 0f; + m_RigidBody.velocity = new Vector3(m_RigidBody.velocity.x, 0f, m_RigidBody.velocity.z); + m_RigidBody.AddForce(new Vector3(0f, movementSettings.JumpForce, 0f), ForceMode.Impulse); + m_Jumping = true; + } + + if (!m_Jumping && Mathf.Abs(input.x) < float.Epsilon && Mathf.Abs(input.y) < float.Epsilon && m_RigidBody.velocity.magnitude < 1f) + { + m_RigidBody.Sleep(); + } + } + else + { + m_RigidBody.drag = 0f; + if (m_PreviouslyGrounded && !m_Jumping) + { + StickToGroundHelper(); + } + } + m_Jump = false; + } + + + private float SlopeMultiplier() + { + float angle = Vector3.Angle(m_GroundContactNormal, Vector3.up); + return movementSettings.SlopeCurveModifier.Evaluate(angle); + } + + + private void StickToGroundHelper() + { + RaycastHit hitInfo; + if (Physics.SphereCast(transform.position, m_Capsule.radius, Vector3.down, out hitInfo, + ((m_Capsule.height/2f) - m_Capsule.radius) + + advancedSettings.stickToGroundHelperDistance)) + { + if (Mathf.Abs(Vector3.Angle(hitInfo.normal, Vector3.up)) < 85f) + { + m_RigidBody.velocity = Vector3.ProjectOnPlane(m_RigidBody.velocity, hitInfo.normal); + } + } + } + + + private Vector2 GetInput() + { + + Vector2 input = new Vector2 + { + x = CrossPlatformInputManager.GetAxis("Horizontal"), + y = CrossPlatformInputManager.GetAxis("Vertical") + }; + movementSettings.UpdateDesiredTargetSpeed(input); + return input; + } + + + private void RotateView() + { + //avoids the mouse looking if the game is effectively paused + if (Mathf.Abs(Time.timeScale) < float.Epsilon) return; + + // get the rotation before it's changed + float oldYRotation = transform.eulerAngles.y; + + mouseLook.LookRotation (transform, cam.transform); + + if (m_IsGrounded || advancedSettings.airControl) + { + // Rotate the rigidbody velocity to match the new direction that the character is looking + Quaternion velRotation = Quaternion.AngleAxis(transform.eulerAngles.y - oldYRotation, Vector3.up); + m_RigidBody.velocity = velRotation*m_RigidBody.velocity; + } + } + + + /// sphere cast down just beyond the bottom of the capsule to see if the capsule is colliding round the bottom + private void GroundCheck() + { + m_PreviouslyGrounded = m_IsGrounded; + RaycastHit hitInfo; + if (Physics.SphereCast(transform.position, m_Capsule.radius, Vector3.down, out hitInfo, + ((m_Capsule.height/2f) - m_Capsule.radius) + advancedSettings.groundCheckDistance)) + { + m_IsGrounded = true; + m_GroundContactNormal = hitInfo.normal; + } + else + { + m_IsGrounded = false; + m_GroundContactNormal = Vector3.up; + } + if (!m_PreviouslyGrounded && m_IsGrounded && m_Jumping) + { + m_Jumping = false; + } + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Scripts/RigidbodyFirstPersonController.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Scripts/RigidbodyFirstPersonController.cs.meta new file mode 100644 index 0000000..cad5637 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Characters/FirstPersonCharacter/Scripts/RigidbodyFirstPersonController.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 81c9795a96c094f4cbde4d65546aa9b2 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput.meta new file mode 100644 index 0000000..6b4dc81 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: eb6d0d11aa24844488ea026462c8b6aa +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/CrossPlatformInputGuidelines.txt b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/CrossPlatformInputGuidelines.txt new file mode 100644 index 0000000..461c8df --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/CrossPlatformInputGuidelines.txt @@ -0,0 +1,32 @@ + +Importing the CrossPlatformInput package adds a menu item to Unity, "CrossPlatformInput", which allows you to enable or disable the CrossPlatformInput in the editor. You must enable the CrossPlatformInput in order to see the control rigs in the editor, and to start using Unity Remote to control your game. + +The CrossPlatformInput sample assets contains two main sections. + +1) The folder of prefabs provide a variety of ready-to-use "MobileControlRigs". Each control rig is suitable for a different purpose, and each implements the touch or tilt-based equivalent of some of the default standalone axes or buttons. These are ready to drop into your scene, and to use them you simply need to read the axes via the CrossPlatformInput class, rather than Unity's regular Input class. + +2) The set of scripts provided are the scripts we used to put together the control rigs prefabs. They provide a simplified way of reading basic mobile input, such as tilt, taps and swipe gestures. They are designed so that various mobile controls can be read in the same way as regular Unity axes and buttons. You can use these scripts to build your own MobileControlRigs. + + + +For example the Car control rig feeds the tilt input of the mobile device to the "Horizontal" axis, and has an accelerator and brake touch button which are fed as a pair into the "Vertical" axis. These are virtual equivalents of the real "Horizontal" and "Vertical" axes defined in Unity's Input Manager. + +Therefore when you read CrossPlatformInput.GetAxis("Horizontal"), you will either get the "real" input value - if your build target is non-mobile, or the value from the mobile control rig - if your build target is set to a mobile platform. + +The CrossPlatformInput scripts and prefabs are provided together as an example of how you can implement a cross-platform control solution in Unity. They also allow us to provide our other sample scenes in a form that can be published as standalone or to mobile targets with no modification. + +To use the CrossPlatformInput, you need to drop a "Mobile Control Rig" into your scene (or create your own), and then make calls to CrossPlatformInput functions, referring to the axes and buttons that the Rig implements. + +When reading input from the CrossPlatformInput class, the values returned will be taken either from Unity's Input Manager settings, or from the mobile-specific controls set up, depending on which build target you have selected. + +The CrossPlatformInput class is designed to be called instead of Unity's own Input class, and so mirrors certain parts of the Input API - specifically the functions relating to Axes and Buttons: + GetAxis, GetAxisRaw + GetButton, GetButtonDown, GetButtonUp + +Notes for coders: +This package sets two compiler define symbols. One is always set automatically, the other is optionally set from a menu item. + +Importing the "CrossPlatformInput" package will automatically add a compiler define symbol, "CROSS_PLATFORM_INPUT". This enables the CrossPlatformInput functions defined in some of the other Sample Asset packages (such as the Characters, Planes, etc). Without this symbol defined, those packages use Unity's regular Input class, which means they can be imported alone and still work without the CrossPlatformInput package. + +The optional define (which is set by default, but can be disabled using the "Mobile Input" menu), is "MOBILE_INPUT". This causes the MobileControlRigs to become active when a mobile build target is selected. It also enables certain mobile-specific control nuances in some of the packages, which make more sense when the character or vehicle is being controlled using mobile input (such as auto-leveling the character's look direction). This define is optional because some developers prefer to use standalone input methods instead of the Unity Remote app, when testing mobile apps in the editor's play mode. + diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/CrossPlatformInputGuidelines.txt.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/CrossPlatformInputGuidelines.txt.meta new file mode 100644 index 0000000..bc74ece --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/CrossPlatformInputGuidelines.txt.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: a3b997593a4f12c4c991490593f3b513 +TextScriptImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts.meta new file mode 100644 index 0000000..5c45353 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: d88a0b7dd92c5524aaf2d65e569a6213 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/AxisTouchButton.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/AxisTouchButton.cs new file mode 100644 index 0000000..75db18a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/AxisTouchButton.cs @@ -0,0 +1,75 @@ +using System; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace UnityStandardAssets.CrossPlatformInput +{ + public class AxisTouchButton : MonoBehaviour, IPointerDownHandler, IPointerUpHandler + { + // designed to work in a pair with another axis touch button + // (typically with one having -1 and one having 1 axisValues) + public string axisName = "Horizontal"; // The name of the axis + public float axisValue = 1; // The axis that the value has + public float responseSpeed = 3; // The speed at which the axis touch button responds + public float returnToCentreSpeed = 3; // The speed at which the button will return to its centre + + AxisTouchButton m_PairedWith; // Which button this one is paired with + CrossPlatformInputManager.VirtualAxis m_Axis; // A reference to the virtual axis as it is in the cross platform input + + void OnEnable() + { + if (!CrossPlatformInputManager.AxisExists(axisName)) + { + // if the axis doesnt exist create a new one in cross platform input + m_Axis = new CrossPlatformInputManager.VirtualAxis(axisName); + CrossPlatformInputManager.RegisterVirtualAxis(m_Axis); + } + else + { + m_Axis = CrossPlatformInputManager.VirtualAxisReference(axisName); + } + FindPairedButton(); + } + + void FindPairedButton() + { + // find the other button witch which this button should be paired + // (it should have the same axisName) + var otherAxisButtons = FindObjectsOfType(typeof(AxisTouchButton)) as AxisTouchButton[]; + + if (otherAxisButtons != null) + { + for (int i = 0; i < otherAxisButtons.Length; i++) + { + if (otherAxisButtons[i].axisName == axisName && otherAxisButtons[i] != this) + { + m_PairedWith = otherAxisButtons[i]; + } + } + } + } + + void OnDisable() + { + // The object is disabled so remove it from the cross platform input system + m_Axis.Remove(); + } + + + public void OnPointerDown(PointerEventData data) + { + if (m_PairedWith == null) + { + FindPairedButton(); + } + // update the axis and record that the button has been pressed this frame + m_Axis.Update(Mathf.MoveTowards(m_Axis.GetValue, axisValue, responseSpeed * Time.deltaTime)); + } + + + public void OnPointerUp(PointerEventData data) + { + m_Axis.Update(Mathf.MoveTowards(m_Axis.GetValue, 0, responseSpeed * Time.deltaTime)); + } + } +} \ No newline at end of file diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/AxisTouchButton.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/AxisTouchButton.cs.meta new file mode 100644 index 0000000..241497f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/AxisTouchButton.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9ab98b66288df7b4fa182075f2f12bd6 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/ButtonHandler.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/ButtonHandler.cs new file mode 100644 index 0000000..ca34acf --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/ButtonHandler.cs @@ -0,0 +1,50 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.CrossPlatformInput +{ + public class ButtonHandler : MonoBehaviour + { + + public string Name; + + void OnEnable() + { + + } + + public void SetDownState() + { + CrossPlatformInputManager.SetButtonDown(Name); + } + + + public void SetUpState() + { + CrossPlatformInputManager.SetButtonUp(Name); + } + + + public void SetAxisPositiveState() + { + CrossPlatformInputManager.SetAxisPositive(Name); + } + + + public void SetAxisNeutralState() + { + CrossPlatformInputManager.SetAxisZero(Name); + } + + + public void SetAxisNegativeState() + { + CrossPlatformInputManager.SetAxisNegative(Name); + } + + public void Update() + { + + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/ButtonHandler.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/ButtonHandler.cs.meta new file mode 100644 index 0000000..1aadb06 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/ButtonHandler.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 85bf3be603548374ca46f521a3aa7fda +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/CrossPlatformInputManager.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/CrossPlatformInputManager.cs new file mode 100644 index 0000000..7f28944 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/CrossPlatformInputManager.cs @@ -0,0 +1,318 @@ +using System; +using UnityEngine; +using UnityStandardAssets.CrossPlatformInput.PlatformSpecific; + +namespace UnityStandardAssets.CrossPlatformInput +{ + public static class CrossPlatformInputManager + { + public enum ActiveInputMethod + { + Hardware, + Touch + } + + + private static VirtualInput activeInput; + + private static VirtualInput s_TouchInput; + private static VirtualInput s_HardwareInput; + + + static CrossPlatformInputManager() + { + s_TouchInput = new MobileInput(); + s_HardwareInput = new StandaloneInput(); +#if MOBILE_INPUT + activeInput = s_TouchInput; +#else + activeInput = s_HardwareInput; +#endif + } + + public static void SwitchActiveInputMethod(ActiveInputMethod activeInputMethod) + { + switch (activeInputMethod) + { + case ActiveInputMethod.Hardware: + activeInput = s_HardwareInput; + break; + + case ActiveInputMethod.Touch: + activeInput = s_TouchInput; + break; + } + } + + public static bool AxisExists(string name) + { + return activeInput.AxisExists(name); + } + + public static bool ButtonExists(string name) + { + return activeInput.ButtonExists(name); + } + + public static void RegisterVirtualAxis(VirtualAxis axis) + { + activeInput.RegisterVirtualAxis(axis); + } + + + public static void RegisterVirtualButton(VirtualButton button) + { + activeInput.RegisterVirtualButton(button); + } + + + public static void UnRegisterVirtualAxis(string name) + { + if (name == null) + { + throw new ArgumentNullException("name"); + } + activeInput.UnRegisterVirtualAxis(name); + } + + + public static void UnRegisterVirtualButton(string name) + { + activeInput.UnRegisterVirtualButton(name); + } + + + // returns a reference to a named virtual axis if it exists otherwise null + public static VirtualAxis VirtualAxisReference(string name) + { + return activeInput.VirtualAxisReference(name); + } + + + // returns the platform appropriate axis for the given name + public static float GetAxis(string name) + { + return GetAxis(name, false); + } + + + public static float GetAxisRaw(string name) + { + return GetAxis(name, true); + } + + + // private function handles both types of axis (raw and not raw) + private static float GetAxis(string name, bool raw) + { + return activeInput.GetAxis(name, raw); + } + + + // -- Button handling -- + public static bool GetButton(string name) + { + return activeInput.GetButton(name); + } + + + public static bool GetButtonDown(string name) + { + return activeInput.GetButtonDown(name); + } + + + public static bool GetButtonUp(string name) + { + return activeInput.GetButtonUp(name); + } + + + public static void SetButtonDown(string name) + { + activeInput.SetButtonDown(name); + } + + + public static void SetButtonUp(string name) + { + activeInput.SetButtonUp(name); + } + + + public static void SetAxisPositive(string name) + { + activeInput.SetAxisPositive(name); + } + + + public static void SetAxisNegative(string name) + { + activeInput.SetAxisNegative(name); + } + + + public static void SetAxisZero(string name) + { + activeInput.SetAxisZero(name); + } + + + public static void SetAxis(string name, float value) + { + activeInput.SetAxis(name, value); + } + + + public static Vector3 mousePosition + { + get { return activeInput.MousePosition(); } + } + + + public static void SetVirtualMousePositionX(float f) + { + activeInput.SetVirtualMousePositionX(f); + } + + + public static void SetVirtualMousePositionY(float f) + { + activeInput.SetVirtualMousePositionY(f); + } + + + public static void SetVirtualMousePositionZ(float f) + { + activeInput.SetVirtualMousePositionZ(f); + } + + + // virtual axis and button classes - applies to mobile input + // Can be mapped to touch joysticks, tilt, gyro, etc, depending on desired implementation. + // Could also be implemented by other input devices - kinect, electronic sensors, etc + public class VirtualAxis + { + public string name { get; private set; } + private float m_Value; + public bool matchWithInputManager { get; private set; } + + + public VirtualAxis(string name) + : this(name, true) + { + } + + + public VirtualAxis(string name, bool matchToInputSettings) + { + this.name = name; + matchWithInputManager = matchToInputSettings; + } + + + // removes an axes from the cross platform input system + public void Remove() + { + UnRegisterVirtualAxis(name); + } + + + // a controller gameobject (eg. a virtual thumbstick) should update this class + public void Update(float value) + { + m_Value = value; + } + + + public float GetValue + { + get { return m_Value; } + } + + + public float GetValueRaw + { + get { return m_Value; } + } + } + + // a controller gameobject (eg. a virtual GUI button) should call the + // 'pressed' function of this class. Other objects can then read the + // Get/Down/Up state of this button. + public class VirtualButton + { + public string name { get; private set; } + public bool matchWithInputManager { get; private set; } + + private int m_LastPressedFrame = -5; + private int m_ReleasedFrame = -5; + private bool m_Pressed; + + + public VirtualButton(string name) + : this(name, true) + { + } + + + public VirtualButton(string name, bool matchToInputSettings) + { + this.name = name; + matchWithInputManager = matchToInputSettings; + } + + + // A controller gameobject should call this function when the button is pressed down + public void Pressed() + { + if (m_Pressed) + { + return; + } + m_Pressed = true; + m_LastPressedFrame = Time.frameCount; + } + + + // A controller gameobject should call this function when the button is released + public void Released() + { + m_Pressed = false; + m_ReleasedFrame = Time.frameCount; + } + + + // the controller gameobject should call Remove when the button is destroyed or disabled + public void Remove() + { + UnRegisterVirtualButton(name); + } + + + // these are the states of the button which can be read via the cross platform input system + public bool GetButton + { + get { return m_Pressed; } + } + + + public bool GetButtonDown + { + get + { + return m_LastPressedFrame - Time.frameCount == -1; + } + } + + + public bool GetButtonUp + { + get + { + return (m_ReleasedFrame == Time.frameCount - 1); + } + } + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/CrossPlatformInputManager.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/CrossPlatformInputManager.cs.meta new file mode 100644 index 0000000..ea900aa --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/CrossPlatformInputManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6ac1ce5a5adfd9f46adbf5b6f752a47c +labels: +- Done +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: -1010 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/InputAxisScrollbar.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/InputAxisScrollbar.cs new file mode 100644 index 0000000..b29832b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/InputAxisScrollbar.cs @@ -0,0 +1,17 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.CrossPlatformInput +{ + public class InputAxisScrollbar : MonoBehaviour + { + public string axis; + + void Update() { } + + public void HandleInput(float value) + { + CrossPlatformInputManager.SetAxis(axis, (value*2f) - 1f); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/InputAxisScrollbar.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/InputAxisScrollbar.cs.meta new file mode 100644 index 0000000..956782c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/InputAxisScrollbar.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7d3269566d48b8447bb48d2259e28f8b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/Joystick.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/Joystick.cs new file mode 100644 index 0000000..fad46a8 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/Joystick.cs @@ -0,0 +1,118 @@ +using System; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace UnityStandardAssets.CrossPlatformInput +{ + public class Joystick : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IDragHandler + { + public enum AxisOption + { + // Options for which axes to use + Both, // Use both + OnlyHorizontal, // Only horizontal + OnlyVertical // Only vertical + } + + public int MovementRange = 100; + public AxisOption axesToUse = AxisOption.Both; // The options for the axes that the still will use + public string horizontalAxisName = "Horizontal"; // The name given to the horizontal axis for the cross platform input + public string verticalAxisName = "Vertical"; // The name given to the vertical axis for the cross platform input + + Vector3 m_StartPos; + bool m_UseX; // Toggle for using the x axis + bool m_UseY; // Toggle for using the Y axis + CrossPlatformInputManager.VirtualAxis m_HorizontalVirtualAxis; // Reference to the joystick in the cross platform input + CrossPlatformInputManager.VirtualAxis m_VerticalVirtualAxis; // Reference to the joystick in the cross platform input + + void OnEnable() + { + CreateVirtualAxes(); + } + + void Start() + { + m_StartPos = transform.position; + } + + void UpdateVirtualAxes(Vector3 value) + { + var delta = m_StartPos - value; + delta.y = -delta.y; + delta /= MovementRange; + if (m_UseX) + { + m_HorizontalVirtualAxis.Update(-delta.x); + } + + if (m_UseY) + { + m_VerticalVirtualAxis.Update(delta.y); + } + } + + void CreateVirtualAxes() + { + // set axes to use + m_UseX = (axesToUse == AxisOption.Both || axesToUse == AxisOption.OnlyHorizontal); + m_UseY = (axesToUse == AxisOption.Both || axesToUse == AxisOption.OnlyVertical); + + // create new axes based on axes to use + if (m_UseX) + { + m_HorizontalVirtualAxis = new CrossPlatformInputManager.VirtualAxis(horizontalAxisName); + CrossPlatformInputManager.RegisterVirtualAxis(m_HorizontalVirtualAxis); + } + if (m_UseY) + { + m_VerticalVirtualAxis = new CrossPlatformInputManager.VirtualAxis(verticalAxisName); + CrossPlatformInputManager.RegisterVirtualAxis(m_VerticalVirtualAxis); + } + } + + + public void OnDrag(PointerEventData data) + { + Vector3 newPos = Vector3.zero; + + if (m_UseX) + { + int delta = (int)(data.position.x - m_StartPos.x); + delta = Mathf.Clamp(delta, - MovementRange, MovementRange); + newPos.x = delta; + } + + if (m_UseY) + { + int delta = (int)(data.position.y - m_StartPos.y); + delta = Mathf.Clamp(delta, -MovementRange, MovementRange); + newPos.y = delta; + } + transform.position = new Vector3(m_StartPos.x + newPos.x, m_StartPos.y + newPos.y, m_StartPos.z + newPos.z); + UpdateVirtualAxes(transform.position); + } + + + public void OnPointerUp(PointerEventData data) + { + transform.position = m_StartPos; + UpdateVirtualAxes(m_StartPos); + } + + + public void OnPointerDown(PointerEventData data) { } + + void OnDisable() + { + // remove the joysticks from the cross platform input + if (m_UseX) + { + m_HorizontalVirtualAxis.Remove(); + } + if (m_UseY) + { + m_VerticalVirtualAxis.Remove(); + } + } + } +} \ No newline at end of file diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/Joystick.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/Joystick.cs.meta new file mode 100644 index 0000000..aaac767 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/Joystick.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 00c3c865782347f41b6358d9fba14b48 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/MobileControlRig.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/MobileControlRig.cs new file mode 100644 index 0000000..af516f0 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/MobileControlRig.cs @@ -0,0 +1,86 @@ +using System; +#if UNITY_EDITOR +using UnityEditor; +#endif +using UnityEngine; + + +namespace UnityStandardAssets.CrossPlatformInput +{ + [ExecuteInEditMode] + public class MobileControlRig : MonoBehaviour + { + // this script enables or disables the child objects of a control rig + // depending on whether the USE_MOBILE_INPUT define is declared. + + // This define is set or unset by a menu item that is included with + // the Cross Platform Input package. + +#if !UNITY_EDITOR + void OnEnable() + { + CheckEnableControlRig(); + } + #endif + + private void Start() + { +#if UNITY_EDITOR + if (Application.isPlaying) //if in the editor, need to check if we are playing, as start is also called just after exiting play +#endif + { + UnityEngine.EventSystems.EventSystem system = GameObject.FindObjectOfType(); + + if (system == null) + {//the scene have no event system, spawn one + GameObject o = new GameObject("EventSystem"); + + o.AddComponent(); + o.AddComponent(); + o.AddComponent(); + } + } + } + +#if UNITY_EDITOR + + private void OnEnable() + { + EditorUserBuildSettings.activeBuildTargetChanged += Update; + EditorApplication.update += Update; + } + + + private void OnDisable() + { + EditorUserBuildSettings.activeBuildTargetChanged -= Update; + EditorApplication.update -= Update; + } + + + private void Update() + { + CheckEnableControlRig(); + } +#endif + + + private void CheckEnableControlRig() + { +#if MOBILE_INPUT + EnableControlRig(true); + #else + EnableControlRig(false); +#endif + } + + + private void EnableControlRig(bool enabled) + { + foreach (Transform t in transform) + { + t.gameObject.SetActive(enabled); + } + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/MobileControlRig.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/MobileControlRig.cs.meta new file mode 100644 index 0000000..0ee49e8 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/MobileControlRig.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 71398ce7fbc3a5b4fa50b50bd54317a7 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific.meta new file mode 100644 index 0000000..830670b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: f3f33f034733d9f4f9d439d80e26bdce +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/MobileInput.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/MobileInput.cs new file mode 100644 index 0000000..580bda7 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/MobileInput.cs @@ -0,0 +1,133 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.CrossPlatformInput.PlatformSpecific +{ + public class MobileInput : VirtualInput + { + private void AddButton(string name) + { + // we have not registered this button yet so add it, happens in the constructor + CrossPlatformInputManager.RegisterVirtualButton(new CrossPlatformInputManager.VirtualButton(name)); + } + + + private void AddAxes(string name) + { + // we have not registered this button yet so add it, happens in the constructor + CrossPlatformInputManager.RegisterVirtualAxis(new CrossPlatformInputManager.VirtualAxis(name)); + } + + + public override float GetAxis(string name, bool raw) + { + if (!m_VirtualAxes.ContainsKey(name)) + { + AddAxes(name); + } + return m_VirtualAxes[name].GetValue; + } + + + public override void SetButtonDown(string name) + { + if (!m_VirtualButtons.ContainsKey(name)) + { + AddButton(name); + } + m_VirtualButtons[name].Pressed(); + } + + + public override void SetButtonUp(string name) + { + if (!m_VirtualButtons.ContainsKey(name)) + { + AddButton(name); + } + m_VirtualButtons[name].Released(); + } + + + public override void SetAxisPositive(string name) + { + if (!m_VirtualAxes.ContainsKey(name)) + { + AddAxes(name); + } + m_VirtualAxes[name].Update(1f); + } + + + public override void SetAxisNegative(string name) + { + if (!m_VirtualAxes.ContainsKey(name)) + { + AddAxes(name); + } + m_VirtualAxes[name].Update(-1f); + } + + + public override void SetAxisZero(string name) + { + if (!m_VirtualAxes.ContainsKey(name)) + { + AddAxes(name); + } + m_VirtualAxes[name].Update(0f); + } + + + public override void SetAxis(string name, float value) + { + if (!m_VirtualAxes.ContainsKey(name)) + { + AddAxes(name); + } + m_VirtualAxes[name].Update(value); + } + + + public override bool GetButtonDown(string name) + { + if (m_VirtualButtons.ContainsKey(name)) + { + return m_VirtualButtons[name].GetButtonDown; + } + + AddButton(name); + return m_VirtualButtons[name].GetButtonDown; + } + + + public override bool GetButtonUp(string name) + { + if (m_VirtualButtons.ContainsKey(name)) + { + return m_VirtualButtons[name].GetButtonUp; + } + + AddButton(name); + return m_VirtualButtons[name].GetButtonUp; + } + + + public override bool GetButton(string name) + { + if (m_VirtualButtons.ContainsKey(name)) + { + return m_VirtualButtons[name].GetButton; + } + + AddButton(name); + return m_VirtualButtons[name].GetButton; + } + + + public override Vector3 MousePosition() + { + return virtualMousePosition; + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/MobileInput.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/MobileInput.cs.meta new file mode 100644 index 0000000..e0ffb74 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/MobileInput.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9703d53e47195aa4190acd11369ccd1b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/StandaloneInput.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/StandaloneInput.cs new file mode 100644 index 0000000..9cc1a37 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/StandaloneInput.cs @@ -0,0 +1,79 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.CrossPlatformInput.PlatformSpecific +{ + public class StandaloneInput : VirtualInput + { + public override float GetAxis(string name, bool raw) + { + return raw ? Input.GetAxisRaw(name) : Input.GetAxis(name); + } + + + public override bool GetButton(string name) + { + return Input.GetButton(name); + } + + + public override bool GetButtonDown(string name) + { + return Input.GetButtonDown(name); + } + + + public override bool GetButtonUp(string name) + { + return Input.GetButtonUp(name); + } + + + public override void SetButtonDown(string name) + { + throw new Exception( + " This is not possible to be called for standalone input. Please check your platform and code where this is called"); + } + + + public override void SetButtonUp(string name) + { + throw new Exception( + " This is not possible to be called for standalone input. Please check your platform and code where this is called"); + } + + + public override void SetAxisPositive(string name) + { + throw new Exception( + " This is not possible to be called for standalone input. Please check your platform and code where this is called"); + } + + + public override void SetAxisNegative(string name) + { + throw new Exception( + " This is not possible to be called for standalone input. Please check your platform and code where this is called"); + } + + + public override void SetAxisZero(string name) + { + throw new Exception( + " This is not possible to be called for standalone input. Please check your platform and code where this is called"); + } + + + public override void SetAxis(string name, float value) + { + throw new Exception( + " This is not possible to be called for standalone input. Please check your platform and code where this is called"); + } + + + public override Vector3 MousePosition() + { + return Input.mousePosition; + } + } +} \ No newline at end of file diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/StandaloneInput.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/StandaloneInput.cs.meta new file mode 100644 index 0000000..d4c99a6 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/PlatformSpecific/StandaloneInput.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9961032f4f02c4f41997c3ea399d2f22 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/TiltInput.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/TiltInput.cs new file mode 100644 index 0000000..328e3b4 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/TiltInput.cs @@ -0,0 +1,145 @@ +using System; +using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace UnityStandardAssets.CrossPlatformInput +{ + // helps with managing tilt input on mobile devices + public class TiltInput : MonoBehaviour + { + // options for the various orientations + public enum AxisOptions + { + ForwardAxis, + SidewaysAxis, + } + + + [Serializable] + public class AxisMapping + { + public enum MappingType + { + NamedAxis, + MousePositionX, + MousePositionY, + MousePositionZ + }; + + + public MappingType type; + public string axisName; + } + + + public AxisMapping mapping; + public AxisOptions tiltAroundAxis = AxisOptions.ForwardAxis; + public float fullTiltAngle = 25; + public float centreAngleOffset = 0; + + + private CrossPlatformInputManager.VirtualAxis m_SteerAxis; + + + private void OnEnable() + { + if (mapping.type == AxisMapping.MappingType.NamedAxis) + { + m_SteerAxis = new CrossPlatformInputManager.VirtualAxis(mapping.axisName); + CrossPlatformInputManager.RegisterVirtualAxis(m_SteerAxis); + } + } + + + private void Update() + { + float angle = 0; + if (Input.acceleration != Vector3.zero) + { + switch (tiltAroundAxis) + { + case AxisOptions.ForwardAxis: + angle = Mathf.Atan2(Input.acceleration.x, -Input.acceleration.y)*Mathf.Rad2Deg + + centreAngleOffset; + break; + case AxisOptions.SidewaysAxis: + angle = Mathf.Atan2(Input.acceleration.z, -Input.acceleration.y)*Mathf.Rad2Deg + + centreAngleOffset; + break; + } + } + + float axisValue = Mathf.InverseLerp(-fullTiltAngle, fullTiltAngle, angle)*2 - 1; + switch (mapping.type) + { + case AxisMapping.MappingType.NamedAxis: + m_SteerAxis.Update(axisValue); + break; + case AxisMapping.MappingType.MousePositionX: + CrossPlatformInputManager.SetVirtualMousePositionX(axisValue*Screen.width); + break; + case AxisMapping.MappingType.MousePositionY: + CrossPlatformInputManager.SetVirtualMousePositionY(axisValue*Screen.width); + break; + case AxisMapping.MappingType.MousePositionZ: + CrossPlatformInputManager.SetVirtualMousePositionZ(axisValue*Screen.width); + break; + } + } + + + private void OnDisable() + { + m_SteerAxis.Remove(); + } + } +} + + +namespace UnityStandardAssets.CrossPlatformInput.Inspector +{ +#if UNITY_EDITOR + [CustomPropertyDrawer(typeof (TiltInput.AxisMapping))] + public class TiltInputAxisStylePropertyDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + EditorGUI.BeginProperty(position, label, property); + + float x = position.x; + float y = position.y; + float inspectorWidth = position.width; + + // Don't make child fields be indented + var indent = EditorGUI.indentLevel; + EditorGUI.indentLevel = 0; + + var props = new[] {"type", "axisName"}; + var widths = new[] {.4f, .6f}; + if (property.FindPropertyRelative("type").enumValueIndex > 0) + { + // hide name if not a named axis + props = new[] {"type"}; + widths = new[] {1f}; + } + const float lineHeight = 18; + for (int n = 0; n < props.Length; ++n) + { + float w = widths[n]*inspectorWidth; + + // Calculate rects + Rect rect = new Rect(x, y, w, lineHeight); + x += w; + + EditorGUI.PropertyField(rect, property.FindPropertyRelative(props[n]), GUIContent.none); + } + + // Set indent back to what it was + EditorGUI.indentLevel = indent; + EditorGUI.EndProperty(); + } + } +#endif +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/TiltInput.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/TiltInput.cs.meta new file mode 100644 index 0000000..93f79bf --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/TiltInput.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 5c2d84226fbbaf94e9c1451f1c39b06a +labels: +- Not +- Fully +- Implemented +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: -1001 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/TouchPad.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/TouchPad.cs new file mode 100644 index 0000000..3c33612 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/TouchPad.cs @@ -0,0 +1,156 @@ +using System; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace UnityStandardAssets.CrossPlatformInput +{ + [RequireComponent(typeof(Image))] + public class TouchPad : MonoBehaviour, IPointerDownHandler, IPointerUpHandler + { + // Options for which axes to use + public enum AxisOption + { + Both, // Use both + OnlyHorizontal, // Only horizontal + OnlyVertical // Only vertical + } + + + public enum ControlStyle + { + Absolute, // operates from teh center of the image + Relative, // operates from the center of the initial touch + Swipe, // swipe to touch touch no maintained center + } + + + public AxisOption axesToUse = AxisOption.Both; // The options for the axes that the still will use + public ControlStyle controlStyle = ControlStyle.Absolute; // control style to use + public string horizontalAxisName = "Horizontal"; // The name given to the horizontal axis for the cross platform input + public string verticalAxisName = "Vertical"; // The name given to the vertical axis for the cross platform input + public float Xsensitivity = 1f; + public float Ysensitivity = 1f; + + Vector3 m_StartPos; + Vector2 m_PreviousDelta; + Vector3 m_JoytickOutput; + bool m_UseX; // Toggle for using the x axis + bool m_UseY; // Toggle for using the Y axis + CrossPlatformInputManager.VirtualAxis m_HorizontalVirtualAxis; // Reference to the joystick in the cross platform input + CrossPlatformInputManager.VirtualAxis m_VerticalVirtualAxis; // Reference to the joystick in the cross platform input + bool m_Dragging; + int m_Id = -1; + Vector2 m_PreviousTouchPos; // swipe style control touch + + +#if !UNITY_EDITOR + private Vector3 m_Center; + private Image m_Image; +#else + Vector3 m_PreviousMouse; +#endif + + void OnEnable() + { + CreateVirtualAxes(); + } + + void Start() + { +#if !UNITY_EDITOR + m_Image = GetComponent(); + m_Center = m_Image.transform.position; +#endif + } + + void CreateVirtualAxes() + { + // set axes to use + m_UseX = (axesToUse == AxisOption.Both || axesToUse == AxisOption.OnlyHorizontal); + m_UseY = (axesToUse == AxisOption.Both || axesToUse == AxisOption.OnlyVertical); + + // create new axes based on axes to use + if (m_UseX) + { + m_HorizontalVirtualAxis = new CrossPlatformInputManager.VirtualAxis(horizontalAxisName); + CrossPlatformInputManager.RegisterVirtualAxis(m_HorizontalVirtualAxis); + } + if (m_UseY) + { + m_VerticalVirtualAxis = new CrossPlatformInputManager.VirtualAxis(verticalAxisName); + CrossPlatformInputManager.RegisterVirtualAxis(m_VerticalVirtualAxis); + } + } + + void UpdateVirtualAxes(Vector3 value) + { + value = value.normalized; + if (m_UseX) + { + m_HorizontalVirtualAxis.Update(value.x); + } + + if (m_UseY) + { + m_VerticalVirtualAxis.Update(value.y); + } + } + + + public void OnPointerDown(PointerEventData data) + { + m_Dragging = true; + m_Id = data.pointerId; +#if !UNITY_EDITOR + if (controlStyle != ControlStyle.Absolute ) + m_Center = data.position; +#endif + } + + void Update() + { + if (!m_Dragging) + { + return; + } + if (Input.touchCount >= m_Id + 1 && m_Id != -1) + { +#if !UNITY_EDITOR + + if (controlStyle == ControlStyle.Swipe) + { + m_Center = m_PreviousTouchPos; + m_PreviousTouchPos = Input.touches[m_Id].position; + } + Vector2 pointerDelta = new Vector2(Input.touches[m_Id].position.x - m_Center.x , Input.touches[m_Id].position.y - m_Center.y).normalized; + pointerDelta.x *= Xsensitivity; + pointerDelta.y *= Ysensitivity; +#else + Vector2 pointerDelta; + pointerDelta.x = Input.mousePosition.x - m_PreviousMouse.x; + pointerDelta.y = Input.mousePosition.y - m_PreviousMouse.y; + m_PreviousMouse = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0f); +#endif + UpdateVirtualAxes(new Vector3(pointerDelta.x, pointerDelta.y, 0)); + } + } + + + public void OnPointerUp(PointerEventData data) + { + m_Dragging = false; + m_Id = -1; + UpdateVirtualAxes(Vector3.zero); + } + + void OnDisable() + { + if (CrossPlatformInputManager.AxisExists(horizontalAxisName)) + CrossPlatformInputManager.UnRegisterVirtualAxis(horizontalAxisName); + + if (CrossPlatformInputManager.AxisExists(verticalAxisName)) + CrossPlatformInputManager.UnRegisterVirtualAxis(verticalAxisName); + } + } +} \ No newline at end of file diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/TouchPad.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/TouchPad.cs.meta new file mode 100644 index 0000000..0b176aa --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/TouchPad.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1caf40fc8bebb6b43b2550c05ca791d6 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/VirtualInput.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/VirtualInput.cs new file mode 100644 index 0000000..0b9f5ad --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/VirtualInput.cs @@ -0,0 +1,134 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + + +namespace UnityStandardAssets.CrossPlatformInput +{ + public abstract class VirtualInput + { + public Vector3 virtualMousePosition { get; private set; } + + + protected Dictionary m_VirtualAxes = + new Dictionary(); + // Dictionary to store the name relating to the virtual axes + protected Dictionary m_VirtualButtons = + new Dictionary(); + protected List m_AlwaysUseVirtual = new List(); + // list of the axis and button names that have been flagged to always use a virtual axis or button + + + public bool AxisExists(string name) + { + return m_VirtualAxes.ContainsKey(name); + } + + public bool ButtonExists(string name) + { + return m_VirtualButtons.ContainsKey(name); + } + + + public void RegisterVirtualAxis(CrossPlatformInputManager.VirtualAxis axis) + { + // check if we already have an axis with that name and log and error if we do + if (m_VirtualAxes.ContainsKey(axis.name)) + { + Debug.LogError("There is already a virtual axis named " + axis.name + " registered."); + } + else + { + // add any new axes + m_VirtualAxes.Add(axis.name, axis); + + // if we dont want to match with the input manager setting then revert to always using virtual + if (!axis.matchWithInputManager) + { + m_AlwaysUseVirtual.Add(axis.name); + } + } + } + + + public void RegisterVirtualButton(CrossPlatformInputManager.VirtualButton button) + { + // check if already have a buttin with that name and log an error if we do + if (m_VirtualButtons.ContainsKey(button.name)) + { + Debug.LogError("There is already a virtual button named " + button.name + " registered."); + } + else + { + // add any new buttons + m_VirtualButtons.Add(button.name, button); + + // if we dont want to match to the input manager then always use a virtual axis + if (!button.matchWithInputManager) + { + m_AlwaysUseVirtual.Add(button.name); + } + } + } + + + public void UnRegisterVirtualAxis(string name) + { + // if we have an axis with that name then remove it from our dictionary of registered axes + if (m_VirtualAxes.ContainsKey(name)) + { + m_VirtualAxes.Remove(name); + } + } + + + public void UnRegisterVirtualButton(string name) + { + // if we have a button with this name then remove it from our dictionary of registered buttons + if (m_VirtualButtons.ContainsKey(name)) + { + m_VirtualButtons.Remove(name); + } + } + + + // returns a reference to a named virtual axis if it exists otherwise null + public CrossPlatformInputManager.VirtualAxis VirtualAxisReference(string name) + { + return m_VirtualAxes.ContainsKey(name) ? m_VirtualAxes[name] : null; + } + + + public void SetVirtualMousePositionX(float f) + { + virtualMousePosition = new Vector3(f, virtualMousePosition.y, virtualMousePosition.z); + } + + + public void SetVirtualMousePositionY(float f) + { + virtualMousePosition = new Vector3(virtualMousePosition.x, f, virtualMousePosition.z); + } + + + public void SetVirtualMousePositionZ(float f) + { + virtualMousePosition = new Vector3(virtualMousePosition.x, virtualMousePosition.y, f); + } + + + public abstract float GetAxis(string name, bool raw); + + public abstract bool GetButton(string name); + public abstract bool GetButtonDown(string name); + public abstract bool GetButtonUp(string name); + + public abstract void SetButtonDown(string name); + public abstract void SetButtonUp(string name); + public abstract void SetAxisPositive(string name); + public abstract void SetAxisNegative(string name); + public abstract void SetAxisZero(string name); + public abstract void SetAxis(string name, float value); + public abstract Vector3 MousePosition(); + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/VirtualInput.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/VirtualInput.cs.meta new file mode 100644 index 0000000..8f6c44d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/CrossPlatformInput/Scripts/VirtualInput.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0f57aeb1b8dce3342bea5c28ac17db24 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects.meta new file mode 100644 index 0000000..393afe5 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 115d1f9d9bd29064ab981e57c8fc8cdf +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction.meta new file mode 100644 index 0000000..80e75a7 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 3c788335fe2df44ca9bbf95bc580ce4d +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Materials.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Materials.meta new file mode 100644 index 0000000..d2de9ce --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Materials.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: db69b3da6ede2444b92c479f24b48999 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Materials/GlassRefractive.mat b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Materials/GlassRefractive.mat new file mode 100644 index 0000000..87ffd7c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Materials/GlassRefractive.mat @@ -0,0 +1,50 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: GlassRefractive + m_Shader: {fileID: 4800000, guid: 963484209d11fd7f110076aa44295342, type: 3} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 19555d7d9d114c7f1100f5ab44295342, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 4b8d081e9d114c7f1100f5ab44295342, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: 1 + data: + first: + name: _BumpAmt + second: 128 + m_Colors: + data: + first: + name: _Color + second: {r: .423392087, g: .423392087, b: .423392087, a: 0} + data: + first: + name: _SpecColor + second: {r: .981927693, g: .963855445, b: 1, a: 1} +--- !u!1002 &2100001 +EditorExtensionImpl: + serializedVersion: 6 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Materials/GlassRefractive.mat.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Materials/GlassRefractive.mat.meta new file mode 100644 index 0000000..3e5ce3e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Materials/GlassRefractive.mat.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 848918a99d11f25f110026ca44295342 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Shaders.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Shaders.meta new file mode 100644 index 0000000..dac15bb --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Shaders.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 194c5f733c7534ed790e101791e86518 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Shaders/GlassStainedBumpDistort.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Shaders/GlassStainedBumpDistort.shader new file mode 100644 index 0000000..15a1447 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Shaders/GlassStainedBumpDistort.shader @@ -0,0 +1,109 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +// Per pixel bumped refraction. +// Uses a normal map to distort the image behind, and +// an additional texture to tint the color. + +Shader "FX/Glass/Stained BumpDistort" { +Properties { + _BumpAmt ("Distortion", range (0,128)) = 10 + _MainTex ("Tint Color (RGB)", 2D) = "white" {} + _BumpMap ("Normalmap", 2D) = "bump" {} +} + +Category { + + // We must be transparent, so other objects are drawn before this one. + Tags { "Queue"="Transparent" "RenderType"="Opaque" } + + + SubShader { + + // This pass grabs the screen behind the object into a texture. + // We can access the result in the next pass as _GrabTexture + GrabPass { + Name "BASE" + Tags { "LightMode" = "Always" } + } + + // Main pass: Take the texture grabbed above and use the bumpmap to perturb it + // on to the screen + Pass { + Name "BASE" + Tags { "LightMode" = "Always" } + +CGPROGRAM +#pragma vertex vert +#pragma fragment frag +#pragma multi_compile_fog +#include "UnityCG.cginc" + +struct appdata_t { + float4 vertex : POSITION; + float2 texcoord: TEXCOORD0; +}; + +struct v2f { + float4 vertex : SV_POSITION; + float4 uvgrab : TEXCOORD0; + float2 uvbump : TEXCOORD1; + float2 uvmain : TEXCOORD2; + UNITY_FOG_COORDS(3) +}; + +float _BumpAmt; +float4 _BumpMap_ST; +float4 _MainTex_ST; + +v2f vert (appdata_t v) +{ + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + #if UNITY_UV_STARTS_AT_TOP + float scale = -1.0; + #else + float scale = 1.0; + #endif + o.uvgrab.xy = (float2(o.vertex.x, o.vertex.y*scale) + o.vertex.w) * 0.5; + o.uvgrab.zw = o.vertex.zw; + o.uvbump = TRANSFORM_TEX( v.texcoord, _BumpMap ); + o.uvmain = TRANSFORM_TEX( v.texcoord, _MainTex ); + UNITY_TRANSFER_FOG(o,o.vertex); + return o; +} + +sampler2D _GrabTexture; +float4 _GrabTexture_TexelSize; +sampler2D _BumpMap; +sampler2D _MainTex; + +half4 frag (v2f i) : SV_Target +{ + // calculate perturbed coordinates + half2 bump = UnpackNormal(tex2D( _BumpMap, i.uvbump )).rg; // we could optimize this by just reading the x & y without reconstructing the Z + float2 offset = bump * _BumpAmt * _GrabTexture_TexelSize.xy; + i.uvgrab.xy = offset * i.uvgrab.z + i.uvgrab.xy; + + half4 col = tex2Dproj( _GrabTexture, UNITY_PROJ_COORD(i.uvgrab)); + half4 tint = tex2D(_MainTex, i.uvmain); + col *= tint; + UNITY_APPLY_FOG(i.fogCoord, col); + return col; +} +ENDCG + } + } + + // ------------------------------------------------------------------ + // Fallback for older cards and Unity non-Pro + + SubShader { + Blend DstColor Zero + Pass { + Name "BASE" + SetTexture [_MainTex] { combine texture } + } + } +} + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Shaders/GlassStainedBumpDistort.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Shaders/GlassStainedBumpDistort.shader.meta new file mode 100644 index 0000000..5a6ce2e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Shaders/GlassStainedBumpDistort.shader.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 963484209d11fd7f110076aa44295342 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Textures.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Textures.meta new file mode 100644 index 0000000..24a70e3 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Textures.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 8869f43d702ae4d6d8930649833d6bee +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Textures/GlassStainedAlbedo.tif b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Textures/GlassStainedAlbedo.tif new file mode 100644 index 0000000..39bec77 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Textures/GlassStainedAlbedo.tif differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Textures/GlassStainedAlbedo.tif.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Textures/GlassStainedAlbedo.tif.meta new file mode 100644 index 0000000..a9e601e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Textures/GlassStainedAlbedo.tif.meta @@ -0,0 +1,52 @@ +fileFormatVersion: 2 +guid: 19555d7d9d114c7f1100f5ab44295342 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 2 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 256 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: 0 + wrapMode: 0 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 0 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Textures/GlassStainedNormals.tif b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Textures/GlassStainedNormals.tif new file mode 100644 index 0000000..b350823 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Textures/GlassStainedNormals.tif differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Textures/GlassStainedNormals.tif.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Textures/GlassStainedNormals.tif.meta new file mode 100644 index 0000000..57b7cd3 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/GlassRefraction/Textures/GlassStainedNormals.tif.meta @@ -0,0 +1,52 @@ +fileFormatVersion: 2 +guid: 4b8d081e9d114c7f1100f5ab44295342 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 2 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 1 + externalNormalMap: 1 + heightScale: .117766477 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: 0 + wrapMode: 0 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects.meta new file mode 100644 index 0000000..5b717ba --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: d6e0c95a128e14227939c51b5d9ad74e +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts.meta new file mode 100644 index 0000000..0ca768e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: cd3e1490c3d9a7a498538315414d5129 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Antialiasing.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Antialiasing.cs new file mode 100644 index 0000000..9d07a36 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Antialiasing.cs @@ -0,0 +1,177 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + public enum AAMode + { + FXAA2 = 0, + FXAA3Console = 1, + FXAA1PresetA = 2, + FXAA1PresetB = 3, + NFAA = 4, + SSAA = 5, + DLAA = 6, + } + + [ExecuteInEditMode] + [RequireComponent(typeof (Camera))] + [AddComponentMenu("Image Effects/Other/Antialiasing")] + public class Antialiasing : PostEffectsBase + { + public AAMode mode = AAMode.FXAA3Console; + + public bool showGeneratedNormals = false; + public float offsetScale = 0.2f; + public float blurRadius = 18.0f; + + public float edgeThresholdMin = 0.05f; + public float edgeThreshold = 0.2f; + public float edgeSharpness = 4.0f; + + public bool dlaaSharp = false; + + public Shader ssaaShader; + private Material ssaa; + public Shader dlaaShader; + private Material dlaa; + public Shader nfaaShader; + private Material nfaa; + public Shader shaderFXAAPreset2; + private Material materialFXAAPreset2; + public Shader shaderFXAAPreset3; + private Material materialFXAAPreset3; + public Shader shaderFXAAII; + private Material materialFXAAII; + public Shader shaderFXAAIII; + private Material materialFXAAIII; + + + public Material CurrentAAMaterial() + { + Material returnValue = null; + + switch (mode) + { + case AAMode.FXAA3Console: + returnValue = materialFXAAIII; + break; + case AAMode.FXAA2: + returnValue = materialFXAAII; + break; + case AAMode.FXAA1PresetA: + returnValue = materialFXAAPreset2; + break; + case AAMode.FXAA1PresetB: + returnValue = materialFXAAPreset3; + break; + case AAMode.NFAA: + returnValue = nfaa; + break; + case AAMode.SSAA: + returnValue = ssaa; + break; + case AAMode.DLAA: + returnValue = dlaa; + break; + default: + returnValue = null; + break; + } + + return returnValue; + } + + + public override bool CheckResources() + { + CheckSupport(false); + + materialFXAAPreset2 = CreateMaterial(shaderFXAAPreset2, materialFXAAPreset2); + materialFXAAPreset3 = CreateMaterial(shaderFXAAPreset3, materialFXAAPreset3); + materialFXAAII = CreateMaterial(shaderFXAAII, materialFXAAII); + materialFXAAIII = CreateMaterial(shaderFXAAIII, materialFXAAIII); + nfaa = CreateMaterial(nfaaShader, nfaa); + ssaa = CreateMaterial(ssaaShader, ssaa); + dlaa = CreateMaterial(dlaaShader, dlaa); + + if (!ssaaShader.isSupported) + { + NotSupported(); + ReportAutoDisable(); + } + + return isSupported; + } + + + public void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (CheckResources() == false) + { + Graphics.Blit(source, destination); + return; + } + + // ---------------------------------------------------------------- + // FXAA antialiasing modes + + if (mode == AAMode.FXAA3Console && (materialFXAAIII != null)) + { + materialFXAAIII.SetFloat("_EdgeThresholdMin", edgeThresholdMin); + materialFXAAIII.SetFloat("_EdgeThreshold", edgeThreshold); + materialFXAAIII.SetFloat("_EdgeSharpness", edgeSharpness); + + Graphics.Blit(source, destination, materialFXAAIII); + } + else if (mode == AAMode.FXAA1PresetB && (materialFXAAPreset3 != null)) + { + Graphics.Blit(source, destination, materialFXAAPreset3); + } + else if (mode == AAMode.FXAA1PresetA && materialFXAAPreset2 != null) + { + source.anisoLevel = 4; + Graphics.Blit(source, destination, materialFXAAPreset2); + source.anisoLevel = 0; + } + else if (mode == AAMode.FXAA2 && materialFXAAII != null) + { + Graphics.Blit(source, destination, materialFXAAII); + } + else if (mode == AAMode.SSAA && ssaa != null) + { + // ---------------------------------------------------------------- + // SSAA antialiasing + Graphics.Blit(source, destination, ssaa); + } + else if (mode == AAMode.DLAA && dlaa != null) + { + // ---------------------------------------------------------------- + // DLAA antialiasing + + source.anisoLevel = 0; + RenderTexture interim = RenderTexture.GetTemporary(source.width, source.height); + Graphics.Blit(source, interim, dlaa, 0); + Graphics.Blit(interim, destination, dlaa, dlaaSharp ? 2 : 1); + RenderTexture.ReleaseTemporary(interim); + } + else if (mode == AAMode.NFAA && nfaa != null) + { + // ---------------------------------------------------------------- + // nfaa antialiasing + + source.anisoLevel = 0; + + nfaa.SetFloat("_OffsetScale", offsetScale); + nfaa.SetFloat("_BlurRadius", blurRadius); + + Graphics.Blit(source, destination, nfaa, showGeneratedNormals ? 1 : 0); + } + else + { + // none of the AA is supported, fallback to a simple blit + Graphics.Blit(source, destination); + } + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Antialiasing.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Antialiasing.cs.meta new file mode 100644 index 0000000..6284674 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Antialiasing.cs.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: 646b5bc27a658f447b1d929fd5ffbd70 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - ssaaShader: {fileID: 4800000, guid: b3728d1488b02490cbd196c7941bf1f8, type: 3} + - dlaaShader: {fileID: 4800000, guid: 017ca72b9e8a749058d13ebd527e98fa, type: 3} + - nfaaShader: {fileID: 4800000, guid: ce0cb2621f6d84e21a87414e471a3cce, type: 3} + - shaderFXAAPreset2: {fileID: 4800000, guid: 6f1418cffd12146f2a83be795f6fa5a7, type: 3} + - shaderFXAAPreset3: {fileID: 4800000, guid: c182fa94a5a0a4c02870641efcd38cd5, type: 3} + - shaderFXAAII: {fileID: 4800000, guid: cd5b323dcc592457790ff18b528f5e67, type: 3} + - shaderFXAAIII: {fileID: 4800000, guid: c547503fff0e8482ea5793727057041c, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Bloom.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Bloom.cs new file mode 100644 index 0000000..103aded --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Bloom.cs @@ -0,0 +1,358 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [RequireComponent (typeof(Camera))] + [AddComponentMenu ("Image Effects/Bloom and Glow/Bloom")] + public class Bloom : PostEffectsBase + { + public enum LensFlareStyle + { + Ghosting = 0, + Anamorphic = 1, + Combined = 2, + } + + public enum TweakMode + { + Basic = 0, + Complex = 1, + } + + public enum HDRBloomMode + { + Auto = 0, + On = 1, + Off = 2, + } + + public enum BloomScreenBlendMode + { + Screen = 0, + Add = 1, + } + + public enum BloomQuality + { + Cheap = 0, + High = 1, + } + + public TweakMode tweakMode = 0; + public BloomScreenBlendMode screenBlendMode = BloomScreenBlendMode.Add; + + public HDRBloomMode hdr = HDRBloomMode.Auto; + private bool doHdr = false; + public float sepBlurSpread = 2.5f; + + public BloomQuality quality = BloomQuality.High; + + public float bloomIntensity = 0.5f; + public float bloomThreshold = 0.5f; + public Color bloomThresholdColor = Color.white; + public int bloomBlurIterations = 2; + + public int hollywoodFlareBlurIterations = 2; + public float flareRotation = 0.0f; + public LensFlareStyle lensflareMode = (LensFlareStyle) 1; + public float hollyStretchWidth = 2.5f; + public float lensflareIntensity = 0.0f; + public float lensflareThreshold = 0.3f; + public float lensFlareSaturation = 0.75f; + public Color flareColorA = new Color (0.4f, 0.4f, 0.8f, 0.75f); + public Color flareColorB = new Color (0.4f, 0.8f, 0.8f, 0.75f); + public Color flareColorC = new Color (0.8f, 0.4f, 0.8f, 0.75f); + public Color flareColorD = new Color (0.8f, 0.4f, 0.0f, 0.75f); + public Texture2D lensFlareVignetteMask; + + public Shader lensFlareShader; + private Material lensFlareMaterial; + + public Shader screenBlendShader; + private Material screenBlend; + + public Shader blurAndFlaresShader; + private Material blurAndFlaresMaterial; + + public Shader brightPassFilterShader; + private Material brightPassFilterMaterial; + + + public override bool CheckResources () + { + CheckSupport (false); + + screenBlend = CheckShaderAndCreateMaterial (screenBlendShader, screenBlend); + lensFlareMaterial = CheckShaderAndCreateMaterial(lensFlareShader,lensFlareMaterial); + blurAndFlaresMaterial = CheckShaderAndCreateMaterial (blurAndFlaresShader, blurAndFlaresMaterial); + brightPassFilterMaterial = CheckShaderAndCreateMaterial(brightPassFilterShader, brightPassFilterMaterial); + + if (!isSupported) + ReportAutoDisable (); + return isSupported; + } + + public void OnRenderImage (RenderTexture source, RenderTexture destination) + { + if (CheckResources()==false) + { + Graphics.Blit (source, destination); + return; + } + + // screen blend is not supported when HDR is enabled (will cap values) + + doHdr = false; + if (hdr == HDRBloomMode.Auto) + doHdr = source.format == RenderTextureFormat.ARGBHalf && GetComponent().allowHDR; + else { + doHdr = hdr == HDRBloomMode.On; + } + + doHdr = doHdr && supportHDRTextures; + + BloomScreenBlendMode realBlendMode = screenBlendMode; + if (doHdr) + realBlendMode = BloomScreenBlendMode.Add; + + var rtFormat= (doHdr) ? RenderTextureFormat.ARGBHalf : RenderTextureFormat.Default; + var rtW2= source.width/2; + var rtH2= source.height/2; + var rtW4= source.width/4; + var rtH4= source.height/4; + + float widthOverHeight = (1.0f * source.width) / (1.0f * source.height); + float oneOverBaseSize = 1.0f / 512.0f; + + // downsample + RenderTexture quarterRezColor = RenderTexture.GetTemporary (rtW4, rtH4, 0, rtFormat); + RenderTexture halfRezColorDown = RenderTexture.GetTemporary (rtW2, rtH2, 0, rtFormat); + if (quality > BloomQuality.Cheap) { + Graphics.Blit (source, halfRezColorDown, screenBlend, 2); + RenderTexture rtDown4 = RenderTexture.GetTemporary (rtW4, rtH4, 0, rtFormat); + Graphics.Blit (halfRezColorDown, rtDown4, screenBlend, 2); + Graphics.Blit (rtDown4, quarterRezColor, screenBlend, 6); + RenderTexture.ReleaseTemporary(rtDown4); + } + else { + Graphics.Blit (source, halfRezColorDown); + Graphics.Blit (halfRezColorDown, quarterRezColor, screenBlend, 6); + } + RenderTexture.ReleaseTemporary (halfRezColorDown); + + // cut colors (thresholding) + RenderTexture secondQuarterRezColor = RenderTexture.GetTemporary (rtW4, rtH4, 0, rtFormat); + BrightFilter (bloomThreshold * bloomThresholdColor, quarterRezColor, secondQuarterRezColor); + + // blurring + + if (bloomBlurIterations < 1) bloomBlurIterations = 1; + else if (bloomBlurIterations > 10) bloomBlurIterations = 10; + + for (int iter = 0; iter < bloomBlurIterations; iter++) + { + float spreadForPass = (1.0f + (iter * 0.25f)) * sepBlurSpread; + + // vertical blur + RenderTexture blur4 = RenderTexture.GetTemporary (rtW4, rtH4, 0, rtFormat); + blurAndFlaresMaterial.SetVector ("_Offsets", new Vector4 (0.0f, spreadForPass * oneOverBaseSize, 0.0f, 0.0f)); + Graphics.Blit (secondQuarterRezColor, blur4, blurAndFlaresMaterial, 4); + RenderTexture.ReleaseTemporary(secondQuarterRezColor); + secondQuarterRezColor = blur4; + + // horizontal blur + blur4 = RenderTexture.GetTemporary (rtW4, rtH4, 0, rtFormat); + blurAndFlaresMaterial.SetVector ("_Offsets", new Vector4 ((spreadForPass / widthOverHeight) * oneOverBaseSize, 0.0f, 0.0f, 0.0f)); + Graphics.Blit (secondQuarterRezColor, blur4, blurAndFlaresMaterial, 4); + RenderTexture.ReleaseTemporary (secondQuarterRezColor); + secondQuarterRezColor = blur4; + + if (quality > BloomQuality.Cheap) + { + if (iter == 0) + { + Graphics.SetRenderTarget(quarterRezColor); + GL.Clear(false, true, Color.black); // Clear to avoid RT restore + Graphics.Blit (secondQuarterRezColor, quarterRezColor); + } + else + { + quarterRezColor.MarkRestoreExpected(); // using max blending, RT restore expected + Graphics.Blit (secondQuarterRezColor, quarterRezColor, screenBlend, 10); + } + } + } + + if (quality > BloomQuality.Cheap) + { + Graphics.SetRenderTarget(secondQuarterRezColor); + GL.Clear(false, true, Color.black); // Clear to avoid RT restore + Graphics.Blit (quarterRezColor, secondQuarterRezColor, screenBlend, 6); + } + + // lens flares: ghosting, anamorphic or both (ghosted anamorphic flares) + + if (lensflareIntensity > Mathf.Epsilon) + { + + RenderTexture rtFlares4 = RenderTexture.GetTemporary (rtW4, rtH4, 0, rtFormat); + + if (lensflareMode == 0) + { + // ghosting only + + BrightFilter (lensflareThreshold, secondQuarterRezColor, rtFlares4); + + if (quality > BloomQuality.Cheap) + { + // smooth a little + blurAndFlaresMaterial.SetVector ("_Offsets", new Vector4 (0.0f, (1.5f) / (1.0f * quarterRezColor.height), 0.0f, 0.0f)); + Graphics.SetRenderTarget(quarterRezColor); + GL.Clear(false, true, Color.black); // Clear to avoid RT restore + Graphics.Blit (rtFlares4, quarterRezColor, blurAndFlaresMaterial, 4); + + blurAndFlaresMaterial.SetVector ("_Offsets", new Vector4 ((1.5f) / (1.0f * quarterRezColor.width), 0.0f, 0.0f, 0.0f)); + Graphics.SetRenderTarget(rtFlares4); + GL.Clear(false, true, Color.black); // Clear to avoid RT restore + Graphics.Blit (quarterRezColor, rtFlares4, blurAndFlaresMaterial, 4); + } + + // no ugly edges! + Vignette (0.975f, rtFlares4, rtFlares4); + BlendFlares (rtFlares4, secondQuarterRezColor); + } + else + { + + //Vignette (0.975ff, rtFlares4, rtFlares4); + //DrawBorder(rtFlares4, screenBlend, 8); + + float flareXRot = 1.0f * Mathf.Cos(flareRotation); + float flareyRot = 1.0f * Mathf.Sin(flareRotation); + + float stretchWidth = (hollyStretchWidth * 1.0f / widthOverHeight) * oneOverBaseSize; + + blurAndFlaresMaterial.SetVector ("_Offsets", new Vector4 (flareXRot, flareyRot, 0.0f, 0.0f)); + blurAndFlaresMaterial.SetVector ("_Threshhold", new Vector4 (lensflareThreshold, 1.0f, 0.0f, 0.0f)); + blurAndFlaresMaterial.SetVector ("_TintColor", new Vector4 (flareColorA.r, flareColorA.g, flareColorA.b, flareColorA.a) * flareColorA.a * lensflareIntensity); + blurAndFlaresMaterial.SetFloat ("_Saturation", lensFlareSaturation); + + // "pre and cut" + quarterRezColor.DiscardContents(); + Graphics.Blit (rtFlares4, quarterRezColor, blurAndFlaresMaterial, 2); + // "post" + rtFlares4.DiscardContents(); + Graphics.Blit (quarterRezColor, rtFlares4, blurAndFlaresMaterial, 3); + + blurAndFlaresMaterial.SetVector ("_Offsets", new Vector4 (flareXRot * stretchWidth, flareyRot * stretchWidth, 0.0f, 0.0f)); + // stretch 1st + blurAndFlaresMaterial.SetFloat ("_StretchWidth", hollyStretchWidth); + quarterRezColor.DiscardContents(); + Graphics.Blit (rtFlares4, quarterRezColor, blurAndFlaresMaterial, 1); + // stretch 2nd + blurAndFlaresMaterial.SetFloat ("_StretchWidth", hollyStretchWidth * 2.0f); + rtFlares4.DiscardContents(); + Graphics.Blit (quarterRezColor, rtFlares4, blurAndFlaresMaterial, 1); + // stretch 3rd + blurAndFlaresMaterial.SetFloat ("_StretchWidth", hollyStretchWidth * 4.0f); + quarterRezColor.DiscardContents(); + Graphics.Blit (rtFlares4, quarterRezColor, blurAndFlaresMaterial, 1); + + // additional blur passes + for (int iter = 0; iter < hollywoodFlareBlurIterations; iter++) + { + stretchWidth = (hollyStretchWidth * 2.0f / widthOverHeight) * oneOverBaseSize; + + blurAndFlaresMaterial.SetVector ("_Offsets", new Vector4 (stretchWidth * flareXRot, stretchWidth * flareyRot, 0.0f, 0.0f)); + rtFlares4.DiscardContents(); + Graphics.Blit (quarterRezColor, rtFlares4, blurAndFlaresMaterial, 4); + + blurAndFlaresMaterial.SetVector ("_Offsets", new Vector4 (stretchWidth * flareXRot, stretchWidth * flareyRot, 0.0f, 0.0f)); + quarterRezColor.DiscardContents(); + Graphics.Blit (rtFlares4, quarterRezColor, blurAndFlaresMaterial, 4); + } + + if (lensflareMode == (LensFlareStyle) 1) + // anamorphic lens flares + AddTo (1.0f, quarterRezColor, secondQuarterRezColor); + else + { + // "combined" lens flares + + Vignette (1.0f, quarterRezColor, rtFlares4); + BlendFlares (rtFlares4, quarterRezColor); + AddTo (1.0f, quarterRezColor, secondQuarterRezColor); + } + } + RenderTexture.ReleaseTemporary (rtFlares4); + } + + int blendPass = (int) realBlendMode; + //if (Mathf.Abs(chromaticBloom) < Mathf.Epsilon) + // blendPass += 4; + + screenBlend.SetFloat ("_Intensity", bloomIntensity); + screenBlend.SetTexture ("_ColorBuffer", source); + + if (quality > BloomQuality.Cheap) + { + RenderTexture halfRezColorUp = RenderTexture.GetTemporary (rtW2, rtH2, 0, rtFormat); + Graphics.Blit (secondQuarterRezColor, halfRezColorUp); + Graphics.Blit (halfRezColorUp, destination, screenBlend, blendPass); + RenderTexture.ReleaseTemporary (halfRezColorUp); + } + else + Graphics.Blit (secondQuarterRezColor, destination, screenBlend, blendPass); + + RenderTexture.ReleaseTemporary (quarterRezColor); + RenderTexture.ReleaseTemporary (secondQuarterRezColor); + } + + private void AddTo (float intensity_, RenderTexture from, RenderTexture to) + { + screenBlend.SetFloat ("_Intensity", intensity_); + to.MarkRestoreExpected(); // additive blending, RT restore expected + Graphics.Blit (from, to, screenBlend, 9); + } + + private void BlendFlares (RenderTexture from, RenderTexture to) + { + lensFlareMaterial.SetVector ("colorA", new Vector4 (flareColorA.r, flareColorA.g, flareColorA.b, flareColorA.a) * lensflareIntensity); + lensFlareMaterial.SetVector ("colorB", new Vector4 (flareColorB.r, flareColorB.g, flareColorB.b, flareColorB.a) * lensflareIntensity); + lensFlareMaterial.SetVector ("colorC", new Vector4 (flareColorC.r, flareColorC.g, flareColorC.b, flareColorC.a) * lensflareIntensity); + lensFlareMaterial.SetVector ("colorD", new Vector4 (flareColorD.r, flareColorD.g, flareColorD.b, flareColorD.a) * lensflareIntensity); + to.MarkRestoreExpected(); // additive blending, RT restore expected + Graphics.Blit (from, to, lensFlareMaterial); + } + + private void BrightFilter (float thresh, RenderTexture from, RenderTexture to) + { + brightPassFilterMaterial.SetVector ("_Threshhold", new Vector4 (thresh, thresh, thresh, thresh)); + Graphics.Blit (from, to, brightPassFilterMaterial, 0); + } + + private void BrightFilter (Color threshColor, RenderTexture from, RenderTexture to) + { + brightPassFilterMaterial.SetVector ("_Threshhold", threshColor); + Graphics.Blit (from, to, brightPassFilterMaterial, 1); + } + + private void Vignette (float amount, RenderTexture from, RenderTexture to) + { + if (lensFlareVignetteMask) + { + screenBlend.SetTexture ("_ColorBuffer", lensFlareVignetteMask); + to.MarkRestoreExpected(); // using blending, RT restore expected + Graphics.Blit (from == to ? null : from, to, screenBlend, from == to ? 7 : 3); + } + else if (from != to) + { + Graphics.SetRenderTarget (to); + GL.Clear(false, true, Color.black); // clear destination to avoid RT restore + Graphics.Blit (from, to); + } + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Bloom.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Bloom.cs.meta new file mode 100644 index 0000000..edcd45d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Bloom.cs.meta @@ -0,0 +1,17 @@ +fileFormatVersion: 2 +guid: 7fceaeb339b971b429c4cc600acabd13 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - lensFlareVignetteMask: {fileID: 2800000, guid: 95ef4804fe0be4c999ddaa383536cde8, + type: 3} + - lensFlareShader: {fileID: 4800000, guid: 459fe69d2f6d74ddb92f04dbf45a866b, type: 3} + - screenBlendShader: {fileID: 4800000, guid: 7856cbff0a0ca45c787d5431eb805bb0, type: 3} + - blurAndFlaresShader: {fileID: 4800000, guid: be6e39cf196f146d5be72fbefb18ed75, + type: 3} + - brightPassFilterShader: {fileID: 4800000, guid: 0aeaa4cb29f5d4e9c8455f04c8575c8c, + type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/BloomAndFlares.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/BloomAndFlares.cs new file mode 100644 index 0000000..88f84ee --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/BloomAndFlares.cs @@ -0,0 +1,314 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + public enum LensflareStyle34 + { + Ghosting = 0, + Anamorphic = 1, + Combined = 2, + } + + public enum TweakMode34 + { + Basic = 0, + Complex = 1, + } + + public enum HDRBloomMode + { + Auto = 0, + On = 1, + Off = 2, + } + + public enum BloomScreenBlendMode + { + Screen = 0, + Add = 1, + } + + [ExecuteInEditMode] + [RequireComponent(typeof(Camera))] + [AddComponentMenu("Image Effects/Bloom and Glow/BloomAndFlares (3.5, Deprecated)")] + public class BloomAndFlares : PostEffectsBase + { + public TweakMode34 tweakMode = 0; + public BloomScreenBlendMode screenBlendMode = BloomScreenBlendMode.Add; + + public HDRBloomMode hdr = HDRBloomMode.Auto; + private bool doHdr = false; + public float sepBlurSpread = 1.5f; + public float useSrcAlphaAsMask = 0.5f; + + public float bloomIntensity = 1.0f; + public float bloomThreshold = 0.5f; + public int bloomBlurIterations = 2; + + public bool lensflares = false; + public int hollywoodFlareBlurIterations = 2; + public LensflareStyle34 lensflareMode = (LensflareStyle34)1; + public float hollyStretchWidth = 3.5f; + public float lensflareIntensity = 1.0f; + public float lensflareThreshold = 0.3f; + public Color flareColorA = new Color(0.4f, 0.4f, 0.8f, 0.75f); + public Color flareColorB = new Color(0.4f, 0.8f, 0.8f, 0.75f); + public Color flareColorC = new Color(0.8f, 0.4f, 0.8f, 0.75f); + public Color flareColorD = new Color(0.8f, 0.4f, 0.0f, 0.75f); + public Texture2D lensFlareVignetteMask; + + public Shader lensFlareShader; + private Material lensFlareMaterial; + + public Shader vignetteShader; + private Material vignetteMaterial; + + public Shader separableBlurShader; + private Material separableBlurMaterial; + + public Shader addBrightStuffOneOneShader; + private Material addBrightStuffBlendOneOneMaterial; + + public Shader screenBlendShader; + private Material screenBlend; + + public Shader hollywoodFlaresShader; + private Material hollywoodFlaresMaterial; + + public Shader brightPassFilterShader; + private Material brightPassFilterMaterial; + + + public override bool CheckResources() + { + CheckSupport(false); + + screenBlend = CheckShaderAndCreateMaterial(screenBlendShader, screenBlend); + lensFlareMaterial = CheckShaderAndCreateMaterial(lensFlareShader, lensFlareMaterial); + vignetteMaterial = CheckShaderAndCreateMaterial(vignetteShader, vignetteMaterial); + separableBlurMaterial = CheckShaderAndCreateMaterial(separableBlurShader, separableBlurMaterial); + addBrightStuffBlendOneOneMaterial = CheckShaderAndCreateMaterial(addBrightStuffOneOneShader, addBrightStuffBlendOneOneMaterial); + hollywoodFlaresMaterial = CheckShaderAndCreateMaterial(hollywoodFlaresShader, hollywoodFlaresMaterial); + brightPassFilterMaterial = CheckShaderAndCreateMaterial(brightPassFilterShader, brightPassFilterMaterial); + + if (!isSupported) + ReportAutoDisable(); + return isSupported; + } + + void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (CheckResources() == false) + { + Graphics.Blit(source, destination); + return; + } + + // screen blend is not supported when HDR is enabled (will cap values) + + doHdr = false; + if (hdr == HDRBloomMode.Auto) + doHdr = source.format == RenderTextureFormat.ARGBHalf && GetComponent().allowHDR; + else + { + doHdr = hdr == HDRBloomMode.On; + } + + doHdr = doHdr && supportHDRTextures; + + BloomScreenBlendMode realBlendMode = screenBlendMode; + if (doHdr) + realBlendMode = BloomScreenBlendMode.Add; + + var rtFormat = (doHdr) ? RenderTextureFormat.ARGBHalf : RenderTextureFormat.Default; + RenderTexture halfRezColor = RenderTexture.GetTemporary(source.width / 2, source.height / 2, 0, rtFormat); + RenderTexture quarterRezColor = RenderTexture.GetTemporary(source.width / 4, source.height / 4, 0, rtFormat); + RenderTexture secondQuarterRezColor = RenderTexture.GetTemporary(source.width / 4, source.height / 4, 0, rtFormat); + RenderTexture thirdQuarterRezColor = RenderTexture.GetTemporary(source.width / 4, source.height / 4, 0, rtFormat); + + float widthOverHeight = (1.0f * source.width) / (1.0f * source.height); + float oneOverBaseSize = 1.0f / 512.0f; + + // downsample + + Graphics.Blit(source, halfRezColor, screenBlend, 2); // <- 2 is stable downsample + Graphics.Blit(halfRezColor, quarterRezColor, screenBlend, 2); // <- 2 is stable downsample + + RenderTexture.ReleaseTemporary(halfRezColor); + + // cut colors (thresholding) + + BrightFilter(bloomThreshold, useSrcAlphaAsMask, quarterRezColor, secondQuarterRezColor); + quarterRezColor.DiscardContents(); + + // blurring + + if (bloomBlurIterations < 1) bloomBlurIterations = 1; + + for (int iter = 0; iter < bloomBlurIterations; iter++) + { + float spreadForPass = (1.0f + (iter * 0.5f)) * sepBlurSpread; + separableBlurMaterial.SetVector("offsets", new Vector4(0.0f, spreadForPass * oneOverBaseSize, 0.0f, 0.0f)); + + RenderTexture src = iter == 0 ? secondQuarterRezColor : quarterRezColor; + Graphics.Blit(src, thirdQuarterRezColor, separableBlurMaterial); + src.DiscardContents(); + + separableBlurMaterial.SetVector("offsets", new Vector4((spreadForPass / widthOverHeight) * oneOverBaseSize, 0.0f, 0.0f, 0.0f)); + Graphics.Blit(thirdQuarterRezColor, quarterRezColor, separableBlurMaterial); + thirdQuarterRezColor.DiscardContents(); + } + + // lens flares: ghosting, anamorphic or a combination + + if (lensflares) + { + + if (lensflareMode == 0) + { + + BrightFilter(lensflareThreshold, 0.0f, quarterRezColor, thirdQuarterRezColor); + quarterRezColor.DiscardContents(); + + // smooth a little, this needs to be resolution dependent + /* + separableBlurMaterial.SetVector ("offsets", Vector4 (0.0ff, (2.0ff) / (1.0ff * quarterRezColor.height), 0.0ff, 0.0ff)); + Graphics.Blit (thirdQuarterRezColor, secondQuarterRezColor, separableBlurMaterial); + separableBlurMaterial.SetVector ("offsets", Vector4 ((2.0ff) / (1.0ff * quarterRezColor.width), 0.0ff, 0.0ff, 0.0ff)); + Graphics.Blit (secondQuarterRezColor, thirdQuarterRezColor, separableBlurMaterial); + */ + // no ugly edges! + + Vignette(0.975f, thirdQuarterRezColor, secondQuarterRezColor); + thirdQuarterRezColor.DiscardContents(); + + BlendFlares(secondQuarterRezColor, quarterRezColor); + secondQuarterRezColor.DiscardContents(); + } + + // (b) hollywood/anamorphic flares? + + else + { + + // thirdQuarter has the brightcut unblurred colors + // quarterRezColor is the blurred, brightcut buffer that will end up as bloom + + hollywoodFlaresMaterial.SetVector("_threshold", new Vector4(lensflareThreshold, 1.0f / (1.0f - lensflareThreshold), 0.0f, 0.0f)); + hollywoodFlaresMaterial.SetVector("tintColor", new Vector4(flareColorA.r, flareColorA.g, flareColorA.b, flareColorA.a) * flareColorA.a * lensflareIntensity); + Graphics.Blit(thirdQuarterRezColor, secondQuarterRezColor, hollywoodFlaresMaterial, 2); + thirdQuarterRezColor.DiscardContents(); + + Graphics.Blit(secondQuarterRezColor, thirdQuarterRezColor, hollywoodFlaresMaterial, 3); + secondQuarterRezColor.DiscardContents(); + + hollywoodFlaresMaterial.SetVector("offsets", new Vector4((sepBlurSpread * 1.0f / widthOverHeight) * oneOverBaseSize, 0.0f, 0.0f, 0.0f)); + hollywoodFlaresMaterial.SetFloat("stretchWidth", hollyStretchWidth); + Graphics.Blit(thirdQuarterRezColor, secondQuarterRezColor, hollywoodFlaresMaterial, 1); + thirdQuarterRezColor.DiscardContents(); + + hollywoodFlaresMaterial.SetFloat("stretchWidth", hollyStretchWidth * 2.0f); + Graphics.Blit(secondQuarterRezColor, thirdQuarterRezColor, hollywoodFlaresMaterial, 1); + secondQuarterRezColor.DiscardContents(); + + hollywoodFlaresMaterial.SetFloat("stretchWidth", hollyStretchWidth * 4.0f); + Graphics.Blit(thirdQuarterRezColor, secondQuarterRezColor, hollywoodFlaresMaterial, 1); + thirdQuarterRezColor.DiscardContents(); + + if (lensflareMode == (LensflareStyle34)1) + { + for (int itera = 0; itera < hollywoodFlareBlurIterations; itera++) + { + separableBlurMaterial.SetVector("offsets", new Vector4((hollyStretchWidth * 2.0f / widthOverHeight) * oneOverBaseSize, 0.0f, 0.0f, 0.0f)); + Graphics.Blit(secondQuarterRezColor, thirdQuarterRezColor, separableBlurMaterial); + secondQuarterRezColor.DiscardContents(); + + separableBlurMaterial.SetVector("offsets", new Vector4((hollyStretchWidth * 2.0f / widthOverHeight) * oneOverBaseSize, 0.0f, 0.0f, 0.0f)); + Graphics.Blit(thirdQuarterRezColor, secondQuarterRezColor, separableBlurMaterial); + thirdQuarterRezColor.DiscardContents(); + } + + AddTo(1.0f, secondQuarterRezColor, quarterRezColor); + secondQuarterRezColor.DiscardContents(); + } + else + { + + // (c) combined + + for (int ix = 0; ix < hollywoodFlareBlurIterations; ix++) + { + separableBlurMaterial.SetVector("offsets", new Vector4((hollyStretchWidth * 2.0f / widthOverHeight) * oneOverBaseSize, 0.0f, 0.0f, 0.0f)); + Graphics.Blit(secondQuarterRezColor, thirdQuarterRezColor, separableBlurMaterial); + secondQuarterRezColor.DiscardContents(); + + separableBlurMaterial.SetVector("offsets", new Vector4((hollyStretchWidth * 2.0f / widthOverHeight) * oneOverBaseSize, 0.0f, 0.0f, 0.0f)); + Graphics.Blit(thirdQuarterRezColor, secondQuarterRezColor, separableBlurMaterial); + thirdQuarterRezColor.DiscardContents(); + } + + Vignette(1.0f, secondQuarterRezColor, thirdQuarterRezColor); + secondQuarterRezColor.DiscardContents(); + + BlendFlares(thirdQuarterRezColor, secondQuarterRezColor); + thirdQuarterRezColor.DiscardContents(); + + AddTo(1.0f, secondQuarterRezColor, quarterRezColor); + secondQuarterRezColor.DiscardContents(); + } + } + } + + // screen blend bloom results to color buffer + + screenBlend.SetFloat("_Intensity", bloomIntensity); + screenBlend.SetTexture("_ColorBuffer", source); + Graphics.Blit(quarterRezColor, destination, screenBlend, (int)realBlendMode); + + RenderTexture.ReleaseTemporary(quarterRezColor); + RenderTexture.ReleaseTemporary(secondQuarterRezColor); + RenderTexture.ReleaseTemporary(thirdQuarterRezColor); + } + + private void AddTo(float intensity_, RenderTexture from, RenderTexture to) + { + addBrightStuffBlendOneOneMaterial.SetFloat("_Intensity", intensity_); + Graphics.Blit(from, to, addBrightStuffBlendOneOneMaterial); + } + + private void BlendFlares(RenderTexture from, RenderTexture to) + { + lensFlareMaterial.SetVector("colorA", new Vector4(flareColorA.r, flareColorA.g, flareColorA.b, flareColorA.a) * lensflareIntensity); + lensFlareMaterial.SetVector("colorB", new Vector4(flareColorB.r, flareColorB.g, flareColorB.b, flareColorB.a) * lensflareIntensity); + lensFlareMaterial.SetVector("colorC", new Vector4(flareColorC.r, flareColorC.g, flareColorC.b, flareColorC.a) * lensflareIntensity); + lensFlareMaterial.SetVector("colorD", new Vector4(flareColorD.r, flareColorD.g, flareColorD.b, flareColorD.a) * lensflareIntensity); + Graphics.Blit(from, to, lensFlareMaterial); + } + + private void BrightFilter(float thresh, float useAlphaAsMask, RenderTexture from, RenderTexture to) + { + if (doHdr) + brightPassFilterMaterial.SetVector("threshold", new Vector4(thresh, 1.0f, 0.0f, 0.0f)); + else + brightPassFilterMaterial.SetVector("threshold", new Vector4(thresh, 1.0f / (1.0f - thresh), 0.0f, 0.0f)); + brightPassFilterMaterial.SetFloat("useSrcAlphaAsMask", useAlphaAsMask); + Graphics.Blit(from, to, brightPassFilterMaterial); + } + + private void Vignette(float amount, RenderTexture from, RenderTexture to) + { + if (lensFlareVignetteMask) + { + screenBlend.SetTexture("_ColorBuffer", lensFlareVignetteMask); + Graphics.Blit(from, to, screenBlend, 3); + } + else + { + vignetteMaterial.SetFloat("vignetteIntensity", amount); + Graphics.Blit(from, to, vignetteMaterial); + } + } + + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/BloomAndFlares.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/BloomAndFlares.cs.meta new file mode 100644 index 0000000..d3b3c7b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/BloomAndFlares.cs.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 02536f33053638549ab5c50ff3ecc0de +MonoImporter: + serializedVersion: 2 + defaultReferences: + - lensFlareVignetteMask: {fileID: 2800000, guid: 95ef4804fe0be4c999ddaa383536cde8, + type: 3} + - lensFlareShader: {fileID: 4800000, guid: 459fe69d2f6d74ddb92f04dbf45a866b, type: 3} + - vignetteShader: {fileID: 4800000, guid: 627943dc7a9a74286b70a4f694a0acd5, type: 3} + - separableBlurShader: {fileID: 4800000, guid: a9df009a214e24a5ebbf271595f8d5b6, + type: 3} + - addBrightStuffOneOneShader: {fileID: 4800000, guid: f7898d203e9b94c0dbe2bf9dd5cb32c0, + type: 3} + - screenBlendShader: {fileID: 4800000, guid: 53b3960ee3d3d4a5caa8d5473d120187, type: 3} + - hollywoodFlaresShader: {fileID: 4800000, guid: e2baf3cae8edc4daf94c9adc2154be00, + type: 3} + - brightPassFilterShader: {fileID: 4800000, guid: 186c4c0d31e314f049595dcbaf4ca129, + type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/BloomOptimized.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/BloomOptimized.cs new file mode 100644 index 0000000..fdd9fa8 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/BloomOptimized.cs @@ -0,0 +1,109 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [RequireComponent (typeof(Camera))] + [AddComponentMenu ("Image Effects/Bloom and Glow/Bloom (Optimized)")] + public class BloomOptimized : PostEffectsBase + { + + public enum Resolution + { + Low = 0, + High = 1, + } + + public enum BlurType + { + Standard = 0, + Sgx = 1, + } + + [Range(0.0f, 1.5f)] + public float threshold = 0.25f; + [Range(0.0f, 2.5f)] + public float intensity = 0.75f; + + [Range(0.25f, 5.5f)] + public float blurSize = 1.0f; + + Resolution resolution = Resolution.Low; + [Range(1, 4)] + public int blurIterations = 1; + + public BlurType blurType= BlurType.Standard; + + public Shader fastBloomShader = null; + private Material fastBloomMaterial = null; + + + public override bool CheckResources () + { + CheckSupport (false); + + fastBloomMaterial = CheckShaderAndCreateMaterial (fastBloomShader, fastBloomMaterial); + + if (!isSupported) + ReportAutoDisable (); + return isSupported; + } + + void OnDisable () + { + if (fastBloomMaterial) + DestroyImmediate (fastBloomMaterial); + } + + void OnRenderImage (RenderTexture source, RenderTexture destination) + { + if (CheckResources() == false) + { + Graphics.Blit (source, destination); + return; + } + + int divider = resolution == Resolution.Low ? 4 : 2; + float widthMod = resolution == Resolution.Low ? 0.5f : 1.0f; + + fastBloomMaterial.SetVector ("_Parameter", new Vector4 (blurSize * widthMod, 0.0f, threshold, intensity)); + source.filterMode = FilterMode.Bilinear; + + var rtW= source.width/divider; + var rtH= source.height/divider; + + // downsample + RenderTexture rt = RenderTexture.GetTemporary (rtW, rtH, 0, source.format); + rt.filterMode = FilterMode.Bilinear; + Graphics.Blit (source, rt, fastBloomMaterial, 1); + + var passOffs= blurType == BlurType.Standard ? 0 : 2; + + for(int i = 0; i < blurIterations; i++) + { + fastBloomMaterial.SetVector ("_Parameter", new Vector4 (blurSize * widthMod + (i*1.0f), 0.0f, threshold, intensity)); + + // vertical blur + RenderTexture rt2 = RenderTexture.GetTemporary (rtW, rtH, 0, source.format); + rt2.filterMode = FilterMode.Bilinear; + Graphics.Blit (rt, rt2, fastBloomMaterial, 2 + passOffs); + RenderTexture.ReleaseTemporary (rt); + rt = rt2; + + // horizontal blur + rt2 = RenderTexture.GetTemporary (rtW, rtH, 0, source.format); + rt2.filterMode = FilterMode.Bilinear; + Graphics.Blit (rt, rt2, fastBloomMaterial, 3 + passOffs); + RenderTexture.ReleaseTemporary (rt); + rt = rt2; + } + + fastBloomMaterial.SetTexture ("_Bloom", rt); + + Graphics.Blit (source, destination, fastBloomMaterial, 0); + + RenderTexture.ReleaseTemporary (rt); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/BloomOptimized.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/BloomOptimized.cs.meta new file mode 100644 index 0000000..68dcfc1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/BloomOptimized.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 4975a6e437fc3b149a8cd508ce5bdd69 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - fastBloomShader: {fileID: 4800000, guid: 68a00c837b82e4c6d92e7da765dc5f1d, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Blur.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Blur.cs new file mode 100644 index 0000000..e406e40 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Blur.cs @@ -0,0 +1,108 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [AddComponentMenu("Image Effects/Blur/Blur")] + public class Blur : MonoBehaviour + { + /// Blur iterations - larger number means more blur. + [Range(0,10)] + public int iterations = 3; + + /// Blur spread for each iteration. Lower values + /// give better looking blur, but require more iterations to + /// get large blurs. Value is usually between 0.5 and 1.0. + [Range(0.0f,1.0f)] + public float blurSpread = 0.6f; + + + // -------------------------------------------------------- + // The blur iteration shader. + // Basically it just takes 4 texture samples and averages them. + // By applying it repeatedly and spreading out sample locations + // we get a Gaussian blur approximation. + + public Shader blurShader = null; + + static Material m_Material = null; + protected Material material { + get { + if (m_Material == null) { + m_Material = new Material(blurShader); + m_Material.hideFlags = HideFlags.DontSave; + } + return m_Material; + } + } + + protected void OnDisable() { + if ( m_Material ) { + DestroyImmediate( m_Material ); + } + } + + // -------------------------------------------------------- + + protected void Start() + { + // Disable if we don't support image effects + if (!SystemInfo.supportsImageEffects) { + enabled = false; + return; + } + // Disable if the shader can't run on the users graphics card + if (!blurShader || !material.shader.isSupported) { + enabled = false; + return; + } + } + + // Performs one blur iteration. + public void FourTapCone (RenderTexture source, RenderTexture dest, int iteration) + { + float off = 0.5f + iteration*blurSpread; + Graphics.BlitMultiTap (source, dest, material, + new Vector2(-off, -off), + new Vector2(-off, off), + new Vector2( off, off), + new Vector2( off, -off) + ); + } + + // Downsamples the texture to a quarter resolution. + private void DownSample4x (RenderTexture source, RenderTexture dest) + { + float off = 1.0f; + Graphics.BlitMultiTap (source, dest, material, + new Vector2(-off, -off), + new Vector2(-off, off), + new Vector2( off, off), + new Vector2( off, -off) + ); + } + + // Called by the camera to apply the image effect + void OnRenderImage (RenderTexture source, RenderTexture destination) { + int rtW = source.width/4; + int rtH = source.height/4; + RenderTexture buffer = RenderTexture.GetTemporary(rtW, rtH, 0); + + // Copy source to the 4x4 smaller texture. + DownSample4x (source, buffer); + + // Blur the small texture + for(int i = 0; i < iterations; i++) + { + RenderTexture buffer2 = RenderTexture.GetTemporary(rtW, rtH, 0); + FourTapCone (buffer, buffer2, i); + RenderTexture.ReleaseTemporary(buffer); + buffer = buffer2; + } + Graphics.Blit(buffer, destination); + + RenderTexture.ReleaseTemporary(buffer); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Blur.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Blur.cs.meta new file mode 100644 index 0000000..c4bb7e7 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Blur.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 34382083ad114a07d000fbfb8d76c639 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - blurShader: {fileID: 4800000, guid: 57e6deea7c2924e22a5138e2b70bb4dc, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/BlurOptimized.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/BlurOptimized.cs new file mode 100644 index 0000000..ae2644b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/BlurOptimized.cs @@ -0,0 +1,93 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [RequireComponent (typeof(Camera))] + [AddComponentMenu ("Image Effects/Blur/Blur (Optimized)")] + public class BlurOptimized : PostEffectsBase + { + + [Range(0, 2)] + public int downsample = 1; + + public enum BlurType { + StandardGauss = 0, + SgxGauss = 1, + } + + [Range(0.0f, 10.0f)] + public float blurSize = 3.0f; + + [Range(1, 4)] + public int blurIterations = 2; + + public BlurType blurType= BlurType.StandardGauss; + + public Shader blurShader = null; + private Material blurMaterial = null; + + + public override bool CheckResources () { + CheckSupport (false); + + blurMaterial = CheckShaderAndCreateMaterial (blurShader, blurMaterial); + + if (!isSupported) + ReportAutoDisable (); + return isSupported; + } + + public void OnDisable () { + if (blurMaterial) + DestroyImmediate (blurMaterial); + } + + public void OnRenderImage (RenderTexture source, RenderTexture destination) { + if (CheckResources() == false) { + Graphics.Blit (source, destination); + return; + } + + float widthMod = 1.0f / (1.0f * (1<> downsample; + int rtH = source.height >> downsample; + + // downsample + RenderTexture rt = RenderTexture.GetTemporary (rtW, rtH, 0, source.format); + + rt.filterMode = FilterMode.Bilinear; + Graphics.Blit (source, rt, blurMaterial, 0); + + var passOffs= blurType == BlurType.StandardGauss ? 0 : 2; + + for(int i = 0; i < blurIterations; i++) { + float iterationOffs = (i*1.0f); + blurMaterial.SetVector ("_Parameter", new Vector4 (blurSize * widthMod + iterationOffs, -blurSize * widthMod - iterationOffs, 0.0f, 0.0f)); + + // vertical blur + RenderTexture rt2 = RenderTexture.GetTemporary (rtW, rtH, 0, source.format); + rt2.filterMode = FilterMode.Bilinear; + Graphics.Blit (rt, rt2, blurMaterial, 1 + passOffs); + RenderTexture.ReleaseTemporary (rt); + rt = rt2; + + // horizontal blur + rt2 = RenderTexture.GetTemporary (rtW, rtH, 0, source.format); + rt2.filterMode = FilterMode.Bilinear; + Graphics.Blit (rt, rt2, blurMaterial, 2 + passOffs); + RenderTexture.ReleaseTemporary (rt); + rt = rt2; + } + + Graphics.Blit (rt, destination); + + RenderTexture.ReleaseTemporary (rt); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/BlurOptimized.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/BlurOptimized.cs.meta new file mode 100644 index 0000000..47ca17b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/BlurOptimized.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 7fc6bde01469c7b4badee5362f191d96 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - blurShader: {fileID: 4800000, guid: f9d5fa183cd6b45eeb1491f74863cd91, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/CameraMotionBlur.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/CameraMotionBlur.cs new file mode 100644 index 0000000..3af6299 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/CameraMotionBlur.cs @@ -0,0 +1,381 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [RequireComponent (typeof(Camera))] + [AddComponentMenu ("Image Effects/Camera/Camera Motion Blur") ] + public class CameraMotionBlur : PostEffectsBase + { + // make sure to match this to MAX_RADIUS in shader ('k' in paper) + static float MAX_RADIUS = 10.0f; + + public enum MotionBlurFilter { + CameraMotion = 0, // global screen blur based on cam motion + LocalBlur = 1, // cheap blur, no dilation or scattering + Reconstruction = 2, // advanced filter (simulates scattering) as in plausible motion blur paper + ReconstructionDX11 = 3, // advanced filter (simulates scattering) as in plausible motion blur paper + ReconstructionDisc = 4, // advanced filter using scaled poisson disc sampling + } + + // settings + public MotionBlurFilter filterType = MotionBlurFilter.Reconstruction; + public bool preview = false; // show how blur would look like in action ... + public Vector3 previewScale = Vector3.one; // ... given this movement vector + + // params + public float movementScale = 0.0f; + public float rotationScale = 1.0f; + public float maxVelocity = 8.0f; // maximum velocity in pixels + public float minVelocity = 0.1f; // minimum velocity in pixels + public float velocityScale = 0.375f; // global velocity scale + public float softZDistance = 0.005f; // for z overlap check softness (reconstruction filter only) + public int velocityDownsample = 1; // low resolution velocity buffer? (optimization) + public LayerMask excludeLayers = 0; + private GameObject tmpCam = null; + + // resources + public Shader shader; + public Shader dx11MotionBlurShader; + public Shader replacementClear; + + private Material motionBlurMaterial = null; + private Material dx11MotionBlurMaterial = null; + + public Texture2D noiseTexture = null; + public float jitter = 0.05f; + + // (internal) debug + public bool showVelocity = false; + public float showVelocityScale = 1.0f; + + // camera transforms + private Matrix4x4 currentViewProjMat; + private Matrix4x4 prevViewProjMat; + private int prevFrameCount; + private bool wasActive; + // shortcuts to calculate global blur direction when using 'CameraMotion' + private Vector3 prevFrameForward = Vector3.forward; + private Vector3 prevFrameUp = Vector3.up; + private Vector3 prevFramePos = Vector3.zero; + private Camera _camera; + + + private void CalculateViewProjection () { + Matrix4x4 viewMat = _camera.worldToCameraMatrix; + Matrix4x4 projMat = GL.GetGPUProjectionMatrix (_camera.projectionMatrix, true); + currentViewProjMat = projMat * viewMat; + } + + + new void Start () { + CheckResources (); + + if (_camera == null) + _camera = GetComponent(); + + wasActive = gameObject.activeInHierarchy; + CalculateViewProjection (); + Remember (); + wasActive = false; // hack to fake position/rotation update and prevent bad blurs + } + + void OnEnable () { + + if (_camera == null) + _camera = GetComponent(); + + _camera.depthTextureMode |= DepthTextureMode.Depth; + } + + void OnDisable () { + if (null != motionBlurMaterial) { + DestroyImmediate (motionBlurMaterial); + motionBlurMaterial = null; + } + if (null != dx11MotionBlurMaterial) { + DestroyImmediate (dx11MotionBlurMaterial); + dx11MotionBlurMaterial = null; + } + if (null != tmpCam) { + DestroyImmediate (tmpCam); + tmpCam = null; + } + } + + + public override bool CheckResources () { + CheckSupport (true, true); // depth & hdr needed + motionBlurMaterial = CheckShaderAndCreateMaterial (shader, motionBlurMaterial); + + if (supportDX11 && filterType == MotionBlurFilter.ReconstructionDX11) { + dx11MotionBlurMaterial = CheckShaderAndCreateMaterial (dx11MotionBlurShader, dx11MotionBlurMaterial); + } + + if (!isSupported) + ReportAutoDisable (); + + return isSupported; + } + + void OnRenderImage (RenderTexture source, RenderTexture destination) { + if (false == CheckResources ()) { + Graphics.Blit (source, destination); + return; + } + + if (filterType == MotionBlurFilter.CameraMotion) + StartFrame (); + + // use if possible new RG format ... fallback to half otherwise + var rtFormat= SystemInfo.SupportsRenderTextureFormat (RenderTextureFormat.RGHalf) ? RenderTextureFormat.RGHalf : RenderTextureFormat.ARGBHalf; + + // get temp textures + RenderTexture velBuffer = RenderTexture.GetTemporary (divRoundUp (source.width, velocityDownsample), divRoundUp (source.height, velocityDownsample), 0, rtFormat); + int tileWidth = 1; + int tileHeight = 1; + maxVelocity = Mathf.Max (2.0f, maxVelocity); + + float _maxVelocity = maxVelocity; // calculate 'k' + // note: 's' is hardcoded in shaders except for DX11 path + + // auto DX11 fallback! + bool fallbackFromDX11 = filterType == MotionBlurFilter.ReconstructionDX11 && dx11MotionBlurMaterial == null; + + if (filterType == MotionBlurFilter.Reconstruction || fallbackFromDX11 || filterType == MotionBlurFilter.ReconstructionDisc) { + maxVelocity = Mathf.Min (maxVelocity, MAX_RADIUS); + tileWidth = divRoundUp (velBuffer.width, (int) maxVelocity); + tileHeight = divRoundUp (velBuffer.height, (int) maxVelocity); + _maxVelocity = velBuffer.width/tileWidth; + } + else { + tileWidth = divRoundUp (velBuffer.width, (int) maxVelocity); + tileHeight = divRoundUp (velBuffer.height, (int) maxVelocity); + _maxVelocity = velBuffer.width/tileWidth; + } + + RenderTexture tileMax = RenderTexture.GetTemporary (tileWidth, tileHeight, 0, rtFormat); + RenderTexture neighbourMax = RenderTexture.GetTemporary (tileWidth, tileHeight, 0, rtFormat); + velBuffer.filterMode = FilterMode.Point; + tileMax.filterMode = FilterMode.Point; + neighbourMax.filterMode = FilterMode.Point; + if (noiseTexture) noiseTexture.filterMode = FilterMode.Point; + source.wrapMode = TextureWrapMode.Clamp; + velBuffer.wrapMode = TextureWrapMode.Clamp; + neighbourMax.wrapMode = TextureWrapMode.Clamp; + tileMax.wrapMode = TextureWrapMode.Clamp; + + // calc correct viewprj matrix + CalculateViewProjection (); + + // just started up? + if (gameObject.activeInHierarchy && !wasActive) { + Remember (); + } + wasActive = gameObject.activeInHierarchy; + + // matrices + Matrix4x4 invViewPrj = Matrix4x4.Inverse (currentViewProjMat); + motionBlurMaterial.SetMatrix ("_InvViewProj", invViewPrj); + motionBlurMaterial.SetMatrix ("_PrevViewProj", prevViewProjMat); + motionBlurMaterial.SetMatrix ("_ToPrevViewProjCombined", prevViewProjMat * invViewPrj); + + motionBlurMaterial.SetFloat ("_MaxVelocity", _maxVelocity); + motionBlurMaterial.SetFloat ("_MaxRadiusOrKInPaper", _maxVelocity); + motionBlurMaterial.SetFloat ("_MinVelocity", minVelocity); + motionBlurMaterial.SetFloat ("_VelocityScale", velocityScale); + motionBlurMaterial.SetFloat ("_Jitter", jitter); + + // texture samplers + motionBlurMaterial.SetTexture ("_NoiseTex", noiseTexture); + motionBlurMaterial.SetTexture ("_VelTex", velBuffer); + motionBlurMaterial.SetTexture ("_NeighbourMaxTex", neighbourMax); + motionBlurMaterial.SetTexture ("_TileTexDebug", tileMax); + + if (preview) { + // generate an artifical 'previous' matrix to simulate blur look + Matrix4x4 viewMat = _camera.worldToCameraMatrix; + Matrix4x4 offset = Matrix4x4.identity; + offset.SetTRS(previewScale * 0.3333f, Quaternion.identity, Vector3.one); // using only translation + Matrix4x4 projMat = GL.GetGPUProjectionMatrix (_camera.projectionMatrix, true); + prevViewProjMat = projMat * offset * viewMat; + motionBlurMaterial.SetMatrix ("_PrevViewProj", prevViewProjMat); + motionBlurMaterial.SetMatrix ("_ToPrevViewProjCombined", prevViewProjMat * invViewPrj); + } + + if (filterType == MotionBlurFilter.CameraMotion) + { + // build blur vector to be used in shader to create a global blur direction + Vector4 blurVector = Vector4.zero; + + float lookUpDown = Vector3.Dot (transform.up, Vector3.up); + Vector3 distanceVector = prevFramePos-transform.position; + + float distMag = distanceVector.magnitude; + + float farHeur = 1.0f; + + // pitch (vertical) + farHeur = (Vector3.Angle (transform.up, prevFrameUp) / _camera.fieldOfView) * (source.width * 0.75f); + blurVector.x = rotationScale * farHeur;//Mathf.Clamp01((1.0ff-Vector3.Dot(transform.up, prevFrameUp))); + + // yaw #1 (horizontal, faded by pitch) + farHeur = (Vector3.Angle (transform.forward, prevFrameForward) / _camera.fieldOfView) * (source.width * 0.75f); + blurVector.y = rotationScale * lookUpDown * farHeur;//Mathf.Clamp01((1.0ff-Vector3.Dot(transform.forward, prevFrameForward))); + + // yaw #2 (when looking down, faded by 1-pitch) + farHeur = (Vector3.Angle (transform.forward, prevFrameForward) / _camera.fieldOfView) * (source.width * 0.75f); + blurVector.z = rotationScale * (1.0f- lookUpDown) * farHeur;//Mathf.Clamp01((1.0ff-Vector3.Dot(transform.forward, prevFrameForward))); + + if (distMag > Mathf.Epsilon && movementScale > Mathf.Epsilon) { + // forward (probably most important) + blurVector.w = movementScale * (Vector3.Dot (transform.forward, distanceVector) ) * (source.width * 0.5f); + // jump (maybe scale down further) + blurVector.x += movementScale * (Vector3.Dot (transform.up, distanceVector) ) * (source.width * 0.5f); + // strafe (maybe scale down further) + blurVector.y += movementScale * (Vector3.Dot (transform.right, distanceVector) ) * (source.width * 0.5f); + } + + if (preview) // crude approximation + motionBlurMaterial.SetVector ("_BlurDirectionPacked", new Vector4 (previewScale.y, previewScale.x, 0.0f, previewScale.z) * 0.5f * _camera.fieldOfView); + else + motionBlurMaterial.SetVector ("_BlurDirectionPacked", blurVector); + } + else { + // generate velocity buffer + Graphics.Blit (source, velBuffer, motionBlurMaterial, 0); + + // patch up velocity buffer: + + // exclude certain layers (e.g. skinned objects as we cant really support that atm) + + Camera cam = null; + if (excludeLayers.value != 0)// || dynamicLayers.value) + cam = GetTmpCam (); + + if (cam && excludeLayers.value != 0 && replacementClear && replacementClear.isSupported) { + cam.targetTexture = velBuffer; + cam.cullingMask = excludeLayers; + cam.RenderWithShader (replacementClear, ""); + } + } + + if (!preview && Time.frameCount != prevFrameCount) { + // remember current transformation data for next frame + prevFrameCount = Time.frameCount; + Remember (); + } + + source.filterMode = FilterMode.Bilinear; + + // debug vel buffer: + if (showVelocity) { + // generate tile max and neighbour max + //Graphics.Blit (velBuffer, tileMax, motionBlurMaterial, 2); + //Graphics.Blit (tileMax, neighbourMax, motionBlurMaterial, 3); + motionBlurMaterial.SetFloat ("_DisplayVelocityScale", showVelocityScale); + Graphics.Blit (velBuffer, destination, motionBlurMaterial, 1); + } + else { + if (filterType == MotionBlurFilter.ReconstructionDX11 && !fallbackFromDX11) { + // need to reset some parameters for dx11 shader + dx11MotionBlurMaterial.SetFloat ("_MinVelocity", minVelocity); + dx11MotionBlurMaterial.SetFloat ("_VelocityScale", velocityScale); + dx11MotionBlurMaterial.SetFloat ("_Jitter", jitter); + + // texture samplers + dx11MotionBlurMaterial.SetTexture ("_NoiseTex", noiseTexture); + dx11MotionBlurMaterial.SetTexture ("_VelTex", velBuffer); + dx11MotionBlurMaterial.SetTexture ("_NeighbourMaxTex", neighbourMax); + + dx11MotionBlurMaterial.SetFloat ("_SoftZDistance", Mathf.Max(0.00025f, softZDistance) ); + dx11MotionBlurMaterial.SetFloat ("_MaxRadiusOrKInPaper", _maxVelocity); + + // generate tile max and neighbour max + Graphics.Blit (velBuffer, tileMax, dx11MotionBlurMaterial, 0); + Graphics.Blit (tileMax, neighbourMax, dx11MotionBlurMaterial, 1); + + // final blur + Graphics.Blit (source, destination, dx11MotionBlurMaterial, 2); + } + else if (filterType == MotionBlurFilter.Reconstruction || fallbackFromDX11) { + // 'reconstructing' properly integrated color + motionBlurMaterial.SetFloat ("_SoftZDistance", Mathf.Max(0.00025f, softZDistance) ); + + // generate tile max and neighbour max + Graphics.Blit (velBuffer, tileMax, motionBlurMaterial, 2); + Graphics.Blit (tileMax, neighbourMax, motionBlurMaterial, 3); + + // final blur + Graphics.Blit (source, destination, motionBlurMaterial, 4); + } + else if (filterType == MotionBlurFilter.CameraMotion) { + // orange box style motion blur + Graphics.Blit (source, destination, motionBlurMaterial, 6); + } + else if (filterType == MotionBlurFilter.ReconstructionDisc) { + // dof style motion blur defocuing and ellipse around the princical blur direction + // 'reconstructing' properly integrated color + motionBlurMaterial.SetFloat ("_SoftZDistance", Mathf.Max(0.00025f, softZDistance) ); + + // generate tile max and neighbour max + Graphics.Blit (velBuffer, tileMax, motionBlurMaterial, 2); + Graphics.Blit (tileMax, neighbourMax, motionBlurMaterial, 3); + + Graphics.Blit (source, destination, motionBlurMaterial, 7); + } + else { + // simple & fast blur (low quality): just blurring along velocity + Graphics.Blit (source, destination, motionBlurMaterial, 5); + } + } + + // cleanup + RenderTexture.ReleaseTemporary (velBuffer); + RenderTexture.ReleaseTemporary (tileMax); + RenderTexture.ReleaseTemporary (neighbourMax); + } + + void Remember () { + prevViewProjMat = currentViewProjMat; + prevFrameForward = transform.forward; + prevFrameUp = transform.up; + prevFramePos = transform.position; + } + + Camera GetTmpCam () { + if (tmpCam == null) { + string name = "_" + _camera.name + "_MotionBlurTmpCam"; + GameObject go = GameObject.Find (name); + if (null == go) // couldn't find, recreate + tmpCam = new GameObject (name, typeof (Camera)); + else + tmpCam = go; + } + + tmpCam.hideFlags = HideFlags.DontSave; + tmpCam.transform.position = _camera.transform.position; + tmpCam.transform.rotation = _camera.transform.rotation; + tmpCam.transform.localScale = _camera.transform.localScale; + tmpCam.GetComponent().CopyFrom(_camera); + + tmpCam.GetComponent().enabled = false; + tmpCam.GetComponent().depthTextureMode = DepthTextureMode.None; + tmpCam.GetComponent().clearFlags = CameraClearFlags.Nothing; + + return tmpCam.GetComponent(); + } + + void StartFrame () { + // take only x% of positional changes into account (camera motion) + // TODO: possibly do the same for rotational part + prevFramePos = Vector3.Slerp(prevFramePos, transform.position, 0.75f); + } + + static int divRoundUp (int x, int d) + { + return (x + d - 1) / d; + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/CameraMotionBlur.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/CameraMotionBlur.cs.meta new file mode 100644 index 0000000..ef18200 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/CameraMotionBlur.cs.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 97e9b95cf609d96409b6c40519432957 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - shader: {fileID: 4800000, guid: 85a88efa8c871af4a9d17c64791b6f4f, type: 3} + - dx11MotionBlurShader: {fileID: 4800000, guid: f1b13d7a80660504a858ea24cfa418c6, + type: 3} + - replacementClear: {fileID: 4800000, guid: 7699c5fbfa27745a1abe111ab7bf9785, type: 3} + - noiseTexture: {fileID: 2800000, guid: 31f5a8611c4ed1245b18456206e798dc, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ColorCorrectionCurves.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ColorCorrectionCurves.cs new file mode 100644 index 0000000..dd4e9d6 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ColorCorrectionCurves.cs @@ -0,0 +1,181 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [AddComponentMenu ("Image Effects/Color Adjustments/Color Correction (Curves, Saturation)")] + public class ColorCorrectionCurves : PostEffectsBase + { + public enum ColorCorrectionMode + { + Simple = 0, + Advanced = 1 + } + + public AnimationCurve redChannel = new AnimationCurve(new Keyframe(0f,0f), new Keyframe(1f,1f)); + public AnimationCurve greenChannel = new AnimationCurve(new Keyframe(0f,0f), new Keyframe(1f,1f)); + public AnimationCurve blueChannel = new AnimationCurve(new Keyframe(0f,0f), new Keyframe(1f,1f)); + + public bool useDepthCorrection = false; + + public AnimationCurve zCurve = new AnimationCurve(new Keyframe(0f,0f), new Keyframe(1f,1f)); + public AnimationCurve depthRedChannel = new AnimationCurve(new Keyframe(0f,0f), new Keyframe(1f,1f)); + public AnimationCurve depthGreenChannel = new AnimationCurve(new Keyframe(0f,0f), new Keyframe(1f,1f)); + public AnimationCurve depthBlueChannel = new AnimationCurve(new Keyframe(0f,0f), new Keyframe(1f,1f)); + + private Material ccMaterial; + private Material ccDepthMaterial; + private Material selectiveCcMaterial; + + private Texture2D rgbChannelTex; + private Texture2D rgbDepthChannelTex; + private Texture2D zCurveTex; + + public float saturation = 1.0f; + + public bool selectiveCc = false; + + public Color selectiveFromColor = Color.white; + public Color selectiveToColor = Color.white; + + public ColorCorrectionMode mode; + + public bool updateTextures = true; + + public Shader colorCorrectionCurvesShader = null; + public Shader simpleColorCorrectionCurvesShader = null; + public Shader colorCorrectionSelectiveShader = null; + + private bool updateTexturesOnStartup = true; + + + new void Start () + { + base.Start (); + updateTexturesOnStartup = true; + } + + void Awake () { } + + + public override bool CheckResources () + { + CheckSupport (mode == ColorCorrectionMode.Advanced); + + ccMaterial = CheckShaderAndCreateMaterial (simpleColorCorrectionCurvesShader, ccMaterial); + ccDepthMaterial = CheckShaderAndCreateMaterial (colorCorrectionCurvesShader, ccDepthMaterial); + selectiveCcMaterial = CheckShaderAndCreateMaterial (colorCorrectionSelectiveShader, selectiveCcMaterial); + + if (!rgbChannelTex) + rgbChannelTex = new Texture2D (256, 4, TextureFormat.ARGB32, false, true); + if (!rgbDepthChannelTex) + rgbDepthChannelTex = new Texture2D (256, 4, TextureFormat.ARGB32, false, true); + if (!zCurveTex) + zCurveTex = new Texture2D (256, 1, TextureFormat.ARGB32, false, true); + + rgbChannelTex.hideFlags = HideFlags.DontSave; + rgbDepthChannelTex.hideFlags = HideFlags.DontSave; + zCurveTex.hideFlags = HideFlags.DontSave; + + rgbChannelTex.wrapMode = TextureWrapMode.Clamp; + rgbDepthChannelTex.wrapMode = TextureWrapMode.Clamp; + zCurveTex.wrapMode = TextureWrapMode.Clamp; + + if (!isSupported) + ReportAutoDisable (); + return isSupported; + } + + public void UpdateParameters () + { + CheckResources(); // textures might not be created if we're tweaking UI while disabled + + if (redChannel != null && greenChannel != null && blueChannel != null) + { + for (float i = 0.0f; i <= 1.0f; i += 1.0f / 255.0f) + { + float rCh = Mathf.Clamp (redChannel.Evaluate(i), 0.0f, 1.0f); + float gCh = Mathf.Clamp (greenChannel.Evaluate(i), 0.0f, 1.0f); + float bCh = Mathf.Clamp (blueChannel.Evaluate(i), 0.0f, 1.0f); + + rgbChannelTex.SetPixel ((int) Mathf.Floor(i*255.0f), 0, new Color(rCh,rCh,rCh) ); + rgbChannelTex.SetPixel ((int) Mathf.Floor(i*255.0f), 1, new Color(gCh,gCh,gCh) ); + rgbChannelTex.SetPixel ((int) Mathf.Floor(i*255.0f), 2, new Color(bCh,bCh,bCh) ); + + float zC = Mathf.Clamp (zCurve.Evaluate(i), 0.0f,1.0f); + + zCurveTex.SetPixel ((int) Mathf.Floor(i*255.0f), 0, new Color(zC,zC,zC) ); + + rCh = Mathf.Clamp (depthRedChannel.Evaluate(i), 0.0f,1.0f); + gCh = Mathf.Clamp (depthGreenChannel.Evaluate(i), 0.0f,1.0f); + bCh = Mathf.Clamp (depthBlueChannel.Evaluate(i), 0.0f,1.0f); + + rgbDepthChannelTex.SetPixel ((int) Mathf.Floor(i*255.0f), 0, new Color(rCh,rCh,rCh) ); + rgbDepthChannelTex.SetPixel ((int) Mathf.Floor(i*255.0f), 1, new Color(gCh,gCh,gCh) ); + rgbDepthChannelTex.SetPixel ((int) Mathf.Floor(i*255.0f), 2, new Color(bCh,bCh,bCh) ); + } + + rgbChannelTex.Apply (); + rgbDepthChannelTex.Apply (); + zCurveTex.Apply (); + } + } + + void UpdateTextures () + { + UpdateParameters (); + } + + void OnRenderImage (RenderTexture source, RenderTexture destination) + { + if (CheckResources()==false) + { + Graphics.Blit (source, destination); + return; + } + + if (updateTexturesOnStartup) + { + UpdateParameters (); + updateTexturesOnStartup = false; + } + + if (useDepthCorrection) + GetComponent().depthTextureMode |= DepthTextureMode.Depth; + + RenderTexture renderTarget2Use = destination; + + if (selectiveCc) + { + renderTarget2Use = RenderTexture.GetTemporary (source.width, source.height); + } + + if (useDepthCorrection) + { + ccDepthMaterial.SetTexture ("_RgbTex", rgbChannelTex); + ccDepthMaterial.SetTexture ("_ZCurve", zCurveTex); + ccDepthMaterial.SetTexture ("_RgbDepthTex", rgbDepthChannelTex); + ccDepthMaterial.SetFloat ("_Saturation", saturation); + + Graphics.Blit (source, renderTarget2Use, ccDepthMaterial); + } + else + { + ccMaterial.SetTexture ("_RgbTex", rgbChannelTex); + ccMaterial.SetFloat ("_Saturation", saturation); + + Graphics.Blit (source, renderTarget2Use, ccMaterial); + } + + if (selectiveCc) + { + selectiveCcMaterial.SetColor ("selColor", selectiveFromColor); + selectiveCcMaterial.SetColor ("targetColor", selectiveToColor); + Graphics.Blit (renderTarget2Use, destination, selectiveCcMaterial); + + RenderTexture.ReleaseTemporary (renderTarget2Use); + } + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ColorCorrectionCurves.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ColorCorrectionCurves.cs.meta new file mode 100644 index 0000000..e60e166 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ColorCorrectionCurves.cs.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: 1fd999d1b2cf94a45a5b0a47ce074bef +MonoImporter: + serializedVersion: 2 + defaultReferences: + - colorCorrectionCurvesShader: {fileID: 4800000, guid: 62bcade1028c24ca1a39760ed84b9487, + type: 3} + - simpleColorCorrectionCurvesShader: {fileID: 4800000, guid: 438ddd58d82c84d9eb1fdc56111702e1, + type: 3} + - colorCorrectionSelectiveShader: {fileID: 4800000, guid: e515e0f94cefc4c0db54b45cba621544, + type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ColorCorrectionLookup.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ColorCorrectionLookup.cs new file mode 100644 index 0000000..f122aea --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ColorCorrectionLookup.cs @@ -0,0 +1,130 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [AddComponentMenu ("Image Effects/Color Adjustments/Color Correction (3D Lookup Texture)")] + public class ColorCorrectionLookup : PostEffectsBase + { + public Shader shader; + private Material material; + + // serialize this instead of having another 2d texture ref'ed + public Texture3D converted3DLut = null; + public string basedOnTempTex = ""; + + + public override bool CheckResources () { + CheckSupport (false); + + material = CheckShaderAndCreateMaterial (shader, material); + + if (!isSupported || !SystemInfo.supports3DTextures) + ReportAutoDisable (); + return isSupported; + } + + void OnDisable () { + if (material) { + DestroyImmediate (material); + material = null; + } + } + + void OnDestroy () { + if (converted3DLut) + DestroyImmediate (converted3DLut); + converted3DLut = null; + } + + public void SetIdentityLut () { + int dim = 16; + var newC = new Color[dim*dim*dim]; + float oneOverDim = 1.0f / (1.0f * dim - 1.0f); + + for(int i = 0; i < dim; i++) { + for(int j = 0; j < dim; j++) { + for(int k = 0; k < dim; k++) { + newC[i + (j*dim) + (k*dim*dim)] = new Color((i*1.0f)*oneOverDim, (j*1.0f)*oneOverDim, (k*1.0f)*oneOverDim, 1.0f); + } + } + } + + if (converted3DLut) + DestroyImmediate (converted3DLut); + converted3DLut = new Texture3D (dim, dim, dim, TextureFormat.ARGB32, false); + converted3DLut.SetPixels (newC); + converted3DLut.Apply (); + basedOnTempTex = ""; + } + + public bool ValidDimensions ( Texture2D tex2d) { + if (!tex2d) return false; + int h = tex2d.height; + if (h != Mathf.FloorToInt(Mathf.Sqrt(tex2d.width))) { + return false; + } + return true; + } + + public void Convert ( Texture2D temp2DTex, string path) { + + // conversion fun: the given 2D texture needs to be of the format + // w * h, wheras h is the 'depth' (or 3d dimension 'dim') and w = dim * dim + + if (temp2DTex) { + int dim = temp2DTex.width * temp2DTex.height; + dim = temp2DTex.height; + + if (!ValidDimensions(temp2DTex)) { + Debug.LogWarning ("The given 2D texture " + temp2DTex.name + " cannot be used as a 3D LUT."); + basedOnTempTex = ""; + return; + } + + var c = temp2DTex.GetPixels(); + var newC = new Color[c.Length]; + + for(int i = 0; i < dim; i++) { + for(int j = 0; j < dim; j++) { + for(int k = 0; k < dim; k++) { + int j_ = dim-j-1; + newC[i + (j*dim) + (k*dim*dim)] = c[k*dim+i+j_*dim*dim]; + } + } + } + + if (converted3DLut) + DestroyImmediate (converted3DLut); + converted3DLut = new Texture3D (dim, dim, dim, TextureFormat.ARGB32, false); + converted3DLut.SetPixels (newC); + converted3DLut.Apply (); + basedOnTempTex = path; + } + else { + // error, something went terribly wrong + Debug.LogError ("Couldn't color correct with 3D LUT texture. Image Effect will be disabled."); + } + } + + void OnRenderImage (RenderTexture source, RenderTexture destination) { + if (CheckResources () == false || !SystemInfo.supports3DTextures) { + Graphics.Blit (source, destination); + return; + } + + if (converted3DLut == null) { + SetIdentityLut (); + } + + int lutSize = converted3DLut.width; + converted3DLut.wrapMode = TextureWrapMode.Clamp; + material.SetFloat("_Scale", (lutSize - 1) / (1.0f*lutSize)); + material.SetFloat("_Offset", 1.0f / (2.0f * lutSize)); + material.SetTexture("_ClutTex", converted3DLut); + + Graphics.Blit (source, destination, material, QualitySettings.activeColorSpace == ColorSpace.Linear ? 1 : 0); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ColorCorrectionLookup.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ColorCorrectionLookup.cs.meta new file mode 100644 index 0000000..82f6837 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ColorCorrectionLookup.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8cde8c0fd649d9b46bb403ba5e157391 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - shader: {fileID: 4800000, guid: b61f0d8d8244b4b28aa66b0c8cb46a8d, type: 3} + - converted3DLut: {instanceID: 0} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ColorCorrectionRamp.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ColorCorrectionRamp.cs new file mode 100644 index 0000000..662f59f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ColorCorrectionRamp.cs @@ -0,0 +1,17 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [AddComponentMenu("Image Effects/Color Adjustments/Color Correction (Ramp)")] + public class ColorCorrectionRamp : ImageEffectBase { + public Texture textureRamp; + + // Called by camera to apply image effect + void OnRenderImage (RenderTexture source, RenderTexture destination) { + material.SetTexture ("_RampTex", textureRamp); + Graphics.Blit (source, destination, material); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ColorCorrectionRamp.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ColorCorrectionRamp.cs.meta new file mode 100644 index 0000000..009d841 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ColorCorrectionRamp.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: ea59781cad112c75d0008dfa8d76c639 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - shader: {fileID: 4800000, guid: 67f8781cad112c75d0008dfa8d76c639, type: 3} + - textureRamp: {fileID: 2800000, guid: d440902fad11e807d00044888d76c639, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ContrastEnhance.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ContrastEnhance.cs new file mode 100644 index 0000000..489c561 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ContrastEnhance.cs @@ -0,0 +1,80 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [RequireComponent(typeof(Camera))] + [AddComponentMenu("Image Effects/Color Adjustments/Contrast Enhance (Unsharp Mask)")] + public class ContrastEnhance : PostEffectsBase + { + [Range(0.0f, 1.0f)] + public float intensity = 0.5f; + [Range(0.0f,0.999f)] + public float threshold = 0.0f; + + private Material separableBlurMaterial; + private Material contrastCompositeMaterial; + + [Range(0.0f,1.0f)] + public float blurSpread = 1.0f; + + public Shader separableBlurShader = null; + public Shader contrastCompositeShader = null; + + + public override bool CheckResources () + { + CheckSupport (false); + + contrastCompositeMaterial = CheckShaderAndCreateMaterial (contrastCompositeShader, contrastCompositeMaterial); + separableBlurMaterial = CheckShaderAndCreateMaterial (separableBlurShader, separableBlurMaterial); + + if (!isSupported) + ReportAutoDisable (); + return isSupported; + } + + void OnRenderImage (RenderTexture source, RenderTexture destination) + { + if (CheckResources()==false) + { + Graphics.Blit (source, destination); + return; + } + + int rtW = source.width; + int rtH = source.height; + + RenderTexture color2 = RenderTexture.GetTemporary (rtW/2, rtH/2, 0); + + // downsample + + Graphics.Blit (source, color2); + RenderTexture color4a = RenderTexture.GetTemporary (rtW/4, rtH/4, 0); + Graphics.Blit (color2, color4a); + RenderTexture.ReleaseTemporary (color2); + + // blur + + separableBlurMaterial.SetVector ("offsets", new Vector4 (0.0f, (blurSpread * 1.0f) / color4a.height, 0.0f, 0.0f)); + RenderTexture color4b = RenderTexture.GetTemporary (rtW/4, rtH/4, 0); + Graphics.Blit (color4a, color4b, separableBlurMaterial); + RenderTexture.ReleaseTemporary (color4a); + + separableBlurMaterial.SetVector ("offsets", new Vector4 ((blurSpread * 1.0f) / color4a.width, 0.0f, 0.0f, 0.0f)); + color4a = RenderTexture.GetTemporary (rtW/4, rtH/4, 0); + Graphics.Blit (color4b, color4a, separableBlurMaterial); + RenderTexture.ReleaseTemporary (color4b); + + // composite + + contrastCompositeMaterial.SetTexture ("_MainTexBlurred", color4a); + contrastCompositeMaterial.SetFloat ("intensity", intensity); + contrastCompositeMaterial.SetFloat ("threshold", threshold); + Graphics.Blit (source, destination, contrastCompositeMaterial); + + RenderTexture.ReleaseTemporary (color4a); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ContrastEnhance.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ContrastEnhance.cs.meta new file mode 100644 index 0000000..c469a7c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ContrastEnhance.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 3309686a9fbbe6e42a182d5e0257704c +MonoImporter: + serializedVersion: 2 + defaultReferences: + - separableBlurShader: {fileID: 4800000, guid: e97c14fbb5ea04c3a902cc533d7fc5d1, + type: 3} + - contrastCompositeShader: {fileID: 4800000, guid: 273404942eede4ea1883ca1fb2942507, + type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ContrastStretch.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ContrastStretch.cs new file mode 100644 index 0000000..67dc6bd --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ContrastStretch.cs @@ -0,0 +1,200 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [AddComponentMenu("Image Effects/Color Adjustments/Contrast Stretch")] + public class ContrastStretch : MonoBehaviour + { + /// Adaptation speed - percents per frame, if playing at 30FPS. + /// Default is 0.02 (2% each 1/30s). + [Range(0.0001f, 1.0f)] + public float adaptationSpeed = 0.02f; + + /// If our scene is really dark (or really bright), we might not want to + /// stretch its contrast to the full range. + /// limitMinimum=0, limitMaximum=1 is the same as not applying the effect at all. + /// limitMinimum=1, limitMaximum=0 is always stretching colors to full range. + + /// The limit on the minimum luminance (0...1) - we won't go above this. + [Range(0.0f,1.0f)] + public float limitMinimum = 0.2f; + + /// The limit on the maximum luminance (0...1) - we won't go below this. + [Range(0.0f, 1.0f)] + public float limitMaximum = 0.6f; + + + // To maintain adaptation levels over time, we need two 1x1 render textures + // and ping-pong between them. + private RenderTexture[] adaptRenderTex = new RenderTexture[2]; + private int curAdaptIndex = 0; + + + // Computes scene luminance (grayscale) image + public Shader shaderLum; + private Material m_materialLum; + protected Material materialLum { + get { + if ( m_materialLum == null ) { + m_materialLum = new Material(shaderLum); + m_materialLum.hideFlags = HideFlags.HideAndDontSave; + } + return m_materialLum; + } + } + + // Reduces size of the image by 2x2, while computing maximum/minimum values. + // By repeatedly applying this shader, we reduce the initial luminance image + // to 1x1 image with minimum/maximum luminances found. + public Shader shaderReduce; + private Material m_materialReduce; + protected Material materialReduce { + get { + if ( m_materialReduce == null ) { + m_materialReduce = new Material(shaderReduce); + m_materialReduce.hideFlags = HideFlags.HideAndDontSave; + } + return m_materialReduce; + } + } + + // Adaptation shader - gradually "adapts" minimum/maximum luminances, + // based on currently adapted 1x1 image and the actual 1x1 image of the current scene. + public Shader shaderAdapt; + private Material m_materialAdapt; + protected Material materialAdapt { + get { + if ( m_materialAdapt == null ) { + m_materialAdapt = new Material(shaderAdapt); + m_materialAdapt.hideFlags = HideFlags.HideAndDontSave; + } + return m_materialAdapt; + } + } + + // Final pass - stretches the color values of the original scene, based on currently + // adpated minimum/maximum values. + public Shader shaderApply; + private Material m_materialApply; + protected Material materialApply { + get { + if ( m_materialApply == null ) { + m_materialApply = new Material(shaderApply); + m_materialApply.hideFlags = HideFlags.HideAndDontSave; + } + return m_materialApply; + } + } + + void Start() + { + // Disable if we don't support image effects + if (!SystemInfo.supportsImageEffects) { + enabled = false; + return; + } + + if (!shaderAdapt.isSupported || !shaderApply.isSupported || !shaderLum.isSupported || !shaderReduce.isSupported) { + enabled = false; + return; + } + } + + void OnEnable() + { + for( int i = 0; i < 2; ++i ) + { + if ( !adaptRenderTex[i] ) { + adaptRenderTex[i] = new RenderTexture(1, 1, 0); + adaptRenderTex[i].hideFlags = HideFlags.HideAndDontSave; + } + } + } + + void OnDisable() + { + for( int i = 0; i < 2; ++i ) + { + DestroyImmediate( adaptRenderTex[i] ); + adaptRenderTex[i] = null; + } + if ( m_materialLum ) + DestroyImmediate( m_materialLum ); + if ( m_materialReduce ) + DestroyImmediate( m_materialReduce ); + if ( m_materialAdapt ) + DestroyImmediate( m_materialAdapt ); + if ( m_materialApply ) + DestroyImmediate( m_materialApply ); + } + + + /// Apply the filter + void OnRenderImage (RenderTexture source, RenderTexture destination) + { + // Blit to smaller RT and convert to luminance on the way + const int TEMP_RATIO = 1; // 4x4 smaller + RenderTexture rtTempSrc = RenderTexture.GetTemporary(source.width/TEMP_RATIO, source.height/TEMP_RATIO); + Graphics.Blit (source, rtTempSrc, materialLum); + + // Repeatedly reduce this image in size, computing min/max luminance values + // In the end we'll have 1x1 image with min/max luminances found. + const int FINAL_SIZE = 1; + //const int FINAL_SIZE = 1; + while( rtTempSrc.width > FINAL_SIZE || rtTempSrc.height > FINAL_SIZE ) + { + const int REDUCE_RATIO = 2; // our shader does 2x2 reduction + int destW = rtTempSrc.width / REDUCE_RATIO; + if ( destW < FINAL_SIZE ) destW = FINAL_SIZE; + int destH = rtTempSrc.height / REDUCE_RATIO; + if ( destH < FINAL_SIZE ) destH = FINAL_SIZE; + RenderTexture rtTempDst = RenderTexture.GetTemporary(destW,destH); + Graphics.Blit (rtTempSrc, rtTempDst, materialReduce); + + // Release old src temporary, and make new temporary the source + RenderTexture.ReleaseTemporary( rtTempSrc ); + rtTempSrc = rtTempDst; + } + + // Update viewer's adaptation level + CalculateAdaptation( rtTempSrc ); + + // Apply contrast strech to the original scene, using currently adapted parameters + materialApply.SetTexture("_AdaptTex", adaptRenderTex[curAdaptIndex] ); + Graphics.Blit (source, destination, materialApply); + + RenderTexture.ReleaseTemporary( rtTempSrc ); + } + + + /// Helper function to do gradual adaptation to min/max luminances + private void CalculateAdaptation( Texture curTexture ) + { + int prevAdaptIndex = curAdaptIndex; + curAdaptIndex = (curAdaptIndex+1) % 2; + + // Adaptation speed is expressed in percents/frame, based on 30FPS. + // Calculate the adaptation lerp, based on current FPS. + float adaptLerp = 1.0f - Mathf.Pow( 1.0f - adaptationSpeed, 30.0f * Time.deltaTime ); + const float kMinAdaptLerp = 0.01f; + adaptLerp = Mathf.Clamp( adaptLerp, kMinAdaptLerp, 1 ); + + materialAdapt.SetTexture("_CurTex", curTexture ); + materialAdapt.SetVector("_AdaptParams", new Vector4( + adaptLerp, + limitMinimum, + limitMaximum, + 0.0f + )); + // clear destination RT so its contents don't need to be restored + Graphics.SetRenderTarget(adaptRenderTex[curAdaptIndex]); + GL.Clear(false, true, Color.black); + Graphics.Blit ( + adaptRenderTex[prevAdaptIndex], + adaptRenderTex[curAdaptIndex], + materialAdapt); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ContrastStretch.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ContrastStretch.cs.meta new file mode 100644 index 0000000..a9285bb --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ContrastStretch.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ec92b071d2d424aecb3e46f28eb63174 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - shaderLum: {fileID: 4800000, guid: befbb4b9c320b4b18a08ef7afb93b6c9, type: 3} + - shaderReduce: {fileID: 4800000, guid: 57b33a14b6d5347c5a85c36f6cb3b280, type: 3} + - shaderAdapt: {fileID: 4800000, guid: 257bc83cbeb544540bd0e558aa9b1383, type: 3} + - shaderApply: {fileID: 4800000, guid: f4901f25d4e1542589348bbb89563d8e, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/CreaseShading.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/CreaseShading.cs new file mode 100644 index 0000000..9b147e0 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/CreaseShading.cs @@ -0,0 +1,82 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [RequireComponent (typeof(Camera))] + [AddComponentMenu ("Image Effects/Edge Detection/Crease Shading")] + public class CreaseShading : PostEffectsBase + { + public float intensity = 0.5f; + public int softness = 1; + public float spread = 1.0f; + + public Shader blurShader = null; + private Material blurMaterial = null; + + public Shader depthFetchShader = null; + private Material depthFetchMaterial = null; + + public Shader creaseApplyShader = null; + private Material creaseApplyMaterial = null; + + + public override bool CheckResources () + { + CheckSupport (true); + + blurMaterial = CheckShaderAndCreateMaterial (blurShader, blurMaterial); + depthFetchMaterial = CheckShaderAndCreateMaterial (depthFetchShader, depthFetchMaterial); + creaseApplyMaterial = CheckShaderAndCreateMaterial (creaseApplyShader, creaseApplyMaterial); + + if (!isSupported) + ReportAutoDisable (); + return isSupported; + } + + void OnRenderImage (RenderTexture source, RenderTexture destination) + { + if (CheckResources()==false) + { + Graphics.Blit (source, destination); + return; + } + + int rtW = source.width; + int rtH = source.height; + + float widthOverHeight = (1.0f * rtW) / (1.0f * rtH); + float oneOverBaseSize = 1.0f / 512.0f; + + RenderTexture hrTex = RenderTexture.GetTemporary (rtW, rtH, 0); + RenderTexture lrTex1 = RenderTexture.GetTemporary (rtW/2, rtH/2, 0); + + Graphics.Blit (source,hrTex, depthFetchMaterial); + Graphics.Blit (hrTex, lrTex1); + + for(int i = 0; i < softness; i++) + { + RenderTexture lrTex2 = RenderTexture.GetTemporary (rtW/2, rtH/2, 0); + blurMaterial.SetVector ("offsets", new Vector4 (0.0f, spread * oneOverBaseSize, 0.0f, 0.0f)); + Graphics.Blit (lrTex1, lrTex2, blurMaterial); + RenderTexture.ReleaseTemporary (lrTex1); + lrTex1 = lrTex2; + + lrTex2 = RenderTexture.GetTemporary (rtW/2, rtH/2, 0); + blurMaterial.SetVector ("offsets", new Vector4 (spread * oneOverBaseSize / widthOverHeight, 0.0f, 0.0f, 0.0f)); + Graphics.Blit (lrTex1, lrTex2, blurMaterial); + RenderTexture.ReleaseTemporary (lrTex1); + lrTex1 = lrTex2; + } + + creaseApplyMaterial.SetTexture ("_HrDepthTex", hrTex); + creaseApplyMaterial.SetTexture ("_LrDepthTex", lrTex1); + creaseApplyMaterial.SetFloat ("intensity", intensity); + Graphics.Blit (source,destination, creaseApplyMaterial); + + RenderTexture.ReleaseTemporary (hrTex); + RenderTexture.ReleaseTemporary (lrTex1); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/CreaseShading.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/CreaseShading.cs.meta new file mode 100644 index 0000000..c6ebebe --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/CreaseShading.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d64b4f3a592f28b44bf19223ac8b6cd2 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - blurShader: {fileID: 4800000, guid: e97c14fbb5ea04c3a902cc533d7fc5d1, type: 3} + - depthFetchShader: {fileID: 4800000, guid: 14768d3865b1342e3a861fbe19ba2db2, type: 3} + - creaseApplyShader: {fileID: 4800000, guid: b59984d82af624bd3b0c777f038276f2, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/DepthOfField.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/DepthOfField.cs new file mode 100644 index 0000000..50dab9a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/DepthOfField.cs @@ -0,0 +1,387 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [RequireComponent (typeof(Camera))] + [AddComponentMenu ("Image Effects/Camera/Depth of Field (Lens Blur, Scatter, DX11)") ] + public class DepthOfField : PostEffectsBase { + + public bool visualizeFocus = false; + public float focalLength = 10.0f; + public float focalSize = 0.05f; + public float aperture = 0.5f; + public Transform focalTransform = null; + public float maxBlurSize = 2.0f; + public bool highResolution = false; + + public enum BlurType { + DiscBlur = 0, + DX11 = 1, + } + + public enum BlurSampleCount { + Low = 0, + Medium = 1, + High = 2, + } + + public BlurType blurType = BlurType.DiscBlur; + public BlurSampleCount blurSampleCount = BlurSampleCount.High; + + public bool nearBlur = false; + public float foregroundOverlap = 1.0f; + + public Shader dofHdrShader; + private Material dofHdrMaterial = null; + + public Shader dx11BokehShader; + private Material dx11bokehMaterial; + + public float dx11BokehThreshold = 0.5f; + public float dx11SpawnHeuristic = 0.0875f; + public Texture2D dx11BokehTexture = null; + public float dx11BokehScale = 1.2f; + public float dx11BokehIntensity = 2.5f; + + private float focalDistance01 = 10.0f; + private ComputeBuffer cbDrawArgs; + private ComputeBuffer cbPoints; + private float internalBlurWidth = 1.0f; + + private Camera cachedCamera; + + public override bool CheckResources () { + CheckSupport (true); // only requires depth, not HDR + + dofHdrMaterial = CheckShaderAndCreateMaterial (dofHdrShader, dofHdrMaterial); + if (supportDX11 && blurType == BlurType.DX11) { + dx11bokehMaterial = CheckShaderAndCreateMaterial(dx11BokehShader, dx11bokehMaterial); + CreateComputeResources (); + } + + if (!isSupported) + ReportAutoDisable (); + + return isSupported; + } + + void OnEnable () { + cachedCamera = GetComponent(); + cachedCamera.depthTextureMode |= DepthTextureMode.Depth; + } + + void OnDisable () { + ReleaseComputeResources (); + + if (dofHdrMaterial) DestroyImmediate(dofHdrMaterial); + dofHdrMaterial = null; + if (dx11bokehMaterial) DestroyImmediate(dx11bokehMaterial); + dx11bokehMaterial = null; + } + + void ReleaseComputeResources () { + if (cbDrawArgs != null) cbDrawArgs.Release(); + cbDrawArgs = null; + if (cbPoints != null) cbPoints.Release(); + cbPoints = null; + } + + void CreateComputeResources () { + if (cbDrawArgs == null) + { + cbDrawArgs = new ComputeBuffer (1, 16, ComputeBufferType.IndirectArguments); + var args= new int[4]; + args[0] = 0; args[1] = 1; args[2] = 0; args[3] = 0; + cbDrawArgs.SetData (args); + } + if (cbPoints == null) + { + cbPoints = new ComputeBuffer (90000, 12+16, ComputeBufferType.Append); + } + } + + float FocalDistance01 ( float worldDist) { + return cachedCamera.WorldToViewportPoint((worldDist-cachedCamera.nearClipPlane) * cachedCamera.transform.forward + cachedCamera.transform.position).z / (cachedCamera.farClipPlane-cachedCamera.nearClipPlane); + } + + private void WriteCoc ( RenderTexture fromTo, bool fgDilate) { + dofHdrMaterial.SetTexture("_FgOverlap", null); + + if (nearBlur && fgDilate) { + + int rtW = fromTo.width/2; + int rtH = fromTo.height/2; + + // capture fg coc + RenderTexture temp2 = RenderTexture.GetTemporary (rtW, rtH, 0, fromTo.format); + Graphics.Blit (fromTo, temp2, dofHdrMaterial, 4); + + // special blur + float fgAdjustment = internalBlurWidth * foregroundOverlap; + + dofHdrMaterial.SetVector ("_Offsets", new Vector4 (0.0f, fgAdjustment , 0.0f, fgAdjustment)); + RenderTexture temp1 = RenderTexture.GetTemporary (rtW, rtH, 0, fromTo.format); + Graphics.Blit (temp2, temp1, dofHdrMaterial, 2); + RenderTexture.ReleaseTemporary(temp2); + + dofHdrMaterial.SetVector ("_Offsets", new Vector4 (fgAdjustment, 0.0f, 0.0f, fgAdjustment)); + temp2 = RenderTexture.GetTemporary (rtW, rtH, 0, fromTo.format); + Graphics.Blit (temp1, temp2, dofHdrMaterial, 2); + RenderTexture.ReleaseTemporary(temp1); + + // "merge up" with background COC + dofHdrMaterial.SetTexture("_FgOverlap", temp2); + fromTo.MarkRestoreExpected(); // only touching alpha channel, RT restore expected + Graphics.Blit (fromTo, fromTo, dofHdrMaterial, 13); + RenderTexture.ReleaseTemporary(temp2); + } + else { + // capture full coc in alpha channel (fromTo is not read, but bound to detect screen flip) + fromTo.MarkRestoreExpected(); // only touching alpha channel, RT restore expected + Graphics.Blit (fromTo, fromTo, dofHdrMaterial, 0); + } + } + + void OnRenderImage (RenderTexture source, RenderTexture destination) { + if (!CheckResources ()) { + Graphics.Blit (source, destination); + return; + } + + // clamp & prepare values so they make sense + + if (aperture < 0.0f) aperture = 0.0f; + if (maxBlurSize < 0.1f) maxBlurSize = 0.1f; + focalSize = Mathf.Clamp(focalSize, 0.0f, 2.0f); + internalBlurWidth = Mathf.Max(maxBlurSize, 0.0f); + + // focal & coc calculations + + focalDistance01 = (focalTransform) ? (cachedCamera.WorldToViewportPoint (focalTransform.position)).z / (cachedCamera.farClipPlane) : FocalDistance01 (focalLength); + dofHdrMaterial.SetVector("_CurveParams", new Vector4(1.0f, focalSize, (1.0f / (1.0f - aperture) - 1.0f), focalDistance01)); + + // possible render texture helpers + + RenderTexture rtLow = null; + RenderTexture rtLow2 = null; + RenderTexture rtSuperLow1 = null; + RenderTexture rtSuperLow2 = null; + float fgBlurDist = internalBlurWidth * foregroundOverlap; + + if (visualizeFocus) + { + + // + // 2. + // visualize coc + // + // + + WriteCoc (source, true); + Graphics.Blit (source, destination, dofHdrMaterial, 16); + } + else if ((blurType == BlurType.DX11) && dx11bokehMaterial) + { + + // + // 1. + // optimized dx11 bokeh scatter + // + // + + + if (highResolution) { + + internalBlurWidth = internalBlurWidth < 0.1f ? 0.1f : internalBlurWidth; + fgBlurDist = internalBlurWidth * foregroundOverlap; + + rtLow = RenderTexture.GetTemporary (source.width, source.height, 0, source.format); + + var dest2= RenderTexture.GetTemporary (source.width, source.height, 0, source.format); + + // capture COC + WriteCoc (source, false); + + // blur a bit so we can do a frequency check + rtSuperLow1 = RenderTexture.GetTemporary(source.width>>1, source.height>>1, 0, source.format); + rtSuperLow2 = RenderTexture.GetTemporary(source.width>>1, source.height>>1, 0, source.format); + + Graphics.Blit(source, rtSuperLow1, dofHdrMaterial, 15); + dofHdrMaterial.SetVector ("_Offsets", new Vector4 (0.0f, 1.5f , 0.0f, 1.5f)); + Graphics.Blit (rtSuperLow1, rtSuperLow2, dofHdrMaterial, 19); + dofHdrMaterial.SetVector ("_Offsets", new Vector4 (1.5f, 0.0f, 0.0f, 1.5f)); + Graphics.Blit (rtSuperLow2, rtSuperLow1, dofHdrMaterial, 19); + + // capture fg coc + if (nearBlur) + Graphics.Blit (source, rtSuperLow2, dofHdrMaterial, 4); + + dx11bokehMaterial.SetTexture ("_BlurredColor", rtSuperLow1); + dx11bokehMaterial.SetFloat ("_SpawnHeuristic", dx11SpawnHeuristic); + dx11bokehMaterial.SetVector ("_BokehParams", new Vector4(dx11BokehScale, dx11BokehIntensity, Mathf.Clamp(dx11BokehThreshold, 0.005f, 4.0f), internalBlurWidth)); + dx11bokehMaterial.SetTexture ("_FgCocMask", nearBlur ? rtSuperLow2 : null); + + // collect bokeh candidates and replace with a darker pixel + Graphics.SetRandomWriteTarget (1, cbPoints); + Graphics.Blit (source, rtLow, dx11bokehMaterial, 0); + Graphics.ClearRandomWriteTargets (); + + // fg coc blur happens here (after collect!) + if (nearBlur) { + dofHdrMaterial.SetVector ("_Offsets", new Vector4 (0.0f, fgBlurDist , 0.0f, fgBlurDist)); + Graphics.Blit (rtSuperLow2, rtSuperLow1, dofHdrMaterial, 2); + dofHdrMaterial.SetVector ("_Offsets", new Vector4 (fgBlurDist, 0.0f, 0.0f, fgBlurDist)); + Graphics.Blit (rtSuperLow1, rtSuperLow2, dofHdrMaterial, 2); + + // merge fg coc with bg coc + Graphics.Blit (rtSuperLow2, rtLow, dofHdrMaterial, 3); + } + + // NEW: LAY OUT ALPHA on destination target so we get nicer outlines for the high rez version + Graphics.Blit (rtLow, dest2, dofHdrMaterial, 20); + + // box blur (easier to merge with bokeh buffer) + dofHdrMaterial.SetVector ("_Offsets", new Vector4 (internalBlurWidth, 0.0f , 0.0f, internalBlurWidth)); + Graphics.Blit (rtLow, source, dofHdrMaterial, 5); + dofHdrMaterial.SetVector ("_Offsets", new Vector4 (0.0f, internalBlurWidth, 0.0f, internalBlurWidth)); + Graphics.Blit (source, dest2, dofHdrMaterial, 21); + + // apply bokeh candidates + Graphics.SetRenderTarget (dest2); + ComputeBuffer.CopyCount (cbPoints, cbDrawArgs, 0); + dx11bokehMaterial.SetBuffer ("pointBuffer", cbPoints); + dx11bokehMaterial.SetTexture ("_MainTex", dx11BokehTexture); + dx11bokehMaterial.SetVector ("_Screen", new Vector3(1.0f/(1.0f*source.width), 1.0f/(1.0f*source.height), internalBlurWidth)); + dx11bokehMaterial.SetPass (2); + + Graphics.DrawProceduralIndirect (MeshTopology.Points, cbDrawArgs, 0); + + Graphics.Blit (dest2, destination); // hackaround for DX11 high resolution flipfun (OPTIMIZEME) + + RenderTexture.ReleaseTemporary(dest2); + RenderTexture.ReleaseTemporary(rtSuperLow1); + RenderTexture.ReleaseTemporary(rtSuperLow2); + } + else { + rtLow = RenderTexture.GetTemporary (source.width>>1, source.height>>1, 0, source.format); + rtLow2 = RenderTexture.GetTemporary (source.width>>1, source.height>>1, 0, source.format); + + fgBlurDist = internalBlurWidth * foregroundOverlap; + + // capture COC & color in low resolution + WriteCoc (source, false); + source.filterMode = FilterMode.Bilinear; + Graphics.Blit (source, rtLow, dofHdrMaterial, 6); + + // blur a bit so we can do a frequency check + rtSuperLow1 = RenderTexture.GetTemporary(rtLow.width>>1, rtLow.height>>1, 0, rtLow.format); + rtSuperLow2 = RenderTexture.GetTemporary(rtLow.width>>1, rtLow.height>>1, 0, rtLow.format); + + Graphics.Blit(rtLow, rtSuperLow1, dofHdrMaterial, 15); + dofHdrMaterial.SetVector ("_Offsets", new Vector4 (0.0f, 1.5f , 0.0f, 1.5f)); + Graphics.Blit (rtSuperLow1, rtSuperLow2, dofHdrMaterial, 19); + dofHdrMaterial.SetVector ("_Offsets", new Vector4 (1.5f, 0.0f, 0.0f, 1.5f)); + Graphics.Blit (rtSuperLow2, rtSuperLow1, dofHdrMaterial, 19); + + RenderTexture rtLow3 = null; + + if (nearBlur) { + // capture fg coc + rtLow3 = RenderTexture.GetTemporary (source.width>>1, source.height>>1, 0, source.format); + Graphics.Blit (source, rtLow3, dofHdrMaterial, 4); + } + + dx11bokehMaterial.SetTexture ("_BlurredColor", rtSuperLow1); + dx11bokehMaterial.SetFloat ("_SpawnHeuristic", dx11SpawnHeuristic); + dx11bokehMaterial.SetVector ("_BokehParams", new Vector4(dx11BokehScale, dx11BokehIntensity, Mathf.Clamp(dx11BokehThreshold, 0.005f, 4.0f), internalBlurWidth)); + dx11bokehMaterial.SetTexture ("_FgCocMask", rtLow3); + + // collect bokeh candidates and replace with a darker pixel + Graphics.SetRandomWriteTarget (1, cbPoints); + Graphics.Blit (rtLow, rtLow2, dx11bokehMaterial, 0); + Graphics.ClearRandomWriteTargets (); + + RenderTexture.ReleaseTemporary(rtSuperLow1); + RenderTexture.ReleaseTemporary(rtSuperLow2); + + // fg coc blur happens here (after collect!) + if (nearBlur) { + dofHdrMaterial.SetVector ("_Offsets", new Vector4 (0.0f, fgBlurDist , 0.0f, fgBlurDist)); + Graphics.Blit (rtLow3, rtLow, dofHdrMaterial, 2); + dofHdrMaterial.SetVector ("_Offsets", new Vector4 (fgBlurDist, 0.0f, 0.0f, fgBlurDist)); + Graphics.Blit (rtLow, rtLow3, dofHdrMaterial, 2); + + // merge fg coc with bg coc + Graphics.Blit (rtLow3, rtLow2, dofHdrMaterial, 3); + } + + // box blur (easier to merge with bokeh buffer) + dofHdrMaterial.SetVector ("_Offsets", new Vector4 (internalBlurWidth, 0.0f , 0.0f, internalBlurWidth)); + Graphics.Blit (rtLow2, rtLow, dofHdrMaterial, 5); + dofHdrMaterial.SetVector ("_Offsets", new Vector4 (0.0f, internalBlurWidth, 0.0f, internalBlurWidth)); + Graphics.Blit (rtLow, rtLow2, dofHdrMaterial, 5); + + // apply bokeh candidates + Graphics.SetRenderTarget (rtLow2); + ComputeBuffer.CopyCount (cbPoints, cbDrawArgs, 0); + dx11bokehMaterial.SetBuffer ("pointBuffer", cbPoints); + dx11bokehMaterial.SetTexture ("_MainTex", dx11BokehTexture); + dx11bokehMaterial.SetVector ("_Screen", new Vector3(1.0f/(1.0f*rtLow2.width), 1.0f/(1.0f*rtLow2.height), internalBlurWidth)); + dx11bokehMaterial.SetPass (1); + Graphics.DrawProceduralIndirect (MeshTopology.Points, cbDrawArgs, 0); + + // upsample & combine + dofHdrMaterial.SetTexture ("_LowRez", rtLow2); + dofHdrMaterial.SetTexture ("_FgOverlap", rtLow3); + dofHdrMaterial.SetVector ("_Offsets", ((1.0f*source.width)/(1.0f*rtLow2.width)) * internalBlurWidth * Vector4.one); + Graphics.Blit (source, destination, dofHdrMaterial, 9); + + if (rtLow3) RenderTexture.ReleaseTemporary(rtLow3); + } + } + else + { + + // + // 2. + // poisson disc style blur in low resolution + // + // + + source.filterMode = FilterMode.Bilinear; + + if (highResolution) internalBlurWidth *= 2.0f; + + WriteCoc (source, true); + + rtLow = RenderTexture.GetTemporary (source.width >> 1, source.height >> 1, 0, source.format); + rtLow2 = RenderTexture.GetTemporary (source.width >> 1, source.height >> 1, 0, source.format); + + int blurPass = (blurSampleCount == BlurSampleCount.High || blurSampleCount == BlurSampleCount.Medium) ? 17 : 11; + + if (highResolution) { + dofHdrMaterial.SetVector ("_Offsets", new Vector4 (0.0f, internalBlurWidth, 0.025f, internalBlurWidth)); + Graphics.Blit (source, destination, dofHdrMaterial, blurPass); + } + else { + dofHdrMaterial.SetVector ("_Offsets", new Vector4 (0.0f, internalBlurWidth, 0.1f, internalBlurWidth)); + + // blur + Graphics.Blit (source, rtLow, dofHdrMaterial, 6); + Graphics.Blit (rtLow, rtLow2, dofHdrMaterial, blurPass); + + // cheaper blur in high resolution, upsample and combine + dofHdrMaterial.SetTexture("_LowRez", rtLow2); + dofHdrMaterial.SetTexture("_FgOverlap", null); + dofHdrMaterial.SetVector ("_Offsets", Vector4.one * ((1.0f*source.width)/(1.0f*rtLow2.width)) * internalBlurWidth); + Graphics.Blit (source, destination, dofHdrMaterial, blurSampleCount == BlurSampleCount.High ? 18 : 12); + } + } + + if (rtLow) RenderTexture.ReleaseTemporary(rtLow); + if (rtLow2) RenderTexture.ReleaseTemporary(rtLow2); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/DepthOfField.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/DepthOfField.cs.meta new file mode 100644 index 0000000..82a4f57 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/DepthOfField.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: bd70d448b18cfbc46af26466f752332c +MonoImporter: + serializedVersion: 2 + defaultReferences: + - focalTransform: {instanceID: 0} + - dofHdrShader: {fileID: 4800000, guid: acd613035ff3e455e8abf23fdc8c8c24, type: 3} + - dx11BokehShader: {fileID: 4800000, guid: d8e82664aa8686642a424c88ab10164a, type: 3} + - dx11BokehTexture: {fileID: 2800000, guid: a4cdca73d61814d33ac1587f6c163bca, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/DepthOfFieldDeprecated.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/DepthOfFieldDeprecated.cs new file mode 100644 index 0000000..4a119d0 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/DepthOfFieldDeprecated.cs @@ -0,0 +1,427 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [RequireComponent (typeof(Camera))] + [AddComponentMenu ("Image Effects/Camera/Depth of Field (deprecated)") ] + public class DepthOfFieldDeprecated : PostEffectsBase + { + public enum Dof34QualitySetting + { + OnlyBackground = 1, + BackgroundAndForeground = 2, + } + + public enum DofResolution + { + High = 2, + Medium = 3, + Low = 4, + } + + public enum DofBlurriness + { + Low = 1, + High = 2, + VeryHigh = 4, + } + + public enum BokehDestination + { + Background = 0x1, + Foreground = 0x2, + BackgroundAndForeground = 0x3, + } + + static private int SMOOTH_DOWNSAMPLE_PASS = 6; + static private float BOKEH_EXTRA_BLUR = 2.0f; + + public Dof34QualitySetting quality = Dof34QualitySetting.OnlyBackground; + public DofResolution resolution = DofResolution.Low; + public bool simpleTweakMode = true; + + public float focalPoint = 1.0f; + public float smoothness = 0.5f; + + public float focalZDistance = 0.0f; + public float focalZStartCurve = 1.0f; + public float focalZEndCurve = 1.0f; + + private float focalStartCurve = 2.0f; + private float focalEndCurve = 2.0f; + private float focalDistance01 = 0.1f; + + public Transform objectFocus = null; + public float focalSize = 0.0f; + + public DofBlurriness bluriness = DofBlurriness.High; + public float maxBlurSpread = 1.75f; + + public float foregroundBlurExtrude = 1.15f; + + public Shader dofBlurShader; + private Material dofBlurMaterial = null; + + public Shader dofShader; + private Material dofMaterial = null; + + public bool visualize = false; + public BokehDestination bokehDestination = BokehDestination.Background; + + private float widthOverHeight = 1.25f; + private float oneOverBaseSize = 1.0f / 512.0f; + + public bool bokeh = false; + public bool bokehSupport = true; + public Shader bokehShader; + public Texture2D bokehTexture; + public float bokehScale = 2.4f; + public float bokehIntensity = 0.15f; + public float bokehThresholdContrast = 0.1f; + public float bokehThresholdLuminance = 0.55f; + public int bokehDownsample = 1; + private Material bokehMaterial; + + private Camera _camera; + + void CreateMaterials () { + dofBlurMaterial = CheckShaderAndCreateMaterial (dofBlurShader, dofBlurMaterial); + dofMaterial = CheckShaderAndCreateMaterial (dofShader,dofMaterial); + bokehSupport = bokehShader.isSupported; + + if (bokeh && bokehSupport && bokehShader) + bokehMaterial = CheckShaderAndCreateMaterial (bokehShader, bokehMaterial); + } + + + public override bool CheckResources () { + CheckSupport (true); + + dofBlurMaterial = CheckShaderAndCreateMaterial (dofBlurShader, dofBlurMaterial); + dofMaterial = CheckShaderAndCreateMaterial (dofShader,dofMaterial); + bokehSupport = bokehShader.isSupported; + + if (bokeh && bokehSupport && bokehShader) + bokehMaterial = CheckShaderAndCreateMaterial (bokehShader, bokehMaterial); + + if (!isSupported) + ReportAutoDisable (); + return isSupported; + } + + void OnDisable () { + Quads.Cleanup (); + } + + void OnEnable () { + _camera = GetComponent(); + _camera.depthTextureMode |= DepthTextureMode.Depth; + } + + float FocalDistance01 ( float worldDist) { + return _camera.WorldToViewportPoint((worldDist-_camera.nearClipPlane) * _camera.transform.forward + _camera.transform.position).z / (_camera.farClipPlane-_camera.nearClipPlane); + } + + int GetDividerBasedOnQuality () { + int divider = 1; + if (resolution == DofResolution.Medium) + divider = 2; + else if (resolution == DofResolution.Low) + divider = 2; + return divider; + } + + int GetLowResolutionDividerBasedOnQuality ( int baseDivider) { + int lowTexDivider = baseDivider; + if (resolution == DofResolution.High) + lowTexDivider *= 2; + if (resolution == DofResolution.Low) + lowTexDivider *= 2; + return lowTexDivider; + } + + private RenderTexture foregroundTexture = null; + private RenderTexture mediumRezWorkTexture = null; + private RenderTexture finalDefocus = null; + private RenderTexture lowRezWorkTexture = null; + private RenderTexture bokehSource = null; + private RenderTexture bokehSource2 = null; + + void OnRenderImage (RenderTexture source, RenderTexture destination) { + if (CheckResources()==false) { + Graphics.Blit (source, destination); + return; + } + + if (smoothness < 0.1f) + smoothness = 0.1f; + + // update needed focal & rt size parameter + + bokeh = bokeh && bokehSupport; + float bokehBlurAmplifier = bokeh ? BOKEH_EXTRA_BLUR : 1.0f; + + bool blurForeground = quality > Dof34QualitySetting.OnlyBackground; + float focal01Size = focalSize / (_camera.farClipPlane - _camera.nearClipPlane);; + + if (simpleTweakMode) { + focalDistance01 = objectFocus ? (_camera.WorldToViewportPoint (objectFocus.position)).z / (_camera.farClipPlane) : FocalDistance01 (focalPoint); + focalStartCurve = focalDistance01 * smoothness; + focalEndCurve = focalStartCurve; + blurForeground = blurForeground && (focalPoint > (_camera.nearClipPlane + Mathf.Epsilon)); + } + else { + if (objectFocus) { + var vpPoint= _camera.WorldToViewportPoint (objectFocus.position); + vpPoint.z = (vpPoint.z) / (_camera.farClipPlane); + focalDistance01 = vpPoint.z; + } + else + focalDistance01 = FocalDistance01 (focalZDistance); + + focalStartCurve = focalZStartCurve; + focalEndCurve = focalZEndCurve; + blurForeground = blurForeground && (focalPoint > (_camera.nearClipPlane + Mathf.Epsilon)); + } + + widthOverHeight = (1.0f * source.width) / (1.0f * source.height); + oneOverBaseSize = 1.0f / 512.0f; + + dofMaterial.SetFloat ("_ForegroundBlurExtrude", foregroundBlurExtrude); + dofMaterial.SetVector ("_CurveParams", new Vector4 (simpleTweakMode ? 1.0f / focalStartCurve : focalStartCurve, simpleTweakMode ? 1.0f / focalEndCurve : focalEndCurve, focal01Size * 0.5f, focalDistance01)); + dofMaterial.SetVector ("_InvRenderTargetSize", new Vector4 (1.0f / (1.0f * source.width), 1.0f / (1.0f * source.height),0.0f,0.0f)); + + int divider = GetDividerBasedOnQuality (); + int lowTexDivider = GetLowResolutionDividerBasedOnQuality (divider); + + AllocateTextures (blurForeground, source, divider, lowTexDivider); + + // WRITE COC to alpha channel + // source is only being bound to detect y texcoord flip + Graphics.Blit (source, source, dofMaterial, 3); + + // better DOWNSAMPLE (could actually be weighted for higher quality) + Downsample (source, mediumRezWorkTexture); + + // BLUR A LITTLE first, which has two purposes + // 1.) reduce jitter, noise, aliasing + // 2.) produce the little-blur buffer used in composition later + Blur (mediumRezWorkTexture, mediumRezWorkTexture, DofBlurriness.Low, 4, maxBlurSpread); + + if ((bokeh) && ((BokehDestination.Foreground & bokehDestination) != 0)) + { + dofMaterial.SetVector ("_Threshhold", new Vector4(bokehThresholdContrast, bokehThresholdLuminance, 0.95f, 0.0f)); + + // add and mark the parts that should end up as bokeh shapes + Graphics.Blit (mediumRezWorkTexture, bokehSource2, dofMaterial, 11); + + // remove those parts (maybe even a little tittle bittle more) from the regurlarly blurred buffer + //Graphics.Blit (mediumRezWorkTexture, lowRezWorkTexture, dofMaterial, 10); + Graphics.Blit (mediumRezWorkTexture, lowRezWorkTexture);//, dofMaterial, 10); + + // maybe you want to reblur the small blur ... but not really needed. + //Blur (mediumRezWorkTexture, mediumRezWorkTexture, DofBlurriness.Low, 4, maxBlurSpread); + + // bigger BLUR + Blur (lowRezWorkTexture, lowRezWorkTexture, bluriness, 0, maxBlurSpread * bokehBlurAmplifier); + } + else { + // bigger BLUR + Downsample (mediumRezWorkTexture, lowRezWorkTexture); + Blur (lowRezWorkTexture, lowRezWorkTexture, bluriness, 0, maxBlurSpread); + } + + dofBlurMaterial.SetTexture ("_TapLow", lowRezWorkTexture); + dofBlurMaterial.SetTexture ("_TapMedium", mediumRezWorkTexture); + Graphics.Blit (null, finalDefocus, dofBlurMaterial, 3); + + // we are only adding bokeh now if the background is the only part we have to deal with + if ((bokeh) && ((BokehDestination.Foreground & bokehDestination) != 0)) + AddBokeh (bokehSource2, bokehSource, finalDefocus); + + dofMaterial.SetTexture ("_TapLowBackground", finalDefocus); + dofMaterial.SetTexture ("_TapMedium", mediumRezWorkTexture); // needed for debugging/visualization + + // FINAL DEFOCUS (background) + Graphics.Blit (source, blurForeground ? foregroundTexture : destination, dofMaterial, visualize ? 2 : 0); + + // FINAL DEFOCUS (foreground) + if (blurForeground) { + // WRITE COC to alpha channel + Graphics.Blit (foregroundTexture, source, dofMaterial, 5); + + // DOWNSAMPLE (unweighted) + Downsample (source, mediumRezWorkTexture); + + // BLUR A LITTLE first, which has two purposes + // 1.) reduce jitter, noise, aliasing + // 2.) produce the little-blur buffer used in composition later + BlurFg (mediumRezWorkTexture, mediumRezWorkTexture, DofBlurriness.Low, 2, maxBlurSpread); + + if ((bokeh) && ((BokehDestination.Foreground & bokehDestination) != 0)) + { + dofMaterial.SetVector ("_Threshhold", new Vector4(bokehThresholdContrast * 0.5f, bokehThresholdLuminance, 0.0f, 0.0f)); + + // add and mark the parts that should end up as bokeh shapes + Graphics.Blit (mediumRezWorkTexture, bokehSource2, dofMaterial, 11); + + // remove the parts (maybe even a little tittle bittle more) that will end up in bokeh space + //Graphics.Blit (mediumRezWorkTexture, lowRezWorkTexture, dofMaterial, 10); + Graphics.Blit (mediumRezWorkTexture, lowRezWorkTexture);//, dofMaterial, 10); + + // big BLUR + BlurFg (lowRezWorkTexture, lowRezWorkTexture, bluriness, 1, maxBlurSpread * bokehBlurAmplifier); + } + else { + // big BLUR + BlurFg (mediumRezWorkTexture, lowRezWorkTexture, bluriness, 1, maxBlurSpread); + } + + // simple upsample once + Graphics.Blit (lowRezWorkTexture, finalDefocus); + + dofMaterial.SetTexture ("_TapLowForeground", finalDefocus); + Graphics.Blit (source, destination, dofMaterial, visualize ? 1 : 4); + + if ((bokeh) && ((BokehDestination.Foreground & bokehDestination) != 0)) + AddBokeh (bokehSource2, bokehSource, destination); + } + + ReleaseTextures (); + } + + void Blur ( RenderTexture from, RenderTexture to, DofBlurriness iterations, int blurPass, float spread) { + RenderTexture tmp = RenderTexture.GetTemporary (to.width, to.height); + if ((int)iterations > 1) { + BlurHex (from, to, blurPass, spread, tmp); + if ((int)iterations > 2) { + dofBlurMaterial.SetVector ("offsets", new Vector4 (0.0f, spread * oneOverBaseSize, 0.0f, 0.0f)); + Graphics.Blit (to, tmp, dofBlurMaterial, blurPass); + dofBlurMaterial.SetVector ("offsets", new Vector4 (spread / widthOverHeight * oneOverBaseSize, 0.0f, 0.0f, 0.0f)); + Graphics.Blit (tmp, to, dofBlurMaterial, blurPass); + } + } + else { + dofBlurMaterial.SetVector ("offsets", new Vector4 (0.0f, spread * oneOverBaseSize, 0.0f, 0.0f)); + Graphics.Blit (from, tmp, dofBlurMaterial, blurPass); + dofBlurMaterial.SetVector ("offsets", new Vector4 (spread / widthOverHeight * oneOverBaseSize, 0.0f, 0.0f, 0.0f)); + Graphics.Blit (tmp, to, dofBlurMaterial, blurPass); + } + RenderTexture.ReleaseTemporary (tmp); + } + + void BlurFg ( RenderTexture from, RenderTexture to, DofBlurriness iterations, int blurPass, float spread) { + // we want a nice, big coc, hence we need to tap once from this (higher resolution) texture + dofBlurMaterial.SetTexture ("_TapHigh", from); + + RenderTexture tmp = RenderTexture.GetTemporary (to.width, to.height); + if ((int)iterations > 1) { + BlurHex (from, to, blurPass, spread, tmp); + if ((int)iterations > 2) { + dofBlurMaterial.SetVector ("offsets", new Vector4 (0.0f, spread * oneOverBaseSize, 0.0f, 0.0f)); + Graphics.Blit (to, tmp, dofBlurMaterial, blurPass); + dofBlurMaterial.SetVector ("offsets", new Vector4 (spread / widthOverHeight * oneOverBaseSize, 0.0f, 0.0f, 0.0f)); + Graphics.Blit (tmp, to, dofBlurMaterial, blurPass); + } + } + else { + dofBlurMaterial.SetVector ("offsets", new Vector4 (0.0f, spread * oneOverBaseSize, 0.0f, 0.0f)); + Graphics.Blit (from, tmp, dofBlurMaterial, blurPass); + dofBlurMaterial.SetVector ("offsets", new Vector4 (spread / widthOverHeight * oneOverBaseSize, 0.0f, 0.0f, 0.0f)); + Graphics.Blit (tmp, to, dofBlurMaterial, blurPass); + } + RenderTexture.ReleaseTemporary (tmp); + } + + void BlurHex ( RenderTexture from, RenderTexture to, int blurPass, float spread, RenderTexture tmp) { + dofBlurMaterial.SetVector ("offsets", new Vector4 (0.0f, spread * oneOverBaseSize, 0.0f, 0.0f)); + Graphics.Blit (from, tmp, dofBlurMaterial, blurPass); + dofBlurMaterial.SetVector ("offsets", new Vector4 (spread / widthOverHeight * oneOverBaseSize, 0.0f, 0.0f, 0.0f)); + Graphics.Blit (tmp, to, dofBlurMaterial, blurPass); + dofBlurMaterial.SetVector ("offsets", new Vector4 (spread / widthOverHeight * oneOverBaseSize, spread * oneOverBaseSize, 0.0f, 0.0f)); + Graphics.Blit (to, tmp, dofBlurMaterial, blurPass); + dofBlurMaterial.SetVector ("offsets", new Vector4 (spread / widthOverHeight * oneOverBaseSize, -spread * oneOverBaseSize, 0.0f, 0.0f)); + Graphics.Blit (tmp, to, dofBlurMaterial, blurPass); + } + + void Downsample ( RenderTexture from, RenderTexture to) { + dofMaterial.SetVector ("_InvRenderTargetSize", new Vector4 (1.0f / (1.0f * to.width), 1.0f / (1.0f * to.height), 0.0f, 0.0f)); + Graphics.Blit (from, to, dofMaterial, SMOOTH_DOWNSAMPLE_PASS); + } + + void AddBokeh ( RenderTexture bokehInfo, RenderTexture tempTex, RenderTexture finalTarget) { + if (bokehMaterial) { + var meshes = Quads.GetMeshes (tempTex.width, tempTex.height); // quads: exchanging more triangles with less overdraw + + RenderTexture.active = tempTex; + GL.Clear (false, true, new Color (0.0f, 0.0f, 0.0f, 0.0f)); + + GL.PushMatrix (); + GL.LoadIdentity (); + + // point filter mode is important, otherwise we get bokeh shape & size artefacts + bokehInfo.filterMode = FilterMode.Point; + + float arW = (bokehInfo.width * 1.0f) / (bokehInfo.height * 1.0f); + float sc = 2.0f / (1.0f * bokehInfo.width); + sc += bokehScale * maxBlurSpread * BOKEH_EXTRA_BLUR * oneOverBaseSize; + + bokehMaterial.SetTexture ("_Source", bokehInfo); + bokehMaterial.SetTexture ("_MainTex", bokehTexture); + bokehMaterial.SetVector ("_ArScale",new Vector4 (sc, sc * arW, 0.5f, 0.5f * arW)); + bokehMaterial.SetFloat ("_Intensity", bokehIntensity); + bokehMaterial.SetPass (0); + + foreach(Mesh m in meshes) + if (m) Graphics.DrawMeshNow (m, Matrix4x4.identity); + + GL.PopMatrix (); + + Graphics.Blit (tempTex, finalTarget, dofMaterial, 8); + + // important to set back as we sample from this later on + bokehInfo.filterMode = FilterMode.Bilinear; + } + } + + + void ReleaseTextures () { + if (foregroundTexture) RenderTexture.ReleaseTemporary (foregroundTexture); + if (finalDefocus) RenderTexture.ReleaseTemporary (finalDefocus); + if (mediumRezWorkTexture) RenderTexture.ReleaseTemporary (mediumRezWorkTexture); + if (lowRezWorkTexture) RenderTexture.ReleaseTemporary (lowRezWorkTexture); + if (bokehSource) RenderTexture.ReleaseTemporary (bokehSource); + if (bokehSource2) RenderTexture.ReleaseTemporary (bokehSource2); + } + + void AllocateTextures ( bool blurForeground, RenderTexture source, int divider, int lowTexDivider) { + foregroundTexture = null; + if (blurForeground) + foregroundTexture = RenderTexture.GetTemporary (source.width, source.height, 0); + mediumRezWorkTexture = RenderTexture.GetTemporary (source.width / divider, source.height / divider, 0); + finalDefocus = RenderTexture.GetTemporary (source.width / divider, source.height / divider, 0); + lowRezWorkTexture = RenderTexture.GetTemporary (source.width / lowTexDivider, source.height / lowTexDivider, 0); + bokehSource = null; + bokehSource2 = null; + if (bokeh) { + bokehSource = RenderTexture.GetTemporary (source.width / (lowTexDivider * bokehDownsample), source.height / (lowTexDivider * bokehDownsample), 0, RenderTextureFormat.ARGBHalf); + bokehSource2 = RenderTexture.GetTemporary (source.width / (lowTexDivider * bokehDownsample), source.height / (lowTexDivider * bokehDownsample), 0, RenderTextureFormat.ARGBHalf); + bokehSource.filterMode = FilterMode.Bilinear; + bokehSource2.filterMode = FilterMode.Bilinear; + RenderTexture.active = bokehSource2; + GL.Clear (false, true, new Color(0.0f, 0.0f, 0.0f, 0.0f)); + } + + // to make sure: always use bilinear filter setting + + source.filterMode = FilterMode.Bilinear; + finalDefocus.filterMode = FilterMode.Bilinear; + mediumRezWorkTexture.filterMode = FilterMode.Bilinear; + lowRezWorkTexture.filterMode = FilterMode.Bilinear; + if (foregroundTexture) + foregroundTexture.filterMode = FilterMode.Bilinear; + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/DepthOfFieldDeprecated.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/DepthOfFieldDeprecated.cs.meta new file mode 100644 index 0000000..b252a6c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/DepthOfFieldDeprecated.cs.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 83d8db0ec466c14429f58c68c16398a1 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - objectFocus: {instanceID: 0} + - dofBlurShader: {fileID: 4800000, guid: bb4af680337344a4abad65a4e8873c50, type: 3} + - dofShader: {fileID: 4800000, guid: 987fb0677d01f43ce8a9dbf12271e668, type: 3} + - bokehShader: {fileID: 4800000, guid: 57cdacf9b217546aaa18edf39a6151c0, type: 3} + - bokehTexture: {fileID: 2800000, guid: fc00ec05a89da4ff695a4273715cd5ce, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/EdgeDetection.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/EdgeDetection.cs new file mode 100644 index 0000000..ec0ac18 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/EdgeDetection.cs @@ -0,0 +1,89 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [RequireComponent (typeof (Camera))] + [AddComponentMenu ("Image Effects/Edge Detection/Edge Detection")] + public class EdgeDetection : PostEffectsBase + { + public enum EdgeDetectMode + { + TriangleDepthNormals = 0, + RobertsCrossDepthNormals = 1, + SobelDepth = 2, + SobelDepthThin = 3, + TriangleLuminance = 4, + } + + + public EdgeDetectMode mode = EdgeDetectMode.SobelDepthThin; + public float sensitivityDepth = 1.0f; + public float sensitivityNormals = 1.0f; + public float lumThreshold = 0.2f; + public float edgeExp = 1.0f; + public float sampleDist = 1.0f; + public float edgesOnly = 0.0f; + public Color edgesOnlyBgColor = Color.white; + + public Shader edgeDetectShader; + private Material edgeDetectMaterial = null; + private EdgeDetectMode oldMode = EdgeDetectMode.SobelDepthThin; + + + public override bool CheckResources () + { + CheckSupport (true); + + edgeDetectMaterial = CheckShaderAndCreateMaterial (edgeDetectShader,edgeDetectMaterial); + if (mode != oldMode) + SetCameraFlag (); + + oldMode = mode; + + if (!isSupported) + ReportAutoDisable (); + return isSupported; + } + + + new void Start () + { + oldMode = mode; + } + + void SetCameraFlag () + { + if (mode == EdgeDetectMode.SobelDepth || mode == EdgeDetectMode.SobelDepthThin) + GetComponent().depthTextureMode |= DepthTextureMode.Depth; + else if (mode == EdgeDetectMode.TriangleDepthNormals || mode == EdgeDetectMode.RobertsCrossDepthNormals) + GetComponent().depthTextureMode |= DepthTextureMode.DepthNormals; + } + + void OnEnable () + { + SetCameraFlag(); + } + + [ImageEffectOpaque] + void OnRenderImage (RenderTexture source, RenderTexture destination) + { + if (CheckResources () == false) + { + Graphics.Blit (source, destination); + return; + } + + Vector2 sensitivity = new Vector2 (sensitivityDepth, sensitivityNormals); + edgeDetectMaterial.SetVector ("_Sensitivity", new Vector4 (sensitivity.x, sensitivity.y, 1.0f, sensitivity.y)); + edgeDetectMaterial.SetFloat ("_BgFade", edgesOnly); + edgeDetectMaterial.SetFloat ("_SampleDistance", sampleDist); + edgeDetectMaterial.SetVector ("_BgColor", edgesOnlyBgColor); + edgeDetectMaterial.SetFloat ("_Exponent", edgeExp); + edgeDetectMaterial.SetFloat ("_Threshold", lumThreshold); + + Graphics.Blit (source, destination, edgeDetectMaterial, (int) mode); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/EdgeDetection.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/EdgeDetection.cs.meta new file mode 100644 index 0000000..22ad6e8 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/EdgeDetection.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 730475ee64f9a894bbac0d9e6f22e813 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - edgeDetectShader: {fileID: 4800000, guid: 0d1644bdf064147baa97f235fc5b4903, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Fisheye.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Fisheye.cs new file mode 100644 index 0000000..b95b480 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Fisheye.cs @@ -0,0 +1,46 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [RequireComponent (typeof(Camera))] + [AddComponentMenu ("Image Effects/Displacement/Fisheye")] + public class Fisheye : PostEffectsBase + { + [Range(0.0f, 1.5f)] + public float strengthX = 0.05f; + [Range(0.0f, 1.5f)] + public float strengthY = 0.05f; + + public Shader fishEyeShader = null; + private Material fisheyeMaterial = null; + + + public override bool CheckResources () + { + CheckSupport (false); + fisheyeMaterial = CheckShaderAndCreateMaterial(fishEyeShader,fisheyeMaterial); + + if (!isSupported) + ReportAutoDisable (); + return isSupported; + } + + void OnRenderImage (RenderTexture source, RenderTexture destination) + { + if (CheckResources()==false) + { + Graphics.Blit (source, destination); + return; + } + + float oneOverBaseSize = 80.0f / 512.0f; // to keep values more like in the old version of fisheye + + float ar = (source.width * 1.0f) / (source.height * 1.0f); + + fisheyeMaterial.SetVector ("intensity", new Vector4 (strengthX * ar * oneOverBaseSize, strengthY * oneOverBaseSize, strengthX * ar * oneOverBaseSize, strengthY * oneOverBaseSize)); + Graphics.Blit (source, destination, fisheyeMaterial); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Fisheye.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Fisheye.cs.meta new file mode 100644 index 0000000..deb7976 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Fisheye.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 4739c22ef73ad62488fe344c8fe9addd +MonoImporter: + serializedVersion: 2 + defaultReferences: + - fishEyeShader: {fileID: 4800000, guid: 874ceab4425f64bccb1d14032f4452b1, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/GlobalFog.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/GlobalFog.cs new file mode 100644 index 0000000..cc0f019 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/GlobalFog.cs @@ -0,0 +1,150 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [RequireComponent (typeof(Camera))] + [AddComponentMenu ("Image Effects/Rendering/Global Fog")] + class GlobalFog : PostEffectsBase + { + [Tooltip("Apply distance-based fog?")] + public bool distanceFog = true; + [Tooltip("Exclude far plane pixels from distance-based fog? (Skybox or clear color)")] + public bool excludeFarPixels = true; + [Tooltip("Distance fog is based on radial distance from camera when checked")] + public bool useRadialDistance = false; + [Tooltip("Apply height-based fog?")] + public bool heightFog = true; + [Tooltip("Fog top Y coordinate")] + public float height = 1.0f; + [Range(0.001f,10.0f)] + public float heightDensity = 2.0f; + [Tooltip("Push fog away from the camera by this amount")] + public float startDistance = 0.0f; + + public Shader fogShader = null; + private Material fogMaterial = null; + + + public override bool CheckResources () + { + CheckSupport (true); + + fogMaterial = CheckShaderAndCreateMaterial (fogShader, fogMaterial); + + if (!isSupported) + ReportAutoDisable (); + return isSupported; + } + + [ImageEffectOpaque] + void OnRenderImage (RenderTexture source, RenderTexture destination) + { + if (CheckResources()==false || (!distanceFog && !heightFog)) + { + Graphics.Blit (source, destination); + return; + } + + Camera cam = GetComponent(); + Transform camtr = cam.transform; + float camNear = cam.nearClipPlane; + float camFar = cam.farClipPlane; + float camFov = cam.fieldOfView; + float camAspect = cam.aspect; + + Matrix4x4 frustumCorners = Matrix4x4.identity; + + float fovWHalf = camFov * 0.5f; + + Vector3 toRight = camtr.right * camNear * Mathf.Tan (fovWHalf * Mathf.Deg2Rad) * camAspect; + Vector3 toTop = camtr.up * camNear * Mathf.Tan (fovWHalf * Mathf.Deg2Rad); + + Vector3 topLeft = (camtr.forward * camNear - toRight + toTop); + float camScale = topLeft.magnitude * camFar/camNear; + + topLeft.Normalize(); + topLeft *= camScale; + + Vector3 topRight = (camtr.forward * camNear + toRight + toTop); + topRight.Normalize(); + topRight *= camScale; + + Vector3 bottomRight = (camtr.forward * camNear + toRight - toTop); + bottomRight.Normalize(); + bottomRight *= camScale; + + Vector3 bottomLeft = (camtr.forward * camNear - toRight - toTop); + bottomLeft.Normalize(); + bottomLeft *= camScale; + + frustumCorners.SetRow (0, topLeft); + frustumCorners.SetRow (1, topRight); + frustumCorners.SetRow (2, bottomRight); + frustumCorners.SetRow (3, bottomLeft); + + var camPos= camtr.position; + float FdotC = camPos.y-height; + float paramK = (FdotC <= 0.0f ? 1.0f : 0.0f); + float excludeDepth = (excludeFarPixels ? 1.0f : 2.0f); + fogMaterial.SetMatrix ("_FrustumCornersWS", frustumCorners); + fogMaterial.SetVector ("_CameraWS", camPos); + fogMaterial.SetVector ("_HeightParams", new Vector4 (height, FdotC, paramK, heightDensity*0.5f)); + fogMaterial.SetVector ("_DistanceParams", new Vector4 (-Mathf.Max(startDistance,0.0f), excludeDepth, 0, 0)); + + var sceneMode= RenderSettings.fogMode; + var sceneDensity= RenderSettings.fogDensity; + var sceneStart= RenderSettings.fogStartDistance; + var sceneEnd= RenderSettings.fogEndDistance; + Vector4 sceneParams; + bool linear = (sceneMode == FogMode.Linear); + float diff = linear ? sceneEnd - sceneStart : 0.0f; + float invDiff = Mathf.Abs(diff) > 0.0001f ? 1.0f / diff : 0.0f; + sceneParams.x = sceneDensity * 1.2011224087f; // density / sqrt(ln(2)), used by Exp2 fog mode + sceneParams.y = sceneDensity * 1.4426950408f; // density / ln(2), used by Exp fog mode + sceneParams.z = linear ? -invDiff : 0.0f; + sceneParams.w = linear ? sceneEnd * invDiff : 0.0f; + fogMaterial.SetVector ("_SceneFogParams", sceneParams); + fogMaterial.SetVector ("_SceneFogMode", new Vector4((int)sceneMode, useRadialDistance ? 1 : 0, 0, 0)); + + int pass = 0; + if (distanceFog && heightFog) + pass = 0; // distance + height + else if (distanceFog) + pass = 1; // distance only + else + pass = 2; // height only + CustomGraphicsBlit (source, destination, fogMaterial, pass); + } + + static void CustomGraphicsBlit (RenderTexture source, RenderTexture dest, Material fxMaterial, int passNr) + { + RenderTexture.active = dest; + + fxMaterial.SetTexture ("_MainTex", source); + + GL.PushMatrix (); + GL.LoadOrtho (); + + fxMaterial.SetPass (passNr); + + GL.Begin (GL.QUADS); + + GL.MultiTexCoord2 (0, 0.0f, 0.0f); + GL.Vertex3 (0.0f, 0.0f, 3.0f); // BL + + GL.MultiTexCoord2 (0, 1.0f, 0.0f); + GL.Vertex3 (1.0f, 0.0f, 2.0f); // BR + + GL.MultiTexCoord2 (0, 1.0f, 1.0f); + GL.Vertex3 (1.0f, 1.0f, 1.0f); // TR + + GL.MultiTexCoord2 (0, 0.0f, 1.0f); + GL.Vertex3 (0.0f, 1.0f, 0.0f); // TL + + GL.End (); + GL.PopMatrix (); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/GlobalFog.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/GlobalFog.cs.meta new file mode 100644 index 0000000..fa21d25 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/GlobalFog.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 76b5ec6153a1d55438228df10fe66844 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - fogShader: {fileID: 4800000, guid: 70d8568987ac0499f952b54c7c13e265, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Grayscale.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Grayscale.cs new file mode 100644 index 0000000..0208fcb --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Grayscale.cs @@ -0,0 +1,21 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [AddComponentMenu("Image Effects/Color Adjustments/Grayscale")] + public class Grayscale : ImageEffectBase { + public Texture textureRamp; + + [Range(-1.0f,1.0f)] + public float rampOffset; + + // Called by camera to apply image effect + void OnRenderImage (RenderTexture source, RenderTexture destination) { + material.SetTexture("_RampTex", textureRamp); + material.SetFloat("_RampOffset", rampOffset); + Graphics.Blit (source, destination, material); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Grayscale.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Grayscale.cs.meta new file mode 100644 index 0000000..b23db62 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Grayscale.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 243a781cad112c75d0008dfa8d76c639 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - shader: {fileID: 4800000, guid: daf9781cad112c75d0008dfa8d76c639, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ImageEffectBase.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ImageEffectBase.cs new file mode 100644 index 0000000..f206303 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ImageEffectBase.cs @@ -0,0 +1,55 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [RequireComponent(typeof (Camera))] + [AddComponentMenu("")] + public class ImageEffectBase : MonoBehaviour + { + /// Provides a shader property that is set in the inspector + /// and a material instantiated from the shader + public Shader shader; + + private Material m_Material; + + + protected virtual void Start() + { + // Disable if we don't support image effects + if (!SystemInfo.supportsImageEffects) + { + enabled = false; + return; + } + + // Disable the image effect if the shader can't + // run on the users graphics card + if (!shader || !shader.isSupported) + enabled = false; + } + + + protected Material material + { + get + { + if (m_Material == null) + { + m_Material = new Material(shader); + m_Material.hideFlags = HideFlags.HideAndDontSave; + } + return m_Material; + } + } + + + protected virtual void OnDisable() + { + if (m_Material) + { + DestroyImmediate(m_Material); + } + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ImageEffectBase.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ImageEffectBase.cs.meta new file mode 100644 index 0000000..f3c0025 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ImageEffectBase.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f6469eb0ad1119d6d00011d98d76c639 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ImageEffects.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ImageEffects.cs new file mode 100644 index 0000000..aa056e1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ImageEffects.cs @@ -0,0 +1,42 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + /// A Utility class for performing various image based rendering tasks. + [AddComponentMenu("")] + public class ImageEffects + { + public static void RenderDistortion(Material material, RenderTexture source, RenderTexture destination, float angle, Vector2 center, Vector2 radius) + { + bool invertY = source.texelSize.y < 0.0f; + if (invertY) + { + center.y = 1.0f - center.y; + angle = -angle; + } + + Matrix4x4 rotationMatrix = Matrix4x4.TRS(Vector3.zero, Quaternion.Euler(0, 0, angle), Vector3.one); + + material.SetMatrix("_RotationMatrix", rotationMatrix); + material.SetVector("_CenterRadius", new Vector4(center.x, center.y, radius.x, radius.y)); + material.SetFloat("_Angle", angle*Mathf.Deg2Rad); + + Graphics.Blit(source, destination, material); + } + + + [Obsolete("Use Graphics.Blit(source,dest) instead")] + public static void Blit(RenderTexture source, RenderTexture dest) + { + Graphics.Blit(source, dest); + } + + + [Obsolete("Use Graphics.Blit(source, destination, material) instead")] + public static void BlitWithMaterial(Material material, RenderTexture source, RenderTexture dest) + { + Graphics.Blit(source, dest, material); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ImageEffects.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ImageEffects.cs.meta new file mode 100644 index 0000000..9d82a11 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ImageEffects.cs.meta @@ -0,0 +1,17 @@ +fileFormatVersion: 2 +guid: 89a037199d11087f1100e2b844295342 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - blitCopyShader: {fileID: 4800000, guid: 3338b5ea2f3cb594698fae65cf060346, type: 3} + - blitMultiplyShader: {fileID: 4800000, guid: 7034c801b78acab448cdcf845f7c352d, + type: 3} + - blitMultiply2XShader: {fileID: 4800000, guid: cde82987e0a884c4788c65f7b54390e8, + type: 3} + - blitAddShader: {fileID: 4800000, guid: c7515f214a63bdb42b6ae6335a00a8a4, type: 3} + - blitAddSmoothShader: {fileID: 4800000, guid: 7741a77a7c455d0418bc429bd508dc87, + type: 3} + - blitBlendShader: {fileID: 4800000, guid: f1cf7e9c98754c4429ff0f7cc1d9dd7b, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/MotionBlur.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/MotionBlur.cs new file mode 100644 index 0000000..c8d8778 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/MotionBlur.cs @@ -0,0 +1,76 @@ +using System; +using UnityEngine; + +// This class implements simple ghosting type Motion Blur. +// If Extra Blur is selected, the scene will allways be a little blurred, +// as it is scaled to a smaller resolution. +// The effect works by accumulating the previous frames in an accumulation +// texture. +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [AddComponentMenu("Image Effects/Blur/Motion Blur (Color Accumulation)")] + [RequireComponent(typeof(Camera))] + public class MotionBlur : ImageEffectBase + { + [Range(0.0f, 0.92f)] + public float blurAmount = 0.8f; + public bool extraBlur = false; + + private RenderTexture accumTexture; + + override protected void Start() + { + if (!SystemInfo.supportsRenderTextures) + { + enabled = false; + return; + } + base.Start(); + } + + override protected void OnDisable() + { + base.OnDisable(); + DestroyImmediate(accumTexture); + } + + // Called by camera to apply image effect + void OnRenderImage (RenderTexture source, RenderTexture destination) + { + // Create the accumulation texture + if (accumTexture == null || accumTexture.width != source.width || accumTexture.height != source.height) + { + DestroyImmediate(accumTexture); + accumTexture = new RenderTexture(source.width, source.height, 0); + accumTexture.hideFlags = HideFlags.HideAndDontSave; + Graphics.Blit( source, accumTexture ); + } + + // If Extra Blur is selected, downscale the texture to 4x4 smaller resolution. + if (extraBlur) + { + RenderTexture blurbuffer = RenderTexture.GetTemporary(source.width/4, source.height/4, 0); + accumTexture.MarkRestoreExpected(); + Graphics.Blit(accumTexture, blurbuffer); + Graphics.Blit(blurbuffer,accumTexture); + RenderTexture.ReleaseTemporary(blurbuffer); + } + + // Clamp the motion blur variable, so it can never leave permanent trails in the image + blurAmount = Mathf.Clamp( blurAmount, 0.0f, 0.92f ); + + // Setup the texture and floating point values in the shader + material.SetTexture("_MainTex", accumTexture); + material.SetFloat("_AccumOrig", 1.0F-blurAmount); + + // We are accumulating motion over frames without clear/discard + // by design, so silence any performance warnings from Unity + accumTexture.MarkRestoreExpected(); + + // Render the image using the motion blur shader + Graphics.Blit (source, accumTexture, material); + Graphics.Blit (accumTexture, destination); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/MotionBlur.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/MotionBlur.cs.meta new file mode 100644 index 0000000..5fe9ed8 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/MotionBlur.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 478a2083ad114a07d000fbfb8d76c639 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - shader: {fileID: 4800000, guid: e9ba2083ad114a07d000fbfb8d76c639, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/NoiseAndGrain.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/NoiseAndGrain.cs new file mode 100644 index 0000000..c9c4a18 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/NoiseAndGrain.cs @@ -0,0 +1,181 @@ +using System; +using UnityEngine; +using Random = UnityEngine.Random; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [RequireComponent (typeof(Camera))] + [AddComponentMenu ("Image Effects/Noise/Noise And Grain (Filmic)")] + public class NoiseAndGrain : PostEffectsBase + { + + public float intensityMultiplier = 0.25f; + + public float generalIntensity = 0.5f; + public float blackIntensity = 1.0f; + public float whiteIntensity = 1.0f; + public float midGrey = 0.2f; + + public bool dx11Grain = false; + public float softness = 0.0f; + public bool monochrome = false; + + public Vector3 intensities = new Vector3(1.0f, 1.0f, 1.0f); + public Vector3 tiling = new Vector3(64.0f, 64.0f, 64.0f); + public float monochromeTiling = 64.0f; + + public FilterMode filterMode = FilterMode.Bilinear; + + public Texture2D noiseTexture; + + public Shader noiseShader; + private Material noiseMaterial = null; + + public Shader dx11NoiseShader; + private Material dx11NoiseMaterial = null; + + private static float TILE_AMOUNT = 64.0f; + + + public override bool CheckResources () + { + CheckSupport (false); + + noiseMaterial = CheckShaderAndCreateMaterial (noiseShader, noiseMaterial); + + if (dx11Grain && supportDX11) + { +#if UNITY_EDITOR + dx11NoiseShader = Shader.Find("Hidden/NoiseAndGrainDX11"); +#endif + dx11NoiseMaterial = CheckShaderAndCreateMaterial (dx11NoiseShader, dx11NoiseMaterial); + } + + if (!isSupported) + ReportAutoDisable (); + return isSupported; + } + + void OnRenderImage (RenderTexture source, RenderTexture destination) + { + if (CheckResources()==false || (null==noiseTexture)) + { + Graphics.Blit (source, destination); + if (null==noiseTexture) { + Debug.LogWarning("Noise & Grain effect failing as noise texture is not assigned. please assign.", transform); + } + return; + } + + softness = Mathf.Clamp(softness, 0.0f, 0.99f); + + if (dx11Grain && supportDX11) + { + // We have a fancy, procedural noise pattern in this version, so no texture needed + + dx11NoiseMaterial.SetFloat("_DX11NoiseTime", Time.frameCount); + dx11NoiseMaterial.SetTexture ("_NoiseTex", noiseTexture); + dx11NoiseMaterial.SetVector ("_NoisePerChannel", monochrome ? Vector3.one : intensities); + dx11NoiseMaterial.SetVector ("_MidGrey", new Vector3(midGrey, 1.0f/(1.0f-midGrey), -1.0f/midGrey)); + dx11NoiseMaterial.SetVector ("_NoiseAmount", new Vector3(generalIntensity, blackIntensity, whiteIntensity) * intensityMultiplier); + + if (softness > Mathf.Epsilon) + { + RenderTexture rt = RenderTexture.GetTemporary((int) (source.width * (1.0f-softness)), (int) (source.height * (1.0f-softness))); + DrawNoiseQuadGrid (source, rt, dx11NoiseMaterial, noiseTexture, monochrome ? 3 : 2); + dx11NoiseMaterial.SetTexture("_NoiseTex", rt); + Graphics.Blit(source, destination, dx11NoiseMaterial, 4); + RenderTexture.ReleaseTemporary(rt); + } + else + DrawNoiseQuadGrid (source, destination, dx11NoiseMaterial, noiseTexture, (monochrome ? 1 : 0)); + } + else + { + // normal noise (DX9 style) + + if (noiseTexture) { + noiseTexture.wrapMode = TextureWrapMode.Repeat; + noiseTexture.filterMode = filterMode; + } + + noiseMaterial.SetTexture ("_NoiseTex", noiseTexture); + noiseMaterial.SetVector ("_NoisePerChannel", monochrome ? Vector3.one : intensities); + noiseMaterial.SetVector ("_NoiseTilingPerChannel", monochrome ? Vector3.one * monochromeTiling : tiling); + noiseMaterial.SetVector ("_MidGrey", new Vector3(midGrey, 1.0f/(1.0f-midGrey), -1.0f/midGrey)); + noiseMaterial.SetVector ("_NoiseAmount", new Vector3(generalIntensity, blackIntensity, whiteIntensity) * intensityMultiplier); + + if (softness > Mathf.Epsilon) + { + RenderTexture rt2 = RenderTexture.GetTemporary((int) (source.width * (1.0f-softness)), (int) (source.height * (1.0f-softness))); + DrawNoiseQuadGrid (source, rt2, noiseMaterial, noiseTexture, 2); + noiseMaterial.SetTexture("_NoiseTex", rt2); + Graphics.Blit(source, destination, noiseMaterial, 1); + RenderTexture.ReleaseTemporary(rt2); + } + else + DrawNoiseQuadGrid (source, destination, noiseMaterial, noiseTexture, 0); + } + } + + static void DrawNoiseQuadGrid (RenderTexture source, RenderTexture dest, Material fxMaterial, Texture2D noise, int passNr) + { + RenderTexture.active = dest; + + float noiseSize = (noise.width * 1.0f); + float subDs = (1.0f * source.width) / TILE_AMOUNT; + + fxMaterial.SetTexture ("_MainTex", source); + + GL.PushMatrix (); + GL.LoadOrtho (); + + float aspectCorrection = (1.0f * source.width) / (1.0f * source.height); + float stepSizeX = 1.0f / subDs; + float stepSizeY = stepSizeX * aspectCorrection; + float texTile = noiseSize / (noise.width * 1.0f); + + fxMaterial.SetPass (passNr); + + GL.Begin (GL.QUADS); + + for (float x1 = 0.0f; x1 < 1.0f; x1 += stepSizeX) + { + for (float y1 = 0.0f; y1 < 1.0f; y1 += stepSizeY) + { + float tcXStart = Random.Range (0.0f, 1.0f); + float tcYStart = Random.Range (0.0f, 1.0f); + + //Vector3 v3 = Random.insideUnitSphere; + //Color c = new Color(v3.x, v3.y, v3.z); + + tcXStart = Mathf.Floor(tcXStart*noiseSize) / noiseSize; + tcYStart = Mathf.Floor(tcYStart*noiseSize) / noiseSize; + + float texTileMod = 1.0f / noiseSize; + + GL.MultiTexCoord2 (0, tcXStart, tcYStart); + GL.MultiTexCoord2 (1, 0.0f, 0.0f); + //GL.Color( c ); + GL.Vertex3 (x1, y1, 0.1f); + GL.MultiTexCoord2 (0, tcXStart + texTile * texTileMod, tcYStart); + GL.MultiTexCoord2 (1, 1.0f, 0.0f); + //GL.Color( c ); + GL.Vertex3 (x1 + stepSizeX, y1, 0.1f); + GL.MultiTexCoord2 (0, tcXStart + texTile * texTileMod, tcYStart + texTile * texTileMod); + GL.MultiTexCoord2 (1, 1.0f, 1.0f); + //GL.Color( c ); + GL.Vertex3 (x1 + stepSizeX, y1 + stepSizeY, 0.1f); + GL.MultiTexCoord2 (0, tcXStart, tcYStart + texTile * texTileMod); + GL.MultiTexCoord2 (1, 0.0f, 1.0f); + //GL.Color( c ); + GL.Vertex3 (x1, y1 + stepSizeY, 0.1f); + } + } + + GL.End (); + GL.PopMatrix (); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/NoiseAndGrain.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/NoiseAndGrain.cs.meta new file mode 100644 index 0000000..6d740fc --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/NoiseAndGrain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9191284b058eef549b7108b5f04e1117 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - noiseTexture: {fileID: 2800000, guid: 7a632f967e8ad42f5bd275898151ab6a, type: 3} + - noiseShader: {fileID: 4800000, guid: b0249d8c935344451aa4de6db76f0688, type: 3} + - dx11NoiseShader: {fileID: 4800000, guid: 8b30686bb4322ab42ad5eb50a0210b58, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/NoiseAndScratches.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/NoiseAndScratches.cs new file mode 100644 index 0000000..bc66e95 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/NoiseAndScratches.cs @@ -0,0 +1,142 @@ +using System; +using UnityEngine; +using Random = UnityEngine.Random; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [RequireComponent (typeof(Camera))] + [AddComponentMenu("Image Effects/Noise/Noise and Scratches")] + public class NoiseAndScratches : MonoBehaviour + { + /// Monochrome noise just adds grain. Non-monochrome noise + /// more resembles VCR as it adds noise in YUV color space, + /// thus introducing magenta/green colors. + public bool monochrome = true; + private bool rgbFallback = false; + + // Noise grain takes random intensity from Min to Max. + [Range(0.0f,5.0f)] + public float grainIntensityMin = 0.1f; + [Range(0.0f, 5.0f)] + public float grainIntensityMax = 0.2f; + + /// The size of the noise grains (1 = one pixel). + [Range(0.1f, 50.0f)] + public float grainSize = 2.0f; + + // Scratches take random intensity from Min to Max. + [Range(0.0f, 5.0f)] + public float scratchIntensityMin = 0.05f; + [Range(0.0f, 5.0f)] + public float scratchIntensityMax = 0.25f; + + /// Scratches jump to another locations at this times per second. + [Range(1.0f, 30.0f)] + public float scratchFPS = 10.0f; + /// While scratches are in the same location, they jitter a bit. + [Range(0.0f, 1.0f)] + public float scratchJitter = 0.01f; + + public Texture grainTexture; + public Texture scratchTexture; + public Shader shaderRGB; + public Shader shaderYUV; + private Material m_MaterialRGB; + private Material m_MaterialYUV; + + private float scratchTimeLeft = 0.0f; + private float scratchX, scratchY; + + protected void Start () + { + // Disable if we don't support image effects + if (!SystemInfo.supportsImageEffects) { + enabled = false; + return; + } + + if ( shaderRGB == null || shaderYUV == null ) + { + Debug.Log( "Noise shaders are not set up! Disabling noise effect." ); + enabled = false; + } + else + { + if ( !shaderRGB.isSupported ) // disable effect if RGB shader is not supported + enabled = false; + else if ( !shaderYUV.isSupported ) // fallback to RGB if YUV is not supported + rgbFallback = true; + } + } + + protected Material material { + get { + if ( m_MaterialRGB == null ) { + m_MaterialRGB = new Material( shaderRGB ); + m_MaterialRGB.hideFlags = HideFlags.HideAndDontSave; + } + if ( m_MaterialYUV == null && !rgbFallback ) { + m_MaterialYUV = new Material( shaderYUV ); + m_MaterialYUV.hideFlags = HideFlags.HideAndDontSave; + } + return (!rgbFallback && !monochrome) ? m_MaterialYUV : m_MaterialRGB; + } + } + + protected void OnDisable() { + if ( m_MaterialRGB ) + DestroyImmediate( m_MaterialRGB ); + if ( m_MaterialYUV ) + DestroyImmediate( m_MaterialYUV ); + } + + private void SanitizeParameters() + { + grainIntensityMin = Mathf.Clamp( grainIntensityMin, 0.0f, 5.0f ); + grainIntensityMax = Mathf.Clamp( grainIntensityMax, 0.0f, 5.0f ); + scratchIntensityMin = Mathf.Clamp( scratchIntensityMin, 0.0f, 5.0f ); + scratchIntensityMax = Mathf.Clamp( scratchIntensityMax, 0.0f, 5.0f ); + scratchFPS = Mathf.Clamp( scratchFPS, 1, 30 ); + scratchJitter = Mathf.Clamp( scratchJitter, 0.0f, 1.0f ); + grainSize = Mathf.Clamp( grainSize, 0.1f, 50.0f ); + } + + // Called by the camera to apply the image effect + void OnRenderImage (RenderTexture source, RenderTexture destination) + { + SanitizeParameters(); + + if ( scratchTimeLeft <= 0.0f ) + { + scratchTimeLeft = Random.value * 2 / scratchFPS; // we have sanitized it earlier, won't be zero + scratchX = Random.value; + scratchY = Random.value; + } + scratchTimeLeft -= Time.deltaTime; + + Material mat = material; + + mat.SetTexture("_GrainTex", grainTexture); + mat.SetTexture("_ScratchTex", scratchTexture); + float grainScale = 1.0f / grainSize; // we have sanitized it earlier, won't be zero + mat.SetVector("_GrainOffsetScale", new Vector4( + Random.value, + Random.value, + (float)Screen.width / (float)grainTexture.width * grainScale, + (float)Screen.height / (float)grainTexture.height * grainScale + )); + mat.SetVector("_ScratchOffsetScale", new Vector4( + scratchX + Random.value*scratchJitter, + scratchY + Random.value*scratchJitter, + (float)Screen.width / (float) scratchTexture.width, + (float)Screen.height / (float) scratchTexture.height + )); + mat.SetVector("_Intensity", new Vector4( + Random.Range(grainIntensityMin, grainIntensityMax), + Random.Range(scratchIntensityMin, scratchIntensityMax), + 0, 0 )); + Graphics.Blit (source, destination, mat); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/NoiseAndScratches.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/NoiseAndScratches.cs.meta new file mode 100644 index 0000000..6d5b821 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/NoiseAndScratches.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a88a26a276b4e47619ce2c5adad33fab +MonoImporter: + serializedVersion: 2 + defaultReferences: + - grainTexture: {fileID: 2800000, guid: ffa9c02760c2b4e8eb9814ec06c4b05b, type: 3} + - scratchTexture: {fileID: 2800000, guid: 6205c27cc031f4e66b8ea90d1bfaa158, type: 3} + - shaderRGB: {fileID: 4800000, guid: 5d7f4c401ae8946bcb0d6ff68a9e7466, type: 3} + - shaderYUV: {fileID: 4800000, guid: 0e447868506ba49f0a73235b8a8b647a, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/PostEffectsBase.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/PostEffectsBase.cs new file mode 100644 index 0000000..371b2c5 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/PostEffectsBase.cs @@ -0,0 +1,243 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [RequireComponent (typeof(Camera))] + public class PostEffectsBase : MonoBehaviour + { + protected bool supportHDRTextures = true; + protected bool supportDX11 = false; + protected bool isSupported = true; + + protected Material CheckShaderAndCreateMaterial ( Shader s, Material m2Create) + { + if (!s) + { + Debug.Log("Missing shader in " + ToString ()); + enabled = false; + return null; + } + + if (s.isSupported && m2Create && m2Create.shader == s) + return m2Create; + + if (!s.isSupported) + { + NotSupported (); + Debug.Log("The shader " + s.ToString() + " on effect "+ToString()+" is not supported on this platform!"); + return null; + } + else + { + m2Create = new Material (s); + m2Create.hideFlags = HideFlags.DontSave; + if (m2Create) + return m2Create; + else return null; + } + } + + + protected Material CreateMaterial (Shader s, Material m2Create) + { + if (!s) + { + Debug.Log ("Missing shader in " + ToString ()); + return null; + } + + if (m2Create && (m2Create.shader == s) && (s.isSupported)) + return m2Create; + + if (!s.isSupported) + { + return null; + } + else + { + m2Create = new Material (s); + m2Create.hideFlags = HideFlags.DontSave; + if (m2Create) + return m2Create; + else return null; + } + } + + void OnEnable () + { + isSupported = true; + } + + protected bool CheckSupport () + { + return CheckSupport (false); + } + + + public virtual bool CheckResources () + { + Debug.LogWarning ("CheckResources () for " + ToString() + " should be overwritten."); + return isSupported; + } + + + protected void Start () + { + CheckResources (); + } + + protected bool CheckSupport (bool needDepth) + { + isSupported = true; + supportHDRTextures = SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.ARGBHalf); + supportDX11 = SystemInfo.graphicsShaderLevel >= 50 && SystemInfo.supportsComputeShaders; + + if (!SystemInfo.supportsImageEffects || !SystemInfo.supportsRenderTextures) + { + NotSupported (); + return false; + } + + if (needDepth && !SystemInfo.SupportsRenderTextureFormat (RenderTextureFormat.Depth)) + { + NotSupported (); + return false; + } + + if (needDepth) + GetComponent().depthTextureMode |= DepthTextureMode.Depth; + + return true; + } + + protected bool CheckSupport (bool needDepth, bool needHdr) + { + if (!CheckSupport(needDepth)) + return false; + + if (needHdr && !supportHDRTextures) + { + NotSupported (); + return false; + } + + return true; + } + + + public bool Dx11Support () + { + return supportDX11; + } + + + protected void ReportAutoDisable () + { + Debug.LogWarning ("The image effect " + ToString() + " has been disabled as it's not supported on the current platform."); + } + + // deprecated but needed for old effects to survive upgrading + bool CheckShader (Shader s) + { + Debug.Log("The shader " + s.ToString () + " on effect "+ ToString () + " is not part of the Unity 3.2+ effects suite anymore. For best performance and quality, please ensure you are using the latest Standard Assets Image Effects (Pro only) package."); + if (!s.isSupported) + { + NotSupported (); + return false; + } + else + { + return false; + } + } + + + protected void NotSupported () + { + enabled = false; + isSupported = false; + return; + } + + + protected void DrawBorder (RenderTexture dest, Material material) + { + float x1; + float x2; + float y1; + float y2; + + RenderTexture.active = dest; + bool invertY = true; // source.texelSize.y < 0.0ff; + // Set up the simple Matrix + GL.PushMatrix(); + GL.LoadOrtho(); + + for (int i = 0; i < material.passCount; i++) + { + material.SetPass(i); + + float y1_; float y2_; + if (invertY) + { + y1_ = 1.0f; y2_ = 0.0f; + } + else + { + y1_ = 0.0f; y2_ = 1.0f; + } + + // left + x1 = 0.0f; + x2 = 0.0f + 1.0f/(dest.width*1.0f); + y1 = 0.0f; + y2 = 1.0f; + GL.Begin(GL.QUADS); + + GL.TexCoord2(0.0f, y1_); GL.Vertex3(x1, y1, 0.1f); + GL.TexCoord2(1.0f, y1_); GL.Vertex3(x2, y1, 0.1f); + GL.TexCoord2(1.0f, y2_); GL.Vertex3(x2, y2, 0.1f); + GL.TexCoord2(0.0f, y2_); GL.Vertex3(x1, y2, 0.1f); + + // right + x1 = 1.0f - 1.0f/(dest.width*1.0f); + x2 = 1.0f; + y1 = 0.0f; + y2 = 1.0f; + + GL.TexCoord2(0.0f, y1_); GL.Vertex3(x1, y1, 0.1f); + GL.TexCoord2(1.0f, y1_); GL.Vertex3(x2, y1, 0.1f); + GL.TexCoord2(1.0f, y2_); GL.Vertex3(x2, y2, 0.1f); + GL.TexCoord2(0.0f, y2_); GL.Vertex3(x1, y2, 0.1f); + + // top + x1 = 0.0f; + x2 = 1.0f; + y1 = 0.0f; + y2 = 0.0f + 1.0f/(dest.height*1.0f); + + GL.TexCoord2(0.0f, y1_); GL.Vertex3(x1, y1, 0.1f); + GL.TexCoord2(1.0f, y1_); GL.Vertex3(x2, y1, 0.1f); + GL.TexCoord2(1.0f, y2_); GL.Vertex3(x2, y2, 0.1f); + GL.TexCoord2(0.0f, y2_); GL.Vertex3(x1, y2, 0.1f); + + // bottom + x1 = 0.0f; + x2 = 1.0f; + y1 = 1.0f - 1.0f/(dest.height*1.0f); + y2 = 1.0f; + + GL.TexCoord2(0.0f, y1_); GL.Vertex3(x1, y1, 0.1f); + GL.TexCoord2(1.0f, y1_); GL.Vertex3(x2, y1, 0.1f); + GL.TexCoord2(1.0f, y2_); GL.Vertex3(x2, y2, 0.1f); + GL.TexCoord2(0.0f, y2_); GL.Vertex3(x1, y2, 0.1f); + + GL.End(); + } + + GL.PopMatrix(); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/PostEffectsBase.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/PostEffectsBase.cs.meta new file mode 100644 index 0000000..a310534 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/PostEffectsBase.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b6f4318ec6c2bf643a0f9edfeeaba0ec +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/PostEffectsHelper.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/PostEffectsHelper.cs new file mode 100644 index 0000000..a935c16 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/PostEffectsHelper.cs @@ -0,0 +1,188 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [RequireComponent (typeof(Camera))] + class PostEffectsHelper : MonoBehaviour + { + void OnRenderImage (RenderTexture source, RenderTexture destination) + { + Debug.Log("OnRenderImage in Helper called ..."); + } + + static void DrawLowLevelPlaneAlignedWithCamera ( + float dist , + RenderTexture source, RenderTexture dest , + Material material , + Camera cameraForProjectionMatrix ) + { + // Make the destination texture the target for all rendering + RenderTexture.active = dest; + // Assign the source texture to a property from a shader + material.SetTexture("_MainTex", source); + bool invertY = true; // source.texelSize.y < 0.0f; + // Set up the simple Matrix + GL.PushMatrix(); + GL.LoadIdentity(); + GL.LoadProjectionMatrix(cameraForProjectionMatrix.projectionMatrix); + + float fovYHalfRad = cameraForProjectionMatrix.fieldOfView * 0.5f * Mathf.Deg2Rad; + float cotangent = Mathf.Cos(fovYHalfRad) / Mathf.Sin(fovYHalfRad); + float asp = cameraForProjectionMatrix.aspect; + + float x1 = asp/-cotangent; + float x2 = asp/cotangent; + float y1 = 1.0f/-cotangent; + float y2 = 1.0f/cotangent; + + float sc = 1.0f; // magic constant (for now) + + x1 *= dist * sc; + x2 *= dist * sc; + y1 *= dist * sc; + y2 *= dist * sc; + + float z1 = -dist; + + for (int i = 0; i < material.passCount; i++) + { + material.SetPass(i); + + GL.Begin(GL.QUADS); + float y1_; float y2_; + if (invertY) + { + y1_ = 1.0f; y2_ = 0.0f; + } + else + { + y1_ = 0.0f; y2_ = 1.0f; + } + GL.TexCoord2(0.0f, y1_); GL.Vertex3(x1, y1, z1); + GL.TexCoord2(1.0f, y1_); GL.Vertex3(x2, y1, z1); + GL.TexCoord2(1.0f, y2_); GL.Vertex3(x2, y2, z1); + GL.TexCoord2(0.0f, y2_); GL.Vertex3(x1, y2, z1); + GL.End(); + } + + GL.PopMatrix(); + } + + static void DrawBorder ( + RenderTexture dest , + Material material ) + { + float x1; + float x2; + float y1; + float y2; + + RenderTexture.active = dest; + bool invertY = true; // source.texelSize.y < 0.0ff; + // Set up the simple Matrix + GL.PushMatrix(); + GL.LoadOrtho(); + + for (int i = 0; i < material.passCount; i++) + { + material.SetPass(i); + + float y1_; float y2_; + if (invertY) + { + y1_ = 1.0f; y2_ = 0.0f; + } + else + { + y1_ = 0.0f; y2_ = 1.0f; + } + + // left + x1 = 0.0f; + x2 = 0.0f + 1.0f/(dest.width*1.0f); + y1 = 0.0f; + y2 = 1.0f; + GL.Begin(GL.QUADS); + + GL.TexCoord2(0.0f, y1_); GL.Vertex3(x1, y1, 0.1f); + GL.TexCoord2(1.0f, y1_); GL.Vertex3(x2, y1, 0.1f); + GL.TexCoord2(1.0f, y2_); GL.Vertex3(x2, y2, 0.1f); + GL.TexCoord2(0.0f, y2_); GL.Vertex3(x1, y2, 0.1f); + + // right + x1 = 1.0f - 1.0f/(dest.width*1.0f); + x2 = 1.0f; + y1 = 0.0f; + y2 = 1.0f; + + GL.TexCoord2(0.0f, y1_); GL.Vertex3(x1, y1, 0.1f); + GL.TexCoord2(1.0f, y1_); GL.Vertex3(x2, y1, 0.1f); + GL.TexCoord2(1.0f, y2_); GL.Vertex3(x2, y2, 0.1f); + GL.TexCoord2(0.0f, y2_); GL.Vertex3(x1, y2, 0.1f); + + // top + x1 = 0.0f; + x2 = 1.0f; + y1 = 0.0f; + y2 = 0.0f + 1.0f/(dest.height*1.0f); + + GL.TexCoord2(0.0f, y1_); GL.Vertex3(x1, y1, 0.1f); + GL.TexCoord2(1.0f, y1_); GL.Vertex3(x2, y1, 0.1f); + GL.TexCoord2(1.0f, y2_); GL.Vertex3(x2, y2, 0.1f); + GL.TexCoord2(0.0f, y2_); GL.Vertex3(x1, y2, 0.1f); + + // bottom + x1 = 0.0f; + x2 = 1.0f; + y1 = 1.0f - 1.0f/(dest.height*1.0f); + y2 = 1.0f; + + GL.TexCoord2(0.0f, y1_); GL.Vertex3(x1, y1, 0.1f); + GL.TexCoord2(1.0f, y1_); GL.Vertex3(x2, y1, 0.1f); + GL.TexCoord2(1.0f, y2_); GL.Vertex3(x2, y2, 0.1f); + GL.TexCoord2(0.0f, y2_); GL.Vertex3(x1, y2, 0.1f); + + GL.End(); + } + + GL.PopMatrix(); + } + + static void DrawLowLevelQuad ( float x1, float x2, float y1, float y2, RenderTexture source, RenderTexture dest, Material material ) + { + // Make the destination texture the target for all rendering + RenderTexture.active = dest; + // Assign the source texture to a property from a shader + material.SetTexture("_MainTex", source); + bool invertY = true; // source.texelSize.y < 0.0f; + // Set up the simple Matrix + GL.PushMatrix(); + GL.LoadOrtho(); + + for (int i = 0; i < material.passCount; i++) + { + material.SetPass(i); + + GL.Begin(GL.QUADS); + float y1_; float y2_; + if (invertY) + { + y1_ = 1.0f; y2_ = 0.0f; + } + else + { + y1_ = 0.0f; y2_ = 1.0f; + } + GL.TexCoord2(0.0f, y1_); GL.Vertex3(x1, y1, 0.1f); + GL.TexCoord2(1.0f, y1_); GL.Vertex3(x2, y1, 0.1f); + GL.TexCoord2(1.0f, y2_); GL.Vertex3(x2, y2, 0.1f); + GL.TexCoord2(0.0f, y2_); GL.Vertex3(x1, y2, 0.1f); + GL.End(); + } + + GL.PopMatrix(); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/PostEffectsHelper.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/PostEffectsHelper.cs.meta new file mode 100644 index 0000000..4ccd033 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/PostEffectsHelper.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 50b03df8f04b5c441aaac5b7fccb4734 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Quads.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Quads.cs new file mode 100644 index 0000000..e48a19d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Quads.cs @@ -0,0 +1,125 @@ +using System; +using UnityEngine; +using Object = UnityEngine.Object; + +// same as Triangles but creates quads instead which generally +// saves fillrate at the expense for more triangles to issue +namespace UnityStandardAssets.ImageEffects +{ + class Quads + { + static Mesh[] meshes; + static int currentQuads = 0; + + static bool HasMeshes () + { + if (meshes == null) + return false; + foreach (Mesh m in meshes) + if (null == m) + return false; + return true; + } + + + public static void Cleanup () + { + if (meshes == null) + return; + + for (int i = 0; i < meshes.Length; i++) + { + if (null != meshes[i]) + { + Object.DestroyImmediate (meshes[i]); + meshes[i] = null; + } + } + meshes = null; + } + + + public static Mesh[] GetMeshes ( int totalWidth, int totalHeight) + { + if (HasMeshes () && (currentQuads == (totalWidth * totalHeight))) { + return meshes; + } + + int maxQuads = 65000 / 6; + int totalQuads = totalWidth * totalHeight; + currentQuads = totalQuads; + + int meshCount = Mathf.CeilToInt ((1.0f * totalQuads) / (1.0f * maxQuads)); + + meshes = new Mesh [meshCount]; + + int i = 0; + int index = 0; + for (i = 0; i < totalQuads; i += maxQuads) + { + int quads = Mathf.FloorToInt (Mathf.Clamp ((totalQuads-i), 0, maxQuads)); + + meshes[index] = GetMesh (quads, i, totalWidth, totalHeight); + index++; + } + + return meshes; + } + + static Mesh GetMesh (int triCount, int triOffset, int totalWidth, int totalHeight) + { + var mesh = new Mesh (); + mesh.hideFlags = HideFlags.DontSave; + + var verts = new Vector3[triCount * 4]; + var uvs = new Vector2[triCount * 4]; + var uvs2 = new Vector2[triCount * 4]; + var tris = new int[triCount * 6]; + + for (int i = 0; i < triCount; i++) + { + int i4 = i * 4; + int i6 = i * 6; + + int vertexWithOffset = triOffset + i; + + float x = Mathf.Floor (vertexWithOffset % totalWidth) / totalWidth; + float y = Mathf.Floor (vertexWithOffset / totalWidth) / totalHeight; + + Vector3 position = new Vector3 (x * 2 - 1, y * 2 - 1, 1.0f); + + verts[i4 + 0] = position; + verts[i4 + 1] = position; + verts[i4 + 2] = position; + verts[i4 + 3] = position; + + uvs[i4 + 0] = new Vector2 (0.0f, 0.0f); + uvs[i4 + 1] = new Vector2 (1.0f, 0.0f); + uvs[i4 + 2] = new Vector2 (0.0f, 1.0f); + uvs[i4 + 3] = new Vector2 (1.0f, 1.0f); + + uvs2[i4 + 0] = new Vector2 (x, y); + uvs2[i4 + 1] = new Vector2 (x, y); + uvs2[i4 + 2] = new Vector2 (x, y); + uvs2[i4 + 3] = new Vector2 (x, y); + + tris[i6 + 0] = i4 + 0; + tris[i6 + 1] = i4 + 1; + tris[i6 + 2] = i4 + 2; + + tris[i6 + 3] = i4 + 1; + tris[i6 + 4] = i4 + 2; + tris[i6 + 5] = i4 + 3; + + } + + mesh.vertices = verts; + mesh.triangles = tris; + mesh.uv = uvs; + mesh.uv2 = uvs2; + + return mesh; + } + + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Quads.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Quads.cs.meta new file mode 100644 index 0000000..14c9d59 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Quads.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a20852ce049f64e4695a48b6a354be83 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ScreenOverlay.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ScreenOverlay.cs new file mode 100644 index 0000000..f0cd075 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ScreenOverlay.cs @@ -0,0 +1,69 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [RequireComponent (typeof(Camera))] + [AddComponentMenu ("Image Effects/Other/Screen Overlay")] + public class ScreenOverlay : PostEffectsBase + { + public enum OverlayBlendMode + { + Additive = 0, + ScreenBlend = 1, + Multiply = 2, + Overlay = 3, + AlphaBlend = 4, + } + + public OverlayBlendMode blendMode = OverlayBlendMode.Overlay; + public float intensity = 1.0f; + public Texture2D texture = null; + + public Shader overlayShader = null; + private Material overlayMaterial = null; + + + public override bool CheckResources () + { + CheckSupport (false); + + overlayMaterial = CheckShaderAndCreateMaterial (overlayShader, overlayMaterial); + + if (!isSupported) + ReportAutoDisable (); + return isSupported; + } + + void OnRenderImage (RenderTexture source, RenderTexture destination) + { + if (CheckResources() == false) + { + Graphics.Blit (source, destination); + return; + } + + Vector4 UV_Transform = new Vector4(1, 0, 0, 1); + + #if UNITY_WP8 + // WP8 has no OS support for rotating screen with device orientation, + // so we do those transformations ourselves. + if (Screen.orientation == ScreenOrientation.LandscapeLeft) { + UV_Transform = new Vector4(0, -1, 1, 0); + } + if (Screen.orientation == ScreenOrientation.LandscapeRight) { + UV_Transform = new Vector4(0, 1, -1, 0); + } + if (Screen.orientation == ScreenOrientation.PortraitUpsideDown) { + UV_Transform = new Vector4(-1, 0, 0, -1); + } + #endif + + overlayMaterial.SetVector("_UV_Transform", UV_Transform); + overlayMaterial.SetFloat ("_Intensity", intensity); + overlayMaterial.SetTexture ("_Overlay", texture); + Graphics.Blit (source, destination, overlayMaterial, (int) blendMode); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ScreenOverlay.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ScreenOverlay.cs.meta new file mode 100644 index 0000000..75c03f9 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ScreenOverlay.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6f19108706fdce9469603d07980eb8ad +MonoImporter: + serializedVersion: 2 + defaultReferences: + - texture: {instanceID: 0} + - overlayShader: {fileID: 4800000, guid: 8c81db0e527d24acc9bcec04e87781bd, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ScreenSpaceAmbientObscurance.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ScreenSpaceAmbientObscurance.cs new file mode 100644 index 0000000..beb9e0a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ScreenSpaceAmbientObscurance.cs @@ -0,0 +1,101 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ ExecuteInEditMode] + [RequireComponent (typeof(Camera))] + [AddComponentMenu ("Image Effects/Rendering/Screen Space Ambient Obscurance")] + class ScreenSpaceAmbientObscurance : PostEffectsBase { + [Range (0,3)] + public float intensity = 0.5f; + [Range (0.1f,3)] + public float radius = 0.2f; + [Range (0,3)] + public int blurIterations = 1; + [Range (0,5)] + public float blurFilterDistance = 1.25f; + [Range (0,1)] + public int downsample = 0; + + public Texture2D rand = null; + public Shader aoShader= null; + + private Material aoMaterial = null; + + public override bool CheckResources () { + CheckSupport (true); + + aoMaterial = CheckShaderAndCreateMaterial (aoShader, aoMaterial); + + if (!isSupported) + ReportAutoDisable (); + return isSupported; + } + + void OnDisable () { + if (aoMaterial) + DestroyImmediate (aoMaterial); + aoMaterial = null; + } + + [ImageEffectOpaque] + void OnRenderImage (RenderTexture source, RenderTexture destination) { + if (CheckResources () == false) { + Graphics.Blit (source, destination); + return; + } + + Matrix4x4 P = GetComponent().projectionMatrix; + var invP= P.inverse; + Vector4 projInfo = new Vector4 + ((-2.0f / (Screen.width * P[0])), + (-2.0f / (Screen.height * P[5])), + ((1.0f - P[2]) / P[0]), + ((1.0f + P[6]) / P[5])); + + aoMaterial.SetVector ("_ProjInfo", projInfo); // used for unprojection + aoMaterial.SetMatrix ("_ProjectionInv", invP); // only used for reference + aoMaterial.SetTexture ("_Rand", rand); // not needed for DX11 :) + aoMaterial.SetFloat ("_Radius", radius); + aoMaterial.SetFloat ("_Radius2", radius*radius); + aoMaterial.SetFloat ("_Intensity", intensity); + aoMaterial.SetFloat ("_BlurFilterDistance", blurFilterDistance); + + int rtW = source.width; + int rtH = source.height; + + RenderTexture tmpRt = RenderTexture.GetTemporary (rtW>>downsample, rtH>>downsample); + RenderTexture tmpRt2; + + Graphics.Blit (source, tmpRt, aoMaterial, 0); + + if (downsample > 0) { + tmpRt2 = RenderTexture.GetTemporary (rtW, rtH); + Graphics.Blit(tmpRt, tmpRt2, aoMaterial, 4); + RenderTexture.ReleaseTemporary (tmpRt); + tmpRt = tmpRt2; + + // @NOTE: it's probably worth a shot to blur in low resolution + // instead with a bilat-upsample afterwards ... + } + + for (int i = 0; i < blurIterations; i++) { + aoMaterial.SetVector("_Axis", new Vector2(1.0f,0.0f)); + tmpRt2 = RenderTexture.GetTemporary (rtW, rtH); + Graphics.Blit (tmpRt, tmpRt2, aoMaterial, 1); + RenderTexture.ReleaseTemporary (tmpRt); + + aoMaterial.SetVector("_Axis", new Vector2(0.0f,1.0f)); + tmpRt = RenderTexture.GetTemporary (rtW, rtH); + Graphics.Blit (tmpRt2, tmpRt, aoMaterial, 1); + RenderTexture.ReleaseTemporary (tmpRt2); + } + + aoMaterial.SetTexture ("_AOTex", tmpRt); + Graphics.Blit (source, destination, aoMaterial, 2); + + RenderTexture.ReleaseTemporary (tmpRt); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ScreenSpaceAmbientObscurance.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ScreenSpaceAmbientObscurance.cs.meta new file mode 100644 index 0000000..99d4452 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ScreenSpaceAmbientObscurance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 75febd242c999f04d9654522a10c006b +MonoImporter: + serializedVersion: 2 + defaultReferences: + - rand: {fileID: 2800000, guid: a181ca8e3c62f3e4b8f183f6c586b032, type: 3} + - aoShader: {fileID: 4800000, guid: 95616c020c5604dda96cf76afbbc0272, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ScreenSpaceAmbientOcclusion.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ScreenSpaceAmbientOcclusion.cs new file mode 100644 index 0000000..411f467 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ScreenSpaceAmbientOcclusion.cs @@ -0,0 +1,205 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [RequireComponent (typeof(Camera))] + [AddComponentMenu("Image Effects/Rendering/Screen Space Ambient Occlusion")] + public class ScreenSpaceAmbientOcclusion : MonoBehaviour + { + public enum SSAOSamples + { + Low = 0, + Medium = 1, + High = 2, + } + + [Range(0.05f, 1.0f)] + public float m_Radius = 0.4f; + public SSAOSamples m_SampleCount = SSAOSamples.Medium; + [Range(0.5f, 4.0f)] + public float m_OcclusionIntensity = 1.5f; + [Range(0, 4)] + public int m_Blur = 2; + [Range(1,6)] + public int m_Downsampling = 2; + [Range(0.2f, 2.0f)] + public float m_OcclusionAttenuation = 1.0f; + [Range(0.00001f, 0.5f)] + public float m_MinZ = 0.01f; + + public Shader m_SSAOShader; + private Material m_SSAOMaterial; + + public Texture2D m_RandomTexture; + + private bool m_Supported; + + private static Material CreateMaterial (Shader shader) + { + if (!shader) + return null; + Material m = new Material (shader); + m.hideFlags = HideFlags.HideAndDontSave; + return m; + } + private static void DestroyMaterial (Material mat) + { + if (mat) + { + DestroyImmediate (mat); + mat = null; + } + } + + + void OnDisable() + { + DestroyMaterial (m_SSAOMaterial); + } + + void Start() + { + if (!SystemInfo.supportsImageEffects || !SystemInfo.SupportsRenderTextureFormat (RenderTextureFormat.Depth)) + { + m_Supported = false; + enabled = false; + return; + } + + CreateMaterials (); + if (!m_SSAOMaterial || m_SSAOMaterial.passCount != 5) + { + m_Supported = false; + enabled = false; + return; + } + + //CreateRandomTable (26, 0.2f); + + m_Supported = true; + } + + void OnEnable () { + GetComponent().depthTextureMode |= DepthTextureMode.DepthNormals; + } + + private void CreateMaterials () + { + if (!m_SSAOMaterial && m_SSAOShader.isSupported) + { + m_SSAOMaterial = CreateMaterial (m_SSAOShader); + m_SSAOMaterial.SetTexture ("_RandomTexture", m_RandomTexture); + } + } + + [ImageEffectOpaque] + void OnRenderImage (RenderTexture source, RenderTexture destination) + { + if (!m_Supported || !m_SSAOShader.isSupported) { + enabled = false; + return; + } + CreateMaterials (); + + m_Downsampling = Mathf.Clamp (m_Downsampling, 1, 6); + m_Radius = Mathf.Clamp (m_Radius, 0.05f, 1.0f); + m_MinZ = Mathf.Clamp (m_MinZ, 0.00001f, 0.5f); + m_OcclusionIntensity = Mathf.Clamp (m_OcclusionIntensity, 0.5f, 4.0f); + m_OcclusionAttenuation = Mathf.Clamp (m_OcclusionAttenuation, 0.2f, 2.0f); + m_Blur = Mathf.Clamp (m_Blur, 0, 4); + + // Render SSAO term into a smaller texture + RenderTexture rtAO = RenderTexture.GetTemporary (source.width / m_Downsampling, source.height / m_Downsampling, 0); + float fovY = GetComponent().fieldOfView; + float far = GetComponent().farClipPlane; + float y = Mathf.Tan (fovY * Mathf.Deg2Rad * 0.5f) * far; + float x = y * GetComponent().aspect; + m_SSAOMaterial.SetVector ("_FarCorner", new Vector3(x,y,far)); + int noiseWidth, noiseHeight; + if (m_RandomTexture) { + noiseWidth = m_RandomTexture.width; + noiseHeight = m_RandomTexture.height; + } else { + noiseWidth = 1; noiseHeight = 1; + } + m_SSAOMaterial.SetVector ("_NoiseScale", new Vector3 ((float)rtAO.width / noiseWidth, (float)rtAO.height / noiseHeight, 0.0f)); + m_SSAOMaterial.SetVector ("_Params", new Vector4( + m_Radius, + m_MinZ, + 1.0f / m_OcclusionAttenuation, + m_OcclusionIntensity)); + + bool doBlur = m_Blur > 0; + Graphics.Blit (doBlur ? null : source, rtAO, m_SSAOMaterial, (int)m_SampleCount); + + if (doBlur) + { + // Blur SSAO horizontally + RenderTexture rtBlurX = RenderTexture.GetTemporary (source.width, source.height, 0); + m_SSAOMaterial.SetVector ("_TexelOffsetScale", + new Vector4 ((float)m_Blur / source.width, 0,0,0)); + m_SSAOMaterial.SetTexture ("_SSAO", rtAO); + Graphics.Blit (null, rtBlurX, m_SSAOMaterial, 3); + RenderTexture.ReleaseTemporary (rtAO); // original rtAO not needed anymore + + // Blur SSAO vertically + RenderTexture rtBlurY = RenderTexture.GetTemporary (source.width, source.height, 0); + m_SSAOMaterial.SetVector ("_TexelOffsetScale", + new Vector4 (0, (float)m_Blur/source.height, 0,0)); + m_SSAOMaterial.SetTexture ("_SSAO", rtBlurX); + Graphics.Blit (source, rtBlurY, m_SSAOMaterial, 3); + RenderTexture.ReleaseTemporary (rtBlurX); // blurX RT not needed anymore + + rtAO = rtBlurY; // AO is the blurred one now + } + + // Modulate scene rendering with SSAO + m_SSAOMaterial.SetTexture ("_SSAO", rtAO); + Graphics.Blit (source, destination, m_SSAOMaterial, 4); + + RenderTexture.ReleaseTemporary (rtAO); + } + + /* + private void CreateRandomTable (int count, float minLength) + { + Random.seed = 1337; + Vector3[] samples = new Vector3[count]; + // initial samples + for (int i = 0; i < count; ++i) + samples[i] = Random.onUnitSphere; + // energy minimization: push samples away from others + int iterations = 100; + while (iterations-- > 0) { + for (int i = 0; i < count; ++i) { + Vector3 vec = samples[i]; + Vector3 res = Vector3.zero; + // minimize with other samples + for (int j = 0; j < count; ++j) { + Vector3 force = vec - samples[j]; + float fac = Vector3.Dot (force, force); + if (fac > 0.00001f) + res += force * (1.0f / fac); + } + samples[i] = (samples[i] + res * 0.5f).normalized; + } + } + // now scale samples between minLength and 1.0 + for (int i = 0; i < count; ++i) { + samples[i] = samples[i] * Random.Range (minLength, 1.0f); + } + + string table = string.Format ("#define SAMPLE_COUNT {0}\n", count); + table += "const float3 RAND_SAMPLES[SAMPLE_COUNT] = {\n"; + for (int i = 0; i < count; ++i) { + Vector3 v = samples[i]; + table += string.Format("\tfloat3({0},{1},{2}),\n", v.x, v.y, v.z); + } + table += "};\n"; + Debug.Log (table); + } + */ + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ScreenSpaceAmbientOcclusion.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ScreenSpaceAmbientOcclusion.cs.meta new file mode 100644 index 0000000..8fda23b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/ScreenSpaceAmbientOcclusion.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: b0923359e9e352a4b9b11c7b7161ad67 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - m_SSAOShader: {fileID: 4800000, guid: 43ca18288c424f645aaa1e9e07f04c50, type: 3} + - m_RandomTexture: {fileID: 2800000, guid: a181ca8e3c62f3e4b8f183f6c586b032, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/SepiaTone.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/SepiaTone.cs new file mode 100644 index 0000000..fa4edcd --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/SepiaTone.cs @@ -0,0 +1,16 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [AddComponentMenu("Image Effects/Color Adjustments/Sepia Tone")] + public class SepiaTone : ImageEffectBase + { + // Called by camera to apply image effect + void OnRenderImage (RenderTexture source, RenderTexture destination) + { + Graphics.Blit (source, destination, material); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/SepiaTone.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/SepiaTone.cs.meta new file mode 100644 index 0000000..94ff94c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/SepiaTone.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a07a781cad112c75d0008dfa8d76c639 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - shader: {fileID: 4800000, guid: b6aa781cad112c75d0008dfa8d76c639, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/SunShafts.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/SunShafts.cs new file mode 100644 index 0000000..e4f9685 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/SunShafts.cs @@ -0,0 +1,147 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [RequireComponent (typeof(Camera))] + [AddComponentMenu ("Image Effects/Rendering/Sun Shafts")] + public class SunShafts : PostEffectsBase + { + public enum SunShaftsResolution + { + Low = 0, + Normal = 1, + High = 2, + } + + public enum ShaftsScreenBlendMode + { + Screen = 0, + Add = 1, + } + + + public SunShaftsResolution resolution = SunShaftsResolution.Normal; + public ShaftsScreenBlendMode screenBlendMode = ShaftsScreenBlendMode.Screen; + + public Transform sunTransform; + public int radialBlurIterations = 2; + public Color sunColor = Color.white; + public Color sunThreshold = new Color(0.87f,0.74f,0.65f); + public float sunShaftBlurRadius = 2.5f; + public float sunShaftIntensity = 1.15f; + + public float maxRadius = 0.75f; + + public bool useDepthTexture = true; + + public Shader sunShaftsShader; + private Material sunShaftsMaterial; + + public Shader simpleClearShader; + private Material simpleClearMaterial; + + + public override bool CheckResources () { + CheckSupport (useDepthTexture); + + sunShaftsMaterial = CheckShaderAndCreateMaterial (sunShaftsShader, sunShaftsMaterial); + simpleClearMaterial = CheckShaderAndCreateMaterial (simpleClearShader, simpleClearMaterial); + + if (!isSupported) + ReportAutoDisable (); + return isSupported; + } + + void OnRenderImage (RenderTexture source, RenderTexture destination) { + if (CheckResources()==false) { + Graphics.Blit (source, destination); + return; + } + + // we actually need to check this every frame + if (useDepthTexture) + GetComponent().depthTextureMode |= DepthTextureMode.Depth; + + int divider = 4; + if (resolution == SunShaftsResolution.Normal) + divider = 2; + else if (resolution == SunShaftsResolution.High) + divider = 1; + + Vector3 v = Vector3.one * 0.5f; + if (sunTransform) + v = GetComponent().WorldToViewportPoint (sunTransform.position); + else + v = new Vector3(0.5f, 0.5f, 0.0f); + + int rtW = source.width / divider; + int rtH = source.height / divider; + + RenderTexture lrColorB; + RenderTexture lrDepthBuffer = RenderTexture.GetTemporary (rtW, rtH, 0); + + // mask out everything except the skybox + // we have 2 methods, one of which requires depth buffer support, the other one is just comparing images + + sunShaftsMaterial.SetVector ("_BlurRadius4", new Vector4 (1.0f, 1.0f, 0.0f, 0.0f) * sunShaftBlurRadius ); + sunShaftsMaterial.SetVector ("_SunPosition", new Vector4 (v.x, v.y, v.z, maxRadius)); + sunShaftsMaterial.SetVector ("_SunThreshold", sunThreshold); + + if (!useDepthTexture) { + var format= GetComponent().allowHDR ? RenderTextureFormat.DefaultHDR: RenderTextureFormat.Default; + RenderTexture tmpBuffer = RenderTexture.GetTemporary (source.width, source.height, 0, format); + RenderTexture.active = tmpBuffer; + GL.ClearWithSkybox (false, GetComponent()); + + sunShaftsMaterial.SetTexture ("_Skybox", tmpBuffer); + Graphics.Blit (source, lrDepthBuffer, sunShaftsMaterial, 3); + RenderTexture.ReleaseTemporary (tmpBuffer); + } + else { + Graphics.Blit (source, lrDepthBuffer, sunShaftsMaterial, 2); + } + + // paint a small black small border to get rid of clamping problems + DrawBorder (lrDepthBuffer, simpleClearMaterial); + + // radial blur: + + radialBlurIterations = Mathf.Clamp (radialBlurIterations, 1, 4); + + float ofs = sunShaftBlurRadius * (1.0f / 768.0f); + + sunShaftsMaterial.SetVector ("_BlurRadius4", new Vector4 (ofs, ofs, 0.0f, 0.0f)); + sunShaftsMaterial.SetVector ("_SunPosition", new Vector4 (v.x, v.y, v.z, maxRadius)); + + for (int it2 = 0; it2 < radialBlurIterations; it2++ ) { + // each iteration takes 2 * 6 samples + // we update _BlurRadius each time to cheaply get a very smooth look + + lrColorB = RenderTexture.GetTemporary (rtW, rtH, 0); + Graphics.Blit (lrDepthBuffer, lrColorB, sunShaftsMaterial, 1); + RenderTexture.ReleaseTemporary (lrDepthBuffer); + ofs = sunShaftBlurRadius * (((it2 * 2.0f + 1.0f) * 6.0f)) / 768.0f; + sunShaftsMaterial.SetVector ("_BlurRadius4", new Vector4 (ofs, ofs, 0.0f, 0.0f) ); + + lrDepthBuffer = RenderTexture.GetTemporary (rtW, rtH, 0); + Graphics.Blit (lrColorB, lrDepthBuffer, sunShaftsMaterial, 1); + RenderTexture.ReleaseTemporary (lrColorB); + ofs = sunShaftBlurRadius * (((it2 * 2.0f + 2.0f) * 6.0f)) / 768.0f; + sunShaftsMaterial.SetVector ("_BlurRadius4", new Vector4 (ofs, ofs, 0.0f, 0.0f) ); + } + + // put together: + + if (v.z >= 0.0f) + sunShaftsMaterial.SetVector ("_SunColor", new Vector4 (sunColor.r, sunColor.g, sunColor.b, sunColor.a) * sunShaftIntensity); + else + sunShaftsMaterial.SetVector ("_SunColor", Vector4.zero); // no backprojection ! + sunShaftsMaterial.SetTexture ("_ColorBuffer", lrDepthBuffer); + Graphics.Blit (source, destination, sunShaftsMaterial, (screenBlendMode == ShaftsScreenBlendMode.Screen) ? 0 : 4); + + RenderTexture.ReleaseTemporary (lrDepthBuffer); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/SunShafts.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/SunShafts.cs.meta new file mode 100644 index 0000000..acf1863 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/SunShafts.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 60e318a6043c1cb4a8ce1c8805bab930 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - sunTransform: {instanceID: 0} + - sunShaftsShader: {fileID: 4800000, guid: d3b1c8c1036784176946f5cfbfb7fe4c, type: 3} + - simpleClearShader: {fileID: 4800000, guid: f688f89ed5eb847c5b19c934a0f1e772, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/TiltShift.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/TiltShift.cs new file mode 100644 index 0000000..1e24583 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/TiltShift.cs @@ -0,0 +1,75 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [RequireComponent (typeof(Camera))] + [AddComponentMenu ("Image Effects/Camera/Tilt Shift (Lens Blur)")] + class TiltShift : PostEffectsBase { + public enum TiltShiftMode + { + TiltShiftMode, + IrisMode, + } + public enum TiltShiftQuality + { + Preview, + Normal, + High, + } + + public TiltShiftMode mode = TiltShiftMode.TiltShiftMode; + public TiltShiftQuality quality = TiltShiftQuality.Normal; + + [Range(0.0f, 15.0f)] + public float blurArea = 1.0f; + + [Range(0.0f, 25.0f)] + public float maxBlurSize = 5.0f; + + [Range(0, 1)] + public int downsample = 0; + + public Shader tiltShiftShader = null; + private Material tiltShiftMaterial = null; + + + public override bool CheckResources () { + CheckSupport (true); + + tiltShiftMaterial = CheckShaderAndCreateMaterial (tiltShiftShader, tiltShiftMaterial); + + if (!isSupported) + ReportAutoDisable (); + return isSupported; + } + + void OnRenderImage (RenderTexture source, RenderTexture destination) { + if (CheckResources() == false) { + Graphics.Blit (source, destination); + return; + } + + tiltShiftMaterial.SetFloat("_BlurSize", maxBlurSize < 0.0f ? 0.0f : maxBlurSize); + tiltShiftMaterial.SetFloat("_BlurArea", blurArea); + source.filterMode = FilterMode.Bilinear; + + RenderTexture rt = destination; + if (downsample > 0f) { + rt = RenderTexture.GetTemporary (source.width>>downsample, source.height>>downsample, 0, source.format); + rt.filterMode = FilterMode.Bilinear; + } + + int basePassNr = (int) quality; basePassNr *= 2; + Graphics.Blit (source, rt, tiltShiftMaterial, mode == TiltShiftMode.TiltShiftMode ? basePassNr : basePassNr + 1); + + if (downsample > 0) { + tiltShiftMaterial.SetTexture ("_Blurred", rt); + Graphics.Blit (source, destination, tiltShiftMaterial, 6); + } + + if (rt != destination) + RenderTexture.ReleaseTemporary (rt); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/TiltShift.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/TiltShift.cs.meta new file mode 100644 index 0000000..6fb44f4 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/TiltShift.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: a22b3a7095a744a428c134b5e26ad68e +MonoImporter: + serializedVersion: 2 + defaultReferences: + - tiltShiftShader: {fileID: 4800000, guid: bf34d2a25450349699e8ae6456fa7ca9, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Tonemapping.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Tonemapping.cs new file mode 100644 index 0000000..dec8e88 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Tonemapping.cs @@ -0,0 +1,274 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [RequireComponent(typeof (Camera))] + [AddComponentMenu("Image Effects/Color Adjustments/Tonemapping")] + public class Tonemapping : PostEffectsBase + { + public enum TonemapperType + { + SimpleReinhard, + UserCurve, + Hable, + Photographic, + OptimizedHejiDawson, + AdaptiveReinhard, + AdaptiveReinhardAutoWhite, + }; + + public enum AdaptiveTexSize + { + Square16 = 16, + Square32 = 32, + Square64 = 64, + Square128 = 128, + Square256 = 256, + Square512 = 512, + Square1024 = 1024, + }; + + public TonemapperType type = TonemapperType.Photographic; + public AdaptiveTexSize adaptiveTextureSize = AdaptiveTexSize.Square256; + + // CURVE parameter + public AnimationCurve remapCurve; + private Texture2D curveTex = null; + + // UNCHARTED parameter + public float exposureAdjustment = 1.5f; + + // REINHARD parameter + public float middleGrey = 0.4f; + public float white = 2.0f; + public float adaptionSpeed = 1.5f; + + // usual & internal stuff + public Shader tonemapper = null; + public bool validRenderTextureFormat = true; + private Material tonemapMaterial = null; + private RenderTexture rt = null; + private RenderTextureFormat rtFormat = RenderTextureFormat.ARGBHalf; + + + public override bool CheckResources() + { + CheckSupport(false, true); + + tonemapMaterial = CheckShaderAndCreateMaterial(tonemapper, tonemapMaterial); + if (!curveTex && type == TonemapperType.UserCurve) + { + curveTex = new Texture2D(256, 1, TextureFormat.ARGB32, false, true); + curveTex.filterMode = FilterMode.Bilinear; + curveTex.wrapMode = TextureWrapMode.Clamp; + curveTex.hideFlags = HideFlags.DontSave; + } + + if (!isSupported) + ReportAutoDisable(); + return isSupported; + } + + + public float UpdateCurve() + { + float range = 1.0f; + if (remapCurve.keys.Length < 1) + remapCurve = new AnimationCurve(new Keyframe(0, 0), new Keyframe(2, 1)); + if (remapCurve != null) + { + if (remapCurve.length > 0) + range = remapCurve[remapCurve.length - 1].time; + for (float i = 0.0f; i <= 1.0f; i += 1.0f/255.0f) + { + float c = remapCurve.Evaluate(i*1.0f*range); + curveTex.SetPixel((int) Mathf.Floor(i*255.0f), 0, new Color(c, c, c)); + } + curveTex.Apply(); + } + return 1.0f/range; + } + + + private void OnDisable() + { + if (rt) + { + DestroyImmediate(rt); + rt = null; + } + if (tonemapMaterial) + { + DestroyImmediate(tonemapMaterial); + tonemapMaterial = null; + } + if (curveTex) + { + DestroyImmediate(curveTex); + curveTex = null; + } + } + + + private bool CreateInternalRenderTexture() + { + if (rt) + { + return false; + } + rtFormat = SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.RGHalf) ? RenderTextureFormat.RGHalf : RenderTextureFormat.ARGBHalf; + rt = new RenderTexture(1, 1, 0, rtFormat); + rt.hideFlags = HideFlags.DontSave; + return true; + } + + + // attribute indicates that the image filter chain will continue in LDR + [ImageEffectTransformsToLDR] + private void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (CheckResources() == false) + { + Graphics.Blit(source, destination); + return; + } + +#if UNITY_EDITOR + validRenderTextureFormat = true; + if (source.format != RenderTextureFormat.ARGBHalf) + { + validRenderTextureFormat = false; + } +#endif + + // clamp some values to not go out of a valid range + + exposureAdjustment = exposureAdjustment < 0.001f ? 0.001f : exposureAdjustment; + + // SimpleReinhard tonemappers (local, non adaptive) + + if (type == TonemapperType.UserCurve) + { + float rangeScale = UpdateCurve(); + tonemapMaterial.SetFloat("_RangeScale", rangeScale); + tonemapMaterial.SetTexture("_Curve", curveTex); + Graphics.Blit(source, destination, tonemapMaterial, 4); + return; + } + + if (type == TonemapperType.SimpleReinhard) + { + tonemapMaterial.SetFloat("_ExposureAdjustment", exposureAdjustment); + Graphics.Blit(source, destination, tonemapMaterial, 6); + return; + } + + if (type == TonemapperType.Hable) + { + tonemapMaterial.SetFloat("_ExposureAdjustment", exposureAdjustment); + Graphics.Blit(source, destination, tonemapMaterial, 5); + return; + } + + if (type == TonemapperType.Photographic) + { + tonemapMaterial.SetFloat("_ExposureAdjustment", exposureAdjustment); + Graphics.Blit(source, destination, tonemapMaterial, 8); + return; + } + + if (type == TonemapperType.OptimizedHejiDawson) + { + tonemapMaterial.SetFloat("_ExposureAdjustment", 0.5f*exposureAdjustment); + Graphics.Blit(source, destination, tonemapMaterial, 7); + return; + } + + // still here? + // => adaptive tone mapping: + // builds an average log luminance, tonemaps according to + // middle grey and white values (user controlled) + + // AdaptiveReinhardAutoWhite will calculate white value automagically + + bool freshlyBrewedInternalRt = CreateInternalRenderTexture(); // this retrieves rtFormat, so should happen before rt allocations + + RenderTexture rtSquared = RenderTexture.GetTemporary((int) adaptiveTextureSize, (int) adaptiveTextureSize, 0, rtFormat); + Graphics.Blit(source, rtSquared); + + int downsample = (int) Mathf.Log(rtSquared.width*1.0f, 2); + + int div = 2; + var rts = new RenderTexture[downsample]; + for (int i = 0; i < downsample; i++) + { + rts[i] = RenderTexture.GetTemporary(rtSquared.width/div, rtSquared.width/div, 0, rtFormat); + div *= 2; + } + + // downsample pyramid + + var lumRt = rts[downsample - 1]; + Graphics.Blit(rtSquared, rts[0], tonemapMaterial, 1); + if (type == TonemapperType.AdaptiveReinhardAutoWhite) + { + for (int i = 0; i < downsample - 1; i++) + { + Graphics.Blit(rts[i], rts[i + 1], tonemapMaterial, 9); + lumRt = rts[i + 1]; + } + } + else if (type == TonemapperType.AdaptiveReinhard) + { + for (int i = 0; i < downsample - 1; i++) + { + Graphics.Blit(rts[i], rts[i + 1]); + lumRt = rts[i + 1]; + } + } + + // we have the needed values, let's apply adaptive tonemapping + + adaptionSpeed = adaptionSpeed < 0.001f ? 0.001f : adaptionSpeed; + tonemapMaterial.SetFloat("_AdaptionSpeed", adaptionSpeed); + + rt.MarkRestoreExpected(); // keeping luminance values between frames, RT restore expected + +#if UNITY_EDITOR + if (Application.isPlaying && !freshlyBrewedInternalRt) + Graphics.Blit(lumRt, rt, tonemapMaterial, 2); + else + Graphics.Blit(lumRt, rt, tonemapMaterial, 3); +#else + Graphics.Blit (lumRt, rt, tonemapMaterial, freshlyBrewedInternalRt ? 3 : 2); +#endif + + middleGrey = middleGrey < 0.001f ? 0.001f : middleGrey; + tonemapMaterial.SetVector("_HdrParams", new Vector4(middleGrey, middleGrey, middleGrey, white*white)); + tonemapMaterial.SetTexture("_SmallTex", rt); + if (type == TonemapperType.AdaptiveReinhard) + { + Graphics.Blit(source, destination, tonemapMaterial, 0); + } + else if (type == TonemapperType.AdaptiveReinhardAutoWhite) + { + Graphics.Blit(source, destination, tonemapMaterial, 10); + } + else + { + Debug.LogError("No valid adaptive tonemapper type found!"); + Graphics.Blit(source, destination); // at least we get the TransformToLDR effect + } + + // cleanup for adaptive + + for (int i = 0; i < downsample; i++) + { + RenderTexture.ReleaseTemporary(rts[i]); + } + RenderTexture.ReleaseTemporary(rtSquared); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Tonemapping.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Tonemapping.cs.meta new file mode 100644 index 0000000..4443b42 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Tonemapping.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: e50e925fb93c78246bf995d9dc3a2330 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - tonemapper: {fileID: 4800000, guid: 003377fc2620a44939dadde6fe3f8190, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Triangles.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Triangles.cs new file mode 100644 index 0000000..335b72c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Triangles.cs @@ -0,0 +1,112 @@ +using System; +using UnityEngine; +using Object = UnityEngine.Object; + +namespace UnityStandardAssets.ImageEffects +{ + class Triangles + { + private static Mesh[] meshes; + private static int currentTris = 0; + + static bool HasMeshes() + { + if (meshes == null) + return false; + for (int i = 0; i < meshes.Length; i++) + if (null == meshes[i]) + return false; + + return true; + } + + static void Cleanup() + { + if (meshes == null) + return; + + for (int i = 0; i < meshes.Length; i++) + { + if (null != meshes[i]) + { + Object.DestroyImmediate(meshes[i]); + meshes[i] = null; + } + } + meshes = null; + } + + static Mesh[] GetMeshes(int totalWidth, int totalHeight) + { + if (HasMeshes() && (currentTris == (totalWidth * totalHeight))) + { + return meshes; + } + + int maxTris = 65000 / 3; + int totalTris = totalWidth * totalHeight; + currentTris = totalTris; + + int meshCount = Mathf.CeilToInt((1.0f * totalTris) / (1.0f * maxTris)); + + meshes = new Mesh[meshCount]; + + int i = 0; + int index = 0; + for (i = 0; i < totalTris; i += maxTris) + { + int tris = Mathf.FloorToInt(Mathf.Clamp((totalTris - i), 0, maxTris)); + + meshes[index] = GetMesh(tris, i, totalWidth, totalHeight); + index++; + } + + return meshes; + } + + static Mesh GetMesh(int triCount, int triOffset, int totalWidth, int totalHeight) + { + var mesh = new Mesh(); + mesh.hideFlags = HideFlags.DontSave; + + var verts = new Vector3[triCount * 3]; + var uvs = new Vector2[triCount * 3]; + var uvs2 = new Vector2[triCount * 3]; + var tris = new int[triCount * 3]; + + for (int i = 0; i < triCount; i++) + { + int i3 = i * 3; + int vertexWithOffset = triOffset + i; + + float x = Mathf.Floor(vertexWithOffset % totalWidth) / totalWidth; + float y = Mathf.Floor(vertexWithOffset / totalWidth) / totalHeight; + + Vector3 position = new Vector3(x * 2 - 1, y * 2 - 1, 1.0f); + + verts[i3 + 0] = position; + verts[i3 + 1] = position; + verts[i3 + 2] = position; + + uvs[i3 + 0] = new Vector2(0.0f, 0.0f); + uvs[i3 + 1] = new Vector2(1.0f, 0.0f); + uvs[i3 + 2] = new Vector2(0.0f, 1.0f); + + uvs2[i3 + 0] = new Vector2(x, y); + uvs2[i3 + 1] = new Vector2(x, y); + uvs2[i3 + 2] = new Vector2(x, y); + + tris[i3 + 0] = i3 + 0; + tris[i3 + 1] = i3 + 1; + tris[i3 + 2] = i3 + 2; + } + + mesh.vertices = verts; + mesh.triangles = tris; + mesh.uv = uvs; + mesh.uv2 = uvs2; + + return mesh; + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Triangles.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Triangles.cs.meta new file mode 100644 index 0000000..2ea56f0 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Triangles.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 18b91636de2ba3445913e4cf38528dc8 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Twirl.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Twirl.cs new file mode 100644 index 0000000..2ca7502 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Twirl.cs @@ -0,0 +1,22 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [AddComponentMenu("Image Effects/Displacement/Twirl")] + public class Twirl : ImageEffectBase + { + public Vector2 radius = new Vector2(0.3F,0.3F); + [Range(0.0f,360.0f)] + public float angle = 50; + public Vector2 center = new Vector2 (0.5F, 0.5F); + + + // Called by camera to apply image effect + void OnRenderImage (RenderTexture source, RenderTexture destination) + { + ImageEffects.RenderDistortion (material, source, destination, angle, center, radius); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Twirl.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Twirl.cs.meta new file mode 100644 index 0000000..4b0b6c8 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Twirl.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: bdda781cad112c75d0008dfa8d76c639 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - shader: {fileID: 4800000, guid: 641b781cad112c75d0008dfa8d76c639, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/VignetteAndChromaticAberration.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/VignetteAndChromaticAberration.cs new file mode 100644 index 0000000..85053a2 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/VignetteAndChromaticAberration.cs @@ -0,0 +1,114 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [RequireComponent (typeof(Camera))] + [AddComponentMenu ("Image Effects/Camera/Vignette and Chromatic Aberration")] + public class VignetteAndChromaticAberration : PostEffectsBase + { + public enum AberrationMode + { + Simple = 0, + Advanced = 1, + } + + + public AberrationMode mode = AberrationMode.Simple; + public float intensity = 0.036f; // intensity == 0 disables pre pass (optimization) + public float chromaticAberration = 0.2f; + public float axialAberration = 0.5f; + public float blur = 0.0f; // blur == 0 disables blur pass (optimization) + public float blurSpread = 0.75f; + public float luminanceDependency = 0.25f; + public float blurDistance = 2.5f; + public Shader vignetteShader; + public Shader separableBlurShader; + public Shader chromAberrationShader; + + + private Material m_VignetteMaterial; + private Material m_SeparableBlurMaterial; + private Material m_ChromAberrationMaterial; + + + public override bool CheckResources () + { + CheckSupport (false); + + m_VignetteMaterial = CheckShaderAndCreateMaterial (vignetteShader, m_VignetteMaterial); + m_SeparableBlurMaterial = CheckShaderAndCreateMaterial (separableBlurShader, m_SeparableBlurMaterial); + m_ChromAberrationMaterial = CheckShaderAndCreateMaterial (chromAberrationShader, m_ChromAberrationMaterial); + + if (!isSupported) + ReportAutoDisable (); + return isSupported; + } + + + void OnRenderImage (RenderTexture source, RenderTexture destination) + { + if ( CheckResources () == false) + { + Graphics.Blit (source, destination); + return; + } + + int rtW = source.width; + int rtH = source.height; + + bool doPrepass = (Mathf.Abs(blur)>0.0f || Mathf.Abs(intensity)>0.0f); + + float widthOverHeight = (1.0f * rtW) / (1.0f * rtH); + const float oneOverBaseSize = 1.0f / 512.0f; + + RenderTexture color = null; + RenderTexture color2A = null; + + if (doPrepass) + { + color = RenderTexture.GetTemporary (rtW, rtH, 0, source.format); + + // Blur corners + if (Mathf.Abs (blur)>0.0f) + { + color2A = RenderTexture.GetTemporary (rtW / 2, rtH / 2, 0, source.format); + + Graphics.Blit (source, color2A, m_ChromAberrationMaterial, 0); + + for(int i = 0; i < 2; i++) + { // maybe make iteration count tweakable + m_SeparableBlurMaterial.SetVector ("offsets",new Vector4 (0.0f, blurSpread * oneOverBaseSize, 0.0f, 0.0f)); + RenderTexture color2B = RenderTexture.GetTemporary (rtW / 2, rtH / 2, 0, source.format); + Graphics.Blit (color2A, color2B, m_SeparableBlurMaterial); + RenderTexture.ReleaseTemporary (color2A); + + m_SeparableBlurMaterial.SetVector ("offsets",new Vector4 (blurSpread * oneOverBaseSize / widthOverHeight, 0.0f, 0.0f, 0.0f)); + color2A = RenderTexture.GetTemporary (rtW / 2, rtH / 2, 0, source.format); + Graphics.Blit (color2B, color2A, m_SeparableBlurMaterial); + RenderTexture.ReleaseTemporary (color2B); + } + } + + m_VignetteMaterial.SetFloat("_Intensity", (1.0f / (1.0f - intensity) - 1.0f)); // intensity for vignette + m_VignetteMaterial.SetFloat("_Blur", (1.0f / (1.0f - blur)) - 1.0f); // blur intensity + m_VignetteMaterial.SetTexture ("_VignetteTex", color2A); // blurred texture + + Graphics.Blit (source, color, m_VignetteMaterial, 0); // prepass blit: darken & blur corners + } + + m_ChromAberrationMaterial.SetFloat ("_ChromaticAberration", chromaticAberration); + m_ChromAberrationMaterial.SetFloat ("_AxialAberration", axialAberration); + m_ChromAberrationMaterial.SetVector ("_BlurDistance", new Vector2 (-blurDistance, blurDistance)); + m_ChromAberrationMaterial.SetFloat ("_Luminance", 1.0f/Mathf.Max(Mathf.Epsilon, luminanceDependency)); + + if (doPrepass) color.wrapMode = TextureWrapMode.Clamp; + else source.wrapMode = TextureWrapMode.Clamp; + Graphics.Blit (doPrepass ? color : source, destination, m_ChromAberrationMaterial, mode == AberrationMode.Advanced ? 2 : 1); + + RenderTexture.ReleaseTemporary (color); + RenderTexture.ReleaseTemporary (color2A); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/VignetteAndChromaticAberration.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/VignetteAndChromaticAberration.cs.meta new file mode 100644 index 0000000..6b6a813 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/VignetteAndChromaticAberration.cs.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: dd6d4281e5d7cd44d8c6e38bc2c1b8d8 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - vignetteShader: {fileID: 4800000, guid: 627943dc7a9a74286b70a4f694a0acd5, type: 3} + - separableBlurShader: {fileID: 4800000, guid: e97c14fbb5ea04c3a902cc533d7fc5d1, + type: 3} + - chromAberrationShader: {fileID: 4800000, guid: 2b4f29398d9484ccfa9fd220449f5eee, + type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Vortex.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Vortex.cs new file mode 100644 index 0000000..e011615 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Vortex.cs @@ -0,0 +1,20 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.ImageEffects +{ + [ExecuteInEditMode] + [AddComponentMenu("Image Effects/Displacement/Vortex")] + public class Vortex : ImageEffectBase + { + public Vector2 radius = new Vector2(0.4F,0.4F); + public float angle = 50; + public Vector2 center = new Vector2(0.5F, 0.5F); + + // Called by camera to apply image effect + void OnRenderImage (RenderTexture source, RenderTexture destination) + { + ImageEffects.RenderDistortion (material, source, destination, angle, center, radius); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Vortex.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Vortex.cs.meta new file mode 100644 index 0000000..f6b8089 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Scripts/Vortex.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a94b781cad112c75d0008dfa8d76c639 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - shader: {fileID: 4800000, guid: 708b781cad112c75d0008dfa8d76c639, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders.meta new file mode 100644 index 0000000..b68c7f9 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: b2145489f7c704db8acb14a52bddeee9 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/BlendModesOverlay.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/BlendModesOverlay.shader new file mode 100644 index 0000000..c5e382b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/BlendModesOverlay.shader @@ -0,0 +1,135 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/BlendModesOverlay" { + Properties { + _MainTex ("Screen Blended", 2D) = "" {} + _Overlay ("Color", 2D) = "grey" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f { + float4 pos : SV_POSITION; + float2 uv[2] : TEXCOORD0; + }; + + sampler2D _Overlay; + sampler2D _MainTex; + + half _Intensity; + half4 _MainTex_TexelSize; + half4 _UV_Transform = half4(1, 0, 0, 1); + + v2f vert( appdata_img v ) { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + + o.uv[0] = float2( + dot(v.texcoord.xy, _UV_Transform.xy), + dot(v.texcoord.xy, _UV_Transform.zw) + ); + + #if UNITY_UV_STARTS_AT_TOP + if(_MainTex_TexelSize.y<0.0) + o.uv[0].y = 1.0-o.uv[0].y; + #endif + + o.uv[1] = v.texcoord.xy; + return o; + } + + half4 fragAddSub (v2f i) : SV_Target { + half4 toAdd = tex2D(_Overlay, i.uv[0]) * _Intensity; + return tex2D(_MainTex, i.uv[1]) + toAdd; + } + + half4 fragMultiply (v2f i) : SV_Target { + half4 toBlend = tex2D(_Overlay, i.uv[0]) * _Intensity; + return tex2D(_MainTex, i.uv[1]) * toBlend; + } + + half4 fragScreen (v2f i) : SV_Target { + half4 toBlend = (tex2D(_Overlay, i.uv[0]) * _Intensity); + return 1-(1-toBlend)*(1-(tex2D(_MainTex, i.uv[1]))); + } + + half4 fragOverlay (v2f i) : SV_Target { + half4 m = (tex2D(_Overlay, i.uv[0]));// * 255.0; + half4 color = (tex2D(_MainTex, i.uv[1]));//* 255.0; + + // overlay blend mode + //color.rgb = (color.rgb/255.0) * (color.rgb + ((2*m.rgb)/( 255.0 )) * (255.0-color.rgb)); + //color.rgb /= 255.0; + + /* +if (Target > ½) R = 1 - (1-2x(Target-½)) x (1-Blend) +if (Target <= ½) R = (2xTarget) x Blend + */ + + float3 check = step(0.5, color.rgb); + float3 result = 0; + + result = check * (half3(1,1,1) - ( (half3(1,1,1) - 2*(color.rgb-0.5)) * (1-m.rgb))); + result += (1-check) * (2*color.rgb) * m.rgb; + + return half4(lerp(color.rgb, result.rgb, (_Intensity)), color.a); + } + + half4 fragAlphaBlend (v2f i) : SV_Target { + half4 toAdd = tex2D(_Overlay, i.uv[0]) ; + return lerp(tex2D(_MainTex, i.uv[1]), toAdd, toAdd.a * _Intensity); + } + + + ENDCG + +Subshader { + ZTest Always Cull Off ZWrite Off + ColorMask RGB + + Pass { + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragAddSub + ENDCG + } + + Pass { + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragScreen + ENDCG + } + + Pass { + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragMultiply + ENDCG + } + + Pass { + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragOverlay + ENDCG + } + + Pass { + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragAlphaBlend + ENDCG + } +} + +Fallback off + +} // shader diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/BlendModesOverlay.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/BlendModesOverlay.shader.meta new file mode 100644 index 0000000..ebf8628 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/BlendModesOverlay.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 8c81db0e527d24acc9bcec04e87781bd +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/BlurEffectConeTaps.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/BlurEffectConeTaps.shader new file mode 100644 index 0000000..5cc7d10 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/BlurEffectConeTaps.shader @@ -0,0 +1,44 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/BlurEffectConeTap" { + Properties { _MainTex ("", any) = "" {} } + CGINCLUDE + #include "UnityCG.cginc" + struct v2f { + float4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + half2 taps[4] : TEXCOORD1; + }; + sampler2D _MainTex; + half4 _MainTex_TexelSize; + half4 _BlurOffsets; + v2f vert( appdata_img v ) { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = v.texcoord - _BlurOffsets.xy * _MainTex_TexelSize.xy; // hack, see BlurEffect.cs for the reason for this. let's make a new blur effect soon + o.taps[0] = o.uv + _MainTex_TexelSize * _BlurOffsets.xy; + o.taps[1] = o.uv - _MainTex_TexelSize * _BlurOffsets.xy; + o.taps[2] = o.uv + _MainTex_TexelSize * _BlurOffsets.xy * half2(1,-1); + o.taps[3] = o.uv - _MainTex_TexelSize * _BlurOffsets.xy * half2(1,-1); + return o; + } + half4 frag(v2f i) : SV_Target { + half4 color = tex2D(_MainTex, i.taps[0]); + color += tex2D(_MainTex, i.taps[1]); + color += tex2D(_MainTex, i.taps[2]); + color += tex2D(_MainTex, i.taps[3]); + return color * 0.25; + } + ENDCG + SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + ENDCG + } + } + Fallback off +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/BlurEffectConeTaps.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/BlurEffectConeTaps.shader.meta new file mode 100644 index 0000000..5d9fd5e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/BlurEffectConeTaps.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 57e6deea7c2924e22a5138e2b70bb4dc +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/CameraMotionBlur.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/CameraMotionBlur.shader new file mode 100644 index 0000000..4733006 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/CameraMotionBlur.shader @@ -0,0 +1,518 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + + /* + CAMERA MOTION BLUR IMAGE EFFECTS + + Reconstruction Filter: + Based on "Plausible Motion Blur" + http://graphics.cs.williams.edu/papers/MotionBlurI3D12/ + + CameraMotion: + Based on Alex Vlacho's technique in + http://www.valvesoftware.com/publications/2008/GDC2008_PostProcessingInTheOrangeBox.pdf + + SimpleBlur: + Straightforward sampling along velocities + + ScatterFromGather: + Combines Reconstruction with depth of field type defocus + */ + + Shader "Hidden/CameraMotionBlur" { + Properties { + _MainTex ("-", 2D) = "" {} + _NoiseTex ("-", 2D) = "grey" {} + _VelTex ("-", 2D) = "black" {} + _NeighbourMaxTex ("-", 2D) = "black" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + // 's' in paper (# of samples for reconstruction) + #define NUM_SAMPLES (11) + // # samples for valve style blur + #define MOTION_SAMPLES (16) + // 'k' in paper + float _MaxRadiusOrKInPaper; + + static const int SmallDiscKernelSamples = 12; + static const float2 SmallDiscKernel[SmallDiscKernelSamples] = + { + float2(-0.326212,-0.40581), + float2(-0.840144,-0.07358), + float2(-0.695914,0.457137), + float2(-0.203345,0.620716), + float2(0.96234,-0.194983), + float2(0.473434,-0.480026), + float2(0.519456,0.767022), + float2(0.185461,-0.893124), + float2(0.507431,0.064425), + float2(0.89642,0.412458), + float2(-0.32194,-0.932615), + float2(-0.791559,-0.59771) + }; + + struct v2f + { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + sampler2D _MainTex; + sampler2D_float _CameraDepthTexture; + sampler2D _VelTex; + sampler2D _NeighbourMaxTex; + sampler2D _NoiseTex; + sampler2D _TileTexDebug; + + float4 _MainTex_TexelSize; + float4 _CameraDepthTexture_TexelSize; + float4 _VelTex_TexelSize; + + float4x4 _InvViewProj; // inverse view-projection matrix + float4x4 _PrevViewProj; // previous view-projection matrix + float4x4 _ToPrevViewProjCombined; // combined + + float _Jitter; + + float _VelocityScale; + float _DisplayVelocityScale; + + float _MaxVelocity; + float _MinVelocity; + + float4 _BlurDirectionPacked; + + float _SoftZDistance; + + v2f vert(appdata_img v) + { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = v.texcoord.xy; + return o; + } + + float4 CameraVelocity(v2f i) : SV_Target + { + float2 depth_uv = i.uv; + + #if UNITY_UV_STARTS_AT_TOP + if (_MainTex_TexelSize.y < 0) + depth_uv.y = 1 - depth_uv.y; + #endif + + // read depth + float d = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, depth_uv); + + // calculate position from pixel from depth + float3 clipPos = float3(i.uv.x*2.0-1.0, (i.uv.y)*2.0-1.0, d); + + // only 1 matrix mul: + float4 prevClipPos = mul(_ToPrevViewProjCombined, float4(clipPos, 1.0)); + prevClipPos.xyz /= prevClipPos.w; + + /* + float4 ws = mul(_InvViewProj, float4(clipPos, 1.0)); + ws /= ws.w; + prevClipPos = mul(_PrevViewProj,ws); + prevClipPos.xyz /= prevClipPos.w; + */ + + /* + float2 vel = _VelocityScale *(clipPos.xy - prevClipPos.xy) / 2.f; + // clamp to maximum velocity (in pixels) + float maxVel = length(_MainTex_TexelSize.xy*_MaxVelocity); + if (length(vel) > maxVel) { + vel = normalize(vel) * maxVel; + } + return float4(vel, 0.0, 0.0); + */ + + float2 vel = _MainTex_TexelSize.zw * _VelocityScale * (clipPos.xy - prevClipPos.xy) / 2.f; + float vellen = length(vel); + float maxVel = _MaxVelocity; + float2 velOut = vel * max(0.5, min(vellen, maxVel)) / (vellen + 1e-2f); + velOut *= _MainTex_TexelSize.xy; + return float4(velOut, 0.0, 0.0); + + } + + // vector with largest magnitude + float2 vmax(float2 a, float2 b) + { + float ma = dot(a, a); + float mb = dot(b, b); + return (ma > mb) ? a : b; + } + + // find dominant velocity for each tile + float4 TileMax(v2f i) : SV_Target + { + float2 uvCorner = i.uv - _MainTex_TexelSize.xy * (_MaxRadiusOrKInPaper * 0.5); + float2 maxvel = float2(0,0); + float4 baseUv = float4(uvCorner,0,0); + float4 uvScale = float4(_MainTex_TexelSize.xy, 0, 0); + + for(int l=0; l<(int)_MaxRadiusOrKInPaper; l++) + { + for(int k=0; k<(int)_MaxRadiusOrKInPaper; k++) + { + maxvel = vmax(maxvel, tex2Dlod(_MainTex, baseUv + float4(l,k,0,0) * uvScale).xy); + } + } + return float4(maxvel, 0, 1); + } + + // find maximum velocity in any adjacent tile + float4 NeighbourMax(v2f i) : SV_Target + { + float2 x_ = i.uv; + + // to fetch all neighbours, we need 3x3 point filtered samples + + float2 nx = tex2D(_MainTex, x_+float2(1.0, 1.0)*_MainTex_TexelSize.xy).xy; + nx = vmax(nx, tex2D(_MainTex, x_+float2(1.0, 0.0)*_MainTex_TexelSize.xy).xy); + nx = vmax(nx, tex2D(_MainTex, x_+float2(1.0,-1.0)*_MainTex_TexelSize.xy).xy); + nx = vmax(nx, tex2D(_MainTex, x_+float2(0.0, 1.0)*_MainTex_TexelSize.xy).xy); + nx = vmax(nx, tex2D(_MainTex, x_+float2(0.0, 0.0)*_MainTex_TexelSize.xy).xy); + nx = vmax(nx, tex2D(_MainTex, x_+float2(0.0,-1.0)*_MainTex_TexelSize.xy).xy); + nx = vmax(nx, tex2D(_MainTex, x_+float2(-1.0, 1.0)*_MainTex_TexelSize.xy).xy); + nx = vmax(nx, tex2D(_MainTex, x_+float2(-1.0, 0.0)*_MainTex_TexelSize.xy).xy); + nx = vmax(nx, tex2D(_MainTex, x_+float2(-1.0,-1.0)*_MainTex_TexelSize.xy).xy); + + return float4(nx, 0, 0); + } + + float4 Debug(v2f i) : SV_Target + { + return saturate( float4(tex2D(_MainTex, i.uv).x,abs(tex2D(_MainTex, i.uv).y),-tex2D(_MainTex, i.uv).xy) * _DisplayVelocityScale); + } + + // classification filters + float cone(float2 px, float2 py, float2 v) + { + return clamp(1.0 - (length(px - py) / length(v)), 0.0, 1.0); + } + + float cylinder(float2 x, float2 y, float2 v) + { + float lv = length(v); + return 1.0 - smoothstep(0.95*lv, 1.05*lv, length(x - y)); + } + + // is zb closer than za? + float softDepthCompare(float za, float zb) + { + return clamp(1.0 - (za - zb) / _SoftZDistance, 0.0, 1.0); + } + + float4 SimpleBlur (v2f i) : SV_Target + { + float2 x = i.uv; + float2 xf = x; + + #if UNITY_UV_STARTS_AT_TOP + if (_MainTex_TexelSize.y < 0) + xf.y = 1 - xf.y; + #endif + + float2 vx = tex2D(_VelTex, xf).xy; // vel at x + + float4 sum = float4(0, 0, 0, 0); + for(int l=0; l _MaxVelocity) { + blurDir *= (_MaxVelocity / velMag); + velMag = _MaxVelocity; + } + + float4 centerTap = tex2D(_MainTex, x); + float4 sum = centerTap; + + blurDir *= smoothstep(_MinVelocity * 0.25f, _MinVelocity * 2.5, velMag); + + blurDir *= _MainTex_TexelSize.xy; + blurDir /= MOTION_SAMPLES; + + for(int i=0; i mb) ? a : b; + } + + // find dominant velocity in each tile + float4 TileMax(v2f i) : SV_Target + { + float2 tilemax = float2(0.0, 0.0); + float2 srcPos = i.uv - _MainTex_TexelSize.xy * _MaxRadiusOrKInPaper * 0.5; + + for(int y=0; y<(int)_MaxRadiusOrKInPaper; y++) { + for(int x=0; x<(int)_MaxRadiusOrKInPaper; x++) { + float2 v = tex2D(_MainTex, srcPos + float2(x,y) * _MainTex_TexelSize.xy).xy; + tilemax = vmax(tilemax, v); + } + } + return float4(tilemax, 0, 1); + } + + // find maximum velocity in any adjacent tile + float4 NeighbourMax(v2f i) : SV_Target + { + float2 maxvel = float2(0.0, 0.0); + for(int y=-1; y<=1; y++) { + for(int x=-1; x<=1; x++) { + float2 v = tex2D(_MainTex, i.uv + float2(x,y) * _MainTex_TexelSize.xy).xy; + maxvel = vmax(maxvel, v); + } + } + return float4(maxvel, 0, 1); + } + + float cone(float2 px, float2 py, float2 v) + { + return clamp(1.0 - (length(px - py) / length(v)), 0.0, 1.0); + } + + float cylinder(float2 x, float2 y, float2 v) + { + float lv = length(v); + return 1.0 - smoothstep(0.95*lv, 1.05*lv, length(x - y)); + } + + float softDepthCompare(float za, float zb) + { + return clamp(1.0 - (za - zb) / _SoftZDistance, 0.0, 1.0); + } + + float4 ReconstructFilterBlur(v2f i) : SV_Target + { + float2 x = i.uv; + float2 xf = x; + + #if UNITY_UV_STARTS_AT_TOP + if (_MainTex_TexelSize.y < 0) + xf.y = 1-xf.y; + #endif + + float2 x2 = xf; + + float2 vn = tex2D(_NeighbourMaxTex, x2).xy; // largest velocity in neighbourhood + float4 cx = tex2D(_MainTex, x); // color at x + + float zx = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, x); + zx = -Linear01Depth(zx); // depth at x + float2 vx = tex2D(_VelTex, xf).xy; // vel at x + + // random offset [-0.5, 0.5] + float j = (tex2D(_NoiseTex, i.uv * 11.0f ).r*2-1) * _Jitter; + + // sample current pixel + float weight = 1.0; + float4 sum = cx * weight; + + int centerSample = (int)(NUM_SAMPLES-1) / 2; + + // in DX11 county we take more samples and interleave with sampling along vx direction to break up "patternized" look + + for(int l=0; l0.99999) + return half4(1,1,1,1); + else + return EncodeFloatRGBA(d); + } + + ENDCG + +Subshader { + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + ENDCG + } +} + +Fallback off + +} // shader diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/ConvertDepth.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/ConvertDepth.shader.meta new file mode 100644 index 0000000..8b325fa --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/ConvertDepth.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 14768d3865b1342e3a861fbe19ba2db2 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/CreaseApply.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/CreaseApply.shader new file mode 100644 index 0000000..820be2e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/CreaseApply.shader @@ -0,0 +1,63 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + + + +Shader "Hidden/CreaseApply" { +Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _HrDepthTex ("Base (RGB)", 2D) = "white" {} + _LrDepthTex ("Base (RGB)", 2D) = "white" {} +} + +SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + +CGPROGRAM +#pragma vertex vert +#pragma fragment frag +#include "UnityCG.cginc" + +sampler2D _MainTex; +sampler2D _HrDepthTex; +sampler2D _LrDepthTex; + +uniform float4 _MainTex_TexelSize; + +uniform float intensity; + +struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; +}; + +v2f vert( appdata_img v ) +{ + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + o.uv.xy = v.texcoord.xy; + return o; +} + +half4 frag (v2f i) : SV_Target +{ + float4 hrDepth = tex2D(_HrDepthTex, i.uv); + float4 lrDepth = tex2D(_LrDepthTex, i.uv); + + hrDepth.a = DecodeFloatRGBA(hrDepth); + lrDepth.a = DecodeFloatRGBA(lrDepth); + + float4 color = tex2D(_MainTex, i.uv); + + return color * (1.0-abs(hrDepth.a-lrDepth.a)*intensity); +} + +ENDCG + + + } +} + +Fallback off + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/CreaseApply.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/CreaseApply.shader.meta new file mode 100644 index 0000000..648c60a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/CreaseApply.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: b59984d82af624bd3b0c777f038276f2 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/EdgeDetectNormals.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/EdgeDetectNormals.shader new file mode 100644 index 0000000..82f5554 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/EdgeDetectNormals.shader @@ -0,0 +1,327 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + + +Shader "Hidden/EdgeDetect" { + Properties { + _MainTex ("Base (RGB)", 2D) = "" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f { + float4 pos : SV_POSITION; + float2 uv[5] : TEXCOORD0; + }; + + struct v2fd { + float4 pos : SV_POSITION; + float2 uv[2] : TEXCOORD0; + }; + + sampler2D _MainTex; + uniform float4 _MainTex_TexelSize; + + sampler2D _CameraDepthNormalsTexture; + sampler2D_float _CameraDepthTexture; + + uniform half4 _Sensitivity; + uniform half4 _BgColor; + uniform half _BgFade; + uniform half _SampleDistance; + uniform float _Exponent; + + uniform float _Threshold; + + struct v2flum { + float4 pos : SV_POSITION; + float2 uv[3] : TEXCOORD0; + }; + + v2flum vertLum (appdata_img v) + { + v2flum o; + o.pos = UnityObjectToClipPos (v.vertex); + float2 uv = MultiplyUV( UNITY_MATRIX_TEXTURE0, v.texcoord ); + o.uv[0] = uv; + o.uv[1] = uv + float2(-_MainTex_TexelSize.x, -_MainTex_TexelSize.y) * _SampleDistance; + o.uv[2] = uv + float2(+_MainTex_TexelSize.x, -_MainTex_TexelSize.y) * _SampleDistance; + return o; + } + + + fixed4 fragLum (v2flum i) : SV_Target + { + fixed4 original = tex2D(_MainTex, i.uv[0]); + + // a very simple cross gradient filter + + half3 p1 = original.rgb; + half3 p2 = tex2D(_MainTex, i.uv[1]).rgb; + half3 p3 = tex2D(_MainTex, i.uv[2]).rgb; + + half3 diff = p1 * 2 - p2 - p3; + half len = dot(diff, diff); + len = step(len, _Threshold); + //if(len >= _Threshold) + // original.rgb = 0; + + return len * lerp(original, _BgColor, _BgFade); + } + + inline half CheckSame (half2 centerNormal, float centerDepth, half4 theSample) + { + // difference in normals + // do not bother decoding normals - there's no need here + half2 diff = abs(centerNormal - theSample.xy) * _Sensitivity.y; + int isSameNormal = (diff.x + diff.y) * _Sensitivity.y < 0.1; + // difference in depth + float sampleDepth = DecodeFloatRG (theSample.zw); + float zdiff = abs(centerDepth-sampleDepth); + // scale the required threshold by the distance + int isSameDepth = zdiff * _Sensitivity.x < 0.09 * centerDepth; + + // return: + // 1 - if normals and depth are similar enough + // 0 - otherwise + + return isSameNormal * isSameDepth ? 1.0 : 0.0; + } + + v2f vertRobert( appdata_img v ) + { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + + float2 uv = v.texcoord.xy; + o.uv[0] = uv; + + #if UNITY_UV_STARTS_AT_TOP + if (_MainTex_TexelSize.y < 0) + uv.y = 1-uv.y; + #endif + + // calc coord for the X pattern + // maybe nicer TODO for the future: 'rotated triangles' + + o.uv[1] = uv + _MainTex_TexelSize.xy * half2(1,1) * _SampleDistance; + o.uv[2] = uv + _MainTex_TexelSize.xy * half2(-1,-1) * _SampleDistance; + o.uv[3] = uv + _MainTex_TexelSize.xy * half2(-1,1) * _SampleDistance; + o.uv[4] = uv + _MainTex_TexelSize.xy * half2(1,-1) * _SampleDistance; + + return o; + } + + v2f vertThin( appdata_img v ) + { + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + + float2 uv = v.texcoord.xy; + o.uv[0] = uv; + + #if UNITY_UV_STARTS_AT_TOP + if (_MainTex_TexelSize.y < 0) + uv.y = 1-uv.y; + #endif + + o.uv[1] = uv; + o.uv[4] = uv; + + // offsets for two additional samples + o.uv[2] = uv + float2(-_MainTex_TexelSize.x, -_MainTex_TexelSize.y) * _SampleDistance; + o.uv[3] = uv + float2(+_MainTex_TexelSize.x, -_MainTex_TexelSize.y) * _SampleDistance; + + return o; + } + + v2fd vertD( appdata_img v ) + { + v2fd o; + o.pos = UnityObjectToClipPos (v.vertex); + + float2 uv = v.texcoord.xy; + o.uv[0] = uv; + + #if UNITY_UV_STARTS_AT_TOP + if (_MainTex_TexelSize.y < 0) + uv.y = 1-uv.y; + #endif + + o.uv[1] = uv; + + return o; + } + + float4 fragDCheap(v2fd i) : SV_Target + { + // inspired by borderlands implementation of popular "sobel filter" + + float centerDepth = Linear01Depth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.uv[1])); + float4 depthsDiag; + float4 depthsAxis; + + float2 uvDist = _SampleDistance * _MainTex_TexelSize.xy; + + depthsDiag.x = Linear01Depth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture,i.uv[1]+uvDist)); // TR + depthsDiag.y = Linear01Depth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture,i.uv[1]+uvDist*float2(-1,1))); // TL + depthsDiag.z = Linear01Depth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture,i.uv[1]-uvDist*float2(-1,1))); // BR + depthsDiag.w = Linear01Depth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture,i.uv[1]-uvDist)); // BL + + depthsAxis.x = Linear01Depth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture,i.uv[1]+uvDist*float2(0,1))); // T + depthsAxis.y = Linear01Depth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture,i.uv[1]-uvDist*float2(1,0))); // L + depthsAxis.z = Linear01Depth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture,i.uv[1]+uvDist*float2(1,0))); // R + depthsAxis.w = Linear01Depth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture,i.uv[1]-uvDist*float2(0,1))); // B + + depthsDiag -= centerDepth; + depthsAxis /= centerDepth; + + const float4 HorizDiagCoeff = float4(1,1,-1,-1); + const float4 VertDiagCoeff = float4(-1,1,-1,1); + const float4 HorizAxisCoeff = float4(1,0,0,-1); + const float4 VertAxisCoeff = float4(0,1,-1,0); + + float4 SobelH = depthsDiag * HorizDiagCoeff + depthsAxis * HorizAxisCoeff; + float4 SobelV = depthsDiag * VertDiagCoeff + depthsAxis * VertAxisCoeff; + + float SobelX = dot(SobelH, float4(1,1,1,1)); + float SobelY = dot(SobelV, float4(1,1,1,1)); + float Sobel = sqrt(SobelX * SobelX + SobelY * SobelY); + + Sobel = 1.0-pow(saturate(Sobel), _Exponent); + return Sobel * lerp(tex2D(_MainTex, i.uv[0].xy), _BgColor, _BgFade); + } + + // pretty much also just a sobel filter, except for that edges "outside" the silhouette get discarded + // which makes it compatible with other depth based post fx + + float4 fragD(v2fd i) : SV_Target + { + // inspired by borderlands implementation of popular "sobel filter" + + float centerDepth = Linear01Depth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.uv[1])); + float4 depthsDiag; + float4 depthsAxis; + + float2 uvDist = _SampleDistance * _MainTex_TexelSize.xy; + + depthsDiag.x = Linear01Depth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture,i.uv[1]+uvDist)); // TR + depthsDiag.y = Linear01Depth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture,i.uv[1]+uvDist*float2(-1,1))); // TL + depthsDiag.z = Linear01Depth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture,i.uv[1]-uvDist*float2(-1,1))); // BR + depthsDiag.w = Linear01Depth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture,i.uv[1]-uvDist)); // BL + + depthsAxis.x = Linear01Depth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture,i.uv[1]+uvDist*float2(0,1))); // T + depthsAxis.y = Linear01Depth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture,i.uv[1]-uvDist*float2(1,0))); // L + depthsAxis.z = Linear01Depth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture,i.uv[1]+uvDist*float2(1,0))); // R + depthsAxis.w = Linear01Depth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture,i.uv[1]-uvDist*float2(0,1))); // B + + // make it work nicely with depth based image effects such as depth of field: + depthsDiag = (depthsDiag > centerDepth.xxxx) ? depthsDiag : centerDepth.xxxx; + depthsAxis = (depthsAxis > centerDepth.xxxx) ? depthsAxis : centerDepth.xxxx; + + depthsDiag -= centerDepth; + depthsAxis /= centerDepth; + + const float4 HorizDiagCoeff = float4(1,1,-1,-1); + const float4 VertDiagCoeff = float4(-1,1,-1,1); + const float4 HorizAxisCoeff = float4(1,0,0,-1); + const float4 VertAxisCoeff = float4(0,1,-1,0); + + float4 SobelH = depthsDiag * HorizDiagCoeff + depthsAxis * HorizAxisCoeff; + float4 SobelV = depthsDiag * VertDiagCoeff + depthsAxis * VertAxisCoeff; + + float SobelX = dot(SobelH, float4(1,1,1,1)); + float SobelY = dot(SobelV, float4(1,1,1,1)); + float Sobel = sqrt(SobelX * SobelX + SobelY * SobelY); + + Sobel = 1.0-pow(saturate(Sobel), _Exponent); + return Sobel * lerp(tex2D(_MainTex, i.uv[0].xy), _BgColor, _BgFade); + } + + half4 fragRobert(v2f i) : SV_Target { + half4 sample1 = tex2D(_CameraDepthNormalsTexture, i.uv[1].xy); + half4 sample2 = tex2D(_CameraDepthNormalsTexture, i.uv[2].xy); + half4 sample3 = tex2D(_CameraDepthNormalsTexture, i.uv[3].xy); + half4 sample4 = tex2D(_CameraDepthNormalsTexture, i.uv[4].xy); + + half edge = 1.0; + + edge *= CheckSame(sample1.xy, DecodeFloatRG(sample1.zw), sample2); + edge *= CheckSame(sample3.xy, DecodeFloatRG(sample3.zw), sample4); + + return edge * lerp(tex2D(_MainTex, i.uv[0]), _BgColor, _BgFade); + } + + half4 fragThin (v2f i) : SV_Target + { + half4 original = tex2D(_MainTex, i.uv[0]); + + half4 center = tex2D (_CameraDepthNormalsTexture, i.uv[1]); + half4 sample1 = tex2D (_CameraDepthNormalsTexture, i.uv[2]); + half4 sample2 = tex2D (_CameraDepthNormalsTexture, i.uv[3]); + + // encoded normal + half2 centerNormal = center.xy; + // decoded depth + float centerDepth = DecodeFloatRG (center.zw); + + half edge = 1.0; + + edge *= CheckSame(centerNormal, centerDepth, sample1); + edge *= CheckSame(centerNormal, centerDepth, sample2); + + return edge * lerp(original, _BgColor, _BgFade); + } + + ENDCG + +Subshader { + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vertThin + #pragma fragment fragThin + ENDCG + } + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vertRobert + #pragma fragment fragRobert + ENDCG + } + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma target 3.0 + #pragma vertex vertD + #pragma fragment fragDCheap + ENDCG + } + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma target 3.0 + #pragma vertex vertD + #pragma fragment fragD + ENDCG + } + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma target 3.0 + #pragma vertex vertLum + #pragma fragment fragLum + ENDCG + } +} + +Fallback off + +} // shader diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/EdgeDetectNormals.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/EdgeDetectNormals.shader.meta new file mode 100644 index 0000000..328c9db --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/EdgeDetectNormals.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 0d1644bdf064147baa97f235fc5b4903 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/FisheyeShader.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/FisheyeShader.shader new file mode 100644 index 0000000..ad5d896 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/FisheyeShader.shader @@ -0,0 +1,60 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/FisheyeShader" { + Properties { + _MainTex ("Base (RGB)", 2D) = "" {} + } + + // Shader code pasted into all further CGPROGRAM blocks + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + sampler2D _MainTex; + + float2 intensity; + + v2f vert( appdata_img v ) + { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = v.texcoord.xy; + return o; + } + + half4 frag(v2f i) : SV_Target + { + half2 coords = i.uv; + coords = (coords - 0.5) * 2.0; + + half2 realCoordOffs; + realCoordOffs.x = (1-coords.y * coords.y) * intensity.y * (coords.x); + realCoordOffs.y = (1-coords.x * coords.x) * intensity.x * (coords.y); + + half4 color = tex2D (_MainTex, i.uv - realCoordOffs); + + return color; + } + + ENDCG + +Subshader { + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + ENDCG + } + +} + +Fallback off + +} // shader diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/FisheyeShader.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/FisheyeShader.shader.meta new file mode 100644 index 0000000..8eb2318 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/FisheyeShader.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 874ceab4425f64bccb1d14032f4452b1 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/GlobalFog.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/GlobalFog.shader new file mode 100644 index 0000000..adbfd8b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/GlobalFog.shader @@ -0,0 +1,188 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/GlobalFog" { +Properties { + _MainTex ("Base (RGB)", 2D) = "black" {} +} + +CGINCLUDE + + #include "UnityCG.cginc" + + uniform sampler2D _MainTex; + uniform sampler2D_float _CameraDepthTexture; + + // x = fog height + // y = FdotC (CameraY-FogHeight) + // z = k (FdotC > 0.0) + // w = a/2 + uniform float4 _HeightParams; + + // x = start distance + uniform float4 _DistanceParams; + + int4 _SceneFogMode; // x = fog mode, y = use radial flag + float4 _SceneFogParams; + #ifndef UNITY_APPLY_FOG + half4 unity_FogColor; + half4 unity_FogDensity; + #endif + + uniform float4 _MainTex_TexelSize; + + // for fast world space reconstruction + uniform float4x4 _FrustumCornersWS; + uniform float4 _CameraWS; + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float2 uv_depth : TEXCOORD1; + float4 interpolatedRay : TEXCOORD2; + }; + + v2f vert (appdata_img v) + { + v2f o; + half index = v.vertex.z; + v.vertex.z = 0.1; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = v.texcoord.xy; + o.uv_depth = v.texcoord.xy; + + #if UNITY_UV_STARTS_AT_TOP + if (_MainTex_TexelSize.y < 0) + o.uv.y = 1-o.uv.y; + #endif + + o.interpolatedRay = _FrustumCornersWS[(int)index]; + o.interpolatedRay.w = index; + + return o; + } + + // Applies one of standard fog formulas, given fog coordinate (i.e. distance) + half ComputeFogFactor (float coord) + { + float fogFac = 0.0; + if (_SceneFogMode.x == 1) // linear + { + // factor = (end-z)/(end-start) = z * (-1/(end-start)) + (end/(end-start)) + fogFac = coord * _SceneFogParams.z + _SceneFogParams.w; + } + if (_SceneFogMode.x == 2) // exp + { + // factor = exp(-density*z) + fogFac = _SceneFogParams.y * coord; fogFac = exp2(-fogFac); + } + if (_SceneFogMode.x == 3) // exp2 + { + // factor = exp(-(density*z)^2) + fogFac = _SceneFogParams.x * coord; fogFac = exp2(-fogFac*fogFac); + } + return saturate(fogFac); + } + + // Distance-based fog + float ComputeDistance (float3 camDir, float zdepth) + { + float dist; + if (_SceneFogMode.y == 1) + dist = length(camDir); + else + dist = zdepth * _ProjectionParams.z; + // Built-in fog starts at near plane, so match that by + // subtracting the near value. Not a perfect approximation + // if near plane is very large, but good enough. + dist -= _ProjectionParams.y; + return dist; + } + + // Linear half-space fog, from https://www.terathon.com/lengyel/Lengyel-UnifiedFog.pdf + float ComputeHalfSpace (float3 wsDir) + { + float3 wpos = _CameraWS + wsDir; + float FH = _HeightParams.x; + float3 C = _CameraWS; + float3 V = wsDir; + float3 P = wpos; + float3 aV = _HeightParams.w * V; + float FdotC = _HeightParams.y; + float k = _HeightParams.z; + float FdotP = P.y-FH; + float FdotV = wsDir.y; + float c1 = k * (FdotP + FdotC); + float c2 = (1-2*k) * FdotP; + float g = min(c2, 0.0); + g = -length(aV) * (c1 - g * g / abs(FdotV+1.0e-5f)); + return g; + } + + half4 ComputeFog (v2f i, bool distance, bool height) : SV_Target + { + half4 sceneColor = tex2D(_MainTex, i.uv); + + // Reconstruct world space position & direction + // towards this screen pixel. + float rawDepth = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture,i.uv_depth); + float dpth = Linear01Depth(rawDepth); + float4 wsDir = dpth * i.interpolatedRay; + float4 wsPos = _CameraWS + wsDir; + + // Compute fog distance + float g = _DistanceParams.x; + if (distance) + g += ComputeDistance (wsDir, dpth); + if (height) + g += ComputeHalfSpace (wsDir); + + // Compute fog amount + half fogFac = ComputeFogFactor (max(0.0,g)); + // Do not fog skybox + if (rawDepth == _DistanceParams.y) + fogFac = 1.0; + //return fogFac; // for debugging + + // Lerp between fog color & original scene color + // by fog amount + return lerp (unity_FogColor, sceneColor, fogFac); + } + +ENDCG + +SubShader +{ + ZTest Always Cull Off ZWrite Off Fog { Mode Off } + + // 0: distance + height + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + half4 frag (v2f i) : SV_Target { return ComputeFog (i, true, true); } + ENDCG + } + // 1: distance + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + half4 frag (v2f i) : SV_Target { return ComputeFog (i, true, false); } + ENDCG + } + // 2: height + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + half4 frag (v2f i) : SV_Target { return ComputeFog (i, false, true); } + ENDCG + } +} + +Fallback off + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/GlobalFog.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/GlobalFog.shader.meta new file mode 100644 index 0000000..bcb93d2 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/GlobalFog.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 70d8568987ac0499f952b54c7c13e265 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/GrayscaleEffect.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/GrayscaleEffect.shader new file mode 100644 index 0000000..2d27c9d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/GrayscaleEffect.shader @@ -0,0 +1,36 @@ +Shader "Hidden/Grayscale Effect" { +Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _RampTex ("Base (RGB)", 2D) = "grayscaleRamp" {} +} + +SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + +CGPROGRAM +#pragma vertex vert_img +#pragma fragment frag +#include "UnityCG.cginc" + +uniform sampler2D _MainTex; +uniform sampler2D _RampTex; +uniform half _RampOffset; + +fixed4 frag (v2f_img i) : SV_Target +{ + fixed4 original = tex2D(_MainTex, i.uv); + fixed grayscale = Luminance(original.rgb); + half2 remap = half2 (grayscale + _RampOffset, .5); + fixed4 output = tex2D(_RampTex, remap); + output.a = original.a; + return output; +} +ENDCG + + } +} + +Fallback off + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/GrayscaleEffect.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/GrayscaleEffect.shader.meta new file mode 100644 index 0000000..5fbca77 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/GrayscaleEffect.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: daf9781cad112c75d0008dfa8d76c639 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/MotionBlur.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/MotionBlur.shader new file mode 100644 index 0000000..2242495 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/MotionBlur.shader @@ -0,0 +1,122 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/MotionBlur" { +Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _AccumOrig("AccumOrig", Float) = 0.65 +} + + SubShader { + ZTest Always Cull Off ZWrite Off + Pass { + Blend SrcAlpha OneMinusSrcAlpha + ColorMask RGB + BindChannels { + Bind "vertex", vertex + Bind "texcoord", texcoord + } + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct appdata_t { + float4 vertex : POSITION; + float2 texcoord : TEXCOORD; + }; + + struct v2f { + float4 vertex : SV_POSITION; + float2 texcoord : TEXCOORD; + }; + + float4 _MainTex_ST; + float _AccumOrig; + + v2f vert (appdata_t v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex); + return o; + } + + sampler2D _MainTex; + + half4 frag (v2f i) : SV_Target + { + return half4(tex2D(_MainTex, i.texcoord).rgb, _AccumOrig ); + } + ENDCG + } + + Pass { + Blend One Zero + ColorMask A + + BindChannels { + Bind "vertex", vertex + Bind "texcoord", texcoord + } + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct appdata_t { + float4 vertex : POSITION; + float2 texcoord : TEXCOORD; + }; + + struct v2f { + float4 vertex : SV_POSITION; + float2 texcoord : TEXCOORD; + }; + + float4 _MainTex_ST; + + v2f vert (appdata_t v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex); + return o; + } + + sampler2D _MainTex; + + half4 frag (v2f i) : SV_Target + { + return tex2D(_MainTex, i.texcoord); + } + ENDCG + } + + } + +SubShader { + ZTest Always Cull Off ZWrite Off + Pass { + Blend SrcAlpha OneMinusSrcAlpha + ColorMask RGB + SetTexture [_MainTex] { + ConstantColor (0,0,0,[_AccumOrig]) + Combine texture, constant + } + } + Pass { + Blend One Zero + ColorMask A + SetTexture [_MainTex] { + Combine texture + } + } +} + +Fallback off + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/MotionBlur.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/MotionBlur.shader.meta new file mode 100644 index 0000000..281af89 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/MotionBlur.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: e9ba2083ad114a07d000fbfb8d76c639 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/MotionBlurClear.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/MotionBlurClear.shader new file mode 100644 index 0000000..24dea58 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/MotionBlurClear.shader @@ -0,0 +1,60 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + + +Shader "Hidden/MotionBlurClear" +{ + +Properties { } + +SubShader { +Pass { + //ZTest LEqual + ZTest Always // lame depth test + ZWrite Off // lame depth test + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct vs_input { + float4 vertex : POSITION; + }; + + struct ps_input { + float4 pos : SV_POSITION; + float4 screen : TEXCOORD0; + }; + + sampler2D_float _CameraDepthTexture; + + ps_input vert (vs_input v) + { + ps_input o; + o.pos = UnityObjectToClipPos (v.vertex); + o.screen = ComputeScreenPos(o.pos); + COMPUTE_EYEDEPTH(o.screen.z); + return o; + } + + float4 frag (ps_input i) : SV_Target + { + // superlame: manual depth test needed as we can't bind depth, FIXME for 4.x + // alternatively implement SM > 3 version where we write out custom depth + + float d = SAMPLE_DEPTH_TEXTURE_PROJ(_CameraDepthTexture, UNITY_PROJ_COORD(i.screen)); + d = LinearEyeDepth(d); + + clip(d - i.screen.z + 1e-2f); + return float4(0, 0, 0, 0); + } + + ENDCG + + } +} + +Fallback Off +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/MotionBlurClear.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/MotionBlurClear.shader.meta new file mode 100644 index 0000000..3e9e48f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/MotionBlurClear.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 7699c5fbfa27745a1abe111ab7bf9785 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseAndGrain.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseAndGrain.shader new file mode 100644 index 0000000..a1dc44a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseAndGrain.shader @@ -0,0 +1,158 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/NoiseAndGrain" { + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _NoiseTex ("Noise (RGB)", 2D) = "white" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + sampler2D _MainTex; + sampler2D _NoiseTex; + float4 _NoiseTex_TexelSize; + + uniform float4 _MainTex_TexelSize; + + uniform float3 _NoisePerChannel; + uniform float3 _NoiseTilingPerChannel; + uniform float3 _NoiseAmount; + uniform float3 _ThreshholdRGB; + uniform float3 _MidGrey; + + struct v2f + { + float4 pos : SV_POSITION; + float2 uv_screen : TEXCOORD0; + float4 uvRg : TEXCOORD1; + float2 uvB : TEXCOORD2; + }; + + struct appdata_img2 + { + float4 vertex : POSITION; + float2 texcoord : TEXCOORD0; + float2 texcoord1 : TEXCOORD1; + }; + + inline float3 Overlay(float3 m, float3 color) { + color = saturate(color); + float3 check = step(float3(0.5,0.5,0.5), color.rgb); + float3 result = check * (float3(1,1,1) - ((float3(1,1,1) - 2*(color.rgb-0.5)) * (1-m.rgb))); + result += (1-check) * (2*color.rgb) * m.rgb; + return result; + } + + v2f vert (appdata_img2 v) + { + v2f o; + + o.pos = UnityObjectToClipPos (v.vertex); + + #if UNITY_UV_STARTS_AT_TOP + o.uv_screen = v.vertex.xyxy; + if (_MainTex_TexelSize.y < 0) + o.uv_screen.y = 1-o.uv_screen.y; + #else + o.uv_screen = v.vertex.xy; + #endif + + // different tiling for 3 channels + o.uvRg = v.texcoord.xyxy + v.texcoord1.xyxy * _NoiseTilingPerChannel.rrgg * _NoiseTex_TexelSize.xyxy; + o.uvB = v.texcoord.xy + v.texcoord1.xy * _NoiseTilingPerChannel.bb * _NoiseTex_TexelSize.xy; + + return o; + } + + float4 frag ( v2f i ) : SV_Target + { + float4 color = (tex2D (_MainTex, i.uv_screen.xy)); + + // black & white intensities + float2 blackWhiteCurve = Luminance(color.rgb) - _MidGrey.x; // maybe tweak middle grey + blackWhiteCurve.xy = saturate(blackWhiteCurve.xy * _MidGrey.yz); //float2(1.0/0.8, -1.0/0.2)); + + float finalIntensity = _NoiseAmount.x + max(0.0f, dot(_NoiseAmount.zy, blackWhiteCurve.xy)); + + // fetching & scaling noise (COMPILER BUG WORKAROUND) + float3 m = float3(0,0,0); + m += (tex2D(_NoiseTex, i.uvRg.xy) * float4(1,0,0,0)).rgb; + m += (tex2D(_NoiseTex, i.uvRg.zw) * float4(0,1,0,0)).rgb; + m += (tex2D(_NoiseTex, i.uvB.xy) * float4(0,0,1,0)).rgb; + + m = saturate(lerp(float3(0.5,0.5,0.5), m, _NoisePerChannel.rgb * float3(finalIntensity,finalIntensity,finalIntensity) )); + + return float4(Overlay(m, color.rgb), color.a); + } + + float4 fragTmp ( v2f i ) : SV_Target + { + float4 color = (tex2D (_MainTex, i.uv_screen.xy)); + + // black & white intensities + float2 blackWhiteCurve = Luminance(color.rgb) - _MidGrey.x; // maybe tweak middle grey + blackWhiteCurve.xy = saturate(blackWhiteCurve.xy * _MidGrey.yz); //float2(1.0/0.8, -1.0/0.2)); + + float finalIntensity = _NoiseAmount.x + max(0.0f, dot(_NoiseAmount.zy, blackWhiteCurve.xy)); + + // fetching & scaling noise (COMPILER BUG WORKAROUND) + float3 m = float3(0,0,0); + m += (tex2D(_NoiseTex, i.uvRg.xy) * float4(1,0,0,0)).rgb; + m += (tex2D(_NoiseTex, i.uvRg.zw) * float4(0,1,0,0)).rgb; + m += (tex2D(_NoiseTex, i.uvB.xy) * float4(0,0,1,0)).rgb; + + m = saturate(lerp(float3(0.5,0.5,0.5), m, _NoisePerChannel.rgb * float3(finalIntensity,finalIntensity,finalIntensity))); + + return float4(m.rgb, color.a); + } + + float4 fragOverlayBlend ( v2f i ) : SV_Target + { + float4 color = tex2D(_MainTex, i.uv_screen.xy); + float4 m = tex2D(_NoiseTex, i.uv_screen.xy); + + return float4(Overlay(m, color.rgb), color.a); + } + + ENDCG + + SubShader { + ZTest Always Cull Off ZWrite Off Blend Off + + Pass { + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + + ENDCG + + } + + Pass { + + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragOverlayBlend + + ENDCG + + } + + Pass { + + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragTmp + + ENDCG + + } + } + FallBack Off +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseAndGrain.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseAndGrain.shader.meta new file mode 100644 index 0000000..4f9286a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseAndGrain.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: b0249d8c935344451aa4de6db76f0688 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseAndGrainDX11.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseAndGrainDX11.shader new file mode 100644 index 0000000..1b8e347 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseAndGrainDX11.shader @@ -0,0 +1,239 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/NoiseAndGrainDX11" { + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _NoiseTex ("Noise (RGB)", 2D) = "white" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + sampler2D _MainTex; + sampler2D _NoiseTex; + float4 _NoiseTex_TexelSize; + + uniform float4 _MainTex_TexelSize; + + uniform float3 _NoisePerChannel; + uniform float3 _NoiseTilingPerChannel; + uniform float3 _NoiseAmount; + uniform float3 _ThreshholdRGB; + uniform float3 _MidGrey; + uniform float _DX11NoiseTime; + + // DX11 noise helper functions, credit: rgba/iq + + int ihash(int n) + { + n = (n<<13)^n; + return (n*(n*n*15731+789221)+1376312589) & 2147483647; + } + + float frand(int n) + { + return ihash(n) / 2147483647.0; + } + + float cellNoise1f(int3 p) + { + return frand(p.z*65536 + p.y*256 + p.x);//*2.0-1.0; + } + + float3 cellNoise3f(int3 p) + { + int i = p.z*65536 + p.y*256 + p.x; + return float3(frand(i), frand(i + 57), frand(i + 113));//*2.0-1.0; + } + + struct v2f + { + float4 pos : SV_POSITION; + float2 uv_screen : TEXCOORD0; + float4 uvRg : TEXCOORD1; + float2 uvB : TEXCOORD2; + float2 uvOffsets : TEXCOORD4; + }; + + struct appdata_img2 + { + float4 vertex : POSITION; + float2 texcoord : TEXCOORD0; + float2 texcoord1 : TEXCOORD1; + }; + + inline float3 Overlay(float3 m, float3 color) { + float3 check = step(0.5, color.rgb); + float3 result = check * (float3(1,1,1) - ((float3(1,1,1) - 2*(color.rgb-0.5)) * (1-m.rgb))); + result += (1-check) * (2*color.rgb) * m.rgb; + return result; + } + + v2f vert (appdata_img2 v) + { + v2f o; + + o.pos = UnityObjectToClipPos (v.vertex); + + #if UNITY_UV_STARTS_AT_TOP + o.uv_screen = v.vertex.xyxy; + if (_MainTex_TexelSize.y < 0) + o.uv_screen.y = 1-o.uv_screen.y; + #else + o.uv_screen = v.vertex.xy; + #endif + + // different tiling for 3 channels + o.uvRg = v.texcoord.xyxy + v.texcoord1.xyxy * _NoiseTilingPerChannel.rrgg * _NoiseTex_TexelSize.xyxy; + o.uvB = v.texcoord.xy + v.texcoord1.xy * _NoiseTilingPerChannel.bb * _NoiseTex_TexelSize.xy; + + o.uvOffsets = v.texcoord.xy; + + return o; + } + + float4 fragDX11 ( v2f i ) : SV_Target + { + float4 color = saturate(tex2D (_MainTex, i.uv_screen.xy)); + + // black & white intensities + float2 blackWhiteCurve = Luminance(color.rgb) - _MidGrey.x; // maybe tweak middle grey + blackWhiteCurve.xy = saturate(blackWhiteCurve.xy * _MidGrey.yz); //float2(1.0/0.8, -1.0/0.2)); + + float finalIntensity = _NoiseAmount.x + max(0.0f, dot(_NoiseAmount.zy, blackWhiteCurve.xy)); + + float3 m = cellNoise3f(float3( (i.uv_screen.xy + i.uvOffsets) * _MainTex_TexelSize.zw, _DX11NoiseTime)); + m = saturate(lerp(float3(0.5,0.5,0.5), m, _NoisePerChannel.rgb * finalIntensity)); + + return float4(Overlay(m, color.rgb), color.a); + } + + float4 fragDX11Monochrome ( v2f i ) : SV_Target + { + float4 color = saturate(tex2D (_MainTex, i.uv_screen.xy)); + + // black & white intensities + float2 blackWhiteCurve = Luminance(color.rgb) - _MidGrey.x; // maybe tweak middle grey + blackWhiteCurve.xy = saturate(blackWhiteCurve.xy * _MidGrey.yz); //float2(1.0/0.8, -1.0/0.2)); + + float finalIntensity = _NoiseAmount.x + max(0.0f, dot(_NoiseAmount.zy, blackWhiteCurve.xy)); + + float3 m = cellNoise1f(float3( (i.uv_screen.xy + i.uvOffsets) * _MainTex_TexelSize.zw, _DX11NoiseTime)); + m = saturate(lerp(float3(0.5,0.5,0.5), m, finalIntensity)); + + return float4(Overlay(m, color.rgb), color.a); + } + + float4 fragDX11Tmp ( v2f i ) : SV_Target + { + float4 color = saturate(tex2D (_MainTex, i.uv_screen.xy)); + + // black & white intensities + float2 blackWhiteCurve = Luminance(color.rgb) - _MidGrey.x; // maybe tweak middle grey + blackWhiteCurve.xy = saturate(blackWhiteCurve.xy * _MidGrey.yz); //float2(1.0/0.8, -1.0/0.2)); + + float finalIntensity = _NoiseAmount.x + max(0.0f, dot(_NoiseAmount.zy, blackWhiteCurve.xy)); + + float3 m = cellNoise3f(float3( (i.uv_screen.xy + i.uvOffsets) * _MainTex_TexelSize.zw, _DX11NoiseTime)); + m = saturate(lerp(float3(0.5,0.5,0.5), m, _NoisePerChannel.rgb * finalIntensity)); + + return float4(m.rgb, color.a); + } + + float4 fragDX11MonochromeTmp ( v2f i ) : SV_Target + { + float4 color = saturate(tex2D (_MainTex, i.uv_screen.xy)); + + // black & white intensities + float2 blackWhiteCurve = Luminance(color.rgb) - _MidGrey.x; // maybe tweak middle grey + blackWhiteCurve.xy = saturate(blackWhiteCurve.xy * _MidGrey.yz); //float2(1.0/0.8, -1.0/0.2)); + + float finalIntensity = _NoiseAmount.x + max(0.0f, dot(_NoiseAmount.zy, blackWhiteCurve.xy)); + + float3 m = cellNoise1f(float3( (i.uv_screen.xy + i.uvOffsets) * _MainTex_TexelSize.zw, _DX11NoiseTime)); + m = saturate(lerp(float3(0.5,0.5,0.5), m, finalIntensity)); + + return float4(m.rgb, color.a); + } + + float4 fragOverlayBlend ( v2f i ) : SV_Target + { + float4 color = saturate(tex2D (_MainTex, i.uv_screen.xy)); + float4 m = saturate(tex2D (_NoiseTex, i.uv_screen.xy)); + + return float4(Overlay(m, color.rgb), color.a); + } + + ENDCG + + SubShader { + ZTest Always Cull Off ZWrite Off Blend Off + + Pass { + + CGPROGRAM + + #pragma exclude_renderers gles xbox360 ps3 d3d9 + #pragma target 5.0 + #pragma vertex vert + #pragma fragment fragDX11 + + ENDCG + + } + + Pass { + + CGPROGRAM + + #pragma exclude_renderers gles xbox360 ps3 d3d9 + #pragma target 5.0 + #pragma vertex vert + #pragma fragment fragDX11Monochrome + + ENDCG + + } + + Pass { + + CGPROGRAM + + #pragma exclude_renderers gles xbox360 ps3 d3d9 + #pragma target 5.0 + #pragma vertex vert + #pragma fragment fragDX11Tmp + + ENDCG + + } + + Pass { + + CGPROGRAM + + #pragma exclude_renderers gles xbox360 ps3 d3d9 + #pragma target 5.0 + #pragma vertex vert + #pragma fragment fragDX11MonochromeTmp + + ENDCG + + } + + Pass { + + CGPROGRAM + + #pragma exclude_renderers gles xbox360 ps3 d3d9 + #pragma target 5.0 + #pragma vertex vert + #pragma fragment fragOverlayBlend + + ENDCG + + } + } + FallBack Off +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseAndGrainDX11.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseAndGrainDX11.shader.meta new file mode 100644 index 0000000..829e8e3 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseAndGrainDX11.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 8b30686bb4322ab42ad5eb50a0210b58 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseEffectShaderRGB.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseEffectShaderRGB.shader new file mode 100644 index 0000000..90f2858 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseEffectShaderRGB.shader @@ -0,0 +1,64 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/Noise Shader RGB" { +Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _GrainTex ("Base (RGB)", 2D) = "gray" {} + _ScratchTex ("Base (RGB)", 2D) = "gray" {} +} + +SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + +CGPROGRAM +#pragma vertex vert +#pragma fragment frag +#include "UnityCG.cginc" + +struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float2 uvg : TEXCOORD1; // grain + float2 uvs : TEXCOORD2; // scratch +}; + +uniform sampler2D _MainTex; +uniform sampler2D _GrainTex; +uniform sampler2D _ScratchTex; + +uniform float4 _GrainOffsetScale; +uniform float4 _ScratchOffsetScale; +uniform fixed4 _Intensity; // x=grain, y=scratch + +v2f vert (appdata_img v) +{ + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = MultiplyUV (UNITY_MATRIX_TEXTURE0, v.texcoord); + o.uvg = v.texcoord.xy * _GrainOffsetScale.zw + _GrainOffsetScale.xy; + o.uvs = v.texcoord.xy * _ScratchOffsetScale.zw + _ScratchOffsetScale.xy; + return o; +} + +fixed4 frag (v2f i) : SV_Target +{ + fixed4 col = tex2D(_MainTex, i.uv); + + // sample noise texture and do a signed add + fixed3 grain = tex2D(_GrainTex, i.uvg).rgb * 2 - 1; + col.rgb += grain * _Intensity.x; + + // sample scratch texture and do a signed add + fixed3 scratch = tex2D(_ScratchTex, i.uvs).rgb * 2 - 1; + col.rgb += scratch * _Intensity.y; + + return col; +} +ENDCG + } +} + +Fallback off + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseEffectShaderRGB.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseEffectShaderRGB.shader.meta new file mode 100644 index 0000000..e11fb85 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseEffectShaderRGB.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 5d7f4c401ae8946bcb0d6ff68a9e7466 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseEffectShaderYUV.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseEffectShaderYUV.shader new file mode 100644 index 0000000..d13cdbe --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseEffectShaderYUV.shader @@ -0,0 +1,75 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/Noise Shader YUV" { +Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _GrainTex ("Base (RGB)", 2D) = "gray" {} + _ScratchTex ("Base (RGB)", 2D) = "gray" {} +} + +SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + +CGPROGRAM +#pragma vertex vert +#pragma fragment frag +#include "UnityCG.cginc" + +struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float2 uvg : TEXCOORD1; // grain + float2 uvs : TEXCOORD2; // scratch +}; + +uniform sampler2D _MainTex; +uniform sampler2D _GrainTex; +uniform sampler2D _ScratchTex; + +uniform float4 _GrainOffsetScale; +uniform float4 _ScratchOffsetScale; +uniform fixed4 _Intensity; // x=grain, y=scratch + +v2f vert (appdata_img v) +{ + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = MultiplyUV (UNITY_MATRIX_TEXTURE0, v.texcoord); + o.uvg = v.texcoord.xy * _GrainOffsetScale.zw + _GrainOffsetScale.xy; + o.uvs = v.texcoord.xy * _ScratchOffsetScale.zw + _ScratchOffsetScale.xy; + return o; +} + +fixed4 frag (v2f i) : SV_Target +{ + fixed4 col = tex2D(_MainTex, i.uv); + + // convert to YUV + fixed3 yuv; + yuv.x = dot( col.rgb, half3(0.299,0.587,0.114) ); + yuv.y = (col.b-yuv.x)*0.492; + yuv.z = (col.r-yuv.x)*0.877; + + // sample noise texture and do a signed add + fixed3 grain = tex2D(_GrainTex, i.uvg).rgb * 2 - 1; + yuv.rgb += grain * _Intensity.x; + + // convert back to rgb + col.r = yuv.z * 1.140 + yuv.x; + col.g = yuv.z * (-0.581) + yuv.y * (-0.395) + yuv.x; + col.b = yuv.y * 2.032 + yuv.x; + + // sample scratch texture and add + fixed3 scratch = tex2D(_ScratchTex, i.uvs).rgb * 2 - 1; + col.rgb += scratch * _Intensity.y; + + return col; +} +ENDCG + } +} + +Fallback off + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseEffectShaderYUV.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseEffectShaderYUV.shader.meta new file mode 100644 index 0000000..b817ce9 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/NoiseEffectShaderYUV.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 0e447868506ba49f0a73235b8a8b647a +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/PrepareSunShaftsBlur.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/PrepareSunShaftsBlur.shader new file mode 100644 index 0000000..5c8891a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/PrepareSunShaftsBlur.shader @@ -0,0 +1,99 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + + +Shader "Hidden/PrepareSunShaftsBlur" { + Properties { + _MainTex ("Base", 2D) = "" {} + _Skybox ("Skybox", 2D) = "" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + sampler2D _MainTex; + sampler2D _Skybox; + sampler2D_float _CameraDepthTexture; + + uniform half _NoSkyBoxMask; + uniform half4 _SunPosition; + + v2f vert (appdata_img v) { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = v.texcoord.xy; + return o; + } + + half TransformColor (half4 skyboxValue) { + return max (skyboxValue.a, _NoSkyBoxMask * dot (skyboxValue.rgb, float3 (0.59,0.3,0.11))); + } + + half4 frag (v2f i) : SV_Target { + float depthSample = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.xy); + half4 tex = tex2D (_MainTex, i.uv.xy); + + depthSample = Linear01Depth (depthSample); + + // consider maximum radius + half2 vec = _SunPosition.xy - i.uv.xy; + half dist = saturate (_SunPosition.w - length (vec.xy)); + + half4 outColor = 0; + + // consider shafts blockers + if (depthSample > 0.99) + outColor = TransformColor (tex) * dist; + + return outColor; + } + + half4 fragNoDepthNeeded (v2f i) : SV_Target { + float4 sky = (tex2D (_Skybox, i.uv.xy)); + float4 tex = (tex2D (_MainTex, i.uv.xy)); + + // consider maximum radius + half2 vec = _SunPosition.xy - i.uv.xy; + half dist = saturate (_SunPosition.w - length (vec)); + + half4 outColor = 0; + + if (Luminance ( abs(sky.rgb - tex.rgb)) < 0.2) + outColor = TransformColor (sky) * dist; + + return outColor; + } + + ENDCG + +Subshader { + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + + ENDCG + } + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragNoDepthNeeded + + ENDCG + } +} + +Fallback off + +} // shader diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/PrepareSunShaftsBlur.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/PrepareSunShaftsBlur.shader.meta new file mode 100644 index 0000000..e32df02 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/PrepareSunShaftsBlur.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 9ad381ed8492840ab9f165df743e4826 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/RadialBlur.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/RadialBlur.shader new file mode 100644 index 0000000..5e0025c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/RadialBlur.shader @@ -0,0 +1,73 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/RadialBlur" +{ + Properties { + _MainTex ("Base (RGB)", 2D) = "" {} + } + + // Shader code pasted into all further CGPROGRAM blocks + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float2 blurVector : TEXCOORD1; + }; + + sampler2D _MainTex; + + float4 _BlurRadius4; + float4 _SunPosition; + + float4 _MainTex_TexelSize; + + v2f vert( appdata_img v ) { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv.xy = v.texcoord.xy; + + o.blurVector = (_SunPosition.xy - v.texcoord.xy) * _BlurRadius4.xy; + + return o; + } + + #define SAMPLES_FLOAT 6.0f + #define SAMPLES_INT 6 + + half4 frag(v2f i) : SV_Target + { + half4 color = half4(0,0,0,0); + + for(int j = 0; j < SAMPLES_INT; j++) + { + half4 tmpColor = tex2D(_MainTex, i.uv.xy); + color += tmpColor; + + i.uv.xy += i.blurVector; + } + + return color / SAMPLES_FLOAT; + } + + ENDCG + +Subshader +{ + Blend One Zero + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + ENDCG + } // Pass +} // Subshader + +Fallback off + +} // shader diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/RadialBlur.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/RadialBlur.shader.meta new file mode 100644 index 0000000..a8725c4 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/RadialBlur.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: f58445347fe2e4b8396487ed2bfa02ad +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SSAOShader.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SSAOShader.shader new file mode 100644 index 0000000..0ac6545 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SSAOShader.shader @@ -0,0 +1,281 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/SSAO" { +Properties { + _MainTex ("", 2D) = "" {} + _RandomTexture ("", 2D) = "" {} + _SSAO ("", 2D) = "" {} +} +Subshader { + ZTest Always Cull Off ZWrite Off + +CGINCLUDE +// Common code used by several SSAO passes below +#include "UnityCG.cginc" +struct v2f_ao { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float2 uvr : TEXCOORD1; +}; + +uniform float2 _NoiseScale; +float4 _CameraDepthNormalsTexture_ST; + +v2f_ao vert_ao (appdata_img v) +{ + v2f_ao o; + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = TRANSFORM_TEX(v.texcoord, _CameraDepthNormalsTexture); + o.uvr = v.texcoord.xy * _NoiseScale; + return o; +} + +sampler2D _CameraDepthNormalsTexture; +sampler2D _RandomTexture; +float4 _Params; // x=radius, y=minz, z=attenuation power, w=SSAO power + +// HLSL and GLSL do not support arbitrarily sized arrays as function parameters (eg. float bla[]), whereas Cg does. +#if !defined(UNITY_COMPILER_CG) + +# define INPUT_SAMPLE_COUNT 8 +# include "frag_ao.cginc" +# undef INPUT_SAMPLE_COUNT + +# define INPUT_SAMPLE_COUNT 14 +# include "frag_ao.cginc" +# undef INPUT_SAMPLE_COUNT + +# define INPUT_SAMPLE_COUNT 26 +# include "frag_ao.cginc" +# undef INPUT_SAMPLE_COUNT + +# define INPUT_SAMPLE_COUNT 34 +# include "frag_ao.cginc" +# undef INPUT_SAMPLE_COUNT + +#else +# define INPUT_SAMPLE_COUNT +# include "frag_ao.cginc" +#endif + +ENDCG + + // ---- SSAO pass, 8 samples + Pass { + +CGPROGRAM +#pragma vertex vert_ao +#pragma fragment frag +#pragma target 3.0 + + +half4 frag (v2f_ao i) : SV_Target +{ + #define SAMPLE_COUNT 8 + const float3 RAND_SAMPLES[SAMPLE_COUNT] = { + float3(0.01305719,0.5872321,-0.119337), + float3(0.3230782,0.02207272,-0.4188725), + float3(-0.310725,-0.191367,0.05613686), + float3(-0.4796457,0.09398766,-0.5802653), + float3(0.1399992,-0.3357702,0.5596789), + float3(-0.2484578,0.2555322,0.3489439), + float3(0.1871898,-0.702764,-0.2317479), + float3(0.8849149,0.2842076,0.368524), + }; + return frag_ao (i, SAMPLE_COUNT, RAND_SAMPLES); +} +ENDCG + + } + +// ---- SSAO pass, 14 samples + Pass { + +CGPROGRAM +#pragma vertex vert_ao +#pragma fragment frag +#pragma target 3.0 + + +half4 frag (v2f_ao i) : SV_Target +{ + #define SAMPLE_COUNT 14 + const float3 RAND_SAMPLES[SAMPLE_COUNT] = { + float3(0.4010039,0.8899381,-0.01751772), + float3(0.1617837,0.1338552,-0.3530486), + float3(-0.2305296,-0.1900085,0.5025396), + float3(-0.6256684,0.1241661,0.1163932), + float3(0.3820786,-0.3241398,0.4112825), + float3(-0.08829653,0.1649759,0.1395879), + float3(0.1891677,-0.1283755,-0.09873557), + float3(0.1986142,0.1767239,0.4380491), + float3(-0.3294966,0.02684341,-0.4021836), + float3(-0.01956503,-0.3108062,-0.410663), + float3(-0.3215499,0.6832048,-0.3433446), + float3(0.7026125,0.1648249,0.02250625), + float3(0.03704464,-0.939131,0.1358765), + float3(-0.6984446,-0.6003422,-0.04016943), + }; + return frag_ao (i, SAMPLE_COUNT, RAND_SAMPLES); +} +ENDCG + + } + +// ---- SSAO pass, 26 samples + Pass { + +CGPROGRAM +#pragma vertex vert_ao +#pragma fragment frag +#pragma target 3.0 + + +half4 frag (v2f_ao i) : SV_Target +{ + #define SAMPLE_COUNT 26 + const float3 RAND_SAMPLES[SAMPLE_COUNT] = { + float3(0.2196607,0.9032637,0.2254677), + float3(0.05916681,0.2201506,-0.1430302), + float3(-0.4152246,0.1320857,0.7036734), + float3(-0.3790807,0.1454145,0.100605), + float3(0.3149606,-0.1294581,0.7044517), + float3(-0.1108412,0.2162839,0.1336278), + float3(0.658012,-0.4395972,-0.2919373), + float3(0.5377914,0.3112189,0.426864), + float3(-0.2752537,0.07625949,-0.1273409), + float3(-0.1915639,-0.4973421,-0.3129629), + float3(-0.2634767,0.5277923,-0.1107446), + float3(0.8242752,0.02434147,0.06049098), + float3(0.06262707,-0.2128643,-0.03671562), + float3(-0.1795662,-0.3543862,0.07924347), + float3(0.06039629,0.24629,0.4501176), + float3(-0.7786345,-0.3814852,-0.2391262), + float3(0.2792919,0.2487278,-0.05185341), + float3(0.1841383,0.1696993,-0.8936281), + float3(-0.3479781,0.4725766,-0.719685), + float3(-0.1365018,-0.2513416,0.470937), + float3(0.1280388,-0.563242,0.3419276), + float3(-0.4800232,-0.1899473,0.2398808), + float3(0.6389147,0.1191014,-0.5271206), + float3(0.1932822,-0.3692099,-0.6060588), + float3(-0.3465451,-0.1654651,-0.6746758), + float3(0.2448421,-0.1610962,0.1289366), + }; + return frag_ao (i, SAMPLE_COUNT, RAND_SAMPLES); +} +ENDCG + + } + +// ---- Blur pass + Pass { +CGPROGRAM +#pragma vertex vert +#pragma fragment frag +#pragma target 3.0 +#include "UnityCG.cginc" + +struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; +}; + +float4 _MainTex_ST; + +v2f vert (appdata_img v) +{ + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = TRANSFORM_TEX (v.texcoord, _CameraDepthNormalsTexture); + return o; +} + +sampler2D _SSAO; +float3 _TexelOffsetScale; + +inline half CheckSame (half4 n, half4 nn) +{ + // difference in normals + half2 diff = abs(n.xy - nn.xy); + half sn = (diff.x + diff.y) < 0.1; + // difference in depth + float z = DecodeFloatRG (n.zw); + float zz = DecodeFloatRG (nn.zw); + float zdiff = abs(z-zz) * _ProjectionParams.z; + half sz = zdiff < 0.2; + return sn * sz; +} + + +half4 frag( v2f i ) : SV_Target +{ + #define NUM_BLUR_SAMPLES 4 + + float2 o = _TexelOffsetScale.xy; + + half sum = tex2D(_SSAO, i.uv).r * (NUM_BLUR_SAMPLES + 1); + half denom = NUM_BLUR_SAMPLES + 1; + + half4 geom = tex2D (_CameraDepthNormalsTexture, i.uv); + + for (int s = 0; s < NUM_BLUR_SAMPLES; ++s) + { + float2 nuv = i.uv + o * (s+1); + half4 ngeom = tex2D (_CameraDepthNormalsTexture, nuv.xy); + half coef = (NUM_BLUR_SAMPLES - s) * CheckSame (geom, ngeom); + sum += tex2D (_SSAO, nuv.xy).r * coef; + denom += coef; + } + for (int s = 0; s < NUM_BLUR_SAMPLES; ++s) + { + float2 nuv = i.uv - o * (s+1); + half4 ngeom = tex2D (_CameraDepthNormalsTexture, nuv.xy); + half coef = (NUM_BLUR_SAMPLES - s) * CheckSame (geom, ngeom); + sum += tex2D (_SSAO, nuv.xy).r * coef; + denom += coef; + } + return sum / denom; +} +ENDCG + } + + // ---- Composite pass + Pass { +CGPROGRAM +#pragma vertex vert +#pragma fragment frag +#include "UnityCG.cginc" + +struct v2f { + float4 pos : SV_POSITION; + float2 uv[2] : TEXCOORD0; +}; + +v2f vert (appdata_img v) +{ + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + o.uv[0] = MultiplyUV (UNITY_MATRIX_TEXTURE0, v.texcoord); + o.uv[1] = MultiplyUV (UNITY_MATRIX_TEXTURE1, v.texcoord); + return o; +} + +sampler2D _MainTex; +sampler2D _SSAO; + +half4 frag( v2f i ) : SV_Target +{ + half4 c = tex2D (_MainTex, i.uv[0]); + half ao = tex2D (_SSAO, i.uv[1]).r; + ao = pow (ao, _Params.w); + c.rgb *= ao; + return c; +} +ENDCG + } + +} + +Fallback off +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SSAOShader.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SSAOShader.shader.meta new file mode 100644 index 0000000..0e2cdcc --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SSAOShader.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 43ca18288c424f645aaa1e9e07f04c50 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/ScreenSpaceAmbientObscurance.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/ScreenSpaceAmbientObscurance.shader new file mode 100644 index 0000000..b9377e4 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/ScreenSpaceAmbientObscurance.shader @@ -0,0 +1,404 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + + +// This Ambient Occlusion image effect is based on "Scalable Ambient Obscurance": + +/** + +\author Morgan McGuire and Michael Mara, NVIDIA and Williams College, http://research.nvidia.com, http://graphics.cs.williams.edu + +Open Source under the "BSD" license: http://www.opensource.org/licenses/bsd-license.php + +Copyright (c) 2011-2012, NVIDIA +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + +Shader "Hidden/ScreenSpaceAmbientObscurance" +{ + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + #ifdef SHADER_API_D3D11 + #define NUM_SAMPLES (15) + #else + #define NUM_SAMPLES (11) + #endif + + #define FAR_PLANE_Z (300.0) + #define NUM_SPIRAL_TURNS (7) + #define bias (0.01) + + float _Radius; + float _Radius2; // _Radius * _Radius; + float _Intensity; + float4 _ProjInfo; + float4x4 _ProjectionInv; // ref only + + sampler2D_float _CameraDepthTexture; + sampler2D _Rand; + sampler2D _AOTex; + sampler2D _MainTex; + + float4 _MainTex_TexelSize; + + static const float gaussian[5] = { 0.153170, 0.144893, 0.122649, 0.092902, 0.062970 }; // stddev = 2.0 + + float2 _Axis; + + /** Increase to make edges crisper. Decrease to reduce temporal flicker. */ + #define EDGE_SHARPNESS (1.0) + + float _BlurFilterDistance; + #define SCALE _BlurFilterDistance + + /** Filter _Radius in pixels. This will be multiplied by SCALE. */ + #define R (4) + + struct v2f + { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float2 uv2 : TEXCOORD1; + }; + + v2f vert( appdata_img v ) + { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = v.texcoord.xy; + o.uv2 = v.texcoord.xy; + #if UNITY_UV_STARTS_AT_TOP + if (_MainTex_TexelSize.y < 0) + o.uv2.y = 1-o.uv2.y; + #endif + return o; + } + + float3 ReconstructCSPosition(float2 S, float z) + { + float linEyeZ = LinearEyeDepth(z); + return float3(( ( S.xy * _MainTex_TexelSize.zw) * _ProjInfo.xy + _ProjInfo.zw) * linEyeZ, linEyeZ); + + /* + // for reference + float4 clipPos = float4(S*2.0-1.0, (z*2-1), 1); + float4 viewPos; + viewPos.x = dot((float4)_ProjectionInv[0], clipPos); + viewPos.y = dot((float4)_ProjectionInv[1], clipPos); + viewPos.w = dot((float4)_ProjectionInv[3], clipPos); + viewPos.z = z; + viewPos = viewPos/viewPos.w; + return viewPos.xyz; + */ + } + + float3 ReconstructCSFaceNormal(float3 C) { + return normalize(cross(ddy(C), ddx(C))); + } + + + /** Returns a unit vector and a screen-space _Radius for the tap on a unit disk (the caller should scale by the actual disk _Radius) */ + + float2 TapLocation(int sampleNumber, float spinAngle, out float ssR){ + // Radius relative to ssR + float alpha = float(sampleNumber + 0.5) * (1.0 / NUM_SAMPLES); + float angle = alpha * (NUM_SPIRAL_TURNS * 6.28) + spinAngle; + + ssR = alpha; + return float2(cos(angle), sin(angle)); + } + + /** Used for packing Z into the GB channels */ + float CSZToKey(float z) { + return saturate(z * (1.0 / FAR_PLANE_Z)); + } + + /** Used for packing Z into the GB channels */ + void packKey(float key, out float2 p) { + // Round to the nearest 1/256.0 + float temp = floor(key * 256.0); + + // Integer part + p.x = temp * (1.0 / 256.0); + + // Fractional part + p.y = key * 256.0 - temp; + } + + /** Returns a number on (0, 1) */ + float UnpackKey(float2 p) + { + return p.x * (256.0 / 257.0) + p.y * (1.0 / 257.0); + } + + + /** Read the camera-space position of the point at screen-space pixel ssP */ + float3 GetPosition(float2 ssP) { + float3 P; + + P.z = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, ssP.xy); + + // Offset to pixel center + P = ReconstructCSPosition(float2(ssP) /*+ float2(0.5, 0.5)*/, P.z); + return P; + } + + /** Read the camera-space position of the point at screen-space pixel ssP + unitOffset * ssR. Assumes length(unitOffset) == 1 */ + float3 GetOffsetPosition(float2 ssC, float2 unitOffset, float ssR) + { + float2 ssP = saturate(float2(ssR*unitOffset) + ssC); + + float3 P; + P.z = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, ssP.xy); + + // Offset to pixel center + P = ReconstructCSPosition(float2(ssP)/* + float2(0.5, 0.5)*/, P.z); + + return P; + } + + /** Compute the occlusion due to sample with index \a i about the pixel at \a ssC that corresponds + to camera-space point \a C with unit normal \a n_C, using maximum screen-space sampling _Radius \a ssDiskRadius */ + + float SampleAO(in float2 ssC, in float3 C, in float3 n_C, in float ssDiskRadius, in int tapIndex, in float randomPatternRotationAngle) + { + // Offset on the unit disk, spun for this pixel + float ssR; + float2 unitOffset = TapLocation(tapIndex, randomPatternRotationAngle, ssR); + ssR *= ssDiskRadius; + + // The occluding point in camera space + float3 Q = GetOffsetPosition(ssC, unitOffset, ssR); + + float3 v = Q - C; + + float vv = dot(v, v); + float vn = dot(v, n_C); + + const float epsilon = 0.01; + float f = max(_Radius2 - vv, 0.0); + return f * f * f * max((vn - bias) / (epsilon + vv), 0.0); + } + + float4 fragAO(v2f i) : SV_Target + { + float4 fragment = fixed4(1,1,1,1); + + // Pixel being shaded + float2 ssC = i.uv2.xy;// * _MainTex_TexelSize.zw; + + // View space point being shaded + float3 C = GetPosition(ssC); + + //return abs(float4(C.xyz,0)); + //if(abs(C.z)<0.31) + // return 1; + //return abs(C.z); + + packKey(CSZToKey(C.z), fragment.gb); + //packKey(CSZToKey(C.z), bilateralKey); + + float randomPatternRotationAngle = 1.0; + #ifdef SHADER_API_D3D11 + int2 ssCInt = ssC.xy * _MainTex_TexelSize.zw; + randomPatternRotationAngle = (3 * ssCInt.x ^ ssCInt.y + ssCInt.x * ssCInt.y) * 10; + #else + // TODO: make dx9 rand better + randomPatternRotationAngle = tex2D(_Rand, i.uv*12.0).x * 1000.0; + #endif + + // Reconstruct normals from positions. These will lead to 1-pixel black lines + // at depth discontinuities, however the blur will wipe those out so they are not visible + // in the final image. + float3 n_C = ReconstructCSFaceNormal(C); + + //return float4((n_C),0); + + // Choose the screen-space sample _Radius + // proportional to the projected area of the sphere + float ssDiskRadius = -_Radius / C.z; // -projScale * _Radius / C.z; // <::::: + + float sum = 0.0; + for (int l = 0; l < NUM_SAMPLES; ++l) { + sum += SampleAO(ssC, C, n_C, (ssDiskRadius), l, randomPatternRotationAngle); + } + + float temp = _Radius2 * _Radius; + sum /= temp * temp; + + float A = max(0.0, 1.0 - sum * _Intensity * (5.0 / NUM_SAMPLES)); + fragment.ra = float2(A,A); + + return fragment; + } + + float4 fragUpsample (v2f i) : SV_Target + { + float4 fragment = fixed4(1,1,1,1); + + // View space point being shaded + float3 C = GetPosition(i.uv.xy); + + packKey(CSZToKey(C.z), fragment.gb); + fragment.ra = tex2D(_MainTex, i.uv.xy).ra; + + return fragment; + } + + float4 fragApply (v2f i) : SV_Target + { + float4 ao = tex2D(_AOTex, i.uv2.xy); + return tex2D(_MainTex, i.uv.xy) * ao.rrrr; + } + + float4 fragApplySoft (v2f i) : SV_Target + { + float4 color = tex2D(_MainTex, i.uv.xy); + + float ao = tex2D(_AOTex, i.uv2.xy).r; + ao += tex2D(_AOTex, i.uv2.xy + _MainTex_TexelSize.xy * 0.75).r; + ao += tex2D(_AOTex, i.uv2.xy - _MainTex_TexelSize.xy * 0.75).r; + ao += tex2D(_AOTex, i.uv2.xy + _MainTex_TexelSize.xy * float2(-0.75,0.75)).r; + ao += tex2D(_AOTex, i.uv2.xy - _MainTex_TexelSize.xy * float2(-0.75,0.75)).r; + + return color * float4(ao,ao,ao,5)/5; + } + + float4 fragBlurBL (v2f i) : SV_Target + { + float4 fragment = float4(1,1,1,1); + + float2 ssC = i.uv.xy; + + float4 temp = tex2Dlod(_MainTex, float4(i.uv.xy,0,0)); + + float2 passthrough2 = temp.gb; + float key = UnpackKey(passthrough2); + + float sum = temp.r; + + /* + if (key >= 0.999) { + // Sky pixel (if you aren't using depth keying, disable this test) + fragment.gb = passthrough2; + return fragment; + } + */ + + // Base weight for depth falloff. Increase this for more blurriness, decrease it for better edge discrimination + + float BASE = gaussian[0] * 0.5; // ole: i decreased + float totalWeight = BASE; + sum *= totalWeight; + + for (int r = -R; r <= R; ++r) { + // We already handled the zero case above. This loop should be unrolled and the branch discarded + if (r != 0) { + temp = tex2Dlod(_MainTex, float4(ssC + _Axis * _MainTex_TexelSize.xy * (r * SCALE),0,0) ); + float tapKey = UnpackKey(temp.gb); + float value = temp.r; + + // spatial domain: offset gaussian tap + float weight = 0.3 + gaussian[abs(r)]; + + // range domain (the "bilateral" weight). As depth difference increases, decrease weight. + weight *= max(0.0, 1.0 - (2000.0 * EDGE_SHARPNESS) * abs(tapKey - key)); + + sum += value * weight; + totalWeight += weight; + } + } + + const float epsilon = 0.0001; + fragment = sum / (totalWeight + epsilon); + + fragment.gb = passthrough2; + + return fragment; + } + + ENDCG + +SubShader { + + // 0: get ao + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragAO + #pragma target 3.0 + + ENDCG + } + + // 1: bilateral blur + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragBlurBL + #pragma target 3.0 + + ENDCG + } + + // 2: apply ao + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragApply + #pragma target 3.0 + + ENDCG + } + + // 3: apply with a slight box filter + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragApplySoft + #pragma target 3.0 + + ENDCG + } + + // 4: in case you want to blur in high rez for nicer z borders + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragUpsample + #pragma target 3.0 + + ENDCG + } +} + +Fallback off + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/ScreenSpaceAmbientObscurance.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/ScreenSpaceAmbientObscurance.shader.meta new file mode 100644 index 0000000..dbe9a72 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/ScreenSpaceAmbientObscurance.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 95616c020c5604dda96cf76afbbc0272 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SepiaToneEffect.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SepiaToneEffect.shader new file mode 100644 index 0000000..c042cd8 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SepiaToneEffect.shader @@ -0,0 +1,38 @@ +Shader "Hidden/Sepiatone Effect" { +Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} +} + +SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + +CGPROGRAM +#pragma vertex vert_img +#pragma fragment frag +#include "UnityCG.cginc" + +uniform sampler2D _MainTex; + +fixed4 frag (v2f_img i) : SV_Target +{ + fixed4 original = tex2D(_MainTex, i.uv); + + // get intensity value (Y part of YIQ color space) + fixed Y = dot (fixed3(0.299, 0.587, 0.114), original.rgb); + + // Convert to Sepia Tone by adding constant + fixed4 sepiaConvert = float4 (0.191, -0.054, -0.221, 0.0); + fixed4 output = sepiaConvert + Y; + output.a = original.a; + + return output; +} +ENDCG + + } +} + +Fallback off + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SepiaToneEffect.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SepiaToneEffect.shader.meta new file mode 100644 index 0000000..34528f5 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SepiaToneEffect.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: b6aa781cad112c75d0008dfa8d76c639 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/ShowAlphaChannel.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/ShowAlphaChannel.shader new file mode 100644 index 0000000..00e0d42 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/ShowAlphaChannel.shader @@ -0,0 +1,56 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + + + +Shader "Hidden/ShowAlphaChannel" { +Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _EdgeTex ("_EdgeTex", 2D) = "white" {} +} + +SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + +CGPROGRAM +#pragma vertex vert +#pragma fragment frag + +#include "UnityCG.cginc" + +uniform sampler2D _MainTex; +uniform sampler2D _EdgeTex; + +uniform float4 _MainTex_TexelSize; + +float filterRadius; + +struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; +}; + +v2f vert( appdata_img v ) +{ + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = v.texcoord.xy; + + return o; +} + +half4 frag (v2f i) : SV_Target +{ + + half4 color = tex2D(_MainTex, i.uv.xy); + half edges = color.a; + + return edges; +} +ENDCG + } +} + +Fallback off + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/ShowAlphaChannel.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/ShowAlphaChannel.shader.meta new file mode 100644 index 0000000..37d3f86 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/ShowAlphaChannel.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: da310021e2a4142429d95c537846dc38 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SimpleClear.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SimpleClear.shader new file mode 100644 index 0000000..4d4cec9 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SimpleClear.shader @@ -0,0 +1,43 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + + + +Shader "Hidden/SimpleClear" { +Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} +} + +SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + +CGPROGRAM +#pragma vertex vert +#pragma fragment frag +#include "UnityCG.cginc" + +uniform sampler2D _MainTex; +uniform float4 _MainTex_TexelSize; + +struct v2f { + float4 pos : SV_POSITION; +}; + +v2f vert( appdata_img v ) +{ + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + return o; +} + +half4 frag (v2f i) : SV_Target +{ + return half4(0,0,0,0); +} +ENDCG + } +} + +Fallback off + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SimpleClear.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SimpleClear.shader.meta new file mode 100644 index 0000000..eba30cb --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SimpleClear.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: f688f89ed5eb847c5b19c934a0f1e772 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SunShaftsComposite.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SunShaftsComposite.shader new file mode 100644 index 0000000..175e586 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SunShaftsComposite.shader @@ -0,0 +1,224 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/SunShaftsComposite" { + Properties { + _MainTex ("Base", 2D) = "" {} + _ColorBuffer ("Color", 2D) = "" {} + _Skybox ("Skybox", 2D) = "" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + #if UNITY_UV_STARTS_AT_TOP + float2 uv1 : TEXCOORD1; + #endif + }; + + struct v2f_radial { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float2 blurVector : TEXCOORD1; + }; + + sampler2D _MainTex; + sampler2D _ColorBuffer; + sampler2D _Skybox; + sampler2D_float _CameraDepthTexture; + + uniform half4 _SunThreshold; + + uniform half4 _SunColor; + uniform half4 _BlurRadius4; + uniform half4 _SunPosition; + uniform half4 _MainTex_TexelSize; + + #define SAMPLES_FLOAT 6.0f + #define SAMPLES_INT 6 + + v2f vert( appdata_img v ) { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = v.texcoord.xy; + + #if UNITY_UV_STARTS_AT_TOP + o.uv1 = v.texcoord.xy; + if (_MainTex_TexelSize.y < 0) + o.uv1.y = 1-o.uv1.y; + #endif + + return o; + } + + half4 fragScreen(v2f i) : SV_Target { + half4 colorA = tex2D (_MainTex, i.uv.xy); + #if UNITY_UV_STARTS_AT_TOP + half4 colorB = tex2D (_ColorBuffer, i.uv1.xy); + #else + half4 colorB = tex2D (_ColorBuffer, i.uv.xy); + #endif + half4 depthMask = saturate (colorB * _SunColor); + return 1.0f - (1.0f-colorA) * (1.0f-depthMask); + } + + half4 fragAdd(v2f i) : SV_Target { + half4 colorA = tex2D (_MainTex, i.uv.xy); + #if UNITY_UV_STARTS_AT_TOP + half4 colorB = tex2D (_ColorBuffer, i.uv1.xy); + #else + half4 colorB = tex2D (_ColorBuffer, i.uv.xy); + #endif + half4 depthMask = saturate (colorB * _SunColor); + return colorA + depthMask; + } + + v2f_radial vert_radial( appdata_img v ) { + v2f_radial o; + o.pos = UnityObjectToClipPos(v.vertex); + + o.uv.xy = v.texcoord.xy; + o.blurVector = (_SunPosition.xy - v.texcoord.xy) * _BlurRadius4.xy; + + return o; + } + + half4 frag_radial(v2f_radial i) : SV_Target + { + half4 color = half4(0,0,0,0); + for(int j = 0; j < SAMPLES_INT; j++) + { + half4 tmpColor = tex2D(_MainTex, i.uv.xy); + color += tmpColor; + i.uv.xy += i.blurVector; + } + return color / SAMPLES_FLOAT; + } + + half TransformColor (half4 skyboxValue) { + return dot(max(skyboxValue.rgb - _SunThreshold.rgb, half3(0,0,0)), half3(1,1,1)); // threshold and convert to greyscale + } + + half4 frag_depth (v2f i) : SV_Target { + #if UNITY_UV_STARTS_AT_TOP + float depthSample = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.uv1.xy); + #else + float depthSample = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.uv.xy); + #endif + + half4 tex = tex2D (_MainTex, i.uv.xy); + + depthSample = Linear01Depth (depthSample); + + // consider maximum radius + #if UNITY_UV_STARTS_AT_TOP + half2 vec = _SunPosition.xy - i.uv1.xy; + #else + half2 vec = _SunPosition.xy - i.uv.xy; + #endif + half dist = saturate (_SunPosition.w - length (vec.xy)); + + half4 outColor = 0; + + // consider shafts blockers + if (depthSample > 0.99) + outColor = TransformColor (tex) * dist; + + return outColor; + } + + half4 frag_nodepth (v2f i) : SV_Target { + #if UNITY_UV_STARTS_AT_TOP + float4 sky = (tex2D (_Skybox, i.uv1.xy)); + #else + float4 sky = (tex2D (_Skybox, i.uv.xy)); + #endif + + float4 tex = (tex2D (_MainTex, i.uv.xy)); + + // consider maximum radius + #if UNITY_UV_STARTS_AT_TOP + half2 vec = _SunPosition.xy - i.uv1.xy; + #else + half2 vec = _SunPosition.xy - i.uv.xy; + #endif + half dist = saturate (_SunPosition.w - length (vec)); + + half4 outColor = 0; + + // find unoccluded sky pixels + // consider pixel values that differ significantly between framebuffer and sky-only buffer as occluded + if (Luminance ( abs(sky.rgb - tex.rgb)) < 0.2) + outColor = TransformColor (sky) * dist; + + return outColor; + } + + + + ENDCG + +Subshader { + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragScreen + + ENDCG + } + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert_radial + #pragma fragment frag_radial + + ENDCG + } + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag_depth + + ENDCG + } + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag_nodepth + + ENDCG + } + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragAdd + + ENDCG + } +} + +Fallback off + +} // shader diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SunShaftsComposite.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SunShaftsComposite.shader.meta new file mode 100644 index 0000000..82a0680 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/SunShaftsComposite.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: d3b1c8c1036784176946f5cfbfb7fe4c +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/Tonemapper.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/Tonemapper.shader new file mode 100644 index 0000000..51c3a10 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/Tonemapper.shader @@ -0,0 +1,356 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/Tonemapper" { + Properties { + _MainTex ("", 2D) = "black" {} + _SmallTex ("", 2D) = "grey" {} + _Curve ("", 2D) = "black" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + sampler2D _MainTex; + sampler2D _SmallTex; + sampler2D _Curve; + + float4 _HdrParams; + float2 intensity; + float4 _MainTex_TexelSize; + float _AdaptionSpeed; + float _ExposureAdjustment; + float _RangeScale; + + v2f vert( appdata_img v ) + { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = v.texcoord.xy; + return o; + } + + float4 fragLog(v2f i) : SV_Target + { + const float DELTA = 0.0001f; + + float fLogLumSum = 0.0f; + + fLogLumSum += log( Luminance(tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * float2(-1,-1)).rgb) + DELTA); + fLogLumSum += log( Luminance(tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * float2(1,1)).rgb) + DELTA); + fLogLumSum += log( Luminance(tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * float2(-1,1)).rgb) + DELTA); + fLogLumSum += log( Luminance(tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * float2(1,-1)).rgb) + DELTA); + + float avg = fLogLumSum / 4.0; + return float4(avg, avg, avg, avg); + } + + float4 fragExp(v2f i) : SV_Target + { + float2 lum = float2(0.0f, 0.0f); + + lum += tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * float2(-1,-1)).xy; + lum += tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * float2(1,1)).xy; + lum += tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * float2(1,-1)).xy; + lum += tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * float2(-1,1)).xy; + + lum = exp(lum / 4.0f); + + return float4(lum.x, lum.y, lum.x, saturate(0.0125 * _AdaptionSpeed)); + } + + float3 ToCIE(float3 FullScreenImage) + { + // RGB -> XYZ conversion + // http://www.w3.org/Graphics/Color/sRGB + // The official sRGB to XYZ conversion matrix is (following ITU-R BT.709) + // 0.4125 0.3576 0.1805 + // 0.2126 0.7152 0.0722 + // 0.0193 0.1192 0.9505 + + float3x3 RGB2XYZ = {0.5141364, 0.3238786, 0.16036376, 0.265068, 0.67023428, 0.06409157, 0.0241188, 0.1228178, 0.84442666}; + + float3 XYZ = mul(RGB2XYZ, FullScreenImage.rgb); + + // XYZ -> Yxy conversion + + float3 Yxy; + + Yxy.r = XYZ.g; + + // x = X / (X + Y + Z) + // y = X / (X + Y + Z) + + float temp = dot(float3(1.0,1.0,1.0), XYZ.rgb); + + Yxy.gb = XYZ.rg / temp; + + return Yxy; + } + + float3 FromCIE(float3 Yxy) + { + float3 XYZ; + // Yxy -> XYZ conversion + XYZ.r = Yxy.r * Yxy.g / Yxy. b; + + // X = Y * x / y + XYZ.g = Yxy.r; + + // copy luminance Y + XYZ.b = Yxy.r * (1 - Yxy.g - Yxy.b) / Yxy.b; + + // Z = Y * (1-x-y) / y + + // XYZ -> RGB conversion + // The official XYZ to sRGB conversion matrix is (following ITU-R BT.709) + // 3.2410 -1.5374 -0.4986 + // -0.9692 1.8760 0.0416 + // 0.0556 -0.2040 1.0570 + + float3x3 XYZ2RGB = { 2.5651,-1.1665,-0.3986, -1.0217, 1.9777, 0.0439, 0.0753, -0.2543, 1.1892}; + + return mul(XYZ2RGB, XYZ); + } + + // NOTE/OPTIMIZATION: we're not going the extra CIE detour anymore, but + // scale with the OUT/IN luminance ratio,this is sooooo much faster + + float4 fragAdaptive(v2f i) : SV_Target + { + float avgLum = tex2D(_SmallTex, i.uv).x; + float4 color = tex2D (_MainTex, i.uv); + + float cieLum = max(0.000001, Luminance(color.rgb)); //ToCIE(color.rgb); + + float lumScaled = cieLum * _HdrParams.z / (0.001 + avgLum.x); + + lumScaled = (lumScaled * (1.0f + lumScaled / (_HdrParams.w)))/(1.0f + lumScaled); + + //cie.r = lumScaled; + + color.rgb = color.rgb * (lumScaled / cieLum); + + //color.rgb = FromCIE(cie); + return color; + } + + float4 fragAdaptiveAutoWhite(v2f i) : SV_Target + { + float2 avgLum = tex2D(_SmallTex, i.uv).xy; + float4 color = tex2D(_MainTex, i.uv); + + float cieLum = max(0.000001, Luminance(color.rgb)); //ToCIE(color.rgb); + + float lumScaled = cieLum * _HdrParams.z / (0.001 + avgLum.x); + + lumScaled = (lumScaled * (1.0f + lumScaled / (avgLum.y*avgLum.y)))/(1.0f + lumScaled); + + //cie.r = lumScaled; + + color.rgb = color.rgb * (lumScaled / cieLum); + + //color.rgb = FromCIE(cie); + return color; + } + + float4 fragCurve(v2f i) : SV_Target + { + float4 color = tex2D(_MainTex, i.uv); + float3 cie = ToCIE(color.rgb); + + // Remap to new lum range + float newLum = tex2D(_Curve, float2(cie.r * _RangeScale, 0.5)).r; + cie.r = newLum; + color.rgb = FromCIE(cie); + + return color; + } + + float4 fragHable(v2f i) : SV_Target + { + const float A = 0.15; + const float B = 0.50; + const float C = 0.10; + const float D = 0.20; + const float E = 0.02; + const float F = 0.30; + const float W = 11.2; + + float3 texColor = tex2D(_MainTex, i.uv).rgb; + texColor *= _ExposureAdjustment; + + float ExposureBias = 2.0; + float3 x = ExposureBias*texColor; + float3 curr = ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F; + + x = W; + float3 whiteScale = 1.0f/(((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F); + float3 color = curr*whiteScale; + + // float3 retColor = pow(color,1/2.2); // we have SRGB write enabled at this stage + + return float4(color, 1.0); + } + + // we are doing it on luminance here (better color preservation, but some other problems like very fast saturation) + float4 fragSimpleReinhard(v2f i) : SV_Target + { + float4 texColor = tex2D(_MainTex, i.uv); + float lum = Luminance(texColor.rgb); + float lumTm = lum * _ExposureAdjustment; + float scale = lumTm / (1+lumTm); + return float4(texColor.rgb * scale / lum, texColor.a); + } + + float4 fragOptimizedHejiDawson(v2f i) : SV_Target + { + float4 texColor = tex2D(_MainTex, i.uv ); + texColor *= _ExposureAdjustment; + float4 X = max(float4(0.0,0.0,0.0,0.0), texColor-0.004); + float4 retColor = (X*(6.2*X+.5))/(X*(6.2*X+1.7)+0.06); + return retColor*retColor; + } + + float4 fragPhotographic(v2f i) : SV_Target + { + float4 texColor = tex2D(_MainTex, i.uv); + return 1-exp2(-_ExposureAdjustment * texColor); + } + + float4 fragDownsample(v2f i) : SV_Target + { + float4 tapA = tex2D(_MainTex, i.uv + _MainTex_TexelSize * 0.5); + float4 tapB = tex2D(_MainTex, i.uv - _MainTex_TexelSize * 0.5); + float4 tapC = tex2D(_MainTex, i.uv + _MainTex_TexelSize * float2(0.5,-0.5)); + float4 tapD = tex2D(_MainTex, i.uv - _MainTex_TexelSize * float2(0.5,-0.5)); + + float4 average = (tapA+tapB+tapC+tapD)/4; + average.y = max(max(tapA.y,tapB.y), max(tapC.y,tapD.y)); + + return average; + } + + ENDCG + +Subshader { + // adaptive reinhhard apply + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragAdaptive + ENDCG + } + + // 1 + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragLog + ENDCG + } + // 2 + Pass { + ZTest Always Cull Off ZWrite Off + Blend SrcAlpha OneMinusSrcAlpha + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragExp + ENDCG + } + // 3 + Pass { + ZTest Always Cull Off ZWrite Off + + Blend Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragExp + ENDCG + } + + // 4 user controllable tonemap curve + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragCurve + ENDCG + } + + // 5 tonemapping in uncharted + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragHable + ENDCG + } + + // 6 simple tonemapping based reinhard + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragSimpleReinhard + ENDCG + } + + // 7 OptimizedHejiDawson + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragOptimizedHejiDawson + ENDCG + } + + // 8 Photographic + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragPhotographic + ENDCG + } + + // 9 Downsample with auto white detection + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragDownsample + ENDCG + } + + // 10 adaptive reinhhard apply with auto white + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragAdaptiveAutoWhite + ENDCG + } +} + +Fallback off + +} // shader diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/Tonemapper.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/Tonemapper.shader.meta new file mode 100644 index 0000000..370e284 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/Tonemapper.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 003377fc2620a44939dadde6fe3f8190 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/TwirlEffect.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/TwirlEffect.shader new file mode 100644 index 0000000..ca49f6d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/TwirlEffect.shader @@ -0,0 +1,54 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/Twirt Effect Shader" { +Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} +} + +SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + +CGPROGRAM +#pragma vertex vert +#pragma fragment frag +#include "UnityCG.cginc" + +uniform sampler2D _MainTex; +uniform float4 _MainTex_TexelSize; +uniform float4 _CenterRadius; +uniform float4x4 _RotationMatrix; + +struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; +}; + +v2f vert( appdata_img v ) +{ + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = v.texcoord - _CenterRadius.xy; + return o; +} + +float4 frag (v2f i) : SV_Target +{ + float2 offset = i.uv; + float2 distortedOffset = MultiplyUV (_RotationMatrix, offset.xy); + float2 tmp = offset / _CenterRadius.zw; + float t = min (1, length(tmp)); + + offset = lerp (distortedOffset, offset, t); + offset += _CenterRadius.xy; + + return tex2D(_MainTex, offset); +} +ENDCG + + } +} + +Fallback off + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/TwirlEffect.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/TwirlEffect.shader.meta new file mode 100644 index 0000000..a11709f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/TwirlEffect.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 641b781cad112c75d0008dfa8d76c639 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/VignettingShader.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/VignettingShader.shader new file mode 100644 index 0000000..b5a396b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/VignettingShader.shader @@ -0,0 +1,71 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/Vignetting" { + Properties { + _MainTex ("Base", 2D) = "white" {} + _VignetteTex ("Vignette", 2D) = "white" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float2 uv2 : TEXCOORD1; + }; + + sampler2D _MainTex; + sampler2D _VignetteTex; + + half _Intensity; + half _Blur; + + float4 _MainTex_TexelSize; + + v2f vert( appdata_img v ) { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = v.texcoord.xy; + o.uv2 = v.texcoord.xy; + + #if UNITY_UV_STARTS_AT_TOP + if (_MainTex_TexelSize.y < 0) + o.uv2.y = 1.0 - o.uv2.y; + #endif + + return o; + } + + half4 frag(v2f i) : SV_Target { + half2 coords = i.uv; + half2 uv = i.uv; + + coords = (coords - 0.5) * 2.0; + half coordDot = dot (coords,coords); + half4 color = tex2D (_MainTex, uv); + + float mask = 1.0 - coordDot * _Intensity; + + half4 colorBlur = tex2D (_VignetteTex, i.uv2); + color = lerp (color, colorBlur, saturate (_Blur * coordDot)); + + return color * mask; + } + + ENDCG + +Subshader { + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + ENDCG + } +} + +Fallback off +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/VignettingShader.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/VignettingShader.shader.meta new file mode 100644 index 0000000..2ecd872 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/VignettingShader.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 627943dc7a9a74286b70a4f694a0acd5 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/VortexEffect.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/VortexEffect.shader new file mode 100644 index 0000000..c291d4e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/VortexEffect.shader @@ -0,0 +1,67 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/Twist Effect" { +Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} +} + +SubShader +{ + Pass + { + ZTest Always Cull Off ZWrite Off + +CGPROGRAM +#pragma vertex vert +#pragma fragment frag + +#include "UnityCG.cginc" + +uniform sampler2D _MainTex; + +uniform float4 _MainTex_ST; + +uniform float4 _MainTex_TexelSize; +uniform float _Angle; +uniform float4 _CenterRadius; + +struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float2 uvOrig : TEXCOORD1; +}; + +v2f vert (appdata_img v) +{ + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + float2 uv = v.texcoord.xy - _CenterRadius.xy; + o.uv = TRANSFORM_TEX(uv, _MainTex); //MultiplyUV (UNITY_MATRIX_TEXTURE0, uv); + o.uvOrig = uv; + return o; +} + +float4 frag (v2f i) : SV_Target +{ + float2 offset = i.uvOrig; + float angle = 1.0 - length(offset / _CenterRadius.zw); + angle = max (0, angle); + angle = angle * angle * _Angle; + float cosLength, sinLength; + sincos (angle, sinLength, cosLength); + + float2 uv; + uv.x = cosLength * offset[0] - sinLength * offset[1]; + uv.y = sinLength * offset[0] + cosLength * offset[1]; + uv += _CenterRadius.xy; + + return tex2D(_MainTex, uv); +} +ENDCG + + } +} + +Fallback off + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/VortexEffect.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/VortexEffect.shader.meta new file mode 100644 index 0000000..78ded6f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/VortexEffect.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 708b781cad112c75d0008dfa8d76c639 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing.meta new file mode 100644 index 0000000..34cabb7 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 6d55b5e91b95c41739cdf4f804dd383d diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/DLAA.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/DLAA.shader new file mode 100644 index 0000000..8a149e4 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/DLAA.shader @@ -0,0 +1,346 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + + +// +// modified and adapted DLAA code based on Dmitry Andreev's +// Directionally Localized Anti-Aliasing (DLAA) +// +// as seen in "The Force Unleashed 2" +// + +Shader "Hidden/DLAA" { +Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} +} + +CGINCLUDE + + #include "UnityCG.cginc" + + uniform sampler2D _MainTex; + uniform float4 _MainTex_TexelSize; + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + #define LD( o, dx, dy ) o = tex2D( _MainTex, texCoord + float2( dx, dy ) * _MainTex_TexelSize.xy ); + + float GetIntensity( float3 col ) + { + return dot( col, float3( 0.33f, 0.33f, 0.33f ) ); + } + + float4 highPassPre( float2 texCoord ) + { + LD(float4 sCenter, 0.0,0.0) + LD(float4 sUpLeft, -1.0,-1.0) + LD(float4 sUpRight, 1.0,-1.0) + LD(float4 sDownLeft, -1.0,1.0) + LD(float4 sDownRight, 1.0,1.0) + + float4 diff = 4.0f * abs( (sUpLeft + sUpRight + sDownLeft + sDownRight) - 4.0f * sCenter ); + float edgeMask = GetIntensity(diff.xyz); + + return float4(sCenter.rgb, edgeMask); + } + + // Softer (5-pixel wide high-pass) + /* + void HighPassEdgeHV (out float4 edge_h, out float4 edge_v, float4 center, float4 w_h, float4 w_v, float2 texCoord) { + edge_h = abs( w_h - 4.0f * center ) / 4.0f; + edge_v = abs( w_v - 4.0f * center ) / 4.0f; + } + + // Sharper (3-pixel wide high-pass) + void EdgeHV (out float4 edge_h, out float4 edge_v, float4 center, float2 texCoord) { + float4 left, right, top, bottom; + + LD( left, -1, 0 ) + LD( right, 1, 0 ) + LD( top, 0, -1 ) + LD( bottom, 0, 1 ) + + edge_h = abs( left + right - 2.0f * center ) / 2.0f; + edge_v = abs( top + bottom - 2.0f * center ) / 2.0f; + } + */ + + float4 edgeDetectAndBlur( float2 texCoord ) + { + float lambda = 3.0f; + float epsilon = 0.1f; + + // + // Short Edges + // + + float4 center, left_01, right_01, top_01, bottom_01; + + // sample 5x5 cross + LD( center, 0, 0 ) + LD( left_01, -1.5, 0 ) + LD( right_01, 1.5, 0 ) + LD( top_01, 0,-1.5 ) + LD( bottom_01, 0, 1.5 ) + + + float4 w_h = 2.0f * ( left_01 + right_01 ); + float4 w_v = 2.0f * ( top_01 + bottom_01 ); + + + // Softer (5-pixel wide high-pass) + float4 edge_h = abs( w_h - 4.0f * center ) / 4.0f; + float4 edge_v = abs( w_v - 4.0f * center ) / 4.0f; + + + float4 blurred_h = ( w_h + 2.0f * center ) / 6.0f; + float4 blurred_v = ( w_v + 2.0f * center ) / 6.0f; + + float edge_h_lum = GetIntensity( edge_h.xyz ); + float edge_v_lum = GetIntensity( edge_v.xyz ); + float blurred_h_lum = GetIntensity( blurred_h.xyz ); + float blurred_v_lum = GetIntensity( blurred_v.xyz ); + + float edge_mask_h = saturate( ( lambda * edge_h_lum - epsilon ) / blurred_v_lum ); + float edge_mask_v = saturate( ( lambda * edge_v_lum - epsilon ) / blurred_h_lum ); + + float4 clr = center; + clr = lerp( clr, blurred_h, edge_mask_v ); + clr = lerp( clr, blurred_v, edge_mask_h ); // blurrier version + + // + // Long Edges + // + + float4 h0, h1, h2, h3, h4, h5, h6, h7; + float4 v0, v1, v2, v3, v4, v5, v6, v7; + + // sample 16x16 cross (sparse-sample on X360, incremental kernel update on SPUs) + LD( h0, 1.5, 0 ) LD( h1, 3.5, 0 ) LD( h2, 5.5, 0 ) LD( h3, 7.5, 0 ) LD( h4, -1.5,0 ) LD( h5, -3.5,0 ) LD( h6, -5.5,0 ) LD( h7, -7.5,0 ) + LD( v0, 0, 1.5 ) LD( v1, 0, 3.5 ) LD( v2, 0, 5.5 ) LD( v3, 0, 7.5 ) LD( v4, 0,-1.5 ) LD( v5, 0,-3.5 ) LD( v6, 0,-5.5 ) LD( v7, 0,-7.5 ) + + float long_edge_mask_h = ( h0.a + h1.a + h2.a + h3.a + h4.a + h5.a + h6.a + h7.a ) / 8.0f; + float long_edge_mask_v = ( v0.a + v1.a + v2.a + v3.a + v4.a + v5.a + v6.a + v7.a ) / 8.0f; + + long_edge_mask_h = saturate( long_edge_mask_h * 2.0f - 1.0f ); + long_edge_mask_v = saturate( long_edge_mask_v * 2.0f - 1.0f ); + + float4 left, right, top, bottom; + + LD( left, -1, 0 ) + LD( right, 1, 0 ) + LD( top, 0, -1 ) + LD( bottom, 0, 1 ) + + if ( long_edge_mask_h > 0 || long_edge_mask_v > 0 ) // faster but less resistant to noise (TFU2 X360) + //if ( abs( long_edge_mask_h - long_edge_mask_v ) > 0.2f ) // resistant to noise (TFU2 SPUs) + { + float4 long_blurred_h = ( h0 + h1 + h2 + h3 + h4 + h5 + h6 + h7 ) / 8.0f; + float4 long_blurred_v = ( v0 + v1 + v2 + v3 + v4 + v5 + v6 + v7 ) / 8.0f; + + float lb_h_lum = GetIntensity( long_blurred_h.xyz ); + float lb_v_lum = GetIntensity( long_blurred_v.xyz ); + + float center_lum = GetIntensity( center.xyz ); + float left_lum = GetIntensity( left.xyz ); + float right_lum = GetIntensity( right.xyz ); + float top_lum = GetIntensity( top.xyz ); + float bottom_lum = GetIntensity( bottom.xyz ); + + float4 clr_v = center; + float4 clr_h = center; + + // we had to hack this because DIV by 0 gives some artefacts on different platforms + float hx = center_lum == top_lum ? 0.0 : saturate( 0 + ( lb_h_lum - top_lum ) / ( center_lum - top_lum ) ); + float hy = center_lum == bottom_lum ? 0.0 : saturate( 1 + ( lb_h_lum - center_lum ) / ( center_lum - bottom_lum ) ); + float vx = center_lum == left_lum ? 0.0 : saturate( 0 + ( lb_v_lum - left_lum ) / ( center_lum - left_lum ) ); + float vy = center_lum == right_lum ? 0.0 : saturate( 1 + ( lb_v_lum - center_lum ) / ( center_lum - right_lum ) ); + + float4 vhxy = float4( vx, vy, hx, hy ); + //vhxy = vhxy == float4( 0, 0, 0, 0 ) ? float4( 1, 1, 1, 1 ) : vhxy; + + clr_v = lerp( left , clr_v, vhxy.x ); + clr_v = lerp( right , clr_v, vhxy.y ); + clr_h = lerp( top , clr_h, vhxy.z ); + clr_h = lerp( bottom, clr_h, vhxy.w ); + + clr = lerp( clr, clr_v, long_edge_mask_v ); + clr = lerp( clr, clr_h, long_edge_mask_h ); + } + + return clr; + } + + float4 edgeDetectAndBlurSharper(float2 texCoord) + { + float lambda = 3.0f; + float epsilon = 0.1f; + + // + // Short Edges + // + + float4 center, left_01, right_01, top_01, bottom_01; + + // sample 5x5 cross + LD( center, 0, 0 ) + LD( left_01, -1.5, 0 ) + LD( right_01, 1.5, 0 ) + LD( top_01, 0,-1.5 ) + LD( bottom_01, 0, 1.5 ) + + + float4 w_h = 2.0f * ( left_01 + right_01 ); + float4 w_v = 2.0f * ( top_01 + bottom_01 ); + + // Sharper (3-pixel wide high-pass) + float4 left, right, top, bottom; + + LD( left, -1, 0 ) + LD( right, 1, 0 ) + LD( top, 0, -1 ) + LD( bottom, 0, 1 ) + + float4 edge_h = abs( left + right - 2.0f * center ) / 2.0f; + float4 edge_v = abs( top + bottom - 2.0f * center ) / 2.0f; + + float4 blurred_h = ( w_h + 2.0f * center ) / 6.0f; + float4 blurred_v = ( w_v + 2.0f * center ) / 6.0f; + + float edge_h_lum = GetIntensity( edge_h.xyz ); + float edge_v_lum = GetIntensity( edge_v.xyz ); + float blurred_h_lum = GetIntensity( blurred_h.xyz ); + float blurred_v_lum = GetIntensity( blurred_v.xyz ); + + float edge_mask_h = saturate( ( lambda * edge_h_lum - epsilon ) / blurred_v_lum ); + float edge_mask_v = saturate( ( lambda * edge_v_lum - epsilon ) / blurred_h_lum ); + + float4 clr = center; + clr = lerp( clr, blurred_h, edge_mask_v ); + clr = lerp( clr, blurred_v, edge_mask_h * 0.5f ); // TFU2 uses 1.0f instead of 0.5f + + // + // Long Edges + // + + float4 h0, h1, h2, h3, h4, h5, h6, h7; + float4 v0, v1, v2, v3, v4, v5, v6, v7; + + // sample 16x16 cross (sparse-sample on X360, incremental kernel update on SPUs) + LD( h0, 1.5, 0 ) LD( h1, 3.5, 0 ) LD( h2, 5.5, 0 ) LD( h3, 7.5, 0 ) LD( h4, -1.5,0 ) LD( h5, -3.5,0 ) LD( h6, -5.5,0 ) LD( h7, -7.5,0 ) + LD( v0, 0, 1.5 ) LD( v1, 0, 3.5 ) LD( v2, 0, 5.5 ) LD( v3, 0, 7.5 ) LD( v4, 0,-1.5 ) LD( v5, 0,-3.5 ) LD( v6, 0,-5.5 ) LD( v7, 0,-7.5 ) + + float long_edge_mask_h = ( h0.a + h1.a + h2.a + h3.a + h4.a + h5.a + h6.a + h7.a ) / 8.0f; + float long_edge_mask_v = ( v0.a + v1.a + v2.a + v3.a + v4.a + v5.a + v6.a + v7.a ) / 8.0f; + + long_edge_mask_h = saturate( long_edge_mask_h * 2.0f - 1.0f ); + long_edge_mask_v = saturate( long_edge_mask_v * 2.0f - 1.0f ); + + //if ( long_edge_mask_h > 0 || long_edge_mask_v > 0 ) // faster but less resistant to noise (TFU2 X360) + if ( abs( long_edge_mask_h - long_edge_mask_v ) > 0.2f ) // resistant to noise (TFU2 SPUs) + { + float4 long_blurred_h = ( h0 + h1 + h2 + h3 + h4 + h5 + h6 + h7 ) / 8.0f; + float4 long_blurred_v = ( v0 + v1 + v2 + v3 + v4 + v5 + v6 + v7 ) / 8.0f; + + float lb_h_lum = GetIntensity( long_blurred_h.xyz ); + float lb_v_lum = GetIntensity( long_blurred_v.xyz ); + + float center_lum = GetIntensity( center.xyz ); + float left_lum = GetIntensity( left.xyz ); + float right_lum = GetIntensity( right.xyz ); + float top_lum = GetIntensity( top.xyz ); + float bottom_lum = GetIntensity( bottom.xyz ); + + float4 clr_v = center; + float4 clr_h = center; + + // we had to hack this because DIV by 0 gives some artefacts on different platforms + float hx = center_lum == top_lum ? 0.0 : saturate( 0 + ( lb_h_lum - top_lum ) / ( center_lum - top_lum ) ); + float hy = center_lum == bottom_lum ? 0.0 : saturate( 1 + ( lb_h_lum - center_lum ) / ( center_lum - bottom_lum ) ); + float vx = center_lum == left_lum ? 0.0 : saturate( 0 + ( lb_v_lum - left_lum ) / ( center_lum - left_lum ) ); + float vy = center_lum == right_lum ? 0.0 : saturate( 1 + ( lb_v_lum - center_lum ) / ( center_lum - right_lum ) ); + + float4 vhxy = float4( vx, vy, hx, hy ); + //vhxy = vhxy == float4( 0, 0, 0, 0 ) ? float4( 1, 1, 1, 1 ) : vhxy; + + clr_v = lerp( left , clr_v, vhxy.x ); + clr_v = lerp( right , clr_v, vhxy.y ); + clr_h = lerp( top , clr_h, vhxy.z ); + clr_h = lerp( bottom, clr_h, vhxy.w ); + + clr = lerp( clr, clr_v, long_edge_mask_v ); + clr = lerp( clr, clr_h, long_edge_mask_h ); + } + + return clr; + } + + + v2f vert( appdata_img v ) { + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + + float2 uv = v.texcoord.xy; + o.uv.xy = uv; + + return o; + } + + half4 fragFirst (v2f i) : SV_Target { + return highPassPre (i.uv); + } + + half4 fragSecond (v2f i) : SV_Target { + return edgeDetectAndBlur( i.uv ); + } + + half4 fragThird (v2f i) : SV_Target { + return edgeDetectAndBlurSharper( i.uv ); + } + +ENDCG + +SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragFirst + #pragma exclude_renderers d3d11_9x + + ENDCG + } + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragSecond + #pragma target 3.0 + #pragma exclude_renderers d3d11_9x + + ENDCG + } + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragThird + #pragma target 3.0 + + ENDCG + } +} + +Fallback off + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/DLAA.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/DLAA.shader.meta new file mode 100644 index 0000000..8db070d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/DLAA.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 017ca72b9e8a749058d13ebd527e98fa +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAA2.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAA2.shader new file mode 100644 index 0000000..600ad85 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAA2.shader @@ -0,0 +1,189 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/FXAA II" { +Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} +} + +SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + +CGPROGRAM + +#pragma vertex vert +#pragma fragment frag +#include "UnityCG.cginc" +#pragma target 3.0 + +#define FXAA_HLSL_3 1 + +/*============================================================================ + + FXAA v2 CONSOLE by TIMOTHY LOTTES @ NVIDIA + +============================================================================*/ + +/*============================================================================ + API PORTING +============================================================================*/ +#ifndef FXAA_GLSL_120 + #define FXAA_GLSL_120 0 +#endif +#ifndef FXAA_GLSL_130 + #define FXAA_GLSL_130 0 +#endif +#ifndef FXAA_HLSL_3 + #define FXAA_HLSL_3 0 +#endif +#ifndef FXAA_HLSL_4 + #define FXAA_HLSL_4 0 +#endif +/*--------------------------------------------------------------------------*/ +#if FXAA_GLSL_120 + // Requires, + // #version 120 + // #extension GL_EXT_gpu_shader4 : enable + #define int2 ivec2 + #define float2 vec2 + #define float3 vec3 + #define float4 vec4 + #define FxaaInt2 ivec2 + #define FxaaFloat2 vec2 + #define FxaaSat(a) clamp((a), 0.0, 1.0) + #define FxaaTex sampler2D + #define FxaaTexLod0(t, p) texture2DLod(t, p, 0.0) + #define FxaaTexOff(t, p, o, r) texture2DLodOffset(t, p, 0.0, o) +#endif +/*--------------------------------------------------------------------------*/ +#if FXAA_GLSL_130 + // Requires "#version 130" or better + #define int2 ivec2 + #define float2 vec2 + #define float3 vec3 + #define float4 vec4 + #define FxaaInt2 ivec2 + #define FxaaFloat2 vec2 + #define FxaaSat(a) clamp((a), 0.0, 1.0) + #define FxaaTex sampler2D + #define FxaaTexLod0(t, p) textureLod(t, p, 0.0) + #define FxaaTexOff(t, p, o, r) textureLodOffset(t, p, 0.0, o) +#endif +/*--------------------------------------------------------------------------*/ +#if FXAA_HLSL_3 + #define int2 float2 + #define FxaaInt2 float2 + #define FxaaFloat2 float2 + #define FxaaSat(a) saturate((a)) + #define FxaaTex sampler2D + #define FxaaTexLod0(t, p) tex2Dlod(t, float4(p, 0.0, 0.0)) + #define FxaaTexOff(t, p, o, r) tex2Dlod(t, float4(p + (o * r), 0, 0)) +#endif +/*--------------------------------------------------------------------------*/ +#if FXAA_HLSL_4 + #define FxaaInt2 int2 + #define FxaaFloat2 float2 + #define FxaaSat(a) saturate((a)) + struct FxaaTex { SamplerState smpl; Texture2D tex; }; + #define FxaaTexLod0(t, p) t.tex.SampleLevel(t.smpl, p, 0.0) + #define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o) +#endif + + +/*============================================================================ + + VERTEX SHADER + +============================================================================*/ +float4 FxaaVertexShader( +float2 pos, // Both x and y range {-1.0 to 1.0 across screen}. +float2 rcpFrame) { // {1.0/frameWidth, 1.0/frameHeight} +/*--------------------------------------------------------------------------*/ + #define FXAA_SUBPIX_SHIFT (1.0/4.0) +/*--------------------------------------------------------------------------*/ + float4 posPos; + posPos.xy = (pos.xy * 0.5) + 0.5; + posPos.zw = posPos.xy - (rcpFrame * (0.5 + FXAA_SUBPIX_SHIFT)); + return posPos; } + +/*============================================================================ + + PIXEL SHADER + +============================================================================*/ +float3 FxaaPixelShader( +float4 posPos, // Output of FxaaVertexShader interpolated across screen. +FxaaTex tex, // Input texture. +float2 rcpFrame) { // Constant {1.0/frameWidth, 1.0/frameHeight}. +/*--------------------------------------------------------------------------*/ + #define FXAA_REDUCE_MIN (1.0/128.0) + #define FXAA_REDUCE_MUL (1.0/8.0) + #define FXAA_SPAN_MAX 8.0 +/*--------------------------------------------------------------------------*/ + float3 rgbNW = FxaaTexLod0(tex, posPos.zw).xyz; + float3 rgbNE = FxaaTexOff(tex, posPos.zw, FxaaInt2(1,0), rcpFrame.xy).xyz; + float3 rgbSW = FxaaTexOff(tex, posPos.zw, FxaaInt2(0,1), rcpFrame.xy).xyz; + float3 rgbSE = FxaaTexOff(tex, posPos.zw, FxaaInt2(1,1), rcpFrame.xy).xyz; + float3 rgbM = FxaaTexLod0(tex, posPos.xy).xyz; +/*--------------------------------------------------------------------------*/ + float3 luma = float3(0.299, 0.587, 0.114); + float lumaNW = dot(rgbNW, luma); + float lumaNE = dot(rgbNE, luma); + float lumaSW = dot(rgbSW, luma); + float lumaSE = dot(rgbSE, luma); + float lumaM = dot(rgbM, luma); +/*--------------------------------------------------------------------------*/ + float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE))); + float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE))); +/*--------------------------------------------------------------------------*/ + float2 dir; + dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE)); + dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE)); +/*--------------------------------------------------------------------------*/ + float dirReduce = max( + (lumaNW + lumaNE + lumaSW + lumaSE) * (0.25 * FXAA_REDUCE_MUL), + FXAA_REDUCE_MIN); + float rcpDirMin = 1.0/(min(abs(dir.x), abs(dir.y)) + dirReduce); + dir = min(FxaaFloat2( FXAA_SPAN_MAX, FXAA_SPAN_MAX), + max(FxaaFloat2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX), + dir * rcpDirMin)) * rcpFrame.xy; +/*--------------------------------------------------------------------------*/ + float3 rgbA = (1.0/2.0) * ( + FxaaTexLod0(tex, posPos.xy + dir * (1.0/3.0 - 0.5)).xyz + + FxaaTexLod0(tex, posPos.xy + dir * (2.0/3.0 - 0.5)).xyz); + float3 rgbB = rgbA * (1.0/2.0) + (1.0/4.0) * ( + FxaaTexLod0(tex, posPos.xy + dir * (0.0/3.0 - 0.5)).xyz + + FxaaTexLod0(tex, posPos.xy + dir * (3.0/3.0 - 0.5)).xyz); + float lumaB = dot(rgbB, luma); + if((lumaB < lumaMin) || (lumaB > lumaMax)) return rgbA; + return rgbB; } + + +struct v2f { + float4 pos : SV_POSITION; + float4 uv : TEXCOORD0; +}; + +float4 _MainTex_TexelSize; + +v2f vert (appdata_img v) +{ + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = FxaaVertexShader (v.texcoord.xy*2-1, _MainTex_TexelSize.xy); + return o; +} + +sampler2D _MainTex; + +float4 frag (v2f i) : SV_Target +{ + return float4(FxaaPixelShader(i.uv, _MainTex, _MainTex_TexelSize.xy).xyz, 0.0f); +} + +ENDCG + } +} + +Fallback off +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAA2.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAA2.shader.meta new file mode 100644 index 0000000..365db5f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAA2.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: cd5b323dcc592457790ff18b528f5e67 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAA3Console.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAA3Console.shader new file mode 100644 index 0000000..c00f526 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAA3Console.shader @@ -0,0 +1,174 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + + + +/*============================================================================ + +source taken from + + + NVIDIA FXAA 3.11 by TIMOTHY LOTTES + + +and adapted and ported to Unity by Unity Technologies + + +------------------------------------------------------------------------------ +COPYRIGHT (C) 2010, 2011 NVIDIA CORPORATION. ALL RIGHTS RESERVED. +------------------------------------------------------------------------------ +TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED +*AS IS* AND NVIDIA AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, EITHER EXPRESS +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA +OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR +CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR +LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, +OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE +THIS SOFTWARE, EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + +============================================================================*/ + + +Shader "Hidden/FXAA III (Console)" { + Properties { + _MainTex ("-", 2D) = "white" {} + _EdgeThresholdMin ("Edge threshold min",float) = 0.125 + _EdgeThreshold("Edge Threshold", float) = 0.25 + _EdgeSharpness("Edge sharpness",float) = 4.0 + } + SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 3.0 + + #include "UnityCG.cginc" + + uniform sampler2D _MainTex; + uniform half _EdgeThresholdMin; + uniform half _EdgeThreshold; + uniform half _EdgeSharpness; + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float4 interpolatorA : TEXCOORD1; + float4 interpolatorB : TEXCOORD2; + float4 interpolatorC : TEXCOORD3; + }; + + float4 _MainTex_TexelSize; + + v2f vert (appdata_img v) + { + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + + o.uv = v.texcoord.xy; + + float4 extents; + float2 offset = ( _MainTex_TexelSize.xy ) * 0.5f; + extents.xy = v.texcoord.xy - offset; + extents.zw = v.texcoord.xy + offset; + + float4 rcpSize; + rcpSize.xy = -_MainTex_TexelSize.xy * 0.5f; + rcpSize.zw = _MainTex_TexelSize.xy * 0.5f; +#if defined (SHADER_API_PSP2) + //cg compiler linker bug workaround + float almostzero = v.texcoord.x*0.000001f; + rcpSize.x += almostzero; +#endif + o.interpolatorA = extents; + o.interpolatorB = rcpSize; + o.interpolatorC = rcpSize; + + o.interpolatorC.xy *= 4.0; + o.interpolatorC.zw *= 4.0; + + return o; + } + +// hacky support for NaCl +#if defined(SHADER_API_GLES) && defined(SHADER_API_DESKTOP) + #define FxaaTexTop(t, p) tex2D(t, p) +#else + #define FxaaTexTop(t, p) tex2Dlod(t, float4(p, 0.0, 0.0)) +#endif + + inline half TexLuminance( float2 uv ) + { + return Luminance(FxaaTexTop(_MainTex, uv).rgb); + } + + half3 FxaaPixelShader(float2 pos, float4 extents, float4 rcpSize, float4 rcpSize2) + { + half lumaNw = TexLuminance(extents.xy); + half lumaSw = TexLuminance(extents.xw); + half lumaNe = TexLuminance(extents.zy); + half lumaSe = TexLuminance(extents.zw); + + half3 centre = FxaaTexTop(_MainTex, pos).rgb; + half lumaCentre = Luminance(centre); + + half lumaMaxNwSw = max( lumaNw , lumaSw ); + lumaNe += 1.0/384.0; + half lumaMinNwSw = min( lumaNw , lumaSw ); + + half lumaMaxNeSe = max( lumaNe , lumaSe ); + half lumaMinNeSe = min( lumaNe , lumaSe ); + + half lumaMax = max( lumaMaxNeSe, lumaMaxNwSw ); + half lumaMin = min( lumaMinNeSe, lumaMinNwSw ); + + half lumaMaxScaled = lumaMax * _EdgeThreshold; + + half lumaMinCentre = min( lumaMin , lumaCentre ); + half lumaMaxScaledClamped = max( _EdgeThresholdMin , lumaMaxScaled ); + half lumaMaxCentre = max( lumaMax , lumaCentre ); + half dirSWMinusNE = lumaSw - lumaNe; + half lumaMaxCMinusMinC = lumaMaxCentre - lumaMinCentre; + half dirSEMinusNW = lumaSe - lumaNw; + + if(lumaMaxCMinusMinC < lumaMaxScaledClamped) + return centre; + + half2 dir; + dir.x = dirSWMinusNE + dirSEMinusNW; + dir.y = dirSWMinusNE - dirSEMinusNW; + + dir = normalize(dir); + half3 col1 = FxaaTexTop(_MainTex, pos.xy - dir * rcpSize.zw).rgb; + half3 col2 = FxaaTexTop(_MainTex, pos.xy + dir * rcpSize.zw).rgb; + + half dirAbsMinTimesC = min( abs( dir.x ) , abs( dir.y ) ) * _EdgeSharpness; + dir = clamp(dir.xy/dirAbsMinTimesC, -2.0, 2.0); + + half3 col3 = FxaaTexTop(_MainTex, pos.xy - dir * rcpSize2.zw).rgb; + half3 col4 = FxaaTexTop(_MainTex, pos.xy + dir * rcpSize2.zw).rgb; + + half3 rgbyA = col1 + col2; + half3 rgbyB = ((col3 + col4) * 0.25) + (rgbyA * 0.25); + + if((Luminance(rgbyA) < lumaMin) || (Luminance(rgbyB) > lumaMax)) + return rgbyA * 0.5; + else + return rgbyB; + } + + half4 frag (v2f i) : SV_Target + { + half3 color = FxaaPixelShader(i.uv, i.interpolatorA, i.interpolatorB, i.interpolatorC); + return half4(color, 1.0); + } + + ENDCG + } + } + FallBack Off +} + diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAA3Console.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAA3Console.shader.meta new file mode 100644 index 0000000..6306815 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAA3Console.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: c547503fff0e8482ea5793727057041c +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAAPreset2.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAAPreset2.shader new file mode 100644 index 0000000..07afa03 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAAPreset2.shader @@ -0,0 +1,829 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/FXAA Preset 2" { +Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} +} + +SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + +CGPROGRAM +#pragma vertex vert +#pragma fragment frag +#include "UnityCG.cginc" +#pragma target 3.0 + +// doesn't make sense to have this on consoles, it'll fallback to FXAA2 +#pragma exclude_renderers xbox360 ps3 gles + + +#define FXAA_HLSL_3 1 +#define FXAA_PRESET 2 + + +// Copyright (c) 2010 NVIDIA Corporation. All rights reserved. +// +// TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED +// *AS IS* AND NVIDIA AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, EITHER EXPRESS +// OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY +// AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA OR ITS SUPPLIERS +// BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES +// WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, +// BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) +// ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF NVIDIA HAS +// BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +/*============================================================================ + + FXAA + +============================================================================*/ + +/*============================================================================ + API PORTING +============================================================================*/ +#ifndef FXAA_GLSL_120 + #define FXAA_GLSL_120 0 +#endif +#ifndef FXAA_GLSL_130 + #define FXAA_GLSL_130 0 +#endif +#ifndef FXAA_HLSL_3 + #define FXAA_HLSL_3 0 +#endif +#ifndef FXAA_HLSL_4 + #define FXAA_HLSL_4 0 +#endif +/*--------------------------------------------------------------------------*/ +#if FXAA_GLSL_120 + // Requires, + // #version 120 + // #extension GL_EXT_gpu_shader4 : enable + #define int2 ivec2 + #define float2 vec2 + #define float3 vec3 + #define float4 vec4 + #define FxaaBool3 bvec3 + #define FxaaInt2 ivec2 + #define FxaaFloat2 vec2 + #define FxaaFloat3 vec3 + #define FxaaFloat4 vec4 + #define FxaaBool2Float(a) mix(0.0, 1.0, (a)) + #define FxaaPow3(x, y) pow(x, y) + #define FxaaSel3(f, t, b) mix((f), (t), (b)) + #define FxaaTex sampler2D +#endif +/*--------------------------------------------------------------------------*/ +#if FXAA_GLSL_130 + // Requires "#version 130" or better + #define int2 ivec2 + #define float2 vec2 + #define float3 vec3 + #define float4 vec4 + #define FxaaBool3 bvec3 + #define FxaaInt2 ivec2 + #define FxaaFloat2 vec2 + #define FxaaFloat3 vec3 + #define FxaaFloat4 vec4 + #define FxaaBool2Float(a) mix(0.0, 1.0, (a)) + #define FxaaPow3(x, y) pow(x, y) + #define FxaaSel3(f, t, b) mix((f), (t), (b)) + #define FxaaTex sampler2D +#endif +/*--------------------------------------------------------------------------*/ +#if FXAA_HLSL_3 + #define int2 float2 + #define FxaaInt2 float2 + #define FxaaFloat2 float2 + #define FxaaFloat3 float3 + #define FxaaFloat4 float4 + #define FxaaBool2Float(a) (a) + #define FxaaPow3(x, y) pow(x, y) + #define FxaaSel3(f, t, b) ((f)*(!b) + (t)*(b)) + #define FxaaTex sampler2D +#endif +/*--------------------------------------------------------------------------*/ +#if FXAA_HLSL_4 + #define FxaaInt2 int2 + #define FxaaFloat2 float2 + #define FxaaFloat3 float3 + #define FxaaFloat4 float4 + #define FxaaBool2Float(a) (a) + #define FxaaPow3(x, y) pow(x, y) + #define FxaaSel3(f, t, b) ((f)*(!b) + (t)*(b)) + struct FxaaTex { SamplerState smpl; Texture2D tex; }; +#endif +/*--------------------------------------------------------------------------*/ +#define FxaaToFloat3(a) FxaaFloat3((a), (a), (a)) +/*--------------------------------------------------------------------------*/ +float4 FxaaTexLod0(FxaaTex tex, float2 pos) { + #if FXAA_GLSL_120 + return texture2DLod(tex, pos.xy, 0.0); + #endif + #if FXAA_GLSL_130 + return textureLod(tex, pos.xy, 0.0); + #endif + #if FXAA_HLSL_3 + return tex2Dlod(tex, float4(pos.xy, 0.0, 0.0)); + #endif + #if FXAA_HLSL_4 + return tex.tex.SampleLevel(tex.smpl, pos.xy, 0.0); + #endif +} +/*--------------------------------------------------------------------------*/ +float4 FxaaTexGrad(FxaaTex tex, float2 pos, float2 grad) { + #if FXAA_GLSL_120 + return texture2DGrad(tex, pos.xy, grad, grad); + #endif + #if FXAA_GLSL_130 + return textureGrad(tex, pos.xy, grad, grad); + #endif + #if FXAA_HLSL_3 + return tex2Dgrad(tex, pos.xy, grad, grad); + #endif + #if FXAA_HLSL_4 + return tex.tex.SampleGrad(tex.smpl, pos.xy, grad, grad); + #endif +} +/*--------------------------------------------------------------------------*/ +float4 FxaaTexOff(FxaaTex tex, float2 pos, int2 off, float2 rcpFrame) { + #if FXAA_GLSL_120 + return texture2DLodOffset(tex, pos.xy, 0.0, off.xy); + #endif + #if FXAA_GLSL_130 + return textureLodOffset(tex, pos.xy, 0.0, off.xy); + #endif + #if FXAA_HLSL_3 + return tex2Dlod(tex, float4(pos.xy + (off * rcpFrame), 0, 0)); + #endif + #if FXAA_HLSL_4 + return tex.tex.SampleLevel(tex.smpl, pos.xy, 0.0, off.xy); + #endif +} + +/*============================================================================ + SRGB KNOBS +------------------------------------------------------------------------------ +FXAA_SRGB_ROP - Set to 1 when applying FXAA to an sRGB back buffer (DX10/11). + This will do the sRGB to linear transform, + as ROP will expect linear color from this shader, + and this shader works in non-linear color. +============================================================================*/ +#define FXAA_SRGB_ROP 0 + +/*============================================================================ + DEBUG KNOBS +------------------------------------------------------------------------------ +All debug knobs draw FXAA-untouched pixels in FXAA computed luma (monochrome). + +FXAA_DEBUG_PASSTHROUGH - Red for pixels which are filtered by FXAA with a + yellow tint on sub-pixel aliasing filtered by FXAA. +FXAA_DEBUG_HORZVERT - Blue for horizontal edges, gold for vertical edges. +FXAA_DEBUG_PAIR - Blue/green for the 2 pixel pair choice. +FXAA_DEBUG_NEGPOS - Red/blue for which side of center of span. +FXAA_DEBUG_OFFSET - Red/blue for -/+ x, gold/skyblue for -/+ y. +============================================================================*/ +#ifndef FXAA_DEBUG_PASSTHROUGH + #define FXAA_DEBUG_PASSTHROUGH 0 +#endif +#ifndef FXAA_DEBUG_HORZVERT + #define FXAA_DEBUG_HORZVERT 0 +#endif +#ifndef FXAA_DEBUG_PAIR + #define FXAA_DEBUG_PAIR 0 +#endif +#ifndef FXAA_DEBUG_NEGPOS + #define FXAA_DEBUG_NEGPOS 0 +#endif +#ifndef FXAA_DEBUG_OFFSET + #define FXAA_DEBUG_OFFSET 0 +#endif +/*--------------------------------------------------------------------------*/ +#if FXAA_DEBUG_PASSTHROUGH || FXAA_DEBUG_HORZVERT || FXAA_DEBUG_PAIR + #define FXAA_DEBUG 1 +#endif +#if FXAA_DEBUG_NEGPOS || FXAA_DEBUG_OFFSET + #define FXAA_DEBUG 1 +#endif +#ifndef FXAA_DEBUG + #define FXAA_DEBUG 0 +#endif + +/*============================================================================ + COMPILE-IN KNOBS +------------------------------------------------------------------------------ +FXAA_PRESET - Choose compile-in knob preset 0-5. +------------------------------------------------------------------------------ +FXAA_EDGE_THRESHOLD - The minimum amount of local contrast required + to apply algorithm. + 1.0/3.0 - too little + 1.0/4.0 - good start + 1.0/8.0 - applies to more edges + 1.0/16.0 - overkill +------------------------------------------------------------------------------ +FXAA_EDGE_THRESHOLD_MIN - Trims the algorithm from processing darks. + Perf optimization. + 1.0/32.0 - visible limit (smaller isn't visible) + 1.0/16.0 - good compromise + 1.0/12.0 - upper limit (seeing artifacts) +------------------------------------------------------------------------------ +FXAA_SEARCH_STEPS - Maximum number of search steps for end of span. +------------------------------------------------------------------------------ +FXAA_SEARCH_ACCELERATION - How much to accelerate search, + 1 - no acceleration + 2 - skip by 2 pixels + 3 - skip by 3 pixels + 4 - skip by 4 pixels +------------------------------------------------------------------------------ +FXAA_SEARCH_THRESHOLD - Controls when to stop searching. + 1.0/4.0 - seems to be the best quality wise +------------------------------------------------------------------------------ +FXAA_SUBPIX_FASTER - Turn on lower quality but faster subpix path. + Not recomended, but used in preset 0. +------------------------------------------------------------------------------ +FXAA_SUBPIX - Toggle subpix filtering. + 0 - turn off + 1 - turn on + 2 - turn on full (ignores FXAA_SUBPIX_TRIM and CAP) +------------------------------------------------------------------------------ +FXAA_SUBPIX_TRIM - Controls sub-pixel aliasing removal. + 1.0/2.0 - low removal + 1.0/3.0 - medium removal + 1.0/4.0 - default removal + 1.0/8.0 - high removal + 0.0 - complete removal +------------------------------------------------------------------------------ +FXAA_SUBPIX_CAP - Insures fine detail is not completely removed. + This is important for the transition of sub-pixel detail, + like fences and wires. + 3.0/4.0 - default (medium amount of filtering) + 7.0/8.0 - high amount of filtering + 1.0 - no capping of sub-pixel aliasing removal +============================================================================*/ +#ifndef FXAA_PRESET + #define FXAA_PRESET 3 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_PRESET == 0) + #define FXAA_EDGE_THRESHOLD (1.0/4.0) + #define FXAA_EDGE_THRESHOLD_MIN (1.0/12.0) + #define FXAA_SEARCH_STEPS 2 + #define FXAA_SEARCH_ACCELERATION 4 + #define FXAA_SEARCH_THRESHOLD (1.0/4.0) + #define FXAA_SUBPIX 1 + #define FXAA_SUBPIX_FASTER 1 + #define FXAA_SUBPIX_CAP (2.0/3.0) + #define FXAA_SUBPIX_TRIM (1.0/4.0) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_PRESET == 1) + #define FXAA_EDGE_THRESHOLD (1.0/8.0) + #define FXAA_EDGE_THRESHOLD_MIN (1.0/16.0) + #define FXAA_SEARCH_STEPS 4 + #define FXAA_SEARCH_ACCELERATION 3 + #define FXAA_SEARCH_THRESHOLD (1.0/4.0) + #define FXAA_SUBPIX 1 + #define FXAA_SUBPIX_FASTER 0 + #define FXAA_SUBPIX_CAP (3.0/4.0) + #define FXAA_SUBPIX_TRIM (1.0/4.0) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_PRESET == 2) + #define FXAA_EDGE_THRESHOLD (1.0/8.0) + #define FXAA_EDGE_THRESHOLD_MIN (1.0/24.0) + #define FXAA_SEARCH_STEPS 8 + #define FXAA_SEARCH_ACCELERATION 2 + #define FXAA_SEARCH_THRESHOLD (1.0/4.0) + #define FXAA_SUBPIX 1 + #define FXAA_SUBPIX_FASTER 0 + #define FXAA_SUBPIX_CAP (3.0/4.0) + #define FXAA_SUBPIX_TRIM (1.0/4.0) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_PRESET == 3) + #define FXAA_EDGE_THRESHOLD (1.0/8.0) + #define FXAA_EDGE_THRESHOLD_MIN (1.0/24.0) + #define FXAA_SEARCH_STEPS 16 + #define FXAA_SEARCH_ACCELERATION 1 + #define FXAA_SEARCH_THRESHOLD (1.0/4.0) + #define FXAA_SUBPIX 1 + #define FXAA_SUBPIX_FASTER 0 + #define FXAA_SUBPIX_CAP (3.0/4.0) + #define FXAA_SUBPIX_TRIM (1.0/4.0) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_PRESET == 4) + #define FXAA_EDGE_THRESHOLD (1.0/8.0) + #define FXAA_EDGE_THRESHOLD_MIN (1.0/24.0) + #define FXAA_SEARCH_STEPS 24 + #define FXAA_SEARCH_ACCELERATION 1 + #define FXAA_SEARCH_THRESHOLD (1.0/4.0) + #define FXAA_SUBPIX 1 + #define FXAA_SUBPIX_FASTER 0 + #define FXAA_SUBPIX_CAP (3.0/4.0) + #define FXAA_SUBPIX_TRIM (1.0/4.0) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_PRESET == 5) + #define FXAA_EDGE_THRESHOLD (1.0/8.0) + #define FXAA_EDGE_THRESHOLD_MIN (1.0/24.0) + #define FXAA_SEARCH_STEPS 32 + #define FXAA_SEARCH_ACCELERATION 1 + #define FXAA_SEARCH_THRESHOLD (1.0/4.0) + #define FXAA_SUBPIX 1 + #define FXAA_SUBPIX_FASTER 0 + #define FXAA_SUBPIX_CAP (3.0/4.0) + #define FXAA_SUBPIX_TRIM (1.0/4.0) +#endif +/*--------------------------------------------------------------------------*/ +#define FXAA_SUBPIX_TRIM_SCALE (1.0/(1.0 - FXAA_SUBPIX_TRIM)) + +/*============================================================================ + HELPERS +============================================================================*/ +// Return the luma, the estimation of luminance from rgb inputs. +// This approximates luma using one FMA instruction, +// skipping normalization and tossing out blue. +// FxaaLuma() will range 0.0 to 2.963210702. +float FxaaLuma(float3 rgb) { + return rgb.y * (0.587/0.299) + rgb.x; } +/*--------------------------------------------------------------------------*/ +float3 FxaaLerp3(float3 a, float3 b, float amountOfA) { + return (FxaaToFloat3(-amountOfA) * b) + + ((a * FxaaToFloat3(amountOfA)) + b); } +/*--------------------------------------------------------------------------*/ +// Support any extra filtering before returning color. +float3 FxaaFilterReturn(float3 rgb) { + #if FXAA_SRGB_ROP + // Do sRGB encoded value to linear conversion. + return FxaaSel3( + rgb * FxaaToFloat3(1.0/12.92), + FxaaPow3( + rgb * FxaaToFloat3(1.0/1.055) + FxaaToFloat3(0.055/1.055), + FxaaToFloat3(2.4)), + rgb > FxaaToFloat3(0.04045)); + #else + return rgb; + #endif +} + +/*============================================================================ + VERTEX SHADER +============================================================================*/ +float2 FxaaVertexShader( +// Both x and y range {-1.0 to 1.0 across screen}. +float2 inPos) { + float2 pos; + pos.xy = (inPos.xy * FxaaFloat2(0.5, 0.5)) + FxaaFloat2(0.5, 0.5); + return pos; } + +/*============================================================================ + + PIXEL SHADER + +============================================================================*/ +float3 FxaaPixelShader( +// Output of FxaaVertexShader interpolated across screen. +// xy -> actual texture position {0.0 to 1.0} +float2 pos, +// Input texture. +FxaaTex tex, +// RCPFRAME SHOULD PIXEL SHADER CONSTANTS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +// {1.0/frameWidth, 1.0/frameHeight} +float2 rcpFrame) { + +/*---------------------------------------------------------------------------- + EARLY EXIT IF LOCAL CONTRAST BELOW EDGE DETECT LIMIT +------------------------------------------------------------------------------ +Majority of pixels of a typical image do not require filtering, +often pixels are grouped into blocks which could benefit from early exit +right at the beginning of the algorithm. +Given the following neighborhood, + + N + W M E + S + +If the difference in local maximum and minimum luma (contrast "range") +is lower than a threshold proportional to the maximum local luma ("rangeMax"), +then the shader early exits (no visible aliasing). +This threshold is clamped at a minimum value ("FXAA_EDGE_THRESHOLD_MIN") +to avoid processing in really dark areas. +----------------------------------------------------------------------------*/ + float3 rgbN = FxaaTexOff(tex, pos.xy, FxaaInt2( 0,-1), rcpFrame).xyz; + float3 rgbW = FxaaTexOff(tex, pos.xy, FxaaInt2(-1, 0), rcpFrame).xyz; + float3 rgbM = FxaaTexOff(tex, pos.xy, FxaaInt2( 0, 0), rcpFrame).xyz; + float3 rgbE = FxaaTexOff(tex, pos.xy, FxaaInt2( 1, 0), rcpFrame).xyz; + float3 rgbS = FxaaTexOff(tex, pos.xy, FxaaInt2( 0, 1), rcpFrame).xyz; + float lumaN = FxaaLuma(rgbN); + float lumaW = FxaaLuma(rgbW); + float lumaM = FxaaLuma(rgbM); + float lumaE = FxaaLuma(rgbE); + float lumaS = FxaaLuma(rgbS); + float rangeMin = min(lumaM, min(min(lumaN, lumaW), min(lumaS, lumaE))); + float rangeMax = max(lumaM, max(max(lumaN, lumaW), max(lumaS, lumaE))); + float range = rangeMax - rangeMin; + #if FXAA_DEBUG + float lumaO = lumaM / (1.0 + (0.587/0.299)); + #endif + if(range < max(FXAA_EDGE_THRESHOLD_MIN, rangeMax * FXAA_EDGE_THRESHOLD)) { + #if FXAA_DEBUG + return FxaaFilterReturn(FxaaToFloat3(lumaO)); + #endif + return FxaaFilterReturn(rgbM); } + #if FXAA_SUBPIX > 0 + #if FXAA_SUBPIX_FASTER + float3 rgbL = (rgbN + rgbW + rgbE + rgbS + rgbM) * + FxaaToFloat3(1.0/5.0); + #else + float3 rgbL = rgbN + rgbW + rgbM + rgbE + rgbS; + #endif + #endif + +/*---------------------------------------------------------------------------- + COMPUTE LOWPASS +------------------------------------------------------------------------------ +FXAA computes a local neighborhood lowpass value as follows, + + (N + W + E + S)/4 + +Then uses the ratio of the contrast range of the lowpass +and the range found in the early exit check, +as a sub-pixel aliasing detection filter. +When FXAA detects sub-pixel aliasing (such as single pixel dots), +it later blends in "blendL" amount +of a lowpass value (computed in the next section) to the final result. +----------------------------------------------------------------------------*/ + #if FXAA_SUBPIX != 0 + float lumaL = (lumaN + lumaW + lumaE + lumaS) * 0.25; + float rangeL = abs(lumaL - lumaM); + #endif + #if FXAA_SUBPIX == 1 + float blendL = max(0.0, + (rangeL / range) - FXAA_SUBPIX_TRIM) * FXAA_SUBPIX_TRIM_SCALE; + blendL = min(FXAA_SUBPIX_CAP, blendL); + #endif + #if FXAA_SUBPIX == 2 + float blendL = rangeL / range; + #endif + #if FXAA_DEBUG_PASSTHROUGH + #if FXAA_SUBPIX == 0 + float blendL = 0.0; + #endif + return FxaaFilterReturn( + FxaaFloat3(1.0, blendL/FXAA_SUBPIX_CAP, 0.0)); + #endif + +/*---------------------------------------------------------------------------- + CHOOSE VERTICAL OR HORIZONTAL SEARCH +------------------------------------------------------------------------------ +FXAA uses the following local neighborhood, + + NW N NE + W M E + SW S SE + +To compute an edge amount for both vertical and horizontal directions. +Note edge detect filters like Sobel fail on single pixel lines through M. +FXAA takes the weighted average magnitude of the high-pass values +for rows and columns as an indication of local edge amount. + +A lowpass value for anti-sub-pixel-aliasing is computed as + (N+W+E+S+M+NW+NE+SW+SE)/9. +This full box pattern has higher quality than other options. + +Note following this block, both vertical and horizontal cases +flow in parallel (reusing the horizontal variables). +----------------------------------------------------------------------------*/ + float3 rgbNW = FxaaTexOff(tex, pos.xy, FxaaInt2(-1,-1), rcpFrame).xyz; + float3 rgbNE = FxaaTexOff(tex, pos.xy, FxaaInt2( 1,-1), rcpFrame).xyz; + float3 rgbSW = FxaaTexOff(tex, pos.xy, FxaaInt2(-1, 1), rcpFrame).xyz; + float3 rgbSE = FxaaTexOff(tex, pos.xy, FxaaInt2( 1, 1), rcpFrame).xyz; + #if (FXAA_SUBPIX_FASTER == 0) && (FXAA_SUBPIX > 0) + rgbL += (rgbNW + rgbNE + rgbSW + rgbSE); + rgbL *= FxaaToFloat3(1.0/9.0); + #endif + float lumaNW = FxaaLuma(rgbNW); + float lumaNE = FxaaLuma(rgbNE); + float lumaSW = FxaaLuma(rgbSW); + float lumaSE = FxaaLuma(rgbSE); + float edgeVert = + abs((0.25 * lumaNW) + (-0.5 * lumaN) + (0.25 * lumaNE)) + + abs((0.50 * lumaW ) + (-1.0 * lumaM) + (0.50 * lumaE )) + + abs((0.25 * lumaSW) + (-0.5 * lumaS) + (0.25 * lumaSE)); + float edgeHorz = + abs((0.25 * lumaNW) + (-0.5 * lumaW) + (0.25 * lumaSW)) + + abs((0.50 * lumaN ) + (-1.0 * lumaM) + (0.50 * lumaS )) + + abs((0.25 * lumaNE) + (-0.5 * lumaE) + (0.25 * lumaSE)); + bool horzSpan = edgeHorz >= edgeVert; + #if FXAA_DEBUG_HORZVERT + if(horzSpan) return FxaaFilterReturn(FxaaFloat3(1.0, 0.75, 0.0)); + else return FxaaFilterReturn(FxaaFloat3(0.0, 0.50, 1.0)); + #endif + float lengthSign = horzSpan ? -rcpFrame.y : -rcpFrame.x; + if(!horzSpan) lumaN = lumaW; + if(!horzSpan) lumaS = lumaE; + float gradientN = abs(lumaN - lumaM); + float gradientS = abs(lumaS - lumaM); + lumaN = (lumaN + lumaM) * 0.5; + lumaS = (lumaS + lumaM) * 0.5; + +/*---------------------------------------------------------------------------- + CHOOSE SIDE OF PIXEL WHERE GRADIENT IS HIGHEST +------------------------------------------------------------------------------ +This chooses a pixel pair. +For "horzSpan == true" this will be a vertical pair, + + [N] N + [M] or [M] + S [S] + +Note following this block, both {N,M} and {S,M} cases +flow in parallel (reusing the {N,M} variables). + +This pair of image rows or columns is searched below +in the positive and negative direction +until edge status changes +(or the maximum number of search steps is reached). +----------------------------------------------------------------------------*/ + bool pairN = gradientN >= gradientS; + #if FXAA_DEBUG_PAIR + if(pairN) return FxaaFilterReturn(FxaaFloat3(0.0, 0.0, 1.0)); + else return FxaaFilterReturn(FxaaFloat3(0.0, 1.0, 0.0)); + #endif + if(!pairN) lumaN = lumaS; + if(!pairN) gradientN = gradientS; + if(!pairN) lengthSign *= -1.0; + float2 posN; + posN.x = pos.x + (horzSpan ? 0.0 : lengthSign * 0.5); + posN.y = pos.y + (horzSpan ? lengthSign * 0.5 : 0.0); + +/*---------------------------------------------------------------------------- + CHOOSE SEARCH LIMITING VALUES +------------------------------------------------------------------------------ +Search limit (+/- gradientN) is a function of local gradient. +----------------------------------------------------------------------------*/ + gradientN *= FXAA_SEARCH_THRESHOLD; + +/*---------------------------------------------------------------------------- + SEARCH IN BOTH DIRECTIONS UNTIL FIND LUMA PAIR AVERAGE IS OUT OF RANGE +------------------------------------------------------------------------------ +This loop searches either in vertical or horizontal directions, +and in both the negative and positive direction in parallel. +This loop fusion is faster than searching separately. + +The search is accelerated using FXAA_SEARCH_ACCELERATION length box filter +via anisotropic filtering with specified texture gradients. +----------------------------------------------------------------------------*/ + float2 posP = posN; + float2 offNP = horzSpan ? + FxaaFloat2(rcpFrame.x, 0.0) : + FxaaFloat2(0.0f, rcpFrame.y); + float lumaEndN = lumaN; + float lumaEndP = lumaN; + bool doneN = false; + bool doneP = false; + #if FXAA_SEARCH_ACCELERATION == 1 + posN += offNP * FxaaFloat2(-1.0, -1.0); + posP += offNP * FxaaFloat2( 1.0, 1.0); + #endif + #if FXAA_SEARCH_ACCELERATION == 2 + posN += offNP * FxaaFloat2(-1.5, -1.5); + posP += offNP * FxaaFloat2( 1.5, 1.5); + offNP *= FxaaFloat2(2.0, 2.0); + #endif + #if FXAA_SEARCH_ACCELERATION == 3 + posN += offNP * FxaaFloat2(-2.0, -2.0); + posP += offNP * FxaaFloat2( 2.0, 2.0); + offNP *= FxaaFloat2(3.0, 3.0); + #endif + #if FXAA_SEARCH_ACCELERATION == 4 + posN += offNP * FxaaFloat2(-2.5, -2.5); + posP += offNP * FxaaFloat2( 2.5, 2.5); + offNP *= FxaaFloat2(4.0, 4.0); + #endif + for(int i = 0; i < FXAA_SEARCH_STEPS; i++) { + #if FXAA_SEARCH_ACCELERATION == 1 + if(!doneN) lumaEndN = + FxaaLuma(FxaaTexLod0(tex, posN.xy).xyz); + if(!doneP) lumaEndP = + FxaaLuma(FxaaTexLod0(tex, posP.xy).xyz); + #else + if(!doneN) lumaEndN = + FxaaLuma(FxaaTexGrad(tex, posN.xy, offNP).xyz); + if(!doneP) lumaEndP = + FxaaLuma(FxaaTexGrad(tex, posP.xy, offNP).xyz); + #endif + doneN = doneN || (abs(lumaEndN - lumaN) >= gradientN); + doneP = doneP || (abs(lumaEndP - lumaN) >= gradientN); + if(doneN && doneP) break; + if(!doneN) posN -= offNP; + if(!doneP) posP += offNP; } + +/*---------------------------------------------------------------------------- + HANDLE IF CENTER IS ON POSITIVE OR NEGATIVE SIDE +------------------------------------------------------------------------------ +FXAA uses the pixel's position in the span +in combination with the values (lumaEnd*) at the ends of the span, +to determine filtering. + +This step computes which side of the span the pixel is on. +On negative side if dstN < dstP, + + posN pos posP + |-----------|------|------------------| + | | | | + |<--dstN--->|<---------dstP---------->| + | + span center + +----------------------------------------------------------------------------*/ + float dstN = horzSpan ? pos.x - posN.x : pos.y - posN.y; + float dstP = horzSpan ? posP.x - pos.x : posP.y - pos.y; + bool directionN = dstN < dstP; + #if FXAA_DEBUG_NEGPOS + if(directionN) return FxaaFilterReturn(FxaaFloat3(1.0, 0.0, 0.0)); + else return FxaaFilterReturn(FxaaFloat3(0.0, 0.0, 1.0)); + #endif + lumaEndN = directionN ? lumaEndN : lumaEndP; + +/*---------------------------------------------------------------------------- + CHECK IF PIXEL IS IN SECTION OF SPAN WHICH GETS NO FILTERING +------------------------------------------------------------------------------ +If both the pair luma at the end of the span (lumaEndN) +and middle pixel luma (lumaM) +are on the same side of the middle pair average luma (lumaN), +then don't filter. + +Cases, + +(1.) "L", + + lumaM + | + V XXXXXXXX <- other line averaged + XXXXXXX[X]XXXXXXXXXXX <- source pixel line + | . | + -------------------------- + [ ]xxxxxx[x]xx[X]XXXXXX <- pair average + -------------------------- + ^ ^ ^ ^ + | | | | + . |<---->|<---------- no filter region + . | | | + . center | | + . | lumaEndN + . | . + . lumaN . + . . + |<--- span -->| + + +(2.) "^" and "-", + + <- other line averaged + XXXXX[X]XXX <- source pixel line + | | | + -------------------------- + [ ]xxxx[x]xx[ ] <- pair average + -------------------------- + | | | + |<--->|<--->|<---------- filter both sides + + +(3.) "v" and inverse of "-", + + XXXXXX XXXXXXXXX <- other line averaged + XXXXXXXXXXX[X]XXXXXXXXXXXX <- source pixel line + | | | + -------------------------- + XXXX[X]xxxx[x]xx[X]XXXXXXX <- pair average + -------------------------- + | | | + |<--->|<--->|<---------- don't filter both! + + +Note the "v" case for FXAA requires no filtering. +This is because the inverse of the "-" case is the "v". +Filtering "v" case turns open spans like this, + + XXXXXXXXX + +Into this (which is not desired), + + x+. .+x + XXXXXXXXX + +----------------------------------------------------------------------------*/ + if(((lumaM - lumaN) < 0.0) == ((lumaEndN - lumaN) < 0.0)) + lengthSign = 0.0; + +/*---------------------------------------------------------------------------- + COMPUTE SUB-PIXEL OFFSET AND FILTER SPAN +------------------------------------------------------------------------------ +FXAA filters using a bilinear texture fetch offset +from the middle pixel M towards the center of the pair (NM below). +Maximum filtering will be half way between pair. +Reminder, at this point in the code, +the {N,M} pair is also reused for all cases: {S,M}, {W,M}, and {E,M}. + + +-------+ + | | 0.5 offset + | N | | + | | V + +-------+....--- + | | + | M...|....--- + | | ^ + +-------+ | + . . 0.0 offset + . S . + . . + ......... + +Position on span is used to compute sub-pixel filter offset using simple ramp, + + posN posP + |\ |<------- 0.5 pixel offset into pair pixel + | \ | + | \ | + ---.......|...\..........|<------- 0.25 pixel offset into pair pixel + ^ | ^\ | + | | | \ | + V | | \ | + ---.......|===|==========|<------- 0.0 pixel offset (ie M pixel) + ^ . | ^ . + | . pos | . + | . . | . + | . . center . + | . . . + | |<->|<---------.-------- dstN + | . . . + | . |<-------->|<------- dstP + | . . + | |<------------>|<------- spanLength + | + subPixelOffset + +----------------------------------------------------------------------------*/ + float spanLength = (dstP + dstN); + dstN = directionN ? dstN : dstP; + float subPixelOffset = (0.5 + (dstN * (-1.0/spanLength))) * lengthSign; + #if FXAA_DEBUG_OFFSET + float ox = horzSpan ? 0.0 : subPixelOffset*2.0/rcpFrame.x; + float oy = horzSpan ? subPixelOffset*2.0/rcpFrame.y : 0.0; + if(ox < 0.0) return FxaaFilterReturn( + FxaaLerp3(FxaaToFloat3(lumaO), + FxaaFloat3(1.0, 0.0, 0.0), -ox)); + if(ox > 0.0) return FxaaFilterReturn( + FxaaLerp3(FxaaToFloat3(lumaO), + FxaaFloat3(0.0, 0.0, 1.0), ox)); + if(oy < 0.0) return FxaaFilterReturn( + FxaaLerp3(FxaaToFloat3(lumaO), + FxaaFloat3(1.0, 0.6, 0.2), -oy)); + if(oy > 0.0) return FxaaFilterReturn( + FxaaLerp3(FxaaToFloat3(lumaO), + FxaaFloat3(0.2, 0.6, 1.0), oy)); + return FxaaFilterReturn(FxaaFloat3(lumaO, lumaO, lumaO)); + #endif + float3 rgbF = FxaaTexLod0(tex, FxaaFloat2( + pos.x + (horzSpan ? 0.0 : subPixelOffset), + pos.y + (horzSpan ? subPixelOffset : 0.0))).xyz; + #if FXAA_SUBPIX == 0 + return FxaaFilterReturn(rgbF); + #else + return FxaaFilterReturn(FxaaLerp3(rgbL, rgbF, blendL)); + #endif +} + + + +struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; +}; + +v2f vert (appdata_img v) +{ + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = v.texcoord.xy; + return o; +} + +sampler2D _MainTex; +float4 _MainTex_TexelSize; + +float4 frag (v2f i) : SV_Target +{ + return float4(FxaaPixelShader(i.uv.xy, _MainTex, _MainTex_TexelSize.xy).xyz, 0.0f); +} + +ENDCG + } +} + +Fallback "Hidden/FXAA II" +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAAPreset2.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAAPreset2.shader.meta new file mode 100644 index 0000000..a0d603d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAAPreset2.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 6f1418cffd12146f2a83be795f6fa5a7 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAAPreset3.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAAPreset3.shader new file mode 100644 index 0000000..1cba248 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAAPreset3.shader @@ -0,0 +1,828 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/FXAA Preset 3" { +Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} +} + +SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + +CGPROGRAM +#pragma vertex vert +#pragma fragment frag +#include "UnityCG.cginc" +#pragma target 3.0 + +// Not very practical on consoles/mobile, and PS3 Cg takes ages to compile this :( +#pragma exclude_renderers xbox360 ps3 gles + +#define FXAA_HLSL_3 1 +#define FXAA_PRESET 3 + + +// Copyright (c) 2010 NVIDIA Corporation. All rights reserved. +// +// TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED +// *AS IS* AND NVIDIA AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, EITHER EXPRESS +// OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY +// AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA OR ITS SUPPLIERS +// BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES +// WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, +// BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) +// ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF NVIDIA HAS +// BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +/*============================================================================ + + FXAA + +============================================================================*/ + +/*============================================================================ + API PORTING +============================================================================*/ +#ifndef FXAA_GLSL_120 + #define FXAA_GLSL_120 0 +#endif +#ifndef FXAA_GLSL_130 + #define FXAA_GLSL_130 0 +#endif +#ifndef FXAA_HLSL_3 + #define FXAA_HLSL_3 0 +#endif +#ifndef FXAA_HLSL_4 + #define FXAA_HLSL_4 0 +#endif +/*--------------------------------------------------------------------------*/ +#if FXAA_GLSL_120 + // Requires, + // #version 120 + // #extension GL_EXT_gpu_shader4 : enable + #define int2 ivec2 + #define float2 vec2 + #define float3 vec3 + #define float4 vec4 + #define FxaaBool3 bvec3 + #define FxaaInt2 ivec2 + #define FxaaFloat2 vec2 + #define FxaaFloat3 vec3 + #define FxaaFloat4 vec4 + #define FxaaBool2Float(a) mix(0.0, 1.0, (a)) + #define FxaaPow3(x, y) pow(x, y) + #define FxaaSel3(f, t, b) mix((f), (t), (b)) + #define FxaaTex sampler2D +#endif +/*--------------------------------------------------------------------------*/ +#if FXAA_GLSL_130 + // Requires "#version 130" or better + #define int2 ivec2 + #define float2 vec2 + #define float3 vec3 + #define float4 vec4 + #define FxaaBool3 bvec3 + #define FxaaInt2 ivec2 + #define FxaaFloat2 vec2 + #define FxaaFloat3 vec3 + #define FxaaFloat4 vec4 + #define FxaaBool2Float(a) mix(0.0, 1.0, (a)) + #define FxaaPow3(x, y) pow(x, y) + #define FxaaSel3(f, t, b) mix((f), (t), (b)) + #define FxaaTex sampler2D +#endif +/*--------------------------------------------------------------------------*/ +#if FXAA_HLSL_3 + #define int2 float2 + #define FxaaInt2 float2 + #define FxaaFloat2 float2 + #define FxaaFloat3 float3 + #define FxaaFloat4 float4 + #define FxaaBool2Float(a) (a) + #define FxaaPow3(x, y) pow(x, y) + #define FxaaSel3(f, t, b) ((f)*(!b) + (t)*(b)) + #define FxaaTex sampler2D +#endif +/*--------------------------------------------------------------------------*/ +#if FXAA_HLSL_4 + #define FxaaInt2 int2 + #define FxaaFloat2 float2 + #define FxaaFloat3 float3 + #define FxaaFloat4 float4 + #define FxaaBool2Float(a) (a) + #define FxaaPow3(x, y) pow(x, y) + #define FxaaSel3(f, t, b) ((f)*(!b) + (t)*(b)) + struct FxaaTex { SamplerState smpl; Texture2D tex; }; +#endif +/*--------------------------------------------------------------------------*/ +#define FxaaToFloat3(a) FxaaFloat3((a), (a), (a)) +/*--------------------------------------------------------------------------*/ +float4 FxaaTexLod0(FxaaTex tex, float2 pos) { + #if FXAA_GLSL_120 + return texture2DLod(tex, pos.xy, 0.0); + #endif + #if FXAA_GLSL_130 + return textureLod(tex, pos.xy, 0.0); + #endif + #if FXAA_HLSL_3 + return tex2Dlod(tex, float4(pos.xy, 0.0, 0.0)); + #endif + #if FXAA_HLSL_4 + return tex.tex.SampleLevel(tex.smpl, pos.xy, 0.0); + #endif +} +/*--------------------------------------------------------------------------*/ +float4 FxaaTexGrad(FxaaTex tex, float2 pos, float2 grad) { + #if FXAA_GLSL_120 + return texture2DGrad(tex, pos.xy, grad, grad); + #endif + #if FXAA_GLSL_130 + return textureGrad(tex, pos.xy, grad, grad); + #endif + #if FXAA_HLSL_3 + return tex2Dgrad(tex, pos.xy, grad, grad); + #endif + #if FXAA_HLSL_4 + return tex.tex.SampleGrad(tex.smpl, pos.xy, grad, grad); + #endif +} +/*--------------------------------------------------------------------------*/ +float4 FxaaTexOff(FxaaTex tex, float2 pos, int2 off, float2 rcpFrame) { + #if FXAA_GLSL_120 + return texture2DLodOffset(tex, pos.xy, 0.0, off.xy); + #endif + #if FXAA_GLSL_130 + return textureLodOffset(tex, pos.xy, 0.0, off.xy); + #endif + #if FXAA_HLSL_3 + return tex2Dlod(tex, float4(pos.xy + (off * rcpFrame), 0, 0)); + #endif + #if FXAA_HLSL_4 + return tex.tex.SampleLevel(tex.smpl, pos.xy, 0.0, off.xy); + #endif +} + +/*============================================================================ + SRGB KNOBS +------------------------------------------------------------------------------ +FXAA_SRGB_ROP - Set to 1 when applying FXAA to an sRGB back buffer (DX10/11). + This will do the sRGB to linear transform, + as ROP will expect linear color from this shader, + and this shader works in non-linear color. +============================================================================*/ +#define FXAA_SRGB_ROP 0 + +/*============================================================================ + DEBUG KNOBS +------------------------------------------------------------------------------ +All debug knobs draw FXAA-untouched pixels in FXAA computed luma (monochrome). + +FXAA_DEBUG_PASSTHROUGH - Red for pixels which are filtered by FXAA with a + yellow tint on sub-pixel aliasing filtered by FXAA. +FXAA_DEBUG_HORZVERT - Blue for horizontal edges, gold for vertical edges. +FXAA_DEBUG_PAIR - Blue/green for the 2 pixel pair choice. +FXAA_DEBUG_NEGPOS - Red/blue for which side of center of span. +FXAA_DEBUG_OFFSET - Red/blue for -/+ x, gold/skyblue for -/+ y. +============================================================================*/ +#ifndef FXAA_DEBUG_PASSTHROUGH + #define FXAA_DEBUG_PASSTHROUGH 0 +#endif +#ifndef FXAA_DEBUG_HORZVERT + #define FXAA_DEBUG_HORZVERT 0 +#endif +#ifndef FXAA_DEBUG_PAIR + #define FXAA_DEBUG_PAIR 0 +#endif +#ifndef FXAA_DEBUG_NEGPOS + #define FXAA_DEBUG_NEGPOS 0 +#endif +#ifndef FXAA_DEBUG_OFFSET + #define FXAA_DEBUG_OFFSET 0 +#endif +/*--------------------------------------------------------------------------*/ +#if FXAA_DEBUG_PASSTHROUGH || FXAA_DEBUG_HORZVERT || FXAA_DEBUG_PAIR + #define FXAA_DEBUG 1 +#endif +#if FXAA_DEBUG_NEGPOS || FXAA_DEBUG_OFFSET + #define FXAA_DEBUG 1 +#endif +#ifndef FXAA_DEBUG + #define FXAA_DEBUG 0 +#endif + +/*============================================================================ + COMPILE-IN KNOBS +------------------------------------------------------------------------------ +FXAA_PRESET - Choose compile-in knob preset 0-5. +------------------------------------------------------------------------------ +FXAA_EDGE_THRESHOLD - The minimum amount of local contrast required + to apply algorithm. + 1.0/3.0 - too little + 1.0/4.0 - good start + 1.0/8.0 - applies to more edges + 1.0/16.0 - overkill +------------------------------------------------------------------------------ +FXAA_EDGE_THRESHOLD_MIN - Trims the algorithm from processing darks. + Perf optimization. + 1.0/32.0 - visible limit (smaller isn't visible) + 1.0/16.0 - good compromise + 1.0/12.0 - upper limit (seeing artifacts) +------------------------------------------------------------------------------ +FXAA_SEARCH_STEPS - Maximum number of search steps for end of span. +------------------------------------------------------------------------------ +FXAA_SEARCH_ACCELERATION - How much to accelerate search, + 1 - no acceleration + 2 - skip by 2 pixels + 3 - skip by 3 pixels + 4 - skip by 4 pixels +------------------------------------------------------------------------------ +FXAA_SEARCH_THRESHOLD - Controls when to stop searching. + 1.0/4.0 - seems to be the best quality wise +------------------------------------------------------------------------------ +FXAA_SUBPIX_FASTER - Turn on lower quality but faster subpix path. + Not recomended, but used in preset 0. +------------------------------------------------------------------------------ +FXAA_SUBPIX - Toggle subpix filtering. + 0 - turn off + 1 - turn on + 2 - turn on full (ignores FXAA_SUBPIX_TRIM and CAP) +------------------------------------------------------------------------------ +FXAA_SUBPIX_TRIM - Controls sub-pixel aliasing removal. + 1.0/2.0 - low removal + 1.0/3.0 - medium removal + 1.0/4.0 - default removal + 1.0/8.0 - high removal + 0.0 - complete removal +------------------------------------------------------------------------------ +FXAA_SUBPIX_CAP - Insures fine detail is not completely removed. + This is important for the transition of sub-pixel detail, + like fences and wires. + 3.0/4.0 - default (medium amount of filtering) + 7.0/8.0 - high amount of filtering + 1.0 - no capping of sub-pixel aliasing removal +============================================================================*/ +#ifndef FXAA_PRESET + #define FXAA_PRESET 3 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_PRESET == 0) + #define FXAA_EDGE_THRESHOLD (1.0/4.0) + #define FXAA_EDGE_THRESHOLD_MIN (1.0/12.0) + #define FXAA_SEARCH_STEPS 2 + #define FXAA_SEARCH_ACCELERATION 4 + #define FXAA_SEARCH_THRESHOLD (1.0/4.0) + #define FXAA_SUBPIX 1 + #define FXAA_SUBPIX_FASTER 1 + #define FXAA_SUBPIX_CAP (2.0/3.0) + #define FXAA_SUBPIX_TRIM (1.0/4.0) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_PRESET == 1) + #define FXAA_EDGE_THRESHOLD (1.0/8.0) + #define FXAA_EDGE_THRESHOLD_MIN (1.0/16.0) + #define FXAA_SEARCH_STEPS 4 + #define FXAA_SEARCH_ACCELERATION 3 + #define FXAA_SEARCH_THRESHOLD (1.0/4.0) + #define FXAA_SUBPIX 1 + #define FXAA_SUBPIX_FASTER 0 + #define FXAA_SUBPIX_CAP (3.0/4.0) + #define FXAA_SUBPIX_TRIM (1.0/4.0) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_PRESET == 2) + #define FXAA_EDGE_THRESHOLD (1.0/8.0) + #define FXAA_EDGE_THRESHOLD_MIN (1.0/24.0) + #define FXAA_SEARCH_STEPS 8 + #define FXAA_SEARCH_ACCELERATION 2 + #define FXAA_SEARCH_THRESHOLD (1.0/4.0) + #define FXAA_SUBPIX 1 + #define FXAA_SUBPIX_FASTER 0 + #define FXAA_SUBPIX_CAP (3.0/4.0) + #define FXAA_SUBPIX_TRIM (1.0/4.0) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_PRESET == 3) + #define FXAA_EDGE_THRESHOLD (1.0/8.0) + #define FXAA_EDGE_THRESHOLD_MIN (1.0/24.0) + #define FXAA_SEARCH_STEPS 16 + #define FXAA_SEARCH_ACCELERATION 1 + #define FXAA_SEARCH_THRESHOLD (1.0/4.0) + #define FXAA_SUBPIX 1 + #define FXAA_SUBPIX_FASTER 0 + #define FXAA_SUBPIX_CAP (3.0/4.0) + #define FXAA_SUBPIX_TRIM (1.0/4.0) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_PRESET == 4) + #define FXAA_EDGE_THRESHOLD (1.0/8.0) + #define FXAA_EDGE_THRESHOLD_MIN (1.0/24.0) + #define FXAA_SEARCH_STEPS 24 + #define FXAA_SEARCH_ACCELERATION 1 + #define FXAA_SEARCH_THRESHOLD (1.0/4.0) + #define FXAA_SUBPIX 1 + #define FXAA_SUBPIX_FASTER 0 + #define FXAA_SUBPIX_CAP (3.0/4.0) + #define FXAA_SUBPIX_TRIM (1.0/4.0) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_PRESET == 5) + #define FXAA_EDGE_THRESHOLD (1.0/8.0) + #define FXAA_EDGE_THRESHOLD_MIN (1.0/24.0) + #define FXAA_SEARCH_STEPS 32 + #define FXAA_SEARCH_ACCELERATION 1 + #define FXAA_SEARCH_THRESHOLD (1.0/4.0) + #define FXAA_SUBPIX 1 + #define FXAA_SUBPIX_FASTER 0 + #define FXAA_SUBPIX_CAP (3.0/4.0) + #define FXAA_SUBPIX_TRIM (1.0/4.0) +#endif +/*--------------------------------------------------------------------------*/ +#define FXAA_SUBPIX_TRIM_SCALE (1.0/(1.0 - FXAA_SUBPIX_TRIM)) + +/*============================================================================ + HELPERS +============================================================================*/ +// Return the luma, the estimation of luminance from rgb inputs. +// This approximates luma using one FMA instruction, +// skipping normalization and tossing out blue. +// FxaaLuma() will range 0.0 to 2.963210702. +float FxaaLuma(float3 rgb) { + return rgb.y * (0.587/0.299) + rgb.x; } +/*--------------------------------------------------------------------------*/ +float3 FxaaLerp3(float3 a, float3 b, float amountOfA) { + return (FxaaToFloat3(-amountOfA) * b) + + ((a * FxaaToFloat3(amountOfA)) + b); } +/*--------------------------------------------------------------------------*/ +// Support any extra filtering before returning color. +float3 FxaaFilterReturn(float3 rgb) { + #if FXAA_SRGB_ROP + // Do sRGB encoded value to linear conversion. + return FxaaSel3( + rgb * FxaaToFloat3(1.0/12.92), + FxaaPow3( + rgb * FxaaToFloat3(1.0/1.055) + FxaaToFloat3(0.055/1.055), + FxaaToFloat3(2.4)), + rgb > FxaaToFloat3(0.04045)); + #else + return rgb; + #endif +} + +/*============================================================================ + VERTEX SHADER +============================================================================*/ +float2 FxaaVertexShader( +// Both x and y range {-1.0 to 1.0 across screen}. +float2 inPos) { + float2 pos; + pos.xy = (inPos.xy * FxaaFloat2(0.5, 0.5)) + FxaaFloat2(0.5, 0.5); + return pos; } + +/*============================================================================ + + PIXEL SHADER + +============================================================================*/ +float3 FxaaPixelShader( +// Output of FxaaVertexShader interpolated across screen. +// xy -> actual texture position {0.0 to 1.0} +float2 pos, +// Input texture. +FxaaTex tex, +// RCPFRAME SHOULD PIXEL SHADER CONSTANTS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +// {1.0/frameWidth, 1.0/frameHeight} +float2 rcpFrame) { + +/*---------------------------------------------------------------------------- + EARLY EXIT IF LOCAL CONTRAST BELOW EDGE DETECT LIMIT +------------------------------------------------------------------------------ +Majority of pixels of a typical image do not require filtering, +often pixels are grouped into blocks which could benefit from early exit +right at the beginning of the algorithm. +Given the following neighborhood, + + N + W M E + S + +If the difference in local maximum and minimum luma (contrast "range") +is lower than a threshold proportional to the maximum local luma ("rangeMax"), +then the shader early exits (no visible aliasing). +This threshold is clamped at a minimum value ("FXAA_EDGE_THRESHOLD_MIN") +to avoid processing in really dark areas. +----------------------------------------------------------------------------*/ + float3 rgbN = FxaaTexOff(tex, pos.xy, FxaaInt2( 0,-1), rcpFrame).xyz; + float3 rgbW = FxaaTexOff(tex, pos.xy, FxaaInt2(-1, 0), rcpFrame).xyz; + float3 rgbM = FxaaTexOff(tex, pos.xy, FxaaInt2( 0, 0), rcpFrame).xyz; + float3 rgbE = FxaaTexOff(tex, pos.xy, FxaaInt2( 1, 0), rcpFrame).xyz; + float3 rgbS = FxaaTexOff(tex, pos.xy, FxaaInt2( 0, 1), rcpFrame).xyz; + float lumaN = FxaaLuma(rgbN); + float lumaW = FxaaLuma(rgbW); + float lumaM = FxaaLuma(rgbM); + float lumaE = FxaaLuma(rgbE); + float lumaS = FxaaLuma(rgbS); + float rangeMin = min(lumaM, min(min(lumaN, lumaW), min(lumaS, lumaE))); + float rangeMax = max(lumaM, max(max(lumaN, lumaW), max(lumaS, lumaE))); + float range = rangeMax - rangeMin; + #if FXAA_DEBUG + float lumaO = lumaM / (1.0 + (0.587/0.299)); + #endif + if(range < max(FXAA_EDGE_THRESHOLD_MIN, rangeMax * FXAA_EDGE_THRESHOLD)) { + #if FXAA_DEBUG + return FxaaFilterReturn(FxaaToFloat3(lumaO)); + #endif + return FxaaFilterReturn(rgbM); } + #if FXAA_SUBPIX > 0 + #if FXAA_SUBPIX_FASTER + float3 rgbL = (rgbN + rgbW + rgbE + rgbS + rgbM) * + FxaaToFloat3(1.0/5.0); + #else + float3 rgbL = rgbN + rgbW + rgbM + rgbE + rgbS; + #endif + #endif + +/*---------------------------------------------------------------------------- + COMPUTE LOWPASS +------------------------------------------------------------------------------ +FXAA computes a local neighborhood lowpass value as follows, + + (N + W + E + S)/4 + +Then uses the ratio of the contrast range of the lowpass +and the range found in the early exit check, +as a sub-pixel aliasing detection filter. +When FXAA detects sub-pixel aliasing (such as single pixel dots), +it later blends in "blendL" amount +of a lowpass value (computed in the next section) to the final result. +----------------------------------------------------------------------------*/ + #if FXAA_SUBPIX != 0 + float lumaL = (lumaN + lumaW + lumaE + lumaS) * 0.25; + float rangeL = abs(lumaL - lumaM); + #endif + #if FXAA_SUBPIX == 1 + float blendL = max(0.0, + (rangeL / range) - FXAA_SUBPIX_TRIM) * FXAA_SUBPIX_TRIM_SCALE; + blendL = min(FXAA_SUBPIX_CAP, blendL); + #endif + #if FXAA_SUBPIX == 2 + float blendL = rangeL / range; + #endif + #if FXAA_DEBUG_PASSTHROUGH + #if FXAA_SUBPIX == 0 + float blendL = 0.0; + #endif + return FxaaFilterReturn( + FxaaFloat3(1.0, blendL/FXAA_SUBPIX_CAP, 0.0)); + #endif + +/*---------------------------------------------------------------------------- + CHOOSE VERTICAL OR HORIZONTAL SEARCH +------------------------------------------------------------------------------ +FXAA uses the following local neighborhood, + + NW N NE + W M E + SW S SE + +To compute an edge amount for both vertical and horizontal directions. +Note edge detect filters like Sobel fail on single pixel lines through M. +FXAA takes the weighted average magnitude of the high-pass values +for rows and columns as an indication of local edge amount. + +A lowpass value for anti-sub-pixel-aliasing is computed as + (N+W+E+S+M+NW+NE+SW+SE)/9. +This full box pattern has higher quality than other options. + +Note following this block, both vertical and horizontal cases +flow in parallel (reusing the horizontal variables). +----------------------------------------------------------------------------*/ + float3 rgbNW = FxaaTexOff(tex, pos.xy, FxaaInt2(-1,-1), rcpFrame).xyz; + float3 rgbNE = FxaaTexOff(tex, pos.xy, FxaaInt2( 1,-1), rcpFrame).xyz; + float3 rgbSW = FxaaTexOff(tex, pos.xy, FxaaInt2(-1, 1), rcpFrame).xyz; + float3 rgbSE = FxaaTexOff(tex, pos.xy, FxaaInt2( 1, 1), rcpFrame).xyz; + #if (FXAA_SUBPIX_FASTER == 0) && (FXAA_SUBPIX > 0) + rgbL += (rgbNW + rgbNE + rgbSW + rgbSE); + rgbL *= FxaaToFloat3(1.0/9.0); + #endif + float lumaNW = FxaaLuma(rgbNW); + float lumaNE = FxaaLuma(rgbNE); + float lumaSW = FxaaLuma(rgbSW); + float lumaSE = FxaaLuma(rgbSE); + float edgeVert = + abs((0.25 * lumaNW) + (-0.5 * lumaN) + (0.25 * lumaNE)) + + abs((0.50 * lumaW ) + (-1.0 * lumaM) + (0.50 * lumaE )) + + abs((0.25 * lumaSW) + (-0.5 * lumaS) + (0.25 * lumaSE)); + float edgeHorz = + abs((0.25 * lumaNW) + (-0.5 * lumaW) + (0.25 * lumaSW)) + + abs((0.50 * lumaN ) + (-1.0 * lumaM) + (0.50 * lumaS )) + + abs((0.25 * lumaNE) + (-0.5 * lumaE) + (0.25 * lumaSE)); + bool horzSpan = edgeHorz >= edgeVert; + #if FXAA_DEBUG_HORZVERT + if(horzSpan) return FxaaFilterReturn(FxaaFloat3(1.0, 0.75, 0.0)); + else return FxaaFilterReturn(FxaaFloat3(0.0, 0.50, 1.0)); + #endif + float lengthSign = horzSpan ? -rcpFrame.y : -rcpFrame.x; + if(!horzSpan) lumaN = lumaW; + if(!horzSpan) lumaS = lumaE; + float gradientN = abs(lumaN - lumaM); + float gradientS = abs(lumaS - lumaM); + lumaN = (lumaN + lumaM) * 0.5; + lumaS = (lumaS + lumaM) * 0.5; + +/*---------------------------------------------------------------------------- + CHOOSE SIDE OF PIXEL WHERE GRADIENT IS HIGHEST +------------------------------------------------------------------------------ +This chooses a pixel pair. +For "horzSpan == true" this will be a vertical pair, + + [N] N + [M] or [M] + S [S] + +Note following this block, both {N,M} and {S,M} cases +flow in parallel (reusing the {N,M} variables). + +This pair of image rows or columns is searched below +in the positive and negative direction +until edge status changes +(or the maximum number of search steps is reached). +----------------------------------------------------------------------------*/ + bool pairN = gradientN >= gradientS; + #if FXAA_DEBUG_PAIR + if(pairN) return FxaaFilterReturn(FxaaFloat3(0.0, 0.0, 1.0)); + else return FxaaFilterReturn(FxaaFloat3(0.0, 1.0, 0.0)); + #endif + if(!pairN) lumaN = lumaS; + if(!pairN) gradientN = gradientS; + if(!pairN) lengthSign *= -1.0; + float2 posN; + posN.x = pos.x + (horzSpan ? 0.0 : lengthSign * 0.5); + posN.y = pos.y + (horzSpan ? lengthSign * 0.5 : 0.0); + +/*---------------------------------------------------------------------------- + CHOOSE SEARCH LIMITING VALUES +------------------------------------------------------------------------------ +Search limit (+/- gradientN) is a function of local gradient. +----------------------------------------------------------------------------*/ + gradientN *= FXAA_SEARCH_THRESHOLD; + +/*---------------------------------------------------------------------------- + SEARCH IN BOTH DIRECTIONS UNTIL FIND LUMA PAIR AVERAGE IS OUT OF RANGE +------------------------------------------------------------------------------ +This loop searches either in vertical or horizontal directions, +and in both the negative and positive direction in parallel. +This loop fusion is faster than searching separately. + +The search is accelerated using FXAA_SEARCH_ACCELERATION length box filter +via anisotropic filtering with specified texture gradients. +----------------------------------------------------------------------------*/ + float2 posP = posN; + float2 offNP = horzSpan ? + FxaaFloat2(rcpFrame.x, 0.0) : + FxaaFloat2(0.0f, rcpFrame.y); + float lumaEndN = lumaN; + float lumaEndP = lumaN; + bool doneN = false; + bool doneP = false; + #if FXAA_SEARCH_ACCELERATION == 1 + posN += offNP * FxaaFloat2(-1.0, -1.0); + posP += offNP * FxaaFloat2( 1.0, 1.0); + #endif + #if FXAA_SEARCH_ACCELERATION == 2 + posN += offNP * FxaaFloat2(-1.5, -1.5); + posP += offNP * FxaaFloat2( 1.5, 1.5); + offNP *= FxaaFloat2(2.0, 2.0); + #endif + #if FXAA_SEARCH_ACCELERATION == 3 + posN += offNP * FxaaFloat2(-2.0, -2.0); + posP += offNP * FxaaFloat2( 2.0, 2.0); + offNP *= FxaaFloat2(3.0, 3.0); + #endif + #if FXAA_SEARCH_ACCELERATION == 4 + posN += offNP * FxaaFloat2(-2.5, -2.5); + posP += offNP * FxaaFloat2( 2.5, 2.5); + offNP *= FxaaFloat2(4.0, 4.0); + #endif + for(int i = 0; i < FXAA_SEARCH_STEPS; i++) { + #if FXAA_SEARCH_ACCELERATION == 1 + if(!doneN) lumaEndN = + FxaaLuma(FxaaTexLod0(tex, posN.xy).xyz); + if(!doneP) lumaEndP = + FxaaLuma(FxaaTexLod0(tex, posP.xy).xyz); + #else + if(!doneN) lumaEndN = + FxaaLuma(FxaaTexGrad(tex, posN.xy, offNP).xyz); + if(!doneP) lumaEndP = + FxaaLuma(FxaaTexGrad(tex, posP.xy, offNP).xyz); + #endif + doneN = doneN || (abs(lumaEndN - lumaN) >= gradientN); + doneP = doneP || (abs(lumaEndP - lumaN) >= gradientN); + if(doneN && doneP) break; + if(!doneN) posN -= offNP; + if(!doneP) posP += offNP; } + +/*---------------------------------------------------------------------------- + HANDLE IF CENTER IS ON POSITIVE OR NEGATIVE SIDE +------------------------------------------------------------------------------ +FXAA uses the pixel's position in the span +in combination with the values (lumaEnd*) at the ends of the span, +to determine filtering. + +This step computes which side of the span the pixel is on. +On negative side if dstN < dstP, + + posN pos posP + |-----------|------|------------------| + | | | | + |<--dstN--->|<---------dstP---------->| + | + span center + +----------------------------------------------------------------------------*/ + float dstN = horzSpan ? pos.x - posN.x : pos.y - posN.y; + float dstP = horzSpan ? posP.x - pos.x : posP.y - pos.y; + bool directionN = dstN < dstP; + #if FXAA_DEBUG_NEGPOS + if(directionN) return FxaaFilterReturn(FxaaFloat3(1.0, 0.0, 0.0)); + else return FxaaFilterReturn(FxaaFloat3(0.0, 0.0, 1.0)); + #endif + lumaEndN = directionN ? lumaEndN : lumaEndP; + +/*---------------------------------------------------------------------------- + CHECK IF PIXEL IS IN SECTION OF SPAN WHICH GETS NO FILTERING +------------------------------------------------------------------------------ +If both the pair luma at the end of the span (lumaEndN) +and middle pixel luma (lumaM) +are on the same side of the middle pair average luma (lumaN), +then don't filter. + +Cases, + +(1.) "L", + + lumaM + | + V XXXXXXXX <- other line averaged + XXXXXXX[X]XXXXXXXXXXX <- source pixel line + | . | + -------------------------- + [ ]xxxxxx[x]xx[X]XXXXXX <- pair average + -------------------------- + ^ ^ ^ ^ + | | | | + . |<---->|<---------- no filter region + . | | | + . center | | + . | lumaEndN + . | . + . lumaN . + . . + |<--- span -->| + + +(2.) "^" and "-", + + <- other line averaged + XXXXX[X]XXX <- source pixel line + | | | + -------------------------- + [ ]xxxx[x]xx[ ] <- pair average + -------------------------- + | | | + |<--->|<--->|<---------- filter both sides + + +(3.) "v" and inverse of "-", + + XXXXXX XXXXXXXXX <- other line averaged + XXXXXXXXXXX[X]XXXXXXXXXXXX <- source pixel line + | | | + -------------------------- + XXXX[X]xxxx[x]xx[X]XXXXXXX <- pair average + -------------------------- + | | | + |<--->|<--->|<---------- don't filter both! + + +Note the "v" case for FXAA requires no filtering. +This is because the inverse of the "-" case is the "v". +Filtering "v" case turns open spans like this, + + XXXXXXXXX + +Into this (which is not desired), + + x+. .+x + XXXXXXXXX + +----------------------------------------------------------------------------*/ + if(((lumaM - lumaN) < 0.0) == ((lumaEndN - lumaN) < 0.0)) + lengthSign = 0.0; + +/*---------------------------------------------------------------------------- + COMPUTE SUB-PIXEL OFFSET AND FILTER SPAN +------------------------------------------------------------------------------ +FXAA filters using a bilinear texture fetch offset +from the middle pixel M towards the center of the pair (NM below). +Maximum filtering will be half way between pair. +Reminder, at this point in the code, +the {N,M} pair is also reused for all cases: {S,M}, {W,M}, and {E,M}. + + +-------+ + | | 0.5 offset + | N | | + | | V + +-------+....--- + | | + | M...|....--- + | | ^ + +-------+ | + . . 0.0 offset + . S . + . . + ......... + +Position on span is used to compute sub-pixel filter offset using simple ramp, + + posN posP + |\ |<------- 0.5 pixel offset into pair pixel + | \ | + | \ | + ---.......|...\..........|<------- 0.25 pixel offset into pair pixel + ^ | ^\ | + | | | \ | + V | | \ | + ---.......|===|==========|<------- 0.0 pixel offset (ie M pixel) + ^ . | ^ . + | . pos | . + | . . | . + | . . center . + | . . . + | |<->|<---------.-------- dstN + | . . . + | . |<-------->|<------- dstP + | . . + | |<------------>|<------- spanLength + | + subPixelOffset + +----------------------------------------------------------------------------*/ + float spanLength = (dstP + dstN); + dstN = directionN ? dstN : dstP; + float subPixelOffset = (0.5 + (dstN * (-1.0/spanLength))) * lengthSign; + #if FXAA_DEBUG_OFFSET + float ox = horzSpan ? 0.0 : subPixelOffset*2.0/rcpFrame.x; + float oy = horzSpan ? subPixelOffset*2.0/rcpFrame.y : 0.0; + if(ox < 0.0) return FxaaFilterReturn( + FxaaLerp3(FxaaToFloat3(lumaO), + FxaaFloat3(1.0, 0.0, 0.0), -ox)); + if(ox > 0.0) return FxaaFilterReturn( + FxaaLerp3(FxaaToFloat3(lumaO), + FxaaFloat3(0.0, 0.0, 1.0), ox)); + if(oy < 0.0) return FxaaFilterReturn( + FxaaLerp3(FxaaToFloat3(lumaO), + FxaaFloat3(1.0, 0.6, 0.2), -oy)); + if(oy > 0.0) return FxaaFilterReturn( + FxaaLerp3(FxaaToFloat3(lumaO), + FxaaFloat3(0.2, 0.6, 1.0), oy)); + return FxaaFilterReturn(FxaaFloat3(lumaO, lumaO, lumaO)); + #endif + float3 rgbF = FxaaTexLod0(tex, FxaaFloat2( + pos.x + (horzSpan ? 0.0 : subPixelOffset), + pos.y + (horzSpan ? subPixelOffset : 0.0))).xyz; + #if FXAA_SUBPIX == 0 + return FxaaFilterReturn(rgbF); + #else + return FxaaFilterReturn(FxaaLerp3(rgbL, rgbF, blendL)); + #endif +} + + + +struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; +}; + +v2f vert (appdata_img v) +{ + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = v.texcoord.xy; + return o; +} + +sampler2D _MainTex; +float4 _MainTex_TexelSize; + +float4 frag (v2f i) : SV_Target +{ + return float4(FxaaPixelShader(i.uv.xy, _MainTex, _MainTex_TexelSize.xy).xyz, 0.0f); +} + +ENDCG + } +} + +Fallback "Hidden/FXAA II" +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAAPreset3.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAAPreset3.shader.meta new file mode 100644 index 0000000..053bdbf --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAAPreset3.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: c182fa94a5a0a4c02870641efcd38cd5 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/NFAA.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/NFAA.shader new file mode 100644 index 0000000..c809bbe --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/NFAA.shader @@ -0,0 +1,150 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + + +Shader "Hidden/NFAA" { +Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _BlurTex ("Base (RGB)", 2D) = "white" {} + +} + +CGINCLUDE + +#include "UnityCG.cginc" + +uniform sampler2D _MainTex; +uniform float4 _MainTex_TexelSize; +uniform float _OffsetScale; +uniform float _BlurRadius; + +struct v2f { + float4 pos : SV_POSITION; + float2 uv[8] : TEXCOORD0; +}; + + v2f vert( appdata_img v ) + { + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + + float2 uv = v.texcoord.xy; + + float2 up = float2(0.0, _MainTex_TexelSize.y) * _OffsetScale; + float2 right = float2(_MainTex_TexelSize.x, 0.0) * _OffsetScale; + + o.uv[0].xy = uv + up; + o.uv[1].xy = uv - up; + o.uv[2].xy = uv + right; + o.uv[3].xy = uv - right; + o.uv[4].xy = uv - right + up; + o.uv[5].xy = uv - right -up; + o.uv[6].xy = uv + right + up; + o.uv[7].xy = uv + right -up; + + return o; + } + + half4 frag (v2f i) : SV_Target + { + // get luminance values + // maybe: experiment with different luminance calculations + float topL = Luminance( tex2D(_MainTex, i.uv[0]).rgb ); + float bottomL = Luminance( tex2D(_MainTex, i.uv[1]).rgb ); + float rightL = Luminance( tex2D(_MainTex, i.uv[2]).rgb ); + float leftL = Luminance( tex2D(_MainTex, i.uv[3]).rgb ); + float leftTopL = Luminance( tex2D(_MainTex, i.uv[4]).rgb ); + float leftBottomL = Luminance( tex2D(_MainTex, i.uv[5]).rgb ); + float rightBottomL = Luminance( tex2D(_MainTex, i.uv[6]).rgb ); + float rightTopL = Luminance( tex2D(_MainTex, i.uv[7]).rgb ); + + // 2 triangle subtractions + float sum0 = dot(float3(1,1,1), float3(rightTopL,bottomL,leftTopL)); + float sum1 = dot(float3(1,1,1), float3(leftBottomL,topL,rightBottomL)); + float sum2 = dot(float3(1,1,1), float3(leftTopL,rightL,leftBottomL)); + float sum3 = dot(float3(1,1,1), float3(rightBottomL,leftL,rightTopL)); + + // figure out "normal" + float2 blurDir = half2((sum0-sum1), (sum3-sum2)); + blurDir *= _MainTex_TexelSize.xy * _BlurRadius; + + // reconstruct normal uv + float2 uv_ = (i.uv[0] + i.uv[1]) * 0.5; + + float4 returnColor = tex2D(_MainTex, uv_); + returnColor += tex2D(_MainTex, uv_+ blurDir.xy); + returnColor += tex2D(_MainTex, uv_ - blurDir.xy); + returnColor += tex2D(_MainTex, uv_ + float2(blurDir.x, -blurDir.y)); + returnColor += tex2D(_MainTex, uv_ - float2(blurDir.x, -blurDir.y)); + + return returnColor * 0.2; + } + + half4 fragDebug (v2f i) : SV_Target + { + // get luminance values + // maybe: experiment with different luminance calculations + float topL = Luminance( tex2D(_MainTex, i.uv[0]).rgb ); + float bottomL = Luminance( tex2D(_MainTex, i.uv[1]).rgb ); + float rightL = Luminance( tex2D(_MainTex, i.uv[2]).rgb ); + float leftL = Luminance( tex2D(_MainTex, i.uv[3]).rgb ); + float leftTopL = Luminance( tex2D(_MainTex, i.uv[4]).rgb ); + float leftBottomL = Luminance( tex2D(_MainTex, i.uv[5]).rgb ); + float rightBottomL = Luminance( tex2D(_MainTex, i.uv[6]).rgb ); + float rightTopL = Luminance( tex2D(_MainTex, i.uv[7]).rgb ); + + // 2 triangle subtractions + float sum0 = dot(float3(1,1,1), float3(rightTopL,bottomL,leftTopL)); + float sum1 = dot(float3(1,1,1), float3(leftBottomL,topL,rightBottomL)); + float sum2 = dot(float3(1,1,1), float3(leftTopL,rightL,leftBottomL)); + float sum3 = dot(float3(1,1,1), float3(rightBottomL,leftL,rightTopL)); + + // figure out "normal" + float2 blurDir = half2((sum0-sum1), (sum3-sum2)); + blurDir *= _MainTex_TexelSize.xy * _BlurRadius; + + // reconstruct normal uv + float2 uv_ = (i.uv[0] + i.uv[1]) * 0.5; + + float4 returnColor = tex2D(_MainTex, uv_); + returnColor += tex2D(_MainTex, uv_+ blurDir.xy); + returnColor += tex2D(_MainTex, uv_ - blurDir.xy); + returnColor += tex2D(_MainTex, uv_ + float2(blurDir.x, -blurDir.y)); + returnColor += tex2D(_MainTex, uv_ - float2(blurDir.x, -blurDir.y)); + + blurDir = half2((sum0-sum1), (sum3-sum2)) * _BlurRadius; + return half4(normalize( half3(blurDir,1) * 0.5 + 0.5), 1); + return returnColor * 0.2; + } + +ENDCG + +SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + #pragma target 3.0 + #pragma exclude_renderers d3d11_9x + + ENDCG + } + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragDebug + #pragma target 3.0 + #pragma exclude_renderers d3d11_9x + + ENDCG + } +} + +Fallback off + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/NFAA.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/NFAA.shader.meta new file mode 100644 index 0000000..af7b4b6 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/NFAA.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: ce0cb2621f6d84e21a87414e471a3cce +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/SSAA.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/SSAA.shader new file mode 100644 index 0000000..77b1632 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/SSAA.shader @@ -0,0 +1,87 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + + +Shader "Hidden/SSAA" { +Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} +} + +// very simple & fast AA by Emmanuel Julien + +SubShader { + Pass { + + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + uniform sampler2D _MainTex; + uniform float4 _MainTex_TexelSize; + + struct v2f { + float4 pos : SV_POSITION; + float2 uv[5] : TEXCOORD0; + }; + + v2f vert( appdata_img v ) { + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + + float2 uv = v.texcoord.xy; + + float w = 1.75; + + float2 up = float2(0.0, _MainTex_TexelSize.y) * w; + float2 right = float2(_MainTex_TexelSize.x, 0.0) * w; + + o.uv[0].xy = uv - up; + o.uv[1].xy = uv - right; + o.uv[2].xy = uv + right; + o.uv[3].xy = uv + up; + + o.uv[4].xy = uv; + + return o; + } + + half4 frag (v2f i) : SV_Target + { + half4 outColor; + + float t = Luminance( tex2D( _MainTex, i.uv[0] ).xyz ); + float l = Luminance( tex2D( _MainTex, i.uv[1] ).xyz); + float r = Luminance( tex2D( _MainTex, i.uv[2] ).xyz); + float b = Luminance( tex2D( _MainTex, i.uv[3] ).xyz); + + half2 n = half2( -( t - b ), r - l ); + float nl = length( n ); + + if ( nl < (1.0 / 16.0) ) + outColor = tex2D( _MainTex, i.uv[4] ); + else { + n *= _MainTex_TexelSize.xy / nl; + + half4 o = tex2D( _MainTex, i.uv[4]); + half4 t0 = tex2D( _MainTex, i.uv[4] + n * 0.5) * 0.9; + half4 t1 = tex2D( _MainTex, i.uv[4] - n * 0.5) * 0.9; + half4 t2 = tex2D( _MainTex, i.uv[4] + n) * 0.75; + half4 t3 = tex2D( _MainTex, i.uv[4] - n) * 0.75; + + outColor = (o + t0 + t1 + t2 + t3) / 4.3; + } + + return outColor; + } + + ENDCG + } +} + +Fallback off + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/SSAA.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/SSAA.shader.meta new file mode 100644 index 0000000..e972317 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/SSAA.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: b3728d1488b02490cbd196c7941bf1f8 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares.meta new file mode 100644 index 0000000..3bdce38 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: d6ef58fc6f637406bbe6814a19c377f8 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/Blend.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/Blend.shader new file mode 100644 index 0000000..abda938 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/Blend.shader @@ -0,0 +1,116 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/Blend" { + Properties { + _MainTex ("Screen Blended", 2D) = "" {} + _ColorBuffer ("Color", 2D) = "" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f { + float4 pos : SV_POSITION; + float2 uv[2] : TEXCOORD0; + }; + struct v2f_mt { + float4 pos : SV_POSITION; + float2 uv[4] : TEXCOORD0; + }; + + sampler2D _ColorBuffer; + sampler2D _MainTex; + + half _Intensity; + half4 _ColorBuffer_TexelSize; + half4 _MainTex_TexelSize; + + v2f vert( appdata_img v ) { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv[0] = v.texcoord.xy; + o.uv[1] = v.texcoord.xy; + + #if UNITY_UV_STARTS_AT_TOP + if (_ColorBuffer_TexelSize.y < 0) + o.uv[1].y = 1-o.uv[1].y; + #endif + + return o; + } + + v2f_mt vertMultiTap( appdata_img v ) { + v2f_mt o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv[0] = v.texcoord.xy + _MainTex_TexelSize.xy * 0.5; + o.uv[1] = v.texcoord.xy - _MainTex_TexelSize.xy * 0.5; + o.uv[2] = v.texcoord.xy - _MainTex_TexelSize.xy * half2(1,-1) * 0.5; + o.uv[3] = v.texcoord.xy + _MainTex_TexelSize.xy * half2(1,-1) * 0.5; + return o; + } + + half4 fragScreen (v2f i) : SV_Target { + half4 toBlend = saturate (tex2D(_MainTex, i.uv[0]) * _Intensity); + return 1-(1-toBlend)*(1-tex2D(_ColorBuffer, i.uv[1])); + } + + half4 fragAdd (v2f i) : SV_Target { + return tex2D(_MainTex, i.uv[0].xy) * _Intensity + tex2D(_ColorBuffer, i.uv[1]); + } + + half4 fragVignetteBlend (v2f i) : SV_Target { + return tex2D(_MainTex, i.uv[0].xy) * tex2D(_ColorBuffer, i.uv[0]); + } + + half4 fragMultiTap (v2f_mt i) : SV_Target { + half4 outColor = tex2D(_MainTex, i.uv[0].xy); + outColor += tex2D(_MainTex, i.uv[1].xy); + outColor += tex2D(_MainTex, i.uv[2].xy); + outColor += tex2D(_MainTex, i.uv[3].xy); + return outColor * 0.25; + } + + ENDCG + +Subshader { + ZTest Always Cull Off ZWrite Off + + // 0: nicer & softer "screen" blend mode + Pass { + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragScreen + ENDCG + } + + // 1: simple "add" blend mode + Pass { + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragAdd + ENDCG + } + // 2: used for "stable" downsampling + Pass { + + CGPROGRAM + #pragma vertex vertMultiTap + #pragma fragment fragMultiTap + ENDCG + } + // 3: vignette blending + Pass { + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragVignetteBlend + ENDCG + } +} + +Fallback off + +} // shader diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/Blend.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/Blend.shader.meta new file mode 100644 index 0000000..e9a742b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/Blend.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 53b3960ee3d3d4a5caa8d5473d120187 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendForBloom.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendForBloom.shader new file mode 100644 index 0000000..fbcdbd9 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendForBloom.shader @@ -0,0 +1,222 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/BlendForBloom" { + Properties { + _MainTex ("Screen Blended", 2D) = "" {} + _ColorBuffer ("Color", 2D) = "" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f { + float4 pos : SV_POSITION; + float2 uv[2] : TEXCOORD0; + }; + struct v2f_mt { + float4 pos : SV_POSITION; + float2 uv[5] : TEXCOORD0; + }; + + sampler2D _ColorBuffer; + sampler2D _MainTex; + + half _Intensity; + half4 _ColorBuffer_TexelSize; + half4 _MainTex_TexelSize; + + v2f vert( appdata_img v ) { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv[0] = v.texcoord.xy; + o.uv[1] = v.texcoord.xy; + + #if UNITY_UV_STARTS_AT_TOP + if (_ColorBuffer_TexelSize.y < 0) + o.uv[1].y = 1-o.uv[1].y; + #endif + + return o; + } + + v2f_mt vertMultiTap( appdata_img v ) { + v2f_mt o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv[4] = v.texcoord.xy; + o.uv[0] = v.texcoord.xy + _MainTex_TexelSize.xy * 0.5; + o.uv[1] = v.texcoord.xy - _MainTex_TexelSize.xy * 0.5; + o.uv[2] = v.texcoord.xy - _MainTex_TexelSize.xy * half2(1,-1) * 0.5; + o.uv[3] = v.texcoord.xy + _MainTex_TexelSize.xy * half2(1,-1) * 0.5; + return o; + } + + half4 fragScreen (v2f i) : SV_Target { + half4 addedbloom = tex2D(_MainTex, i.uv[0].xy) * _Intensity; + half4 screencolor = tex2D(_ColorBuffer, i.uv[1]); + return 1-(1-addedbloom)*(1-screencolor); + } + + half4 fragScreenCheap(v2f i) : SV_Target { + half4 addedbloom = tex2D(_MainTex, i.uv[0].xy) * _Intensity; + half4 screencolor = tex2D(_ColorBuffer, i.uv[1]); + return 1-(1-addedbloom)*(1-screencolor); + } + + half4 fragAdd (v2f i) : SV_Target { + half4 addedbloom = tex2D(_MainTex, i.uv[0].xy); + half4 screencolor = tex2D(_ColorBuffer, i.uv[1]); + return _Intensity * addedbloom + screencolor; + } + + half4 fragAddCheap (v2f i) : SV_Target { + half4 addedbloom = tex2D(_MainTex, i.uv[0].xy); + half4 screencolor = tex2D(_ColorBuffer, i.uv[1]); + return _Intensity * addedbloom + screencolor; + } + + half4 fragVignetteMul (v2f i) : SV_Target { + return tex2D(_MainTex, i.uv[0].xy) * tex2D(_ColorBuffer, i.uv[0]); + } + + half4 fragVignetteBlend (v2f i) : SV_Target { + return half4(1,1,1, tex2D(_ColorBuffer, i.uv[0]).r); + } + + half4 fragClear (v2f i) : SV_Target { + return 0; + } + + half4 fragAddOneOne (v2f i) : SV_Target { + half4 addedColors = tex2D(_MainTex, i.uv[0].xy); + return addedColors * _Intensity; + } + + half4 frag1Tap (v2f i) : SV_Target { + return tex2D(_MainTex, i.uv[0].xy); + } + + half4 fragMultiTapMax (v2f_mt i) : SV_Target { + half4 outColor = tex2D(_MainTex, i.uv[4].xy); + outColor = max(outColor, tex2D(_MainTex, i.uv[0].xy)); + outColor = max(outColor, tex2D(_MainTex, i.uv[1].xy)); + outColor = max(outColor, tex2D(_MainTex, i.uv[2].xy)); + outColor = max(outColor, tex2D(_MainTex, i.uv[3].xy)); + return outColor; + } + + half4 fragMultiTapBlur (v2f_mt i) : SV_Target { + half4 outColor = 0; + outColor += tex2D(_MainTex, i.uv[0].xy); + outColor += tex2D(_MainTex, i.uv[1].xy); + outColor += tex2D(_MainTex, i.uv[2].xy); + outColor += tex2D(_MainTex, i.uv[3].xy); + return outColor/4; + } + + ENDCG + +Subshader { + ZTest Always Cull Off ZWrite Off + + // 0: nicer & softer "screen" blend mode + Pass { + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragScreen + ENDCG + } + + // 1: "add" blend mode + Pass { + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragAdd + ENDCG + } + // 2: several taps, maxxed + Pass { + + CGPROGRAM + #pragma vertex vertMultiTap + #pragma fragment fragMultiTapMax + ENDCG + } + // 3: vignette blending + Pass { + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragVignetteMul + ENDCG + } + // 4: nicer & softer "screen" blend mode(cheapest) + Pass { + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragScreenCheap + ENDCG + } + // 5: "add" blend mode (cheapest) + Pass { + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragAddCheap + ENDCG + } + // 6: used for "stable" downsampling (blur) + Pass { + + CGPROGRAM + #pragma vertex vertMultiTap + #pragma fragment fragMultiTapBlur + ENDCG + } + // 7: vignette blending (blend to dest) + Pass { + + Blend Zero SrcAlpha + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragVignetteBlend + ENDCG + } + // 8: clear + Pass { + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragClear + ENDCG + } + // 9: fragAddOneOne + Pass { + + Blend One One + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragAddOneOne + ENDCG + } + // 10: max blend + Pass { + + BlendOp Max + Blend One One + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag1Tap + ENDCG + } +} + +Fallback off + +} // shader diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendForBloom.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendForBloom.shader.meta new file mode 100644 index 0000000..1737d9f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendForBloom.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 7856cbff0a0ca45c787d5431eb805bb0 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendOneOne.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendOneOne.shader new file mode 100644 index 0000000..a100015 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendOneOne.shader @@ -0,0 +1,50 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/BlendOneOne" { + Properties { + _MainTex ("-", 2D) = "" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + sampler2D _MainTex; + half _Intensity; + + v2f vert( appdata_img v ) { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = v.texcoord.xy; + return o; + } + + half4 frag(v2f i) : SV_Target { + return tex2D(_MainTex, i.uv) * _Intensity; + } + + ENDCG + +Subshader { + + Pass { + BlendOp Add + Blend One One + + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + ENDCG + } +} + +Fallback off + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendOneOne.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendOneOne.shader.meta new file mode 100644 index 0000000..007df7f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendOneOne.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: f7898d203e9b94c0dbe2bf9dd5cb32c0 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlurAndFlares.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlurAndFlares.shader new file mode 100644 index 0000000..6e799d1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlurAndFlares.shader @@ -0,0 +1,204 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/BlurAndFlares" { + Properties { + _MainTex ("Base (RGB)", 2D) = "" {} + _NonBlurredTex ("Base (RGB)", 2D) = "" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f { + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + }; + + struct v2f_opts { + half4 pos : SV_POSITION; + half2 uv[7] : TEXCOORD0; + }; + + struct v2f_blur { + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + half4 uv01 : TEXCOORD1; + half4 uv23 : TEXCOORD2; + half4 uv45 : TEXCOORD3; + half4 uv67 : TEXCOORD4; + }; + + half4 _Offsets; + half4 _TintColor; + + half _StretchWidth; + half2 _Threshhold; + half _Saturation; + + half4 _MainTex_TexelSize; + + sampler2D _MainTex; + sampler2D _NonBlurredTex; + + v2f vert (appdata_img v) { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = v.texcoord.xy; + return o; + } + + v2f_blur vertWithMultiCoords2 (appdata_img v) { + v2f_blur o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv.xy = v.texcoord.xy; + o.uv01 = v.texcoord.xyxy + _Offsets.xyxy * half4(1,1, -1,-1); + o.uv23 = v.texcoord.xyxy + _Offsets.xyxy * half4(1,1, -1,-1) * 2.0; + o.uv45 = v.texcoord.xyxy + _Offsets.xyxy * half4(1,1, -1,-1) * 3.0; + o.uv67 = v.texcoord.xyxy + _Offsets.xyxy * half4(1,1, -1,-1) * 4.0; + o.uv67 = v.texcoord.xyxy + _Offsets.xyxy * half4(1,1, -1,-1) * 5.0; + return o; + } + + v2f_opts vertStretch (appdata_img v) { + v2f_opts o; + o.pos = UnityObjectToClipPos(v.vertex); + half b = _StretchWidth; + o.uv[0] = v.texcoord.xy; + o.uv[1] = v.texcoord.xy + b * 2.0 * _Offsets.xy; + o.uv[2] = v.texcoord.xy - b * 2.0 * _Offsets.xy; + o.uv[3] = v.texcoord.xy + b * 4.0 * _Offsets.xy; + o.uv[4] = v.texcoord.xy - b * 4.0 * _Offsets.xy; + o.uv[5] = v.texcoord.xy + b * 6.0 * _Offsets.xy; + o.uv[6] = v.texcoord.xy - b * 6.0 * _Offsets.xy; + return o; + } + + v2f_opts vertWithMultiCoords (appdata_img v) { + v2f_opts o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv[0] = v.texcoord.xy; + o.uv[1] = v.texcoord.xy + 0.5 * _MainTex_TexelSize.xy * _Offsets.xy; + o.uv[2] = v.texcoord.xy - 0.5 * _MainTex_TexelSize.xy * _Offsets.xy; + o.uv[3] = v.texcoord.xy + 1.5 * _MainTex_TexelSize.xy * _Offsets.xy; + o.uv[4] = v.texcoord.xy - 1.5 * _MainTex_TexelSize.xy * _Offsets.xy; + o.uv[5] = v.texcoord.xy + 2.5 * _MainTex_TexelSize.xy * _Offsets.xy; + o.uv[6] = v.texcoord.xy - 2.5 * _MainTex_TexelSize.xy * _Offsets.xy; + return o; + } + + half4 fragPostNoBlur (v2f i) : SV_Target { + half4 color = tex2D (_MainTex, i.uv); + return color * 1.0/(1.0 + Luminance(color.rgb) + 0.5); // this also makes it a little noisy + } + + half4 fragGaussBlur (v2f_blur i) : SV_Target { + half4 color = half4 (0,0,0,0); + color += 0.225 * tex2D (_MainTex, i.uv); + color += 0.150 * tex2D (_MainTex, i.uv01.xy); + color += 0.150 * tex2D (_MainTex, i.uv01.zw); + color += 0.110 * tex2D (_MainTex, i.uv23.xy); + color += 0.110 * tex2D (_MainTex, i.uv23.zw); + color += 0.075 * tex2D (_MainTex, i.uv45.xy); + color += 0.075 * tex2D (_MainTex, i.uv45.zw); + color += 0.0525 * tex2D (_MainTex, i.uv67.xy); + color += 0.0525 * tex2D (_MainTex, i.uv67.zw); + return color; + } + + half4 fragPreAndCut (v2f_opts i) : SV_Target { + half4 color = tex2D (_MainTex, i.uv[0]); + color += tex2D (_MainTex, i.uv[1]); + color += tex2D (_MainTex, i.uv[2]); + color += tex2D (_MainTex, i.uv[3]); + color += tex2D (_MainTex, i.uv[4]); + color += tex2D (_MainTex, i.uv[5]); + color += tex2D (_MainTex, i.uv[6]); + color = max(color / 7.0 - _Threshhold.xxxx, float4(0,0,0,0)); + half lum = Luminance(color.rgb); + color.rgb = lerp(half3(lum,lum,lum), color.rgb, _Saturation) * _TintColor.rgb; + return color; + } + + half4 fragStretch (v2f_opts i) : SV_Target { + half4 color = tex2D (_MainTex, i.uv[0]); + color = max (color, tex2D (_MainTex, i.uv[1])); + color = max (color, tex2D (_MainTex, i.uv[2])); + color = max (color, tex2D (_MainTex, i.uv[3])); + color = max (color, tex2D (_MainTex, i.uv[4])); + color = max (color, tex2D (_MainTex, i.uv[5])); + color = max (color, tex2D (_MainTex, i.uv[6])); + return color; + } + + half4 fragPost (v2f_opts i) : SV_Target { + half4 color = tex2D (_MainTex, i.uv[0]); + color += tex2D (_MainTex, i.uv[1]); + color += tex2D (_MainTex, i.uv[2]); + color += tex2D (_MainTex, i.uv[3]); + color += tex2D (_MainTex, i.uv[4]); + color += tex2D (_MainTex, i.uv[5]); + color += tex2D (_MainTex, i.uv[6]); + return color * 1.0/(7.0 + Luminance(color.rgb) + 0.5); // this also makes it a little noisy + } + + ENDCG + +Subshader { + ZTest Always Cull Off ZWrite Off + Pass { + + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragPostNoBlur + + ENDCG + } + + Pass { + + CGPROGRAM + + #pragma vertex vertStretch + #pragma fragment fragStretch + + ENDCG + } + + // 2 + Pass { + + CGPROGRAM + + #pragma vertex vertWithMultiCoords + #pragma fragment fragPreAndCut + + ENDCG + } + + // 3 + Pass { + + CGPROGRAM + + #pragma vertex vertWithMultiCoords + #pragma fragment fragPost + + ENDCG + } + // 4 + Pass { + + CGPROGRAM + + #pragma vertex vertWithMultiCoords2 + #pragma fragment fragGaussBlur + + ENDCG + } +} + +Fallback off + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlurAndFlares.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlurAndFlares.shader.meta new file mode 100644 index 0000000..a0ed0ba --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlurAndFlares.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: be6e39cf196f146d5be72fbefb18ed75 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter.shader new file mode 100644 index 0000000..90a283f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter.shader @@ -0,0 +1,59 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/BrightPassFilterForBloom" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f + { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + sampler2D _MainTex; + + half4 threshold; + half useSrcAlphaAsMask; + + v2f vert( appdata_img v ) + { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = v.texcoord.xy; + return o; + } + + half4 frag(v2f i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + //color = color * saturate((color-threshhold.x) * 75.0); // didn't go well with HDR and din't make sense + color = color * lerp(1.0, color.a, useSrcAlphaAsMask); + color = max(half4(0,0,0,0), color-threshold.x); + return color; + } + + ENDCG + + Subshader + { + Pass + { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + + ENDCG + } + } + Fallback off +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter.shader.meta new file mode 100644 index 0000000..35204d1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 186c4c0d31e314f049595dcbaf4ca129 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter2.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter2.shader new file mode 100644 index 0000000..445f420 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter2.shader @@ -0,0 +1,76 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/BrightPassFilter2" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f + { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + sampler2D _MainTex; + + half4 _Threshhold; + + v2f vert( appdata_img v ) + { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = v.texcoord.xy; + return o; + } + + half4 fragScalarThresh(v2f i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + color.rgb = color.rgb; + color.rgb = max(half3(0,0,0), color.rgb-_Threshhold.xxx); + return color; + } + + half4 fragColorThresh(v2f i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + color.rgb = max(half3(0,0,0), color.rgb-_Threshhold.rgb); + return color; + } + + ENDCG + + Subshader + { + Pass + { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragScalarThresh + + ENDCG + } + + Pass + { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragColorThresh + + ENDCG + } + } + Fallback off +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter2.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter2.shader.meta new file mode 100644 index 0000000..b55de0e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter2.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 0aeaa4cb29f5d4e9c8455f04c8575c8c +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/LensFlareCreate.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/LensFlareCreate.shader new file mode 100644 index 0000000..e4e62c1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/LensFlareCreate.shader @@ -0,0 +1,62 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/LensFlareCreate" { + Properties { + _MainTex ("Base (RGB)", 2D) = "" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f { + float4 pos : SV_POSITION; + float2 uv[4] : TEXCOORD0; + }; + + fixed4 colorA; + fixed4 colorB; + fixed4 colorC; + fixed4 colorD; + + sampler2D _MainTex; + + v2f vert( appdata_img v ) { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + + o.uv[0] = ( ( v.texcoord.xy - 0.5 ) * -0.85 ) + 0.5; + o.uv[1] = ( ( v.texcoord.xy - 0.5 ) * -1.45 ) + 0.5; + o.uv[2] = ( ( v.texcoord.xy - 0.5 ) * -2.55 ) + 0.5; + o.uv[3] = ( ( v.texcoord.xy - 0.5 ) * -4.15 ) + 0.5; + return o; + } + + fixed4 frag(v2f i) : SV_Target { + fixed4 color = float4 (0,0,0,0); + color += tex2D(_MainTex, i.uv[0] ) * colorA; + color += tex2D(_MainTex, i.uv[1] ) * colorB; + color += tex2D(_MainTex, i.uv[2] ) * colorC; + color += tex2D(_MainTex, i.uv[3] ) * colorD; + return color; + } + + ENDCG + +Subshader { + Blend One One + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + + ENDCG + } +} + +Fallback off + +} // shader diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/LensFlareCreate.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/LensFlareCreate.shader.meta new file mode 100644 index 0000000..cd9c241 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/LensFlareCreate.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 459fe69d2f6d74ddb92f04dbf45a866b +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBloom.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBloom.shader new file mode 100644 index 0000000..132f318 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBloom.shader @@ -0,0 +1,294 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + + +Shader "Hidden/FastBloom" { + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Bloom ("Bloom (RGB)", 2D) = "black" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + sampler2D _MainTex; + sampler2D _Bloom; + + uniform half4 _MainTex_TexelSize; + + uniform half4 _Parameter; + uniform half4 _OffsetsA; + uniform half4 _OffsetsB; + + #define ONE_MINUS_THRESHHOLD_TIMES_INTENSITY _Parameter.w + #define THRESHHOLD _Parameter.z + + struct v2f_simple + { + float4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + + #if UNITY_UV_STARTS_AT_TOP + half2 uv2 : TEXCOORD1; + #endif + }; + + v2f_simple vertBloom ( appdata_img v ) + { + v2f_simple o; + + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = v.texcoord; + + #if UNITY_UV_STARTS_AT_TOP + o.uv2 = v.texcoord; + if (_MainTex_TexelSize.y < 0.0) + o.uv.y = 1.0 - o.uv.y; + #endif + + return o; + } + + struct v2f_tap + { + float4 pos : SV_POSITION; + half2 uv20 : TEXCOORD0; + half2 uv21 : TEXCOORD1; + half2 uv22 : TEXCOORD2; + half2 uv23 : TEXCOORD3; + }; + + v2f_tap vert4Tap ( appdata_img v ) + { + v2f_tap o; + + o.pos = UnityObjectToClipPos (v.vertex); + o.uv20 = v.texcoord + _MainTex_TexelSize.xy; + o.uv21 = v.texcoord + _MainTex_TexelSize.xy * half2(-0.5h,-0.5h); + o.uv22 = v.texcoord + _MainTex_TexelSize.xy * half2(0.5h,-0.5h); + o.uv23 = v.texcoord + _MainTex_TexelSize.xy * half2(-0.5h,0.5h); + + return o; + } + + fixed4 fragBloom ( v2f_simple i ) : SV_Target + { + #if UNITY_UV_STARTS_AT_TOP + + fixed4 color = tex2D(_MainTex, i.uv2); + return color + tex2D(_Bloom, i.uv); + + #else + + fixed4 color = tex2D(_MainTex, i.uv); + return color + tex2D(_Bloom, i.uv); + + #endif + } + + fixed4 fragDownsample ( v2f_tap i ) : SV_Target + { + fixed4 color = tex2D (_MainTex, i.uv20); + color += tex2D (_MainTex, i.uv21); + color += tex2D (_MainTex, i.uv22); + color += tex2D (_MainTex, i.uv23); + return max(color/4 - THRESHHOLD, 0) * ONE_MINUS_THRESHHOLD_TIMES_INTENSITY; + } + + // weight curves + + static const half curve[7] = { 0.0205, 0.0855, 0.232, 0.324, 0.232, 0.0855, 0.0205 }; // gauss'ish blur weights + + static const half4 curve4[7] = { half4(0.0205,0.0205,0.0205,0), half4(0.0855,0.0855,0.0855,0), half4(0.232,0.232,0.232,0), + half4(0.324,0.324,0.324,1), half4(0.232,0.232,0.232,0), half4(0.0855,0.0855,0.0855,0), half4(0.0205,0.0205,0.0205,0) }; + + struct v2f_withBlurCoords8 + { + float4 pos : SV_POSITION; + half4 uv : TEXCOORD0; + half2 offs : TEXCOORD1; + }; + + struct v2f_withBlurCoordsSGX + { + float4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + half4 offs[3] : TEXCOORD1; + }; + + v2f_withBlurCoords8 vertBlurHorizontal (appdata_img v) + { + v2f_withBlurCoords8 o; + o.pos = UnityObjectToClipPos (v.vertex); + + o.uv = half4(v.texcoord.xy,1,1); + o.offs = _MainTex_TexelSize.xy * half2(1.0, 0.0) * _Parameter.x; + + return o; + } + + v2f_withBlurCoords8 vertBlurVertical (appdata_img v) + { + v2f_withBlurCoords8 o; + o.pos = UnityObjectToClipPos (v.vertex); + + o.uv = half4(v.texcoord.xy,1,1); + o.offs = _MainTex_TexelSize.xy * half2(0.0, 1.0) * _Parameter.x; + + return o; + } + + half4 fragBlur8 ( v2f_withBlurCoords8 i ) : SV_Target + { + half2 uv = i.uv.xy; + half2 netFilterWidth = i.offs; + half2 coords = uv - netFilterWidth * 3.0; + + half4 color = 0; + for( int l = 0; l < 7; l++ ) + { + half4 tap = tex2D(_MainTex, coords); + color += tap * curve4[l]; + coords += netFilterWidth; + } + return color; + } + + + v2f_withBlurCoordsSGX vertBlurHorizontalSGX (appdata_img v) + { + v2f_withBlurCoordsSGX o; + o.pos = UnityObjectToClipPos (v.vertex); + + o.uv = v.texcoord.xy; + half2 netFilterWidth = _MainTex_TexelSize.xy * half2(1.0, 0.0) * _Parameter.x; + half4 coords = -netFilterWidth.xyxy * 3.0; + + o.offs[0] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h); + coords += netFilterWidth.xyxy; + o.offs[1] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h); + coords += netFilterWidth.xyxy; + o.offs[2] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h); + + return o; + } + + v2f_withBlurCoordsSGX vertBlurVerticalSGX (appdata_img v) + { + v2f_withBlurCoordsSGX o; + o.pos = UnityObjectToClipPos (v.vertex); + + o.uv = half4(v.texcoord.xy,1,1); + half2 netFilterWidth = _MainTex_TexelSize.xy * half2(0.0, 1.0) * _Parameter.x; + half4 coords = -netFilterWidth.xyxy * 3.0; + + o.offs[0] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h); + coords += netFilterWidth.xyxy; + o.offs[1] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h); + coords += netFilterWidth.xyxy; + o.offs[2] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h); + + return o; + } + + half4 fragBlurSGX ( v2f_withBlurCoordsSGX i ) : SV_Target + { + half2 uv = i.uv.xy; + + half4 color = tex2D(_MainTex, i.uv) * curve4[3]; + + for( int l = 0; l < 3; l++ ) + { + half4 tapA = tex2D(_MainTex, i.offs[l].xy); + half4 tapB = tex2D(_MainTex, i.offs[l].zw); + color += (tapA + tapB) * curve4[l]; + } + + return color; + + } + + ENDCG + + SubShader { + ZTest Off Cull Off ZWrite Off Blend Off + + // 0 + Pass { + + CGPROGRAM + #pragma vertex vertBloom + #pragma fragment fragBloom + + ENDCG + + } + + // 1 + Pass { + + CGPROGRAM + + #pragma vertex vert4Tap + #pragma fragment fragDownsample + + ENDCG + + } + + // 2 + Pass { + ZTest Always + Cull Off + + CGPROGRAM + + #pragma vertex vertBlurVertical + #pragma fragment fragBlur8 + + ENDCG + } + + // 3 + Pass { + ZTest Always + Cull Off + + CGPROGRAM + + #pragma vertex vertBlurHorizontal + #pragma fragment fragBlur8 + + ENDCG + } + + // alternate blur + // 4 + Pass { + ZTest Always + Cull Off + + CGPROGRAM + + #pragma vertex vertBlurVerticalSGX + #pragma fragment fragBlurSGX + + ENDCG + } + + // 5 + Pass { + ZTest Always + Cull Off + + CGPROGRAM + + #pragma vertex vertBlurHorizontalSGX + #pragma fragment fragBlurSGX + + ENDCG + } + } + + FallBack Off +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBloom.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBloom.shader.meta new file mode 100644 index 0000000..db93b36 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBloom.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 68a00c837b82e4c6d92e7da765dc5f1d +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBlur.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBlur.shader new file mode 100644 index 0000000..60f1d58 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBlur.shader @@ -0,0 +1,236 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + + +Shader "Hidden/FastBlur" { + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Bloom ("Bloom (RGB)", 2D) = "black" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + sampler2D _MainTex; + sampler2D _Bloom; + + uniform half4 _MainTex_TexelSize; + uniform half4 _Parameter; + + struct v2f_tap + { + float4 pos : SV_POSITION; + half2 uv20 : TEXCOORD0; + half2 uv21 : TEXCOORD1; + half2 uv22 : TEXCOORD2; + half2 uv23 : TEXCOORD3; + }; + + v2f_tap vert4Tap ( appdata_img v ) + { + v2f_tap o; + + o.pos = UnityObjectToClipPos (v.vertex); + o.uv20 = v.texcoord + _MainTex_TexelSize.xy; + o.uv21 = v.texcoord + _MainTex_TexelSize.xy * half2(-0.5h,-0.5h); + o.uv22 = v.texcoord + _MainTex_TexelSize.xy * half2(0.5h,-0.5h); + o.uv23 = v.texcoord + _MainTex_TexelSize.xy * half2(-0.5h,0.5h); + + return o; + } + + fixed4 fragDownsample ( v2f_tap i ) : SV_Target + { + fixed4 color = tex2D (_MainTex, i.uv20); + color += tex2D (_MainTex, i.uv21); + color += tex2D (_MainTex, i.uv22); + color += tex2D (_MainTex, i.uv23); + return color / 4; + } + + // weight curves + + static const half curve[7] = { 0.0205, 0.0855, 0.232, 0.324, 0.232, 0.0855, 0.0205 }; // gauss'ish blur weights + + static const half4 curve4[7] = { half4(0.0205,0.0205,0.0205,0), half4(0.0855,0.0855,0.0855,0), half4(0.232,0.232,0.232,0), + half4(0.324,0.324,0.324,1), half4(0.232,0.232,0.232,0), half4(0.0855,0.0855,0.0855,0), half4(0.0205,0.0205,0.0205,0) }; + + struct v2f_withBlurCoords8 + { + float4 pos : SV_POSITION; + half4 uv : TEXCOORD0; + half2 offs : TEXCOORD1; + }; + + struct v2f_withBlurCoordsSGX + { + float4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + half4 offs[3] : TEXCOORD1; + }; + + v2f_withBlurCoords8 vertBlurHorizontal (appdata_img v) + { + v2f_withBlurCoords8 o; + o.pos = UnityObjectToClipPos (v.vertex); + + o.uv = half4(v.texcoord.xy,1,1); + o.offs = _MainTex_TexelSize.xy * half2(1.0, 0.0) * _Parameter.x; + + return o; + } + + v2f_withBlurCoords8 vertBlurVertical (appdata_img v) + { + v2f_withBlurCoords8 o; + o.pos = UnityObjectToClipPos (v.vertex); + + o.uv = half4(v.texcoord.xy,1,1); + o.offs = _MainTex_TexelSize.xy * half2(0.0, 1.0) * _Parameter.x; + + return o; + } + + half4 fragBlur8 ( v2f_withBlurCoords8 i ) : SV_Target + { + half2 uv = i.uv.xy; + half2 netFilterWidth = i.offs; + half2 coords = uv - netFilterWidth * 3.0; + + half4 color = 0; + for( int l = 0; l < 7; l++ ) + { + half4 tap = tex2D(_MainTex, coords); + color += tap * curve4[l]; + coords += netFilterWidth; + } + return color; + } + + + v2f_withBlurCoordsSGX vertBlurHorizontalSGX (appdata_img v) + { + v2f_withBlurCoordsSGX o; + o.pos = UnityObjectToClipPos (v.vertex); + + o.uv = v.texcoord.xy; + half2 netFilterWidth = _MainTex_TexelSize.xy * half2(1.0, 0.0) * _Parameter.x; + half4 coords = -netFilterWidth.xyxy * 3.0; + + o.offs[0] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h); + coords += netFilterWidth.xyxy; + o.offs[1] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h); + coords += netFilterWidth.xyxy; + o.offs[2] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h); + + return o; + } + + v2f_withBlurCoordsSGX vertBlurVerticalSGX (appdata_img v) + { + v2f_withBlurCoordsSGX o; + o.pos = UnityObjectToClipPos (v.vertex); + + o.uv = half4(v.texcoord.xy,1,1); + half2 netFilterWidth = _MainTex_TexelSize.xy * half2(0.0, 1.0) * _Parameter.x; + half4 coords = -netFilterWidth.xyxy * 3.0; + + o.offs[0] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h); + coords += netFilterWidth.xyxy; + o.offs[1] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h); + coords += netFilterWidth.xyxy; + o.offs[2] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h); + + return o; + } + + half4 fragBlurSGX ( v2f_withBlurCoordsSGX i ) : SV_Target + { + half2 uv = i.uv.xy; + + half4 color = tex2D(_MainTex, i.uv) * curve4[3]; + + for( int l = 0; l < 3; l++ ) + { + half4 tapA = tex2D(_MainTex, i.offs[l].xy); + half4 tapB = tex2D(_MainTex, i.offs[l].zw); + color += (tapA + tapB) * curve4[l]; + } + + return color; + + } + + ENDCG + + SubShader { + ZTest Off Cull Off ZWrite Off Blend Off + + // 0 + Pass { + + CGPROGRAM + + #pragma vertex vert4Tap + #pragma fragment fragDownsample + + ENDCG + + } + + // 1 + Pass { + ZTest Always + Cull Off + + CGPROGRAM + + #pragma vertex vertBlurVertical + #pragma fragment fragBlur8 + + ENDCG + } + + // 2 + Pass { + ZTest Always + Cull Off + + CGPROGRAM + + #pragma vertex vertBlurHorizontal + #pragma fragment fragBlur8 + + ENDCG + } + + // alternate blur + // 3 + Pass { + ZTest Always + Cull Off + + CGPROGRAM + + #pragma vertex vertBlurVerticalSGX + #pragma fragment fragBlurSGX + + ENDCG + } + + // 4 + Pass { + ZTest Always + Cull Off + + CGPROGRAM + + #pragma vertex vertBlurHorizontalSGX + #pragma fragment fragBlurSGX + + ENDCG + } + } + + FallBack Off +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBlur.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBlur.shader.meta new file mode 100644 index 0000000..6770288 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBlur.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: f9d5fa183cd6b45eeb1491f74863cd91 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MultiPassHollywoodFlares.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MultiPassHollywoodFlares.shader new file mode 100644 index 0000000..9c907f0 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MultiPassHollywoodFlares.shader @@ -0,0 +1,156 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/MultipassHollywoodFlares" { + Properties { + _MainTex ("Base (RGB)", 2D) = "" {} + _NonBlurredTex ("Base (RGB)", 2D) = "" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f { + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + }; + + struct v2f_opts { + half4 pos : SV_POSITION; + half2 uv[7] : TEXCOORD0; + }; + + half4 offsets; + half4 tintColor; + + half stretchWidth; + half2 _Threshhold; + + half4 _MainTex_TexelSize; + + sampler2D _MainTex; + sampler2D _NonBlurredTex; + + v2f vert (appdata_img v) { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = v.texcoord.xy; + return o; + } + + v2f_opts vertStretch (appdata_img v) { + v2f_opts o; + o.pos = UnityObjectToClipPos(v.vertex); + half b = stretchWidth; + o.uv[0] = v.texcoord.xy; + o.uv[1] = v.texcoord.xy + b * 2.0 * offsets.xy; + o.uv[2] = v.texcoord.xy - b * 2.0 * offsets.xy; + o.uv[3] = v.texcoord.xy + b * 4.0 * offsets.xy; + o.uv[4] = v.texcoord.xy - b * 4.0 * offsets.xy; + o.uv[5] = v.texcoord.xy + b * 6.0 * offsets.xy; + o.uv[6] = v.texcoord.xy - b * 6.0 * offsets.xy; + return o; + } + + v2f_opts vertVerticalCoords (appdata_img v) { + v2f_opts o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv[0] = v.texcoord.xy; + o.uv[1] = v.texcoord.xy + 0.5 * _MainTex_TexelSize.xy * half2(0,1); + o.uv[2] = v.texcoord.xy - 0.5 * _MainTex_TexelSize.xy * half2(0,1); + o.uv[3] = v.texcoord.xy + 1.5 * _MainTex_TexelSize.xy * half2(0,1); + o.uv[4] = v.texcoord.xy - 1.5 * _MainTex_TexelSize.xy * half2(0,1); + o.uv[5] = v.texcoord.xy + 2.5 * _MainTex_TexelSize.xy * half2(0,1); + o.uv[6] = v.texcoord.xy - 2.5 * _MainTex_TexelSize.xy * half2(0,1); + return o; + } + + // deprecated + half4 fragPrepare (v2f i) : SV_Target { + half4 color = tex2D (_MainTex, i.uv); + half4 colorNb = tex2D (_NonBlurredTex, i.uv); + return color * tintColor * 0.5 + colorNb * normalize (tintColor) * 0.5; + } + + + half4 fragPreAndCut (v2f_opts i) : SV_Target { + half4 color = tex2D (_MainTex, i.uv[0]); + color += tex2D (_MainTex, i.uv[1]); + color += tex2D (_MainTex, i.uv[2]); + color += tex2D (_MainTex, i.uv[3]); + color += tex2D (_MainTex, i.uv[4]); + color += tex2D (_MainTex, i.uv[5]); + color += tex2D (_MainTex, i.uv[6]); + return max(color / 7.0 - _Threshhold.x, 0.0) * _Threshhold.y * tintColor; + } + + half4 fragStretch (v2f_opts i) : SV_Target { + half4 color = tex2D (_MainTex, i.uv[0]); + color = max (color, tex2D (_MainTex, i.uv[1])); + color = max (color, tex2D (_MainTex, i.uv[2])); + color = max (color, tex2D (_MainTex, i.uv[3])); + color = max (color, tex2D (_MainTex, i.uv[4])); + color = max (color, tex2D (_MainTex, i.uv[5])); + color = max (color, tex2D (_MainTex, i.uv[6])); + return color; + } + + half4 fragPost (v2f_opts i) : SV_Target { + half4 color = tex2D (_MainTex, i.uv[0]); + color += tex2D (_MainTex, i.uv[1]); + color += tex2D (_MainTex, i.uv[2]); + color += tex2D (_MainTex, i.uv[3]); + color += tex2D (_MainTex, i.uv[4]); + color += tex2D (_MainTex, i.uv[5]); + color += tex2D (_MainTex, i.uv[6]); + return color * 1.0/(7.0 + Luminance(color.rgb) + 0.5); // this also makes it a little noisy + } + + ENDCG + +Subshader { + ZTest Always Cull Off ZWrite Off + Pass { + + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragPrepare + + ENDCG + } + + Pass { + + CGPROGRAM + + #pragma vertex vertStretch + #pragma fragment fragStretch + + ENDCG + } + + Pass { + + CGPROGRAM + + #pragma vertex vertVerticalCoords + #pragma fragment fragPreAndCut + + ENDCG + } + + Pass { + + CGPROGRAM + + #pragma vertex vertVerticalCoords + #pragma fragment fragPost + + ENDCG + } +} + +Fallback off + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MultiPassHollywoodFlares.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MultiPassHollywoodFlares.shader.meta new file mode 100644 index 0000000..62c6a79 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MultiPassHollywoodFlares.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: e2baf3cae8edc4daf94c9adc2154be00 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/SeparableBlurPlus.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/SeparableBlurPlus.shader new file mode 100644 index 0000000..f190e40 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/SeparableBlurPlus.shader @@ -0,0 +1,71 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/SeparableBlurPlus" { + Properties { + _MainTex ("Base (RGB)", 2D) = "" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f { + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + half4 uv01 : TEXCOORD1; + half4 uv23 : TEXCOORD2; + half4 uv45 : TEXCOORD3; + half4 uv67 : TEXCOORD4; + }; + + half4 offsets; + + sampler2D _MainTex; + + v2f vert (appdata_img v) { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + + o.uv.xy = v.texcoord.xy; + + o.uv01 = v.texcoord.xyxy + offsets.xyxy * half4(1,1, -1,-1); + o.uv23 = v.texcoord.xyxy + offsets.xyxy * half4(1,1, -1,-1) * 2.0; + o.uv45 = v.texcoord.xyxy + offsets.xyxy * half4(1,1, -1,-1) * 3.0; + o.uv67 = v.texcoord.xyxy + offsets.xyxy * half4(1,1, -1,-1) * 4.5; + o.uv67 = v.texcoord.xyxy + offsets.xyxy * half4(1,1, -1,-1) * 6.5; + + return o; + } + + half4 frag (v2f i) : SV_Target { + half4 color = half4 (0,0,0,0); + + color += 0.225 * tex2D (_MainTex, i.uv); + color += 0.150 * tex2D (_MainTex, i.uv01.xy); + color += 0.150 * tex2D (_MainTex, i.uv01.zw); + color += 0.110 * tex2D (_MainTex, i.uv23.xy); + color += 0.110 * tex2D (_MainTex, i.uv23.zw); + color += 0.075 * tex2D (_MainTex, i.uv45.xy); + color += 0.075 * tex2D (_MainTex, i.uv45.zw); + color += 0.0525 * tex2D (_MainTex, i.uv67.xy); + color += 0.0525 * tex2D (_MainTex, i.uv67.zw); + + return color; + } + + ENDCG + +Subshader { + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + ENDCG + } +} + +Fallback off + +} // shader diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/SeparableBlurPlus.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/SeparableBlurPlus.shader.meta new file mode 100644 index 0000000..f675def --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/SeparableBlurPlus.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: a9df009a214e24a5ebbf271595f8d5b6 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/VignetteShader.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/VignetteShader.shader new file mode 100644 index 0000000..cf3624f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/VignetteShader.shader @@ -0,0 +1,59 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/VignetteShader" { + Properties { + _MainTex ("Base (RGB)", 2D) = "" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + sampler2D _MainTex; + + float4 _MainTex_TexelSize; + float vignetteIntensity; + + v2f vert( appdata_img v ) { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + + o.uv = v.texcoord.xy; + return o; + } + + half4 frag(v2f i) : SV_Target { + half2 coords = i.uv; + half2 uv = i.uv; + + coords = (coords - 0.5) * 2.0; + half coordDot = dot (coords,coords); + half4 color = tex2D (_MainTex, uv); + + float mask = 1.0 - coordDot * vignetteIntensity; + return color * mask; + } + + ENDCG + +Subshader { + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + + ENDCG + } +} + +Fallback off + +} // shader diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/VignetteShader.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/VignetteShader.shader.meta new file mode 100644 index 0000000..63b6b76 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/VignetteShader.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 562f620336e024ac99992ff05725a89a +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField.meta new file mode 100644 index 0000000..955cea4 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: d9cccf980fcb7441d85b8b3b5c2d2c34 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/Bokeh34.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/Bokeh34.shader new file mode 100644 index 0000000..b691a11 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/Bokeh34.shader @@ -0,0 +1,78 @@ + +Shader "Hidden/Dof/Bokeh34" { +Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Source ("Base (RGB)", 2D) = "black" {} +} + +SubShader { + CGINCLUDE + + #include "UnityCG.cginc" + + sampler2D _MainTex; + sampler2D _Source; + + uniform half4 _ArScale; + uniform half _Intensity; + uniform half4 _Source_TexelSize; + + struct v2f { + half4 pos : SV_POSITION; + half2 uv2 : TEXCOORD0; + half4 source : TEXCOORD1; + }; + + #define COC bokeh.a + + v2f vert (appdata_full v) + { + v2f o; + + o.pos = v.vertex; + + o.uv2.xy = v.texcoord.xy;// * 2.0; <- needed when using Triangles.js and not Quads.js + + #if UNITY_UV_STARTS_AT_TOP + float4 bokeh = tex2Dlod (_Source, half4 (v.texcoord1.xy * half2(1,-1) + half2(0,1), 0, 0)); + #else + float4 bokeh = tex2Dlod (_Source, half4 (v.texcoord1.xy, 0, 0)); + #endif + + o.source = bokeh; + + o.pos.xy += (v.texcoord.xy * 2.0 - 1.0) * _ArScale.xy * COC;// + _ArScale.zw * coc; + o.source.rgb *= _Intensity; + + return o; + } + + + half4 frag (v2f i) : SV_Target + { + half4 color = tex2D (_MainTex, i.uv2.xy); + color.rgb *= i.source.rgb; + color.a *= Luminance(i.source.rgb*0.25); + return color; + } + + ENDCG + + Pass { + Blend OneMinusDstColor One + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vert + #pragma fragment frag + + ENDCG + } + +} + +Fallback off + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/Bokeh34.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/Bokeh34.shader.meta new file mode 100644 index 0000000..f8047da --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/Bokeh34.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 57cdacf9b217546aaa18edf39a6151c0 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfField34.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfField34.shader new file mode 100644 index 0000000..626aa86 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfField34.shader @@ -0,0 +1,488 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + + Shader "Hidden/Dof/DepthOfField34" { + Properties { + _MainTex ("Base", 2D) = "" {} + _TapLowBackground ("TapLowBackground", 2D) = "" {} + _TapLowForeground ("TapLowForeground", 2D) = "" {} + _TapMedium ("TapMedium", 2D) = "" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f { + half4 pos : SV_POSITION; + half2 uv1 : TEXCOORD0; + }; + + struct v2fDofApply { + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + }; + + struct v2fRadius { + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + half4 uv1[4] : TEXCOORD1; + }; + + struct v2fDown { + half4 pos : SV_POSITION; + half2 uv0 : TEXCOORD0; + half2 uv[2] : TEXCOORD1; + }; + + sampler2D _MainTex; + sampler2D_float _CameraDepthTexture; + sampler2D _TapLowBackground; + sampler2D _TapLowForeground; + sampler2D _TapMedium; + + half4 _CurveParams; + half _ForegroundBlurExtrude; + uniform half3 _Threshhold; + uniform float4 _MainTex_TexelSize; + uniform float2 _InvRenderTargetSize; + + v2f vert( appdata_img v ) { + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + o.uv1.xy = v.texcoord.xy; + return o; + } + + v2fRadius vertWithRadius( appdata_img v ) { + v2fRadius o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv.xy = v.texcoord.xy; + + const half2 blurOffsets[4] = { + half2(-0.5, +1.5), + half2(+0.5, -1.5), + half2(+1.5, +0.5), + half2(-1.5, -0.5) + }; + + o.uv1[0].xy = v.texcoord.xy + 5.0 * _MainTex_TexelSize.xy * blurOffsets[0]; + o.uv1[1].xy = v.texcoord.xy + 5.0 * _MainTex_TexelSize.xy * blurOffsets[1]; + o.uv1[2].xy = v.texcoord.xy + 5.0 * _MainTex_TexelSize.xy * blurOffsets[2]; + o.uv1[3].xy = v.texcoord.xy + 5.0 * _MainTex_TexelSize.xy * blurOffsets[3]; + + o.uv1[0].zw = v.texcoord.xy + 3.0 * _MainTex_TexelSize.xy * blurOffsets[0]; + o.uv1[1].zw = v.texcoord.xy + 3.0 * _MainTex_TexelSize.xy * blurOffsets[1]; + o.uv1[2].zw = v.texcoord.xy + 3.0 * _MainTex_TexelSize.xy * blurOffsets[2]; + o.uv1[3].zw = v.texcoord.xy + 3.0 * _MainTex_TexelSize.xy * blurOffsets[3]; + + return o; + } + + v2fDofApply vertDofApply( appdata_img v ) { + v2fDofApply o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv.xy = v.texcoord.xy; + return o; + } + + v2fDown vertDownsampleWithCocConserve(appdata_img v) { + v2fDown o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv0.xy = v.texcoord.xy; + o.uv[0].xy = v.texcoord.xy + half2(-1.0,-1.0) * _InvRenderTargetSize; + o.uv[1].xy = v.texcoord.xy + half2(1.0,-1.0) * _InvRenderTargetSize; + return o; + } + + half4 BokehPrereqs (sampler2D tex, half4 uv1[4], half4 center, half considerCoc) { + + // @NOTE 1: + // we are checking for 3 things in order to create a bokeh. + // goal is to get the highest bang for the buck. + // 1.) contrast/frequency should be very high (otherwise bokeh mostly unvisible) + // 2.) luminance should be high + // 3.) no occluder nearby (stored in alpha channel) + + // @NOTE 2: about the alpha channel in littleBlur: + // the alpha channel stores an heuristic on how likely it is + // that there is no bokeh occluder nearby. + // if we didn't' check for that, we'd get very noise bokeh + // popping because of the sudden contrast changes + + half4 sampleA = tex2D(tex, uv1[0].zw); + half4 sampleB = tex2D(tex, uv1[1].zw); + half4 sampleC = tex2D(tex, uv1[2].zw); + half4 sampleD = tex2D(tex, uv1[3].zw); + + half4 littleBlur = 0.125 * (sampleA + sampleB + sampleC + sampleD); + + sampleA = tex2D(tex, uv1[0].xy); + sampleB = tex2D(tex, uv1[1].xy); + sampleC = tex2D(tex, uv1[2].xy); + sampleD = tex2D(tex, uv1[3].xy); + + littleBlur += 0.125 * (sampleA + sampleB + sampleC + sampleD); + + littleBlur = lerp (littleBlur, center, saturate(100.0 * considerCoc * abs(littleBlur.a - center.a))); + + return littleBlur; + } + + half4 fragDownsampleWithCocConserve(v2fDown i) : SV_Target { + half2 rowOfs[4]; + + rowOfs[0] = half2(0.0, 0.0); + rowOfs[1] = half2(0.0, _InvRenderTargetSize.y); + rowOfs[2] = half2(0.0, _InvRenderTargetSize.y) * 2.0; + rowOfs[3] = half2(0.0, _InvRenderTargetSize.y) * 3.0; + + half4 color = tex2D(_MainTex, i.uv0.xy); + + half4 sampleA = tex2D(_MainTex, i.uv[0].xy + rowOfs[0]); + half4 sampleB = tex2D(_MainTex, i.uv[1].xy + rowOfs[0]); + half4 sampleC = tex2D(_MainTex, i.uv[0].xy + rowOfs[2]); + half4 sampleD = tex2D(_MainTex, i.uv[1].xy + rowOfs[2]); + + color += sampleA + sampleB + sampleC + sampleD; + color *= 0.2; + + // @NOTE we are doing max on the alpha channel for 2 reasons: + // 1) foreground blur likes a slightly bigger radius + // 2) otherwise we get an ugly outline between high blur- and medium blur-areas + // drawback: we get a little bit of color bleeding + + color.a = max(max(sampleA.a, sampleB.a), max(sampleC.a, sampleD.a)); + + return color; + } + + half4 fragDofApplyBg (v2fDofApply i) : SV_Target { + half4 tapHigh = tex2D (_MainTex, i.uv.xy); + + #if UNITY_UV_STARTS_AT_TOP + if (_MainTex_TexelSize.y < 0) + i.uv.xy = i.uv.xy * half2(1,-1)+half2(0,1); + #endif + + half4 tapLow = tex2D (_TapLowBackground, i.uv.xy); // already mixed with medium blur + tapHigh = lerp (tapHigh, tapLow, tapHigh.a); + return tapHigh; + } + + half4 fragDofApplyBgDebug (v2fDofApply i) : SV_Target { + half4 tapHigh = tex2D (_MainTex, i.uv.xy); + + half4 tapLow = tex2D (_TapLowBackground, i.uv.xy); + + half4 tapMedium = tex2D (_TapMedium, i.uv.xy); + tapMedium.rgb = (tapMedium.rgb + half3 (1, 1, 0)) * 0.5; + tapLow.rgb = (tapLow.rgb + half3 (0, 1, 0)) * 0.5; + + tapLow = lerp (tapMedium, tapLow, saturate (tapLow.a * tapLow.a)); + tapLow = tapLow * 0.5 + tex2D (_TapLowBackground, i.uv.xy) * 0.5; + + return lerp (tapHigh, tapLow, tapHigh.a); + } + + half4 fragDofApplyFg (v2fDofApply i) : SV_Target { + half4 fgBlur = tex2D(_TapLowForeground, i.uv.xy); + + #if UNITY_UV_STARTS_AT_TOP + if (_MainTex_TexelSize.y < 0) + i.uv.xy = i.uv.xy * half2(1,-1)+half2(0,1); + #endif + + half4 fgColor = tex2D(_MainTex,i.uv.xy); + + //fgBlur.a = saturate(fgBlur.a*_ForegroundBlurWeight+saturate(fgColor.a-fgBlur.a)); + //fgBlur.a = max (fgColor.a, (2.0 * fgBlur.a - fgColor.a)) * _ForegroundBlurExtrude; + fgBlur.a = max(fgColor.a, fgBlur.a * _ForegroundBlurExtrude); //max (fgColor.a, (2.0*fgBlur.a-fgColor.a)) * _ForegroundBlurExtrude; + + return lerp (fgColor, fgBlur, saturate(fgBlur.a)); + } + + half4 fragDofApplyFgDebug (v2fDofApply i) : SV_Target { + half4 fgBlur = tex2D(_TapLowForeground, i.uv.xy); + + half4 fgColor = tex2D(_MainTex,i.uv.xy); + + fgBlur.a = max(fgColor.a, fgBlur.a * _ForegroundBlurExtrude); //max (fgColor.a, (2.0*fgBlur.a-fgColor.a)) * _ForegroundBlurExtrude; + + half4 tapMedium = half4 (1, 1, 0, fgBlur.a); + tapMedium.rgb = 0.5 * (tapMedium.rgb + fgColor.rgb); + + fgBlur.rgb = 0.5 * (fgBlur.rgb + half3(0,1,0)); + fgBlur.rgb = lerp (tapMedium.rgb, fgBlur.rgb, saturate (fgBlur.a * fgBlur.a)); + + return lerp ( fgColor, fgBlur, saturate(fgBlur.a)); + } + + half4 fragCocBg (v2f i) : SV_Target { + + float d = SAMPLE_DEPTH_TEXTURE (_CameraDepthTexture, i.uv1.xy); + d = Linear01Depth (d); + half coc = 0.0; + + half focalDistance01 = _CurveParams.w + _CurveParams.z; + + if (d > focalDistance01) + coc = (d - focalDistance01); + + coc = saturate (coc * _CurveParams.y); + return coc; + } + + half4 fragCocFg (v2f i) : SV_Target { + half4 color = tex2D (_MainTex, i.uv1.xy); + color.a = 0.0; + + #if UNITY_UV_STARTS_AT_TOP + if (_MainTex_TexelSize.y < 0) + i.uv1.xy = i.uv1.xy * half2(1,-1)+half2(0,1); + #endif + + float d = SAMPLE_DEPTH_TEXTURE (_CameraDepthTexture, i.uv1.xy); + d = Linear01Depth (d); + + half focalDistance01 = (_CurveParams.w - _CurveParams.z); + + if (d < focalDistance01) + color.a = (focalDistance01 - d); + + color.a = saturate (color.a * _CurveParams.x); + return color; + } + + // not being used atm + + half4 fragMask (v2f i) : SV_Target { + return half4(0,0,0,0); + } + + // used for simple one one blend + + half4 fragAddBokeh (v2f i) : SV_Target { + half4 from = tex2D( _MainTex, i.uv1.xy ); + return from; + } + + half4 fragAddFgBokeh (v2f i) : SV_Target { + half4 from = tex2D( _MainTex, i.uv1.xy ); + return from; + } + + half4 fragDarkenForBokeh(v2fRadius i) : SV_Target { + half4 fromOriginal = tex2D(_MainTex, i.uv.xy); + half4 lowRez = BokehPrereqs (_MainTex, i.uv1, fromOriginal, _Threshhold.z); + half4 outColor = half4(0,0,0, fromOriginal.a); + half modulate = fromOriginal.a; + + // this code imitates the if-then-else conditions below + half2 conditionCheck = half2( dot(abs(fromOriginal.rgb-lowRez.rgb), half3(0.3,0.5,0.2)), Luminance(fromOriginal.rgb)); + conditionCheck *= fromOriginal.a; + conditionCheck = saturate(_Threshhold.xy - conditionCheck); + outColor = lerp (outColor, fromOriginal, saturate (dot(conditionCheck, half2(1000.0,1000.0)))); + + /* + if ( abs(dot(fromOriginal.rgb - lowRez.rgb, half3 (0.3,0.5,0.2))) * modulate < _Threshhold.x) + outColor = fromOriginal; // no darkening + if (Luminance(fromOriginal.rgb) * modulate < _Threshhold.y) + outColor = fromOriginal; // no darkening + if (lowRez.a < _Threshhold.z) // need to make foreground not cast false bokeh's + outColor = fromOriginal; // no darkenin + */ + + return outColor; + } + + half4 fragExtractAndAddToBokeh (v2fRadius i) : SV_Target { + half4 from = tex2D(_MainTex, i.uv.xy); + half4 lowRez = BokehPrereqs(_MainTex, i.uv1, from, _Threshhold.z); + half4 outColor = from; + + // this code imitates the if-then-else conditions below + half2 conditionCheck = half2( dot(abs(from.rgb-lowRez.rgb), half3(0.3,0.5,0.2)), Luminance(from.rgb)); + conditionCheck *= from.a; + conditionCheck = saturate(_Threshhold.xy - conditionCheck); + outColor = lerp (outColor, half4(0,0,0,0), saturate (dot(conditionCheck, half2(1000.0,1000.0)))); + + /* + if ( abs(dot(from.rgb - lowRez.rgb, half3 (0.3,0.5,0.2))) * modulate < _Threshhold.x) + outColor = half4(0,0,0,0); // don't add + if (Luminance(from.rgb) * modulate < _Threshhold.y) + outColor = half4(0,0,0,0); // don't add + if (lowRez.a < _Threshhold.z) // need to make foreground not cast false bokeh's + outColor = half4(0,0,0,0); // don't add + */ + + return outColor; + } + + ENDCG + +Subshader { + + // pass 0 + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vertDofApply + #pragma fragment fragDofApplyBg + + ENDCG + } + + // pass 1 + + Pass { + ZTest Always Cull Off ZWrite Off + ColorMask RGB + + CGPROGRAM + #pragma vertex vertDofApply + #pragma fragment fragDofApplyFgDebug + + ENDCG + } + + // pass 2 + + Pass { + ZTest Always Cull Off ZWrite Off + ColorMask RGB + + CGPROGRAM + #pragma vertex vertDofApply + #pragma fragment fragDofApplyBgDebug + + ENDCG + } + + + + // pass 3 + + Pass { + ZTest Always Cull Off ZWrite Off + ColorMask A + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragCocBg + + ENDCG + } + + + // pass 4 + + + Pass { + ZTest Always Cull Off ZWrite Off + ColorMask RGB + //Blend One One + + CGPROGRAM + #pragma vertex vertDofApply + #pragma fragment fragDofApplyFg + + ENDCG + } + + // pass 5 + + Pass { + ZTest Always Cull Off ZWrite Off + ColorMask ARGB + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragCocFg + + ENDCG + } + + // pass 6 + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vertDownsampleWithCocConserve + #pragma fragment fragDownsampleWithCocConserve + + ENDCG + } + + // pass 7 + // not being used atm + + Pass { + ZTest Always Cull Off ZWrite Off + ColorMask RGBA + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragMask + + ENDCG + } + + // pass 8 + + Pass { + ZTest Always Cull Off ZWrite Off + Blend SrcAlpha OneMinusSrcAlpha + ColorMask RGB + + CGPROGRAM + #pragma vertex vert + #pragma fragment fragAddBokeh + + ENDCG + } + + // pass 9 + + Pass { + ZTest Always Cull Off ZWrite Off + Blend One One + ColorMask RGB + + CGPROGRAM + #pragma vertex vertWithRadius + #pragma fragment fragExtractAndAddToBokeh + + ENDCG + } + + // pass 10 + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vertWithRadius + #pragma fragment fragDarkenForBokeh + + ENDCG + } + + // pass 11 + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vertWithRadius + #pragma fragment fragExtractAndAddToBokeh + + ENDCG + } + } + +Fallback off + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfField34.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfField34.shader.meta new file mode 100644 index 0000000..b86195b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfField34.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 987fb0677d01f43ce8a9dbf12271e668 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldDX11.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldDX11.shader new file mode 100644 index 0000000..056b2bd --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldDX11.shader @@ -0,0 +1,259 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + + +/* + DX11 Depth Of Field + pretty much just does bokeh texture splatting + + basic algorithm: + + * find bright spots + * verify high frequency (otherwise dont care) + * if possitive, replace with black pixel and add to append buffer + * box blur buffer (thus smearing black pixels) + * blend bokeh texture sprites via append buffer on top of box blurred buffer + * composite with frame buffer +*/ + +Shader "Hidden/Dof/DX11Dof" +{ + Properties + { + _MainTex ("", 2D) = "white" {} + _BlurredColor ("", 2D) = "white" {} + _FgCocMask ("", 2D) = "white" {} + } + + CGINCLUDE + + #define BOKEH_ZERO_VEC (float4(0,0,0,0)) + #define BOKEH_ONE_VEC (float4(1,1,1,1)) + + float4 _BokehParams; // legend: dx11BokehScale, dx11BokehIntensity,dx11BokehThreshhold, internalBlurWidth + float4 _MainTex_TexelSize; + float3 _Screen; + float _SpawnHeuristic; + + sampler2D_float _CameraDepthTexture; + sampler2D _BlurredColor; + sampler2D _MainTex; + sampler2D _FgCocMask; + + struct appendStruct { + float3 pos; + float4 color; + }; + + struct gs_out { + float4 pos : SV_POSITION; + float3 uv : TEXCOORD0; + float4 color : TEXCOORD1; + float4 misc : TEXCOORD2; + }; + + // TODO: activate border clamp tex sampler state instead? + inline float4 clampBorderColor(float2 uv) + { +#if 1 + if(uv.x<=0) return BOKEH_ZERO_VEC; if(uv.x>=1) return BOKEH_ZERO_VEC; + if(uv.y<=0) return BOKEH_ZERO_VEC; if(uv.y>=1) return BOKEH_ZERO_VEC; +#endif + return BOKEH_ONE_VEC; + } + + struct vs_out { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float4 color : TEXCOORD1; + float cocOverlap : TEXCOORD2; + }; + + StructuredBuffer pointBuffer; + + vs_out vertApply (uint id : SV_VertexID) + { + vs_out o; + float2 pos = pointBuffer[id].pos.xy ; + o.pos = float4(pos * 2.0 - 1.0, 0, 1); + o.color = pointBuffer[id].color; + #if UNITY_UV_STARTS_AT_TOP + o.pos.y *= -1; + #endif + o.cocOverlap = pointBuffer[id].pos.z; + + return o; + } + + [maxvertexcount(4)] + void geom (point vs_out input[1], inout TriangleStream outStream) + { + // NEW ENERGY CONSERVATION: + + float2 scale2 = _BokehParams.ww * input[0].color.aa * _BokehParams.xx; + float4 offs = 0; + offs.xy = float2(3.0, 3.0) + 2.0f * floor(scale2 + float2(0.5,0.5)); + + float2 rs = ((float2(1.0, 1.0) + 2.0f * (scale2 + float2(0.5,0.5))));; + float2 f2 = offs.xy / rs; + + float energyAdjustment = (_BokehParams.y) / (rs.x*rs.y); + offs.xy *= _Screen.xy; + + gs_out output; + + output.pos = input[0].pos + offs*float4(-1,1,0,0); + output.misc = float4(f2,0,0); + output.uv = float3(0, 1, input[0].cocOverlap); + output.color = input[0].color * energyAdjustment; + outStream.Append (output); + + output.pos = input[0].pos + offs*float4(1,1,0,0); + output.misc = float4(f2,0,0); + output.uv = float3(1, 1, input[0].cocOverlap); + output.color = input[0].color * energyAdjustment; + outStream.Append (output); + + output.pos = input[0].pos + offs*float4(-1,-1,0,0); + output.misc = float4(f2,0,0); + output.uv = float3(0, 0, input[0].cocOverlap); + output.color = input[0].color * energyAdjustment; + outStream.Append (output); + + output.pos = input[0].pos + offs*float4(1,-1,0,0); + output.misc = float4(f2,0,0); + output.uv = float3(1, 0, input[0].cocOverlap); + output.color = input[0].color * energyAdjustment; + outStream.Append (output); + + outStream.RestartStrip(); + } + +ENDCG + +SubShader +{ + +// pass 0: append buffer "collect" + +Pass +{ + ZWrite Off ZTest Always Cull Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + #pragma target 5.0 + + #include "UnityCG.cginc" + + struct appdata { + float4 vertex : POSITION; + float2 texcoord : TEXCOORD0; + }; + + struct v2f { + float4 pos : SV_POSITION; + float2 uv_flip : TEXCOORD0; + float2 uv : TEXCOORD1; + }; + + v2f vert (appdata v) + { + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = v.texcoord; + o.uv_flip = v.texcoord; + #if UNITY_UV_STARTS_AT_TOP + if(_MainTex_TexelSize.y<0) + o.uv_flip.y = 1.0-o.uv_flip.y; + if(_MainTex_TexelSize.y<0) + o.pos.y *= -1.0; + #endif + return o; + } + + AppendStructuredBuffer pointBufferOutput : register(u1); + + float4 frag (v2f i) : SV_Target + { + float4 c = tex2D (_MainTex, i.uv_flip); + float lumc = Luminance (c.rgb); + + float4 cblurred = tex2D (_BlurredColor, i.uv); + float lumblurred = Luminance (cblurred.rgb); + + float fgCoc = tex2D(_FgCocMask, i.uv).a; + + [branch] + if (c.a * _BokehParams.w > 1 && cblurred.a > 0.1 && lumc > _BokehParams.z && abs(lumc-lumblurred) > _SpawnHeuristic) + { + appendStruct append; + append.pos = float3(i.uv, fgCoc); + append.color.rgba = float4(c.rgb * saturate(c.a*4), c.a); + pointBufferOutput.Append (append); + return float4(c.rgb * saturate(1-c.a*4), c.a); + } + + return c; + } + ENDCG +} + +// pass 1: bokeh splatting (low resolution) + +Pass { + + ZWrite Off ZTest Always Cull Off + Blend One One, One One + ColorMask RGBA + + CGPROGRAM + + #pragma target 5.0 + #pragma vertex vertApply + #pragma geometry geom + #pragma fragment frag + + #include "UnityCG.cginc" + + fixed4 frag (gs_out i) : SV_Target + { + float2 uv = (i.uv.xy) * i.misc.xy + (float2(1,1)-i.misc.xy) * 0.5; // smooth uv scale + return float4(i.color.rgb, 1) * float4(tex2D(_MainTex, uv.xy).rgb, i.uv.z) * clampBorderColor (uv); + } + + ENDCG +} + +// pass 2: bokeh splatting (high resolution) + +Pass { + + ZWrite Off ZTest Always Cull Off + BlendOp Add, Add + Blend DstAlpha One, Zero One + ColorMask RGBA + + CGPROGRAM + + #pragma target 5.0 + #pragma vertex vertApply + #pragma geometry geom + #pragma fragment frag + + #include "UnityCG.cginc" + + fixed4 frag (gs_out i) : SV_Target + { + float2 uv = (i.uv.xy) * i.misc.xy + (float2(1,1)-i.misc.xy) * 0.5; // smooth uv scale + return float4(i.color.rgb, 1) * float4(tex2D(_MainTex, uv.xy).rgb, i.uv.z) * clampBorderColor (uv); + } + + ENDCG +} + +} + +Fallback Off +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldDX11.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldDX11.shader.meta new file mode 100644 index 0000000..15935f1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldDX11.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: d8e82664aa8686642a424c88ab10164a +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldScatter.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldScatter.shader new file mode 100644 index 0000000..b64085a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldScatter.shader @@ -0,0 +1,936 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + + Shader "Hidden/Dof/DepthOfFieldHdr" { + Properties { + _MainTex ("-", 2D) = "black" {} + _FgOverlap ("-", 2D) = "black" {} + _LowRez ("-", 2D) = "black" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float2 uv1 : TEXCOORD1; + }; + + struct v2fRadius { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float4 uv1[4] : TEXCOORD1; + }; + + struct v2fBlur { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float4 uv01 : TEXCOORD1; + float4 uv23 : TEXCOORD2; + float4 uv45 : TEXCOORD3; + float4 uv67 : TEXCOORD4; + float4 uv89 : TEXCOORD5; + }; + + uniform sampler2D _MainTex; + uniform sampler2D_float _CameraDepthTexture; + uniform sampler2D _FgOverlap; + uniform sampler2D _LowRez; + uniform float4 _CurveParams; + uniform float4 _MainTex_TexelSize; + uniform float4 _Offsets; + + v2f vert( appdata_img v ) + { + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + o.uv1.xy = v.texcoord.xy; + o.uv.xy = v.texcoord.xy; + + #if UNITY_UV_STARTS_AT_TOP + if (_MainTex_TexelSize.y < 0) + o.uv.y = 1-o.uv.y; + #endif + + return o; + } + + v2f vertFlip( appdata_img v ) + { + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + o.uv1.xy = v.texcoord.xy; + o.uv.xy = v.texcoord.xy; + + #if UNITY_UV_STARTS_AT_TOP + if (_MainTex_TexelSize.y < 0) + o.uv.y = 1-o.uv.y; + if (_MainTex_TexelSize.y < 0) + o.uv1.y = 1-o.uv1.y; + #endif + + return o; + } + + v2fBlur vertBlurPlusMinus (appdata_img v) + { + v2fBlur o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv.xy = v.texcoord.xy; + o.uv01 = v.texcoord.xyxy + _Offsets.xyxy * float4(1,1, -1,-1) * _MainTex_TexelSize.xyxy / 6.0; + o.uv23 = v.texcoord.xyxy + _Offsets.xyxy * float4(2,2, -2,-2) * _MainTex_TexelSize.xyxy / 6.0; + o.uv45 = v.texcoord.xyxy + _Offsets.xyxy * float4(3,3, -3,-3) * _MainTex_TexelSize.xyxy / 6.0; + o.uv67 = v.texcoord.xyxy + _Offsets.xyxy * float4(4,4, -4,-4) * _MainTex_TexelSize.xyxy / 6.0; + o.uv89 = v.texcoord.xyxy + _Offsets.xyxy * float4(5,5, -5,-5) * _MainTex_TexelSize.xyxy / 6.0; + return o; + } + + #define SCATTER_OVERLAP_SMOOTH (-0.265) + + inline float BokehWeightDisc(float4 theSample, float sampleDistance, float4 centerSample) + { + return smoothstep(SCATTER_OVERLAP_SMOOTH, 0.0, theSample.a - centerSample.a*sampleDistance); + } + + inline float2 BokehWeightDisc2(float4 sampleA, float4 sampleB, float2 sampleDistance2, float4 centerSample) + { + return smoothstep(float2(SCATTER_OVERLAP_SMOOTH, SCATTER_OVERLAP_SMOOTH), float2(0.0,0.0), float2(sampleA.a, sampleB.a) - centerSample.aa*sampleDistance2); } + + static const int SmallDiscKernelSamples = 12; + static const float2 SmallDiscKernel[SmallDiscKernelSamples] = + { + float2(-0.326212,-0.40581), + float2(-0.840144,-0.07358), + float2(-0.695914,0.457137), + float2(-0.203345,0.620716), + float2(0.96234,-0.194983), + float2(0.473434,-0.480026), + float2(0.519456,0.767022), + float2(0.185461,-0.893124), + float2(0.507431,0.064425), + float2(0.89642,0.412458), + float2(-0.32194,-0.932615), + float2(-0.791559,-0.59771) + }; + + static const int NumDiscSamples = 28; + static const float3 DiscKernel[NumDiscSamples] = + { + float3(0.62463,0.54337,0.82790), + float3(-0.13414,-0.94488,0.95435), + float3(0.38772,-0.43475,0.58253), + float3(0.12126,-0.19282,0.22778), + float3(-0.20388,0.11133,0.23230), + float3(0.83114,-0.29218,0.88100), + float3(0.10759,-0.57839,0.58831), + float3(0.28285,0.79036,0.83945), + float3(-0.36622,0.39516,0.53876), + float3(0.75591,0.21916,0.78704), + float3(-0.52610,0.02386,0.52664), + float3(-0.88216,-0.24471,0.91547), + float3(-0.48888,-0.29330,0.57011), + float3(0.44014,-0.08558,0.44838), + float3(0.21179,0.51373,0.55567), + float3(0.05483,0.95701,0.95858), + float3(-0.59001,-0.70509,0.91938), + float3(-0.80065,0.24631,0.83768), + float3(-0.19424,-0.18402,0.26757), + float3(-0.43667,0.76751,0.88304), + float3(0.21666,0.11602,0.24577), + float3(0.15696,-0.85600,0.87027), + float3(-0.75821,0.58363,0.95682), + float3(0.99284,-0.02904,0.99327), + float3(-0.22234,-0.57907,0.62029), + float3(0.55052,-0.66984,0.86704), + float3(0.46431,0.28115,0.54280), + float3(-0.07214,0.60554,0.60982), + }; + + float4 fragBlurInsaneMQ (v2f i) : SV_Target + { + float4 centerTap = tex2D(_MainTex, i.uv1.xy); + float4 sum = centerTap; + float4 poissonScale = _MainTex_TexelSize.xyxy * centerTap.a * _Offsets.w; + + float sampleCount = max(centerTap.a * 0.25, _Offsets.z); // <- weighing with 0.25 looks nicer for small high freq spec + sum *= sampleCount; + + float weights = 0; + + for(int l=0; l < NumDiscSamples; l++) + { + float2 sampleUV = i.uv1.xy + DiscKernel[l].xy * poissonScale.xy; + float4 sample0 = tex2D(_MainTex, sampleUV.xy); + + if( sample0.a > 0.0 ) + { + weights = BokehWeightDisc(sample0, DiscKernel[l].z, centerTap); + sum += sample0 * weights; + sampleCount += weights; + } + } + + float4 returnValue = sum / sampleCount; + returnValue.a = centerTap.a; + + return returnValue; + } + + float4 fragBlurInsaneHQ (v2f i) : SV_Target + { + float4 centerTap = tex2D(_MainTex, i.uv1.xy); + float4 sum = centerTap; + float4 poissonScale = _MainTex_TexelSize.xyxy * centerTap.a * _Offsets.w; + + float sampleCount = max(centerTap.a * 0.25, _Offsets.z); // <- weighing with 0.25 looks nicer for small high freq spec + sum *= sampleCount; + + float2 weights = 0; + + for(int l=0; l < NumDiscSamples; l++) + { + float4 sampleUV = i.uv1.xyxy + DiscKernel[l].xyxy * poissonScale.xyxy / float4(1.2,1.2,DiscKernel[l].zz); + + float4 sample0 = tex2D(_MainTex, sampleUV.xy); + float4 sample1 = tex2D(_MainTex, sampleUV.zw); + + if( (sample0.a + sample1.a) > 0.0 ) + { + weights = BokehWeightDisc2(sample0, sample1, float2(DiscKernel[l].z/1.2, 1.0), centerTap); + sum += sample0 * weights.x + sample1 * weights.y; + sampleCount += dot(weights, 1); + } + } + + float4 returnValue = sum / sampleCount; + returnValue.a = centerTap.a; + + return returnValue; + } + + inline float4 BlendLowWithHighHQ(float coc, float4 low, float4 high) + { + float blend = smoothstep(0.65,0.85, coc); + return lerp(low, high, blend); + } + + inline float4 BlendLowWithHighMQ(float coc, float4 low, float4 high) + { + float blend = smoothstep(0.4,0.6, coc); + return lerp(low, high, blend); + } + + float4 fragBlurUpsampleCombineHQ (v2f i) : SV_Target + { + float4 bigBlur = tex2D(_LowRez, i.uv1.xy); + float4 centerTap = tex2D(_MainTex, i.uv1.xy); + + float4 smallBlur = centerTap; + float4 poissonScale = _MainTex_TexelSize.xyxy * centerTap.a * _Offsets.w ; + + float sampleCount = max(centerTap.a * 0.25, 0.1f); // <- weighing with 0.25 looks nicer for small high freq spec + smallBlur *= sampleCount; + + for(int l=0; l < NumDiscSamples; l++) + { + float2 sampleUV = i.uv1.xy + DiscKernel[l].xy * poissonScale.xy; + + float4 sample0 = tex2D(_MainTex, sampleUV); + float weight0 = BokehWeightDisc(sample0, DiscKernel[l].z, centerTap); + smallBlur += sample0 * weight0; sampleCount += weight0; + } + + smallBlur /= (sampleCount+1e-5f); + smallBlur = BlendLowWithHighHQ(centerTap.a, smallBlur, bigBlur); + + return centerTap.a < 1e-2f ? centerTap : float4(smallBlur.rgb,centerTap.a); + } + + float4 fragBlurUpsampleCombineMQ (v2f i) : SV_Target + { + float4 bigBlur = tex2D(_LowRez, i.uv1.xy); + float4 centerTap = tex2D(_MainTex, i.uv1.xy); + + float4 smallBlur = centerTap; + float4 poissonScale = _MainTex_TexelSize.xyxy * centerTap.a * _Offsets.w ; + + float sampleCount = max(centerTap.a * 0.25, 0.1f); // <- weighing with 0.25 looks nicer for small high freq spec + smallBlur *= sampleCount; + + for(int l=0; l < SmallDiscKernelSamples; l++) + { + float2 sampleUV = i.uv1.xy + SmallDiscKernel[l].xy * poissonScale.xy*1.1; + + float4 sample0 = tex2D(_MainTex, sampleUV); + float weight0 = BokehWeightDisc(sample0, length(SmallDiscKernel[l].xy*1.1), centerTap); + smallBlur += sample0 * weight0; sampleCount += weight0; + } + + smallBlur /= (sampleCount+1e-5f); + + smallBlur = BlendLowWithHighMQ(centerTap.a, smallBlur, bigBlur); + + return centerTap.a < 1e-2f ? centerTap : float4(smallBlur.rgb,centerTap.a); + } + + float4 fragBlurUpsampleCheap (v2f i) : SV_Target + { + float4 centerTap = tex2D(_MainTex, i.uv1.xy); + float4 bigBlur = tex2D(_LowRez, i.uv1.xy); + + float fgCoc = tex2D(_FgOverlap, i.uv1.xy).a; + float4 smallBlur = lerp(centerTap, bigBlur, saturate( max(centerTap.a,fgCoc)*8.0 )); + + return float4(smallBlur.rgb, centerTap.a); + } + + float4 fragBlurBox (v2f i) : SV_Target + { + const int TAPS = 12; + + float4 centerTap = tex2D(_MainTex, i.uv1.xy); + + // TODO: important ? breaks when HR blur is being used + //centerTap.a = max(centerTap.a, 0.1f); + + float sampleCount = centerTap.a; + float4 sum = centerTap * sampleCount; + + float2 lenStep = centerTap.aa * (1.0 / (TAPS-1.0)); + float4 steps = (_Offsets.xyxy * _MainTex_TexelSize.xyxy) * lenStep.xyxy * float4(1,1, -1,-1); + + for(int l=1; l 1e-5f) outColor.rgb = color.rgb/sumWeights; + + return outColor; + } + + float4 fragCaptureColorAndSignedCoc (v2f i) : SV_Target + { + float4 color = tex2D (_MainTex, i.uv1.xy); + float d = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.uv1.xy); + d = Linear01Depth (d); + color.a = _CurveParams.z * abs(d - _CurveParams.w) / (d + 1e-5f); + color.a = clamp( max(0.0, color.a - _CurveParams.y), 0.0, _CurveParams.x) * sign(d - _CurveParams.w); + + return color; + } + + float4 fragCaptureCoc (v2f i) : SV_Target + { + float4 color = float4(0,0,0,0); //tex2D (_MainTex, i.uv1.xy); + float d = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.uv1.xy); + d = Linear01Depth (d); + color.a = _CurveParams.z * abs(d - _CurveParams.w) / (d + 1e-5f); + color.a = clamp( max(0.0, color.a - _CurveParams.y), 0.0, _CurveParams.x); + + return color; + } + + float4 AddFgCoc (v2f i) : SV_Target + { + return tex2D (_MainTex, i.uv1.xy); + } + + float4 fragMergeCoc (v2f i) : SV_Target + { + float4 color = tex2D (_FgOverlap, i.uv.xy); // this is the foreground overlap value + float fgCoc = color.a; + + float d = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.uv1.xy); + d = Linear01Depth (d); + color.a = _CurveParams.z * abs(d - _CurveParams.w) / (d + 1e-5f); + color.a = clamp( max(0.0, color.a - _CurveParams.y), 0.0, _CurveParams.x); + + return max(color.aaaa, float4(fgCoc,fgCoc,fgCoc,fgCoc)); + } + + float4 fragCombineCocWithMaskBlur (v2f i) : SV_Target + { + float bgAndFgCoc = tex2D (_MainTex, i.uv1.xy).a; + float fgOverlapCoc = tex2D (_FgOverlap, i.uv1.xy).a; + + return (bgAndFgCoc < 0.01) * saturate(fgOverlapCoc-bgAndFgCoc); + } + + float4 fragCaptureForegroundCoc (v2f i) : SV_Target + { + float4 color = float4(0,0,0,0); //tex2D (_MainTex, i.uv1.xy); + float d = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.uv1.xy); + d = Linear01Depth (d); + color.a = _CurveParams.z * (_CurveParams.w-d) / (d + 1e-5f); + color.a = clamp(max(0.0, color.a - _CurveParams.y), 0.0, _CurveParams.x); + + return color; + } + + float4 fragCaptureForegroundCocMask (v2f i) : SV_Target + { + float4 color = float4(0,0,0,0); + float d = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.uv1.xy); + d = Linear01Depth (d); + color.a = _CurveParams.z * (_CurveParams.w-d) / (d + 1e-5f); + color.a = clamp(max(0.0, color.a - _CurveParams.y), 0.0, _CurveParams.x); + + return color.a > 0; + } + + float4 fragBlendInHighRez (v2f i) : SV_Target + { + float4 tapHighRez = tex2D(_MainTex, i.uv.xy); + return float4(tapHighRez.rgb, 1.0-saturate(tapHighRez.a*5.0)); + } + + float4 fragBlendInLowRezParts (v2f i) : SV_Target + { + float4 from = tex2D(_MainTex, i.uv1.xy); + from.a = saturate(from.a * _Offsets.w) / (_CurveParams.x + 1e-5f); + float square = from.a * from.a; + from.a = square * square * _CurveParams.x; + return from; + } + + float4 fragUpsampleWithAlphaMask(v2f i) : SV_Target + { + float4 c = tex2D(_MainTex, i.uv1.xy); + return c; + } + + float4 fragAlphaMask(v2f i) : SV_Target + { + float4 c = tex2D(_MainTex, i.uv1.xy); + c.a = saturate(c.a*100.0); + return c; + } + + ENDCG + +Subshader +{ + + // pass 0 + + Pass { + ZTest Always Cull Off ZWrite Off + ColorMask A + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vert + #pragma fragment fragCaptureCoc + + ENDCG + } + + // pass 1 + + Pass + { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vertBlurPlusMinus + #pragma fragment fragGaussBlur + + ENDCG + } + + // pass 2 + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vertBlurPlusMinus + #pragma fragment fragBlurForFgCoc + + ENDCG + } + + + // pass 3 + + Pass + { + ZTest Always Cull Off ZWrite Off + ColorMask A + BlendOp Max, Max + Blend One One, One One + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vert + #pragma fragment AddFgCoc + + ENDCG + } + + + // pass 4 + + Pass + { + ZTest Always Cull Off ZWrite Off + ColorMask A + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vert + #pragma fragment fragCaptureForegroundCoc + + ENDCG + } + + // pass 5 + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vert + #pragma fragment fragBlurBox + + ENDCG + } + + // pass 6 + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vert + #pragma fragment frag4TapBlurForLRSpawn + + ENDCG + } + + // pass 7 + + Pass { + ZTest Always Cull Off ZWrite Off + ColorMask RGB + Blend SrcAlpha OneMinusSrcAlpha + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vert + #pragma fragment fragBlendInHighRez + + ENDCG + } + + // pass 8 + + Pass + { + ZTest Always Cull Off ZWrite Off + ColorMask A + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vert + #pragma fragment fragCaptureForegroundCocMask + + ENDCG + } + + + // pass 9 + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vert + #pragma fragment fragBlurUpsampleCheap + + ENDCG + } + + // pass 10 + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vert + #pragma fragment fragCaptureColorAndSignedCoc + + ENDCG + } + + // pass 11 + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vert + #pragma fragment fragBlurInsaneMQ + + ENDCG + } + + // pass 12 + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vert + #pragma fragment fragBlurUpsampleCombineMQ + + ENDCG + } + + // pass 13 + Pass { + ZTest Always Cull Off ZWrite Off + + ColorMask A + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vert + #pragma fragment fragMergeCoc + + ENDCG + } + + // pass 14 + + Pass { + ZTest Always Cull Off ZWrite Off + + ColorMask A + BlendOp Max, Max + Blend One One, One One + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vert + #pragma fragment fragCombineCocWithMaskBlur + + ENDCG + } + + // pass 15 + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vert + #pragma fragment fragBoxDownsample + + ENDCG + } + + // pass 16 + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vert + #pragma fragment fragVisualize + + ENDCG + } + + // pass 17 + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vert + #pragma fragment fragBlurInsaneHQ + + ENDCG + } + + // pass 18 + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vert + #pragma fragment fragBlurUpsampleCombineHQ + + ENDCG + } + + // pass 19 + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vertBlurPlusMinus + #pragma fragment fragBlurAlphaWeighted + + ENDCG + } + + // pass 20 + + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vert + #pragma fragment fragAlphaMask + + ENDCG + } + + // pass 21 + + Pass { + ZTest Always Cull Off ZWrite Off + + BlendOp Add, Add + Blend DstAlpha OneMinusDstAlpha, Zero One + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vertFlip + #pragma fragment fragBlurBox + + ENDCG + } + + // pass 22 + + Pass { + ZTest Always Cull Off ZWrite Off + + // destination alpha needs to stay intact as we have layed alpha before + BlendOp Add, Add + Blend DstAlpha One, Zero One + + CGPROGRAM + + #pragma target 3.0 + #pragma vertex vert + #pragma fragment fragUpsampleWithAlphaMask + + ENDCG + } +} + +Fallback off + +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldScatter.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldScatter.shader.meta new file mode 100644 index 0000000..b38c974 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldScatter.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: acd613035ff3e455e8abf23fdc8c8c24 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableBlur.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableBlur.shader new file mode 100644 index 0000000..2ffca4b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableBlur.shader @@ -0,0 +1,68 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/SeparableBlur" { + Properties { + _MainTex ("Base (RGB)", 2D) = "" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + + float4 uv01 : TEXCOORD1; + float4 uv23 : TEXCOORD2; + float4 uv45 : TEXCOORD3; + }; + + float4 offsets; + + sampler2D _MainTex; + + v2f vert (appdata_img v) { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + + o.uv.xy = v.texcoord.xy; + + o.uv01 = v.texcoord.xyxy + offsets.xyxy * float4(1,1, -1,-1); + o.uv23 = v.texcoord.xyxy + offsets.xyxy * float4(1,1, -1,-1) * 2.0; + o.uv45 = v.texcoord.xyxy + offsets.xyxy * float4(1,1, -1,-1) * 3.0; + + return o; + } + + half4 frag (v2f i) : SV_Target { + half4 color = float4 (0,0,0,0); + + color += 0.40 * tex2D (_MainTex, i.uv); + color += 0.15 * tex2D (_MainTex, i.uv01.xy); + color += 0.15 * tex2D (_MainTex, i.uv01.zw); + color += 0.10 * tex2D (_MainTex, i.uv23.xy); + color += 0.10 * tex2D (_MainTex, i.uv23.zw); + color += 0.05 * tex2D (_MainTex, i.uv45.xy); + color += 0.05 * tex2D (_MainTex, i.uv45.zw); + + return color; + } + + ENDCG + +Subshader { + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + ENDCG + } +} + +Fallback off + + +} // shader diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableBlur.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableBlur.shader.meta new file mode 100644 index 0000000..b9f6a84 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableBlur.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: e97c14fbb5ea04c3a902cc533d7fc5d1 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableWeightedBlurDof34.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableWeightedBlurDof34.shader new file mode 100644 index 0000000..e04f4ee --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableWeightedBlurDof34.shader @@ -0,0 +1,244 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Hidden/SeparableWeightedBlurDof34" { + Properties { + _MainTex ("Base (RGB)", 2D) = "" {} + _TapMedium ("TapMedium (RGB)", 2D) = "" {} + _TapLow ("TapLow (RGB)", 2D) = "" {} + _TapHigh ("TapHigh (RGB)", 2D) = "" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + half4 offsets; + half4 _Threshhold; + sampler2D _MainTex; + sampler2D _TapHigh; + + struct v2f { + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + half4 uv01 : TEXCOORD1; + half4 uv23 : TEXCOORD2; + half4 uv45 : TEXCOORD3; + }; + + struct v2fSingle { + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + }; + + // + // VERT PROGRAMS + // + + v2f vert (appdata_img v) { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv.xy = v.texcoord.xy; + o.uv01 = v.texcoord.xyxy + offsets.xyxy * half4(1,1, -1,-1); + o.uv23 = v.texcoord.xyxy + offsets.xyxy * half4(1,1, -1,-1) * 2.0; + o.uv45 = v.texcoord.xyxy + offsets.xyxy * half4(1,1, -1,-1) * 3.0; + + return o; + } + + v2fSingle vertSingleTex (appdata_img v) { + v2fSingle o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv.xy = v.texcoord.xy; + return o; + } + + // + // FRAG PROGRAMS + // + + // mostly used for foreground, so more gaussian-like + + half4 fragBlurUnweighted (v2f i) : SV_Target { + half4 blurredColor = half4 (0,0,0,0); + + half4 sampleA = tex2D(_MainTex, i.uv.xy); + half4 sampleB = tex2D(_MainTex, i.uv01.xy); + half4 sampleC = tex2D(_MainTex, i.uv01.zw); + half4 sampleD = tex2D(_MainTex, i.uv23.xy); + half4 sampleE = tex2D(_MainTex, i.uv23.zw); + + blurredColor += sampleA; + blurredColor += sampleB; + blurredColor += sampleC; + blurredColor += sampleD; + blurredColor += sampleE; + + blurredColor *= 0.2; + + blurredColor.a = max(UNITY_SAMPLE_1CHANNEL(_TapHigh, i.uv.xy), blurredColor.a); + + return blurredColor; + } + + // used for background, so more bone curve-like + + half4 fragBlurWeighted (v2f i) : SV_Target { + half4 blurredColor = half4 (0,0,0,0); + + half4 sampleA = tex2D(_MainTex, i.uv.xy); + half4 sampleB = tex2D(_MainTex, i.uv01.xy); + half4 sampleC = tex2D(_MainTex, i.uv01.zw); + half4 sampleD = tex2D(_MainTex, i.uv23.xy); + half4 sampleE = tex2D(_MainTex, i.uv23.zw); + + half sum = sampleA.a + dot (half4 (1.25, 1.25, 1.5, 1.5), half4 (sampleB.a,sampleC.a,sampleD.a,sampleE.a)); + + sampleA.rgb = sampleA.rgb * sampleA.a; + sampleB.rgb = sampleB.rgb * sampleB.a * 1.25; + sampleC.rgb = sampleC.rgb * sampleC.a * 1.25; + sampleD.rgb = sampleD.rgb * sampleD.a * 1.5; + sampleE.rgb = sampleE.rgb * sampleE.a * 1.5; + + blurredColor += sampleA; + blurredColor += sampleB; + blurredColor += sampleC; + blurredColor += sampleD; + blurredColor += sampleE; + + blurredColor /= sum; + half4 color = blurredColor; + + color.a = sampleA.a; + + return color; + } + + half4 fragBlurDark (v2f i) : SV_Target { + half4 blurredColor = half4 (0,0,0,0); + + half4 sampleA = tex2D(_MainTex, i.uv.xy); + half4 sampleB = tex2D(_MainTex, i.uv01.xy); + half4 sampleC = tex2D(_MainTex, i.uv01.zw); + half4 sampleD = tex2D(_MainTex, i.uv23.xy); + half4 sampleE = tex2D(_MainTex, i.uv23.zw); + + half sum = sampleA.a + dot (half4 (0.75, 0.75, 0.5, 0.5), half4 (sampleB.a,sampleC.a,sampleD.a,sampleE.a)); + + sampleA.rgb = sampleA.rgb * sampleA.a; + sampleB.rgb = sampleB.rgb * sampleB.a * 0.75; + sampleC.rgb = sampleC.rgb * sampleC.a * 0.75; + sampleD.rgb = sampleD.rgb * sampleD.a * 0.5; + sampleE.rgb = sampleE.rgb * sampleE.a * 0.5; + + blurredColor += sampleA; + blurredColor += sampleB; + blurredColor += sampleC; + blurredColor += sampleD; + blurredColor += sampleE; + + blurredColor /= sum; + half4 color = blurredColor; + + color.a = sampleA.a; + + return color; + } + + // not used atm + + half4 fragBlurUnweightedDark (v2f i) : SV_Target { + half4 blurredColor = half4 (0,0,0,0); + + half4 sampleA = tex2D(_MainTex, i.uv.xy); + half4 sampleB = tex2D(_MainTex, i.uv01.xy); + half4 sampleC = tex2D(_MainTex, i.uv01.zw); + half4 sampleD = tex2D(_MainTex, i.uv23.xy); + half4 sampleE = tex2D(_MainTex, i.uv23.zw); + + blurredColor += sampleA; + blurredColor += sampleB * 0.75; + blurredColor += sampleC * 0.75; + blurredColor += sampleD * 0.5; + blurredColor += sampleE * 0.5; + + blurredColor /= 3.5; + + blurredColor.a = max(UNITY_SAMPLE_1CHANNEL(_TapHigh, i.uv.xy), blurredColor.a); + + return blurredColor; + } + + // fragMixMediumAndLowTap + // happens before applying final coc/blur result to screen, + // mixes defocus buffers of different resolutions / bluriness + + sampler2D _TapMedium; + sampler2D _TapLow; + + half4 fragMixMediumAndLowTap (v2fSingle i) : SV_Target + { + half4 tapMedium = tex2D (_TapMedium, i.uv.xy); + half4 tapLow = tex2D (_TapLow, i.uv.xy); + tapMedium.a *= tapMedium.a; + + tapLow.rgb = lerp (tapMedium.rgb, tapLow.rgb, (tapMedium.a * tapMedium.a)); + return tapLow; + } + + ENDCG + +Subshader { + ZTest Always Cull Off ZWrite Off + + Pass { + + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragBlurWeighted + + ENDCG + } + Pass { + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragBlurUnweighted + + ENDCG + } + + // 2 + + Pass { + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragBlurUnweightedDark + + ENDCG + } + Pass { + CGPROGRAM + + #pragma vertex vertSingleTex + #pragma fragment fragMixMediumAndLowTap + + ENDCG + } + + // 4 + + Pass { + CGPROGRAM + + #pragma vertex vert + #pragma fragment fragBlurDark + + ENDCG + } +} + +Fallback off + +} // shader diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableWeightedBlurDof34.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableWeightedBlurDof34.shader.meta new file mode 100644 index 0000000..2fae7fc --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableWeightedBlurDof34.shader.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: bb4af680337344a4abad65a4e8873c50 +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/TiltShiftHdrLensBlur.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/TiltShiftHdrLensBlur.shader new file mode 100644 index 0000000..73e8876 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/TiltShiftHdrLensBlur.shader @@ -0,0 +1,311 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + + + Shader "Hidden/Dof/TiltShiftHdrLensBlur" { + Properties { + _MainTex ("-", 2D) = "" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + struct v2f + { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float2 uv1 : TEXCOORD1; + }; + + sampler2D _MainTex; + sampler2D _Blurred; + + float4 _MainTex_TexelSize; + float _BlurSize; + float _BlurArea; + + #ifdef SHADER_API_D3D11 + #define SAMPLE_TEX(sampler, uv) tex2Dlod(sampler, float4(uv,0,1)) + #else + #define SAMPLE_TEX(sampler, uv) tex2D(sampler, uv) + #endif + + v2f vert (appdata_img v) + { + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + o.uv.xy = v.texcoord; + o.uv1.xy = v.texcoord; + + #if UNITY_UV_STARTS_AT_TOP + if (_MainTex_TexelSize.y < 0) + o.uv1.y = 1-o.uv1.y; + #else + + #endif + + return o; + } + + static const int SmallDiscKernelSamples = 12; + static const float2 SmallDiscKernel[SmallDiscKernelSamples] = + { + float2(-0.326212,-0.40581), + float2(-0.840144,-0.07358), + float2(-0.695914,0.457137), + float2(-0.203345,0.620716), + float2(0.96234,-0.194983), + float2(0.473434,-0.480026), + float2(0.519456,0.767022), + float2(0.185461,-0.893124), + float2(0.507431,0.064425), + float2(0.89642,0.412458), + float2(-0.32194,-0.932615), + float2(-0.791559,-0.59771) + }; + + static const int NumDiscSamples = 28; + static const float3 DiscKernel[NumDiscSamples] = + { + float3(0.62463,0.54337,0.82790), + float3(-0.13414,-0.94488,0.95435), + float3(0.38772,-0.43475,0.58253), + float3(0.12126,-0.19282,0.22778), + float3(-0.20388,0.11133,0.23230), + float3(0.83114,-0.29218,0.88100), + float3(0.10759,-0.57839,0.58831), + float3(0.28285,0.79036,0.83945), + float3(-0.36622,0.39516,0.53876), + float3(0.75591,0.21916,0.78704), + float3(-0.52610,0.02386,0.52664), + float3(-0.88216,-0.24471,0.91547), + float3(-0.48888,-0.29330,0.57011), + float3(0.44014,-0.08558,0.44838), + float3(0.21179,0.51373,0.55567), + float3(0.05483,0.95701,0.95858), + float3(-0.59001,-0.70509,0.91938), + float3(-0.80065,0.24631,0.83768), + float3(-0.19424,-0.18402,0.26757), + float3(-0.43667,0.76751,0.88304), + float3(0.21666,0.11602,0.24577), + float3(0.15696,-0.85600,0.87027), + float3(-0.75821,0.58363,0.95682), + float3(0.99284,-0.02904,0.99327), + float3(-0.22234,-0.57907,0.62029), + float3(0.55052,-0.66984,0.86704), + float3(0.46431,0.28115,0.54280), + float3(-0.07214,0.60554,0.60982), + }; + + float WeightFieldMode (float2 uv) + { + float2 tapCoord = uv*2.0-1.0; + return (abs(tapCoord.y * _BlurArea)); + } + + float WeightIrisMode (float2 uv) + { + float2 tapCoord = (uv*2.0-1.0); + return dot(tapCoord, tapCoord) * _BlurArea; + } + + float4 fragIrisPreview (v2f i) : SV_Target + { + return WeightIrisMode(i.uv.xy) * 0.5; + } + + float4 fragFieldPreview (v2f i) : SV_Target + { + return WeightFieldMode(i.uv.xy) * 0.5; + } + + float4 fragUpsample (v2f i) : SV_Target + { + float4 blurred = tex2D(_Blurred, i.uv1.xy); + float4 frame = tex2D(_MainTex, i.uv.xy); + + return lerp(frame, blurred, saturate(blurred.a)); + } + + float4 fragIris (v2f i) : SV_Target + { + float4 centerTap = tex2D(_MainTex, i.uv.xy); + float4 sum = centerTap; + + float w = clamp(WeightIrisMode(i.uv.xy), 0, _BlurSize); + + float4 poissonScale = _MainTex_TexelSize.xyxy * w; + + #ifndef SHADER_API_D3D9 + if(w<1e-2f) + return sum; + #endif + + for(int l=0; l _Params.y) { + // This sample occludes, contribute to occlusion + occ += pow(1-zd,_Params.z); // sc2 + //occ += 1.0-saturate(pow(1.0 - zd, 11.0) + zd); // nullsq + //occ += 1.0/(1.0+zd*zd*10); // iq + } + } + occ /= sampleCount; + return 1-occ; +} + diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/frag_ao.cginc.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/frag_ao.cginc.meta new file mode 100644 index 0000000..604d5f5 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Shaders/frag_ao.cginc.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 51ae11a5cd82fda468a85179946d672a +ShaderImporter: + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures.meta new file mode 100644 index 0000000..f926ce3 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: f9372f23586ef470b97d53856af88487 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/ContrastEnhanced3D16.png b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/ContrastEnhanced3D16.png new file mode 100644 index 0000000..c112c75 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/ContrastEnhanced3D16.png differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/ContrastEnhanced3D16.png.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/ContrastEnhanced3D16.png.meta new file mode 100644 index 0000000..37553ce --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/ContrastEnhanced3D16.png.meta @@ -0,0 +1,35 @@ +fileFormatVersion: 2 +guid: ecd9a2c463dcb476891e43d7c9f16ffa +TextureImporter: + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + textureType: 5 + buildTargetSettings: [] + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/HexShape.psd b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/HexShape.psd new file mode 100644 index 0000000..eef48cb Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/HexShape.psd differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/HexShape.psd.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/HexShape.psd.meta new file mode 100644 index 0000000..fec782b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/HexShape.psd.meta @@ -0,0 +1,35 @@ +fileFormatVersion: 2 +guid: a4cdca73d61814d33ac1587f6c163bca +TextureImporter: + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 64 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + textureType: -1 + buildTargetSettings: [] + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/MotionBlurJitter.png b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/MotionBlurJitter.png new file mode 100644 index 0000000..a601a2e Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/MotionBlurJitter.png differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/MotionBlurJitter.png.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/MotionBlurJitter.png.meta new file mode 100644 index 0000000..2e825d5 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/MotionBlurJitter.png.meta @@ -0,0 +1,35 @@ +fileFormatVersion: 2 +guid: 31f5a8611c4ed1245b18456206e798dc +TextureImporter: + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 2 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: 3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + textureType: -1 + buildTargetSettings: [] + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/Neutral3D16.png b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/Neutral3D16.png new file mode 100644 index 0000000..fc0f026 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/Neutral3D16.png differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/Neutral3D16.png.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/Neutral3D16.png.meta new file mode 100644 index 0000000..43038ad --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/Neutral3D16.png.meta @@ -0,0 +1,35 @@ +fileFormatVersion: 2 +guid: a4b474cd484494a4aaa4bbf928219d09 +TextureImporter: + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + textureType: 5 + buildTargetSettings: [] + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/Noise.png b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/Noise.png new file mode 100644 index 0000000..a601a2e Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/Noise.png differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/Noise.png.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/Noise.png.meta new file mode 100644 index 0000000..b48fd5f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/Noise.png.meta @@ -0,0 +1,35 @@ +fileFormatVersion: 2 +guid: e80c3c84ea861404d8a427db8b7abf04 +TextureImporter: + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 2 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: 3 + maxTextureSize: 64 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + textureType: -1 + buildTargetSettings: [] + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/NoiseAndGrain.png b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/NoiseAndGrain.png new file mode 100644 index 0000000..9faabd4 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/NoiseAndGrain.png differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/NoiseAndGrain.png.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/NoiseAndGrain.png.meta new file mode 100644 index 0000000..387edde --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/NoiseAndGrain.png.meta @@ -0,0 +1,35 @@ +fileFormatVersion: 2 +guid: 7a632f967e8ad42f5bd275898151ab6a +TextureImporter: + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 1 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 64 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + textureType: 5 + buildTargetSettings: [] + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectGrain.png b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectGrain.png new file mode 100644 index 0000000..ba027b4 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectGrain.png differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectGrain.png.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectGrain.png.meta new file mode 100644 index 0000000..47510da --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectGrain.png.meta @@ -0,0 +1,35 @@ +fileFormatVersion: 2 +guid: ffa9c02760c2b4e8eb9814ec06c4b05b +TextureImporter: + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 2 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: 3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapMode: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + textureType: -1 + buildTargetSettings: [] + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectScratch.png b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectScratch.png new file mode 100644 index 0000000..6ac0d53 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectScratch.png differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectScratch.png.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectScratch.png.meta new file mode 100644 index 0000000..3d3e680 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectScratch.png.meta @@ -0,0 +1,35 @@ +fileFormatVersion: 2 +guid: 6205c27cc031f4e66b8ea90d1bfaa158 +TextureImporter: + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 2 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapMode: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + textureType: 0 + buildTargetSettings: [] + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/RandomVectors.png b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/RandomVectors.png new file mode 100644 index 0000000..a601a2e Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/RandomVectors.png differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/RandomVectors.png.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/RandomVectors.png.meta new file mode 100644 index 0000000..3c35afc --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/RandomVectors.png.meta @@ -0,0 +1,35 @@ +fileFormatVersion: 2 +guid: a181ca8e3c62f3e4b8f183f6c586b032 +TextureImporter: + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 2 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: 3 + maxTextureSize: 1024 + textureSettings: + filterMode: 0 + aniso: 1 + mipBias: -1 + wrapMode: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + textureType: -1 + buildTargetSettings: [] + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/SphereShape.psd b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/SphereShape.psd new file mode 100644 index 0000000..a100649 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/SphereShape.psd differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/SphereShape.psd.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/SphereShape.psd.meta new file mode 100644 index 0000000..159ca4d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/SphereShape.psd.meta @@ -0,0 +1,35 @@ +fileFormatVersion: 2 +guid: fc00ec05a89da4ff695a4273715cd5ce +TextureImporter: + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 64 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + textureType: -1 + buildTargetSettings: [] + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/VignetteMask.png b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/VignetteMask.png new file mode 100644 index 0000000..3048937 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/VignetteMask.png differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/VignetteMask.png.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/VignetteMask.png.meta new file mode 100644 index 0000000..1764d4c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/VignetteMask.png.meta @@ -0,0 +1,35 @@ +fileFormatVersion: 2 +guid: 95ef4804fe0be4c999ddaa383536cde8 +TextureImporter: + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapMode: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + textureType: -1 + buildTargetSettings: [] + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/color correction ramp.png b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/color correction ramp.png new file mode 100644 index 0000000..328251e Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/color correction ramp.png differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/color correction ramp.png.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/color correction ramp.png.meta new file mode 100644 index 0000000..be398a0 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/color correction ramp.png.meta @@ -0,0 +1,35 @@ +fileFormatVersion: 2 +guid: d440902fad11e807d00044888d76c639 +TextureImporter: + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 2 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + textureType: -1 + buildTargetSettings: [] + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/grayscale ramp.png b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/grayscale ramp.png new file mode 100644 index 0000000..328251e Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/grayscale ramp.png differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/grayscale ramp.png.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/grayscale ramp.png.meta new file mode 100644 index 0000000..395fa26 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ImageEffects/Textures/grayscale ramp.png.meta @@ -0,0 +1,35 @@ +fileFormatVersion: 2 +guid: e9a9781cad112c75d0008dfa8d76c639 +TextureImporter: + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 2 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: 3 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + textureType: -1 + buildTargetSettings: [] + userData: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies.meta new file mode 100644 index 0000000..6532c9f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 794a3489a6afd4daf80d98a5844341b9 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures.meta new file mode 100644 index 0000000..390b335 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: e1ec4045399060440949afafba4d144f +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/FlashlightCookie.tif b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/FlashlightCookie.tif new file mode 100644 index 0000000..51b202f Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/FlashlightCookie.tif differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/FlashlightCookie.tif.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/FlashlightCookie.tif.meta new file mode 100644 index 0000000..a2827a5 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/FlashlightCookie.tif.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 2c29c08dd1c0b6749b7cd0fcff7a29fd +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 1 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapMode: 1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 5 + buildTargetSettings: + - buildTarget: iPhone + maxTextureSize: 128 + textureFormat: 33 + compressionQuality: 50 + - buildTarget: Android + maxTextureSize: 128 + textureFormat: 13 + compressionQuality: 50 + - buildTarget: BlackBerry + maxTextureSize: 128 + textureFormat: 13 + compressionQuality: 50 + - buildTarget: WP8 + maxTextureSize: 128 + textureFormat: 12 + compressionQuality: 50 + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/FlashlightIrregularCookie.tif b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/FlashlightIrregularCookie.tif new file mode 100644 index 0000000..889ae62 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/FlashlightIrregularCookie.tif differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/FlashlightIrregularCookie.tif.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/FlashlightIrregularCookie.tif.meta new file mode 100644 index 0000000..08f1c37 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/FlashlightIrregularCookie.tif.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 641bb2dce818a8a499b537a1963889ac +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 1 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapMode: 1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 5 + buildTargetSettings: + - buildTarget: iPhone + maxTextureSize: 128 + textureFormat: 33 + compressionQuality: 50 + - buildTarget: Android + maxTextureSize: 128 + textureFormat: 13 + compressionQuality: 50 + - buildTarget: BlackBerry + maxTextureSize: 128 + textureFormat: 13 + compressionQuality: 50 + - buildTarget: WP8 + maxTextureSize: 128 + textureFormat: 12 + compressionQuality: 50 + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/LightHardCookie.psd b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/LightHardCookie.psd new file mode 100644 index 0000000..d6e8482 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/LightHardCookie.psd differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/LightHardCookie.psd.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/LightHardCookie.psd.meta new file mode 100644 index 0000000..3b05d85 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/LightHardCookie.psd.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 1167c0a28d11119930004d8a4241aa39 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 1 + mipMapFadeDistanceStart: 2 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .100000001 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 1 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapMode: 1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 5 + buildTargetSettings: + - buildTarget: iPhone + maxTextureSize: 128 + textureFormat: 33 + compressionQuality: 50 + - buildTarget: Android + maxTextureSize: 128 + textureFormat: 13 + compressionQuality: 50 + - buildTarget: BlackBerry + maxTextureSize: 128 + textureFormat: 13 + compressionQuality: 50 + - buildTarget: WP8 + maxTextureSize: 128 + textureFormat: 12 + compressionQuality: 50 + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/LightSoftCookie.tif b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/LightSoftCookie.tif new file mode 100644 index 0000000..73de099 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/LightSoftCookie.tif differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/LightSoftCookie.tif.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/LightSoftCookie.tif.meta new file mode 100644 index 0000000..0523129 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/LightSoftCookie.tif.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 8caa437b19957a045866b84c6218a0db +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 1 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapMode: 1 + nPOTScale: 1 + lightmap: 1 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 5 + buildTargetSettings: + - buildTarget: iPhone + maxTextureSize: 128 + textureFormat: 33 + compressionQuality: 50 + - buildTarget: Android + maxTextureSize: 128 + textureFormat: 13 + compressionQuality: 50 + - buildTarget: BlackBerry + maxTextureSize: 128 + textureFormat: 13 + compressionQuality: 50 + - buildTarget: WP8 + maxTextureSize: 128 + textureFormat: 12 + compressionQuality: 50 + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/LightSquareCookie.psd b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/LightSquareCookie.psd new file mode 100644 index 0000000..9187a26 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/LightSquareCookie.psd differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/LightSquareCookie.psd.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/LightSquareCookie.psd.meta new file mode 100644 index 0000000..c68c9bc --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightCookies/Textures/LightSquareCookie.psd.meta @@ -0,0 +1,52 @@ +fileFormatVersion: 2 +guid: 69680b688d11eb9d30009b3b4241aa39 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 1 + mipMapFadeDistanceStart: 2 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .100000001 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 1 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapMode: 1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 5 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares.meta new file mode 100644 index 0000000..43e9509 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: d8cfa4746d26d4715b9f848bce1e2f14 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Flares.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Flares.meta new file mode 100644 index 0000000..280056d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Flares.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 7e1763a5e42541841949e15a67b54589 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Flares/50mmZoom.flare b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Flares/50mmZoom.flare new file mode 100644 index 0000000..11c86bf --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Flares/50mmZoom.flare @@ -0,0 +1,167 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!121 &12100000 +Flare: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: 50mmZoom + m_FlareTexture: {fileID: 2800000, guid: 23a02ac18d11c9ffa0009c58a8ad6659, type: 3} + m_TextureLayout: 1 + m_Elements: + - m_ImageIndex: 9 + m_Position: 0 + m_Size: 50 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 1 + m_Fade: 1 + - m_ImageIndex: 0 + m_Position: 0 + m_Size: 50 + m_Color: {r: .0941176489, g: .0941176489, b: .0941176489, a: 1} + m_UseLightColor: 1 + m_Rotate: 1 + m_Zoom: 1 + m_Fade: 1 + - m_ImageIndex: 5 + m_Position: 0 + m_Size: 20 + m_Color: {r: .0313725509, g: .0196078438, b: .0196078438, a: 1} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 0 + m_Fade: 1 + - m_ImageIndex: 5 + m_Position: -.269999981 + m_Size: 36.3899994 + m_Color: {r: .0313725509, g: .0235294122, b: .0196078438, a: 1} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 0 + m_Fade: 1 + - m_ImageIndex: 5 + m_Position: -.74999994 + m_Size: 28.6899986 + m_Color: {r: .0196078438, g: .0156862754, b: .0117647061, a: 1} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 0 + m_Fade: 1 + - m_ImageIndex: 3 + m_Position: 0 + m_Size: 10.2500019 + m_Color: {r: .447058827, g: 0, b: .00784313772, a: 1} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 0 + m_Fade: 1 + - m_ImageIndex: 5 + m_Position: .435999811 + m_Size: 4.01399994 + m_Color: {r: .0117647061, g: .0235294122, b: .0392156877, a: 1} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 0 + m_Fade: 1 + - m_ImageIndex: 5 + m_Position: .335999876 + m_Size: 2.58999991 + m_Color: {r: .0352941193, g: .0235294122, b: .0784313753, a: 1} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 0 + m_Fade: 1 + - m_ImageIndex: 5 + m_Position: .390999913 + m_Size: 7.47000074 + m_Color: {r: .0156862754, g: .0235294122, b: .0392156877, a: 1} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 0 + m_Fade: 1 + - m_ImageIndex: 7 + m_Position: 1.5 + m_Size: 7.47000074 + m_Color: {r: .0941176489, g: .0588235296, b: 0, a: 1} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 0 + m_Fade: 1 + - m_ImageIndex: 5 + m_Position: 1.45300031 + m_Size: 4.44999361 + m_Color: {r: .0705882385, g: .0431372561, b: 0, a: 1} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 0 + m_Fade: 1 + - m_ImageIndex: 4 + m_Position: 1.28200161 + m_Size: 1.5 + m_Color: {r: .270588249, g: .819607854, b: .572549045, a: 1} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 0 + m_Fade: 1 + - m_ImageIndex: 6 + m_Position: 1.74200153 + m_Size: 2.76999307 + m_Color: {r: .156862751, g: .0784313753, b: .270588249, a: 1} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 0 + m_Fade: 1 + - m_ImageIndex: 5 + m_Position: 1.72300005 + m_Size: 2.76999283 + m_Color: {r: .0274509806, g: .0941176489, b: .0588235296, a: 1} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 0 + m_Fade: 1 + - m_ImageIndex: 5 + m_Position: 1.52300024 + m_Size: 2.12999368 + m_Color: {r: .0509803928, g: .0313725509, b: 0, a: 1} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 0 + m_Fade: 1 + - m_ImageIndex: 8 + m_Position: -.239000008 + m_Size: 4.5899992 + m_Color: {r: .188235298, g: .149019614, b: .0588235296, a: 1} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 0 + m_Fade: 1 + - m_ImageIndex: 2 + m_Position: 2.46099973 + m_Size: 25.9699974 + m_Color: {r: .164705887, g: .164705887, b: .164705887, a: 1} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 0 + m_Fade: 1 + - m_ImageIndex: 1 + m_Position: 2.1309998 + m_Size: 17.2099953 + m_Color: {r: .164705887, g: .164705887, b: .164705887, a: 1} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 0 + m_Fade: 1 + - m_ImageIndex: 5 + m_Position: .819999993 + m_Size: 2.65999603 + m_Color: {r: .0509803928, g: .0235294122, b: 0, a: 1} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 0 + m_Fade: 1 + m_UseFog: 1 +--- !u!1002 &12100001 +EditorExtensionImpl: + serializedVersion: 6 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Flares/50mmZoom.flare.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Flares/50mmZoom.flare.meta new file mode 100644 index 0000000..5833a8f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Flares/50mmZoom.flare.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 54fbbf098d116effa00081aba8ad6659 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Flares/FlareSmall.flare b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Flares/FlareSmall.flare new file mode 100644 index 0000000..87127b9 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Flares/FlareSmall.flare @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!121 &12100000 +Flare: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: FlareSmall + m_FlareTexture: {fileID: 2800000, guid: 51dc82ef9d11c594d000e7c9e39e7c39, type: 3} + m_TextureLayout: 0 + m_Elements: + - m_ImageIndex: 0 + m_Position: 0 + m_Size: 10 + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 0 + m_Fade: 1 + - m_ImageIndex: 2 + m_Position: 0 + m_Size: 40 + m_Color: {r: .248752579, g: .248752579, b: .248752579, a: 0} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 0 + m_Fade: 1 + m_UseFog: 1 +--- !u!1002 &12100001 +EditorExtensionImpl: + serializedVersion: 6 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Flares/FlareSmall.flare.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Flares/FlareSmall.flare.meta new file mode 100644 index 0000000..d5e8852 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Flares/FlareSmall.flare.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 9bdb18c49d114cb4300035184241aa39 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Flares/Sun.flare b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Flares/Sun.flare new file mode 100644 index 0000000..03b3f36 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Flares/Sun.flare @@ -0,0 +1,47 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!121 &12100000 +Flare: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Sun + m_FlareTexture: {fileID: 2800000, guid: 23a02ac18d11c9ffa0009c58a8ad6659, type: 3} + m_TextureLayout: 1 + m_Elements: + - m_ImageIndex: 9 + m_Position: 0 + m_Size: 50 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 1 + m_Fade: 1 + - m_ImageIndex: 0 + m_Position: 0 + m_Size: 50 + m_Color: {r: .0941176489, g: .0941176489, b: .0941176489, a: 1} + m_UseLightColor: 1 + m_Rotate: 1 + m_Zoom: 1 + m_Fade: 1 + - m_ImageIndex: 5 + m_Position: 0 + m_Size: 20 + m_Color: {r: .0313725509, g: .0196078438, b: .0196078438, a: 1} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 0 + m_Fade: 1 + - m_ImageIndex: 3 + m_Position: 0 + m_Size: 10.2500019 + m_Color: {r: .447058827, g: 0, b: .00784313772, a: 1} + m_UseLightColor: 1 + m_Rotate: 0 + m_Zoom: 0 + m_Fade: 1 + m_UseFog: 1 +--- !u!1002 &12100001 +EditorExtensionImpl: + serializedVersion: 6 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Flares/Sun.flare.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Flares/Sun.flare.meta new file mode 100644 index 0000000..9f7216c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Flares/Sun.flare.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 09ebe82dbd1113c3d000dc0b8d76c639 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Materials.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Materials.meta new file mode 100644 index 0000000..e9de76d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Materials.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 4ca8e16c3e0ab45e69aef7738ef77d3a +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Materials/Flare50mm.mat b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Materials/Flare50mm.mat new file mode 100644 index 0000000..075ff86 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Materials/Flare50mm.mat @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Flare50mm + m_Shader: {fileID: 101, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 23a02ac18d11c9ffa0009c58a8ad6659, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: {} + m_Colors: {} +--- !u!1002 &2100001 +EditorExtensionImpl: + serializedVersion: 6 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Materials/Flare50mm.mat.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Materials/Flare50mm.mat.meta new file mode 100644 index 0000000..44d291e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Materials/Flare50mm.mat.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: a6dbb96b9d112024d000e929e39e7c39 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Textures.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Textures.meta new file mode 100644 index 0000000..df48ade --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Textures.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 0a0517c8f07c047f2965315b8dac81aa +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Textures/Flare50mm.psd b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Textures/Flare50mm.psd new file mode 100644 index 0000000..4136f76 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Textures/Flare50mm.psd differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Textures/Flare50mm.psd.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Textures/Flare50mm.psd.meta new file mode 100644 index 0000000..68eed6c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Textures/Flare50mm.psd.meta @@ -0,0 +1,52 @@ +fileFormatVersion: 2 +guid: 23a02ac18d11c9ffa0009c58a8ad6659 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 2 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .100000001 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 512 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapMode: 0 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 0 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Textures/FlareStar.psd b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Textures/FlareStar.psd new file mode 100644 index 0000000..9c58963 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Textures/FlareStar.psd differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Textures/FlareStar.psd.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Textures/FlareStar.psd.meta new file mode 100644 index 0000000..aa8bd91 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/LightFlares/Textures/FlareStar.psd.meta @@ -0,0 +1,52 @@ +fileFormatVersion: 2 +guid: 51dc82ef9d11c594d000e7c9e39e7c39 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 2 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .100000001 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 256 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapMode: 0 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 0 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors.meta new file mode 100644 index 0000000..de692fb --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: ab90c5d984b4d4e9e935ae8760fd47ef +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Guidelines.txt b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Guidelines.txt new file mode 100644 index 0000000..5ee047c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Guidelines.txt @@ -0,0 +1,12 @@ +To use the Projector/Light and Projector/Shadow shaders properly: + +Cookie texture: + 1. Make sure texture wrap mode is set to "Clamp" + 2. Turn on "Border Mipmaps" option in import settings + 3. Use uncompressed texture format + 4. Projector/Shadow also requires alpha channel to be present (typically Alpha from Grayscale option is ok) + +Falloff texture (if present): + 1. Data needs to be in alpha channel, so typically Alpha8 texture format + 2. Make sure texture wrap mode is set to "Clamp" + 3. Make sure leftmost pixel column is black; and "Border mipmaps" import setting is on. diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Guidelines.txt.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Guidelines.txt.meta new file mode 100644 index 0000000..80f555c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Guidelines.txt.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: b238cc13e9896f04eb5e06978d2b393e +TextScriptImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Materials.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Materials.meta new file mode 100644 index 0000000..c7b7f04 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Materials.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 92722830d4a3f49e5bf7e68441337edb +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Materials/GridProjector.mat b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Materials/GridProjector.mat new file mode 100644 index 0000000..a70a795 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Materials/GridProjector.mat @@ -0,0 +1,122 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: GridProjector + m_Shader: {fileID: 4800000, guid: c0ace1ca4bc0718448acf798c93d52d9, type: 3} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ShadowTex + second: + m_Texture: {fileID: 2800000, guid: 529239097d02f9f42b0ddd436c6fcbb0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _FalloffTex + second: + m_Texture: {fileID: 2800000, guid: cc90a732ad112a541100162a44295342, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _CombineTex + second: + m_Texture: {fileID: 2800000, guid: 92b0a732ad112a541100162a44295342, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _HiliteTex + second: + m_Texture: {fileID: 2800000, guid: f7a0a732ad112a541100162a44295342, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: {} + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _TintColor + second: {r: .5, g: .5, b: .5, a: .5} + data: + first: + name: BumpMapScale + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _ProjectorClip_0 + second: {r: -.0154382316, g: -.0258666929, b: .144606143, a: .293609738} + data: + first: + name: _ProjectorClip_1 + second: {r: .0047582523, g: .145238146, b: .0264877379, a: .00306412578} + data: + first: + name: _ProjectorClip_2 + second: {r: -.0154382316, g: -.0258666929, b: .144606143, a: .293609738} + data: + first: + name: _ProjectorClip_3 + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _ProjectorDistance_0 + second: {r: -.0152135147, g: -.0254901797, b: .142501265, a: .303891957} + data: + first: + name: _ProjectorDistance_1 + second: {r: .00468899123, g: .143124074, b: .0261021852, a: .0175754428} + data: + first: + name: _ProjectorDistance_2 + second: {r: -.0152135147, g: -.0254901797, b: .142501265, a: .303891957} + data: + first: + name: _ProjectorDistance_3 + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Projector_0 + second: {r: 1.67100453, g: -.174724922, b: .657876611, a: 1.0662117} + data: + first: + name: _Projector_1 + second: {r: -.00143754855, g: 1.46366906, b: .772396564, a: 1.2343576} + data: + first: + name: _Projector_2 + second: {r: -.107604526, g: -.180290937, b: 1.00790524, a: 1.94646192} + data: + first: + name: _Projector_3 + second: {r: -.104516894, g: -.175117612, b: .978984177, a: 2.08773851} +--- !u!1002 &2100001 +EditorExtensionImpl: + serializedVersion: 6 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Materials/GridProjector.mat.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Materials/GridProjector.mat.meta new file mode 100644 index 0000000..f84f071 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Materials/GridProjector.mat.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: c7d1a73cf0f423947bae4e238665d9c5 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Materials/LightProjector.mat b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Materials/LightProjector.mat new file mode 100644 index 0000000..c7deebb --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Materials/LightProjector.mat @@ -0,0 +1,122 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: LightProjector + m_Shader: {fileID: 4800000, guid: c0ace1ca4bc0718448acf798c93d52d9, type: 3} + m_ShaderKeywords: + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ShadowTex + second: + m_Texture: {fileID: 2800000, guid: b1d7fee26e54cc3498f6267f072a45b9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _FalloffTex + second: + m_Texture: {fileID: 2800000, guid: 23740055e2b119e40a939138ab8070f8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _CombineTex + second: + m_Texture: {fileID: 2800000, guid: 92b0a732ad112a541100162a44295342, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _HiliteTex + second: + m_Texture: {fileID: 2800000, guid: f7a0a732ad112a541100162a44295342, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: {} + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _TintColor + second: {r: .5, g: .5, b: .5, a: .5} + data: + first: + name: BumpMapScale + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _ProjectorClip_0 + second: {r: -.0154382316, g: -.0258666929, b: .144606143, a: .293609738} + data: + first: + name: _ProjectorClip_1 + second: {r: .0047582523, g: .145238146, b: .0264877379, a: .00306412578} + data: + first: + name: _ProjectorClip_2 + second: {r: -.0154382316, g: -.0258666929, b: .144606143, a: .293609738} + data: + first: + name: _ProjectorClip_3 + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _ProjectorDistance_0 + second: {r: -.0152135147, g: -.0254901797, b: .142501265, a: .303891957} + data: + first: + name: _ProjectorDistance_1 + second: {r: .00468899123, g: .143124074, b: .0261021852, a: .0175754428} + data: + first: + name: _ProjectorDistance_2 + second: {r: -.0152135147, g: -.0254901797, b: .142501265, a: .303891957} + data: + first: + name: _ProjectorDistance_3 + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Projector_0 + second: {r: 1.67100453, g: -.174724922, b: .657876611, a: 1.0662117} + data: + first: + name: _Projector_1 + second: {r: -.00143754855, g: 1.46366906, b: .772396564, a: 1.2343576} + data: + first: + name: _Projector_2 + second: {r: -.107604526, g: -.180290937, b: 1.00790524, a: 1.94646192} + data: + first: + name: _Projector_3 + second: {r: -.104516894, g: -.175117612, b: .978984177, a: 2.08773851} +--- !u!1002 &2100001 +EditorExtensionImpl: + serializedVersion: 6 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Materials/LightProjector.mat.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Materials/LightProjector.mat.meta new file mode 100644 index 0000000..2279e56 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Materials/LightProjector.mat.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: c8c80c5b03f5c7e40b07eb2170e667e5 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Materials/ShadowProjector.mat b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Materials/ShadowProjector.mat new file mode 100644 index 0000000..109bc07 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Materials/ShadowProjector.mat @@ -0,0 +1,122 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: ShadowProjector + m_Shader: {fileID: 4800000, guid: 01a668cc78047034a8a0c5ca2d24c6f7, type: 3} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ShadowTex + second: + m_Texture: {fileID: 2800000, guid: 68386fc9897223346a683105b4dc1662, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _FalloffTex + second: + m_Texture: {fileID: 2800000, guid: 23740055e2b119e40a939138ab8070f8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _CombineTex + second: + m_Texture: {fileID: 2800000, guid: 92b0a732ad112a541100162a44295342, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _HiliteTex + second: + m_Texture: {fileID: 2800000, guid: f7a0a732ad112a541100162a44295342, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: {} + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _TintColor + second: {r: .5, g: .5, b: .5, a: .5} + data: + first: + name: BumpMapScale + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _ProjectorClip_0 + second: {r: -.0154382316, g: -.0258666929, b: .144606143, a: .293609738} + data: + first: + name: _ProjectorClip_1 + second: {r: .0047582523, g: .145238146, b: .0264877379, a: .00306412578} + data: + first: + name: _ProjectorClip_2 + second: {r: -.0154382316, g: -.0258666929, b: .144606143, a: .293609738} + data: + first: + name: _ProjectorClip_3 + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _ProjectorDistance_0 + second: {r: -.0152135147, g: -.0254901797, b: .142501265, a: .303891957} + data: + first: + name: _ProjectorDistance_1 + second: {r: .00468899123, g: .143124074, b: .0261021852, a: .0175754428} + data: + first: + name: _ProjectorDistance_2 + second: {r: -.0152135147, g: -.0254901797, b: .142501265, a: .303891957} + data: + first: + name: _ProjectorDistance_3 + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Projector_0 + second: {r: 1.67100453, g: -.174724922, b: .657876611, a: 1.0662117} + data: + first: + name: _Projector_1 + second: {r: -.00143754855, g: 1.46366906, b: .772396564, a: 1.2343576} + data: + first: + name: _Projector_2 + second: {r: -.107604526, g: -.180290937, b: 1.00790524, a: 1.94646192} + data: + first: + name: _Projector_3 + second: {r: -.104516894, g: -.175117612, b: .978984177, a: 2.08773851} +--- !u!1002 &2100001 +EditorExtensionImpl: + serializedVersion: 6 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Materials/ShadowProjector.mat.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Materials/ShadowProjector.mat.meta new file mode 100644 index 0000000..214a7cb --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Materials/ShadowProjector.mat.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: e30ff3588e719f34bbf0c66f22d97487 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Prefabs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Prefabs.meta new file mode 100644 index 0000000..be5707a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Prefabs.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: b6b64336cd6795c4daf856f275c23f7c +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Prefabs/BlobLightProjector.prefab b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Prefabs/BlobLightProjector.prefab new file mode 100644 index 0000000..6ef12d1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Prefabs/BlobLightProjector.prefab @@ -0,0 +1,71 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100002 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400002} + - 119: {fileID: 11900000} + m_Layer: 0 + m_Name: BlobLightProjector + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1002 &100003 +EditorExtensionImpl: + serializedVersion: 6 +--- !u!4 &400002 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_LocalRotation: {x: .707106829, y: 0, z: 0, w: .707106709} + m_LocalPosition: {x: .590070009, y: 1.97459996, z: -1.91789997} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!1002 &400003 +EditorExtensionImpl: + serializedVersion: 6 +--- !u!119 &11900000 +Projector: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + serializedVersion: 2 + m_NearClipPlane: .100000001 + m_FarClipPlane: 50 + m_FieldOfView: 30 + m_AspectRatio: 1 + m_Orthographic: 0 + m_OrthographicSize: 2 + m_Material: {fileID: 2100000, guid: c8c80c5b03f5c7e40b07eb2170e667e5, type: 2} + m_IgnoreLayers: + serializedVersion: 2 + m_Bits: 0 +--- !u!1002 &11900001 +EditorExtensionImpl: + serializedVersion: 6 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100002} + m_IsPrefabParent: 1 +--- !u!1002 &100100001 +EditorExtensionImpl: + serializedVersion: 6 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Prefabs/BlobLightProjector.prefab.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Prefabs/BlobLightProjector.prefab.meta new file mode 100644 index 0000000..f4438cd --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Prefabs/BlobLightProjector.prefab.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 21543d2b66928224f8a9536ff3811682 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Prefabs/BlobShadowProjector.prefab b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Prefabs/BlobShadowProjector.prefab new file mode 100644 index 0000000..6ab2d94 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Prefabs/BlobShadowProjector.prefab @@ -0,0 +1,71 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100002 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400002} + - 119: {fileID: 11900000} + m_Layer: 0 + m_Name: BlobShadowProjector + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1002 &100003 +EditorExtensionImpl: + serializedVersion: 6 +--- !u!4 &400002 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_LocalRotation: {x: .75157696, y: 0, z: 0, w: .659645498} + m_LocalPosition: {x: 0, y: 1.87699997, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!1002 &400003 +EditorExtensionImpl: + serializedVersion: 6 +--- !u!119 &11900000 +Projector: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + serializedVersion: 2 + m_NearClipPlane: .100000001 + m_FarClipPlane: 50 + m_FieldOfView: 30 + m_AspectRatio: 1 + m_Orthographic: 0 + m_OrthographicSize: 2 + m_Material: {fileID: 2100000, guid: e30ff3588e719f34bbf0c66f22d97487, type: 2} + m_IgnoreLayers: + serializedVersion: 2 + m_Bits: 0 +--- !u!1002 &11900001 +EditorExtensionImpl: + serializedVersion: 6 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100002} + m_IsPrefabParent: 1 +--- !u!1002 &100100001 +EditorExtensionImpl: + serializedVersion: 6 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Prefabs/BlobShadowProjector.prefab.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Prefabs/BlobShadowProjector.prefab.meta new file mode 100644 index 0000000..958c52f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Prefabs/BlobShadowProjector.prefab.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 28a5e79925e3ce04a82856c16a572cbe +NativeFormatImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Prefabs/GridProjector.prefab b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Prefabs/GridProjector.prefab new file mode 100644 index 0000000..5b175cb --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Prefabs/GridProjector.prefab @@ -0,0 +1,71 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100002 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400002} + - 119: {fileID: 11900000} + m_Layer: 0 + m_Name: GridProjector + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1002 &100003 +EditorExtensionImpl: + serializedVersion: 6 +--- !u!4 &400002 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_LocalRotation: {x: .707106829, y: 0, z: 0, w: .707106709} + m_LocalPosition: {x: -2.12590003, y: 1.97899997, z: -.925180018} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!1002 &400003 +EditorExtensionImpl: + serializedVersion: 6 +--- !u!119 &11900000 +Projector: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100002} + m_Enabled: 1 + serializedVersion: 2 + m_NearClipPlane: .100000001 + m_FarClipPlane: 50 + m_FieldOfView: 30 + m_AspectRatio: 1 + m_Orthographic: 1 + m_OrthographicSize: .25 + m_Material: {fileID: 2100000, guid: c7d1a73cf0f423947bae4e238665d9c5, type: 2} + m_IgnoreLayers: + serializedVersion: 2 + m_Bits: 0 +--- !u!1002 &11900001 +EditorExtensionImpl: + serializedVersion: 6 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100002} + m_IsPrefabParent: 1 +--- !u!1002 &100100001 +EditorExtensionImpl: + serializedVersion: 6 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Prefabs/GridProjector.prefab.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Prefabs/GridProjector.prefab.meta new file mode 100644 index 0000000..6b5e0f4 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Prefabs/GridProjector.prefab.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 46b12845355544642bf8f9d0cb373af7 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Shaders.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Shaders.meta new file mode 100644 index 0000000..a853340 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Shaders.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 0d64cf85603324c6d89204084bbb3438 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Shaders/ProjectorLight.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Shaders/ProjectorLight.shader new file mode 100644 index 0000000..fd1e373 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Shaders/ProjectorLight.shader @@ -0,0 +1,65 @@ +// Upgrade NOTE: replaced '_Projector' with 'unity_Projector' +// Upgrade NOTE: replaced '_ProjectorClip' with 'unity_ProjectorClip' +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Projector/Light" { + Properties { + _Color ("Main Color", Color) = (1,1,1,1) + _ShadowTex ("Cookie", 2D) = "" {} + _FalloffTex ("FallOff", 2D) = "" {} + } + + Subshader { + Tags {"Queue"="Transparent"} + Pass { + ZWrite Off + ColorMask RGB + Blend DstColor One + Offset -1, -1 + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_fog + #include "UnityCG.cginc" + + struct v2f { + float4 uvShadow : TEXCOORD0; + float4 uvFalloff : TEXCOORD1; + UNITY_FOG_COORDS(2) + float4 pos : SV_POSITION; + }; + + float4x4 unity_Projector; + float4x4 unity_ProjectorClip; + + v2f vert (float4 vertex : POSITION) + { + v2f o; + o.pos = UnityObjectToClipPos (vertex); + o.uvShadow = mul (unity_Projector, vertex); + o.uvFalloff = mul (unity_ProjectorClip, vertex); + UNITY_TRANSFER_FOG(o,o.pos); + return o; + } + + fixed4 _Color; + sampler2D _ShadowTex; + sampler2D _FalloffTex; + + fixed4 frag (v2f i) : SV_Target + { + fixed4 texS = tex2Dproj (_ShadowTex, UNITY_PROJ_COORD(i.uvShadow)); + texS.rgb *= _Color.rgb; + texS.a = 1.0-texS.a; + + fixed4 texF = tex2Dproj (_FalloffTex, UNITY_PROJ_COORD(i.uvFalloff)); + fixed4 res = texS * texF.a; + + UNITY_APPLY_FOG_COLOR(i.fogCoord, res, fixed4(0,0,0,0)); + return res; + } + ENDCG + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Shaders/ProjectorLight.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Shaders/ProjectorLight.shader.meta new file mode 100644 index 0000000..4a5d302 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Shaders/ProjectorLight.shader.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: c0ace1ca4bc0718448acf798c93d52d9 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Shaders/ProjectorMultiply.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Shaders/ProjectorMultiply.shader new file mode 100644 index 0000000..db663a5 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Shaders/ProjectorMultiply.shader @@ -0,0 +1,61 @@ +// Upgrade NOTE: replaced '_Projector' with 'unity_Projector' +// Upgrade NOTE: replaced '_ProjectorClip' with 'unity_ProjectorClip' +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Projector/Multiply" { + Properties { + _ShadowTex ("Cookie", 2D) = "gray" {} + _FalloffTex ("FallOff", 2D) = "white" {} + } + Subshader { + Tags {"Queue"="Transparent"} + Pass { + ZWrite Off + ColorMask RGB + Blend DstColor Zero + Offset -1, -1 + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_fog + #include "UnityCG.cginc" + + struct v2f { + float4 uvShadow : TEXCOORD0; + float4 uvFalloff : TEXCOORD1; + UNITY_FOG_COORDS(2) + float4 pos : SV_POSITION; + }; + + float4x4 unity_Projector; + float4x4 unity_ProjectorClip; + + v2f vert (float4 vertex : POSITION) + { + v2f o; + o.pos = UnityObjectToClipPos (vertex); + o.uvShadow = mul (unity_Projector, vertex); + o.uvFalloff = mul (unity_ProjectorClip, vertex); + UNITY_TRANSFER_FOG(o,o.pos); + return o; + } + + sampler2D _ShadowTex; + sampler2D _FalloffTex; + + fixed4 frag (v2f i) : SV_Target + { + fixed4 texS = tex2Dproj (_ShadowTex, UNITY_PROJ_COORD(i.uvShadow)); + texS.a = 1.0-texS.a; + + fixed4 texF = tex2Dproj (_FalloffTex, UNITY_PROJ_COORD(i.uvFalloff)); + fixed4 res = lerp(fixed4(1,1,1,0), texS, texF.a); + + UNITY_APPLY_FOG_COLOR(i.fogCoord, res, fixed4(1,1,1,1)); + return res; + } + ENDCG + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Shaders/ProjectorMultiply.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Shaders/ProjectorMultiply.shader.meta new file mode 100644 index 0000000..268e7e4 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Shaders/ProjectorMultiply.shader.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 01a668cc78047034a8a0c5ca2d24c6f7 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures.meta new file mode 100644 index 0000000..e1d6034 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 24f8b7f726c7047cb906be889dbf5ac1 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Falloff.psd b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Falloff.psd new file mode 100644 index 0000000..2dea334 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Falloff.psd differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Falloff.psd.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Falloff.psd.meta new file mode 100644 index 0000000..adb899e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Falloff.psd.meta @@ -0,0 +1,52 @@ +fileFormatVersion: 2 +guid: 23740055e2b119e40a939138ab8070f8 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 1 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 1 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 5 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Grid.psd b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Grid.psd new file mode 100644 index 0000000..89c45d6 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Grid.psd differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Grid.psd.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Grid.psd.meta new file mode 100644 index 0000000..42c62fc --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Grid.psd.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 529239097d02f9f42b0ddd436c6fcbb0 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 256 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 1 + pSDShowRemoveMatteOption: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Light.psd b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Light.psd new file mode 100644 index 0000000..dad13f8 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Light.psd differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Light.psd.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Light.psd.meta new file mode 100644 index 0000000..d65c212 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Light.psd.meta @@ -0,0 +1,52 @@ +fileFormatVersion: 2 +guid: b1d7fee26e54cc3498f6267f072a45b9 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 1 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 64 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 5 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Shadow.psd b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Shadow.psd new file mode 100644 index 0000000..111a658 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Shadow.psd differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Shadow.psd.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Shadow.psd.meta new file mode 100644 index 0000000..f4f5772 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/Projectors/Textures/Shadow.psd.meta @@ -0,0 +1,52 @@ +fileFormatVersion: 2 +guid: 68386fc9897223346a683105b4dc1662 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 1 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 1 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 64 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 5 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders.meta new file mode 100644 index 0000000..b00a47c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: b7b4d46ae2ac0ff449c02180209eea5d +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Materials.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Materials.meta new file mode 100644 index 0000000..da872c6 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Materials.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 6deddaccf56ed5f47806946aed94d2c9 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecular.mat b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecular.mat new file mode 100644 index 0000000..e5617d4 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecular.mat @@ -0,0 +1,51 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: TesselatedBumpSpecular + m_Shader: {fileID: 4, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: e08c295755c0885479ad19f518286ff2, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .335313648 + data: + first: + name: _EdgeLength + second: 10 + data: + first: + name: _Smoothness + second: .5 + m_Colors: + data: + first: + name: _Color + second: {r: .50746268, g: .50746268, b: .50746268, a: 1} + data: + first: + name: _SpecColor + second: {r: .5, g: .5, b: .5, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecular.mat.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecular.mat.meta new file mode 100644 index 0000000..9d134a7 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecular.mat.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: a3384ef3e2313034f9016ad8a1f3999f +NativeFormatImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularDisplacement.mat b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularDisplacement.mat new file mode 100644 index 0000000..e2dee51 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularDisplacement.mat @@ -0,0 +1,58 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: TesselatedBumpSpecularDisplacement + m_Shader: {fileID: 4800000, guid: 0a4b0bce1e250a14bb534d70bce205fa, type: 3} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 2, y: 2} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: e08c295755c0885479ad19f518286ff2, type: 3} + m_Scale: {x: 2, y: 2} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 2800000, guid: 17da6d53ec93a0444bd0f751b1d02477, type: 3} + m_Scale: {x: 2, y: 2} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .0732631832 + data: + first: + name: _EdgeLength + second: 12.3068314 + data: + first: + name: _Parallax + second: .354557991 + m_Colors: + data: + first: + name: _Color + second: {r: .514925361, g: .514925361, b: .514925361, a: 1} + data: + first: + name: _SpecColor + second: {r: .5, g: .5, b: .5, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularDisplacement.mat.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularDisplacement.mat.meta new file mode 100644 index 0000000..29f2584 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularDisplacement.mat.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 26d8bdbc8646bde48b05fbaacaaa6577 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularSmooth.mat b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularSmooth.mat new file mode 100644 index 0000000..6be0db3 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularSmooth.mat @@ -0,0 +1,51 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: TesselatedBumpSpecularSmooth + m_Shader: {fileID: 4800000, guid: 3954501323f24464f9e4418c78d8e8ce, type: 3} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .319910288 + data: + first: + name: _EdgeLength + second: 12.1044779 + data: + first: + name: _Smoothness + second: .522388041 + m_Colors: + data: + first: + name: _Color + second: {r: .514925361, g: .514925361, b: .514925361, a: 1} + data: + first: + name: _SpecColor + second: {r: .5, g: .5, b: .5, a: 1} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularSmooth.mat.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularSmooth.mat.meta new file mode 100644 index 0000000..4febed3 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularSmooth.mat.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 06893cec523208643a91b7a393737700 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Models.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Models.meta new file mode 100644 index 0000000..e74e656 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Models.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 0c309011180e934488a03e0a88190d11 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Models/LowPolySphere.fbx b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Models/LowPolySphere.fbx new file mode 100644 index 0000000..3e4622d Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Models/LowPolySphere.fbx differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Models/LowPolySphere.fbx.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Models/LowPolySphere.fbx.meta new file mode 100644 index 0000000..5801565 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Models/LowPolySphere.fbx.meta @@ -0,0 +1,69 @@ +fileFormatVersion: 2 +guid: 103612e5e1ff43a4e896c567a2cb3ae1 +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: pSphere1 + 4300002: LowPolySphere + 11100000: //RootNode + materials: + importMaterials: 0 + materialName: 1 + materialSearch: 2 + animations: + legacyGenerateAnimations: 0 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + pivotNodeName: + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 0 + optimizeMeshForGPU: 1 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 0 + tangentSpace: + normalSmoothAngle: 180 + splitTangentsAcrossUV: 1 + normalImportMode: 1 + tangentImportMode: 1 + importAnimation: 1 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 1 + additionalBone: 0 + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Scenes.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Scenes.meta new file mode 100644 index 0000000..1118db4 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Scenes.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 1553d77f542284c478caca3b413d7c6a +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Scenes/TessellationSample.unity b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Scenes/TessellationSample.unity new file mode 100644 index 0000000..46b9302 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Scenes/TessellationSample.unity @@ -0,0 +1,782 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +SceneSettings: + m_ObjectHideFlags: 0 + m_PVSData: + m_QueryMode: 1 + m_PVSObjectsArray: [] + m_PVSPortalsArray: [] + m_OcclusionBakeSettings: + viewCellSize: 1 + bakeMode: 2 + memoryUsage: 10485760 +--- !u!104 &2 +RenderSettings: + m_Fog: 0 + m_FogColor: {r: .5, g: .5, b: .5, a: 1} + m_FogMode: 3 + m_FogDensity: .00999999978 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientLight: {r: .208509669, g: .209568977, b: .23880595, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: .5 + m_FlareStrength: 1 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 0} + m_ObjectHideFlags: 0 +--- !u!127 &3 +LevelGameManager: + m_ObjectHideFlags: 0 +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + m_LightProbes: {fileID: 0} + m_Lightmaps: [] + m_LightmapsMode: 1 + m_BakedColorSpace: 0 + m_UseDualLightmapsInForward: 0 + m_LightmapEditorSettings: + m_Resolution: 50 + m_LastUsedResolution: 0 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_BounceBoost: 1 + m_BounceIntensity: 1 + m_SkyLightColor: {r: .860000014, g: .930000007, b: 1, a: 1} + m_SkyLightIntensity: 0 + m_Quality: 0 + m_Bounces: 1 + m_FinalGatherRays: 1000 + m_FinalGatherContrastThreshold: .0500000007 + m_FinalGatherGradientThreshold: 0 + m_FinalGatherInterpolationPoints: 15 + m_AOAmount: 0 + m_AOMaxDistance: .100000001 + m_AOContrast: 1 + m_LODSurfaceMappingDistance: 1 + m_Padding: 0 + m_TextureCompression: 0 + m_LockAtlas: 0 +--- !u!196 &5 +NavMeshSettings: + m_ObjectHideFlags: 0 + m_BuildSettings: + agentRadius: .5 + agentHeight: 2 + agentSlope: 45 + agentClimb: .400000006 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + accuratePlacement: 0 + minRegionArea: 2 + widthInaccuracy: 16.666666 + heightInaccuracy: 10 + m_NavMesh: {fileID: 0} +--- !u!1 &45112404 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 45112405} + - 33: {fileID: 45112407} + - 64: {fileID: 45112408} + - 23: {fileID: 45112406} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &45112405 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 45112404} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -10.1825247, y: 5.14360285, z: -15.2294216} + m_LocalScale: {x: 2.93550324, y: 2.93550324, z: 2.93550324} + m_Children: + - {fileID: 1025819845} + m_Father: {fileID: 0} +--- !u!23 &45112406 +Renderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 45112404} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: 26d8bdbc8646bde48b05fbaacaaa6577, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!33 &45112407 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 45112404} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!64 &45112408 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 45112404} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_SmoothSphereCollisions: 0 + m_Convex: 0 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1001 &184320516 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + propertyPath: m_LocalPosition.x + value: -4.40180111 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + propertyPath: m_LocalPosition.y + value: 7.55032682 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + propertyPath: m_LocalPosition.z + value: -8.54045105 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + propertyPath: m_LocalRotation.y + value: -.707106829 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + propertyPath: m_LocalRotation.w + value: .707106829 + objectReference: {fileID: 0} + - target: {fileID: 2300000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 06893cec523208643a91b7a393737700, type: 2} + - target: {fileID: 100000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + propertyPath: m_Name + value: LowPolySphereSmooth + objectReference: {fileID: 0} + - target: {fileID: 100000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + m_RootGameObject: {fileID: 1248114742} + m_IsPrefabParent: 0 + m_IsExploded: 1 +--- !u!1 &723080850 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 723080851} + - 102: {fileID: 723080853} + - 23: {fileID: 723080852} + m_Layer: 0 + m_Name: New Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &723080851 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 723080850} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1028651043} +--- !u!23 &723080852 +Renderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 723080850} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!102 &723080853 +TextMesh: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 723080850} + m_Text: Mesh + m_OffsetZ: 0 + m_CharacterSize: .100000001 + m_LineSpacing: 1 + m_Anchor: 4 + m_Alignment: 0 + m_TabSize: 4 + m_FontSize: 20 + m_FontStyle: 0 + m_RichText: 1 + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_Color: + serializedVersion: 2 + rgba: 4294967295 +--- !u!1 &1025819844 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1025819845} + - 102: {fileID: 1025819847} + - 23: {fileID: 1025819846} + m_Layer: 0 + m_Name: New Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1025819845 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1025819844} + m_LocalRotation: {x: 0, y: -.946908474, z: 0, w: .321503431} + m_LocalPosition: {x: 2.99363708, y: .352484196, z: 1.65013671} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 45112405} +--- !u!23 &1025819846 +Renderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1025819844} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!102 &1025819847 +TextMesh: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1025819844} + m_Text: Tessellated & Displaced plane + m_OffsetZ: 0 + m_CharacterSize: .0500000007 + m_LineSpacing: 1 + m_Anchor: 4 + m_Alignment: 0 + m_TabSize: 4 + m_FontSize: 20 + m_FontStyle: 0 + m_RichText: 1 + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_Color: + serializedVersion: 2 + rgba: 4294967295 +--- !u!1 &1028651042 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 100000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + m_PrefabInternal: {fileID: 1181271967} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1028651043} + - 33: {fileID: 1028651045} + - 23: {fileID: 1028651044} + - 111: {fileID: 1028651046} + m_Layer: 0 + m_Name: LowPolySphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1028651043 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + m_PrefabInternal: {fileID: 1181271967} + m_GameObject: {fileID: 1028651042} + m_LocalRotation: {x: 0, y: -.707106829, z: 0, w: .707106829} + m_LocalPosition: {x: -4.46168661, y: 7.55032682, z: -10.6198997} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 723080851} + m_Father: {fileID: 0} +--- !u!23 &1028651044 +Renderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 2300000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, + type: 3} + m_PrefabInternal: {fileID: 1181271967} + m_GameObject: {fileID: 1028651042} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: a3384ef3e2313034f9016ad8a1f3999f, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!33 &1028651045 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 3300000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, + type: 3} + m_PrefabInternal: {fileID: 1181271967} + m_GameObject: {fileID: 1028651042} + m_Mesh: {fileID: 4300000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} +--- !u!111 &1028651046 +Animation: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11100000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, + type: 3} + m_PrefabInternal: {fileID: 1181271967} + m_GameObject: {fileID: 1028651042} + m_Enabled: 1 + serializedVersion: 3 + m_Animation: {fileID: 0} + m_Animations: [] + m_WrapMode: 0 + m_PlayAutomatically: 1 + m_AnimatePhysics: 0 + m_CullingType: 0 + m_UserAABB: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} +--- !u!1001 &1181271967 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + propertyPath: m_LocalPosition.x + value: -4.46168661 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + propertyPath: m_LocalPosition.y + value: 7.55032682 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + propertyPath: m_LocalPosition.z + value: -10.6198997 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + propertyPath: m_LocalRotation.y + value: -.707106829 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + propertyPath: m_LocalRotation.w + value: .707106829 + objectReference: {fileID: 0} + - target: {fileID: 2300000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: a3384ef3e2313034f9016ad8a1f3999f, type: 2} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + m_RootGameObject: {fileID: 1028651042} + m_IsPrefabParent: 0 + m_IsExploded: 1 +--- !u!1 &1248114742 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 100000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + m_PrefabInternal: {fileID: 184320516} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1248114743} + - 33: {fileID: 1248114745} + - 23: {fileID: 1248114744} + - 111: {fileID: 1248114746} + m_Layer: 0 + m_Name: LowPolySphereSmooth + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1248114743 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} + m_PrefabInternal: {fileID: 184320516} + m_GameObject: {fileID: 1248114742} + m_LocalRotation: {x: 0, y: -.707106829, z: 0, w: .707106829} + m_LocalPosition: {x: -4.40180111, y: 7.55032682, z: -8.54045105} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1403424791} + m_Father: {fileID: 0} +--- !u!23 &1248114744 +Renderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 2300000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, + type: 3} + m_PrefabInternal: {fileID: 184320516} + m_GameObject: {fileID: 1248114742} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 2100000, guid: 06893cec523208643a91b7a393737700, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!33 &1248114745 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 3300000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, + type: 3} + m_PrefabInternal: {fileID: 184320516} + m_GameObject: {fileID: 1248114742} + m_Mesh: {fileID: 4300000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3} +--- !u!111 &1248114746 +Animation: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11100000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, + type: 3} + m_PrefabInternal: {fileID: 184320516} + m_GameObject: {fileID: 1248114742} + m_Enabled: 1 + serializedVersion: 3 + m_Animation: {fileID: 0} + m_Animations: [] + m_WrapMode: 0 + m_PlayAutomatically: 1 + m_AnimatePhysics: 0 + m_CullingType: 0 + m_UserAABB: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} +--- !u!1 &1375005640 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1375005641} + - 20: {fileID: 1375005642} + - 92: {fileID: 1375005644} + - 124: {fileID: 1375005645} + - 81: {fileID: 1375005643} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1375005641 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1375005640} + m_LocalRotation: {x: -.0800507441, y: .876079738, z: -.153849453, w: -.449896157} + m_LocalPosition: {x: .311099052, y: 8.59601879, z: -7.0782752} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} +--- !u!20 &1375005642 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1375005640} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: .0196078438} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: .300000012 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 100 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_HDR: 0 +--- !u!81 &1375005643 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1375005640} + m_Enabled: 1 +--- !u!92 &1375005644 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1375005640} + m_Enabled: 1 +--- !u!124 &1375005645 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1375005640} + m_Enabled: 1 +--- !u!1 &1403424790 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1403424791} + - 102: {fileID: 1403424793} + - 23: {fileID: 1403424792} + m_Layer: 0 + m_Name: New Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1403424791 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1403424790} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1248114743} +--- !u!23 &1403424792 +Renderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1403424790} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 +--- !u!102 &1403424793 +TextMesh: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1403424790} + m_Text: "Mesh with\r\nPhong Tess" + m_OffsetZ: 0 + m_CharacterSize: .100000001 + m_LineSpacing: 1 + m_Anchor: 4 + m_Alignment: 0 + m_TabSize: 4 + m_FontSize: 20 + m_FontStyle: 0 + m_RichText: 1 + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_Color: + serializedVersion: 2 + rgba: 4294967295 +--- !u!1 &1418780922 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1418780923} + - 108: {fileID: 1418780924} + m_Layer: 0 + m_Name: Directional light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1418780923 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1418780922} + m_LocalRotation: {x: -.139953628, y: .576685786, z: -.0999016315, w: -.798665285} + m_LocalPosition: {x: 6.01737118, y: 11.1735039, z: -16.877203} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} +--- !u!108 &1418780924 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1418780922} + m_Enabled: 1 + serializedVersion: 3 + m_Type: 1 + m_Color: {r: .992693901, g: 1, b: .962686539, a: 1} + m_Intensity: .5 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_Strength: 1 + m_Bias: .0500000007 + m_Softness: 4 + m_SoftnessFade: 1 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_ActuallyLightmapped: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 1 + m_ShadowSamples: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_IndirectIntensity: 1 + m_AreaSize: {x: 1, y: 1} +--- !u!1 &1555874874 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1555874875} + - 132: {fileID: 1555874876} + m_Layer: 0 + m_Name: GUI Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1555874875 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1555874874} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} +--- !u!132 &1555874876 +GUIText: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1555874874} + m_Enabled: 1 + serializedVersion: 3 + m_Text: DX11 GPU Tessellation Shaders + m_Anchor: 0 + m_Alignment: 0 + m_PixelOffset: {x: 0, y: 0} + m_LineSpacing: 1 + m_TabSize: 4 + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_Material: {fileID: 0} + m_FontSize: 20 + m_FontStyle: 3 + m_Color: + serializedVersion: 2 + rgba: 4294967295 + m_PixelCorrect: 1 + m_RichText: 1 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Scenes/TessellationSample.unity.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Scenes/TessellationSample.unity.meta new file mode 100644 index 0000000..d2a7b77 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Scenes/TessellationSample.unity.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 31f6763de0920574092c8a69a66c717e +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Shaders.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Shaders.meta new file mode 100644 index 0000000..cc1b164 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Shaders.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 4624d7d4686ce7a498e4c4092550416f +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularDisplacement.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularDisplacement.shader new file mode 100644 index 0000000..c938ca4 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularDisplacement.shader @@ -0,0 +1,68 @@ +Shader "Tessellation/Bumped Specular (displacement)" { +Properties { + _Color ("Main Color", Color) = (1,1,1,1) + _SpecColor ("Specular Color", Color) = (0.5, 0.5, 0.5, 1) + _Shininess ("Shininess", Range (0.03, 1)) = 0.078125 + _Parallax ("Height", Range (0.0, 1.0)) = 0.5 + _MainTex ("Base (RGB) Gloss (A)", 2D) = "white" {} + _BumpMap ("Normalmap", 2D) = "bump" {} + _ParallaxMap ("Heightmap (A)", 2D) = "black" {} + + _EdgeLength ("Edge length", Range(3,50)) = 10 +} +SubShader { + Tags { "RenderType"="Opaque" } + LOD 800 + +CGPROGRAM +#pragma surface surf BlinnPhong addshadow vertex:disp tessellate:tessEdge +#include "Tessellation.cginc" + +struct appdata { + float4 vertex : POSITION; + float4 tangent : TANGENT; + float3 normal : NORMAL; + float2 texcoord : TEXCOORD0; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; +}; + +float _EdgeLength; +float _Parallax; + +float4 tessEdge (appdata v0, appdata v1, appdata v2) +{ + return UnityEdgeLengthBasedTessCull (v0.vertex, v1.vertex, v2.vertex, _EdgeLength, _Parallax * 1.5f); +} + +sampler2D _ParallaxMap; + +void disp (inout appdata v) +{ + float d = tex2Dlod(_ParallaxMap, float4(v.texcoord.xy,0,0)).a * _Parallax; + v.vertex.xyz += v.normal * d; +} + +sampler2D _MainTex; +sampler2D _BumpMap; +fixed4 _Color; +half _Shininess; + +struct Input { + float2 uv_MainTex; + float2 uv_BumpMap; +}; + +void surf (Input IN, inout SurfaceOutput o) { + fixed4 tex = tex2D(_MainTex, IN.uv_MainTex); + o.Albedo = tex.rgb * _Color.rgb; + o.Gloss = tex.a; + o.Alpha = tex.a * _Color.a; + o.Specular = _Shininess; + o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap)); +} +ENDCG +} + +FallBack "Bumped Specular" +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularDisplacement.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularDisplacement.shader.meta new file mode 100644 index 0000000..f64b3c1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularDisplacement.shader.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 0a4b0bce1e250a14bb534d70bce205fa +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularSmooth.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularSmooth.shader new file mode 100644 index 0000000..6bf3591 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularSmooth.shader @@ -0,0 +1,64 @@ +Shader "Tessellation/Bumped Specular (smooth)" { +Properties { + _Color ("Main Color", Color) = (1,1,1,1) + _SpecColor ("Specular Color", Color) = (0.5, 0.5, 0.5, 1) + _Shininess ("Shininess", Range (0.03, 1)) = 0.078125 + _MainTex ("Base (RGB) Gloss (A)", 2D) = "white" {} + _BumpMap ("Normalmap", 2D) = "bump" {} + + _EdgeLength ("Edge length", Range(3,50)) = 10 + _Smoothness ("Smoothness", Range(0,1)) = 0.5 +} +SubShader { + Tags { "RenderType"="Opaque" } + LOD 700 + +CGPROGRAM +#pragma surface surf BlinnPhong addshadow vertex:disp tessellate:tessEdge tessphong:_Smoothness +#include "Tessellation.cginc" + +struct appdata { + float4 vertex : POSITION; + float4 tangent : TANGENT; + float3 normal : NORMAL; + float2 texcoord : TEXCOORD0; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; +}; + +float _EdgeLength; +float _Smoothness; + +float4 tessEdge (appdata v0, appdata v1, appdata v2) +{ + return UnityEdgeLengthBasedTessCull (v0.vertex, v1.vertex, v2.vertex, _EdgeLength, 0.0); +} + +void disp (inout appdata v) +{ + // do nothing +} + +sampler2D _MainTex; +sampler2D _BumpMap; +fixed4 _Color; +half _Shininess; + +struct Input { + float2 uv_MainTex; + float2 uv_BumpMap; +}; + +void surf (Input IN, inout SurfaceOutput o) { + fixed4 tex = tex2D(_MainTex, IN.uv_MainTex); + o.Albedo = tex.rgb * _Color.rgb; + o.Gloss = tex.a; + o.Alpha = tex.a * _Color.a; + o.Specular = _Shininess; + o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap)); +} +ENDCG +} + +FallBack "Bumped Specular" +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularSmooth.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularSmooth.shader.meta new file mode 100644 index 0000000..8cfa1bd --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularSmooth.shader.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 3954501323f24464f9e4418c78d8e8ce +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Textures.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Textures.meta new file mode 100644 index 0000000..36622fb --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Textures.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 08cf2fc601fa9a2408b6a1efae3f2a01 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Textures/CliffHeight.png b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Textures/CliffHeight.png new file mode 100644 index 0000000..3ed61be Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Textures/CliffHeight.png differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Textures/CliffHeight.png.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Textures/CliffHeight.png.meta new file mode 100644 index 0000000..8bb8b89 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Textures/CliffHeight.png.meta @@ -0,0 +1,69 @@ +fileFormatVersion: 2 +guid: 17da6d53ec93a0444bd0f751b1d02477 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 1 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 5 + buildTargetSettings: + - buildTarget: iPhone + maxTextureSize: 256 + textureFormat: 4 + compressionQuality: 50 + - buildTarget: Android + maxTextureSize: 256 + textureFormat: 4 + compressionQuality: 50 + - buildTarget: BlackBerry + maxTextureSize: 256 + textureFormat: -3 + compressionQuality: 50 + - buildTarget: WP8 + maxTextureSize: 256 + textureFormat: -3 + compressionQuality: 50 + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Textures/CliffNormals.png b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Textures/CliffNormals.png new file mode 100644 index 0000000..04ec63c Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Textures/CliffNormals.png differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Textures/CliffNormals.png.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Textures/CliffNormals.png.meta new file mode 100644 index 0000000..4e43eb8 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/TessellationShaders/Textures/CliffNormals.png.meta @@ -0,0 +1,53 @@ +fileFormatVersion: 2 +guid: e08c295755c0885479ad19f518286ff2 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading.meta new file mode 100644 index 0000000..0377a75 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 488ccf78ce5fbe14db33f20cccd9f386 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials.meta new file mode 100644 index 0000000..aea70cf --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 280da6451a1e556438ce789a0d7e1f65 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonBasic.mat b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonBasic.mat new file mode 100644 index 0000000..a079c65 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonBasic.mat @@ -0,0 +1,58 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: ToonBasic + m_Shader: {fileID: 4800000, guid: d84268709d11078d11005b9844295342, type: 3} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ToonShade + second: + m_Texture: {fileID: 8900000, guid: b995d4bd9d11078d11005b9844295342, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .699999988 + data: + first: + name: _Outline + second: .00701886788 + m_Colors: + data: + first: + name: _Color + second: {r: .462686539, g: .462686539, b: .462686539, a: 1} + data: + first: + name: _Emission + second: {r: 0, g: 0, b: 0, a: 0} + data: + first: + name: _SpecColor + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _OutlineColor + second: {r: 0, g: 0, b: 0, a: 1} +--- !u!1002 &2100001 +EditorExtensionImpl: + serializedVersion: 6 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonBasic.mat.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonBasic.mat.meta new file mode 100644 index 0000000..7565316 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonBasic.mat.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 84b9e1d19d11078d11005b9844295342 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonBasicOutline.mat b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonBasicOutline.mat new file mode 100644 index 0000000..d45073c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonBasicOutline.mat @@ -0,0 +1,58 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: ToonBasicOutline + m_Shader: {fileID: 4800000, guid: 9ce107479d11178d11005b9844295342, type: 3} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ToonShade + second: + m_Texture: {fileID: 8900000, guid: b995d4bd9d11078d11005b9844295342, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .57971698 + data: + first: + name: _Outline + second: .00659701508 + m_Colors: + data: + first: + name: _Color + second: {r: .462686539, g: .462686539, b: .462686539, a: 1} + data: + first: + name: _Emission + second: {r: 0, g: 0, b: 0, a: 0} + data: + first: + name: _SpecColor + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _OutlineColor + second: {r: 0, g: 0, b: 0, a: 1} +--- !u!1002 &2100001 +EditorExtensionImpl: + serializedVersion: 6 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonBasicOutline.mat.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonBasicOutline.mat.meta new file mode 100644 index 0000000..2245486 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonBasicOutline.mat.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 215977489d11178d11005b9844295342 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonLit.mat b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonLit.mat new file mode 100644 index 0000000..84c2369 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonLit.mat @@ -0,0 +1,80 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: ToonLit + m_Shader: {fileID: 4800000, guid: 48dca5b99d113b8d11006bab44295342, type: 3} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 9ca701319d113f2d1100ff9b44295342, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ToonShade + second: + m_Texture: {fileID: 8900000, guid: ed7fefe29d117c8d11005e4844295342, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Ramp + second: + m_Texture: {fileID: 2800000, guid: 4a056241e2722dc46a7262a8e7073fd9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .699999988 + data: + first: + name: _Outline + second: .00807547197 + m_Colors: + data: + first: + name: _Color + second: {r: .50251013, g: .50251013, b: .50251013, a: 1} + data: + first: + name: _MainTex_ST + second: {r: 1, g: 1, b: 0, a: 0} + data: + first: + name: _Emission + second: {r: 0, g: 0, b: 0, a: 0} + data: + first: + name: _SpecColor + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _OutlineColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _ToonShade_ST + second: {r: 1, g: 1, b: 0, a: 0} +--- !u!1002 &2100001 +EditorExtensionImpl: + serializedVersion: 6 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonLit.mat.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonLit.mat.meta new file mode 100644 index 0000000..d1e1513 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonLit.mat.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: c9e6294c9d11cb8d11006bf944295342 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonLitOutline.mat b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonLitOutline.mat new file mode 100644 index 0000000..e8c2c41 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonLitOutline.mat @@ -0,0 +1,65 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: ToonLitOutline + m_Shader: {fileID: 4800000, guid: 054a31a99d11e49d110086ba44295342, type: 3} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ToonShade + second: + m_Texture: {fileID: 8900000, guid: ed7fefe29d117c8d11005e4844295342, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _Ramp + second: + m_Texture: {fileID: 2800000, guid: 4a056241e2722dc46a7262a8e7073fd9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Shininess + second: .699999988 + data: + first: + name: _Outline + second: .00701492419 + m_Colors: + data: + first: + name: _Color + second: {r: .50251013, g: .50251013, b: .50251013, a: 1} + data: + first: + name: _Emission + second: {r: 0, g: 0, b: 0, a: 0} + data: + first: + name: _SpecColor + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _OutlineColor + second: {r: 0, g: 0, b: 0, a: 1} +--- !u!1002 &2100001 +EditorExtensionImpl: + serializedVersion: 6 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonLitOutline.mat.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonLitOutline.mat.meta new file mode 100644 index 0000000..c711bf0 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Materials/ToonLitOutline.mat.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 5d69df9d9d11e49d110086ba44295342 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders.meta new file mode 100644 index 0000000..4d2b87a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: adec466a1f9044ea78471a5ce6f78271 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonBasic.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonBasic.shader new file mode 100644 index 0000000..683b99f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonBasic.shader @@ -0,0 +1,65 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Toon/Basic" { + Properties { + _Color ("Main Color", Color) = (.5,.5,.5,1) + _MainTex ("Base (RGB)", 2D) = "white" {} + _ToonShade ("ToonShader Cubemap(RGB)", CUBE) = "" { } + } + + + SubShader { + Tags { "RenderType"="Opaque" } + Pass { + Name "BASE" + Cull Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_fog + + #include "UnityCG.cginc" + + sampler2D _MainTex; + samplerCUBE _ToonShade; + float4 _MainTex_ST; + float4 _Color; + + struct appdata { + float4 vertex : POSITION; + float2 texcoord : TEXCOORD0; + float3 normal : NORMAL; + }; + + struct v2f { + float4 pos : SV_POSITION; + float2 texcoord : TEXCOORD0; + float3 cubenormal : TEXCOORD1; + UNITY_FOG_COORDS(2) + }; + + v2f vert (appdata v) + { + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex); + o.cubenormal = mul (UNITY_MATRIX_MV, float4(v.normal,0)); + UNITY_TRANSFER_FOG(o,o.pos); + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + fixed4 col = _Color * tex2D(_MainTex, i.texcoord); + fixed4 cube = texCUBE(_ToonShade, i.cubenormal); + fixed4 c = fixed4(2.0f * cube.rgb * col.rgb, col.a); + UNITY_APPLY_FOG(i.fogCoord, c); + return c; + } + ENDCG + } + } + + Fallback "VertexLit" +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonBasic.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonBasic.shader.meta new file mode 100644 index 0000000..a144389 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonBasic.shader.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: d84268709d11078d11005b9844295342 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonBasicOutline.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonBasicOutline.shader new file mode 100644 index 0000000..f9371cb --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonBasicOutline.shader @@ -0,0 +1,68 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Toon/Basic Outline" { + Properties { + _Color ("Main Color", Color) = (.5,.5,.5,1) + _OutlineColor ("Outline Color", Color) = (0,0,0,1) + _Outline ("Outline width", Range (.002, 0.03)) = .005 + _MainTex ("Base (RGB)", 2D) = "white" { } + _ToonShade ("ToonShader Cubemap(RGB)", CUBE) = "" { } + } + + CGINCLUDE + #include "UnityCG.cginc" + + struct appdata { + float4 vertex : POSITION; + float3 normal : NORMAL; + }; + + struct v2f { + float4 pos : SV_POSITION; + UNITY_FOG_COORDS(0) + fixed4 color : COLOR; + }; + + uniform float _Outline; + uniform float4 _OutlineColor; + + v2f vert(appdata v) { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + + float3 norm = normalize(mul ((float3x3)UNITY_MATRIX_IT_MV, v.normal)); + float2 offset = TransformViewToProjection(norm.xy); + + o.pos.xy += offset * o.pos.z * _Outline; + o.color = _OutlineColor; + UNITY_TRANSFER_FOG(o,o.pos); + return o; + } + ENDCG + + SubShader { + Tags { "RenderType"="Opaque" } + UsePass "Toon/Basic/BASE" + Pass { + Name "OUTLINE" + Tags { "LightMode" = "Always" } + Cull Front + ZWrite On + ColorMask RGB + Blend SrcAlpha OneMinusSrcAlpha + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_fog + fixed4 frag(v2f i) : SV_Target + { + UNITY_APPLY_FOG(i.fogCoord, i.color); + return i.color; + } + ENDCG + } + } + + Fallback "Toon/Basic" +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonBasicOutline.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonBasicOutline.shader.meta new file mode 100644 index 0000000..7e1c493 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonBasicOutline.shader.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 9ce107479d11178d11005b9844295342 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonLit.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonLit.shader new file mode 100644 index 0000000..254b7ec --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonLit.shader @@ -0,0 +1,53 @@ +Shader "Toon/Lit" { + Properties { + _Color ("Main Color", Color) = (0.5,0.5,0.5,1) + _MainTex ("Base (RGB)", 2D) = "white" {} + _Ramp ("Toon Ramp (RGB)", 2D) = "gray" {} + } + + SubShader { + Tags { "RenderType"="Opaque" } + LOD 200 + +CGPROGRAM +#pragma surface surf ToonRamp + +sampler2D _Ramp; + +// custom lighting function that uses a texture ramp based +// on angle between light direction and normal +#pragma lighting ToonRamp exclude_path:prepass +inline half4 LightingToonRamp (SurfaceOutput s, half3 lightDir, half atten) +{ + #ifndef USING_DIRECTIONAL_LIGHT + lightDir = normalize(lightDir); + #endif + + half d = dot (s.Normal, lightDir)*0.5 + 0.5; + half3 ramp = tex2D (_Ramp, float2(d,d)).rgb; + + half4 c; + c.rgb = s.Albedo * _LightColor0.rgb * ramp * (atten * 2); + c.a = 0; + return c; +} + + +sampler2D _MainTex; +float4 _Color; + +struct Input { + float2 uv_MainTex : TEXCOORD0; +}; + +void surf (Input IN, inout SurfaceOutput o) { + half4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color; + o.Albedo = c.rgb; + o.Alpha = c.a; +} +ENDCG + + } + + Fallback "Diffuse" +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonLit.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonLit.shader.meta new file mode 100644 index 0000000..771203c --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonLit.shader.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 48dca5b99d113b8d11006bab44295342 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonLitOutline.shader b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonLitOutline.shader new file mode 100644 index 0000000..817c0ce --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonLitOutline.shader @@ -0,0 +1,17 @@ +Shader "Toon/Lit Outline" { + Properties { + _Color ("Main Color", Color) = (0.5,0.5,0.5,1) + _OutlineColor ("Outline Color", Color) = (0,0,0,1) + _Outline ("Outline width", Range (.002, 0.03)) = .005 + _MainTex ("Base (RGB)", 2D) = "white" {} + _Ramp ("Toon Ramp (RGB)", 2D) = "gray" {} + } + + SubShader { + Tags { "RenderType"="Opaque" } + UsePass "Toon/Lit/FORWARD" + UsePass "Toon/Basic Outline/OUTLINE" + } + + Fallback "Toon/Lit" +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonLitOutline.shader.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonLitOutline.shader.meta new file mode 100644 index 0000000..329c53b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Shaders/ToonLitOutline.shader.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 054a31a99d11e49d110086ba44295342 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Textures.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Textures.meta new file mode 100644 index 0000000..6555d84 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Textures.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 651770f8be26443fdb85aa3594fa349c +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Textures/ToonLit.psd b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Textures/ToonLit.psd new file mode 100644 index 0000000..5208374 Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Textures/ToonLit.psd differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Textures/ToonLit.psd.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Textures/ToonLit.psd.meta new file mode 100644 index 0000000..6073900 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Textures/ToonLit.psd.meta @@ -0,0 +1,53 @@ +fileFormatVersion: 2 +guid: b995d4bd9d11078d11005b9844295342 +TextureImporter: + fileIDToRecycleName: + 8900000: generatedCubemap + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 2 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 1 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: 3 + maxTextureSize: 512 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapMode: 0 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Textures/UtilToonGradient.png b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Textures/UtilToonGradient.png new file mode 100644 index 0000000..7ce1e8e Binary files /dev/null and b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Textures/UtilToonGradient.png differ diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Textures/UtilToonGradient.png.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Textures/UtilToonGradient.png.meta new file mode 100644 index 0000000..c9b7612 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Effects/ToonShading/Textures/UtilToonGradient.png.meta @@ -0,0 +1,52 @@ +fileFormatVersion: 2 +guid: 4a056241e2722dc46a7262a8e7073fd9 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 2 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: 5 + maxTextureSize: 1024 + textureSettings: + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 5 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials.meta new file mode 100644 index 0000000..993108d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5eebb5849c50a2c4ea24ded96e6f3aac +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Bouncy.physicmaterial b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Bouncy.physicmaterial new file mode 100644 index 0000000..63101ab --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Bouncy.physicmaterial @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!134 &13400000 +PhysicMaterial: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Bouncy + dynamicFriction: .300000012 + staticFriction: .300000012 + bounciness: 1 + frictionCombine: 0 + bounceCombine: 3 + frictionDirection2: {x: 0, y: 0, z: 0} + dynamicFriction2: 0 + staticFriction2: 0 +--- !u!1002 &13400001 +EditorExtensionImpl: + serializedVersion: 6 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Bouncy.physicmaterial.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Bouncy.physicmaterial.meta new file mode 100644 index 0000000..e61af05 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Bouncy.physicmaterial.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9f93f63d068b08c459038c40fce897d8 +timeCreated: 1427463081 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Ice.physicmaterial b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Ice.physicmaterial new file mode 100644 index 0000000..badde0f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Ice.physicmaterial @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!134 &13400000 +PhysicMaterial: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Ice + dynamicFriction: .100000001 + staticFriction: .100000001 + bounciness: 0 + frictionCombine: 2 + bounceCombine: 2 + frictionDirection2: {x: 0, y: 0, z: 0} + dynamicFriction2: 0 + staticFriction2: 0 +--- !u!1002 &13400001 +EditorExtensionImpl: + serializedVersion: 6 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Ice.physicmaterial.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Ice.physicmaterial.meta new file mode 100644 index 0000000..867b252 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Ice.physicmaterial.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ba92fb44336020f40bdf294bb66bc9da +timeCreated: 1427463081 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/MaxFriction.physicMaterial b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/MaxFriction.physicMaterial new file mode 100644 index 0000000..ed55da9 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/MaxFriction.physicMaterial @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!134 &13400000 +PhysicMaterial: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: MaxFriction + dynamicFriction: 1 + staticFriction: 1 + bounciness: 0 + frictionCombine: 3 + bounceCombine: 0 + frictionDirection2: {x: 0, y: 0, z: 0} + dynamicFriction2: 0 + staticFriction2: 0 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/MaxFriction.physicMaterial.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/MaxFriction.physicMaterial.meta new file mode 100644 index 0000000..9e5494f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/MaxFriction.physicMaterial.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e52fb17f9b1e7fd48b8955f1391d3688 +timeCreated: 1427463081 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Metal.physicmaterial b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Metal.physicmaterial new file mode 100644 index 0000000..13c5df6 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Metal.physicmaterial @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!134 &13400000 +PhysicMaterial: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Metal + dynamicFriction: .150000006 + staticFriction: .150000006 + bounciness: 0 + frictionCombine: 1 + bounceCombine: 0 + frictionDirection2: {x: 0, y: 0, z: 0} + dynamicFriction2: 0 + staticFriction2: 0 +--- !u!1002 &13400001 +EditorExtensionImpl: + serializedVersion: 6 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Metal.physicmaterial.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Metal.physicmaterial.meta new file mode 100644 index 0000000..7bbef68 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Metal.physicmaterial.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 01571ba68fb2dad46aa03094ab219579 +timeCreated: 1427463081 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Rubber.physicmaterial b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Rubber.physicmaterial new file mode 100644 index 0000000..1260bec --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Rubber.physicmaterial @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!134 &13400000 +PhysicMaterial: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Rubber + dynamicFriction: 1 + staticFriction: 1 + bounciness: .5 + frictionCombine: 3 + bounceCombine: 0 + frictionDirection2: {x: 0, y: 0, z: 0} + dynamicFriction2: 0 + staticFriction2: 0 +--- !u!1002 &13400001 +EditorExtensionImpl: + serializedVersion: 6 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Rubber.physicmaterial.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Rubber.physicmaterial.meta new file mode 100644 index 0000000..99c8d4e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Rubber.physicmaterial.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 52baaeb214519f347a35cf0edfd262ff +timeCreated: 1427463081 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Wood.physicmaterial b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Wood.physicmaterial new file mode 100644 index 0000000..b6305f7 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Wood.physicmaterial @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!134 &13400000 +PhysicMaterial: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Wood + dynamicFriction: .449999988 + staticFriction: .449999988 + bounciness: 0 + frictionCombine: 0 + bounceCombine: 0 + frictionDirection2: {x: 0, y: 0, z: 0} + dynamicFriction2: 0 + staticFriction2: 0 +--- !u!1002 &13400001 +EditorExtensionImpl: + serializedVersion: 6 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Wood.physicmaterial.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Wood.physicmaterial.meta new file mode 100644 index 0000000..d814eca --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/Wood.physicmaterial.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3aeb7dadc0c69d54d9e5777e9d5631f1 +timeCreated: 1427463081 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/ZeroFriction.physicMaterial b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/ZeroFriction.physicMaterial new file mode 100644 index 0000000..4a45cf3 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/ZeroFriction.physicMaterial @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!134 &13400000 +PhysicMaterial: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: ZeroFriction + dynamicFriction: 0 + staticFriction: 0 + bounciness: 0 + frictionCombine: 2 + bounceCombine: 0 + frictionDirection2: {x: 0, y: 0, z: 0} + dynamicFriction2: 0 + staticFriction2: 0 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/ZeroFriction.physicMaterial.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/ZeroFriction.physicMaterial.meta new file mode 100644 index 0000000..a3a5eae --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/PhysicsMaterials/ZeroFriction.physicMaterial.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c2815a7ab32e42c4bb42f59caacb8ec1 +timeCreated: 1427463081 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility.meta new file mode 100644 index 0000000..14f2d66 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8fb26caddeedb41c9ae5c09a23c52942 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ActivateTrigger.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ActivateTrigger.cs new file mode 100644 index 0000000..2839ab6 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ActivateTrigger.cs @@ -0,0 +1,95 @@ +using System; +using UnityEngine; +using Object = UnityEngine.Object; + +namespace UnityStandardAssets.Utility +{ + public class ActivateTrigger : MonoBehaviour + { + // A multi-purpose script which causes an action to occur when + // a trigger collider is entered. + public enum Mode + { + Trigger = 0, // Just broadcast the action on to the target + Replace = 1, // replace target with source + Activate = 2, // Activate the target GameObject + Enable = 3, // Enable a component + Animate = 4, // Start animation on target + Deactivate = 5 // Decativate target GameObject + } + + public Mode action = Mode.Activate; // The action to accomplish + public Object target; // The game object to affect. If none, the trigger work on this game object + public GameObject source; + public int triggerCount = 1; + public bool repeatTrigger = false; + + + private void DoActivateTrigger() + { + triggerCount--; + + if (triggerCount == 0 || repeatTrigger) + { + Object currentTarget = target ?? gameObject; + Behaviour targetBehaviour = currentTarget as Behaviour; + GameObject targetGameObject = currentTarget as GameObject; + if (targetBehaviour != null) + { + targetGameObject = targetBehaviour.gameObject; + } + + switch (action) + { + case Mode.Trigger: + if (targetGameObject != null) + { + targetGameObject.BroadcastMessage("DoActivateTrigger"); + } + break; + case Mode.Replace: + if (source != null) + { + if (targetGameObject != null) + { + Instantiate(source, targetGameObject.transform.position, + targetGameObject.transform.rotation); + DestroyObject(targetGameObject); + } + } + break; + case Mode.Activate: + if (targetGameObject != null) + { + targetGameObject.SetActive(true); + } + break; + case Mode.Enable: + if (targetBehaviour != null) + { + targetBehaviour.enabled = true; + } + break; + case Mode.Animate: + if (targetGameObject != null) + { + targetGameObject.GetComponent().Play(); + } + break; + case Mode.Deactivate: + if (targetGameObject != null) + { + targetGameObject.SetActive(false); + } + break; + } + } + } + + + private void OnTriggerEnter(Collider other) + { + DoActivateTrigger(); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ActivateTrigger.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ActivateTrigger.cs.meta new file mode 100644 index 0000000..fd86651 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ActivateTrigger.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c8634e062924929664361c08745211fb +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/AutoMobileShaderSwitch.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/AutoMobileShaderSwitch.cs new file mode 100644 index 0000000..319e77a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/AutoMobileShaderSwitch.cs @@ -0,0 +1,199 @@ +using System; +using System.Collections.Generic; +using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace UnityStandardAssets.Utility +{ + public class AutoMobileShaderSwitch : MonoBehaviour + { + [SerializeField] private ReplacementList m_ReplacementList; + + // Use this for initialization + private void OnEnable() + { +#if UNITY_IPHONE || UNITY_ANDROID || UNITY_WP8 || UNITY_BLACKBERRY + var renderers = FindObjectsOfType(); + Debug.Log (renderers.Length+" renderers"); + var oldMaterials = new List(); + var newMaterials = new List(); + + int materialsReplaced = 0; + int materialInstancesReplaced = 0; + + foreach(ReplacementDefinition replacementDef in m_ReplacementList.items) + { + foreach(var r in renderers) + { + Material[] modifiedMaterials = null; + for(int n=0; n 0) + { + for (int i = -1; i < items.arraySize; ++i) + { + var item = items.GetArrayElementAtIndex(i); + + float rowX = x; + for (int n = 0; n < props.Length; ++n) + { + float w = widths[n]*inspectorWidth; + + // Calculate rects + Rect rect = new Rect(rowX, y, w, lineHeight); + rowX += w; + + if (i == -1) + { + // draw title labels + EditorGUI.LabelField(rect, titles[n]); + } + else + { + if (props[n] == "-" || props[n] == "^" || props[n] == "v") + { + if (GUI.Button(rect, props[n])) + { + switch (props[n]) + { + case "-": + items.DeleteArrayElementAtIndex(i); + items.DeleteArrayElementAtIndex(i); + changedLength = true; + break; + case "v": + if (i > 0) + { + items.MoveArrayElement(i, i + 1); + } + break; + case "^": + if (i < items.arraySize - 1) + { + items.MoveArrayElement(i, i - 1); + } + break; + } + } + } + else + { + SerializedProperty prop = item.FindPropertyRelative(props[n]); + EditorGUI.PropertyField(rect, prop, GUIContent.none); + } + } + } + + y += lineHeight + k_Spacing; + if (changedLength) + { + break; + } + } + } + + // add button + var addButtonRect = new Rect((x + position.width) - widths[widths.Length - 1]*inspectorWidth, y, + widths[widths.Length - 1]*inspectorWidth, lineHeight); + if (GUI.Button(addButtonRect, "+")) + { + items.InsertArrayElementAtIndex(items.arraySize); + } + + y += lineHeight + k_Spacing; + + // Set indent back to what it was + EditorGUI.indentLevel = indent; + EditorGUI.EndProperty(); + } + + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + SerializedProperty items = property.FindPropertyRelative("items"); + float lineAndSpace = k_LineHeight + k_Spacing; + return 40 + (items.arraySize*lineAndSpace) + lineAndSpace; + } + } +#endif +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/AutoMobileShaderSwitch.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/AutoMobileShaderSwitch.cs.meta new file mode 100644 index 0000000..4108156 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/AutoMobileShaderSwitch.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9c4978ff6447f9040b84acc89b0bbdc8 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/AutoMoveAndRotate.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/AutoMoveAndRotate.cs new file mode 100644 index 0000000..a6aea79 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/AutoMoveAndRotate.cs @@ -0,0 +1,41 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.Utility +{ + public class AutoMoveAndRotate : MonoBehaviour + { + public Vector3andSpace moveUnitsPerSecond; + public Vector3andSpace rotateDegreesPerSecond; + public bool ignoreTimescale; + private float m_LastRealTime; + + + private void Start() + { + m_LastRealTime = Time.realtimeSinceStartup; + } + + + // Update is called once per frame + private void Update() + { + float deltaTime = Time.deltaTime; + if (ignoreTimescale) + { + deltaTime = (Time.realtimeSinceStartup - m_LastRealTime); + m_LastRealTime = Time.realtimeSinceStartup; + } + transform.Translate(moveUnitsPerSecond.value*deltaTime, moveUnitsPerSecond.space); + transform.Rotate(rotateDegreesPerSecond.value*deltaTime, moveUnitsPerSecond.space); + } + + + [Serializable] + public class Vector3andSpace + { + public Vector3 value; + public Space space = Space.Self; + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/AutoMoveAndRotate.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/AutoMoveAndRotate.cs.meta new file mode 100644 index 0000000..30b395a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/AutoMoveAndRotate.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a1347817507220a4384f3ff6f7c24546 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/CameraRefocus.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/CameraRefocus.cs new file mode 100644 index 0000000..8f58b35 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/CameraRefocus.cs @@ -0,0 +1,58 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.Utility +{ + public class CameraRefocus + { + public Camera Camera; + public Vector3 Lookatpoint; + public Transform Parent; + + private Vector3 m_OrigCameraPos; + private bool m_Refocus; + + + public CameraRefocus(Camera camera, Transform parent, Vector3 origCameraPos) + { + m_OrigCameraPos = origCameraPos; + Camera = camera; + Parent = parent; + } + + + public void ChangeCamera(Camera camera) + { + Camera = camera; + } + + + public void ChangeParent(Transform parent) + { + Parent = parent; + } + + + public void GetFocusPoint() + { + RaycastHit hitInfo; + if (Physics.Raycast(Parent.transform.position + m_OrigCameraPos, Parent.transform.forward, out hitInfo, + 100f)) + { + Lookatpoint = hitInfo.point; + m_Refocus = true; + return; + } + m_Refocus = false; + } + + + public void SetFocusPoint() + { + if (m_Refocus) + { + Camera.transform.LookAt(Lookatpoint); + } + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/CameraRefocus.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/CameraRefocus.cs.meta new file mode 100644 index 0000000..9300ded --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/CameraRefocus.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d1e2e7a54dcc8694ab1eca46d072f264 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/CurveControlledBob.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/CurveControlledBob.cs new file mode 100644 index 0000000..3e0e505 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/CurveControlledBob.cs @@ -0,0 +1,54 @@ +using System; +using UnityEngine; + + +namespace UnityStandardAssets.Utility +{ + [Serializable] + public class CurveControlledBob + { + public float HorizontalBobRange = 0.33f; + public float VerticalBobRange = 0.33f; + public AnimationCurve Bobcurve = new AnimationCurve(new Keyframe(0f, 0f), new Keyframe(0.5f, 1f), + new Keyframe(1f, 0f), new Keyframe(1.5f, -1f), + new Keyframe(2f, 0f)); // sin curve for head bob + public float VerticaltoHorizontalRatio = 1f; + + private float m_CyclePositionX; + private float m_CyclePositionY; + private float m_BobBaseInterval; + private Vector3 m_OriginalCameraPosition; + private float m_Time; + + + public void Setup(Camera camera, float bobBaseInterval) + { + m_BobBaseInterval = bobBaseInterval; + m_OriginalCameraPosition = camera.transform.localPosition; + + // get the length of the curve in time + m_Time = Bobcurve[Bobcurve.length - 1].time; + } + + + public Vector3 DoHeadBob(float speed) + { + float xPos = m_OriginalCameraPosition.x + (Bobcurve.Evaluate(m_CyclePositionX)*HorizontalBobRange); + float yPos = m_OriginalCameraPosition.y + (Bobcurve.Evaluate(m_CyclePositionY)*VerticalBobRange); + + m_CyclePositionX += (speed*Time.deltaTime)/m_BobBaseInterval; + m_CyclePositionY += ((speed*Time.deltaTime)/m_BobBaseInterval)*VerticaltoHorizontalRatio; + + if (m_CyclePositionX > m_Time) + { + m_CyclePositionX = m_CyclePositionX - m_Time; + } + if (m_CyclePositionY > m_Time) + { + m_CyclePositionY = m_CyclePositionY - m_Time; + } + + return new Vector3(xPos, yPos, 0f); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/CurveControlledBob.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/CurveControlledBob.cs.meta new file mode 100644 index 0000000..3b9374f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/CurveControlledBob.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 492f54f4accf00440828ffcb9e4fcc19 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/DragRigidbody.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/DragRigidbody.cs new file mode 100644 index 0000000..69aff29 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/DragRigidbody.cs @@ -0,0 +1,96 @@ +using System; +using System.Collections; +using UnityEngine; + +namespace UnityStandardAssets.Utility +{ + public class DragRigidbody : MonoBehaviour + { + const float k_Spring = 50.0f; + const float k_Damper = 5.0f; + const float k_Drag = 10.0f; + const float k_AngularDrag = 5.0f; + const float k_Distance = 0.2f; + const bool k_AttachToCenterOfMass = false; + + private SpringJoint m_SpringJoint; + + + private void Update() + { + // Make sure the user pressed the mouse down + if (!Input.GetMouseButtonDown(0)) + { + return; + } + + var mainCamera = FindCamera(); + + // We need to actually hit an object + RaycastHit hit = new RaycastHit(); + if ( + !Physics.Raycast(mainCamera.ScreenPointToRay(Input.mousePosition).origin, + mainCamera.ScreenPointToRay(Input.mousePosition).direction, out hit, 100, + Physics.DefaultRaycastLayers)) + { + return; + } + // We need to hit a rigidbody that is not kinematic + if (!hit.rigidbody || hit.rigidbody.isKinematic) + { + return; + } + + if (!m_SpringJoint) + { + var go = new GameObject("Rigidbody dragger"); + Rigidbody body = go.AddComponent(); + m_SpringJoint = go.AddComponent(); + body.isKinematic = true; + } + + m_SpringJoint.transform.position = hit.point; + m_SpringJoint.anchor = Vector3.zero; + + m_SpringJoint.spring = k_Spring; + m_SpringJoint.damper = k_Damper; + m_SpringJoint.maxDistance = k_Distance; + m_SpringJoint.connectedBody = hit.rigidbody; + + StartCoroutine("DragObject", hit.distance); + } + + + private IEnumerator DragObject(float distance) + { + var oldDrag = m_SpringJoint.connectedBody.drag; + var oldAngularDrag = m_SpringJoint.connectedBody.angularDrag; + m_SpringJoint.connectedBody.drag = k_Drag; + m_SpringJoint.connectedBody.angularDrag = k_AngularDrag; + var mainCamera = FindCamera(); + while (Input.GetMouseButton(0)) + { + var ray = mainCamera.ScreenPointToRay(Input.mousePosition); + m_SpringJoint.transform.position = ray.GetPoint(distance); + yield return null; + } + if (m_SpringJoint.connectedBody) + { + m_SpringJoint.connectedBody.drag = oldDrag; + m_SpringJoint.connectedBody.angularDrag = oldAngularDrag; + m_SpringJoint.connectedBody = null; + } + } + + + private Camera FindCamera() + { + if (GetComponent()) + { + return GetComponent(); + } + + return Camera.main; + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/DragRigidbody.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/DragRigidbody.cs.meta new file mode 100644 index 0000000..42579c5 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/DragRigidbody.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 58650e15a2607e44daa0f150e0061d89 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/DynamicShadowSettings.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/DynamicShadowSettings.cs new file mode 100644 index 0000000..0ac577b --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/DynamicShadowSettings.cs @@ -0,0 +1,51 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.Utility +{ + public class DynamicShadowSettings : MonoBehaviour + { + public Light sunLight; + public float minHeight = 10; + public float minShadowDistance = 80; + public float minShadowBias = 1; + public float maxHeight = 1000; + public float maxShadowDistance = 10000; + public float maxShadowBias = 0.1f; + public float adaptTime = 1; + + private float m_SmoothHeight; + private float m_ChangeSpeed; + private float m_OriginalStrength = 1; + + + private void Start() + { + m_OriginalStrength = sunLight.shadowStrength; + } + + + // Update is called once per frame + private void Update() + { + Ray ray = new Ray(Camera.main.transform.position, -Vector3.up); + RaycastHit hit; + float height = transform.position.y; + if (Physics.Raycast(ray, out hit)) + { + height = hit.distance; + } + + if (Mathf.Abs(height - m_SmoothHeight) > 1) + { + m_SmoothHeight = Mathf.SmoothDamp(m_SmoothHeight, height, ref m_ChangeSpeed, adaptTime); + } + + float i = Mathf.InverseLerp(minHeight, maxHeight, m_SmoothHeight); + + QualitySettings.shadowDistance = Mathf.Lerp(minShadowDistance, maxShadowDistance, i); + sunLight.shadowBias = Mathf.Lerp(minShadowBias, maxShadowBias, 1 - ((1 - i)*(1 - i))); + sunLight.shadowStrength = Mathf.Lerp(m_OriginalStrength, 0, i); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/DynamicShadowSettings.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/DynamicShadowSettings.cs.meta new file mode 100644 index 0000000..1bf45ee --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/DynamicShadowSettings.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8566902b50d5bfb4fb7f8b89f9cdbe8b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/EventSystemChecker.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/EventSystemChecker.cs new file mode 100644 index 0000000..90c27d1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/EventSystemChecker.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections; +using UnityEngine; +using UnityEngine.EventSystems; + +public class EventSystemChecker : MonoBehaviour +{ + //public GameObject eventSystem; + + // Use this for initialization + void Awake () + { + if(!FindObjectOfType()) + { + //Instantiate(eventSystem); + GameObject obj = new GameObject("EventSystem"); + obj.AddComponent(); + obj.AddComponent().forceModuleActive = true; + obj.AddComponent(); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/EventSystemChecker.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/EventSystemChecker.cs.meta new file mode 100644 index 0000000..3b131fa --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/EventSystemChecker.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9c0578910bbe00d43919a92c7b9893fe +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/FOVKick.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/FOVKick.cs new file mode 100644 index 0000000..8f8ede3 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/FOVKick.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections; +using UnityEngine; + +namespace UnityStandardAssets.Utility +{ + [Serializable] + public class FOVKick + { + public Camera Camera; // optional camera setup, if null the main camera will be used + [HideInInspector] public float originalFov; // the original fov + public float FOVIncrease = 3f; // the amount the field of view increases when going into a run + public float TimeToIncrease = 1f; // the amount of time the field of view will increase over + public float TimeToDecrease = 1f; // the amount of time the field of view will take to return to its original size + public AnimationCurve IncreaseCurve; + + + public void Setup(Camera camera) + { + CheckStatus(camera); + + Camera = camera; + originalFov = camera.fieldOfView; + } + + + private void CheckStatus(Camera camera) + { + if (camera == null) + { + throw new Exception("FOVKick camera is null, please supply the camera to the constructor"); + } + + if (IncreaseCurve == null) + { + throw new Exception( + "FOVKick Increase curve is null, please define the curve for the field of view kicks"); + } + } + + + public void ChangeCamera(Camera camera) + { + Camera = camera; + } + + + public IEnumerator FOVKickUp() + { + float t = Mathf.Abs((Camera.fieldOfView - originalFov)/FOVIncrease); + while (t < TimeToIncrease) + { + Camera.fieldOfView = originalFov + (IncreaseCurve.Evaluate(t/TimeToIncrease)*FOVIncrease); + t += Time.deltaTime; + yield return new WaitForEndOfFrame(); + } + } + + + public IEnumerator FOVKickDown() + { + float t = Mathf.Abs((Camera.fieldOfView - originalFov)/FOVIncrease); + while (t > 0) + { + Camera.fieldOfView = originalFov + (IncreaseCurve.Evaluate(t/TimeToDecrease)*FOVIncrease); + t -= Time.deltaTime; + yield return new WaitForEndOfFrame(); + } + //make sure that fov returns to the original size + Camera.fieldOfView = originalFov; + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/FOVKick.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/FOVKick.cs.meta new file mode 100644 index 0000000..50d5df6 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/FOVKick.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6045a93fb05b9c74884821030da2c46c +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/FPSCounter.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/FPSCounter.cs new file mode 100644 index 0000000..fc03cbf --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/FPSCounter.cs @@ -0,0 +1,38 @@ +using System; +using UnityEngine; +using UnityEngine.UI; + +namespace UnityStandardAssets.Utility +{ + [RequireComponent(typeof (Text))] + public class FPSCounter : MonoBehaviour + { + const float fpsMeasurePeriod = 0.5f; + private int m_FpsAccumulator = 0; + private float m_FpsNextPeriod = 0; + private int m_CurrentFps; + const string display = "{0} FPS"; + private Text m_Text; + + + private void Start() + { + m_FpsNextPeriod = Time.realtimeSinceStartup + fpsMeasurePeriod; + m_Text = GetComponent(); + } + + + private void Update() + { + // measure average frames per second + m_FpsAccumulator++; + if (Time.realtimeSinceStartup > m_FpsNextPeriod) + { + m_CurrentFps = (int) (m_FpsAccumulator/fpsMeasurePeriod); + m_FpsAccumulator = 0; + m_FpsNextPeriod += fpsMeasurePeriod; + m_Text.text = string.Format(display, m_CurrentFps); + } + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/FPSCounter.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/FPSCounter.cs.meta new file mode 100644 index 0000000..8b9f3b8 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/FPSCounter.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 22bbf57ec543cee42a5aa0ec2dd9e457 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/FollowTarget.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/FollowTarget.cs new file mode 100644 index 0000000..d0c0ebb --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/FollowTarget.cs @@ -0,0 +1,18 @@ +using System; +using UnityEngine; + + +namespace UnityStandardAssets.Utility +{ + public class FollowTarget : MonoBehaviour + { + public Transform target; + public Vector3 offset = new Vector3(0f, 7.5f, 0f); + + + private void LateUpdate() + { + transform.position = target.position + offset; + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/FollowTarget.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/FollowTarget.cs.meta new file mode 100644 index 0000000..28aa661 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/FollowTarget.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 246cc59c7a84ea44f87f6b70acfe30c5 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ForcedReset.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ForcedReset.cs new file mode 100644 index 0000000..0bc402a --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ForcedReset.cs @@ -0,0 +1,17 @@ +using System; +using UnityEngine; +using UnityStandardAssets.CrossPlatformInput; + +[RequireComponent(typeof (GUITexture))] +public class ForcedReset : MonoBehaviour +{ + private void Update() + { + // if we have forced a reset ... + if (CrossPlatformInputManager.GetButtonDown("ResetObject")) + { + //... reload the scene + Application.LoadLevelAsync(Application.loadedLevelName); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ForcedReset.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ForcedReset.cs.meta new file mode 100644 index 0000000..56690a5 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ForcedReset.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9b886447cba80f74e820adb3c9e70c76 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/LerpControlledBob.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/LerpControlledBob.cs new file mode 100644 index 0000000..aa8128e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/LerpControlledBob.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections; +using UnityEngine; + +namespace UnityStandardAssets.Utility +{ + [Serializable] + public class LerpControlledBob + { + public float BobDuration; + public float BobAmount; + + private float m_Offset = 0f; + + + // provides the offset that can be used + public float Offset() + { + return m_Offset; + } + + + public IEnumerator DoBobCycle() + { + // make the camera move down slightly + float t = 0f; + while (t < BobDuration) + { + m_Offset = Mathf.Lerp(0f, BobAmount, t/BobDuration); + t += Time.deltaTime; + yield return new WaitForFixedUpdate(); + } + + // make it move back to neutral + t = 0f; + while (t < BobDuration) + { + m_Offset = Mathf.Lerp(BobAmount, 0f, t/BobDuration); + t += Time.deltaTime; + yield return new WaitForFixedUpdate(); + } + m_Offset = 0f; + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/LerpControlledBob.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/LerpControlledBob.cs.meta new file mode 100644 index 0000000..5321d93 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/LerpControlledBob.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c1bbfafbde15c854681023b9e01e12dd +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ObjectResetter.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ObjectResetter.cs new file mode 100644 index 0000000..875b8ba --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ObjectResetter.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace UnityStandardAssets.Utility +{ + public class ObjectResetter : MonoBehaviour + { + private Vector3 originalPosition; + private Quaternion originalRotation; + private List originalStructure; + + private Rigidbody Rigidbody; + + // Use this for initialization + private void Start() + { + originalStructure = new List(GetComponentsInChildren()); + originalPosition = transform.position; + originalRotation = transform.rotation; + + Rigidbody = GetComponent(); + } + + + public void DelayedReset(float delay) + { + StartCoroutine(ResetCoroutine(delay)); + } + + + public IEnumerator ResetCoroutine(float delay) + { + yield return new WaitForSeconds(delay); + + // remove any gameobjects added (fire, skid trails, etc) + foreach (var t in GetComponentsInChildren()) + { + if (!originalStructure.Contains(t)) + { + t.parent = null; + } + } + + transform.position = originalPosition; + transform.rotation = originalRotation; + if (Rigidbody) + { + Rigidbody.velocity = Vector3.zero; + Rigidbody.angularVelocity = Vector3.zero; + } + + SendMessage("Reset"); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ObjectResetter.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ObjectResetter.cs.meta new file mode 100644 index 0000000..4bcdef9 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ObjectResetter.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 643c971818f68d3439e84b5d8bdafe07 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ParticleSystemDestroyer.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ParticleSystemDestroyer.cs new file mode 100644 index 0000000..183d394 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ParticleSystemDestroyer.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections; +using UnityEngine; +using Random = UnityEngine.Random; + +namespace UnityStandardAssets.Utility +{ + public class ParticleSystemDestroyer : MonoBehaviour + { + // allows a particle system to exist for a specified duration, + // then shuts off emission, and waits for all particles to expire + // before destroying the gameObject + + public float minDuration = 8; + public float maxDuration = 10; + + private float m_MaxLifetime; + private bool m_EarlyStop; + + + private IEnumerator Start() + { + var systems = GetComponentsInChildren(); + + // find out the maximum lifetime of any particles in this effect + foreach (var system in systems) + { + m_MaxLifetime = Mathf.Max(system.startLifetime, m_MaxLifetime); + } + + // wait for random duration + + float stopTime = Time.time + Random.Range(minDuration, maxDuration); + + while (Time.time < stopTime || m_EarlyStop) + { + yield return null; + } + Debug.Log("stopping " + name); + + // turn off emission + foreach (var system in systems) + { + system.enableEmission = false; + } + BroadcastMessage("Extinguish", SendMessageOptions.DontRequireReceiver); + + // wait for any remaining particles to expire + yield return new WaitForSeconds(m_MaxLifetime); + + Destroy(gameObject); + } + + + public void Stop() + { + // stops the particle system early + m_EarlyStop = true; + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ParticleSystemDestroyer.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ParticleSystemDestroyer.cs.meta new file mode 100644 index 0000000..ac73e15 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/ParticleSystemDestroyer.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 29014cd42b6d273408e0ceefd336c0b3 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/PlatformSpecificContent.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/PlatformSpecificContent.cs new file mode 100644 index 0000000..fde9b9f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/PlatformSpecificContent.cs @@ -0,0 +1,108 @@ +using System; +using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace UnityStandardAssets.Utility +{ +#if UNITY_EDITOR + + [ExecuteInEditMode] +#endif + public class PlatformSpecificContent : MonoBehaviour + { + private enum BuildTargetGroup + { + Standalone, + Mobile + } + + [SerializeField] private BuildTargetGroup m_BuildTargetGroup; + [SerializeField] private GameObject[] m_Content = new GameObject[0]; + [SerializeField] private MonoBehaviour[] m_MonoBehaviours = new MonoBehaviour[0]; + [SerializeField] private bool m_ChildrenOfThisObject; + +#if !UNITY_EDITOR + void OnEnable() + { + CheckEnableContent(); + } +#endif + +#if UNITY_EDITOR + + private void OnEnable() + { + EditorUserBuildSettings.activeBuildTargetChanged += Update; + EditorApplication.update += Update; + } + + + private void OnDisable() + { + EditorUserBuildSettings.activeBuildTargetChanged -= Update; + EditorApplication.update -= Update; + } + + + private void Update() + { + CheckEnableContent(); + } +#endif + + + private void CheckEnableContent() + { +#if (UNITY_IPHONE || UNITY_ANDROID || UNITY_WP8 || UNITY_BLACKBERRY ) + if (m_BuildTargetGroup == BuildTargetGroup.Mobile) + { + EnableContent(true); + } else { + EnableContent(false); + } +#endif + +#if !(UNITY_IPHONE || UNITY_ANDROID || UNITY_WP8 || UNITY_BLACKBERRY ) + if (m_BuildTargetGroup == BuildTargetGroup.Mobile) + { + EnableContent(false); + } + else + { + EnableContent(true); + } +#endif + } + + + private void EnableContent(bool enabled) + { + if (m_Content.Length > 0) + { + foreach (var g in m_Content) + { + if (g != null) + { + g.SetActive(enabled); + } + } + } + if (m_ChildrenOfThisObject) + { + foreach (Transform t in transform) + { + t.gameObject.SetActive(enabled); + } + } + if (m_MonoBehaviours.Length > 0) + { + foreach (var monoBehaviour in m_MonoBehaviours) + { + monoBehaviour.enabled = enabled; + } + } + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/PlatformSpecificContent.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/PlatformSpecificContent.cs.meta new file mode 100644 index 0000000..55d1acb --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/PlatformSpecificContent.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b27507c5d0efbbd47ac8c1de9a1a0a35 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/Prefabs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/Prefabs.meta new file mode 100644 index 0000000..161603d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/Prefabs.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: b43a4ef15621158419a2b639f7a98245 +folderAsset: yes +DefaultImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/Prefabs/FramerateCounter.prefab b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/Prefabs/FramerateCounter.prefab new file mode 100644 index 0000000..ac9ce8d --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/Prefabs/FramerateCounter.prefab @@ -0,0 +1,183 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409990} + - 223: {fileID: 22323452} + - 114: {fileID: 11403178} + - 114: {fileID: 11448042} + m_Layer: 5 + m_Name: FramerateCounter + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &167734 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22488988} + - 222: {fileID: 22250932} + - 114: {fileID: 11410038} + - 114: {fileID: 11400482} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11400482 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167734} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 22bbf57ec543cee42a5aa0ec2dd9e457, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11403178 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &11410038 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167734} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .196078435, g: .196078435, b: .196078435, a: 1} + m_FontData: + m_Font: {fileID: 12800000, guid: b51a3e520f9164da198dc59c8acfccd6, type: 3} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_RichText: 0 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'FPS + +' +--- !u!114 &11448042 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!222 &22250932 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167734} +--- !u!223 &22323452 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!224 &22409990 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 22488988} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!224 &22488988 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 167734} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22409990} + m_RootOrder: 0 + m_AnchorMin: {x: .5, y: 1} + m_AnchorMax: {x: .5, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: .5, y: 1} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/Prefabs/FramerateCounter.prefab.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/Prefabs/FramerateCounter.prefab.meta new file mode 100644 index 0000000..7b185b7 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/Prefabs/FramerateCounter.prefab.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 81154777d5417884981849c5243f6c01 +NativeFormatImporter: + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/SimpleActivatorMenu.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/SimpleActivatorMenu.cs new file mode 100644 index 0000000..fe5f75f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/SimpleActivatorMenu.cs @@ -0,0 +1,38 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.Utility +{ + public class SimpleActivatorMenu : MonoBehaviour + { + // An incredibly simple menu which, when given references + // to gameobjects in the scene + public GUIText camSwitchButton; + public GameObject[] objects; + + + private int m_CurrentActiveObject; + + + private void OnEnable() + { + // active object starts from first in array + m_CurrentActiveObject = 0; + camSwitchButton.text = objects[m_CurrentActiveObject].name; + } + + + public void NextCamera() + { + int nextactiveobject = m_CurrentActiveObject + 1 >= objects.Length ? 0 : m_CurrentActiveObject + 1; + + for (int i = 0; i < objects.Length; i++) + { + objects[i].SetActive(i == nextactiveobject); + } + + m_CurrentActiveObject = nextactiveobject; + camSwitchButton.text = objects[m_CurrentActiveObject].name; + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/SimpleActivatorMenu.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/SimpleActivatorMenu.cs.meta new file mode 100644 index 0000000..45823d1 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/SimpleActivatorMenu.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 69b69a5b0e0a85b4aa97a7edc40c37d1 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/SimpleMouseRotator.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/SimpleMouseRotator.cs new file mode 100644 index 0000000..82e8a98 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/SimpleMouseRotator.cs @@ -0,0 +1,113 @@ +using System; +using UnityEngine; +using UnityStandardAssets.CrossPlatformInput; + +namespace UnityStandardAssets.Utility +{ + public class SimpleMouseRotator : MonoBehaviour + { + // A mouselook behaviour with constraints which operate relative to + // this gameobject's initial rotation. + // Only rotates around local X and Y. + // Works in local coordinates, so if this object is parented + // to another moving gameobject, its local constraints will + // operate correctly + // (Think: looking out the side window of a car, or a gun turret + // on a moving spaceship with a limited angular range) + // to have no constraints on an axis, set the rotationRange to 360 or greater. + public Vector2 rotationRange = new Vector3(70, 70); + public float rotationSpeed = 10; + public float dampingTime = 0.2f; + public bool autoZeroVerticalOnMobile = true; + public bool autoZeroHorizontalOnMobile = false; + public bool relative = true; + + + private Vector3 m_TargetAngles; + private Vector3 m_FollowAngles; + private Vector3 m_FollowVelocity; + private Quaternion m_OriginalRotation; + + + private void Start() + { + m_OriginalRotation = transform.localRotation; + } + + + private void Update() + { + // we make initial calculations from the original local rotation + transform.localRotation = m_OriginalRotation; + + // read input from mouse or mobile controls + float inputH; + float inputV; + if (relative) + { + inputH = CrossPlatformInputManager.GetAxis("Mouse X"); + inputV = CrossPlatformInputManager.GetAxis("Mouse Y"); + + // wrap values to avoid springing quickly the wrong way from positive to negative + if (m_TargetAngles.y > 180) + { + m_TargetAngles.y -= 360; + m_FollowAngles.y -= 360; + } + if (m_TargetAngles.x > 180) + { + m_TargetAngles.x -= 360; + m_FollowAngles.x -= 360; + } + if (m_TargetAngles.y < -180) + { + m_TargetAngles.y += 360; + m_FollowAngles.y += 360; + } + if (m_TargetAngles.x < -180) + { + m_TargetAngles.x += 360; + m_FollowAngles.x += 360; + } + +#if MOBILE_INPUT + // on mobile, sometimes we want input mapped directly to tilt value, + // so it springs back automatically when the look input is released. + if (autoZeroHorizontalOnMobile) { + m_TargetAngles.y = Mathf.Lerp (-rotationRange.y * 0.5f, rotationRange.y * 0.5f, inputH * .5f + .5f); + } else { + m_TargetAngles.y += inputH * rotationSpeed; + } + if (autoZeroVerticalOnMobile) { + m_TargetAngles.x = Mathf.Lerp (-rotationRange.x * 0.5f, rotationRange.x * 0.5f, inputV * .5f + .5f); + } else { + m_TargetAngles.x += inputV * rotationSpeed; + } +#else + // with mouse input, we have direct control with no springback required. + m_TargetAngles.y += inputH*rotationSpeed; + m_TargetAngles.x += inputV*rotationSpeed; +#endif + + // clamp values to allowed range + m_TargetAngles.y = Mathf.Clamp(m_TargetAngles.y, -rotationRange.y*0.5f, rotationRange.y*0.5f); + m_TargetAngles.x = Mathf.Clamp(m_TargetAngles.x, -rotationRange.x*0.5f, rotationRange.x*0.5f); + } + else + { + inputH = Input.mousePosition.x; + inputV = Input.mousePosition.y; + + // set values to allowed range + m_TargetAngles.y = Mathf.Lerp(-rotationRange.y*0.5f, rotationRange.y*0.5f, inputH/Screen.width); + m_TargetAngles.x = Mathf.Lerp(-rotationRange.x*0.5f, rotationRange.x*0.5f, inputV/Screen.height); + } + + // smoothly interpolate current values to target angles + m_FollowAngles = Vector3.SmoothDamp(m_FollowAngles, m_TargetAngles, ref m_FollowVelocity, dampingTime); + + // update the actual gameobject's rotation + transform.localRotation = m_OriginalRotation*Quaternion.Euler(-m_FollowAngles.x, m_FollowAngles.y, 0); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/SimpleMouseRotator.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/SimpleMouseRotator.cs.meta new file mode 100644 index 0000000..4c2b617 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/SimpleMouseRotator.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: cadd54e4832aeef4b9359f44cbe335cd +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/SmoothFollow.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/SmoothFollow.cs new file mode 100644 index 0000000..f35b805 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/SmoothFollow.cs @@ -0,0 +1,61 @@ +using UnityEngine; + +namespace UnityStandardAssets.Utility +{ + public class SmoothFollow : MonoBehaviour + { + + // The target we are following + [SerializeField] + private Transform target; + // The distance in the x-z plane to the target + [SerializeField] + private float distance = 10.0f; + // the height we want the camera to be above the target + [SerializeField] + private float height = 5.0f; + + [SerializeField] + private float rotationDamping; + [SerializeField] + private float heightDamping; + + // Use this for initialization + void Start() { } + + // Update is called once per frame + void LateUpdate() + { + // Early out if we don't have a target + if (!target) + return; + + // Calculate the current rotation angles + var wantedRotationAngle = target.eulerAngles.y; + var wantedHeight = target.position.y + height; + + var currentRotationAngle = transform.eulerAngles.y; + var currentHeight = transform.position.y; + + // Damp the rotation around the y-axis + currentRotationAngle = Mathf.LerpAngle(currentRotationAngle, wantedRotationAngle, rotationDamping * Time.deltaTime); + + // Damp the height + currentHeight = Mathf.Lerp(currentHeight, wantedHeight, heightDamping * Time.deltaTime); + + // Convert the angle into a rotation + var currentRotation = Quaternion.Euler(0, currentRotationAngle, 0); + + // Set the position of the camera on the x-z plane to: + // distance meters behind the target + transform.position = target.position; + transform.position -= currentRotation * Vector3.forward * distance; + + // Set the height of the camera + transform.position = new Vector3(transform.position.x ,currentHeight , transform.position.z); + + // Always look at the target + transform.LookAt(target); + } + } +} \ No newline at end of file diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/SmoothFollow.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/SmoothFollow.cs.meta new file mode 100644 index 0000000..8e0ee92 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/SmoothFollow.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f76806479d916a64aa03f8e3eba7912f +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/TimedObjectActivator.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/TimedObjectActivator.cs new file mode 100644 index 0000000..1ee380f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/TimedObjectActivator.cs @@ -0,0 +1,215 @@ +using System; +using System.Collections; +using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace UnityStandardAssets.Utility +{ + public class TimedObjectActivator : MonoBehaviour + { + public enum Action + { + Activate, + Deactivate, + Destroy, + ReloadLevel, + Call, + } + + + [Serializable] + public class Entry + { + public GameObject target; + public Action action; + public float delay; + } + + + [Serializable] + public class Entries + { + public Entry[] entries; + } + + + public Entries entries = new Entries(); + + + private void Awake() + { + foreach (Entry entry in entries.entries) + { + switch (entry.action) + { + case Action.Activate: + StartCoroutine(Activate(entry)); + break; + case Action.Deactivate: + StartCoroutine(Deactivate(entry)); + break; + case Action.Destroy: + Destroy(entry.target, entry.delay); + break; + + case Action.ReloadLevel: + StartCoroutine(ReloadLevel(entry)); + break; + } + } + } + + + private IEnumerator Activate(Entry entry) + { + yield return new WaitForSeconds(entry.delay); + entry.target.SetActive(true); + } + + + private IEnumerator Deactivate(Entry entry) + { + yield return new WaitForSeconds(entry.delay); + entry.target.SetActive(false); + } + + + private IEnumerator ReloadLevel(Entry entry) + { + yield return new WaitForSeconds(entry.delay); + Application.LoadLevel(Application.loadedLevel); + } + } +} + + +namespace UnityStandardAssets.Utility.Inspector +{ +#if UNITY_EDITOR + [CustomPropertyDrawer(typeof (TimedObjectActivator.Entries))] + public class EntriesDrawer : PropertyDrawer + { + private const float k_LineHeight = 18; + private const float k_Spacing = 4; + + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + EditorGUI.BeginProperty(position, label, property); + + float x = position.x; + float y = position.y; + float width = position.width; + + // Draw label + EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Passive), label); + + // Don't make child fields be indented + var indent = EditorGUI.indentLevel; + EditorGUI.indentLevel = 0; + + var entries = property.FindPropertyRelative("entries"); + + if (entries.arraySize > 0) + { + float actionWidth = .25f*width; + float targetWidth = .6f*width; + float delayWidth = .1f*width; + float buttonWidth = .05f*width; + + for (int i = 0; i < entries.arraySize; ++i) + { + y += k_LineHeight + k_Spacing; + + var entry = entries.GetArrayElementAtIndex(i); + + float rowX = x; + + // Calculate rects + Rect actionRect = new Rect(rowX, y, actionWidth, k_LineHeight); + rowX += actionWidth; + + Rect targetRect = new Rect(rowX, y, targetWidth, k_LineHeight); + rowX += targetWidth; + + Rect delayRect = new Rect(rowX, y, delayWidth, k_LineHeight); + rowX += delayWidth; + + Rect buttonRect = new Rect(rowX, y, buttonWidth, k_LineHeight); + rowX += buttonWidth; + + // Draw fields - passs GUIContent.none to each so they are drawn without labels + + if (entry.FindPropertyRelative("action").enumValueIndex != + (int) TimedObjectActivator.Action.ReloadLevel) + { + EditorGUI.PropertyField(actionRect, entry.FindPropertyRelative("action"), GUIContent.none); + EditorGUI.PropertyField(targetRect, entry.FindPropertyRelative("target"), GUIContent.none); + } + else + { + actionRect.width = actionRect.width + targetRect.width; + EditorGUI.PropertyField(actionRect, entry.FindPropertyRelative("action"), GUIContent.none); + } + + EditorGUI.PropertyField(delayRect, entry.FindPropertyRelative("delay"), GUIContent.none); + if (GUI.Button(buttonRect, "-")) + { + entries.DeleteArrayElementAtIndex(i); + break; + } + } + } + + // add & sort buttons + y += k_LineHeight + k_Spacing; + + var addButtonRect = new Rect(position.x + position.width - 120, y, 60, k_LineHeight); + if (GUI.Button(addButtonRect, "Add")) + { + entries.InsertArrayElementAtIndex(entries.arraySize); + } + + var sortButtonRect = new Rect(position.x + position.width - 60, y, 60, k_LineHeight); + if (GUI.Button(sortButtonRect, "Sort")) + { + bool changed = true; + while (entries.arraySize > 1 && changed) + { + changed = false; + for (int i = 0; i < entries.arraySize - 1; ++i) + { + var e1 = entries.GetArrayElementAtIndex(i); + var e2 = entries.GetArrayElementAtIndex(i + 1); + + if (e1.FindPropertyRelative("delay").floatValue > e2.FindPropertyRelative("delay").floatValue) + { + entries.MoveArrayElement(i + 1, i); + changed = true; + break; + } + } + } + } + + + // Set indent back to what it was + EditorGUI.indentLevel = indent; + // + + + EditorGUI.EndProperty(); + } + + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + SerializedProperty entries = property.FindPropertyRelative("entries"); + float lineAndSpace = k_LineHeight + k_Spacing; + return 40 + (entries.arraySize*lineAndSpace) + lineAndSpace; + } + } +#endif +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/TimedObjectActivator.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/TimedObjectActivator.cs.meta new file mode 100644 index 0000000..e2fd0fc --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/TimedObjectActivator.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3a7cedf246fca744f90cbdc9dbe41166 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/TimedObjectDestructor.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/TimedObjectDestructor.cs new file mode 100644 index 0000000..3927e7f --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/TimedObjectDestructor.cs @@ -0,0 +1,27 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.Utility +{ + public class TimedObjectDestructor : MonoBehaviour + { + [SerializeField] private float m_TimeOut = 1.0f; + [SerializeField] private bool m_DetachChildren = false; + + + private void Awake() + { + Invoke("DestroyNow", m_TimeOut); + } + + + private void DestroyNow() + { + if (m_DetachChildren) + { + transform.DetachChildren(); + } + DestroyObject(gameObject); + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/TimedObjectDestructor.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/TimedObjectDestructor.cs.meta new file mode 100644 index 0000000..9dec4d4 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/TimedObjectDestructor.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 37fac21d1f093d344816942d1abce94e +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/WaypointCircuit.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/WaypointCircuit.cs new file mode 100644 index 0000000..a4f92c5 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/WaypointCircuit.cs @@ -0,0 +1,384 @@ +using System; +using System.Collections; +using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; + +#endif + +namespace UnityStandardAssets.Utility +{ + public class WaypointCircuit : MonoBehaviour + { + public WaypointList waypointList = new WaypointList(); + [SerializeField] private bool smoothRoute = true; + private int numPoints; + private Vector3[] points; + private float[] distances; + + public float editorVisualisationSubsteps = 100; + public float Length { get; private set; } + + public Transform[] Waypoints + { + get { return waypointList.items; } + } + + //this being here will save GC allocs + private int p0n; + private int p1n; + private int p2n; + private int p3n; + + private float i; + private Vector3 P0; + private Vector3 P1; + private Vector3 P2; + private Vector3 P3; + + // Use this for initialization + private void Awake() + { + if (Waypoints.Length > 1) + { + CachePositionsAndDistances(); + } + numPoints = Waypoints.Length; + } + + + public RoutePoint GetRoutePoint(float dist) + { + // position and direction + Vector3 p1 = GetRoutePosition(dist); + Vector3 p2 = GetRoutePosition(dist + 0.1f); + Vector3 delta = p2 - p1; + return new RoutePoint(p1, delta.normalized); + } + + + public Vector3 GetRoutePosition(float dist) + { + int point = 0; + + if (Length == 0) + { + Length = distances[distances.Length - 1]; + } + + dist = Mathf.Repeat(dist, Length); + + while (distances[point] < dist) + { + ++point; + } + + + // get nearest two points, ensuring points wrap-around start & end of circuit + p1n = ((point - 1) + numPoints)%numPoints; + p2n = point; + + // found point numbers, now find interpolation value between the two middle points + + i = Mathf.InverseLerp(distances[p1n], distances[p2n], dist); + + if (smoothRoute) + { + // smooth catmull-rom calculation between the two relevant points + + + // get indices for the surrounding 2 points, because + // four points are required by the catmull-rom function + p0n = ((point - 2) + numPoints)%numPoints; + p3n = (point + 1)%numPoints; + + // 2nd point may have been the 'last' point - a dupe of the first, + // (to give a value of max track distance instead of zero) + // but now it must be wrapped back to zero if that was the case. + p2n = p2n%numPoints; + + P0 = points[p0n]; + P1 = points[p1n]; + P2 = points[p2n]; + P3 = points[p3n]; + + return CatmullRom(P0, P1, P2, P3, i); + } + else + { + // simple linear lerp between the two points: + + p1n = ((point - 1) + numPoints)%numPoints; + p2n = point; + + return Vector3.Lerp(points[p1n], points[p2n], i); + } + } + + + private Vector3 CatmullRom(Vector3 p0, Vector3 p1, Vector3 p2, Vector3 p3, float i) + { + // comments are no use here... it's the catmull-rom equation. + // Un-magic this, lord vector! + return 0.5f* + ((2*p1) + (-p0 + p2)*i + (2*p0 - 5*p1 + 4*p2 - p3)*i*i + + (-p0 + 3*p1 - 3*p2 + p3)*i*i*i); + } + + + private void CachePositionsAndDistances() + { + // transfer the position of each point and distances between points to arrays for + // speed of lookup at runtime + points = new Vector3[Waypoints.Length + 1]; + distances = new float[Waypoints.Length + 1]; + + float accumulateDistance = 0; + for (int i = 0; i < points.Length; ++i) + { + var t1 = Waypoints[(i)%Waypoints.Length]; + var t2 = Waypoints[(i + 1)%Waypoints.Length]; + if (t1 != null && t2 != null) + { + Vector3 p1 = t1.position; + Vector3 p2 = t2.position; + points[i] = Waypoints[i%Waypoints.Length].position; + distances[i] = accumulateDistance; + accumulateDistance += (p1 - p2).magnitude; + } + } + } + + + private void OnDrawGizmos() + { + DrawGizmos(false); + } + + + private void OnDrawGizmosSelected() + { + DrawGizmos(true); + } + + + private void DrawGizmos(bool selected) + { + waypointList.circuit = this; + if (Waypoints.Length > 1) + { + numPoints = Waypoints.Length; + + CachePositionsAndDistances(); + Length = distances[distances.Length - 1]; + + Gizmos.color = selected ? Color.yellow : new Color(1, 1, 0, 0.5f); + Vector3 prev = Waypoints[0].position; + if (smoothRoute) + { + for (float dist = 0; dist < Length; dist += Length/editorVisualisationSubsteps) + { + Vector3 next = GetRoutePosition(dist + 1); + Gizmos.DrawLine(prev, next); + prev = next; + } + Gizmos.DrawLine(prev, Waypoints[0].position); + } + else + { + for (int n = 0; n < Waypoints.Length; ++n) + { + Vector3 next = Waypoints[(n + 1)%Waypoints.Length].position; + Gizmos.DrawLine(prev, next); + prev = next; + } + } + } + } + + + [Serializable] + public class WaypointList + { + public WaypointCircuit circuit; + public Transform[] items = new Transform[0]; + } + + public struct RoutePoint + { + public Vector3 position; + public Vector3 direction; + + + public RoutePoint(Vector3 position, Vector3 direction) + { + this.position = position; + this.direction = direction; + } + } + } +} + +namespace UnityStandardAssets.Utility.Inspector +{ +#if UNITY_EDITOR + [CustomPropertyDrawer(typeof (WaypointCircuit.WaypointList))] + public class WaypointListDrawer : PropertyDrawer + { + private float lineHeight = 18; + private float spacing = 4; + + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + EditorGUI.BeginProperty(position, label, property); + + float x = position.x; + float y = position.y; + float inspectorWidth = position.width; + + // Draw label + + + // Don't make child fields be indented + var indent = EditorGUI.indentLevel; + EditorGUI.indentLevel = 0; + + var items = property.FindPropertyRelative("items"); + var titles = new string[] {"Transform", "", "", ""}; + var props = new string[] {"transform", "^", "v", "-"}; + var widths = new float[] {.7f, .1f, .1f, .1f}; + float lineHeight = 18; + bool changedLength = false; + if (items.arraySize > 0) + { + for (int i = -1; i < items.arraySize; ++i) + { + var item = items.GetArrayElementAtIndex(i); + + float rowX = x; + for (int n = 0; n < props.Length; ++n) + { + float w = widths[n]*inspectorWidth; + + // Calculate rects + Rect rect = new Rect(rowX, y, w, lineHeight); + rowX += w; + + if (i == -1) + { + EditorGUI.LabelField(rect, titles[n]); + } + else + { + if (n == 0) + { + EditorGUI.ObjectField(rect, item.objectReferenceValue, typeof (Transform), true); + } + else + { + if (GUI.Button(rect, props[n])) + { + switch (props[n]) + { + case "-": + items.DeleteArrayElementAtIndex(i); + items.DeleteArrayElementAtIndex(i); + changedLength = true; + break; + case "v": + if (i > 0) + { + items.MoveArrayElement(i, i + 1); + } + break; + case "^": + if (i < items.arraySize - 1) + { + items.MoveArrayElement(i, i - 1); + } + break; + } + } + } + } + } + + y += lineHeight + spacing; + if (changedLength) + { + break; + } + } + } + else + { + // add button + var addButtonRect = new Rect((x + position.width) - widths[widths.Length - 1]*inspectorWidth, y, + widths[widths.Length - 1]*inspectorWidth, lineHeight); + if (GUI.Button(addButtonRect, "+")) + { + items.InsertArrayElementAtIndex(items.arraySize); + } + + y += lineHeight + spacing; + } + + // add all button + var addAllButtonRect = new Rect(x, y, inspectorWidth, lineHeight); + if (GUI.Button(addAllButtonRect, "Assign using all child objects")) + { + var circuit = property.FindPropertyRelative("circuit").objectReferenceValue as WaypointCircuit; + var children = new Transform[circuit.transform.childCount]; + int n = 0; + foreach (Transform child in circuit.transform) + { + children[n++] = child; + } + Array.Sort(children, new TransformNameComparer()); + circuit.waypointList.items = new Transform[children.Length]; + for (n = 0; n < children.Length; ++n) + { + circuit.waypointList.items[n] = children[n]; + } + } + y += lineHeight + spacing; + + // rename all button + var renameButtonRect = new Rect(x, y, inspectorWidth, lineHeight); + if (GUI.Button(renameButtonRect, "Auto Rename numerically from this order")) + { + var circuit = property.FindPropertyRelative("circuit").objectReferenceValue as WaypointCircuit; + int n = 0; + foreach (Transform child in circuit.waypointList.items) + { + child.name = "Waypoint " + (n++).ToString("000"); + } + } + y += lineHeight + spacing; + + // Set indent back to what it was + EditorGUI.indentLevel = indent; + EditorGUI.EndProperty(); + } + + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + SerializedProperty items = property.FindPropertyRelative("items"); + float lineAndSpace = lineHeight + spacing; + return 40 + (items.arraySize*lineAndSpace) + lineAndSpace; + } + + + // comparer for check distances in ray cast hits + public class TransformNameComparer : IComparer + { + public int Compare(object x, object y) + { + return ((Transform) x).name.CompareTo(((Transform) y).name); + } + } + } +#endif +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/WaypointCircuit.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/WaypointCircuit.cs.meta new file mode 100644 index 0000000..7dd72d7 --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/WaypointCircuit.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 70852dc981465ea48bb527b9e33a87fd +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/WaypointProgressTracker.cs b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/WaypointProgressTracker.cs new file mode 100644 index 0000000..1efb72e --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/WaypointProgressTracker.cs @@ -0,0 +1,152 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.Utility +{ + public class WaypointProgressTracker : MonoBehaviour + { + // This script can be used with any object that is supposed to follow a + // route marked out by waypoints. + + // This script manages the amount to look ahead along the route, + // and keeps track of progress and laps. + + [SerializeField] private WaypointCircuit circuit; // A reference to the waypoint-based route we should follow + + [SerializeField] private float lookAheadForTargetOffset = 5; + // The offset ahead along the route that the we will aim for + + [SerializeField] private float lookAheadForTargetFactor = .1f; + // A multiplier adding distance ahead along the route to aim for, based on current speed + + [SerializeField] private float lookAheadForSpeedOffset = 10; + // The offset ahead only the route for speed adjustments (applied as the rotation of the waypoint target transform) + + [SerializeField] private float lookAheadForSpeedFactor = .2f; + // A multiplier adding distance ahead along the route for speed adjustments + + [SerializeField] private ProgressStyle progressStyle = ProgressStyle.SmoothAlongRoute; + // whether to update the position smoothly along the route (good for curved paths) or just when we reach each waypoint. + + [SerializeField] private float pointToPointThreshold = 4; + // proximity to waypoint which must be reached to switch target to next waypoint : only used in PointToPoint mode. + + public enum ProgressStyle + { + SmoothAlongRoute, + PointToPoint, + } + + // these are public, readable by other objects - i.e. for an AI to know where to head! + public WaypointCircuit.RoutePoint targetPoint { get; private set; } + public WaypointCircuit.RoutePoint speedPoint { get; private set; } + public WaypointCircuit.RoutePoint progressPoint { get; private set; } + + public Transform target; + + private float progressDistance; // The progress round the route, used in smooth mode. + private int progressNum; // the current waypoint number, used in point-to-point mode. + private Vector3 lastPosition; // Used to calculate current speed (since we may not have a rigidbody component) + private float speed; // current speed of this object (calculated from delta since last frame) + + // setup script properties + private void Start() + { + // we use a transform to represent the point to aim for, and the point which + // is considered for upcoming changes-of-speed. This allows this component + // to communicate this information to the AI without requiring further dependencies. + + // You can manually create a transform and assign it to this component *and* the AI, + // then this component will update it, and the AI can read it. + if (target == null) + { + target = new GameObject(name + " Waypoint Target").transform; + } + + Reset(); + } + + + // reset the object to sensible values + public void Reset() + { + progressDistance = 0; + progressNum = 0; + if (progressStyle == ProgressStyle.PointToPoint) + { + target.position = circuit.Waypoints[progressNum].position; + target.rotation = circuit.Waypoints[progressNum].rotation; + } + } + + + private void Update() + { + if (progressStyle == ProgressStyle.SmoothAlongRoute) + { + // determine the position we should currently be aiming for + // (this is different to the current progress position, it is a a certain amount ahead along the route) + // we use lerp as a simple way of smoothing out the speed over time. + if (Time.deltaTime > 0) + { + speed = Mathf.Lerp(speed, (lastPosition - transform.position).magnitude/Time.deltaTime, + Time.deltaTime); + } + target.position = + circuit.GetRoutePoint(progressDistance + lookAheadForTargetOffset + lookAheadForTargetFactor*speed) + .position; + target.rotation = + Quaternion.LookRotation( + circuit.GetRoutePoint(progressDistance + lookAheadForSpeedOffset + lookAheadForSpeedFactor*speed) + .direction); + + + // get our current progress along the route + progressPoint = circuit.GetRoutePoint(progressDistance); + Vector3 progressDelta = progressPoint.position - transform.position; + if (Vector3.Dot(progressDelta, progressPoint.direction) < 0) + { + progressDistance += progressDelta.magnitude*0.5f; + } + + lastPosition = transform.position; + } + else + { + // point to point mode. Just increase the waypoint if we're close enough: + + Vector3 targetDelta = target.position - transform.position; + if (targetDelta.magnitude < pointToPointThreshold) + { + progressNum = (progressNum + 1)%circuit.Waypoints.Length; + } + + + target.position = circuit.Waypoints[progressNum].position; + target.rotation = circuit.Waypoints[progressNum].rotation; + + // get our current progress along the route + progressPoint = circuit.GetRoutePoint(progressDistance); + Vector3 progressDelta = progressPoint.position - transform.position; + if (Vector3.Dot(progressDelta, progressPoint.direction) < 0) + { + progressDistance += progressDelta.magnitude; + } + lastPosition = transform.position; + } + } + + + private void OnDrawGizmos() + { + if (Application.isPlaying) + { + Gizmos.color = Color.green; + Gizmos.DrawLine(transform.position, target.position); + Gizmos.DrawWireSphere(circuit.GetRoutePosition(progressDistance), 1); + Gizmos.color = Color.yellow; + Gizmos.DrawLine(target.position, target.position + target.forward); + } + } + } +} diff --git a/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/WaypointProgressTracker.cs.meta b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/WaypointProgressTracker.cs.meta new file mode 100644 index 0000000..79b21ef --- /dev/null +++ b/PerspectivePuzzleMechanic_2018/Standard Assets/Utility/WaypointProgressTracker.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c5cb22d331ef7d64796f917c6a455a32 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_old/Materials.meta b/PerspectivePuzzleMechanic_old/Materials.meta new file mode 100644 index 0000000..e1e335c --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 606fc54d9450076488ea07ca93c6fe3d +folderAsset: yes +timeCreated: 1460918152 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_old/Materials/BlueToon.mat b/PerspectivePuzzleMechanic_old/Materials/BlueToon.mat new file mode 100644 index 0000000..fa3a28f Binary files /dev/null and b/PerspectivePuzzleMechanic_old/Materials/BlueToon.mat differ diff --git a/PerspectivePuzzleMechanic_old/Materials/BlueToon.mat.meta b/PerspectivePuzzleMechanic_old/Materials/BlueToon.mat.meta new file mode 100644 index 0000000..eebe9db --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/BlueToon.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b20660e8aae9edd449a30fcb771d0a42 +timeCreated: 1460654883 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_old/Materials/Bronze.mat b/PerspectivePuzzleMechanic_old/Materials/Bronze.mat new file mode 100644 index 0000000..678e7fb --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/Bronze.mat @@ -0,0 +1,76 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Bronze + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 0 + - _Glossiness: 1 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.59607846, g: 0.5686275, b: 0.49803922, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} diff --git a/PerspectivePuzzleMechanic_old/Materials/Bronze.mat.meta b/PerspectivePuzzleMechanic_old/Materials/Bronze.mat.meta new file mode 100644 index 0000000..a155e38 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/Bronze.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9605218e11da7416f80a4b5f55a34442 +timeCreated: 1520981306 +licenseType: Store +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_old/Materials/Brown.mat b/PerspectivePuzzleMechanic_old/Materials/Brown.mat new file mode 100644 index 0000000..3885d63 Binary files /dev/null and b/PerspectivePuzzleMechanic_old/Materials/Brown.mat differ diff --git a/PerspectivePuzzleMechanic_old/Materials/Brown.mat.meta b/PerspectivePuzzleMechanic_old/Materials/Brown.mat.meta new file mode 100644 index 0000000..3dabc19 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/Brown.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 415c8c4aee7578d45b3d01dc62ebde74 +timeCreated: 1460383153 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic/Materials/Floor.mat b/PerspectivePuzzleMechanic_old/Materials/Floor.mat similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Floor.mat rename to PerspectivePuzzleMechanic_old/Materials/Floor.mat diff --git a/PerspectivePuzzleMechanic_old/Materials/Floor.mat.meta b/PerspectivePuzzleMechanic_old/Materials/Floor.mat.meta new file mode 100644 index 0000000..715b62c --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/Floor.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 211671bd307586a46b18a395aa6177e5 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic/Materials/Green.mat b/PerspectivePuzzleMechanic_old/Materials/Green.mat similarity index 100% rename from PerspectivePuzzleMechanic/Materials/Green.mat rename to PerspectivePuzzleMechanic_old/Materials/Green.mat diff --git a/PerspectivePuzzleMechanic_old/Materials/Green.mat.meta b/PerspectivePuzzleMechanic_old/Materials/Green.mat.meta new file mode 100644 index 0000000..778935b --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/Green.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0c3a9f2b2936dd745ba856fe074fd7a4 +timeCreated: 1460165250 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_old/Materials/Red.mat b/PerspectivePuzzleMechanic_old/Materials/Red.mat new file mode 100644 index 0000000..0343205 Binary files /dev/null and b/PerspectivePuzzleMechanic_old/Materials/Red.mat differ diff --git a/PerspectivePuzzleMechanic_old/Materials/Red.mat.meta b/PerspectivePuzzleMechanic_old/Materials/Red.mat.meta new file mode 100644 index 0000000..7246e41 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/Red.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c02d2fd3ed1d0f54dadf304ae13116be +timeCreated: 1460165214 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_old/Materials/RedToon.mat b/PerspectivePuzzleMechanic_old/Materials/RedToon.mat new file mode 100644 index 0000000..ed6b412 Binary files /dev/null and b/PerspectivePuzzleMechanic_old/Materials/RedToon.mat differ diff --git a/PerspectivePuzzleMechanic_old/Materials/RedToon.mat.meta b/PerspectivePuzzleMechanic_old/Materials/RedToon.mat.meta new file mode 100644 index 0000000..90b82fe --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/RedToon.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3833984d9768bb04db31f6b1a9e9df82 +timeCreated: 1460381255 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_old/Materials/Shield_Color.mat b/PerspectivePuzzleMechanic_old/Materials/Shield_Color.mat new file mode 100644 index 0000000..8665f31 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/Shield_Color.mat @@ -0,0 +1,76 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Shield_Color + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 0 + - _Glossiness: 1 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.90588236, g: 0.24705882, b: 0.22352941, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} diff --git a/PerspectivePuzzleMechanic_old/Materials/Shield_Color.mat.meta b/PerspectivePuzzleMechanic_old/Materials/Shield_Color.mat.meta new file mode 100644 index 0000000..bbad8bb --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/Shield_Color.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 99053abe308fe465da3b6af24a71ea4f +timeCreated: 1520981306 +licenseType: Store +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_old/Materials/Silver.mat b/PerspectivePuzzleMechanic_old/Materials/Silver.mat new file mode 100644 index 0000000..5445a77 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/Silver.mat @@ -0,0 +1,76 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Silver + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 0 + - _Glossiness: 1 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.7058824, g: 0.7058824, b: 0.7058824, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} diff --git a/PerspectivePuzzleMechanic_old/Materials/Silver.mat.meta b/PerspectivePuzzleMechanic_old/Materials/Silver.mat.meta new file mode 100644 index 0000000..cb5d134 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/Silver.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f3b1b99db987842e0a837902b587d559 +timeCreated: 1520981306 +licenseType: Store +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_old/Materials/String.mat b/PerspectivePuzzleMechanic_old/Materials/String.mat new file mode 100644 index 0000000..7a16300 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/String.mat @@ -0,0 +1,76 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: String + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 1 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.87058824, g: 0.7372549, b: 0.58431375, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} diff --git a/PerspectivePuzzleMechanic_old/Materials/String.mat.meta b/PerspectivePuzzleMechanic_old/Materials/String.mat.meta new file mode 100644 index 0000000..df45e24 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/String.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8b421cf823667436e9ef1a32cfd04feb +timeCreated: 1520981306 +licenseType: Store +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_old/Materials/White.mat b/PerspectivePuzzleMechanic_old/Materials/White.mat new file mode 100644 index 0000000..fa0d5fa Binary files /dev/null and b/PerspectivePuzzleMechanic_old/Materials/White.mat differ diff --git a/PerspectivePuzzleMechanic_old/Materials/White.mat.meta b/PerspectivePuzzleMechanic_old/Materials/White.mat.meta new file mode 100644 index 0000000..687f7ba --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/White.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 49220bc6d5c0482418abe8acaaba57ac +timeCreated: 1460924302 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_old/Materials/Wood.mat b/PerspectivePuzzleMechanic_old/Materials/Wood.mat new file mode 100644 index 0000000..bbe5617 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/Wood.mat @@ -0,0 +1,76 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Wood + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 1 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.36862746, g: 0.30980393, b: 0.21176471, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} diff --git a/PerspectivePuzzleMechanic_old/Materials/Wood.mat.meta b/PerspectivePuzzleMechanic_old/Materials/Wood.mat.meta new file mode 100644 index 0000000..e076b30 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/Wood.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7592c63eb57ba437e807f0b4cf8560d8 +timeCreated: 1520980817 +licenseType: Store +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_old/Materials/Wood2.mat b/PerspectivePuzzleMechanic_old/Materials/Wood2.mat new file mode 100644 index 0000000..599c5e4 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/Wood2.mat @@ -0,0 +1,86 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Wood2 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Ramp: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ToonShade: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Outline: 0.005 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.25882354, g: 0.21568628, b: 0.16078432, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _OutlineColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/PerspectivePuzzleMechanic_old/Materials/Wood2.mat.meta b/PerspectivePuzzleMechanic_old/Materials/Wood2.mat.meta new file mode 100644 index 0000000..def0ffe --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/Wood2.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6ca3148a428044be2a7216d6a8180a75 +timeCreated: 1496528314 +licenseType: Store +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_old/Materials/Wood3.mat b/PerspectivePuzzleMechanic_old/Materials/Wood3.mat new file mode 100644 index 0000000..5013965 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/Wood3.mat @@ -0,0 +1,86 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Wood3 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Ramp: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ToonShade: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Outline: 0.005 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.6784314, g: 0.5764706, b: 0.45490196, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _OutlineColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/PerspectivePuzzleMechanic_old/Materials/Wood3.mat.meta b/PerspectivePuzzleMechanic_old/Materials/Wood3.mat.meta new file mode 100644 index 0000000..42a4a2e --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/Wood3.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e0573c65e0bf049c3b6cda49d3f86d71 +timeCreated: 1496528314 +licenseType: Store +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_old/Materials/Yellow.mat b/PerspectivePuzzleMechanic_old/Materials/Yellow.mat new file mode 100644 index 0000000..71c1408 Binary files /dev/null and b/PerspectivePuzzleMechanic_old/Materials/Yellow.mat differ diff --git a/PerspectivePuzzleMechanic_old/Materials/Yellow.mat.meta b/PerspectivePuzzleMechanic_old/Materials/Yellow.mat.meta new file mode 100644 index 0000000..b7a8969 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/Yellow.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 679e67956a6190844a7435d985cc9924 +timeCreated: 1460337479 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_old/Materials/YellowToon.mat b/PerspectivePuzzleMechanic_old/Materials/YellowToon.mat new file mode 100644 index 0000000..de060d8 Binary files /dev/null and b/PerspectivePuzzleMechanic_old/Materials/YellowToon.mat differ diff --git a/PerspectivePuzzleMechanic_old/Materials/YellowToon.mat.meta b/PerspectivePuzzleMechanic_old/Materials/YellowToon.mat.meta new file mode 100644 index 0000000..53941b0 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/YellowToon.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 15b5606f6ef99054a9767f1a16521638 +timeCreated: 1460654735 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic/Materials/wood_.mat b/PerspectivePuzzleMechanic_old/Materials/wood_.mat similarity index 100% rename from PerspectivePuzzleMechanic/Materials/wood_.mat rename to PerspectivePuzzleMechanic_old/Materials/wood_.mat diff --git a/PerspectivePuzzleMechanic_old/Materials/wood_.mat.meta b/PerspectivePuzzleMechanic_old/Materials/wood_.mat.meta new file mode 100644 index 0000000..d557e50 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Materials/wood_.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 057d5430214e8414cafeee34639cae34 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_old/Prefabs.meta b/PerspectivePuzzleMechanic_old/Prefabs.meta new file mode 100644 index 0000000..c0c32ed --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Prefabs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7fd366a39d6dded4f803d21ee1333dd1 +folderAsset: yes +timeCreated: 1460920501 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_old/Prefabs/PerpectiveManager.prefab b/PerspectivePuzzleMechanic_old/Prefabs/PerpectiveManager.prefab new file mode 100644 index 0000000..2f08a5f Binary files /dev/null and b/PerspectivePuzzleMechanic_old/Prefabs/PerpectiveManager.prefab differ diff --git a/PerspectivePuzzleMechanic_old/Prefabs/PerpectiveManager.prefab.meta b/PerspectivePuzzleMechanic_old/Prefabs/PerpectiveManager.prefab.meta new file mode 100644 index 0000000..bd48f81 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Prefabs/PerpectiveManager.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d58cb6e174cd550449d96cba3106d773 +timeCreated: 1460920510 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_old/Scenes.meta b/PerspectivePuzzleMechanic_old/Scenes.meta new file mode 100644 index 0000000..5bc2bb0 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Scenes.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: fae31985b64e24b4182788600bdaad23 +folderAsset: yes +timeCreated: 1460918137 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic/Scenes/Puzzle.unity b/PerspectivePuzzleMechanic_old/Scenes/Puzzle.unity similarity index 100% rename from PerspectivePuzzleMechanic/Scenes/Puzzle.unity rename to PerspectivePuzzleMechanic_old/Scenes/Puzzle.unity diff --git a/PerspectivePuzzleMechanic_old/Scenes/Puzzle.unity.meta b/PerspectivePuzzleMechanic_old/Scenes/Puzzle.unity.meta new file mode 100644 index 0000000..d74b47e --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Scenes/Puzzle.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 35e12d0e21c9f9d49b87a9f6d7ad1712 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_old/Scripts.meta b/PerspectivePuzzleMechanic_old/Scripts.meta new file mode 100644 index 0000000..2c57ea3 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d8d747fe24f19f34dbf78d167be97112 +folderAsset: yes +timeCreated: 1460918165 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic/Scripts/FirstPersonController.cs b/PerspectivePuzzleMechanic_old/Scripts/FirstPersonController.cs similarity index 100% rename from PerspectivePuzzleMechanic/Scripts/FirstPersonController.cs rename to PerspectivePuzzleMechanic_old/Scripts/FirstPersonController.cs diff --git a/PerspectivePuzzleMechanic_old/Scripts/FirstPersonController.cs.meta b/PerspectivePuzzleMechanic_old/Scripts/FirstPersonController.cs.meta new file mode 100644 index 0000000..437171c --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Scripts/FirstPersonController.cs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 05ec5cf00ca181d45a42ba1870e148c3 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic/Scripts/PerspectiveManager.cs b/PerspectivePuzzleMechanic_old/Scripts/PerspectiveManager.cs similarity index 100% rename from PerspectivePuzzleMechanic/Scripts/PerspectiveManager.cs rename to PerspectivePuzzleMechanic_old/Scripts/PerspectiveManager.cs diff --git a/PerspectivePuzzleMechanic_old/Scripts/PerspectiveManager.cs.meta b/PerspectivePuzzleMechanic_old/Scripts/PerspectiveManager.cs.meta new file mode 100644 index 0000000..52a9609 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Scripts/PerspectiveManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ea0417f2c49d9014baec4acda1e72638 +timeCreated: 1460160062 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_old/Sounds.meta b/PerspectivePuzzleMechanic_old/Sounds.meta new file mode 100644 index 0000000..1e741ea --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Sounds.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e15a9c4c6efdcc4488da59e9fdb2c627 +folderAsset: yes +timeCreated: 1461678247 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/PerspectivePuzzleMechanic_old/Sounds/Footstep01.wav b/PerspectivePuzzleMechanic_old/Sounds/Footstep01.wav new file mode 100644 index 0000000..6e52e70 Binary files /dev/null and b/PerspectivePuzzleMechanic_old/Sounds/Footstep01.wav differ diff --git a/PerspectivePuzzleMechanic_old/Sounds/Footstep01.wav.meta b/PerspectivePuzzleMechanic_old/Sounds/Footstep01.wav.meta new file mode 100644 index 0000000..cba0ee3 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Sounds/Footstep01.wav.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: 42e65e088b3f4374e851b8dbd38f3df9 +AudioImporter: + serializedVersion: 5 + format: -1 + loadType: 1 + quality: -1 + sampleRate: 0 + forceToMono: 0 + preloadAudioData: 1 + loadInBackground: 0 + overrideSampleRate: 0 + optimizeSampleRate: 0 + 3D: 1 + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_old/Sounds/Footstep02.wav b/PerspectivePuzzleMechanic_old/Sounds/Footstep02.wav new file mode 100644 index 0000000..6ed5b8c Binary files /dev/null and b/PerspectivePuzzleMechanic_old/Sounds/Footstep02.wav differ diff --git a/PerspectivePuzzleMechanic_old/Sounds/Footstep02.wav.meta b/PerspectivePuzzleMechanic_old/Sounds/Footstep02.wav.meta new file mode 100644 index 0000000..08a7850 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Sounds/Footstep02.wav.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: 8bc94ec6ed537e743b481638bdcd503d +AudioImporter: + serializedVersion: 5 + format: -1 + loadType: 1 + quality: -1 + sampleRate: 0 + forceToMono: 0 + preloadAudioData: 1 + loadInBackground: 0 + overrideSampleRate: 0 + optimizeSampleRate: 0 + 3D: 1 + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_old/Sounds/Jump.wav b/PerspectivePuzzleMechanic_old/Sounds/Jump.wav new file mode 100644 index 0000000..3673243 Binary files /dev/null and b/PerspectivePuzzleMechanic_old/Sounds/Jump.wav differ diff --git a/PerspectivePuzzleMechanic_old/Sounds/Jump.wav.meta b/PerspectivePuzzleMechanic_old/Sounds/Jump.wav.meta new file mode 100644 index 0000000..d8d8678 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Sounds/Jump.wav.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: 5897aeed9b676024fbb8c694b421a861 +AudioImporter: + serializedVersion: 5 + format: -1 + loadType: 1 + quality: -1 + sampleRate: 0 + forceToMono: 0 + preloadAudioData: 1 + loadInBackground: 0 + overrideSampleRate: 0 + optimizeSampleRate: 0 + 3D: 1 + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_old/Sounds/Land.wav b/PerspectivePuzzleMechanic_old/Sounds/Land.wav new file mode 100644 index 0000000..23d185b Binary files /dev/null and b/PerspectivePuzzleMechanic_old/Sounds/Land.wav differ diff --git a/PerspectivePuzzleMechanic_old/Sounds/Land.wav.meta b/PerspectivePuzzleMechanic_old/Sounds/Land.wav.meta new file mode 100644 index 0000000..80451f7 --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Sounds/Land.wav.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: 3b09d59f4499d45428baa7a21e954296 +AudioImporter: + serializedVersion: 5 + format: -1 + loadType: 1 + quality: -1 + sampleRate: 0 + forceToMono: 0 + preloadAudioData: 1 + loadInBackground: 0 + overrideSampleRate: 0 + optimizeSampleRate: 0 + 3D: 1 + userData: + assetBundleName: diff --git a/PerspectivePuzzleMechanic_old/Sounds/hal-spark.wav b/PerspectivePuzzleMechanic_old/Sounds/hal-spark.wav new file mode 100644 index 0000000..1436078 Binary files /dev/null and b/PerspectivePuzzleMechanic_old/Sounds/hal-spark.wav differ diff --git a/PerspectivePuzzleMechanic_old/Sounds/hal-spark.wav.meta b/PerspectivePuzzleMechanic_old/Sounds/hal-spark.wav.meta new file mode 100644 index 0000000..e1dcbce --- /dev/null +++ b/PerspectivePuzzleMechanic_old/Sounds/hal-spark.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 3b9ddb6031f4cdd4ea636446b2964273 +timeCreated: 1461678280 +licenseType: Free +AudioImporter: + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: .00999999978 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: