vscode-liquidsoap 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +14 -9
- package/syntaxes/liquidsoap.tmLanguage.json +41 -12
- package/test-suite/fetch-stdlib.js +125 -0
- package/test-suite/run-tests.js +544 -0
- package/tests/snap/libs/audio.liq.snap +20 -10
- package/tests/snap/libs/fades.liq.snap +3 -1
- package/tests/snap/libs/ffmpeg.liq.snap +10 -5
- package/tests/snap/libs/file.liq.snap +1 -1
- package/tests/snap/libs/hls.liq.snap +22 -9
- package/tests/snap/libs/http.liq.snap +60 -22
- package/tests/snap/libs/icecast.liq.snap +19 -13
- package/tests/snap/libs/medialib.liq.snap +5 -2
- package/tests/snap/libs/metadata.liq.snap +7 -3
- package/tests/snap/libs/playlist.liq.snap +4 -2
- package/tests/snap/libs/protocols.liq.snap +70 -24
- package/tests/snap/libs/ref.liq.snap +4 -3
- package/tests/snap/libs/request.liq.snap +3 -1
- package/tests/snap/libs/resolvers.liq.snap +5 -2
- package/tests/snap/libs/settings.liq.snap +11 -5
- package/tests/snap/libs/source.liq.snap +2 -1
- package/tests/snap/libs/stdlib.liq.snap +52 -52
- package/tests/snap/libs/string.liq.snap +6 -4
- package/tests/snap/libs/switches.liq.snap +2 -2
- package/tests/snap/libs/testing.liq.snap +3 -1
- package/tests/snap/libs/thread.liq.snap +3 -1
- package/tests/snap/libs/video.liq.snap +21 -12
- package/tests/snap/tests/failures/ctype.liq +0 -0
- package/tests/snap/tests/failures/ctype.liq.snap +69 -11
- package/tests/snap/tests/failures/error.liq +0 -0
- package/tests/snap/tests/failures/error.liq.snap +21 -10
- package/tests/snap/tests/failures/record-invalid-member1.liq +0 -0
- package/tests/snap/tests/failures/record-invalid-member1.liq.snap +26 -11
- package/tests/snap/tests/failures/record-invalid-member2.liq +0 -0
- package/tests/snap/tests/failures/record-invalid-member2.liq.snap +13 -5
- package/tests/snap/tests/failures/ref.liq +0 -0
- package/tests/snap/tests/failures/ref.liq.snap +53 -17
- package/tests/snap/tests/fixme/GH1170.liq +0 -0
- package/tests/snap/tests/fixme/GH1170.liq.snap +139 -36
- package/tests/snap/tests/fixme/LS527.liq.snap +89 -32
- package/tests/snap/tests/fixme/cross2.liq +0 -0
- package/tests/snap/tests/fixme/cross2.liq.snap +122 -31
- package/tests/snap/tests/fixme/cross3.liq +0 -0
- package/tests/snap/tests/fixme/cross3.liq.snap +96 -26
- package/tests/snap/tests/fixme/sequence-1.liq +0 -0
- package/tests/snap/tests/fixme/sequence-1.liq.snap +168 -49
- package/tests/snap/tests/fixme/sequence-2.liq.snap +163 -42
- package/tests/snap/tests/harbor/http.liq.snap +2246 -798
- package/tests/snap/tests/harbor/http2.liq.snap +447 -150
- package/tests/snap/tests/harbor/http3.liq.snap +238 -99
- package/tests/snap/tests/harbor/post.liq.snap +1416 -575
- package/tests/snap/tests/harbor/put.liq.snap +1416 -578
- package/tests/snap/tests/language/argsof.liq +0 -0
- package/tests/snap/tests/language/argsof.liq.snap +342 -74
- package/tests/snap/tests/language/bool.liq +0 -0
- package/tests/snap/tests/language/bool.liq.snap +129 -29
- package/tests/snap/tests/language/comments.liq.snap +188 -95
- package/tests/snap/tests/language/conversions.liq.snap +181 -68
- package/tests/snap/tests/language/doc.liq +0 -0
- package/tests/snap/tests/language/doc.liq.snap +42 -13
- package/tests/snap/tests/language/encoders.liq +0 -0
- package/tests/snap/tests/language/encoders.liq.snap +153 -39
- package/tests/snap/tests/language/error.liq +0 -0
- package/tests/snap/tests/language/error.liq.snap +677 -179
- package/tests/snap/tests/language/eval.liq +0 -0
- package/tests/snap/tests/language/eval.liq.snap +761 -308
- package/tests/snap/tests/language/file.liq +0 -0
- package/tests/snap/tests/language/file.liq.snap +326 -92
- package/tests/snap/tests/language/file.watch.liq +0 -0
- package/tests/snap/tests/language/file.watch.liq.snap +122 -30
- package/tests/snap/tests/language/file.watch2.liq +0 -0
- package/tests/snap/tests/language/file.watch2.liq.snap +147 -42
- package/tests/snap/tests/language/file_protocol.liq +0 -0
- package/tests/snap/tests/language/file_protocol.liq.snap +109 -32
- package/tests/snap/tests/language/functions.liq +0 -0
- package/tests/snap/tests/language/functions.liq.snap +189 -59
- package/tests/snap/tests/language/getter.liq +0 -0
- package/tests/snap/tests/language/getter.liq.snap +470 -133
- package/tests/snap/tests/language/interactive.liq +0 -0
- package/tests/snap/tests/language/interactive.liq.snap +254 -83
- package/tests/snap/tests/language/interpolation.liq +20 -0
- package/tests/snap/tests/language/interpolation.liq.snap +141 -0
- package/tests/snap/tests/language/json.liq +0 -0
- package/tests/snap/tests/language/json.liq.snap +1304 -738
- package/tests/snap/tests/language/list.liq +0 -0
- package/tests/snap/tests/language/list.liq.snap +1932 -883
- package/tests/snap/tests/language/loop.liq +0 -0
- package/tests/snap/tests/language/loop.liq.snap +276 -101
- package/tests/snap/tests/language/math.liq +0 -0
- package/tests/snap/tests/language/math.liq.snap +134 -26
- package/tests/snap/tests/language/mem_usage.liq +0 -0
- package/tests/snap/tests/language/mem_usage.liq.snap +66 -17
- package/tests/snap/tests/language/metadata.liq +0 -0
- package/tests/snap/tests/language/metadata.liq.snap +606 -177
- package/tests/snap/tests/language/null.liq +0 -0
- package/tests/snap/tests/language/null.liq.snap +351 -131
- package/tests/snap/tests/language/osc.liq +0 -0
- package/tests/snap/tests/language/osc.liq.snap +350 -124
- package/tests/snap/tests/language/pattern.liq +0 -0
- package/tests/snap/tests/language/pattern.liq.snap +955 -308
- package/tests/snap/tests/language/pp.liq +0 -0
- package/tests/snap/tests/language/pp.liq.snap +227 -78
- package/tests/snap/tests/language/predicate.liq +0 -0
- package/tests/snap/tests/language/predicate.liq.snap +365 -70
- package/tests/snap/tests/language/process.liq +0 -0
- package/tests/snap/tests/language/process.liq.snap +227 -99
- package/tests/snap/tests/language/rec.liq +0 -0
- package/tests/snap/tests/language/rec.liq.snap +134 -49
- package/tests/snap/tests/language/record.liq +0 -0
- package/tests/snap/tests/language/record.liq.snap +2251 -570
- package/tests/snap/tests/language/ref.liq +0 -0
- package/tests/snap/tests/language/ref.liq.snap +208 -55
- package/tests/snap/tests/language/regexp.liq +0 -0
- package/tests/snap/tests/language/regexp.liq.snap +327 -176
- package/tests/snap/tests/language/socket.liq.snap +279 -96
- package/tests/snap/tests/language/stdlib.liq +0 -0
- package/tests/snap/tests/language/stdlib.liq.snap +170 -51
- package/tests/snap/tests/language/string.liq +0 -0
- package/tests/snap/tests/language/string.liq.snap +1747 -860
- package/tests/snap/tests/language/test_cover.liq.snap +57 -20
- package/tests/snap/tests/language/thread.liq.snap +391 -102
- package/tests/snap/tests/language/time.liq +0 -0
- package/tests/snap/tests/language/time.liq.snap +115 -33
- package/tests/snap/tests/language/type_errors.liq +0 -0
- package/tests/snap/tests/language/type_errors.liq.snap +1042 -703
- package/tests/snap/tests/language/types.liq +33 -0
- package/tests/snap/tests/language/types.liq.snap +321 -0
- package/tests/snap/tests/language/typing.liq +0 -0
- package/tests/snap/tests/language/typing.liq.snap +1233 -405
- package/tests/snap/tests/language/url.liq +0 -0
- package/tests/snap/tests/language/url.liq.snap +84 -38
- package/tests/snap/tests/language/write_cover.liq.snap +44 -15
- package/tests/snap/tests/language/yaml.liq.snap +252 -97
- package/tests/snap/tests/media/ffmpeg_add_text.liq +0 -0
- package/tests/snap/tests/media/ffmpeg_add_text.liq.snap +558 -120
- package/tests/snap/tests/media/ffmpeg_audio_decoder.liq +0 -0
- package/tests/snap/tests/media/ffmpeg_audio_decoder.liq.snap +228 -49
- package/tests/snap/tests/media/ffmpeg_complex_filter.liq +0 -0
- package/tests/snap/tests/media/ffmpeg_complex_filter.liq.snap +544 -68
- package/tests/snap/tests/media/ffmpeg_copy_and_encode_decoder.liq +0 -0
- package/tests/snap/tests/media/ffmpeg_copy_and_encode_decoder.liq.snap +362 -68
- package/tests/snap/tests/media/ffmpeg_copy_concat.liq.snap +159 -56
- package/tests/snap/tests/media/ffmpeg_copy_decoder.liq +0 -0
- package/tests/snap/tests/media/ffmpeg_copy_decoder.liq.snap +507 -121
- package/tests/snap/tests/media/ffmpeg_distributed_hls.liq +0 -0
- package/tests/snap/tests/media/ffmpeg_distributed_hls.liq.snap +645 -186
- package/tests/snap/tests/media/ffmpeg_filter.liq +0 -0
- package/tests/snap/tests/media/ffmpeg_filter.liq.snap +603 -101
- package/tests/snap/tests/media/ffmpeg_filter_changing_rate.liq.snap +712 -142
- package/tests/snap/tests/media/ffmpeg_inline_encode_decode.liq +0 -0
- package/tests/snap/tests/media/ffmpeg_inline_encode_decode.liq.snap +530 -131
- package/tests/snap/tests/media/ffmpeg_inline_encode_decode_audio.liq +0 -0
- package/tests/snap/tests/media/ffmpeg_inline_encode_decode_audio.liq.snap +365 -94
- package/tests/snap/tests/media/ffmpeg_inline_encode_decode_video.liq +0 -0
- package/tests/snap/tests/media/ffmpeg_inline_encode_decode_video.liq.snap +365 -94
- package/tests/snap/tests/media/ffmpeg_raw_and_copy_decoder.liq +0 -0
- package/tests/snap/tests/media/ffmpeg_raw_and_copy_decoder.liq.snap +514 -125
- package/tests/snap/tests/media/ffmpeg_raw_and_encode_decoder.liq +0 -0
- package/tests/snap/tests/media/ffmpeg_raw_and_encode_decoder.liq.snap +385 -73
- package/tests/snap/tests/media/ffmpeg_raw_decoder.liq +0 -0
- package/tests/snap/tests/media/ffmpeg_raw_decoder.liq.snap +370 -72
- package/tests/snap/tests/media/ffmpeg_raw_hls.liq +0 -0
- package/tests/snap/tests/media/ffmpeg_raw_hls.liq.snap +629 -193
- package/tests/snap/tests/media/ffmpeg_transparency_filter.liq.snap +538 -109
- package/tests/snap/tests/media/ffmpeg_video_decoder.liq +0 -0
- package/tests/snap/tests/media/ffmpeg_video_decoder.liq.snap +236 -59
- package/tests/snap/tests/media/mono.liq +0 -0
- package/tests/snap/tests/media/mono.liq.snap +223 -47
- package/tests/snap/tests/media/multitrack.liq.snap +790 -235
- package/tests/snap/tests/media/pcm_f32_decode.liq +0 -0
- package/tests/snap/tests/media/pcm_f32_decode.liq.snap +61 -12
- package/tests/snap/tests/media/pcm_s16_decode.liq +0 -0
- package/tests/snap/tests/media/pcm_s16_decode.liq.snap +61 -12
- package/tests/snap/tests/media/stereo.liq +0 -0
- package/tests/snap/tests/media/stereo.liq.snap +223 -47
- package/tests/snap/tests/media/stream_audio.liq.in +0 -0
- package/tests/snap/tests/media/stream_video.liq.in +0 -0
- package/tests/snap/tests/media/taglib.liq +0 -0
- package/tests/snap/tests/media/taglib.liq.snap +77 -26
- package/tests/snap/tests/media/video_size.liq +0 -0
- package/tests/snap/tests/media/video_size.liq.snap +305 -68
- package/tests/snap/tests/performance/erathostenes.liq +0 -0
- package/tests/snap/tests/performance/erathostenes.liq.snap +281 -62
- package/tests/snap/tests/performance/performance.liq.snap +99 -26
- package/tests/snap/tests/performance/small-record.liq +0 -0
- package/tests/snap/tests/performance/small-record.liq.snap +626 -320
- package/tests/snap/tests/regression/115-1.liq +0 -0
- package/tests/snap/tests/regression/115-1.liq.snap +74 -15
- package/tests/snap/tests/regression/115-2.liq +0 -0
- package/tests/snap/tests/regression/115-2.liq.snap +101 -16
- package/tests/snap/tests/regression/AC5109.liq +0 -0
- package/tests/snap/tests/regression/AC5109.liq.snap +216 -78
- package/tests/snap/tests/regression/BUG403.liq +0 -0
- package/tests/snap/tests/regression/BUG403.liq.snap +136 -33
- package/tests/snap/tests/regression/GH-action-919422659.liq +0 -0
- package/tests/snap/tests/regression/GH-action-919422659.liq.snap +105 -34
- package/tests/snap/tests/regression/GH1129.liq +0 -0
- package/tests/snap/tests/regression/GH1129.liq.snap +351 -153
- package/tests/snap/tests/regression/GH1146.liq +0 -0
- package/tests/snap/tests/regression/GH1146.liq.snap +82 -27
- package/tests/snap/tests/regression/GH1151.liq +0 -0
- package/tests/snap/tests/regression/GH1151.liq.snap +55 -25
- package/tests/snap/tests/regression/GH1159.liq +0 -0
- package/tests/snap/tests/regression/GH1159.liq.snap +97 -30
- package/tests/snap/tests/regression/GH1279.liq +0 -0
- package/tests/snap/tests/regression/GH1279.liq.snap +270 -108
- package/tests/snap/tests/regression/GH1327.liq +0 -0
- package/tests/snap/tests/regression/GH1327.liq.snap +380 -134
- package/tests/snap/tests/regression/GH2585.liq.snap +110 -45
- package/tests/snap/tests/regression/GH2602.liq.snap +116 -30
- package/tests/snap/tests/regression/GH2756-2.liq.snap +361 -104
- package/tests/snap/tests/regression/GH2756.liq.snap +419 -119
- package/tests/snap/tests/regression/GH2758.liq.snap +113 -30
- package/tests/snap/tests/regression/GH2842.liq.snap +151 -50
- package/tests/snap/tests/regression/GH2850.liq.snap +358 -146
- package/tests/snap/tests/regression/GH2867.liq.snap +46 -15
- package/tests/snap/tests/regression/GH2871.liq.snap +86 -30
- package/tests/snap/tests/regression/GH2872.liq.snap +103 -32
- package/tests/snap/tests/regression/GH2897.liq.snap +123 -33
- package/tests/snap/tests/regression/GH2902.liq.snap +326 -109
- package/tests/snap/tests/regression/GH2926.liq.snap +121 -39
- package/tests/snap/tests/regression/GH3093.liq.snap +46 -11
- package/tests/snap/tests/regression/GH3121.liq.snap +138 -36
- package/tests/snap/tests/regression/GH3132.liq.snap +146 -43
- package/tests/snap/tests/regression/GH3224.liq.snap +18 -10
- package/tests/snap/tests/regression/GH3239-2.liq.snap +154 -34
- package/tests/snap/tests/regression/GH3239.liq.snap +149 -33
- package/tests/snap/tests/regression/GH3276.liq.snap +164 -53
- package/tests/snap/tests/regression/GH3316.liq.snap +229 -55
- package/tests/snap/tests/regression/LS268.liq +0 -0
- package/tests/snap/tests/regression/LS268.liq.snap +102 -19
- package/tests/snap/tests/regression/LS354-1.liq +0 -0
- package/tests/snap/tests/regression/LS354-1.liq.snap +117 -28
- package/tests/snap/tests/regression/LS354-2.liq +0 -0
- package/tests/snap/tests/regression/LS354-2.liq.snap +154 -56
- package/tests/snap/tests/regression/LS460.liq +0 -0
- package/tests/snap/tests/regression/LS460.liq.snap +145 -49
- package/tests/snap/tests/regression/LS503.liq +0 -0
- package/tests/snap/tests/regression/LS503.liq.snap +71 -24
- package/tests/snap/tests/regression/default_format.liq.snap +43 -7
- package/tests/snap/tests/regression/external-encoder.liq.snap +72 -28
- package/tests/snap/tests/regression/ffmpeg-copy-encode.liq.snap +167 -62
- package/tests/snap/tests/regression/ffmpeg-copy-input-http.liq.snap +55 -13
- package/tests/snap/tests/regression/ffmpeg-naming-convention.liq.snap +371 -126
- package/tests/snap/tests/regression/infallible-shutdown.liq +0 -0
- package/tests/snap/tests/regression/infallible-shutdown.liq.snap +26 -6
- package/tests/snap/tests/regression/init-error.liq +0 -0
- package/tests/snap/tests/regression/init-error.liq.snap +70 -10
- package/tests/snap/tests/regression/initial_request_queue.liq.snap +69 -14
- package/tests/snap/tests/regression/input_rtmp.liq +0 -0
- package/tests/snap/tests/regression/input_rtmp.liq.snap +28 -7
- package/tests/snap/tests/regression/metadata_cache.liq +0 -0
- package/tests/snap/tests/regression/metadata_cache.liq.snap +173 -56
- package/tests/snap/tests/regression/playlist-id.liq +0 -0
- package/tests/snap/tests/regression/playlist-id.liq.snap +126 -56
- package/tests/snap/tests/regression/replaygain.liq.snap +53 -11
- package/tests/snap/tests/regression/shoutcast-args.liq.snap +52 -24
- package/tests/snap/tests/regression/unified-pcm-types.liq.snap +91 -28
- package/tests/snap/tests/regression/video-only.liq.snap +121 -33
- package/tests/snap/tests/streams/195.liq +0 -0
- package/tests/snap/tests/streams/195.liq.snap +63 -26
- package/tests/snap/tests/streams/197.liq +0 -0
- package/tests/snap/tests/streams/197.liq.snap +129 -40
- package/tests/snap/tests/streams/autostart.liq +0 -0
- package/tests/snap/tests/streams/autostart.liq.snap +147 -37
- package/tests/snap/tests/streams/cross-override.liq.snap +338 -92
- package/tests/snap/tests/streams/cross-persist-override.liq.snap +342 -92
- package/tests/snap/tests/streams/cross.liq +0 -0
- package/tests/snap/tests/streams/cross.liq.snap +343 -90
- package/tests/snap/tests/streams/crossfade.liq +0 -0
- package/tests/snap/tests/streams/crossfade.liq.snap +476 -128
- package/tests/snap/tests/streams/ctype1.liq +0 -0
- package/tests/snap/tests/streams/ctype1.liq.snap +89 -26
- package/tests/snap/tests/streams/ctype2.liq +0 -0
- package/tests/snap/tests/streams/ctype2.liq.snap +114 -30
- package/tests/snap/tests/streams/dtmf.liq +0 -0
- package/tests/snap/tests/streams/dtmf.liq.snap +129 -32
- package/tests/snap/tests/streams/dtmf_pcm_s16.liq +0 -0
- package/tests/snap/tests/streams/dtmf_pcm_s16.liq.snap +161 -38
- package/tests/snap/tests/streams/fades-overrides.liq.snap +472 -121
- package/tests/snap/tests/streams/fades-persistent-override.liq.snap +482 -121
- package/tests/snap/tests/streams/ffmpeg-errors.liq.snap +108 -30
- package/tests/snap/tests/streams/ffmpeg-trim.liq.snap +63 -18
- package/tests/snap/tests/streams/file_output.liq.snap +131 -33
- package/tests/snap/tests/streams/harbor_kick_client.liq.snap +235 -72
- package/tests/snap/tests/streams/harbor_metadata.liq.snap +206 -96
- package/tests/snap/tests/streams/hls_custom_tags.liq.snap +407 -125
- package/tests/snap/tests/streams/hls_id3v2.liq.snap +742 -257
- package/tests/snap/tests/streams/huge-playlist.liq +0 -0
- package/tests/snap/tests/streams/huge-playlist.liq.snap +125 -40
- package/tests/snap/tests/streams/icecast_ssl.liq.snap +134 -42
- package/tests/snap/tests/streams/icecast_ssl_tls.liq.snap +164 -55
- package/tests/snap/tests/streams/icecast_tls.liq.snap +163 -53
- package/tests/snap/tests/streams/icecast_tls_ssl.liq.snap +164 -55
- package/tests/snap/tests/streams/image.liq +0 -0
- package/tests/snap/tests/streams/image.liq.snap +44 -10
- package/tests/snap/tests/streams/many-playlists.liq +0 -0
- package/tests/snap/tests/streams/many-playlists.liq.snap +142 -48
- package/tests/snap/tests/streams/merge_metadata.liq.snap +224 -63
- package/tests/snap/tests/streams/never.liq +0 -0
- package/tests/snap/tests/streams/never.liq.snap +56 -11
- package/tests/snap/tests/streams/on_frame.liq +0 -0
- package/tests/snap/tests/streams/on_frame.liq.snap +81 -23
- package/tests/snap/tests/streams/on_metadata.liq +0 -0
- package/tests/snap/tests/streams/on_metadata.liq.snap +103 -37
- package/tests/snap/tests/streams/on_track.liq +0 -0
- package/tests/snap/tests/streams/on_track.liq.snap +69 -18
- package/tests/snap/tests/streams/playlist-watch.liq +0 -0
- package/tests/snap/tests/streams/playlist-watch.liq.snap +195 -56
- package/tests/snap/tests/streams/radio.liq +0 -0
- package/tests/snap/tests/streams/radio.liq.snap +72 -17
- package/tests/snap/tests/streams/radio2.liq +0 -0
- package/tests/snap/tests/streams/radio2.liq.snap +143 -48
- package/tests/snap/tests/streams/random.liq +0 -0
- package/tests/snap/tests/streams/random.liq.snap +395 -171
- package/tests/snap/tests/streams/replaygain.liq +0 -0
- package/tests/snap/tests/streams/replaygain.liq.snap +62 -19
- package/tests/snap/tests/streams/request.liq +0 -0
- package/tests/snap/tests/streams/request.liq.snap +361 -145
- package/tests/snap/tests/streams/rotate.liq +0 -0
- package/tests/snap/tests/streams/rotate.liq.snap +421 -151
- package/tests/snap/tests/streams/say.liq +0 -0
- package/tests/snap/tests/streams/say.liq.snap +139 -32
- package/tests/snap/tests/streams/seek_track_map.liq.snap +143 -48
- package/tests/snap/tests/streams/sharing.liq +0 -0
- package/tests/snap/tests/streams/sharing.liq.snap +109 -25
- package/tests/snap/tests/streams/sine.detect.full_conv.liq +0 -0
- package/tests/snap/tests/streams/sine.detect.full_conv.liq.snap +127 -33
- package/tests/snap/tests/streams/sine.detect.liq +0 -0
- package/tests/snap/tests/streams/sine.detect.liq.snap +71 -20
- package/tests/snap/tests/streams/sine.detect.pcm_f32.liq +0 -0
- package/tests/snap/tests/streams/sine.detect.pcm_f32.liq.snap +95 -26
- package/tests/snap/tests/streams/sine.detect.pcm_s16.liq +0 -0
- package/tests/snap/tests/streams/sine.detect.pcm_s16.liq.snap +95 -26
- package/tests/snap/tests/streams/smart-crossfade.liq +0 -0
- package/tests/snap/tests/streams/smart-crossfade.liq.snap +101 -25
- package/tests/snap/tests/streams/srt_listen_callback.liq.snap +149 -38
- package/tests/snap/tests/streams/srt_multiple_outputs.liq.snap +146 -35
- package/tests/snap/tests/streams/srt_passphrase.liq.snap +92 -27
- package/tests/snap/tests/streams/srt_raw_pcm.liq.snap +134 -43
- package/tests/snap/tests/streams/stretch-clock-propagation.liq +0 -0
- package/tests/snap/tests/streams/stretch-clock-propagation.liq.snap +86 -20
- package/tests/snap/tests/test.liq +0 -0
|
@@ -1,299 +1,605 @@
|
|
|
1
1
|
>def t(x,y) =
|
|
2
|
-
#^^^ source.liquidsoap keyword.
|
|
3
|
-
#
|
|
2
|
+
#^^^ source.liquidsoap keyword.other.function.definition.liquidsoap
|
|
3
|
+
# ^ source.liquidsoap
|
|
4
|
+
# ^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
5
|
+
# ^ source.liquidsoap
|
|
6
|
+
# ^ source.liquidsoap variable.liquidsoap
|
|
7
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
8
|
+
# ^ source.liquidsoap variable.liquidsoap
|
|
9
|
+
# ^ source.liquidsoap
|
|
10
|
+
# ^^ source.liquidsoap
|
|
4
11
|
> if x != y then test.fail() end
|
|
5
12
|
#^^ source.liquidsoap
|
|
6
13
|
# ^^ source.liquidsoap keyword.control.liquidsoap
|
|
7
|
-
#
|
|
14
|
+
# ^ source.liquidsoap
|
|
15
|
+
# ^ source.liquidsoap variable.liquidsoap
|
|
16
|
+
# ^ source.liquidsoap
|
|
17
|
+
# ^^ source.liquidsoap keyword.operator.compare.liquidsoap
|
|
18
|
+
# ^ source.liquidsoap
|
|
19
|
+
# ^ source.liquidsoap variable.liquidsoap
|
|
20
|
+
# ^ source.liquidsoap
|
|
8
21
|
# ^^^^ source.liquidsoap keyword.control.liquidsoap
|
|
9
|
-
#
|
|
22
|
+
# ^ source.liquidsoap
|
|
23
|
+
# ^^^^ source.liquidsoap variable.liquidsoap
|
|
24
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
25
|
+
# ^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
26
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
27
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
28
|
+
# ^ source.liquidsoap
|
|
10
29
|
# ^^^ source.liquidsoap keyword.control.liquidsoap
|
|
11
30
|
>end
|
|
12
|
-
#^^^ source.liquidsoap keyword.
|
|
31
|
+
#^^^ source.liquidsoap keyword.other.function.end.liquidsoap
|
|
13
32
|
>
|
|
14
33
|
>def f() =
|
|
15
|
-
#^^^ source.liquidsoap keyword.
|
|
16
|
-
#
|
|
34
|
+
#^^^ source.liquidsoap keyword.other.function.definition.liquidsoap
|
|
35
|
+
# ^ source.liquidsoap
|
|
36
|
+
# ^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
37
|
+
# ^ source.liquidsoap
|
|
38
|
+
# ^ source.liquidsoap
|
|
39
|
+
# ^^ source.liquidsoap
|
|
17
40
|
> t(metadata.cover.remove([("a","A"),("apic","XXX"),("pic","YYY"),("b","B"),("cover","YYY")]), [("a","A"),("b","B")])
|
|
18
|
-
|
|
19
|
-
#
|
|
20
|
-
#
|
|
21
|
-
#
|
|
22
|
-
#
|
|
23
|
-
#
|
|
24
|
-
#
|
|
25
|
-
#
|
|
26
|
-
#
|
|
27
|
-
#
|
|
28
|
-
#
|
|
29
|
-
#
|
|
30
|
-
#
|
|
31
|
-
#
|
|
32
|
-
#
|
|
33
|
-
#
|
|
34
|
-
#
|
|
41
|
+
#^^ source.liquidsoap
|
|
42
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
43
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
44
|
+
# ^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
45
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
|
|
46
|
+
# ^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
|
|
47
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap
|
|
48
|
+
# ^^^^^^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
49
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap
|
|
50
|
+
# ^^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap
|
|
51
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
52
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
53
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
54
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
55
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
56
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
57
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
58
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap
|
|
59
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
60
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
61
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
62
|
+
# ^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
63
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
64
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
65
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
66
|
+
# ^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
67
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
68
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
69
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
70
|
+
# ^ source.liquidsoap
|
|
35
71
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
36
72
|
# ^^^ source.liquidsoap string.quoted.double.liquidsoap
|
|
37
73
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
38
|
-
# ^ source.liquidsoap
|
|
74
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
39
75
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
40
76
|
# ^^^ source.liquidsoap string.quoted.double.liquidsoap
|
|
41
77
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
42
|
-
#
|
|
78
|
+
# ^ source.liquidsoap
|
|
79
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
80
|
+
# ^ source.liquidsoap
|
|
43
81
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
44
82
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
45
83
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
46
|
-
# ^ source.liquidsoap
|
|
84
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
47
85
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
48
86
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
49
87
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
50
|
-
#
|
|
88
|
+
# ^ source.liquidsoap
|
|
89
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
90
|
+
# ^ source.liquidsoap
|
|
51
91
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
52
92
|
# ^^^^^ source.liquidsoap string.quoted.double.liquidsoap
|
|
53
93
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
54
|
-
# ^ source.liquidsoap
|
|
94
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
55
95
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
56
96
|
# ^^^ source.liquidsoap string.quoted.double.liquidsoap
|
|
57
97
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
58
|
-
#
|
|
98
|
+
# ^^^ source.liquidsoap
|
|
99
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
100
|
+
# ^^^ source.liquidsoap
|
|
59
101
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
60
102
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
61
103
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
62
|
-
# ^ source.liquidsoap
|
|
104
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
63
105
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
64
106
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
65
107
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
66
|
-
#
|
|
108
|
+
# ^ source.liquidsoap
|
|
109
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
110
|
+
# ^ source.liquidsoap
|
|
67
111
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
68
112
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
69
113
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
70
|
-
# ^ source.liquidsoap
|
|
114
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
71
115
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
72
116
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
73
117
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
74
118
|
# ^^^^ source.liquidsoap
|
|
75
119
|
>
|
|
76
120
|
> apic_cover = string.base64.decode("AGltYWdlL3BuZwADQWxidW0gY292ZXIAiVBORw0KGgoAAAANSUhEUgAAAIAAAACAEAIAAAAczCrfAAAACXBIWXMAAAAAAAAAAQCEeRdzAAACoklEQVR4nO3E4UYYAACF0StJkiRJkiRJkiRJkiRJkiTJli1btmzZsmXLli3atGnTpk2bNm3atEmSJEmSJEmSJEmSJEmSJEnS9h73Oz+O9N/VFbPvurxg9l0XZ8y+6/yE2XedHTH7rtMDZt91ssfsu453mH3X0Raz7zrcYPZdB2vMvmt/hdl37S0x+67dBWbftTPH7Lu2Z5h919YUs+/anGD2XRtjzL5rfYTZd60NMfuu1QFm37Xyh9l3Lf9i9l1LP5h91+I3Zt+18IXZd81/YvZdcx+YfdfsO2bfNfOG2XdNv2L2XVMtzL5rspnZd000Mfuu8UZm3zXWwOy7RuuZfddIHbPvGq5l9l1DNcy+a7Ca2XcNVDH7rv4KZt/1t4zZd/WVMPuu30XMvqu3gNl3/cxj9l09Ocy+63sWs+/qzmD2XV/TmH1XVwqz7/qcxOy7OhOYfdfHOGbf1RHD7LveRzH7rvYIZt/1NozZd7WFMPuu10HMvqs1gNl3tVwy+64X58y+q/mU2Xc9O2b2XU2HzL7ryT6z72rcZfZdj7aZfVfDJrPverDO7LvqV5l9171lZt9Vt8jsu+7MM/uu2llm33Vrmtl31Uwy+64b48y+q3qU2XddG2b2XVWDzL6rsp/Zd1X0Mfuu8l5m31XWw+y7SruZfVdJF7PvKu5k9l1FHcy+q7Cd2XcVtDH7rvxWZt+V95LZd+U+Z/ZdOU+ZfVf2Y2bflfWQ2Xdl3mf2XRl3mX1X+m1m35V2k9l3pV5n9l0plcy+K7mc2XcllTL7rsRiZt+VUMjsu+LzmX1XXC6z74rNZvZdMZnMvis6ndl3RaUy+67IZGbfFZHI7LvC45l9V1gss+8KjWb2XSGRzL4rOJzZdwWFMvuuwGBm3xUQyOw7YOsfJwPDsnrI0ewAAAAASUVORK5CYII=")
|
|
77
|
-
|
|
78
|
-
#
|
|
79
|
-
#
|
|
80
|
-
#
|
|
81
|
-
#
|
|
82
|
-
#
|
|
83
|
-
#
|
|
121
|
+
#^^ source.liquidsoap
|
|
122
|
+
# ^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
123
|
+
# ^^ source.liquidsoap
|
|
124
|
+
# ^ source.liquidsoap
|
|
125
|
+
# ^^^^^^ source.liquidsoap variable.liquidsoap
|
|
126
|
+
# ^ source.liquidsoap keyword.other.liquidsoap
|
|
127
|
+
# ^^^^^^ source.liquidsoap variable.method.liquidsoap
|
|
128
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
129
|
+
# ^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
130
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
131
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
132
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
133
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
134
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
84
135
|
>
|
|
85
136
|
> parse_apic_data = string.apic.parse(apic_cover)
|
|
86
|
-
|
|
137
|
+
#^^ source.liquidsoap
|
|
138
|
+
# ^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
139
|
+
# ^^ source.liquidsoap
|
|
140
|
+
# ^ source.liquidsoap
|
|
141
|
+
# ^^^^^^ source.liquidsoap variable.liquidsoap
|
|
142
|
+
# ^ source.liquidsoap keyword.other.liquidsoap
|
|
143
|
+
# ^^^^ source.liquidsoap variable.method.liquidsoap
|
|
144
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
145
|
+
# ^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
146
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
147
|
+
# ^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
148
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
87
149
|
>
|
|
88
150
|
> expected_apic_string_data = string.base64.decode("iVBORw0KGgoAAAANSUhEUgAAAIAAAACAEAIAAAAczCrfAAAACXBIWXMAAAAAAAAAAQCEeRdzAAACoklEQVR4nO3E4UYYAACF0StJkiRJkiRJkiRJkiRJkiTJli1btmzZsmXLli3atGnTpk2bNm3atEmSJEmSJEmSJEmSJEmSJEnS9h73Oz+O9N/VFbPvurxg9l0XZ8y+6/yE2XedHTH7rtMDZt91ssfsu453mH3X0Raz7zrcYPZdB2vMvmt/hdl37S0x+67dBWbftTPH7Lu2Z5h919YUs+/anGD2XRtjzL5rfYTZd60NMfuu1QFm37Xyh9l3Lf9i9l1LP5h91+I3Zt+18IXZd81/YvZdcx+YfdfsO2bfNfOG2XdNv2L2XVMtzL5rspnZd000Mfuu8UZm3zXWwOy7RuuZfddIHbPvGq5l9l1DNcy+a7Ca2XcNVDH7rv4KZt/1t4zZd/WVMPuu30XMvqu3gNl3/cxj9l09Ocy+63sWs+/qzmD2XV/TmH1XVwqz7/qcxOy7OhOYfdfHOGbf1RHD7LveRzH7rvYIZt/1NozZd7WFMPuu10HMvqs1gNl3tVwy+64X58y+q/mU2Xc9O2b2XU2HzL7ryT6z72rcZfZdj7aZfVfDJrPverDO7LvqV5l9171lZt9Vt8jsu+7MM/uu2llm33Vrmtl31Uwy+64b48y+q3qU2XddG2b2XVWDzL6rsp/Zd1X0Mfuu8l5m31XWw+y7SruZfVdJF7PvKu5k9l1FHcy+q7Cd2XcVtDH7rvxWZt+V95LZd+U+Z/ZdOU+ZfVf2Y2bflfWQ2Xdl3mf2XRl3mX1X+m1m35V2k9l3pV5n9l0plcy+K7mc2XcllTL7rsRiZt+VUMjsu+LzmX1XXC6z74rNZvZdMZnMvis6ndl3RaUy+67IZGbfFZHI7LvC45l9V1gss+8KjWb2XSGRzL4rOJzZdwWFMvuuwGBm3xUQyOw7YOsfJwPDsnrI0ewAAAAASUVORK5CYII=")
|
|
89
|
-
|
|
90
|
-
#
|
|
91
|
-
#
|
|
92
|
-
#
|
|
93
|
-
#
|
|
94
|
-
#
|
|
95
|
-
#
|
|
151
|
+
#^^ source.liquidsoap
|
|
152
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
153
|
+
# ^^ source.liquidsoap
|
|
154
|
+
# ^ source.liquidsoap
|
|
155
|
+
# ^^^^^^ source.liquidsoap variable.liquidsoap
|
|
156
|
+
# ^ source.liquidsoap keyword.other.liquidsoap
|
|
157
|
+
# ^^^^^^ source.liquidsoap variable.method.liquidsoap
|
|
158
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
159
|
+
# ^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
160
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
161
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
162
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
163
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
164
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
96
165
|
>
|
|
97
166
|
> t(parse_apic_data, expected_apic_string_data.{description = "Album cover", picture_type = 3, mime = "image/png"})
|
|
98
|
-
|
|
99
|
-
#
|
|
100
|
-
#
|
|
101
|
-
#
|
|
102
|
-
#
|
|
103
|
-
#
|
|
104
|
-
#
|
|
105
|
-
#
|
|
106
|
-
#
|
|
107
|
-
#
|
|
108
|
-
#
|
|
167
|
+
#^^ source.liquidsoap
|
|
168
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
169
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
170
|
+
# ^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
171
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
172
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
173
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
174
|
+
# ^^ source.liquidsoap meta.function-call.liquidsoap
|
|
175
|
+
# ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
|
|
176
|
+
# ^^ source.liquidsoap meta.function-call.liquidsoap
|
|
177
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
178
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
179
|
+
# ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
180
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
181
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
182
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
183
|
+
# ^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
|
|
184
|
+
# ^^ source.liquidsoap meta.function-call.liquidsoap
|
|
185
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
186
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap constant.numeric.decimal.integer.liquidsoap
|
|
187
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
188
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
189
|
+
# ^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
|
|
190
|
+
# ^^ source.liquidsoap meta.function-call.liquidsoap
|
|
191
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
192
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
193
|
+
# ^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
194
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
195
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
196
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
109
197
|
>
|
|
110
198
|
> pic_cover = string.base64.decode("AEpQRwAA/9j/4AAQSkZJRgABAQEASABIAAD/7RBSUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEAAQBIAAAAAQABOEJJTQQNAAAAAAAEAAAAeDhCSU0D8wAAAAAACAAAAAAAAAAAOEJJTQQKAAAAAAABAAA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBBQAAAAAAAQAAAABOEJJTQQMAAAAAA7BAAAAAQAAAHAAAABwAAABUAAAkwAAAA6lABgAAf/Y/+AAEEpGSUYAAQIBAEgASAAA/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAcABwAwEiAAIRAQMRAf/dAAQAB//EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdk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")
|
|
111
|
-
|
|
112
|
-
#
|
|
113
|
-
#
|
|
114
|
-
#
|
|
115
|
-
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
|
|
116
|
-
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
117
|
-
# ^^ source.liquidsoap
|
|
199
|
+
#^^ source.liquidsoap
|
|
200
|
+
# ^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
201
|
+
# ^^ source.liquidsoap
|
|
202
|
+
# ^ source.liquidsoap
|
|
203
|
+
# ^^^^^^ source.liquidsoap variable.liquidsoap
|
|
204
|
+
# ^ source.liquidsoap keyword.other.liquidsoap
|
|
205
|
+
# ^^^^^^ source.liquidsoap variable.method.liquidsoap
|
|
206
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
207
|
+
# ^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
208
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
209
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
210
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
211
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
212
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
118
213
|
>
|
|
119
214
|
> parse_pic_data = string.pic.parse(pic_cover)
|
|
120
|
-
|
|
215
|
+
#^^ source.liquidsoap
|
|
216
|
+
# ^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
217
|
+
# ^^ source.liquidsoap
|
|
218
|
+
# ^ source.liquidsoap
|
|
219
|
+
# ^^^^^^ source.liquidsoap variable.liquidsoap
|
|
220
|
+
# ^ source.liquidsoap keyword.other.liquidsoap
|
|
221
|
+
# ^^^ source.liquidsoap variable.method.liquidsoap
|
|
222
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
223
|
+
# ^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
224
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
225
|
+
# ^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
226
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
121
227
|
>
|
|
122
228
|
> expected_pic_string_data = string.base64.decode("/9j/4AAQSkZJRgABAQEASABIAAD/7RBSUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEAAQBIAAAAAQABOEJJTQQNAAAAAAAEAAAAeDhCSU0D8wAAAAAACAAAAAAAAAAAOEJJTQQKAAAAAAABAAA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBBQAAAAAAAQAAAABOEJJTQQMAAAAAA7BAAAAAQAAAHAAAABwAAABUAAAkwAAAA6lABgAAf/Y/+AAEEpGSUYAAQIBAEgASAAA/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAcABwAwEiAAIRAQMRAf/dAAQAB//EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi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")
|
|
123
|
-
|
|
124
|
-
#
|
|
125
|
-
#
|
|
126
|
-
#
|
|
127
|
-
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
|
|
128
|
-
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
129
|
-
# ^^ source.liquidsoap
|
|
229
|
+
#^^ source.liquidsoap
|
|
230
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
231
|
+
# ^^ source.liquidsoap
|
|
232
|
+
# ^ source.liquidsoap
|
|
233
|
+
# ^^^^^^ source.liquidsoap variable.liquidsoap
|
|
234
|
+
# ^ source.liquidsoap keyword.other.liquidsoap
|
|
235
|
+
# ^^^^^^ source.liquidsoap variable.method.liquidsoap
|
|
236
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
237
|
+
# ^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
238
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
239
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
240
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
241
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
242
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
130
243
|
>
|
|
131
244
|
> t(parse_pic_data, expected_pic_string_data.{description = "", picture_type = 1, mime = "image/jpeg"})
|
|
132
|
-
|
|
133
|
-
#
|
|
134
|
-
#
|
|
135
|
-
#
|
|
136
|
-
#
|
|
137
|
-
#
|
|
138
|
-
#
|
|
139
|
-
#
|
|
140
|
-
#
|
|
141
|
-
#
|
|
245
|
+
#^^ source.liquidsoap
|
|
246
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
247
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
248
|
+
# ^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
249
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
250
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
251
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
252
|
+
# ^^ source.liquidsoap meta.function-call.liquidsoap
|
|
253
|
+
# ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
|
|
254
|
+
# ^^ source.liquidsoap meta.function-call.liquidsoap
|
|
255
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
256
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
257
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
258
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
259
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
260
|
+
# ^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
|
|
261
|
+
# ^^ source.liquidsoap meta.function-call.liquidsoap
|
|
262
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
263
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap constant.numeric.decimal.integer.liquidsoap
|
|
264
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
265
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
266
|
+
# ^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
|
|
267
|
+
# ^^ source.liquidsoap meta.function-call.liquidsoap
|
|
268
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
269
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
270
|
+
# ^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
271
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
272
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
273
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
142
274
|
>
|
|
143
275
|
>
|
|
144
276
|
> # From http://towerofbabel.free.fr/test/music.ogg
|
|
145
277
|
#^^ source.liquidsoap
|
|
146
|
-
#
|
|
278
|
+
# ^ source.liquidsoap comment.line.number-sign.liquidsoap
|
|
279
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap comment.line.number-sign.liquidsoap
|
|
147
280
|
> flac_cover = string.base64.decode("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")
|
|
148
|
-
|
|
149
|
-
#
|
|
150
|
-
#
|
|
151
|
-
#
|
|
152
|
-
#
|
|
153
|
-
#
|
|
154
|
-
#
|
|
281
|
+
#^^ source.liquidsoap
|
|
282
|
+
# ^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
283
|
+
# ^^ source.liquidsoap
|
|
284
|
+
# ^ source.liquidsoap
|
|
285
|
+
# ^^^^^^ source.liquidsoap variable.liquidsoap
|
|
286
|
+
# ^ source.liquidsoap keyword.other.liquidsoap
|
|
287
|
+
# ^^^^^^ source.liquidsoap variable.method.liquidsoap
|
|
288
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
289
|
+
# ^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
290
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
291
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
292
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
293
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
294
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
155
295
|
>
|
|
156
296
|
> parse_flac_cover = null.get(file.metadata.flac.cover.decode(flac_cover))
|
|
157
|
-
|
|
297
|
+
#^^ source.liquidsoap
|
|
298
|
+
# ^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
299
|
+
# ^^ source.liquidsoap
|
|
300
|
+
# ^ source.liquidsoap
|
|
301
|
+
# ^^^^ source.liquidsoap variable.liquidsoap
|
|
302
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
303
|
+
# ^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
304
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
305
|
+
# ^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
306
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
|
|
307
|
+
# ^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
|
|
308
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
|
|
309
|
+
# ^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
|
|
310
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
|
|
311
|
+
# ^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
|
|
312
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap
|
|
313
|
+
# ^^^^^^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
314
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap
|
|
315
|
+
# ^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
316
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap
|
|
317
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
158
318
|
>
|
|
159
319
|
> excepted_flac_string_data = string.base64.decode("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")
|
|
160
|
-
|
|
161
|
-
#
|
|
162
|
-
#
|
|
163
|
-
#
|
|
164
|
-
#
|
|
165
|
-
#
|
|
166
|
-
#
|
|
320
|
+
#^^ source.liquidsoap
|
|
321
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
322
|
+
# ^^ source.liquidsoap
|
|
323
|
+
# ^ source.liquidsoap
|
|
324
|
+
# ^^^^^^ source.liquidsoap variable.liquidsoap
|
|
325
|
+
# ^ source.liquidsoap keyword.other.liquidsoap
|
|
326
|
+
# ^^^^^^ source.liquidsoap variable.method.liquidsoap
|
|
327
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
328
|
+
# ^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
329
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
330
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
331
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
332
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
333
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
167
334
|
>
|
|
168
335
|
> t(parse_flac_cover, excepted_flac_string_data.{picture_type = 3, mime = "image/jpeg", description = "", width = 0, height = 0, color_depth = 0, number_of_colors = null()})
|
|
169
|
-
|
|
170
|
-
#
|
|
171
|
-
#
|
|
172
|
-
#
|
|
173
|
-
#
|
|
174
|
-
#
|
|
175
|
-
#
|
|
176
|
-
#
|
|
177
|
-
#
|
|
178
|
-
#
|
|
179
|
-
#
|
|
180
|
-
#
|
|
181
|
-
#
|
|
182
|
-
#
|
|
183
|
-
#
|
|
184
|
-
#
|
|
336
|
+
#^^ source.liquidsoap
|
|
337
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
338
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
339
|
+
# ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
340
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
341
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
342
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
343
|
+
# ^^ source.liquidsoap meta.function-call.liquidsoap
|
|
344
|
+
# ^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
|
|
345
|
+
# ^^ source.liquidsoap meta.function-call.liquidsoap
|
|
346
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
347
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap constant.numeric.decimal.integer.liquidsoap
|
|
348
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
349
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
350
|
+
# ^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
|
|
351
|
+
# ^^ source.liquidsoap meta.function-call.liquidsoap
|
|
352
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
353
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
354
|
+
# ^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
355
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
356
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
357
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
358
|
+
# ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
|
|
359
|
+
# ^^ source.liquidsoap meta.function-call.liquidsoap
|
|
360
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
361
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
362
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
363
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
364
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
365
|
+
# ^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
|
|
366
|
+
# ^^ source.liquidsoap meta.function-call.liquidsoap
|
|
367
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
368
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap constant.numeric.decimal.integer.liquidsoap
|
|
369
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
370
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
371
|
+
# ^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
|
|
372
|
+
# ^^ source.liquidsoap meta.function-call.liquidsoap
|
|
373
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
374
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap constant.numeric.decimal.integer.liquidsoap
|
|
375
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
376
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
377
|
+
# ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
|
|
378
|
+
# ^^ source.liquidsoap meta.function-call.liquidsoap
|
|
379
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
380
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap constant.numeric.decimal.integer.liquidsoap
|
|
381
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
382
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
383
|
+
# ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.method.liquidsoap
|
|
384
|
+
# ^^ source.liquidsoap meta.function-call.liquidsoap
|
|
385
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
386
|
+
# ^^^^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
387
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap
|
|
388
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap meta.function-call.liquidsoap
|
|
389
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
390
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
185
391
|
>
|
|
186
392
|
> encoded_flac_cover = file.metadata.flac.cover.encode(
|
|
187
|
-
|
|
393
|
+
#^^ source.liquidsoap
|
|
394
|
+
# ^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
395
|
+
# ^^ source.liquidsoap
|
|
396
|
+
# ^ source.liquidsoap
|
|
397
|
+
# ^^^^ source.liquidsoap variable.liquidsoap
|
|
398
|
+
# ^ source.liquidsoap keyword.other.liquidsoap
|
|
399
|
+
# ^^^^^^^^ source.liquidsoap variable.method.liquidsoap
|
|
400
|
+
# ^ source.liquidsoap keyword.other.liquidsoap
|
|
401
|
+
# ^^^^ source.liquidsoap variable.method.liquidsoap
|
|
402
|
+
# ^ source.liquidsoap keyword.other.liquidsoap
|
|
403
|
+
# ^^^^^ source.liquidsoap variable.method.liquidsoap
|
|
404
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
405
|
+
# ^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
406
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
188
407
|
> picture_type=parse_flac_cover.picture_type,
|
|
189
|
-
|
|
408
|
+
#^^^^ source.liquidsoap meta.function-call.liquidsoap
|
|
409
|
+
# ^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.language.arguments.named.liquidsoap
|
|
410
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
411
|
+
# ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
412
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
|
|
413
|
+
# ^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
|
|
414
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
190
415
|
> mime=parse_flac_cover.mime,
|
|
191
|
-
|
|
416
|
+
#^^^^ source.liquidsoap meta.function-call.liquidsoap
|
|
417
|
+
# ^^^^ source.liquidsoap meta.function-call.liquidsoap variable.language.arguments.named.liquidsoap
|
|
418
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
419
|
+
# ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
420
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
|
|
421
|
+
# ^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
|
|
422
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
192
423
|
> description=parse_flac_cover.description,
|
|
193
|
-
|
|
424
|
+
#^^^^ source.liquidsoap meta.function-call.liquidsoap
|
|
425
|
+
# ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.language.arguments.named.liquidsoap
|
|
426
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
427
|
+
# ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
428
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
|
|
429
|
+
# ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
|
|
430
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
194
431
|
> width=parse_flac_cover.width,
|
|
195
|
-
|
|
432
|
+
#^^^^ source.liquidsoap meta.function-call.liquidsoap
|
|
433
|
+
# ^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.language.arguments.named.liquidsoap
|
|
434
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
435
|
+
# ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
436
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
|
|
437
|
+
# ^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
|
|
438
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
196
439
|
> height=parse_flac_cover.height,
|
|
197
|
-
|
|
440
|
+
#^^^^ source.liquidsoap meta.function-call.liquidsoap
|
|
441
|
+
# ^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.language.arguments.named.liquidsoap
|
|
442
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
443
|
+
# ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
444
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
|
|
445
|
+
# ^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
|
|
446
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
198
447
|
> color_depth=parse_flac_cover.color_depth,
|
|
199
|
-
|
|
448
|
+
#^^^^ source.liquidsoap meta.function-call.liquidsoap
|
|
449
|
+
# ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.language.arguments.named.liquidsoap
|
|
450
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
451
|
+
# ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
452
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
|
|
453
|
+
# ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
|
|
454
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
200
455
|
> number_of_colors=parse_flac_cover.number_of_colors,
|
|
201
|
-
|
|
456
|
+
#^^^^ source.liquidsoap meta.function-call.liquidsoap
|
|
457
|
+
# ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.language.arguments.named.liquidsoap
|
|
458
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
459
|
+
# ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
460
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap
|
|
461
|
+
# ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.method.liquidsoap
|
|
462
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
202
463
|
> (parse_flac_cover:string))
|
|
203
|
-
|
|
464
|
+
#^^^^^ source.liquidsoap meta.function-call.liquidsoap
|
|
465
|
+
# ^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
466
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap meta.type-annotation.liquidsoap keyword.other.cast.liquidsoap
|
|
467
|
+
# ^^^^^^ source.liquidsoap meta.function-call.liquidsoap meta.type-annotation.liquidsoap storage.type.ground.liquidsoap
|
|
468
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap meta.type-annotation.liquidsoap
|
|
469
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
204
470
|
>
|
|
205
471
|
>
|
|
206
472
|
> # The re-encoded tag doesn't match the original one b/c mime string has padding in it..
|
|
207
473
|
#^^ source.liquidsoap
|
|
208
|
-
#
|
|
474
|
+
# ^ source.liquidsoap comment.line.number-sign.liquidsoap
|
|
475
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap comment.line.number-sign.liquidsoap
|
|
209
476
|
> expected_encoded_flac_codec = string.base64.decode("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")
|
|
210
|
-
|
|
211
|
-
#
|
|
212
|
-
#
|
|
213
|
-
#
|
|
214
|
-
#
|
|
215
|
-
#
|
|
216
|
-
#
|
|
477
|
+
#^^ source.liquidsoap
|
|
478
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
479
|
+
# ^^ source.liquidsoap
|
|
480
|
+
# ^ source.liquidsoap
|
|
481
|
+
# ^^^^^^ source.liquidsoap variable.liquidsoap
|
|
482
|
+
# ^ source.liquidsoap keyword.other.liquidsoap
|
|
483
|
+
# ^^^^^^ source.liquidsoap variable.method.liquidsoap
|
|
484
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
485
|
+
# ^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
486
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
487
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
488
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
489
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap string.quoted.double.liquidsoap
|
|
490
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
217
491
|
>
|
|
218
492
|
> t(encoded_flac_cover, expected_encoded_flac_codec)
|
|
219
|
-
|
|
493
|
+
#^^ source.liquidsoap
|
|
494
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
495
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
496
|
+
# ^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
497
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
498
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
499
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
500
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
220
501
|
>
|
|
221
502
|
> test.pass()
|
|
222
|
-
|
|
503
|
+
#^^ source.liquidsoap
|
|
504
|
+
# ^^^^ source.liquidsoap variable.liquidsoap
|
|
505
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
506
|
+
# ^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
507
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
508
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
223
509
|
>end
|
|
224
|
-
#^^^ source.liquidsoap keyword.
|
|
510
|
+
#^^^ source.liquidsoap keyword.other.function.end.liquidsoap
|
|
225
511
|
>
|
|
226
512
|
>def test_metadata_json_stringify() =
|
|
227
|
-
#^^^ source.liquidsoap keyword.
|
|
228
|
-
#
|
|
513
|
+
#^^^ source.liquidsoap keyword.other.function.definition.liquidsoap
|
|
514
|
+
# ^ source.liquidsoap
|
|
515
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
516
|
+
# ^ source.liquidsoap
|
|
517
|
+
# ^ source.liquidsoap
|
|
518
|
+
# ^^ source.liquidsoap
|
|
229
519
|
> file_metadata = [
|
|
230
|
-
|
|
520
|
+
#^^ source.liquidsoap
|
|
521
|
+
# ^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
522
|
+
# ^^ source.liquidsoap
|
|
523
|
+
# ^^^ source.liquidsoap
|
|
231
524
|
> ("filename", "test.mp3"),
|
|
232
525
|
#^^^^^ source.liquidsoap
|
|
233
526
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
234
527
|
# ^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
|
|
235
528
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
236
|
-
#
|
|
529
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
530
|
+
# ^ source.liquidsoap
|
|
237
531
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
238
532
|
# ^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
|
|
239
533
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
240
|
-
#
|
|
534
|
+
# ^ source.liquidsoap
|
|
535
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
241
536
|
> ("temporary", "false"),
|
|
242
537
|
#^^^^^ source.liquidsoap
|
|
243
538
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
244
539
|
# ^^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
|
|
245
540
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
246
|
-
#
|
|
541
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
542
|
+
# ^ source.liquidsoap
|
|
247
543
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
248
544
|
# ^^^^^ source.liquidsoap string.quoted.double.liquidsoap
|
|
249
545
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
250
|
-
#
|
|
546
|
+
# ^ source.liquidsoap
|
|
547
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
251
548
|
> ("initial_uri", "test.mp3"),
|
|
252
549
|
#^^^^^ source.liquidsoap
|
|
253
550
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
254
551
|
# ^^^^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
|
|
255
552
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
256
|
-
#
|
|
553
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
554
|
+
# ^ source.liquidsoap
|
|
257
555
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
258
556
|
# ^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
|
|
259
557
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
260
|
-
#
|
|
558
|
+
# ^ source.liquidsoap
|
|
559
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
261
560
|
> ("encoder", "Lavf59.27.100"),
|
|
262
561
|
#^^^^^ source.liquidsoap
|
|
263
562
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
264
563
|
# ^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
|
|
265
564
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
266
|
-
#
|
|
565
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
566
|
+
# ^ source.liquidsoap
|
|
267
567
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
268
568
|
# ^^^^^^^^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
|
|
269
569
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
270
|
-
#
|
|
570
|
+
# ^ source.liquidsoap
|
|
571
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
271
572
|
> ("status", "ready"),
|
|
272
573
|
#^^^^^ source.liquidsoap
|
|
273
574
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
274
575
|
# ^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
|
|
275
576
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
276
|
-
#
|
|
577
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
578
|
+
# ^ source.liquidsoap
|
|
277
579
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
278
580
|
# ^^^^^ source.liquidsoap string.quoted.double.liquidsoap
|
|
279
581
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
280
|
-
#
|
|
582
|
+
# ^ source.liquidsoap
|
|
583
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
281
584
|
> ("rid", "0"),
|
|
282
585
|
#^^^^^ source.liquidsoap
|
|
283
586
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
284
587
|
# ^^^ source.liquidsoap string.quoted.double.liquidsoap
|
|
285
588
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
286
|
-
#
|
|
589
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
590
|
+
# ^ source.liquidsoap
|
|
287
591
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
288
592
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
289
593
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
290
|
-
#
|
|
594
|
+
# ^ source.liquidsoap
|
|
595
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
291
596
|
> ("artist", "Artist")
|
|
292
597
|
#^^^^^ source.liquidsoap
|
|
293
598
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
294
599
|
# ^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
|
|
295
600
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
296
|
-
#
|
|
601
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
602
|
+
# ^ source.liquidsoap
|
|
297
603
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
298
604
|
# ^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
|
|
299
605
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
@@ -301,80 +607,203 @@
|
|
|
301
607
|
> ]
|
|
302
608
|
#^^^^ source.liquidsoap
|
|
303
609
|
> expected_json_string = '{ "artist": "Artist" }'
|
|
304
|
-
|
|
610
|
+
#^^ source.liquidsoap
|
|
611
|
+
# ^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
612
|
+
# ^^ source.liquidsoap
|
|
613
|
+
# ^ source.liquidsoap
|
|
305
614
|
# ^ source.liquidsoap string.quoted.single.liquidsoap
|
|
306
615
|
# ^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap string.quoted.single.liquidsoap
|
|
307
616
|
# ^ source.liquidsoap string.quoted.single.liquidsoap
|
|
308
617
|
>
|
|
309
618
|
> json_string = metadata.json.stringify(file_metadata)
|
|
310
|
-
|
|
619
|
+
#^^ source.liquidsoap
|
|
620
|
+
# ^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
621
|
+
# ^^ source.liquidsoap
|
|
622
|
+
# ^ source.liquidsoap
|
|
623
|
+
# ^^^^^^^^ source.liquidsoap variable.liquidsoap
|
|
624
|
+
# ^ source.liquidsoap keyword.other.liquidsoap
|
|
625
|
+
# ^^^^ source.liquidsoap variable.method.liquidsoap
|
|
626
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
627
|
+
# ^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
628
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
629
|
+
# ^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
630
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
311
631
|
> t(json_string, expected_json_string)
|
|
312
|
-
|
|
632
|
+
#^^ source.liquidsoap
|
|
633
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
634
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
635
|
+
# ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
636
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
637
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
638
|
+
# ^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
639
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
313
640
|
>
|
|
314
641
|
> empty_file_metadata = []
|
|
315
|
-
|
|
642
|
+
#^^ source.liquidsoap
|
|
643
|
+
# ^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
644
|
+
# ^^ source.liquidsoap
|
|
645
|
+
# ^^^^ source.liquidsoap
|
|
316
646
|
> expected_json_string = '{}'
|
|
317
|
-
|
|
647
|
+
#^^ source.liquidsoap
|
|
648
|
+
# ^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
649
|
+
# ^^ source.liquidsoap
|
|
650
|
+
# ^ source.liquidsoap
|
|
318
651
|
# ^ source.liquidsoap string.quoted.single.liquidsoap
|
|
319
652
|
# ^^ source.liquidsoap string.quoted.single.liquidsoap
|
|
320
653
|
# ^ source.liquidsoap string.quoted.single.liquidsoap
|
|
321
654
|
>
|
|
322
655
|
> json_string = metadata.json.stringify(empty_file_metadata)
|
|
323
|
-
|
|
656
|
+
#^^ source.liquidsoap
|
|
657
|
+
# ^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
658
|
+
# ^^ source.liquidsoap
|
|
659
|
+
# ^ source.liquidsoap
|
|
660
|
+
# ^^^^^^^^ source.liquidsoap variable.liquidsoap
|
|
661
|
+
# ^ source.liquidsoap keyword.other.liquidsoap
|
|
662
|
+
# ^^^^ source.liquidsoap variable.method.liquidsoap
|
|
663
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
664
|
+
# ^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
665
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
666
|
+
# ^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
667
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
324
668
|
> t(json_string, expected_json_string)
|
|
325
|
-
|
|
669
|
+
#^^ source.liquidsoap
|
|
670
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
671
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
672
|
+
# ^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
673
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
674
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
675
|
+
# ^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
676
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
326
677
|
>
|
|
327
678
|
> test.pass()
|
|
328
|
-
|
|
679
|
+
#^^ source.liquidsoap
|
|
680
|
+
# ^^^^ source.liquidsoap variable.liquidsoap
|
|
681
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
682
|
+
# ^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
683
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
684
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
329
685
|
>end
|
|
330
|
-
#^^^ source.liquidsoap keyword.
|
|
686
|
+
#^^^ source.liquidsoap keyword.other.function.end.liquidsoap
|
|
331
687
|
>
|
|
332
688
|
>def test_metadata_json_parse() =
|
|
333
|
-
#^^^ source.liquidsoap keyword.
|
|
334
|
-
#
|
|
689
|
+
#^^^ source.liquidsoap keyword.other.function.definition.liquidsoap
|
|
690
|
+
# ^ source.liquidsoap
|
|
691
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
692
|
+
# ^ source.liquidsoap
|
|
693
|
+
# ^ source.liquidsoap
|
|
694
|
+
# ^^ source.liquidsoap
|
|
335
695
|
> metadata_json_string = '{"artist": "Artist"}'
|
|
336
|
-
|
|
696
|
+
#^^ source.liquidsoap
|
|
697
|
+
# ^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
698
|
+
# ^^ source.liquidsoap
|
|
699
|
+
# ^ source.liquidsoap
|
|
337
700
|
# ^ source.liquidsoap string.quoted.single.liquidsoap
|
|
338
701
|
# ^^^^^^^^^^^^^^^^^^^^ source.liquidsoap string.quoted.single.liquidsoap
|
|
339
702
|
# ^ source.liquidsoap string.quoted.single.liquidsoap
|
|
340
703
|
> expected_parsed_metadata = [("artist", "Artist")]
|
|
341
|
-
|
|
704
|
+
#^^ source.liquidsoap
|
|
705
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
706
|
+
# ^^ source.liquidsoap
|
|
707
|
+
# ^^^ source.liquidsoap
|
|
342
708
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
343
709
|
# ^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
|
|
344
710
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
345
|
-
#
|
|
711
|
+
# ^ source.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
712
|
+
# ^ source.liquidsoap
|
|
346
713
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
347
714
|
# ^^^^^^ source.liquidsoap string.quoted.double.liquidsoap
|
|
348
715
|
# ^ source.liquidsoap string.quoted.double.liquidsoap
|
|
349
716
|
# ^^^ source.liquidsoap
|
|
350
717
|
>
|
|
351
718
|
> parsed_metadata = metadata.json.parse(metadata_json_string)
|
|
352
|
-
|
|
719
|
+
#^^ source.liquidsoap
|
|
720
|
+
# ^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
721
|
+
# ^^ source.liquidsoap
|
|
722
|
+
# ^ source.liquidsoap
|
|
723
|
+
# ^^^^^^^^ source.liquidsoap variable.liquidsoap
|
|
724
|
+
# ^ source.liquidsoap keyword.other.liquidsoap
|
|
725
|
+
# ^^^^ source.liquidsoap variable.method.liquidsoap
|
|
726
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
727
|
+
# ^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
728
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
729
|
+
# ^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
730
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
353
731
|
> t(parsed_metadata, expected_parsed_metadata)
|
|
354
|
-
|
|
732
|
+
#^^ source.liquidsoap
|
|
733
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
734
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
735
|
+
# ^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
736
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
737
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
738
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
739
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
355
740
|
>
|
|
356
741
|
> empty_metadata_json_string = '{}'
|
|
357
|
-
|
|
742
|
+
#^^ source.liquidsoap
|
|
743
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
744
|
+
# ^^ source.liquidsoap
|
|
745
|
+
# ^ source.liquidsoap
|
|
358
746
|
# ^ source.liquidsoap string.quoted.single.liquidsoap
|
|
359
747
|
# ^^ source.liquidsoap string.quoted.single.liquidsoap
|
|
360
748
|
# ^ source.liquidsoap string.quoted.single.liquidsoap
|
|
361
749
|
> expected_parsed_metadata = []
|
|
362
|
-
|
|
750
|
+
#^^ source.liquidsoap
|
|
751
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
752
|
+
# ^^ source.liquidsoap
|
|
753
|
+
# ^^^^ source.liquidsoap
|
|
363
754
|
>
|
|
364
755
|
> parsed_metadata = metadata.json.parse(empty_metadata_json_string)
|
|
365
|
-
|
|
756
|
+
#^^ source.liquidsoap
|
|
757
|
+
# ^^^^^^^^^^^^^^^ source.liquidsoap entity.name.function.binding.liquidsoap
|
|
758
|
+
# ^^ source.liquidsoap
|
|
759
|
+
# ^ source.liquidsoap
|
|
760
|
+
# ^^^^^^^^ source.liquidsoap variable.liquidsoap
|
|
761
|
+
# ^ source.liquidsoap keyword.other.liquidsoap
|
|
762
|
+
# ^^^^ source.liquidsoap variable.method.liquidsoap
|
|
763
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
764
|
+
# ^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
765
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
766
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
767
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
366
768
|
> t(parsed_metadata, expected_parsed_metadata)
|
|
367
|
-
|
|
769
|
+
#^^ source.liquidsoap
|
|
770
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
771
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
772
|
+
# ^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
773
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap keyword.other.liquidsoap punctuation.comma punctuation.separator.comma
|
|
774
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
775
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
776
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
368
777
|
>
|
|
369
778
|
> test.pass()
|
|
370
|
-
|
|
779
|
+
#^^ source.liquidsoap
|
|
780
|
+
# ^^^^ source.liquidsoap variable.liquidsoap
|
|
781
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
782
|
+
# ^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
783
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
784
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
371
785
|
>end
|
|
372
|
-
#^^^ source.liquidsoap keyword.
|
|
786
|
+
#^^^ source.liquidsoap keyword.other.function.end.liquidsoap
|
|
373
787
|
>
|
|
374
788
|
>test.check(f)
|
|
375
|
-
|
|
789
|
+
#^^^^ source.liquidsoap variable.liquidsoap
|
|
790
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
791
|
+
# ^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
792
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
793
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
794
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
376
795
|
>test.check(test_metadata_json_stringify)
|
|
377
|
-
|
|
796
|
+
#^^^^ source.liquidsoap variable.liquidsoap
|
|
797
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
798
|
+
# ^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
799
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
800
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
801
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
378
802
|
>test.check(test_metadata_json_parse)
|
|
379
|
-
|
|
803
|
+
#^^^^ source.liquidsoap variable.liquidsoap
|
|
804
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
805
|
+
# ^^^^^ source.liquidsoap meta.function-call.liquidsoap entity.name.function.liquidsoap
|
|
806
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
807
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^ source.liquidsoap meta.function-call.liquidsoap variable.liquidsoap
|
|
808
|
+
# ^ source.liquidsoap meta.function-call.liquidsoap
|
|
380
809
|
>
|