{"version":3,"sources":["jsdelivr-header.js","/npm/@lottiefiles/dotlottie-web@0.75.0/src/animation-frame-manager.ts","/npm/@lottiefiles/dotlottie-web@0.75.0/src/constants.ts","/npm/@lottiefiles/dotlottie-web@0.75.0/src/core/dotlottie-player.js","/npm/@lottiefiles/dotlottie-web@0.75.0/src/event-manager.ts","/npm/@lottiefiles/dotlottie-web@0.75.0/src/offscreen-observer.ts","/npm/@lottiefiles/dotlottie-web@0.75.0/src/resize-observer.ts","/npm/@lottiefiles/dotlottie-web@0.75.0/src/utils.ts","/npm/@lottiefiles/dotlottie-web@0.75.0/src/wasm-loader.ts","/npm/@lottiefiles/dotlottie-web@0.75.0/src/dotlottie.ts","/npm/@lottiefiles/dotlottie-web@0.75.0/src/worker/worker-manager.ts","/npm/@lottiefiles/dotlottie-web@0.75.0/src/worker/dotlottie.ts"],"names":[],"mappings":"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AA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,IAAA,IA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","file":"/npm/@lottiefiles/dotlottie-web@0.75.0/dist/index.js/+esm","sourceRoot":"","sourcesContent":["/**\n * Bundled by jsDelivr using Rollup v4.62.2 and esbuild v0.28.1.\n * Original file: /npm/@lottiefiles/dotlottie-web@0.75.0/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/* eslint-disable max-classes-per-file */\n\ninterface AnimationFrameStrategy {\n  cancelAnimationFrame(id: number): void;\n  requestAnimationFrame(callback: (time: number) => void): number;\n}\n\nclass WebAnimationFrameStrategy implements AnimationFrameStrategy {\n  public requestAnimationFrame(callback: (time: number) => void): number {\n    return requestAnimationFrame(callback);\n  }\n\n  public cancelAnimationFrame(id: number): void {\n    cancelAnimationFrame(id);\n  }\n}\n\nclass NodeAnimationFrameStrategy implements AnimationFrameStrategy {\n  private _lastHandleId: number = 0;\n\n  private _lastImmediate: NodeJS.Immediate | null = null;\n\n  public requestAnimationFrame(callback: (time: number) => void): number {\n    if (this._lastHandleId >= Number.MAX_SAFE_INTEGER) {\n      this._lastHandleId = 0;\n    }\n\n    this._lastHandleId += 1;\n\n    this._lastImmediate = setImmediate(() => {\n      callback(performance.now());\n    });\n\n    return this._lastHandleId;\n  }\n\n  public cancelAnimationFrame(_id: number): void {\n    if (this._lastImmediate) {\n      clearImmediate(this._lastImmediate);\n    }\n  }\n}\n\nexport class AnimationFrameManager {\n  private readonly _strategy: AnimationFrameStrategy;\n\n  public constructor() {\n    this._strategy =\n      typeof requestAnimationFrame === 'function' ? new WebAnimationFrameStrategy() : new NodeAnimationFrameStrategy();\n  }\n\n  public requestAnimationFrame(callback: (time: number) => void): number {\n    return this._strategy.requestAnimationFrame(callback);\n  }\n\n  public cancelAnimationFrame(id: number): void {\n    this._strategy.cancelAnimationFrame(id);\n  }\n}\n","export const IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined';\nexport const MS_TO_SEC_FACTOR = 1000;\nexport const DEFAULT_BG_COLOR = '#00000000';\nexport const ZIP_SIGNATURE = new Uint8Array([0x50, 0x4b, 0x03, 0x04]);\nexport const LOTTIE_JSON_MANDATORY_FIELDS = ['v', 'ip', 'op', 'layers', 'fr', 'w', 'h'];\n\n// These values are replace during the build process with the package version and name\nexport const PACKAGE_VERSION = __PACKAGE_VERSION__;\nexport const PACKAGE_NAME = __PACKAGE_NAME__;\n\nexport const DEFAULT_DPR_FACTOR = 0.75;\n\nexport const BYTES_PER_PIXEL = 4;\n","let wasm;\n\nconst cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } );\n\nif (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); };\n\nlet cachedUint8ArrayMemory0 = null;\n\nfunction getUint8ArrayMemory0() {\n    if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n        cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n    }\n    return cachedUint8ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n    ptr = ptr >>> 0;\n    return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nfunction addToExternrefTable0(obj) {\n    const idx = wasm.__externref_table_alloc_command_export();\n    wasm.__wbindgen_export_3.set(idx, obj);\n    return idx;\n}\n\nfunction handleError(f, args) {\n    try {\n        return f.apply(this, args);\n    } catch (e) {\n        const idx = addToExternrefTable0(e);\n        wasm.__wbindgen_exn_store_command_export(idx);\n    }\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nconst cachedTextEncoder = (typeof TextEncoder !== 'undefined' ? new TextEncoder('utf-8') : { encode: () => { throw Error('TextEncoder not available') } } );\n\nconst encodeString = (typeof cachedTextEncoder.encodeInto === 'function'\n    ? function (arg, view) {\n    return cachedTextEncoder.encodeInto(arg, view);\n}\n    : function (arg, view) {\n    const buf = cachedTextEncoder.encode(arg);\n    view.set(buf);\n    return {\n        read: arg.length,\n        written: buf.length\n    };\n});\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n\n    if (realloc === undefined) {\n        const buf = cachedTextEncoder.encode(arg);\n        const ptr = malloc(buf.length, 1) >>> 0;\n        getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n        WASM_VECTOR_LEN = buf.length;\n        return ptr;\n    }\n\n    let len = arg.length;\n    let ptr = malloc(len, 1) >>> 0;\n\n    const mem = getUint8ArrayMemory0();\n\n    let offset = 0;\n\n    for (; offset < len; offset++) {\n        const code = arg.charCodeAt(offset);\n        if (code > 0x7F) break;\n        mem[ptr + offset] = code;\n    }\n\n    if (offset !== len) {\n        if (offset !== 0) {\n            arg = arg.slice(offset);\n        }\n        ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n        const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n        const ret = encodeString(arg, view);\n\n        offset += ret.written;\n        ptr = realloc(ptr, len, offset, 1) >>> 0;\n    }\n\n    WASM_VECTOR_LEN = offset;\n    return ptr;\n}\n\nlet cachedDataViewMemory0 = null;\n\nfunction getDataViewMemory0() {\n    if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n        cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n    }\n    return cachedDataViewMemory0;\n}\n\nfunction isLikeNone(x) {\n    return x === undefined || x === null;\n}\n\nlet cachedFloat32ArrayMemory0 = null;\n\nfunction getFloat32ArrayMemory0() {\n    if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {\n        cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);\n    }\n    return cachedFloat32ArrayMemory0;\n}\n\nfunction passArrayF32ToWasm0(arg, malloc) {\n    const ptr = malloc(arg.length * 4, 4) >>> 0;\n    getFloat32ArrayMemory0().set(arg, ptr / 4);\n    WASM_VECTOR_LEN = arg.length;\n    return ptr;\n}\n\nfunction passArray8ToWasm0(arg, malloc) {\n    const ptr = malloc(arg.length * 1, 1) >>> 0;\n    getUint8ArrayMemory0().set(arg, ptr / 1);\n    WASM_VECTOR_LEN = arg.length;\n    return ptr;\n}\n\nfunction passArrayJsValueToWasm0(array, malloc) {\n    const ptr = malloc(array.length * 4, 4) >>> 0;\n    for (let i = 0; i < array.length; i++) {\n        const add = addToExternrefTable0(array[i]);\n        getDataViewMemory0().setUint32(ptr + 4 * i, add, true);\n    }\n    WASM_VECTOR_LEN = array.length;\n    return ptr;\n}\n/**\n * Register a font globally (static, not tied to a player instance).\n * @param {string} name\n * @param {Uint8Array} data\n * @returns {boolean}\n */\nexport function register_font(name, data) {\n    const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n    const len0 = WASM_VECTOR_LEN;\n    const ptr1 = passArray8ToWasm0(data, wasm.__wbindgen_malloc_command_export);\n    const len1 = WASM_VECTOR_LEN;\n    const ret = wasm.register_font(ptr0, len0, ptr1, len1);\n    return ret !== 0;\n}\n\n/**\n * Playback direction / bounce mode.\n * @enum {0 | 1 | 2 | 3}\n */\nexport const Mode = Object.freeze({\n    Forward: 0, \"0\": \"Forward\",\n    Reverse: 1, \"1\": \"Reverse\",\n    Bounce: 2, \"2\": \"Bounce\",\n    ReverseBounce: 3, \"3\": \"ReverseBounce\",\n});\n\nconst DotLottiePlayerWasmFinalization = (typeof FinalizationRegistry === 'undefined')\n    ? { register: () => {}, unregister: () => {} }\n    : new FinalizationRegistry(ptr => wasm.__wbg_dotlottieplayerwasm_free(ptr >>> 0, 1));\n\nexport class DotLottiePlayerWasm {\n\n    __destroy_into_raw() {\n        const ptr = this.__wbg_ptr;\n        this.__wbg_ptr = 0;\n        DotLottiePlayerWasmFinalization.unregister(this);\n        return ptr;\n    }\n\n    free() {\n        const ptr = this.__destroy_into_raw();\n        wasm.__wbg_dotlottieplayerwasm_free(ptr, 0);\n    }\n    /**\n     * @param {string} id\n     * @returns {boolean}\n     */\n    clear_slot(id) {\n        const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_clear_slot(this.__wbg_ptr, ptr0, len0);\n        return ret !== 0;\n    }\n    /**\n     * @returns {boolean}\n     */\n    is_playing() {\n        const ret = wasm.dotlottieplayerwasm_is_playing(this.__wbg_ptr);\n        return ret !== 0;\n    }\n    /**\n     * @returns {boolean}\n     */\n    is_stopped() {\n        const ret = wasm.dotlottieplayerwasm_is_stopped(this.__wbg_ptr);\n        return ret !== 0;\n    }\n    /**\n     * @returns {string}\n     */\n    layout_fit() {\n        let deferred1_0;\n        let deferred1_1;\n        try {\n            const ret = wasm.dotlottieplayerwasm_layout_fit(this.__wbg_ptr);\n            deferred1_0 = ret[0];\n            deferred1_1 = ret[1];\n            return getStringFromWasm0(ret[0], ret[1]);\n        } finally {\n            wasm.__wbindgen_free_command_export(deferred1_0, deferred1_1, 1);\n        }\n    }\n    /**\n     * @returns {number}\n     */\n    loop_count() {\n        const ret = wasm.dotlottieplayerwasm_loop_count(this.__wbg_ptr);\n        return ret >>> 0;\n    }\n    /**\n     * Poll the next player event.  Returns `null` if the queue is empty,\n     * otherwise a plain JS object with a `type` string field and optional\n     * payload fields (`frameNo`, `loopCount`).\n     * @returns {any}\n     */\n    poll_event() {\n        const ret = wasm.dotlottieplayerwasm_poll_event(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * Reset a slot to its default value from the animation.\n     * @param {string} id\n     * @returns {boolean}\n     */\n    reset_slot(id) {\n        const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_reset_slot(this.__wbg_ptr, ptr0, len0);\n        return ret !== 0;\n    }\n    /**\n     * Set the layout.\n     *\n     * `fit` is one of `\"contain\"`, `\"fill\"`, `\"cover\"`, `\"fit-width\"`,\n     * `\"fit-height\"`, `\"none\"`.  `align_x` / `align_y` are in [0, 1].\n     * @param {string} fit\n     * @param {number} align_x\n     * @param {number} align_y\n     * @returns {boolean}\n     */\n    set_layout(fit, align_x, align_y) {\n        const ptr0 = passStringToWasm0(fit, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_set_layout(this.__wbg_ptr, ptr0, len0, align_x, align_y);\n        return ret !== 0;\n    }\n    /**\n     * @param {string} name\n     */\n    set_marker(name) {\n        const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        wasm.dotlottieplayerwasm_set_marker(this.__wbg_ptr, ptr0, len0);\n    }\n    /**\n     * @returns {boolean}\n     */\n    clear_slots() {\n        const ret = wasm.dotlottieplayerwasm_clear_slots(this.__wbg_ptr);\n        return ret !== 0;\n    }\n    /**\n     * @returns {boolean}\n     */\n    is_complete() {\n        const ret = wasm.dotlottieplayerwasm_is_complete(this.__wbg_ptr);\n        return ret !== 0;\n    }\n    /**\n     * @returns {boolean}\n     */\n    is_tweening() {\n        const ret = wasm.dotlottieplayerwasm_is_tweening(this.__wbg_ptr);\n        return ret !== 0;\n    }\n    /**\n     * Reset all slots to their default values from the animation.\n     * @returns {boolean}\n     */\n    reset_slots() {\n        const ret = wasm.dotlottieplayerwasm_reset_slots(this.__wbg_ptr);\n        return ret !== 0;\n    }\n    /**\n     * @returns {boolean}\n     */\n    reset_theme() {\n        const ret = wasm.dotlottieplayerwasm_reset_theme(this.__wbg_ptr);\n        return ret !== 0;\n    }\n    /**\n     * @returns {number}\n     */\n    segment_end() {\n        const ret = wasm.dotlottieplayerwasm_segment_end(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * @param {number} quality\n     * @returns {boolean}\n     */\n    set_quality(quality) {\n        const ret = wasm.dotlottieplayerwasm_set_quality(this.__wbg_ptr, quality);\n        return ret !== 0;\n    }\n    /**\n     * @param {number} start\n     * @param {number} end\n     * @returns {boolean}\n     */\n    set_segment(start, end) {\n        const ret = wasm.dotlottieplayerwasm_set_segment(this.__wbg_ptr, start, end);\n        return ret !== 0;\n    }\n    /**\n     * @param {bigint} seed\n     * @returns {boolean}\n     */\n    sm_set_seed(seed) {\n        const ret = wasm.dotlottieplayerwasm_sm_set_seed(this.__wbg_ptr, seed);\n        return ret !== 0;\n    }\n    /**\n     * @param {string} name\n     * @returns {boolean}\n     */\n    static unload_font(name) {\n        const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_unload_font(ptr0, len0);\n        return ret !== 0;\n    }\n    /**\n     * @returns {string | undefined}\n     */\n    animation_id() {\n        const ret = wasm.dotlottieplayerwasm_animation_id(this.__wbg_ptr);\n        let v1;\n        if (ret[0] !== 0) {\n            v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n            wasm.__wbindgen_free_command_export(ret[0], ret[1] * 1, 1);\n        }\n        return v1;\n    }\n    /**\n     * Returns the current global audio volume multiplier.\n     * @returns {number}\n     */\n    audio_volume() {\n        const ret = wasm.dotlottieplayerwasm_audio_volume(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * @returns {number}\n     */\n    background_a() {\n        const ret = wasm.dotlottieplayerwasm_background_a(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * @returns {number}\n     */\n    background_b() {\n        const ret = wasm.dotlottieplayerwasm_background_b(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * @returns {number}\n     */\n    background_g() {\n        const ret = wasm.dotlottieplayerwasm_background_g(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * @returns {number}\n     */\n    background_r() {\n        const ret = wasm.dotlottieplayerwasm_background_r(this.__wbg_ptr);\n        return ret;\n    }\n    clear_marker() {\n        wasm.dotlottieplayerwasm_clear_marker(this.__wbg_ptr);\n    }\n    emit_on_loop() {\n        wasm.dotlottieplayerwasm_emit_on_loop(this.__wbg_ptr);\n    }\n    /**\n     * Get all slot IDs as a JS array.\n     * @returns {any}\n     */\n    get_slot_ids() {\n        const ret = wasm.dotlottieplayerwasm_get_slot_ids(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * Get the JSON value of a single slot by ID, or `undefined` if not found.\n     * @param {string} id\n     * @returns {string | undefined}\n     */\n    get_slot_str(id) {\n        const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_get_slot_str(this.__wbg_ptr, ptr0, len0);\n        let v2;\n        if (ret[0] !== 0) {\n            v2 = getStringFromWasm0(ret[0], ret[1]).slice();\n            wasm.__wbindgen_free_command_export(ret[0], ret[1] * 1, 1);\n        }\n        return v2;\n    }\n    /**\n     * Returns an array of marker name strings.\n     * @returns {any}\n     */\n    marker_names() {\n        const ret = wasm.dotlottieplayerwasm_marker_names(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * @param {boolean} v\n     */\n    set_autoplay(v) {\n        wasm.dotlottieplayerwasm_set_autoplay(this.__wbg_ptr, v);\n    }\n    /**\n     * Set a single slot by ID from a JSON value string.\n     * @param {string} id\n     * @param {string} json\n     * @returns {boolean}\n     */\n    set_slot_str(id, json) {\n        const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ptr1 = passStringToWasm0(json, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len1 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_set_slot_str(this.__wbg_ptr, ptr0, len0, ptr1, len1);\n        return ret !== 0;\n    }\n    /**\n     * @param {number} x\n     * @param {number} y\n     * @param {number} w\n     * @param {number} h\n     * @returns {boolean}\n     */\n    set_viewport(x, y, w, h) {\n        const ret = wasm.dotlottieplayerwasm_set_viewport(this.__wbg_ptr, x, y, w, h);\n        return ret !== 0;\n    }\n    /**\n     * @returns {number}\n     */\n    total_frames() {\n        const ret = wasm.dotlottieplayerwasm_total_frames(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * @returns {boolean}\n     */\n    clear_segment() {\n        const ret = wasm.dotlottieplayerwasm_clear_segment(this.__wbg_ptr);\n        return ret !== 0;\n    }\n    /**\n     * @returns {number}\n     */\n    current_frame() {\n        const ret = wasm.dotlottieplayerwasm_current_frame(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * Get the type string of a slot, or `undefined` if not found.\n     * @param {string} id\n     * @returns {string | undefined}\n     */\n    get_slot_type(id) {\n        const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_get_slot_type(this.__wbg_ptr, ptr0, len0);\n        let v2;\n        if (ret[0] !== 0) {\n            v2 = getStringFromWasm0(ret[0], ret[1]).slice();\n            wasm.__wbindgen_free_command_export(ret[0], ret[1] * 1, 1);\n        }\n        return v2;\n    }\n    /**\n     * Get all slots as a JSON object string.\n     * @returns {string}\n     */\n    get_slots_str() {\n        let deferred1_0;\n        let deferred1_1;\n        try {\n            const ret = wasm.dotlottieplayerwasm_get_slots_str(this.__wbg_ptr);\n            deferred1_0 = ret[0];\n            deferred1_1 = ret[1];\n            return getStringFromWasm0(ret[0], ret[1]);\n        } finally {\n            wasm.__wbindgen_free_command_export(deferred1_0, deferred1_1, 1);\n        }\n    }\n    /**\n     * Returns the current affine transform as a flat `Float32Array`.\n     * @returns {Float32Array}\n     */\n    get_transform() {\n        const ret = wasm.dotlottieplayerwasm_get_transform(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * @returns {number}\n     */\n    segment_start() {\n        const ret = wasm.dotlottieplayerwasm_segment_start(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * Set multiple slots at once from a JSON string.\n     * @param {string} json\n     * @returns {boolean}\n     */\n    set_slots_str(json) {\n        const ptr0 = passStringToWasm0(json, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_set_slots_str(this.__wbg_ptr, ptr0, len0);\n        return ret !== 0;\n    }\n    /**\n     * @param {string} id\n     * @param {string} text\n     * @returns {boolean}\n     */\n    set_text_slot(id, text) {\n        const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ptr1 = passStringToWasm0(text, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len1 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_set_text_slot(this.__wbg_ptr, ptr0, len0, ptr1, len1);\n        return ret !== 0;\n    }\n    /**\n     * @param {Float32Array} data\n     * @returns {boolean}\n     */\n    set_transform(data) {\n        const ptr0 = passArrayF32ToWasm0(data, wasm.__wbindgen_malloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_set_transform(this.__wbg_ptr, ptr0, len0);\n        return ret !== 0;\n    }\n    /**\n     * Returns all state machine inputs as a JS array of strings.\n     * @returns {any}\n     */\n    sm_get_inputs() {\n        const ret = wasm.dotlottieplayerwasm_sm_get_inputs(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * Poll the next state machine event.  Returns `null` if the queue is empty,\n     * otherwise a JS object with a `type` field and optional payload.\n     * @returns {any}\n     */\n    sm_poll_event() {\n        const ret = wasm.dotlottieplayerwasm_sm_poll_event(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * @param {number} x\n     * @param {number} y\n     */\n    sm_post_click(x, y) {\n        wasm.dotlottieplayerwasm_sm_post_click(this.__wbg_ptr, x, y);\n    }\n    /**\n     * `[width, height]` of the animation in its native coordinate space.\n     * @returns {Float32Array}\n     */\n    animation_size() {\n        const ret = wasm.dotlottieplayerwasm_animation_size(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * Name of the currently active marker, or `undefined` if none.\n     * @returns {string | undefined}\n     */\n    current_marker() {\n        const ret = wasm.dotlottieplayerwasm_current_marker(this.__wbg_ptr);\n        let v1;\n        if (ret[0] !== 0) {\n            v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n            wasm.__wbindgen_free_command_export(ret[0], ret[1] * 1, 1);\n        }\n        return v1;\n    }\n    /**\n     * @returns {number}\n     */\n    layout_align_x() {\n        const ret = wasm.dotlottieplayerwasm_layout_align_x(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * @returns {number}\n     */\n    layout_align_y() {\n        const ret = wasm.dotlottieplayerwasm_layout_align_y(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * Load a Lottie JSON animation.\n     *\n     * `setup_target` must have been called first.\n     * @param {string} data\n     * @returns {boolean}\n     */\n    load_animation(data) {\n        const ptr0 = passStringToWasm0(data, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_load_animation(this.__wbg_ptr, ptr0, len0);\n        return ret !== 0;\n    }\n    /**\n     * @returns {boolean}\n     */\n    loop_animation() {\n        const ret = wasm.dotlottieplayerwasm_loop_animation(this.__wbg_ptr);\n        return ret !== 0;\n    }\n    /**\n     * Set background colour. Pass `(0, 0, 0, 0)` to clear.\n     * @param {number} r\n     * @param {number} g\n     * @param {number} b\n     * @param {number} a\n     * @returns {boolean}\n     */\n    set_background(r, g, b, a) {\n        const ret = wasm.dotlottieplayerwasm_set_background(this.__wbg_ptr, r, g, b, a);\n        return ret !== 0;\n    }\n    /**\n     * Set a color slot (`r`, `g`, `b` in [0, 1]).\n     * @param {string} id\n     * @param {number} r\n     * @param {number} g\n     * @param {number} b\n     * @returns {boolean}\n     */\n    set_color_slot(id, r, g, b) {\n        const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_set_color_slot(this.__wbg_ptr, ptr0, len0, r, g, b);\n        return ret !== 0;\n    }\n    /**\n     * @param {number} n\n     */\n    set_loop_count(n) {\n        wasm.dotlottieplayerwasm_set_loop_count(this.__wbg_ptr, n);\n    }\n    /**\n     * @param {string} data\n     * @returns {boolean}\n     */\n    set_theme_data(data) {\n        const ptr0 = passStringToWasm0(data, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_set_theme_data(this.__wbg_ptr, ptr0, len0);\n        return ret !== 0;\n    }\n    /**\n     * @param {string} key\n     */\n    sm_reset_input(key) {\n        const ptr0 = passStringToWasm0(key, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        wasm.dotlottieplayerwasm_sm_reset_input(this.__wbg_ptr, ptr0, len0);\n    }\n    /**\n     * Returns the animation manifest as a JSON string, or empty string if unavailable.\n     * @returns {string}\n     */\n    manifest_string() {\n        let deferred1_0;\n        let deferred1_1;\n        try {\n            const ret = wasm.dotlottieplayerwasm_manifest_string(this.__wbg_ptr);\n            deferred1_0 = ret[0];\n            deferred1_1 = ret[1];\n            return getStringFromWasm0(ret[0], ret[1]);\n        } finally {\n            wasm.__wbindgen_free_command_export(deferred1_0, deferred1_1, 1);\n        }\n    }\n    /**\n     * @param {string} id\n     * @param {number} value\n     * @returns {boolean}\n     */\n    set_scalar_slot(id, value) {\n        const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_set_scalar_slot(this.__wbg_ptr, ptr0, len0, value);\n        return ret !== 0;\n    }\n    /**\n     * @param {string} id\n     * @param {number} x\n     * @param {number} y\n     * @returns {boolean}\n     */\n    set_vector_slot(id, x, y) {\n        const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_set_vector_slot(this.__wbg_ptr, ptr0, len0, x, y);\n        return ret !== 0;\n    }\n    /**\n     * Set up (or resize) the software rendering target.\n     * @param {number} width\n     * @param {number} height\n     * @returns {boolean}\n     */\n    setup_sw_target(width, height) {\n        const ret = wasm.dotlottieplayerwasm_setup_sw_target(this.__wbg_ptr, width, height);\n        return ret !== 0;\n    }\n    /**\n     * Zero-copy `Uint8Array` view into WASM linear memory.\n     *\n     * **Use the returned array immediately.**  Do not store the reference across\n     * any call that may reallocate the buffer (e.g. `resize` / `load_animation`\n     * with different dimensions).\n     * @returns {Uint8Array}\n     */\n    get_pixel_buffer() {\n        const ret = wasm.dotlottieplayerwasm_get_pixel_buffer(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * Set the global audio volume multiplier (clamped to [0.0, 1.0]).\n     * @param {number} volume\n     */\n    set_audio_volume(volume) {\n        wasm.dotlottieplayerwasm_set_audio_volume(this.__wbg_ptr, volume);\n    }\n    /**\n     * Get the name of the current state.\n     * @returns {string}\n     */\n    sm_current_state() {\n        let deferred1_0;\n        let deferred1_1;\n        try {\n            const ret = wasm.dotlottieplayerwasm_sm_current_state(this.__wbg_ptr);\n            deferred1_0 = ret[0];\n            deferred1_1 = ret[1];\n            return getStringFromWasm0(ret[0], ret[1]);\n        } finally {\n            wasm.__wbindgen_free_command_export(deferred1_0, deferred1_1, 1);\n        }\n    }\n    /**\n     * Returns the ID of the currently active state machine, or `undefined`.\n     * @returns {string | undefined}\n     */\n    state_machine_id() {\n        const ret = wasm.dotlottieplayerwasm_state_machine_id(this.__wbg_ptr);\n        let v1;\n        if (ret[0] !== 0) {\n            v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n            wasm.__wbindgen_free_command_export(ret[0], ret[1] * 1, 1);\n        }\n        return v1;\n    }\n    /**\n     * Returns the raw JSON definition of a state machine by ID, or `undefined`.\n     * @param {string} id\n     * @returns {string | undefined}\n     */\n    get_state_machine(id) {\n        const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_get_state_machine(this.__wbg_ptr, ptr0, len0);\n        let v2;\n        if (ret[0] !== 0) {\n            v2 = getStringFromWasm0(ret[0], ret[1]).slice();\n            wasm.__wbindgen_free_command_export(ret[0], ret[1] * 1, 1);\n        }\n        return v2;\n    }\n    /**\n     * @param {string} id\n     * @param {number} x\n     * @param {number} y\n     * @returns {boolean}\n     */\n    set_position_slot(id, x, y) {\n        const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_set_position_slot(this.__wbg_ptr, ptr0, len0, x, y);\n        return ret !== 0;\n    }\n    /**\n     * @returns {number}\n     */\n    current_loop_count() {\n        const ret = wasm.dotlottieplayerwasm_current_loop_count(this.__wbg_ptr);\n        return ret >>> 0;\n    }\n    /**\n     * Returns the framework setup listeners as a JS array of strings.\n     * @returns {any}\n     */\n    sm_framework_setup() {\n        const ret = wasm.dotlottieplayerwasm_sm_framework_setup(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * @param {number} x\n     * @param {number} y\n     */\n    sm_post_pointer_up(x, y) {\n        wasm.dotlottieplayerwasm_sm_post_pointer_up(this.__wbg_ptr, x, y);\n    }\n    /**\n     * Load a state machine from a JSON definition string.  Returns `true` on\n     * success.  The engine is kept alive inside the player and interacted\n     * with via the `sm_*` methods.\n     * @param {string} definition\n     * @returns {boolean}\n     */\n    state_machine_load(definition) {\n        const ptr0 = passStringToWasm0(definition, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_state_machine_load(this.__wbg_ptr, ptr0, len0);\n        return ret !== 0;\n    }\n    /**\n     * Load a .lottie archive from raw bytes.\n     *\n     * `setup_target` must have been called first.\n     * @param {Uint8Array} data\n     * @returns {boolean}\n     */\n    load_dotlottie_data(data) {\n        const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_load_dotlottie_data(this.__wbg_ptr, ptr0, len0);\n        return ret !== 0;\n    }\n    /**\n     * @param {string} key\n     * @returns {string | undefined}\n     */\n    sm_get_string_input(key) {\n        const ptr0 = passStringToWasm0(key, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_sm_get_string_input(this.__wbg_ptr, ptr0, len0);\n        let v2;\n        if (ret[0] !== 0) {\n            v2 = getStringFromWasm0(ret[0], ret[1]).slice();\n            wasm.__wbindgen_free_command_export(ret[0], ret[1] * 1, 1);\n        }\n        return v2;\n    }\n    /**\n     * @param {string} key\n     * @param {string} value\n     * @returns {boolean}\n     */\n    sm_set_string_input(key, value) {\n        const ptr0 = passStringToWasm0(key, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ptr1 = passStringToWasm0(value, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len1 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_sm_set_string_input(this.__wbg_ptr, ptr0, len0, ptr1, len1);\n        return ret !== 0;\n    }\n    /**\n     * @param {string} key\n     * @returns {boolean | undefined}\n     */\n    sm_get_boolean_input(key) {\n        const ptr0 = passStringToWasm0(key, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_sm_get_boolean_input(this.__wbg_ptr, ptr0, len0);\n        return ret === 0xFFFFFF ? undefined : ret !== 0;\n    }\n    /**\n     * @param {string} key\n     * @returns {number | undefined}\n     */\n    sm_get_numeric_input(key) {\n        const ptr0 = passStringToWasm0(key, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_sm_get_numeric_input(this.__wbg_ptr, ptr0, len0);\n        return ret === 0x100000001 ? undefined : ret;\n    }\n    /**\n     * @param {number} x\n     * @param {number} y\n     */\n    sm_post_pointer_down(x, y) {\n        wasm.dotlottieplayerwasm_sm_post_pointer_down(this.__wbg_ptr, x, y);\n    }\n    /**\n     * @param {number} x\n     * @param {number} y\n     */\n    sm_post_pointer_exit(x, y) {\n        wasm.dotlottieplayerwasm_sm_post_pointer_exit(this.__wbg_ptr, x, y);\n    }\n    /**\n     * @param {number} x\n     * @param {number} y\n     */\n    sm_post_pointer_move(x, y) {\n        wasm.dotlottieplayerwasm_sm_post_pointer_move(this.__wbg_ptr, x, y);\n    }\n    /**\n     * @param {string} key\n     * @param {boolean} value\n     * @returns {boolean}\n     */\n    sm_set_boolean_input(key, value) {\n        const ptr0 = passStringToWasm0(key, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_sm_set_boolean_input(this.__wbg_ptr, ptr0, len0, value);\n        return ret !== 0;\n    }\n    /**\n     * @param {string} key\n     * @param {number} value\n     * @returns {boolean}\n     */\n    sm_set_numeric_input(key, value) {\n        const ptr0 = passStringToWasm0(key, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_sm_set_numeric_input(this.__wbg_ptr, ptr0, len0, value);\n        return ret !== 0;\n    }\n    /**\n     * Unload the active state machine.\n     */\n    state_machine_unload() {\n        wasm.dotlottieplayerwasm_state_machine_unload(this.__wbg_ptr);\n    }\n    /**\n     * @param {number} x\n     * @param {number} y\n     */\n    sm_post_pointer_enter(x, y) {\n        wasm.dotlottieplayerwasm_sm_post_pointer_enter(this.__wbg_ptr, x, y);\n    }\n    /**\n     * Load an animation from an already-loaded .lottie archive by its ID.\n     *\n     * `setup_target` must have been called first.\n     * @param {string} id\n     * @returns {boolean}\n     */\n    load_animation_from_id(id) {\n        const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_load_animation_from_id(this.__wbg_ptr, ptr0, len0);\n        return ret !== 0;\n    }\n    /**\n     * Poll the next state machine internal event.  Returns `null` if the\n     * queue is empty, otherwise a JS object `{ type: \"Message\", message }`.\n     * @returns {any}\n     */\n    sm_poll_internal_event() {\n        const ret = wasm.dotlottieplayerwasm_sm_poll_internal_event(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * @returns {boolean}\n     */\n    use_frame_interpolation() {\n        const ret = wasm.dotlottieplayerwasm_use_frame_interpolation(this.__wbg_ptr);\n        return ret !== 0;\n    }\n    reset_current_loop_count() {\n        wasm.dotlottieplayerwasm_reset_current_loop_count(this.__wbg_ptr);\n    }\n    /**\n     * Override the current state.\n     * @param {string} state\n     * @param {boolean} immediate\n     * @returns {boolean}\n     */\n    sm_override_current_state(state, immediate) {\n        const ptr0 = passStringToWasm0(state, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_sm_override_current_state(this.__wbg_ptr, ptr0, len0, immediate);\n        return ret !== 0;\n    }\n    /**\n     * Load a state machine from a .lottie archive by state-machine ID.\n     * @param {string} id\n     * @returns {boolean}\n     */\n    state_machine_load_from_id(id) {\n        const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_state_machine_load_from_id(this.__wbg_ptr, ptr0, len0);\n        return ret !== 0;\n    }\n    /**\n     * @param {boolean} v\n     */\n    set_use_frame_interpolation(v) {\n        wasm.dotlottieplayerwasm_set_use_frame_interpolation(this.__wbg_ptr, v);\n    }\n    constructor() {\n        const ret = wasm.dotlottieplayerwasm_new();\n        this.__wbg_ptr = ret >>> 0;\n        DotLottiePlayerWasmFinalization.register(this, this.__wbg_ptr, this);\n        return this;\n    }\n    /**\n     * @returns {Mode}\n     */\n    mode() {\n        const ret = wasm.dotlottieplayerwasm_mode(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * @returns {boolean}\n     */\n    play() {\n        const ret = wasm.dotlottieplayerwasm_play(this.__wbg_ptr);\n        return ret !== 0;\n    }\n    /**\n     * @returns {boolean}\n     */\n    stop() {\n        const ret = wasm.dotlottieplayerwasm_stop(this.__wbg_ptr);\n        return ret !== 0;\n    }\n    /**\n     * Advance the animation by `dt` milliseconds and render if the frame changed.\n     * Call once per `requestAnimationFrame`, passing the frame delta in milliseconds.\n     * @param {number} dt\n     * @returns {boolean}\n     */\n    tick(dt) {\n        const ret = wasm.dotlottieplayerwasm_tick(this.__wbg_ptr, dt);\n        return ret !== 0;\n    }\n    /**\n     * @returns {boolean}\n     */\n    pause() {\n        const ret = wasm.dotlottieplayerwasm_pause(this.__wbg_ptr);\n        return ret !== 0;\n    }\n    /**\n     * @returns {number}\n     */\n    speed() {\n        const ret = wasm.dotlottieplayerwasm_speed(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * @returns {number}\n     */\n    width() {\n        const ret = wasm.dotlottieplayerwasm_width(this.__wbg_ptr);\n        return ret >>> 0;\n    }\n    /**\n     * @returns {number}\n     */\n    height() {\n        const ret = wasm.dotlottieplayerwasm_height(this.__wbg_ptr);\n        return ret >>> 0;\n    }\n    /**\n     * Render the current frame without advancing time.\n     * @returns {boolean}\n     */\n    render() {\n        const ret = wasm.dotlottieplayerwasm_render(this.__wbg_ptr);\n        return ret !== 0;\n    }\n    /**\n     * Returns an array of `{ name, start, end }` objects.\n     * @returns {any}\n     */\n    markers() {\n        const ret = wasm.dotlottieplayerwasm_markers(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * Fire a named event into the state machine.\n     * @param {string} event\n     * @returns {boolean}\n     */\n    sm_fire(event) {\n        const ptr0 = passStringToWasm0(event, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_sm_fire(this.__wbg_ptr, ptr0, len0);\n        return ret !== 0;\n    }\n    /**\n     * Stop the state machine.\n     * @returns {boolean}\n     */\n    sm_stop() {\n        const ret = wasm.dotlottieplayerwasm_sm_stop(this.__wbg_ptr);\n        return ret !== 0;\n    }\n    /**\n     * Advance the state machine by `dt` milliseconds and render if the frame changed.\n     * Returns `true` when a new frame was rendered, `false` otherwise.\n     * @param {number} dt\n     * @returns {boolean}\n     */\n    sm_tick(dt) {\n        const ret = wasm.dotlottieplayerwasm_sm_tick(this.__wbg_ptr, dt);\n        return ret !== 0;\n    }\n    /**\n     * @returns {boolean}\n     */\n    autoplay() {\n        const ret = wasm.dotlottieplayerwasm_autoplay(this.__wbg_ptr);\n        return ret !== 0;\n    }\n    /**\n     * @returns {number}\n     */\n    duration() {\n        const ret = wasm.dotlottieplayerwasm_duration(this.__wbg_ptr);\n        return ret;\n    }\n    /**\n     * @param {boolean} v\n     */\n    set_loop(v) {\n        wasm.dotlottieplayerwasm_set_loop(this.__wbg_ptr, v);\n    }\n    /**\n     * @param {Mode} mode\n     */\n    set_mode(mode) {\n        wasm.dotlottieplayerwasm_set_mode(this.__wbg_ptr, mode);\n    }\n    /**\n     * Start the state machine with an open-URL policy.\n     * @param {boolean} require_user_interaction\n     * @param {any[]} whitelist\n     * @returns {boolean}\n     */\n    sm_start(require_user_interaction, whitelist) {\n        const ptr0 = passArrayJsValueToWasm0(whitelist, wasm.__wbindgen_malloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_sm_start(this.__wbg_ptr, require_user_interaction, ptr0, len0);\n        return ret !== 0;\n    }\n    /**\n     * @returns {string | undefined}\n     */\n    theme_id() {\n        const ret = wasm.dotlottieplayerwasm_theme_id(this.__wbg_ptr);\n        let v1;\n        if (ret[0] !== 0) {\n            v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n            wasm.__wbindgen_free_command_export(ret[0], ret[1] * 1, 1);\n        }\n        return v1;\n    }\n    /**\n     * @returns {boolean}\n     */\n    is_loaded() {\n        const ret = wasm.dotlottieplayerwasm_is_loaded(this.__wbg_ptr);\n        return ret !== 0;\n    }\n    /**\n     * @returns {boolean}\n     */\n    is_paused() {\n        const ret = wasm.dotlottieplayerwasm_is_paused(this.__wbg_ptr);\n        return ret !== 0;\n    }\n    /**\n     * @param {string} name\n     * @param {Uint8Array} data\n     * @returns {boolean}\n     */\n    load_font(name, data) {\n        const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ptr1 = passArray8ToWasm0(data, wasm.__wbindgen_malloc_command_export);\n        const len1 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_load_font(this.__wbg_ptr, ptr0, len0, ptr1, len1);\n        return ret !== 0;\n    }\n    /**\n     * @param {number} no\n     * @returns {boolean}\n     */\n    set_frame(no) {\n        const ret = wasm.dotlottieplayerwasm_set_frame(this.__wbg_ptr, no);\n        return ret !== 0;\n    }\n    /**\n     * @param {number} speed\n     */\n    set_speed(speed) {\n        wasm.dotlottieplayerwasm_set_speed(this.__wbg_ptr, speed);\n    }\n    /**\n     * @param {string} id\n     * @returns {boolean}\n     */\n    set_theme(id) {\n        const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len0 = WASM_VECTOR_LEN;\n        const ret = wasm.dotlottieplayerwasm_set_theme(this.__wbg_ptr, ptr0, len0);\n        return ret !== 0;\n    }\n    /**\n     * Get the current status of the state machine as a string.\n     * @returns {string}\n     */\n    sm_status() {\n        let deferred1_0;\n        let deferred1_1;\n        try {\n            const ret = wasm.dotlottieplayerwasm_sm_status(this.__wbg_ptr);\n            deferred1_0 = ret[0];\n            deferred1_1 = ret[1];\n            return getStringFromWasm0(ret[0], ret[1]);\n        } finally {\n            wasm.__wbindgen_free_command_export(deferred1_0, deferred1_1, 1);\n        }\n    }\n}\n\nasync function __wbg_load(module, imports) {\n    if (typeof Response === 'function' && module instanceof Response) {\n        if (typeof WebAssembly.instantiateStreaming === 'function') {\n            try {\n                return await WebAssembly.instantiateStreaming(module, imports);\n\n            } catch (e) {\n                if (module.headers.get('Content-Type') != 'application/wasm') {\n                    console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n                } else {\n                    throw e;\n                }\n            }\n        }\n\n        const bytes = await module.arrayBuffer();\n        return await WebAssembly.instantiate(bytes, imports);\n\n    } else {\n        const instance = await WebAssembly.instantiate(module, imports);\n\n        if (instance instanceof WebAssembly.Instance) {\n            return { instance, module };\n\n        } else {\n            return instance;\n        }\n    }\n}\n\nfunction __wbg_get_imports() {\n    const imports = {};\n    imports.wbg = {};\n    imports.wbg.__wbg_buffer_609cc3eee51ed158 = function(arg0) {\n        const ret = arg0.buffer;\n        return ret;\n    };\n    imports.wbg.__wbg_error_7534b8e9a36f1ab4 = function(arg0, arg1) {\n        let deferred0_0;\n        let deferred0_1;\n        try {\n            deferred0_0 = arg0;\n            deferred0_1 = arg1;\n            console.error(getStringFromWasm0(arg0, arg1));\n        } finally {\n            wasm.__wbindgen_free_command_export(deferred0_0, deferred0_1, 1);\n        }\n    };\n    imports.wbg.__wbg_new_405e22f390576ce2 = function() {\n        const ret = new Object();\n        return ret;\n    };\n    imports.wbg.__wbg_new_78feb108b6472713 = function() {\n        const ret = new Array();\n        return ret;\n    };\n    imports.wbg.__wbg_new_8a6f238a6ece86ea = function() {\n        const ret = new Error();\n        return ret;\n    };\n    imports.wbg.__wbg_newwithbyteoffsetandlength_d97e637ebe145a9a = function(arg0, arg1, arg2) {\n        const ret = new Uint8Array(arg0, arg1 >>> 0, arg2 >>> 0);\n        return ret;\n    };\n    imports.wbg.__wbg_newwithlength_5a5efe313cfd59f1 = function(arg0) {\n        const ret = new Float32Array(arg0 >>> 0);\n        return ret;\n    };\n    imports.wbg.__wbg_push_737cfc8c1432c2c6 = function(arg0, arg1) {\n        const ret = arg0.push(arg1);\n        return ret;\n    };\n    imports.wbg.__wbg_set_bb8cecf6a62b9f46 = function() { return handleError(function (arg0, arg1, arg2) {\n        const ret = Reflect.set(arg0, arg1, arg2);\n        return ret;\n    }, arguments) };\n    imports.wbg.__wbg_setindex_4e73afdcd9bb95cd = function(arg0, arg1, arg2) {\n        arg0[arg1 >>> 0] = arg2;\n    };\n    imports.wbg.__wbg_stack_0ed75d68575b0f3c = function(arg0, arg1) {\n        const ret = arg1.stack;\n        const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        const len1 = WASM_VECTOR_LEN;\n        getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n        getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n    };\n    imports.wbg.__wbindgen_init_externref_table = function() {\n        const table = wasm.__wbindgen_export_3;\n        const offset = table.grow(4);\n        table.set(0, undefined);\n        table.set(offset + 0, undefined);\n        table.set(offset + 1, null);\n        table.set(offset + 2, true);\n        table.set(offset + 3, false);\n        ;\n    };\n    imports.wbg.__wbindgen_memory = function() {\n        const ret = wasm.memory;\n        return ret;\n    };\n    imports.wbg.__wbindgen_number_new = function(arg0) {\n        const ret = arg0;\n        return ret;\n    };\n    imports.wbg.__wbindgen_string_get = function(arg0, arg1) {\n        const obj = arg1;\n        const ret = typeof(obj) === 'string' ? obj : undefined;\n        var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);\n        var len1 = WASM_VECTOR_LEN;\n        getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n        getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n    };\n    imports.wbg.__wbindgen_string_new = function(arg0, arg1) {\n        const ret = getStringFromWasm0(arg0, arg1);\n        return ret;\n    };\n    imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n        throw new Error(getStringFromWasm0(arg0, arg1));\n    };\n\n    return imports;\n}\n\nfunction __wbg_init_memory(imports, memory) {\n\n}\n\nfunction __wbg_finalize_init(instance, module) {\n    wasm = instance.exports;\n    __wbg_init.__wbindgen_wasm_module = module;\n    cachedDataViewMemory0 = null;\n    cachedFloat32ArrayMemory0 = null;\n    cachedUint8ArrayMemory0 = null;\n\n\n    wasm.__wbindgen_start();\n    return wasm;\n}\n\nfunction initSync(module) {\n    if (wasm !== undefined) return wasm;\n\n\n    if (typeof module !== 'undefined') {\n        if (Object.getPrototypeOf(module) === Object.prototype) {\n            ({module} = module)\n        } else {\n            console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n        }\n    }\n\n    const imports = __wbg_get_imports();\n\n    __wbg_init_memory(imports);\n\n    if (!(module instanceof WebAssembly.Module)) {\n        module = new WebAssembly.Module(module);\n    }\n\n    const instance = new WebAssembly.Instance(module, imports);\n\n    return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n    if (wasm !== undefined) return wasm;\n\n\n    if (typeof module_or_path !== 'undefined') {\n        if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n            ({module_or_path} = module_or_path)\n        } else {\n            console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n        }\n    }\n\n    if (typeof module_or_path === 'undefined') {\n        throw new Error('WASM module URL must be provided via DotLottieWasmLoader or setWasmUrl().');\n    }\n    const imports = __wbg_get_imports();\n\n    if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n        module_or_path = fetch(module_or_path);\n    }\n\n    __wbg_init_memory(imports);\n\n    const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n    return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync };\nexport default __wbg_init;\n","/**\n * Represents the different types of events that can be dispatched.\n */\nexport type EventType =\n  | 'complete'\n  | 'frame'\n  | 'load'\n  | 'loadError'\n  | 'renderError'\n  | 'loop'\n  | 'pause'\n  | 'play'\n  | 'stop'\n  | 'destroy'\n  | 'freeze'\n  | 'unfreeze'\n  | 'render'\n  | 'ready'\n  | 'stateMachineStart'\n  | 'stateMachineStop'\n  | 'stateMachineTransition'\n  | 'stateMachineStateEntered'\n  | 'stateMachineStateExit'\n  | 'stateMachineCustomEvent'\n  | 'stateMachineError'\n  | 'stateMachineBooleanInputValueChange'\n  | 'stateMachineNumericInputValueChange'\n  | 'stateMachineStringInputValueChange'\n  | 'stateMachineInputFired'\n  | 'stateMachineInternalMessage';\n\n/**\n * Maps an event type string to its respective event interface.\n */\ntype EventByType<T extends EventType> = Extract<Event, { type: T }>;\n\n/**\n * Base interface for all events.\n */\nexport interface BaseEvent {\n  type: EventType;\n}\n\nexport interface RenderEvent extends BaseEvent {\n  currentFrame: number;\n  type: 'render';\n}\n\nexport interface FreezeEvent extends BaseEvent {\n  type: 'freeze';\n}\n\nexport interface UnfreezeEvent extends BaseEvent {\n  type: 'unfreeze';\n}\n\n/*\n * Event fired when a destroy action occurs.\n */\nexport interface DestroyEvent extends BaseEvent {\n  type: 'destroy';\n}\n\n/**\n * Event fired when a loop action occurs.\n */\nexport interface LoopEvent extends BaseEvent {\n  loopCount: number;\n  type: 'loop';\n}\n\n/**\n * Event fired during frame changes.\n */\nexport interface FrameEvent extends BaseEvent {\n  currentFrame: number;\n  type: 'frame';\n}\n\n/**\n * Event fired when a load action occurs.\n */\nexport interface LoadEvent extends BaseEvent {\n  type: 'load';\n}\n\n/**\n * Event fired when a loading error occurs.\n */\nexport interface LoadErrorEvent extends BaseEvent {\n  error: Error;\n  type: 'loadError';\n}\n\n/**\n * Event fired when a loading error occurs.\n */\nexport interface RenderErrorEvent extends BaseEvent {\n  error: Error;\n  type: 'renderError';\n}\n\n/**\n * Event fired when a completion action occurs.\n */\nexport interface CompleteEvent extends BaseEvent {\n  type: 'complete';\n}\n\n/**\n * Event fired when a pause action occurs.\n */\nexport interface PauseEvent extends BaseEvent {\n  type: 'pause';\n}\n\n/**\n * Event fired when a play action occurs.\n */\nexport interface PlayEvent extends BaseEvent {\n  type: 'play';\n}\n\n/**\n * Event fired when a stop action occurs.\n */\nexport interface StopEvent extends BaseEvent {\n  type: 'stop';\n}\n\n/**\n * Event fired when a WASM module is initialized and ready.\n */\nexport interface ReadyEvent extends BaseEvent {\n  type: 'ready';\n}\n\nexport interface StateMachineStartEvent extends BaseEvent {\n  type: 'stateMachineStart';\n}\n\nexport interface StateMachineStopEvent extends BaseEvent {\n  type: 'stateMachineStop';\n}\n\nexport interface StateMachineTransitionEvent extends BaseEvent {\n  fromState: string;\n  toState: string;\n  type: 'stateMachineTransition';\n}\n\nexport interface StateMachineStateEnteredEvent extends BaseEvent {\n  state: string;\n  type: 'stateMachineStateEntered';\n}\n\nexport interface StateMachineStateExitEvent extends BaseEvent {\n  state: string;\n  type: 'stateMachineStateExit';\n}\n\nexport interface StateMachineCustomEvent extends BaseEvent {\n  eventName: string;\n  type: 'stateMachineCustomEvent';\n}\n\nexport interface StateMachineErrorEvent extends BaseEvent {\n  error: string;\n  type: 'stateMachineError';\n}\n\nexport interface StateMachineBooleanInputValueChangeEvent extends BaseEvent {\n  inputName: string;\n  newValue: boolean;\n  oldValue: boolean;\n  type: 'stateMachineBooleanInputValueChange';\n}\n\nexport interface StateMachineNumericInputValueChangeEvent extends BaseEvent {\n  inputName: string;\n  newValue: number;\n  oldValue: number;\n  type: 'stateMachineNumericInputValueChange';\n}\n\nexport interface StateMachineStringInputValueChangeEvent extends BaseEvent {\n  inputName: string;\n  newValue: string;\n  oldValue: string;\n  type: 'stateMachineStringInputValueChange';\n}\n\nexport interface StateMachineInputFiredEvent extends BaseEvent {\n  inputName: string;\n  type: 'stateMachineInputFired';\n}\n\nexport interface StateMachineInternalMessage extends BaseEvent {\n  message: string;\n  type: 'stateMachineInternalMessage';\n}\n\n/**\n * Type representing all possible event types.\n */\nexport type Event =\n  | LoopEvent\n  | FrameEvent\n  | LoadEvent\n  | LoadErrorEvent\n  | RenderErrorEvent\n  | CompleteEvent\n  | PauseEvent\n  | PlayEvent\n  | StopEvent\n  | DestroyEvent\n  | FreezeEvent\n  | UnfreezeEvent\n  | RenderEvent\n  | ReadyEvent\n  | StateMachineStartEvent\n  | StateMachineStopEvent\n  | StateMachineTransitionEvent\n  | StateMachineStateEnteredEvent\n  | StateMachineStateExitEvent\n  | StateMachineCustomEvent\n  | StateMachineErrorEvent\n  | StateMachineBooleanInputValueChangeEvent\n  | StateMachineNumericInputValueChangeEvent\n  | StateMachineStringInputValueChangeEvent\n  | StateMachineInputFiredEvent\n  | StateMachineInternalMessage;\n\nexport type EventListener<T extends EventType> = (event: EventByType<T>) => void;\n\n/**\n * Manages registration and dispatching of event listeners.\n */\nexport class EventManager {\n  private readonly _eventListeners: Map<EventType, Set<EventListener<EventType>>> = new Map();\n\n  public addEventListener<T extends EventType>(type: T, listener: EventListener<T>): void {\n    let listeners = this._eventListeners.get(type);\n\n    if (!listeners) {\n      listeners = new Set<EventListener<EventType>>();\n      this._eventListeners.set(type, listeners);\n    }\n\n    listeners.add(listener as unknown as EventListener<EventType>);\n  }\n\n  public removeEventListener<T extends EventType>(type: T, listener?: EventListener<T>): void {\n    const listeners = this._eventListeners.get(type);\n\n    if (!listeners) return;\n\n    if (listener) {\n      listeners.delete(listener as unknown as EventListener<EventType>);\n\n      if (listeners.size === 0) {\n        this._eventListeners.delete(type);\n      }\n    } else {\n      this._eventListeners.delete(type);\n    }\n  }\n\n  public dispatch<T extends EventType>(event: EventByType<T>): void {\n    const listeners = this._eventListeners.get(event.type);\n\n    listeners?.forEach((listener) => listener(event));\n  }\n\n  public removeAllEventListeners(): void {\n    this._eventListeners.clear();\n  }\n}\n","import type { DotLottie } from './dotlottie';\nimport type { DotLottieWorker } from './worker/dotlottie';\n\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class OffscreenObserver {\n  private static _observer: IntersectionObserver | null = null;\n\n  private static readonly _observedCanvases = new Map<HTMLCanvasElement, DotLottie | DotLottieWorker>();\n\n  private static _initializeObserver(): void {\n    if (OffscreenObserver._observer) return;\n\n    const intersectionObserverCallback = (entries: IntersectionObserverEntry[]): void => {\n      entries.forEach((entry) => {\n        const instance = OffscreenObserver._observedCanvases.get(entry.target as HTMLCanvasElement);\n\n        if (instance) {\n          if (entry.isIntersecting) {\n            instance.unfreeze();\n          } else {\n            instance.freeze();\n          }\n        }\n      });\n    };\n\n    OffscreenObserver._observer = new IntersectionObserver(intersectionObserverCallback, {\n      threshold: 0,\n    });\n  }\n\n  public static observe(canvas: HTMLCanvasElement, dotLottieInstance: DotLottie | DotLottieWorker): void {\n    OffscreenObserver._initializeObserver();\n\n    if (OffscreenObserver._observedCanvases.has(canvas)) return;\n\n    OffscreenObserver._observedCanvases.set(canvas, dotLottieInstance);\n    OffscreenObserver._observer?.observe(canvas);\n  }\n\n  public static unobserve(canvas: HTMLCanvasElement): void {\n    OffscreenObserver._observer?.unobserve(canvas);\n    OffscreenObserver._observedCanvases.delete(canvas);\n\n    if (OffscreenObserver._observedCanvases.size === 0) {\n      OffscreenObserver._observer?.disconnect();\n      OffscreenObserver._observer = null;\n    }\n  }\n}\n","import type { DotLottie } from './dotlottie';\nimport type { DotLottieWorker } from './worker/dotlottie';\n\nexport const RESIZE_DEBOUNCE_TIME = 100;\n\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class CanvasResizeObserver {\n  private static _observer: ResizeObserver | null = null;\n\n  private static readonly _observedCanvases = new Map<HTMLCanvasElement, [DotLottie | DotLottieWorker, number]>();\n\n  private static _initializeObserver(): void {\n    if (CanvasResizeObserver._observer) return;\n\n    const resizeHandler = (entries: ResizeObserverEntry[]): void => {\n      entries.forEach((entry) => {\n        const element = CanvasResizeObserver._observedCanvases.get(entry.target as HTMLCanvasElement);\n\n        if (!element) return;\n\n        const [dotLottieInstance, timeout] = element;\n\n        clearTimeout(timeout);\n\n        const newTimeout = setTimeout(() => {\n          dotLottieInstance.resize();\n        }, RESIZE_DEBOUNCE_TIME) as unknown as number;\n\n        CanvasResizeObserver._observedCanvases.set(entry.target as HTMLCanvasElement, [dotLottieInstance, newTimeout]);\n      });\n    };\n\n    CanvasResizeObserver._observer = new ResizeObserver(resizeHandler);\n  }\n\n  public static observe(canvas: HTMLCanvasElement, dotLottieInstance: DotLottie | DotLottieWorker): void {\n    CanvasResizeObserver._initializeObserver();\n\n    if (CanvasResizeObserver._observedCanvases.has(canvas)) return;\n\n    CanvasResizeObserver._observedCanvases.set(canvas, [dotLottieInstance, 0]);\n    CanvasResizeObserver._observer?.observe(canvas);\n  }\n\n  public static unobserve(canvas: HTMLCanvasElement): void {\n    const element = CanvasResizeObserver._observedCanvases.get(canvas);\n\n    if (element) {\n      const timeoutId = element[1];\n\n      if (timeoutId) clearTimeout(timeoutId);\n    }\n\n    CanvasResizeObserver._observer?.unobserve(canvas);\n    CanvasResizeObserver._observedCanvases.delete(canvas);\n\n    if (!CanvasResizeObserver._observedCanvases.size && CanvasResizeObserver._observer) {\n      CanvasResizeObserver._observer.disconnect();\n      CanvasResizeObserver._observer = null;\n    }\n  }\n}\n","import { DEFAULT_DPR_FACTOR, IS_BROWSER, LOTTIE_JSON_MANDATORY_FIELDS, ZIP_SIGNATURE } from './constants';\n\n/**\n * Validates if a string is a valid hex color in #RRGGBB or #RRGGBBAA format.\n * @param color - Color string to validate\n * @returns True if valid hex color format, false otherwise\n */\nexport function isHexColor(color: string): boolean {\n  return /^#([\\da-f]{6}|[\\da-f]{8})$/iu.test(color);\n}\n\n/**\n * Converts a hex color string to an RGBA integer for WASM consumption.\n * Adds full opacity (alpha = 255, 0xFF in hex) if alpha channel is not specified.\n * @param colorHex - Hex color string (e.g., '#FFFFFF' or '#FFFFFFFF')\n * @returns RGBA value as a 32-bit integer, or 0 if invalid hex color\n */\nexport function hexStringToRGBAInt(colorHex: string): number {\n  if (!isHexColor(colorHex)) {\n    return 0;\n  }\n\n  let hex = colorHex.replace('#', '');\n\n  // Add alpha if it's not included\n  hex = hex.length === 6 ? `${hex}ff` : hex;\n\n  return parseInt(hex, 16);\n}\n\n/**\n * Converts a hex color string to RGBA float components in [0, 1].\n * @param colorHex - Hex color string (e.g., '#FFFFFF' or '#RRGGBBAA')\n * @returns Tuple of [r, g, b, a] as floats in [0, 1], or [0, 0, 0, 0] if invalid\n */\nexport function hexStringToRGBAFloats(colorHex: string): [number, number, number, number] {\n  if (!isHexColor(colorHex)) {\n    return [0, 0, 0, 0];\n  }\n\n  let hex = colorHex.replace('#', '');\n\n  hex = hex.length === 6 ? `${hex}ff` : hex;\n\n  const r = parseInt(hex.slice(0, 2), 16) / 255;\n  const g = parseInt(hex.slice(2, 4), 16) / 255;\n  const b = parseInt(hex.slice(4, 6), 16) / 255;\n  const a = parseInt(hex.slice(6, 8), 16) / 255;\n\n  return [r, g, b, a];\n}\n\n/**\n * Detects if file data is a .lottie file by checking for ZIP signature.\n * dotLottie files are ZIP archives containing Lottie JSON and metadata.\n * @param fileData - Raw file data as ArrayBuffer\n * @returns True if data starts with ZIP signature, false otherwise\n */\nexport function isDotLottie(fileData: ArrayBuffer): boolean {\n  if (fileData.byteLength < 4) {\n    return false;\n  }\n\n  const fileSignature = new Uint8Array(fileData.slice(0, ZIP_SIGNATURE.byteLength));\n\n  for (let i = 0; i < ZIP_SIGNATURE.length; i += 1) {\n    if (ZIP_SIGNATURE[i] !== fileSignature[i]) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\n/**\n * Returns whether the given object looks like a valid Lottie JSON structure.\n */\nexport function isLottieJSON(json: Record<string, unknown>): boolean {\n  return LOTTIE_JSON_MANDATORY_FIELDS.every((field) => Object.hasOwn(json, field));\n}\n\n/**\n * Detects if data is a valid Lottie animation by checking for required JSON fields.\n * Accepts either a JSON string or a parsed object.\n * @param fileData - Lottie data as JSON string or parsed object\n * @returns True if data contains required Lottie fields, false otherwise\n */\nexport function isLottie(fileData: string | Record<string, unknown>): boolean {\n  if (typeof fileData === 'string') {\n    try {\n      return isLottieJSON(JSON.parse(fileData));\n    } catch (_e) {\n      return false;\n    }\n  } else {\n    return isLottieJSON(fileData);\n  }\n}\n\n/**\n * Calculates the default device pixel ratio with a scaling factor.\n * Applies a factor to balance quality and performance on high-DPI displays.\n * @returns Adjusted device pixel ratio value\n */\nexport function getDefaultDPR(): number {\n  const dpr = IS_BROWSER ? window.devicePixelRatio : 1;\n\n  return 1 + (dpr - 1) * DEFAULT_DPR_FACTOR;\n}\n\n/**\n * Checks if an HTML element is currently visible within the browser viewport.\n * Used to determine when to freeze/unfreeze rendering for performance optimization.\n * @param element - HTMLElement to check visibility for\n * @returns True if element is at least partially visible in viewport, false otherwise\n */\nexport function isElementInViewport(element: HTMLElement): boolean {\n  const rect = element.getBoundingClientRect();\n  const viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n  const viewportWidth = window.innerWidth || document.documentElement.clientWidth;\n\n  return !(rect.bottom < 0 || rect.top > viewportHeight || rect.right < 0 || rect.left > viewportWidth);\n}\n\n/**\n * Calculate pointer position relative to the canvas coordinate system\n * @param event - The mouse or pointer event (target should be the canvas element)\n * @returns The calculated position or null if calculation fails or target is not a valid canvas\n */\nexport function getPointerPosition(event: MouseEvent | PointerEvent): { x: number; y: number } | null {\n  const canvas = event.target;\n\n  if (canvas instanceof HTMLCanvasElement) {\n    const rect = canvas.getBoundingClientRect();\n\n    if (rect.width === 0 || rect.height === 0 || canvas.width === 0 || canvas.height === 0) {\n      return null;\n    }\n\n    const scaleX = canvas.width / rect.width;\n    const scaleY = canvas.height / rect.height;\n\n    const x = (event.clientX - rect.left) * scaleX;\n    const y = (event.clientY - rect.top) * scaleY;\n\n    if (!Number.isFinite(x) || !Number.isFinite(y) || Number.isNaN(x) || Number.isNaN(y)) {\n      return null;\n    }\n\n    return { x, y };\n  }\n\n  // Return null if target is not an HTMLCanvasElement or calculation fails\n  return null;\n}\n\nexport function handleOpenUrl(message: string): void {\n  const content = message.replace('OpenUrl: ', '');\n\n  const targetSeparatorIndex = content.indexOf(' | Target: ');\n  let urlToOpen: string;\n  let target: string;\n\n  if (targetSeparatorIndex === -1) {\n    // Format: \"OpenUrl: {url}\"\n    urlToOpen = content;\n    target = '_blank';\n  } else {\n    // Format: \"OpenUrl: {url} | Target: {target}\"\n    urlToOpen = content.substring(0, targetSeparatorIndex);\n    target = content.substring(targetSeparatorIndex + ' | Target: '.length);\n  }\n\n  window.open(urlToOpen, target);\n}\n","type WasmInitInput = string | BufferSource;\ntype WasmInitFn = (options: { module_or_path: WasmInitInput }) => Promise<unknown>;\n\nexport function createWasmLoader(initFn: WasmInitFn, primaryUrl: string, backupUrl: string) {\n  let initPromise: Promise<void> | null = null;\n  let wasmUrl = primaryUrl;\n\n  async function initFromUrl(url: string): Promise<void> {\n    await initFn({ module_or_path: url });\n  }\n\n  // Some environments (notably certain iOS WKWebView builds) reject\n  // WebAssembly.instantiateStreaming even for otherwise valid Response objects.\n  // Fetching bytes ourselves and passing a BufferSource to wasm-bindgen's init\n  // skips its streaming code path entirely.\n  async function initFromBytes(url: string): Promise<void> {\n    const response = await fetch(url);\n\n    if (!response.ok) {\n      throw new Error(`fetch ${url} responded with ${response.status} ${response.statusText}`);\n    }\n\n    const buffer = await response.arrayBuffer();\n\n    await initFn({ module_or_path: buffer });\n  }\n\n  return {\n    load(): Promise<void> {\n      if (!initPromise) {\n        // Snapshot URLs so a concurrent setWasmUrl() can't shift them mid-attempt.\n        const primary = wasmUrl;\n        const backup = backupUrl;\n\n        initPromise = (async () => {\n          let primaryError: unknown;\n          let backupError: unknown;\n\n          try {\n            await initFromUrl(primary);\n            return;\n          } catch (err) {\n            primaryError = err;\n            console.warn(`Primary WASM load failed from ${primary}: ${(err as Error).message}`);\n            console.warn(`Attempting to load WASM from backup URL: ${backup}`);\n          }\n\n          try {\n            await initFromUrl(backup);\n            return;\n          } catch (err) {\n            backupError = err;\n            console.warn(`Backup WASM load failed from ${backup}: ${(err as Error).message}`);\n          }\n\n          console.warn('Retrying WASM load with buffered instantiation');\n\n          try {\n            await initFromBytes(primary);\n            return;\n          } catch (err) {\n            console.warn(`Buffered WASM load from ${primary} failed: ${(err as Error).message}`);\n          }\n\n          try {\n            await initFromBytes(backup);\n            return;\n          } catch (err) {\n            console.error(`Primary WASM URL failed: ${(primaryError as Error).message}`);\n            console.error(`Backup WASM URL failed: ${(backupError as Error).message}`);\n            console.error(`Buffered fallback failed: ${(err as Error).message}`);\n            initPromise = null;\n            throw new Error('WASM loading failed from all sources.');\n          }\n        })();\n      }\n\n      return initPromise;\n    },\n\n    setWasmUrl(url: string): void {\n      if (url === wasmUrl) return;\n\n      wasmUrl = url;\n      initPromise = null;\n    },\n  };\n}\n","/* eslint-disable no-warning-comments */\nimport { AnimationFrameManager } from './animation-frame-manager';\nimport { BYTES_PER_PIXEL, IS_BROWSER, PACKAGE_NAME, PACKAGE_VERSION } from './constants';\nimport init, { Mode as CoreMode, DotLottiePlayerWasm, register_font } from './core/dotlottie-player';\nimport type { EventListener, EventType } from './event-manager';\nimport { EventManager } from './event-manager';\nimport { OffscreenObserver } from './offscreen-observer';\nimport { CanvasResizeObserver } from './resize-observer';\nimport type {\n  ColorSlotValue,\n  Config,\n  Data,\n  Fit,\n  GradientSlotValue,\n  Layout,\n  Manifest,\n  Marker,\n  Mode,\n  RenderConfig,\n  RenderSurface,\n  ScalarSlotValue,\n  SlotType,\n  StateMachineConfig,\n  TextSlotValue,\n  Theme,\n  Transform,\n  VectorSlotValue,\n} from './types';\nimport {\n  getDefaultDPR,\n  getPointerPosition,\n  handleOpenUrl,\n  hexStringToRGBAFloats,\n  isDotLottie,\n  isElementInViewport,\n  isLottie,\n} from './utils';\nimport { createWasmLoader } from './wasm-loader';\n\nconst dotLottieWasmLoader = createWasmLoader(\n  init,\n  `https://cdn.jsdelivr.net/npm/${PACKAGE_NAME}@${PACKAGE_VERSION}/dist/dotlottie-player.wasm`,\n  `https://unpkg.com/${PACKAGE_NAME}@${PACKAGE_VERSION}/dist/dotlottie-player.wasm`,\n);\n\n// ── Mode conversion helpers ──────────────────────────────────────────────────\n\nconst modeToCore = (mode: Mode): CoreMode => {\n  switch (mode) {\n    case 'reverse':\n      return CoreMode.Reverse;\n\n    case 'bounce':\n      return CoreMode.Bounce;\n\n    case 'reverse-bounce':\n      return CoreMode.ReverseBounce;\n\n    default:\n      return CoreMode.Forward;\n  }\n};\n\nconst coreToMode = (mode: CoreMode): Mode => {\n  switch (mode) {\n    case CoreMode.Reverse:\n      return 'reverse';\n\n    case CoreMode.Bounce:\n      return 'bounce';\n\n    case CoreMode.ReverseBounce:\n      return 'reverse-bounce';\n\n    default:\n      return 'forward';\n  }\n};\n\n// ── Fit string helpers ───────────────────────────────────────────────────────\n\nconst fitToString = (fit: string): Fit => {\n  switch (fit) {\n    case 'contain':\n      return 'contain';\n\n    case 'cover':\n      return 'cover';\n\n    case 'fill':\n      return 'fill';\n\n    case 'fit-height':\n      return 'fit-height';\n\n    case 'fit-width':\n      return 'fit-width';\n\n    case 'none':\n      return 'none';\n\n    default:\n      return 'contain';\n  }\n};\n\nexport class DotLottie {\n  protected _canvas: HTMLCanvasElement | OffscreenCanvas | RenderSurface | null = null;\n\n  private _pendingLoad: { data?: Data; src?: string } | null = null;\n\n  protected _context: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D | null = null;\n\n  private readonly _eventManager: EventManager;\n\n  private _animationFrameId: number | null = null;\n\n  private readonly _frameManager: AnimationFrameManager;\n\n  private readonly _boundAnimationLoop: (time: number) => void;\n\n  protected _dotLottieCore: DotLottiePlayerWasm | null = null;\n\n  private _stateMachineId: string = '';\n\n  private _stateMachineConfig: StateMachineConfig | null = null;\n\n  private _isStateMachineRunning: boolean = false;\n\n  protected _renderConfig: RenderConfig = {};\n\n  private _isFrozen: boolean = false;\n\n  private _backgroundColor: string | null = null;\n\n  private _lastFrameTime: number | null = null;\n\n  // Bound event listeners for state machine\n  private _boundOnClick: ((event: MouseEvent) => void) | null = null;\n\n  private _boundOnPointerUp: ((event: PointerEvent) => void) | null = null;\n\n  private _boundOnPointerDown: ((event: PointerEvent) => void) | null = null;\n\n  private _boundOnPointerMove: ((event: PointerEvent) => void) | null = null;\n\n  private _boundOnPointerEnter: ((event: PointerEvent) => void) | null = null;\n\n  private _boundOnPointerLeave: ((event: PointerEvent) => void) | null = null;\n\n  private _bufferMismatchCount = 0;\n\n  private _lastExpectedBufferSize = 0;\n\n  private _cachedImageData: ImageData | null = null;\n\n  private _cachedImageDataBuffer: ArrayBufferLike | null = null;\n\n  private _cachedImageDataByteOffset = 0;\n\n  private _marker: string = '';\n\n  private _segment: [number, number] | null = null;\n\n  /**\n   * Creates a new DotLottie player instance for rendering Lottie animations.\n   * Initializes the WASM module, event system, and loads animation if src or data is provided in config.\n   * @param config - Configuration object specifying animation source, playback settings, and rendering options\n   */\n  public constructor(config: Config) {\n    this._canvas = config.canvas ?? null;\n\n    this._eventManager = new EventManager();\n    this._frameManager = new AnimationFrameManager();\n    this._boundAnimationLoop = this._animationLoop.bind(this);\n    this._renderConfig = {\n      ...config.renderConfig,\n      devicePixelRatio: config.renderConfig?.devicePixelRatio || getDefaultDPR(),\n      // freezeOnOffscreen is true by default to prevent unnecessary rendering when the canvas is offscreen\n      freezeOnOffscreen: config.renderConfig?.freezeOnOffscreen ?? true,\n    };\n\n    this._initWasm()\n      .then(() => {\n        this._dotLottieCore = this._createCore();\n\n        // Apply config via individual setters\n        this._dotLottieCore.set_autoplay(config.autoplay ?? false);\n        this._dotLottieCore.set_loop(config.loop ?? false);\n        this._dotLottieCore.set_loop_count(config.loopCount ?? 0);\n        this._dotLottieCore.set_mode(modeToCore(config.mode ?? 'forward'));\n        this._dotLottieCore.set_speed(config.speed ?? 1);\n        this._dotLottieCore.set_use_frame_interpolation(config.useFrameInterpolation ?? true);\n        if (config.segment && config.segment.length === 2) {\n          this._segment = [config.segment[0] as number, config.segment[1] as number];\n          this._dotLottieCore.set_segment(this._segment[0], this._segment[1]);\n        }\n        this._marker = config.marker ?? '';\n        if (this._marker) {\n          this._dotLottieCore.set_marker(this._marker);\n        }\n        this._dotLottieCore.set_layout(\n          config.layout?.fit ?? 'contain',\n          config.layout?.align?.[0] ?? 0.5,\n          config.layout?.align?.[1] ?? 0.5,\n        );\n\n        this._stateMachineId = config.stateMachineId ?? '';\n        this._stateMachineConfig = config.stateMachineConfig ?? null;\n\n        this._onCoreCreated();\n\n        this._eventManager.dispatch({ type: 'ready' });\n\n        if (config.data) {\n          if (this._canvas) {\n            this._loadFromData(config.data);\n          } else {\n            this._pendingLoad = { data: config.data };\n          }\n        } else if (config.src) {\n          if (this._canvas) {\n            this._loadFromSrc(config.src);\n          } else {\n            this._pendingLoad = { src: config.src };\n          }\n        }\n\n        if (config.backgroundColor) {\n          this.setBackgroundColor(config.backgroundColor);\n        }\n      })\n      .catch((error) => {\n        console.error('[dotlottie-web] Initialization failed:', error);\n        this._eventManager.dispatch({\n          type: 'loadError',\n          error: new Error(`Failed to load wasm module: ${error}`),\n        });\n      });\n  }\n\n  // ── Override hooks for subclasses ─────────────────────────────────────\n\n  protected async _initWasm(): Promise<void> {\n    return dotLottieWasmLoader.load();\n  }\n\n  protected _createCore(): DotLottiePlayerWasm {\n    return new DotLottiePlayerWasm();\n  }\n\n  protected _onCoreCreated(): void {\n    // No-op for software renderer. GPU renderers override to set GL/GPU context.\n  }\n\n  protected _setupTarget(width: number, height: number): boolean {\n    if (!this._dotLottieCore) return false;\n\n    return this._dotLottieCore.setup_sw_target(width, height);\n  }\n\n  // ── Event draining ─────────────────────────────────────────────────────\n\n  private _drainPlayerEvents({ skipFrame = false }: { skipFrame?: boolean } = {}): void {\n    if (!this._dotLottieCore) return;\n\n    let evt: unknown;\n\n    while ((evt = this._dotLottieCore.poll_event()) !== null && evt !== undefined) {\n      const event = evt as { type: string; frameNo?: number; loopCount?: number };\n\n      switch (event.type) {\n        case 'Load':\n          setTimeout(() => this._eventManager.dispatch({ type: 'load' }), 0);\n          break;\n\n        case 'LoadError':\n          setTimeout(() => this._eventManager.dispatch({ type: 'loadError', error: new Error('failed to load') }), 0);\n          break;\n\n        case 'Play':\n          queueMicrotask(() => this._eventManager.dispatch({ type: 'play' }));\n          break;\n\n        case 'Pause':\n          queueMicrotask(() => this._eventManager.dispatch({ type: 'pause' }));\n          break;\n\n        case 'Stop':\n          queueMicrotask(() => this._eventManager.dispatch({ type: 'stop' }));\n          break;\n\n        case 'Frame':\n          if (!skipFrame) {\n            queueMicrotask(() => this._eventManager.dispatch({ type: 'frame', currentFrame: event.frameNo ?? 0 }));\n          }\n          break;\n\n        case 'Render':\n          if (!skipFrame) {\n            queueMicrotask(() => this._eventManager.dispatch({ type: 'render', currentFrame: event.frameNo ?? 0 }));\n          }\n          break;\n\n        case 'Loop':\n          queueMicrotask(() => this._eventManager.dispatch({ type: 'loop', loopCount: event.loopCount ?? 0 }));\n          break;\n\n        case 'Complete':\n          queueMicrotask(() => this._eventManager.dispatch({ type: 'complete' }));\n          break;\n\n        default:\n          break;\n      }\n    }\n  }\n\n  private _drainSmEvents(): void {\n    if (!this._dotLottieCore) return;\n\n    // Drain state machine events\n    let evt: unknown;\n\n    while ((evt = this._dotLottieCore.sm_poll_event()) !== null && evt !== undefined) {\n      const event = evt as {\n        type: string;\n        previousState?: string;\n        newState?: string;\n        state?: string;\n        message?: string;\n        name?: string;\n        oldValue?: unknown;\n        newValue?: unknown;\n      };\n\n      switch (event.type) {\n        case 'Start':\n          queueMicrotask(() => {\n            this._isStateMachineRunning = true;\n            this._eventManager.dispatch({ type: 'stateMachineStart' });\n            this._startAnimationLoop();\n          });\n          break;\n\n        case 'Stop':\n          queueMicrotask(() => {\n            this._isStateMachineRunning = false;\n            this._eventManager.dispatch({ type: 'stateMachineStop' });\n            if (!this._dotLottieCore?.is_playing()) {\n              this._stopAnimationLoop();\n            }\n          });\n          break;\n\n        case 'CustomEvent':\n          this._eventManager.dispatch({ type: 'stateMachineCustomEvent', eventName: event.message ?? '' });\n          break;\n\n        case 'BooleanInputChange':\n          this._eventManager.dispatch({\n            type: 'stateMachineBooleanInputValueChange',\n            inputName: event.name ?? '',\n            newValue: event.newValue as boolean,\n            oldValue: event.oldValue as boolean,\n          });\n          break;\n\n        case 'NumericInputChange':\n          this._eventManager.dispatch({\n            type: 'stateMachineNumericInputValueChange',\n            inputName: event.name ?? '',\n            newValue: event.newValue as number,\n            oldValue: event.oldValue as number,\n          });\n          break;\n\n        case 'StringInputChange':\n          this._eventManager.dispatch({\n            type: 'stateMachineStringInputValueChange',\n            inputName: event.name ?? '',\n            newValue: event.newValue as string,\n            oldValue: event.oldValue as string,\n          });\n          break;\n\n        case 'InputFired':\n          this._eventManager.dispatch({ type: 'stateMachineInputFired', inputName: event.name ?? '' });\n          break;\n\n        case 'Transition':\n          this._eventManager.dispatch({\n            type: 'stateMachineTransition',\n            fromState: event.previousState ?? '',\n            toState: event.newState ?? '',\n          });\n          break;\n\n        case 'StateEntered':\n          this._eventManager.dispatch({ type: 'stateMachineStateEntered', state: event.state ?? '' });\n          break;\n\n        case 'StateExit':\n          this._eventManager.dispatch({ type: 'stateMachineStateExit', state: event.state ?? '' });\n          break;\n\n        case 'Error':\n          this._eventManager.dispatch({ type: 'stateMachineError', error: event.message ?? '' });\n          break;\n\n        default:\n          break;\n      }\n    }\n\n    // Drain internal events\n    let internal: unknown;\n\n    while ((internal = this._dotLottieCore.sm_poll_internal_event()) !== null && internal !== undefined) {\n      const internalEvt = internal as { type: string; message?: string };\n\n      if (internalEvt.type === 'Message') {\n        const message = internalEvt.message ?? '';\n\n        if (IS_BROWSER && message.startsWith('OpenUrl: ')) {\n          handleOpenUrl(message);\n        } else {\n          this._eventManager.dispatch({ type: 'stateMachineInternalMessage', message });\n        }\n      }\n    }\n  }\n\n  // ── Private methods ────────────────────────────────────────────────────\n\n  private _dispatchError(message: string): void {\n    console.error(message);\n    this._eventManager.dispatch({ type: 'loadError', error: new Error(message) });\n  }\n\n  private async _fetchData(src: string): Promise<string | ArrayBuffer> {\n    const response = await fetch(src);\n\n    if (!response.ok) {\n      throw new Error(`Failed to fetch animation data from URL: ${src}. ${response.status}: ${response.statusText}`);\n    }\n\n    const data = await response.arrayBuffer();\n\n    if (isDotLottie(data)) {\n      return data;\n    }\n\n    // eslint-disable-next-line node/no-unsupported-features/node-builtins\n    return new TextDecoder().decode(data);\n  }\n\n  private _loadFromData(data: Data): void {\n    if (this._dotLottieCore === null) return;\n\n    if (!this._canvas) {\n      console.warn('[dotlottie-web] Cannot load animation without canvas. Call setCanvas() first.');\n\n      return;\n    }\n\n    const width = this._canvas.width;\n    const height = this._canvas.height;\n\n    this._setupTarget(width, height);\n\n    let loaded = false;\n\n    if (typeof data === 'string') {\n      if (!isLottie(data)) {\n        this._dispatchError(\n          'Invalid Lottie JSON string: The provided string does not conform to the Lottie JSON format.',\n        );\n\n        return;\n      }\n      loaded = this._dotLottieCore.load_animation(data);\n    } else if (data instanceof ArrayBuffer) {\n      if (!isDotLottie(data)) {\n        this._dispatchError(\n          'Invalid dotLottie ArrayBuffer: The provided ArrayBuffer does not conform to the dotLottie format.',\n        );\n\n        return;\n      }\n      loaded = this._dotLottieCore.load_dotlottie_data(new Uint8Array(data));\n    } else if (typeof data === 'object') {\n      if (!isLottie(data as Record<string, unknown>)) {\n        this._dispatchError(\n          'Invalid Lottie JSON object: The provided object does not conform to the Lottie JSON format.',\n        );\n\n        return;\n      }\n      loaded = this._dotLottieCore.load_animation(JSON.stringify(data));\n    } else {\n      this._dispatchError(\n        `Unsupported data type for animation data. Expected:\n          - string (Lottie JSON),\n          - ArrayBuffer (dotLottie),\n          - object (Lottie JSON).\n          Received: ${typeof data}`,\n      );\n\n      return;\n    }\n\n    if (loaded) {\n      if (this._renderConfig.quality !== undefined) {\n        this._dotLottieCore.set_quality(this._renderConfig.quality);\n      }\n\n      if (IS_BROWSER) {\n        this.resize();\n      }\n\n      // Drain any events produced by loading (Load/LoadError).\n      // Skip stale Frame/Render events when marker or segment needs re-application since the\n      // frame position from load_animation won't reflect those constraints.\n      this._drainPlayerEvents({ skipFrame: !!this._marker || !!this._segment });\n\n      // Re-apply marker and segment after load since they are reset by load_animation\n      if (this._marker) {\n        this._dotLottieCore.set_marker(this._marker);\n      }\n      if (this._segment) {\n        this._dotLottieCore.set_segment(this._segment[0], this._segment[1]);\n        // Seek to the segment's logical start frame based on mode so that the first\n        // emitted frame event reflects the segment, not the loaded animation's frame 0.\n        const mode = coreToMode(this._dotLottieCore.mode());\n        const startFrame = mode === 'reverse' || mode === 'reverse-bounce' ? this._segment[1] : this._segment[0];\n\n        this._dotLottieCore.set_frame(startFrame);\n      }\n\n      setTimeout(() => {\n        // FIXME: frame is not triggered from the dotlottie-rs core\n        this._eventManager.dispatch({\n          type: 'frame',\n          currentFrame: this.currentFrame,\n        });\n      }, 0);\n\n      this._dotLottieCore.render();\n      this._drainPlayerEvents();\n\n      this._draw();\n\n      if (this._stateMachineId) {\n        const smLoaded = this.stateMachineLoad(this._stateMachineId);\n\n        if (smLoaded) {\n          const smStarted = this.stateMachineStart();\n\n          if (smStarted) {\n            this._startAnimationLoop();\n          }\n        }\n      } else if (this._dotLottieCore.is_playing()) {\n        this._startAnimationLoop();\n      }\n\n      if (IS_BROWSER && this._canvas instanceof HTMLCanvasElement) {\n        if (this._renderConfig.freezeOnOffscreen) {\n          OffscreenObserver.observe(this._canvas, this);\n\n          // Check if canvas is initially offscreen and freeze if necessary\n          if (!isElementInViewport(this._canvas)) {\n            this.freeze();\n          }\n        }\n\n        if (this._renderConfig.autoResize) {\n          CanvasResizeObserver.observe(this._canvas, this);\n        }\n      }\n    } else {\n      // Drain any LoadError events the core may have queued\n      this._drainPlayerEvents();\n    }\n  }\n\n  private _loadFromSrc(src: string): void {\n    this._fetchData(src)\n      .then((data) => this._loadFromData(data))\n      .catch((error) => this._dispatchError(`Failed to load animation data from URL: ${src}. ${error}`));\n  }\n\n  /**\n   * Gets the raw pixel buffer containing the rendered animation frame.\n   * Returns RGBA pixel data as a Uint8Array for advanced image processing or custom rendering.\n   */\n  public get buffer(): Uint8Array | null {\n    if (!this._dotLottieCore) return null;\n\n    return this._dotLottieCore.get_pixel_buffer();\n  }\n\n  /**\n   * Gets the ID of the currently active animation from a multi-animation dotLottie file.\n   * Returns undefined if no specific animation is active or for single-animation files.\n   */\n  public get activeAnimationId(): string | undefined {\n    return this._dotLottieCore?.animation_id() ?? undefined;\n  }\n\n  /**\n   * Gets the ID of the currently active theme applied to the animation.\n   * Returns undefined if no theme is active. Themes modify colors and visual properties.\n   */\n  public get activeThemeId(): string | undefined {\n    return this._dotLottieCore?.theme_id() ?? undefined;\n  }\n\n  /**\n   * Gets the current layout configuration for positioning and scaling the animation.\n   * Includes fit mode (contain, cover, fill, etc.) and alignment [x, y] values (0-1 range).\n   */\n  public get layout(): Layout | undefined {\n    if (!this._dotLottieCore) return undefined;\n\n    return {\n      align: [this._dotLottieCore.layout_align_x(), this._dotLottieCore.layout_align_y()],\n      fit: fitToString(this._dotLottieCore.layout_fit()),\n    };\n  }\n\n  /**\n   * Gets the currently active marker name if a marker-based segment is set.\n   * Returns undefined if no marker is active. Use setMarker() to activate a named segment.\n   */\n  public get marker(): string | undefined {\n    return this._dotLottieCore?.current_marker() ?? '';\n  }\n\n  /**\n   * Gets the animation manifest containing metadata about animations, themes, and states.\n   * Returns null if no manifest is available or if the loaded animation doesn't include one.\n   */\n  public get manifest(): Manifest | null {\n    try {\n      const manifest = this._dotLottieCore?.manifest_string();\n\n      if (this._dotLottieCore === null || !manifest) return null;\n\n      const manifestJson = JSON.parse(manifest);\n\n      if (Object.keys(manifestJson).length === 0) return null;\n\n      return manifestJson as Manifest;\n    } catch (_err) {\n      return null;\n    }\n  }\n\n  /**\n   * Gets the current rendering configuration.\n   * Includes settings like devicePixelRatio, autoResize, and freezeOnOffscreen.\n   */\n  public get renderConfig(): RenderConfig {\n    return this._renderConfig;\n  }\n\n  /**\n   * Gets the currently active playback segment as [startFrame, endFrame].\n   * Returns the effective segment from the WASM core. When no custom segment is set,\n   * returns [0, totalFrames - 1] (full animation range). Returns undefined only when the core is not loaded.\n   */\n  public get segment(): [number, number] | undefined {\n    if (!this._dotLottieCore) return undefined;\n\n    return [this._dotLottieCore.segment_start(), this._dotLottieCore.segment_end()];\n  }\n\n  /**\n   * Gets the current loop configuration.\n   * Returns true if the animation is set to loop continuously.\n   */\n  public get loop(): boolean {\n    return this._dotLottieCore?.loop_animation() ?? false;\n  }\n\n  /**\n   * Gets the current playback mode.\n   * Determines playback direction: 'forward', 'reverse', 'bounce' (forward then reverse), or 'reverse-bounce'.\n   */\n  public get mode(): Mode {\n    if (!this._dotLottieCore) return 'forward';\n\n    return coreToMode(this._dotLottieCore.mode());\n  }\n\n  /**\n   * Indicates whether rendering is currently frozen.\n   * True when freeze() has been called and the rendering loop is paused to save resources.\n   */\n  public get isFrozen(): boolean {\n    return this._isFrozen;\n  }\n\n  /**\n   * Indicates whether a state machine is currently active and running.\n   * True after stateMachineStart() is called and until stateMachineStop() is called.\n   */\n  public get isStateMachineRunning(): boolean {\n    return this._isStateMachineRunning;\n  }\n\n  /**\n   * Gets the current background color.\n   * Returns the background color as a string (e.g., '#FFFFFF' or 'transparent').\n   */\n  public get backgroundColor(): string {\n    return this._backgroundColor ?? '';\n  }\n\n  /**\n   * Gets the autoplay configuration.\n   * Returns true if the animation is configured to start playing automatically when loaded.\n   */\n  public get autoplay(): boolean {\n    return this._dotLottieCore?.autoplay() ?? false;\n  }\n\n  /**\n   * Gets the frame interpolation setting.\n   * Returns true if frame interpolation is enabled for smoother animation playback.\n   */\n  public get useFrameInterpolation(): boolean {\n    return this._dotLottieCore?.use_frame_interpolation() ?? false;\n  }\n\n  /**\n   * Gets the current playback speed.\n   * Returns the speed multiplier (1 = normal speed, 2 = double speed, 0.5 = half speed).\n   */\n  public get speed(): number {\n    return this._dotLottieCore?.speed() ?? 0;\n  }\n\n  /**\n   * Indicates whether the WASM module and core player have been initialized.\n   * Check this before performing operations that require the player to be ready.\n   */\n  public get isReady(): boolean {\n    return this._dotLottieCore !== null;\n  }\n\n  /**\n   * Indicates whether an animation has been successfully loaded and is ready for playback.\n   * Check this before calling play() or other playback methods to ensure the animation is ready.\n   */\n  public get isLoaded(): boolean {\n    return this._dotLottieCore?.is_loaded() ?? false;\n  }\n\n  /**\n   * Indicates whether the animation is currently playing.\n   * True when animation is actively playing, false when paused, stopped, or not started.\n   */\n  public get isPlaying(): boolean {\n    return this._dotLottieCore?.is_playing() ?? false;\n  }\n\n  /**\n   * Indicates whether the animation is currently paused.\n   * True when pause() has been called and animation is not playing or stopped.\n   */\n  public get isPaused(): boolean {\n    return this._dotLottieCore?.is_paused() ?? false;\n  }\n\n  /**\n   * Indicates whether the animation is currently stopped.\n   * True when stop() has been called or animation hasn't started yet.\n   */\n  public get isStopped(): boolean {\n    return this._dotLottieCore?.is_stopped() ?? false;\n  }\n\n  /**\n   * Gets the current frame number of the animation.\n   * Useful for tracking playback position or implementing custom frame displays. Rounded to 2 decimal places.\n   */\n  public get currentFrame(): number {\n    if (!this._dotLottieCore) return 0;\n\n    return Math.round(this._dotLottieCore.current_frame() * 100) / 100;\n  }\n\n  /**\n   * Gets the number of times the animation has completed a loop during the current playback.\n   * Increments each time the animation completes one full cycle.\n   */\n  public get loopCount(): number {\n    return this._dotLottieCore?.current_loop_count() ?? 0;\n  }\n\n  /**\n   * Gets the total number of frames in the animation.\n   * Use with currentFrame to calculate playback progress as a percentage.\n   */\n  public get totalFrames(): number {\n    return this._dotLottieCore?.total_frames() ?? 0;\n  }\n\n  /**\n   * Gets the total duration of the animation in seconds.\n   * Represents the time to play from the first frame to the last at normal speed (speed = 1).\n   */\n  public get duration(): number {\n    return (this._dotLottieCore?.duration() ?? 0) / 1000;\n  }\n\n  /**\n   * Gets the canvas element used for rendering the animation.\n   * Returns the HTMLCanvasElement, OffscreenCanvas, or RenderSurface set during initialization.\n   */\n  public get canvas(): HTMLCanvasElement | OffscreenCanvas | RenderSurface | null {\n    return this._canvas;\n  }\n\n  /**\n   * Dynamically loads a new animation, replacing the current one if any.\n   * Stops current playback, cleans up resources, and loads from the provided src or data.\n   * @param config - Configuration for the new animation (all Config properties except canvas)\n   */\n  public load(config: Omit<Config, 'canvas'>): void {\n    if (this._dotLottieCore === null) return;\n\n    this._stopAnimationLoop();\n\n    this._cleanupCanvas();\n\n    this._isFrozen = false;\n\n    // Apply config via individual setters\n    this._dotLottieCore.set_autoplay(config.autoplay ?? false);\n    this._dotLottieCore.set_loop(config.loop ?? false);\n    this._dotLottieCore.set_loop_count(config.loopCount ?? 0);\n    this._dotLottieCore.set_mode(modeToCore(config.mode ?? 'forward'));\n    this._dotLottieCore.set_speed(config.speed ?? 1);\n    this._dotLottieCore.set_use_frame_interpolation(config.useFrameInterpolation ?? true);\n    if (config.segment && config.segment.length === 2) {\n      this._segment = [config.segment[0] as number, config.segment[1] as number];\n      this._dotLottieCore.set_segment(this._segment[0], this._segment[1]);\n    } else {\n      this._segment = null;\n      this._dotLottieCore.clear_segment();\n    }\n    this._marker = config.marker ?? '';\n    if (this._marker) {\n      this._dotLottieCore.set_marker(this._marker);\n    } else {\n      this._dotLottieCore.clear_marker();\n    }\n    this._dotLottieCore.set_layout(\n      config.layout?.fit ?? 'contain',\n      config.layout?.align?.[0] ?? 0.5,\n      config.layout?.align?.[1] ?? 0.5,\n    );\n\n    if (config.data) {\n      if (this._canvas) {\n        this._loadFromData(config.data);\n      } else {\n        this._pendingLoad = { data: config.data };\n      }\n    } else if (config.src) {\n      if (this._canvas) {\n        this._loadFromSrc(config.src);\n      } else {\n        this._pendingLoad = { src: config.src };\n      }\n    }\n\n    if (config.backgroundColor) {\n      this.setBackgroundColor(config.backgroundColor);\n    }\n  }\n\n  protected _draw(): void {\n    if (this._dotLottieCore === null || this._canvas === null) return;\n\n    // Acquire the 2D context once, when the canvas exposes getContext. In non-browser\n    // environments (e.g. Node with @napi-rs/canvas) HTMLCanvasElement/OffscreenCanvas don't\n    // exist, so !IS_BROWSER falls back to duck-typing on getContext.\n    if (\n      !this._context &&\n      'getContext' in this._canvas &&\n      typeof this._canvas.getContext === 'function' &&\n      (!IS_BROWSER ||\n        (typeof HTMLCanvasElement !== 'undefined' && this._canvas instanceof HTMLCanvasElement) ||\n        (typeof OffscreenCanvas !== 'undefined' && this._canvas instanceof OffscreenCanvas))\n    ) {\n      this._context = this._canvas.getContext('2d') as\n        | CanvasRenderingContext2D\n        | OffscreenCanvasRenderingContext2D\n        | null;\n    }\n\n    if (!this._context) return;\n\n    const buffer = this._dotLottieCore.get_pixel_buffer();\n\n    const width = this._canvas.width;\n    const height = this._canvas.height;\n    const expectedLength = width * height * BYTES_PER_PIXEL;\n\n    /*\n      frame buffer size mismatch can occur temporarily during resize operations when the WASM buffer allocation hasn't completed yet\n    */\n    if (buffer.byteLength !== expectedLength) {\n      if (this._lastExpectedBufferSize === expectedLength) {\n        this._bufferMismatchCount += 1;\n      } else {\n        this._bufferMismatchCount = 1;\n        this._lastExpectedBufferSize = expectedLength;\n      }\n\n      if (this._bufferMismatchCount === 10) {\n        console.warn(\n          `[dotlottie-web] Persistent buffer size mismatch detected. ` +\n            `Expected ${expectedLength} bytes for canvas ${width}x${height}, ` +\n            `but got ${buffer.byteLength} bytes. ` +\n            `This may indicate a WASM memory allocation issue or invalid canvas dimensions.`,\n        );\n      }\n\n      return;\n    }\n\n    this._bufferMismatchCount = 0;\n    this._lastExpectedBufferSize = expectedLength;\n\n    /*\n      Reuse the cached ImageData when canvas dimensions and the underlying WASM\n      ArrayBuffer haven't changed. WASM linear-memory growth detaches the old\n      ArrayBuffer, which makes the cached view's byteLength drop to 0; we detect\n      that here and rebuild.\n    */\n    const cached = this._cachedImageData;\n    const cacheValid =\n      cached !== null &&\n      cached.width === width &&\n      cached.height === height &&\n      cached.data.byteLength === expectedLength &&\n      this._cachedImageDataBuffer === buffer.buffer &&\n      this._cachedImageDataByteOffset === buffer.byteOffset;\n\n    if (!cacheValid) {\n      /*\n        In Node.js, the ImageData constructor is not available globally.\n        createImageData allocates its own backing buffer that's separate from\n        WASM memory, so the Node path has to copy pixels every frame below.\n      */\n      if (typeof ImageData === 'undefined') {\n        this._cachedImageData = this._context.createImageData(width, height);\n      } else {\n        const clampedBuffer = new Uint8ClampedArray(buffer.buffer as ArrayBuffer, buffer.byteOffset, buffer.byteLength);\n\n        this._cachedImageData = new ImageData(clampedBuffer, width, height);\n      }\n      this._cachedImageDataBuffer = buffer.buffer;\n      this._cachedImageDataByteOffset = buffer.byteOffset;\n    }\n\n    if (typeof ImageData === 'undefined') {\n      const clampedBuffer = new Uint8ClampedArray(buffer.buffer as ArrayBuffer, buffer.byteOffset, buffer.byteLength);\n\n      (this._cachedImageData as ImageData).data.set(clampedBuffer);\n    }\n\n    this._context.putImageData(this._cachedImageData as ImageData, 0, 0);\n  }\n\n  private _cleanupCanvas(): void {\n    if (this._canvas && IS_BROWSER && this._canvas instanceof HTMLCanvasElement) {\n      OffscreenObserver.unobserve(this._canvas);\n      CanvasResizeObserver.unobserve(this._canvas);\n      this._cleanupStateMachineListeners();\n    }\n  }\n\n  private _initializeCanvas(): void {\n    this._setupRendererOnCanvas();\n\n    if (this._canvas && IS_BROWSER && this._canvas instanceof HTMLCanvasElement && this.isLoaded) {\n      if (this._renderConfig.freezeOnOffscreen) {\n        OffscreenObserver.observe(this._canvas, this);\n\n        if (!isElementInViewport(this._canvas)) {\n          this.freeze();\n        }\n      }\n\n      if (this._renderConfig.autoResize) {\n        CanvasResizeObserver.observe(this._canvas, this);\n      }\n\n      if (this._isStateMachineRunning) {\n        this._setupStateMachineListeners();\n      }\n    }\n\n    if (this._canvas && this._dotLottieCore && this.isLoaded) {\n      const resized = this._setupTarget(this._canvas.width, this._canvas.height);\n\n      if (resized) {\n        this._dotLottieCore.render();\n        this._draw();\n      }\n    }\n  }\n\n  protected _setupRendererOnCanvas(): void {\n    this._context = null;\n  }\n\n  private _stopAnimationLoop(): void {\n    if (this._animationFrameId !== null) {\n      this._frameManager.cancelAnimationFrame(this._animationFrameId);\n      this._animationFrameId = null;\n    }\n    this._lastFrameTime = null;\n  }\n\n  private _startAnimationLoop(): void {\n    // Start if we don't already have an active loop and either:\n    // 1. The animation should be playing, OR\n    // 2. The state machine is running\n    if (\n      this._animationFrameId === null &&\n      this._dotLottieCore &&\n      !this._isFrozen &&\n      (this._dotLottieCore.is_playing() || this._isStateMachineRunning)\n    ) {\n      this._animationFrameId = this._frameManager.requestAnimationFrame(this._boundAnimationLoop);\n    }\n  }\n\n  private _animationLoop(time: number): void {\n    if (this._dotLottieCore === null) {\n      this._stopAnimationLoop();\n\n      return;\n    }\n\n    // Continue the loop if either the animation is playing OR the state machine is running\n    if (!this._dotLottieCore.is_playing() && !this._isStateMachineRunning) {\n      this._stopAnimationLoop();\n\n      return;\n    }\n\n    try {\n      const dt = this._lastFrameTime !== null ? time - this._lastFrameTime : 0;\n\n      this._lastFrameTime = time;\n\n      const advanced = this._isStateMachineRunning ? this._dotLottieCore.sm_tick(dt) : this._dotLottieCore.tick(dt);\n\n      if (this._isStateMachineRunning) {\n        this._drainSmEvents();\n      } else {\n        this._drainPlayerEvents();\n      }\n\n      if (advanced) {\n        this._draw();\n      }\n\n      this._animationFrameId = this._frameManager.requestAnimationFrame(this._boundAnimationLoop);\n    } catch (error) {\n      console.error('Error in animation frame:', error);\n\n      this._eventManager.dispatch({ type: 'renderError', error: error as unknown as Error });\n\n      // destroy the instance if it's a runtime error\n      if (error instanceof WebAssembly.RuntimeError) {\n        this.destroy();\n      }\n    }\n  }\n\n  /**\n   * Starts or resumes animation playback from the current frame.\n   * Unfreezes rendering if frozen and starts the animation loop. Updates isPlaying state to true.\n   */\n  public play(): void {\n    if (this._dotLottieCore === null || !this.isLoaded) return;\n\n    this._stopAnimationLoop();\n\n    const playing = this._dotLottieCore.play();\n\n    this._drainPlayerEvents();\n\n    // Always unfreeze and start animation loop if core is playing, regardless of play() return value\n    if (playing || this._dotLottieCore.is_playing()) {\n      this._isFrozen = false;\n      this._startAnimationLoop();\n    }\n\n    /*\n      Check if the canvas is offscreen and freezing is enabled\n      If freezeOnOffscreen is true and the canvas is currently outside the viewport,\n      we immediately freeze the animation to avoid unnecessary rendering and performance overhead.\n    */\n    if (\n      this._canvas &&\n      IS_BROWSER &&\n      this._canvas instanceof HTMLCanvasElement &&\n      this._renderConfig.freezeOnOffscreen &&\n      !isElementInViewport(this._canvas)\n    ) {\n      this.freeze();\n    }\n  }\n\n  /**\n   * Pauses animation playback at the current frame.\n   * Stops the animation loop while preserving the current frame position. Updates isPaused state to true.\n   */\n  public pause(): void {\n    if (this._dotLottieCore === null) return;\n\n    this._dotLottieCore.pause();\n\n    this._drainPlayerEvents();\n\n    this._stopAnimationLoop();\n  }\n\n  /**\n   * Stops animation playback and resets to the start frame.\n   * Halts the animation loop and returns to the beginning. Updates isStopped state to true.\n   */\n  public stop(): void {\n    if (this._dotLottieCore === null) return;\n\n    const ok = this._dotLottieCore.stop();\n\n    this._drainPlayerEvents();\n\n    this._stopAnimationLoop();\n\n    if (ok) {\n      // FIXME: frame is not triggered from the dotlottie-rs core on stop()\n      this._eventManager.dispatch({ type: 'frame', currentFrame: this.currentFrame });\n      // FIXME: stop() doesn't trigger render() internally\n      this._dotLottieCore.render();\n      this._draw();\n    }\n  }\n\n  /**\n   * Seeks to a specific frame in the animation and renders it.\n   * Useful for implementing custom scrubbing controls or precise frame positioning.\n   * @param frame - The target frame number to seek to\n   */\n  public setFrame(frame: number): void {\n    if (this._dotLottieCore === null) return;\n\n    const frameUpdated = this._dotLottieCore.set_frame(frame);\n\n    if (frameUpdated) {\n      const rendered = this._dotLottieCore.render();\n\n      this._drainPlayerEvents();\n\n      if (rendered) {\n        this._draw();\n      }\n    }\n  }\n\n  /**\n   * Changes the animation playback speed.\n   * Values above 1 speed up playback, below 1 slow it down.\n   * @param speed - Playback speed multiplier (e.g., 2 for 2x speed, 0.5 for half speed)\n   */\n  public setSpeed(speed: number): void {\n    if (this._dotLottieCore === null) return;\n\n    this._dotLottieCore.set_speed(speed);\n  }\n\n  /**\n   * Changes the background color of the canvas or animation.\n   * For HTMLCanvasElement, sets the CSS background. For other surfaces, renders behind the animation.\n   * @param color - CSS color string (e.g., '#FFFFFF', 'rgba(0,0,0,0.5)', 'transparent')\n   */\n  public setBackgroundColor(color: string): void {\n    if (this._dotLottieCore === null) return;\n\n    if (IS_BROWSER && this._canvas instanceof HTMLCanvasElement) {\n      this._canvas.style.backgroundColor = color;\n    } else {\n      const [r, g, b, a] = hexStringToRGBAFloats(color);\n\n      this._dotLottieCore.set_background(r, g, b, a);\n    }\n\n    this._backgroundColor = color;\n  }\n\n  /**\n   * Enables or disables continuous looping of the animation.\n   * When enabled with loopCount set to 0, animation repeats indefinitely.\n   * @param loop - True to enable looping, false to play once\n   */\n  public setLoop(loop: boolean): void {\n    if (this._dotLottieCore === null) return;\n\n    this._dotLottieCore.set_loop(loop);\n  }\n\n  /**\n   * Sets the number of additional times to replay the animation after the first play.\n   * Requires loop to be true. A value of 0 means infinite replays; a positive value n means\n   * the animation plays a total of n + 1 times (initial play + n replays).\n   * @param loopCount - Number of additional replays (0 = infinite, 1 = plays twice, 2 = plays three times, etc.)\n   */\n  public setLoopCount(loopCount: number): void {\n    if (this._dotLottieCore === null) return;\n\n    this._dotLottieCore.set_loop_count(loopCount);\n  }\n\n  /**\n   * Enables or disables frame interpolation for smoother playback.\n   * When enabled, interpolates between frames. When disabled, shows exact frame-by-frame animation.\n   * @param useFrameInterpolation - True for smooth interpolation, false for exact frames\n   */\n  public setUseFrameInterpolation(useFrameInterpolation: boolean): void {\n    if (this._dotLottieCore === null) return;\n\n    this._dotLottieCore.set_use_frame_interpolation(useFrameInterpolation);\n  }\n\n  /**\n   * Subscribes to animation events like play, pause, frame, complete, etc.\n   * Use this to react to animation state changes and playback progress.\n   * @param type - Event type to listen for (e.g., 'play', 'frame', 'complete')\n   * @param listener - Callback function invoked when the event occurs\n   */\n  public addEventListener<T extends EventType>(type: T, listener: EventListener<T>): void {\n    this._eventManager.addEventListener(type, listener);\n  }\n\n  /**\n   * Unsubscribes from animation events.\n   * If no listener is provided, removes all listeners for the given event type.\n   * @param type - Event type to stop listening for\n   * @param listener - Specific callback to remove, or undefined to remove all\n   */\n  public removeEventListener<T extends EventType>(type: T, listener?: EventListener<T>): void {\n    this._eventManager.removeEventListener(type, listener);\n  }\n\n  /**\n   * Cleans up and destroys the player instance, releasing all resources.\n   * Stops playback, removes event listeners, and frees WASM memory. Call when the player is no longer needed.\n   */\n  public destroy(): void {\n    this._stopAnimationLoop();\n\n    // Reset state machine status\n    this._isStateMachineRunning = false;\n\n    this._cleanupCanvas();\n\n    const core = this._dotLottieCore;\n\n    this._dotLottieCore = null;\n    this._context = null;\n\n    if (core) {\n      try {\n        core.free();\n      } catch (err) {\n        console.warn('[dotlottie-web] Error freeing wasm core during destroy:', err);\n      }\n    }\n\n    this._eventManager.dispatch({\n      type: 'destroy',\n    });\n\n    this._eventManager.removeAllEventListeners();\n    this._cleanupStateMachineListeners();\n  }\n\n  /**\n   * Pauses the rendering loop without changing playback state.\n   * Useful for reducing CPU/GPU usage when the animation is offscreen or hidden. Dispatches 'freeze' event.\n   */\n  public freeze(): void {\n    if (this._animationFrameId === null) return;\n\n    this._stopAnimationLoop();\n\n    this._isFrozen = true;\n\n    this._eventManager.dispatch({ type: 'freeze' });\n  }\n\n  /**\n   * Resumes the rendering loop after being frozen.\n   * Restarts frame rendering while maintaining the current playback state. Dispatches 'unfreeze' event.\n   */\n  public unfreeze(): void {\n    if (this._animationFrameId !== null) return;\n\n    this._isFrozen = false;\n\n    this._eventManager.dispatch({ type: 'unfreeze' });\n\n    this._startAnimationLoop();\n  }\n\n  /**\n   * Recalculates and updates canvas dimensions based on current size.\n   * Call this when the canvas container size changes to maintain proper rendering. Usually handled by autoResize.\n   */\n  public resize(): void {\n    if (!this._dotLottieCore || !this.isLoaded || !this._canvas) return;\n\n    if (IS_BROWSER && this._canvas instanceof HTMLCanvasElement) {\n      const dpr = this._renderConfig.devicePixelRatio || window.devicePixelRatio || 1;\n\n      const { height: clientHeight, width: clientWidth } = this._canvas.getBoundingClientRect();\n\n      if (clientHeight !== 0 && clientWidth !== 0) {\n        this._canvas.width = clientWidth * dpr;\n        this._canvas.height = clientHeight * dpr;\n      }\n    }\n\n    const resized = this._setupTarget(this._canvas.width, this._canvas.height);\n\n    if (resized) {\n      this._dotLottieCore.render();\n      this._draw();\n    }\n  }\n\n  /**\n   * Changes the canvas element used for rendering.\n   * Useful for moving the animation to a different canvas without recreating the player instance.\n   * @param canvas - New HTMLCanvasElement, OffscreenCanvas, or RenderSurface to render to\n   */\n  public setCanvas(canvas: HTMLCanvasElement | OffscreenCanvas | RenderSurface): void {\n    // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n    if (!canvas || this._canvas === canvas) return;\n\n    if (this._canvas) {\n      this._cleanupCanvas();\n    }\n\n    this._canvas = canvas;\n\n    this._initializeCanvas();\n\n    if (this._pendingLoad) {\n      const pending = this._pendingLoad;\n\n      this._pendingLoad = null;\n\n      if (pending.data) {\n        this._loadFromData(pending.data);\n      } else if (pending.src) {\n        this._loadFromSrc(pending.src);\n      }\n    }\n  }\n\n  /**\n   * Applies a 3x3 transformation matrix to the entire animation on the canvas.\n   * Use this to translate, rotate, scale, or skew the animation rendering.\n   * @param transform - 9-element array representing the transformation matrix in row-major order\n   * @returns True if transformation was applied successfully, false otherwise\n   */\n  public setTransform(transform: Transform): boolean {\n    if (!this._dotLottieCore) return false;\n\n    const ok = this._dotLottieCore.set_transform(new Float32Array(transform));\n\n    if (ok && this._dotLottieCore.render()) {\n      this._draw();\n    }\n\n    return ok;\n  }\n\n  /**\n   * Gets the 3x3 transformation matrix applied to the animation.\n   * Returns a 9-element array representing affine transformations (translation, rotation, scale, skew).\n   * @returns Transform array of 9 numbers, or undefined if not available\n   */\n  public getTransform(): Transform | undefined {\n    if (!this._dotLottieCore) return undefined;\n\n    const arr = this._dotLottieCore.get_transform();\n\n    return Array.from(arr) as Transform;\n  }\n\n  /**\n   * Sets a frame range to play instead of the full animation.\n   * Useful for playing specific sections or creating animation sequences from subsections.\n   * @param startFrame - Starting frame number (inclusive)\n   * @param endFrame - Ending frame number (inclusive)\n   */\n  public setSegment(startFrame: number, endFrame: number): void {\n    if (this._dotLottieCore === null) return;\n\n    this._segment = [startFrame, endFrame];\n    this._dotLottieCore.set_segment(startFrame, endFrame);\n  }\n\n  /**\n   * Clears the user-defined segment, restoring playback to the full animation range [0, totalFrames - 1].\n   */\n  public resetSegment(): void {\n    if (this._dotLottieCore === null) return;\n\n    this._segment = null;\n    this._dotLottieCore.clear_segment();\n  }\n\n  /**\n   * Changes the playback direction mode.\n   * Controls whether animation plays forward, in reverse, or alternates (bounce).\n   * @param mode - Playback mode: 'forward', 'reverse', 'bounce', or 'reverse-bounce'\n   */\n  public setMode(mode: Mode): void {\n    if (this._dotLottieCore === null) return;\n\n    this._dotLottieCore.set_mode(modeToCore(mode));\n  }\n\n  /**\n   * Updates rendering configuration like autoResize, devicePixelRatio, and freezeOnOffscreen.\n   * Dynamically changes how the canvas behaves without reloading the animation.\n   * @param config - Partial RenderConfig with properties to update\n   */\n  public setRenderConfig(config: RenderConfig): void {\n    const { devicePixelRatio, freezeOnOffscreen, quality, ...restConfig } = config;\n\n    this._renderConfig = {\n      ...this._renderConfig,\n      ...restConfig,\n      // devicePixelRatio is a special case, it should be set to the default value if it's not provided\n      devicePixelRatio: devicePixelRatio || getDefaultDPR(),\n      freezeOnOffscreen: freezeOnOffscreen ?? true,\n      ...(quality !== undefined && { quality }),\n    };\n\n    if (quality !== undefined && this._dotLottieCore) {\n      this._dotLottieCore.set_quality(quality);\n    }\n\n    if (IS_BROWSER && this._canvas instanceof HTMLCanvasElement) {\n      if (this._renderConfig.autoResize) {\n        CanvasResizeObserver.observe(this._canvas, this);\n      } else {\n        CanvasResizeObserver.unobserve(this._canvas);\n      }\n\n      if (this._renderConfig.freezeOnOffscreen) {\n        OffscreenObserver.observe(this._canvas, this);\n\n        // Check if canvas is currently offscreen and freeze if necessary\n        if (!isElementInViewport(this._canvas)) {\n          this.freeze();\n        }\n      } else {\n        OffscreenObserver.unobserve(this._canvas);\n        // If the animation was previously frozen, we need to unfreeze it now\n        // to ensure it resumes rendering when the canvas is back onscreen.\n        if (this._isFrozen) {\n          this.unfreeze();\n        }\n      }\n    }\n  }\n\n  /**\n   * Switches to a different animation within a multi-animation dotLottie file.\n   * Use this to load a different animation by its ID without creating a new player instance.\n   * @param animationId - ID of the animation to load (must exist in the manifest)\n   */\n  public loadAnimation(animationId: string): void {\n    if (this._dotLottieCore === null || this._dotLottieCore.animation_id() === animationId || !this._canvas) return;\n\n    this._setupTarget(this._canvas.width, this._canvas.height);\n    const loaded = this._dotLottieCore.load_animation_from_id(animationId);\n\n    if (loaded) {\n      if (this._renderConfig.quality !== undefined) {\n        this._dotLottieCore.set_quality(this._renderConfig.quality);\n      }\n      this.resize();\n      this._drainPlayerEvents();\n\n      this._dotLottieCore.render();\n      this._draw();\n    } else {\n      this._dispatchError(`Failed to load animation with id: ${animationId}`);\n    }\n  }\n\n  /**\n   * Activates a named marker to play only that marked segment.\n   * Markers define named sections within an animation. Use markers() to list available markers.\n   * @param marker - Name of the marker to activate\n   */\n  public setMarker(marker: string): void {\n    if (this._dotLottieCore === null) return;\n\n    const validMarkers = this.markers();\n    const exists = validMarkers.some((m) => m.name === marker);\n\n    if (exists) {\n      this._marker = marker;\n      this._dotLottieCore.set_marker(marker);\n    } else {\n      this._marker = '';\n      this._segment = null;\n      this._dotLottieCore.clear_marker();\n      this._dotLottieCore.clear_segment();\n    }\n  }\n\n  /**\n   * Gets all markers defined in the animation with their time and duration.\n   * Markers represent named sections that can be played using setMarker().\n   * @returns Array of marker objects with name, time, and duration properties\n   */\n  public markers(): Marker[] {\n    const markers = this._dotLottieCore?.markers();\n\n    if (markers && Array.isArray(markers)) {\n      return markers as Marker[];\n    }\n\n    return [];\n  }\n\n  /**\n   * Applies a theme to the animation, modifying colors and visual properties.\n   * Themes are predefined in the dotLottie manifest. Returns true if theme was successfully loaded.\n   * @param themeId - ID of the theme to apply (must exist in manifest)\n   * @returns True if theme loaded successfully, false otherwise\n   */\n  public setTheme(themeId: string): boolean {\n    if (this._dotLottieCore === null) return false;\n\n    const themeLoaded = this._dotLottieCore.set_theme(themeId);\n\n    if (themeLoaded) {\n      this._dotLottieCore.render();\n      this._draw();\n    }\n\n    return themeLoaded;\n  }\n\n  /**\n   * Removes the currently applied theme and restores original animation colors.\n   * Use this to revert to the default appearance after applying a theme.\n   * @returns True if theme was reset successfully, false otherwise\n   */\n  public resetTheme(): boolean {\n    if (this._dotLottieCore === null) return false;\n\n    const themeReset = this._dotLottieCore.reset_theme();\n\n    if (themeReset) {\n      this._dotLottieCore.render();\n      this._draw();\n    }\n\n    return themeReset;\n  }\n\n  /**\n   * Applies a custom theme from theme data instead of manifest theme ID.\n   * Useful for dynamically generated or user-created themes not in the manifest.\n   *\n   * @param themeData - Theme data as a JSON string or a structured Theme object\n   * @returns True if theme loaded successfully, false otherwise\n   */\n  public setThemeData(themeData: Theme | string): boolean {\n    if (this._dotLottieCore === null) return false;\n\n    const themeDataString = typeof themeData === 'string' ? themeData : JSON.stringify(themeData);\n\n    const themeLoaded = this._dotLottieCore.set_theme_data(themeDataString);\n\n    if (themeLoaded) {\n      this._dotLottieCore.render();\n      this._draw();\n    }\n\n    return themeLoaded;\n  }\n\n  /**\n   * Sets multiple slot values at once for parameterized animations.\n   * Slots allow runtime customization of colors, text, images, or other properties.\n   * @param slots - Object mapping slot IDs to their values\n   */\n  public setSlots(slots: Record<string, unknown>): void {\n    if (this._dotLottieCore === null) return;\n\n    if (this._dotLottieCore.set_slots_str(JSON.stringify(slots))) {\n      this._dotLottieCore.render();\n      this._draw();\n    }\n  }\n\n  // #region Typed Slot APIs\n\n  /**\n   * Check if value is an array of keyframes (has objects with 't' and 's' properties)\n   */\n  private _isKeyframeArray(value: unknown): boolean {\n    return (\n      Array.isArray(value) &&\n      value.length > 0 &&\n      typeof value[0] === 'object' &&\n      value[0] !== null &&\n      't' in value[0] &&\n      's' in value[0]\n    );\n  }\n\n  /**\n   * Get all slot IDs in the animation\n   * @returns Array of slot ID strings\n   */\n  public getSlotIds(): string[] {\n    if (!this._dotLottieCore) return [];\n\n    const ids = this._dotLottieCore.get_slot_ids();\n\n    if (Array.isArray(ids)) {\n      return ids as string[];\n    }\n\n    return [];\n  }\n\n  /**\n   * Get the type of a slot\n   * @param slotId - The slot ID to query\n   * @returns The slot type ('color', 'gradient', 'text', 'scalar', 'vector', 'position', 'image') or undefined\n   */\n  public getSlotType(slotId: string): SlotType | undefined {\n    if (!this._dotLottieCore) return undefined;\n\n    const type = this._dotLottieCore.get_slot_type(slotId);\n\n    if (!type) return undefined;\n\n    return type as SlotType;\n  }\n\n  /**\n   * Get the current value of a slot\n   * @param slotId - The slot ID to query\n   * @returns The parsed slot value or undefined if not found\n   */\n  public getSlot(slotId: string): unknown {\n    if (!this._dotLottieCore) return undefined;\n\n    const slotStr = this._dotLottieCore.get_slot_str(slotId);\n\n    if (!slotStr) return undefined;\n\n    try {\n      return JSON.parse(slotStr);\n    } catch {\n      return undefined;\n    }\n  }\n\n  /**\n   * Get all slots as an object with slot IDs as keys\n   * @returns Object containing all slots, or empty object if not loaded\n   */\n  public getSlots(): Record<string, unknown> {\n    if (!this._dotLottieCore) return {};\n\n    try {\n      return JSON.parse(this._dotLottieCore.get_slots_str());\n    } catch {\n      return {};\n    }\n  }\n\n  /**\n   * Set a color slot value\n   * @param slotId - The slot ID to set\n   * @param value - Static color [r, g, b, a] or array of keyframes\n   * @returns true if successful\n   */\n  public setColorSlot(slotId: string, value: ColorSlotValue): boolean {\n    if (this._dotLottieCore === null) return false;\n\n    const isAnimated = this._isKeyframeArray(value);\n    const slotJson = JSON.stringify({ a: isAnimated ? 1 : 0, k: value });\n\n    const result = this._dotLottieCore.set_slot_str(slotId, slotJson);\n\n    this._dotLottieCore.render();\n    this._draw();\n\n    return result;\n  }\n\n  /**\n   * Set a scalar slot value (single number like rotation, opacity)\n   * @param slotId - The slot ID to set\n   * @param value - Static number or array of keyframes\n   * @returns true if successful\n   */\n  public setScalarSlot(slotId: string, value: ScalarSlotValue): boolean {\n    if (this._dotLottieCore === null) return false;\n\n    const isAnimated = typeof value !== 'number';\n    const slotJson = JSON.stringify({ a: isAnimated ? 1 : 0, k: value });\n\n    const result = this._dotLottieCore.set_slot_str(slotId, slotJson);\n\n    this._dotLottieCore.render();\n    this._draw();\n\n    return result;\n  }\n\n  /**\n   * Set a vector slot value (2D or 3D point for position, scale, etc.)\n   * Handles both \"vector\" and \"position\" slot types\n   * @param slotId - The slot ID to set\n   * @param value - Static vector [x, y] or array of keyframes\n   * @returns true if successful\n   */\n  public setVectorSlot(slotId: string, value: VectorSlotValue): boolean {\n    if (this._dotLottieCore === null) return false;\n\n    const isAnimated = this._isKeyframeArray(value);\n    const slotJson = JSON.stringify({ a: isAnimated ? 1 : 0, k: value });\n\n    const result = this._dotLottieCore.set_slot_str(slotId, slotJson);\n\n    this._dotLottieCore.render();\n    this._draw();\n\n    return result;\n  }\n\n  /**\n   * Set a gradient slot value\n   * @param slotId - The slot ID to set\n   * @param value - Static gradient or array of keyframes\n   * @param colorStopCount - Number of color stops\n   * @returns true if successful\n   */\n  public setGradientSlot(slotId: string, value: GradientSlotValue, colorStopCount: number): boolean {\n    if (this._dotLottieCore === null) return false;\n\n    const isAnimated = this._isKeyframeArray(value);\n    const slotJson = JSON.stringify({ k: { a: isAnimated ? 1 : 0, k: value }, p: colorStopCount });\n\n    const result = this._dotLottieCore.set_slot_str(slotId, slotJson);\n\n    this._dotLottieCore.render();\n    this._draw();\n\n    return result;\n  }\n\n  /**\n   * Set a text slot value (always static - text documents don't support animation)\n   * Supports partial updates - only provided properties will be changed, others inherit from existing value\n   * @param slotId - The slot ID to set\n   * @param value - Text document properties (partial allowed)\n   * @returns true if successful\n   */\n  public setTextSlot(slotId: string, value: TextSlotValue): boolean {\n    if (this._dotLottieCore === null) return false;\n\n    const existingStr = this._dotLottieCore.get_slot_str(slotId);\n    let mergedTextDoc = value;\n\n    if (existingStr) {\n      const existingValue = JSON.parse(existingStr);\n\n      if (existingValue && 'k' in existingValue && Array.isArray(existingValue.k)) {\n        const keyframe0 = existingValue.k[0] as Record<string, unknown>;\n\n        if ('s' in keyframe0 && typeof keyframe0['s'] === 'object') {\n          mergedTextDoc = {\n            ...(keyframe0['s'] as Record<string, unknown>),\n            ...value,\n          };\n        }\n      }\n    }\n\n    const slotJson = JSON.stringify({\n      a: 0,\n      k: [{ t: 0, s: mergedTextDoc }],\n    });\n\n    const result = this._dotLottieCore.set_slot_str(slotId, slotJson);\n\n    this._dotLottieCore.render();\n    this._draw();\n\n    return result;\n  }\n\n  /**\n   * Reset a slot to its original value\n   * @param slotId - The slot ID to reset\n   * @returns true if successful\n   */\n  public resetSlot(slotId: string): boolean {\n    if (this._dotLottieCore === null) return false;\n\n    const result = this._dotLottieCore.reset_slot(slotId);\n\n    this._dotLottieCore.render();\n    this._draw();\n\n    return result;\n  }\n\n  /**\n   * Clear a slot's custom value\n   * @param slotId - The slot ID to clear\n   * @returns true if successful\n   */\n  public clearSlot(slotId: string): boolean {\n    if (this._dotLottieCore === null) return false;\n\n    const result = this._dotLottieCore.clear_slot(slotId);\n\n    this._dotLottieCore.render();\n    this._draw();\n\n    return result;\n  }\n\n  /**\n   * Reset all slots to their original values\n   * @returns true if successful\n   */\n  public resetSlots(): boolean {\n    if (this._dotLottieCore === null) return false;\n\n    const result = this._dotLottieCore.reset_slots();\n\n    this._dotLottieCore.render();\n    this._draw();\n\n    return result;\n  }\n\n  /**\n   * Clear all slot custom values\n   * @returns true if successful\n   */\n  public clearSlots(): boolean {\n    if (this._dotLottieCore === null) return false;\n\n    const result = this._dotLottieCore.clear_slots();\n\n    this._dotLottieCore.render();\n    this._draw();\n\n    return result;\n  }\n\n  // #endregion\n\n  /**\n   * Updates the layout configuration for positioning and scaling the animation.\n   * Changes how the animation fits and aligns within the canvas without requiring a reload.\n   * @param layout - New layout configuration with fit mode and alignment values\n   */\n  public setLayout(layout: Layout): void {\n    if (this._dotLottieCore === null) return;\n\n    this._dotLottieCore.set_layout(layout.fit ?? 'contain', layout.align?.[0] ?? 0.5, layout.align?.[1] ?? 0.5);\n  }\n\n  /**\n   * Sets a custom viewport region for rendering a portion of the animation.\n   * Defines a rectangular area to render, useful for implementing animation clipping or panning effects.\n   * @param x - X coordinate of the viewport's top-left corner\n   * @param y - Y coordinate of the viewport's top-left corner\n   * @param width - Width of the viewport in pixels\n   * @param height - Height of the viewport in pixels\n   * @returns True if viewport was set successfully, false otherwise\n   */\n  public setViewport(x: number, y: number, width: number, height: number): boolean {\n    if (this._dotLottieCore === null) return false;\n\n    return this._dotLottieCore.set_viewport(x, y, width, height);\n  }\n\n  /**\n   * Configures the URL for loading the WASM module.\n   * Call this before creating any player instances to load the WASM from a custom CDN or local path.\n   * @param url - URL pointing to the dotlottie WASM file\n   */\n  public static setWasmUrl(url: string): void {\n    dotLottieWasmLoader.setWasmUrl(url);\n  }\n\n  /**\n   * @experimental\n   * Register a custom font for use in animations\n   * @param fontName - The name of the font to register\n   * @param fontSource - Either a URL string to fetch the font, or ArrayBuffer/Uint8Array of font data\n   * @returns Promise<boolean> - true if registration succeeded, false otherwise\n   */\n  public static async registerFont(fontName: string, fontSource: string | ArrayBuffer | Uint8Array): Promise<boolean> {\n    try {\n      await dotLottieWasmLoader.load();\n\n      let fontData: Uint8Array;\n\n      if (typeof fontSource === 'string') {\n        const response = await fetch(fontSource);\n\n        if (!response.ok) {\n          console.error(`Failed to fetch font from URL: ${fontSource}. Status: ${response.status}`);\n\n          return false;\n        }\n        fontData = new Uint8Array(await response.arrayBuffer());\n      } else if (fontSource instanceof Uint8Array) {\n        fontData = fontSource;\n      } else {\n        fontData = new Uint8Array(fontSource);\n      }\n\n      const success = register_font(fontName, fontData);\n\n      if (!success) {\n        console.error(`Failed to register font \"${fontName}\". Font data may be invalid.`);\n      }\n\n      return success;\n    } catch (error) {\n      console.error(`Error registering font \"${fontName}\":`, error);\n\n      return false;\n    }\n  }\n\n  /**\n   * Gets the original dimensions of the animation as defined in the source file.\n   * Returns width and height in pixels representing the animation's intrinsic size.\n   * @returns Object with width and height properties in pixels\n   */\n  public animationSize(): { height: number; width: number } {\n    const size = this._dotLottieCore?.animation_size();\n\n    return {\n      width: size?.[0] ?? 0,\n      height: size?.[1] ?? 0,\n    };\n  }\n\n  // #region State Machine\n\n  /**\n   * @experimental\n   * Loads a state machine by its ID from the dotLottie manifest.\n   * State machines enable interactive, event-driven animation behaviors.\n   * @param stateMachineId - The ID of the state machine to load (must exist in manifest)\n   * @returns True if the state machine was loaded successfully, false otherwise\n   */\n  public stateMachineLoad(stateMachineId: string): boolean {\n    if (!this._dotLottieCore) return false;\n\n    return this._dotLottieCore.state_machine_load_from_id(stateMachineId);\n  }\n\n  /**\n   * @experimental\n   * Load a state machine from data string\n   * @param stateMachineData - The state machine data as a string\n   * @returns true if the state machine was loaded successfully\n   */\n  public stateMachineLoadData(stateMachineData: string): boolean {\n    if (!this._dotLottieCore) return false;\n\n    return this._dotLottieCore.state_machine_load(stateMachineData);\n  }\n\n  /**\n   * @experimental\n   * Set the state machine config\n   * @param config - The state machine config\n   */\n  public stateMachineSetConfig(config: StateMachineConfig | null): void {\n    this._stateMachineConfig = config;\n  }\n\n  /**\n   * @experimental\n   * Start the state machine\n   * @returns true if the state machine was started successfully\n   */\n  public stateMachineStart(): boolean {\n    if (this._dotLottieCore === null) return false;\n\n    const started = this._dotLottieCore.sm_start(\n      this._stateMachineConfig?.openUrlPolicy?.requireUserInteraction ?? true,\n      (this._stateMachineConfig?.openUrlPolicy?.whitelist ?? []) as unknown[],\n    );\n\n    this._drainSmEvents();\n\n    if (started) {\n      this._isStateMachineRunning = true;\n      this._setupStateMachineListeners();\n      this._startAnimationLoop();\n    }\n\n    return started;\n  }\n\n  /**\n   * @experimental\n   * Stop the state machine\n   * @returns true if the state machine was stopped successfully\n   */\n  public stateMachineStop(): boolean {\n    if (!this._dotLottieCore) return false;\n\n    const stopped = this._dotLottieCore.sm_stop();\n\n    this._drainSmEvents();\n\n    if (stopped) {\n      this._isStateMachineRunning = false;\n      this._cleanupStateMachineListeners();\n\n      // Stop animation loop if animation is not playing\n      if (!this._dotLottieCore.is_playing()) {\n        this._stopAnimationLoop();\n      }\n    }\n\n    return stopped;\n  }\n\n  /**\n   * @experimental\n   * Get the current status of the state machine\n   * @returns The current status of the state machine as a string\n   */\n  public stateMachineGetStatus(): string {\n    return this._dotLottieCore?.sm_status() ?? '';\n  }\n\n  /**\n   * @experimental\n   * Get the current state of the state machine\n   * @returns The current state of the state machine as a string\n   */\n  public stateMachineGetCurrentState(): string {\n    return this._dotLottieCore?.sm_current_state() ?? '';\n  }\n\n  /**\n   * @experimental\n   * Get the active state machine ID\n   * @returns The active state machine ID as a string\n   */\n  public stateMachineGetActiveId(): string {\n    return this._dotLottieCore?.state_machine_id() ?? '';\n  }\n\n  /**\n   * @experimental\n   * Override the current state of the state machine\n   * @param state - The state to override to\n   * @param immediate - Whether to immediately transition to the state\n   * @returns true if the state override was successful\n   */\n  public stateMachineOverrideState(state: string, immediate: boolean = false): boolean {\n    return this._dotLottieCore?.sm_override_current_state(state, immediate) ?? false;\n  }\n\n  /**\n   * @experimental\n   * Get a specific state machine by ID\n   * @param stateMachineId - The ID of the state machine to get\n   * @returns The state machine data as a string\n   */\n  public stateMachineGet(stateMachineId: string): string {\n    return this._dotLottieCore?.get_state_machine(stateMachineId) ?? '';\n  }\n\n  /**\n   * @experimental\n   * Get the list of state machine listeners\n   * @returns Array of listener names\n   */\n  public stateMachineGetListeners(): string[] {\n    if (!this._dotLottieCore) return [];\n\n    const listeners = this._dotLottieCore.sm_framework_setup();\n\n    if (Array.isArray(listeners)) {\n      return listeners as string[];\n    }\n\n    return [];\n  }\n\n  /**\n   * @experimental\n   * Set a boolean input value for the state machine\n   * @param name - The name of the boolean input\n   * @param value - The boolean value to set\n   */\n  public stateMachineSetBooleanInput(name: string, value: boolean): boolean {\n    return this._dotLottieCore?.sm_set_boolean_input(name, value) ?? false;\n  }\n\n  /**\n   * @experimental\n   * Set a numeric input value for the state machine\n   * @param name - The name of the numeric input\n   * @param value - The numeric value to set\n   */\n  public stateMachineSetNumericInput(name: string, value: number): boolean {\n    return this._dotLottieCore?.sm_set_numeric_input(name, value) ?? false;\n  }\n\n  /**\n   * @experimental\n   * Set a string input value for the state machine\n   * @param name - The name of the string input\n   * @param value - The string value to set\n   */\n  public stateMachineSetStringInput(name: string, value: string): boolean {\n    return this._dotLottieCore?.sm_set_string_input(name, value) ?? false;\n  }\n\n  /**\n   * @experimental\n   * Get a boolean input value from the state machine\n   * @param name - The name of the boolean input\n   * @returns The boolean value or undefined if not found\n   */\n  public stateMachineGetBooleanInput(name: string): boolean | undefined {\n    return this._dotLottieCore?.sm_get_boolean_input(name) ?? undefined;\n  }\n\n  /**\n   * @experimental\n   * Get a numeric input value from the state machine\n   * @param name - The name of the numeric input\n   * @returns The numeric value or undefined if not found\n   */\n  public stateMachineGetNumericInput(name: string): number | undefined {\n    return this._dotLottieCore?.sm_get_numeric_input(name) ?? undefined;\n  }\n\n  /**\n   * @experimental\n   * Get a string input value from the state machine\n   * @param name - The name of the string input\n   * @returns The string value or undefined if not found\n   */\n  public stateMachineGetStringInput(name: string): string | undefined {\n    return this._dotLottieCore?.sm_get_string_input(name) ?? undefined;\n  }\n\n  /**\n   * @experimental\n   * Get all the inputs of the current state machine.\n   * @returns An array of input keys followed by its type at n+1.\n   */\n  public stateMachineGetInputs(): string[] {\n    if (!this._dotLottieCore) return [];\n\n    const inputs = this._dotLottieCore.sm_get_inputs();\n\n    if (Array.isArray(inputs)) {\n      return inputs as string[];\n    }\n\n    return [];\n  }\n\n  /**\n   * @experimental\n   * Fire an event in the state machine\n   * @param name - The name of the event to fire\n   */\n  public stateMachineFireEvent(name: string): void {\n    this._dotLottieCore?.sm_fire(name);\n  }\n\n  /**\n   * @experimental\n   * Post a click event to the state machine\n   * @param x - The x coordinate of the click\n   * @param y - The y coordinate of the click\n   */\n  public stateMachinePostClickEvent(x: number, y: number): void {\n    this._dotLottieCore?.sm_post_click(x, y);\n  }\n\n  /**\n   * @experimental\n   * Post a pointer up event to the state machine\n   * @param x - The x coordinate of the pointer\n   * @param y - The y coordinate of the pointer\n   */\n  public stateMachinePostPointerUpEvent(x: number, y: number): void {\n    this._dotLottieCore?.sm_post_pointer_up(x, y);\n  }\n\n  /**\n   * @experimental\n   * Post a pointer down event to the state machine\n   * @param x - The x coordinate of the pointer\n   * @param y - The y coordinate of the pointer\n   */\n  public stateMachinePostPointerDownEvent(x: number, y: number): void {\n    this._dotLottieCore?.sm_post_pointer_down(x, y);\n  }\n\n  /**\n   * @experimental\n   * Post a pointer move event to the state machine\n   * @param x - The x coordinate of the pointer\n   * @param y - The y coordinate of the pointer\n   */\n  public stateMachinePostPointerMoveEvent(x: number, y: number): void {\n    this._dotLottieCore?.sm_post_pointer_move(x, y);\n  }\n\n  /**\n   * @experimental\n   * Post a pointer enter event to the state machine\n   * @param x - The x coordinate of the pointer\n   * @param y - The y coordinate of the pointer\n   */\n  public stateMachinePostPointerEnterEvent(x: number, y: number): void {\n    this._dotLottieCore?.sm_post_pointer_enter(x, y);\n  }\n\n  /**\n   * @experimental\n   * Post a pointer exit event to the state machine\n   * @param x - The x coordinate of the pointer\n   * @param y - The y coordinate of the pointer\n   */\n  public stateMachinePostPointerExitEvent(x: number, y: number): void {\n    this._dotLottieCore?.sm_post_pointer_exit(x, y);\n  }\n\n  private _onClick(event: MouseEvent): void {\n    const position = getPointerPosition(event);\n\n    if (position) {\n      this.stateMachinePostClickEvent(position.x, position.y);\n    }\n  }\n\n  private _onPointerUp(event: PointerEvent): void {\n    const position = getPointerPosition(event);\n\n    if (position) {\n      this.stateMachinePostPointerUpEvent(position.x, position.y);\n    }\n  }\n\n  private _onPointerDown(event: PointerEvent): void {\n    const position = getPointerPosition(event);\n\n    if (position) {\n      this.stateMachinePostPointerDownEvent(position.x, position.y);\n    }\n  }\n\n  private _onPointerMove(event: PointerEvent): void {\n    const position = getPointerPosition(event);\n\n    if (position) {\n      this.stateMachinePostPointerMoveEvent(position.x, position.y);\n    }\n  }\n\n  private _onPointerEnter(event: PointerEvent): void {\n    const position = getPointerPosition(event);\n\n    if (position) {\n      this.stateMachinePostPointerEnterEvent(position.x, position.y);\n    }\n  }\n\n  private _onPointerLeave(event: PointerEvent): void {\n    const position = getPointerPosition(event);\n\n    if (position) {\n      this.stateMachinePostPointerExitEvent(position.x, position.y);\n    }\n  }\n\n  private _setupStateMachineListeners(): void {\n    if (IS_BROWSER && this._canvas instanceof HTMLCanvasElement && this._dotLottieCore !== null && this.isLoaded) {\n      const listeners = this.stateMachineGetListeners();\n\n      // Clean up any existing listeners first\n      this._cleanupStateMachineListeners();\n\n      if (listeners.includes('Click')) {\n        this._boundOnClick = this._onClick.bind(this);\n        this._canvas.addEventListener('click', this._boundOnClick);\n      }\n      if (listeners.includes('PointerUp')) {\n        this._boundOnPointerUp = this._onPointerUp.bind(this);\n        this._canvas.addEventListener('pointerup', this._boundOnPointerUp);\n      }\n      if (listeners.includes('PointerDown')) {\n        this._boundOnPointerDown = this._onPointerDown.bind(this);\n        this._canvas.addEventListener('pointerdown', this._boundOnPointerDown);\n      }\n      if (listeners.includes('PointerMove')) {\n        this._boundOnPointerMove = this._onPointerMove.bind(this);\n        this._canvas.addEventListener('pointermove', this._boundOnPointerMove);\n      }\n      if (listeners.includes('PointerEnter')) {\n        this._boundOnPointerEnter = this._onPointerEnter.bind(this);\n        this._canvas.addEventListener('pointerenter', this._boundOnPointerEnter);\n      }\n      if (listeners.includes('PointerExit')) {\n        this._boundOnPointerLeave = this._onPointerLeave.bind(this);\n        this._canvas.addEventListener('pointerleave', this._boundOnPointerLeave);\n      }\n    }\n  }\n\n  private _cleanupStateMachineListeners(): void {\n    if (IS_BROWSER && this._canvas instanceof HTMLCanvasElement) {\n      if (this._boundOnClick) {\n        this._canvas.removeEventListener('click', this._boundOnClick);\n        this._boundOnClick = null;\n      }\n      if (this._boundOnPointerUp) {\n        this._canvas.removeEventListener('pointerup', this._boundOnPointerUp);\n        this._boundOnPointerUp = null;\n      }\n      if (this._boundOnPointerDown) {\n        this._canvas.removeEventListener('pointerdown', this._boundOnPointerDown);\n        this._boundOnPointerDown = null;\n      }\n      if (this._boundOnPointerMove) {\n        this._canvas.removeEventListener('pointermove', this._boundOnPointerMove);\n        this._boundOnPointerMove = null;\n      }\n      if (this._boundOnPointerEnter) {\n        this._canvas.removeEventListener('pointerenter', this._boundOnPointerEnter);\n        this._boundOnPointerEnter = null;\n      }\n      if (this._boundOnPointerLeave) {\n        this._canvas.removeEventListener('pointerleave', this._boundOnPointerLeave);\n        this._boundOnPointerLeave = null;\n      }\n    }\n  }\n  // #endregion\n}\n","// resolved to a Worker constructor by plugin-inline-worker\nimport DotLottieWebWorker from './dotlottie.worker?worker&inline';\nimport type { MethodParamsMap, RpcRequest } from './types';\n\ntype WorkerMessageHandler = (event: MessageEvent) => void;\n\nexport class WorkerManager {\n  private readonly _workers = new Map<string, Worker>();\n\n  private readonly _animationWorkerMap = new Map<string, string>();\n\n  // instanceId → handler for broadcast events from the worker (id is empty string)\n  private readonly _eventHandlers = new Map<string, WorkerMessageHandler>();\n\n  // RPC request id → handler for the matching reply\n  private readonly _rpcHandlers = new Map<string, WorkerMessageHandler>();\n\n  public getWorker(workerId: string): Worker {\n    let worker = this._workers.get(workerId);\n\n    if (!worker) {\n      worker = new DotLottieWebWorker();\n      worker.addEventListener('message', this._routeMessage);\n      this._workers.set(workerId, worker);\n    }\n\n    return worker;\n  }\n\n  public assignAnimationToWorker(animationId: string, workerId: string): void {\n    this._animationWorkerMap.set(animationId, workerId);\n  }\n\n  public unassignAnimationFromWorker(animationId: string): void {\n    this._animationWorkerMap.delete(animationId);\n  }\n\n  public sendMessage(workerId: string, message: RpcRequest<keyof MethodParamsMap>, transfer?: Transferable[]): void {\n    this.getWorker(workerId).postMessage(message, transfer || []);\n  }\n\n  public broadcastMessage(message: RpcRequest<keyof MethodParamsMap>, transfer?: Transferable[]): void {\n    this._workers.forEach((worker) => {\n      worker.postMessage(message, transfer || []);\n    });\n  }\n\n  public terminateWorker(workerId: string): void {\n    const worker = this._workers.get(workerId);\n\n    if (worker) {\n      worker.removeEventListener('message', this._routeMessage);\n      worker.terminate();\n      this._workers.delete(workerId);\n    }\n  }\n\n  public registerEventHandler(instanceId: string, handler: WorkerMessageHandler): void {\n    this._eventHandlers.set(instanceId, handler);\n  }\n\n  public unregisterEventHandler(instanceId: string): void {\n    this._eventHandlers.delete(instanceId);\n  }\n\n  public registerRpcReplyHandler(requestId: string, handler: WorkerMessageHandler): void {\n    this._rpcHandlers.set(requestId, handler);\n  }\n\n  public unregisterRpcReplyHandler(requestId: string): void {\n    this._rpcHandlers.delete(requestId);\n  }\n\n  /*\n    Single per-worker listener that routes each message to the right consumer.\n    Replies have a non-empty `id` matching an in-flight RPC; broadcast events\n    use an empty `id` and carry `result.instanceId` for routing.\n  */\n  private readonly _routeMessage = (event: MessageEvent): void => {\n    const data = event.data as { id?: string; result?: { instanceId?: string } };\n\n    if (data.id) {\n      const handler = this._rpcHandlers.get(data.id);\n\n      if (handler) handler(event);\n\n      return;\n    }\n\n    const instanceId = data.result?.instanceId;\n\n    if (instanceId) {\n      const handler = this._eventHandlers.get(instanceId);\n\n      if (handler) handler(event);\n    }\n  };\n}\n","import { IS_BROWSER } from '../constants';\nimport type { EventListener, EventType, FrameEvent, StateMachineInternalMessage } from '../event-manager';\nimport { EventManager } from '../event-manager';\nimport { OffscreenObserver } from '../offscreen-observer';\nimport { CanvasResizeObserver } from '../resize-observer';\nimport type {\n  ColorSlotValue,\n  Config,\n  GradientSlotValue,\n  Layout,\n  Manifest,\n  Marker,\n  Mode,\n  RenderConfig,\n  ScalarSlotValue,\n  SlotType,\n  StateMachineConfig,\n  TextSlotValue,\n  Transform,\n  VectorSlotValue,\n} from '../types';\nimport { getDefaultDPR, getPointerPosition, handleOpenUrl, isElementInViewport } from '../utils';\n\nimport type { MethodParamsMap, MethodResultMap, RpcRequest, RpcResponse } from './types';\nimport { WorkerManager } from './worker-manager';\n\nfunction getCanvasSize(\n  canvas: HTMLCanvasElement | OffscreenCanvas,\n  devicePixelRatio: number,\n): { height: number; width: number } {\n  if (typeof HTMLCanvasElement !== 'undefined' && canvas instanceof HTMLCanvasElement) {\n    const { height: clientHeight, width: clientWidth } = canvas.getBoundingClientRect();\n\n    if (clientHeight !== 0 && clientWidth !== 0) {\n      return { width: clientWidth * devicePixelRatio, height: clientHeight * devicePixelRatio };\n    }\n  }\n\n  return { width: canvas.width, height: canvas.height };\n}\n\nfunction generateUniqueId(): string {\n  return Date.now().toString(36) + Math.random().toString(36).substr(2, 9);\n}\n\nexport interface DotLottieInstanceState {\n  activeAnimationId: string | undefined;\n  activeThemeId: string | undefined;\n  autoplay: boolean;\n  backgroundColor: string;\n  currentFrame: number;\n  duration: number;\n  isFrozen: boolean;\n  isLoaded: boolean;\n  isPaused: boolean;\n  isPlaying: boolean;\n  isReady: boolean;\n  isStopped: boolean;\n  layout: Layout | undefined;\n  loop: boolean;\n  loopCount: number;\n  manifest: Manifest | null;\n  marker: string | undefined;\n  markers: Marker[];\n  mode: Mode;\n  renderConfig: RenderConfig;\n  segment: [number, number] | undefined;\n  speed: number;\n  totalFrames: number;\n  useFrameInterpolation: boolean;\n}\n\n/**\n * Worker-based DotLottie player that offloads animation processing to a Web Worker thread.\n * Use this for better performance when rendering multiple animations or to keep the main thread responsive.\n * All methods are async (return Promises) due to worker communication. Requires HTMLCanvasElement or OffscreenCanvas.\n */\nexport class DotLottieWorker {\n  private static readonly _workerManager = new WorkerManager();\n\n  private readonly _eventManager = new EventManager();\n\n  private readonly _id: string;\n\n  private readonly _worker: Worker;\n\n  private _canvas: HTMLCanvasElement | OffscreenCanvas | null;\n\n  private _dotLottieInstanceState: DotLottieInstanceState = {\n    loopCount: 0,\n    markers: [],\n    autoplay: false,\n    backgroundColor: '',\n    currentFrame: 0,\n    duration: 0,\n    loop: false,\n    mode: 'forward',\n    segment: [0, 0],\n    speed: 1,\n    totalFrames: 0,\n    isLoaded: false,\n    isPlaying: false,\n    isPaused: false,\n    isStopped: true,\n    isFrozen: false,\n    useFrameInterpolation: false,\n    renderConfig: {\n      devicePixelRatio: getDefaultDPR(),\n    },\n    activeAnimationId: '',\n    activeThemeId: '',\n    layout: undefined,\n    marker: '',\n    isReady: false,\n    manifest: null,\n  };\n\n  private static _wasmUrl: string = '';\n\n  private _created: boolean = false;\n\n  // Bound event listeners for state machine\n  private _boundOnClick: ((event: MouseEvent) => void) | null = null;\n\n  private _boundOnPointerUp: ((event: PointerEvent) => void) | null = null;\n\n  private _boundOnPointerDown: ((event: PointerEvent) => void) | null = null;\n\n  private _boundOnPointerMove: ((event: PointerEvent) => void) | null = null;\n\n  private _boundOnPointerEnter: ((event: PointerEvent) => void) | null = null;\n\n  private _boundOnPointerLeave: ((event: PointerEvent) => void) | null = null;\n\n  private _pendingConfig: Config | null = null;\n\n  /**\n   * Creates a worker-based DotLottie player instance that runs in a separate thread.\n   * Use workerId to share a worker across multiple animations for better resource management.\n   * @param config - Configuration with optional workerId to share worker threads\n   * @throws Error if canvas is not HTMLCanvasElement or OffscreenCanvas\n   */\n  public constructor(config: Config & { workerId?: string }) {\n    if (config.canvas) {\n      const isHTMLCanvas = typeof HTMLCanvasElement !== 'undefined' && config.canvas instanceof HTMLCanvasElement;\n      const isOffscreenCanvas = typeof OffscreenCanvas !== 'undefined' && config.canvas instanceof OffscreenCanvas;\n\n      if (!isHTMLCanvas && !isOffscreenCanvas) {\n        throw new Error('Worker-based DotLottie requires HTMLCanvasElement or OffscreenCanvas');\n      }\n    }\n    // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n    this._canvas = (config.canvas as HTMLCanvasElement | OffscreenCanvas) ?? null;\n\n    this._id = `dotlottie-${generateUniqueId()}`;\n    const workerId = config.workerId || 'defaultWorker';\n\n    // creates or gets the worker\n    this._worker = DotLottieWorker._workerManager.getWorker(workerId);\n\n    DotLottieWorker._workerManager.assignAnimationToWorker(this._id, workerId);\n\n    if (DotLottieWorker._wasmUrl) {\n      this._sendMessage('setWasmUrl', { url: DotLottieWorker._wasmUrl });\n    }\n\n    const fullConfig = {\n      ...config,\n      renderConfig: {\n        ...config.renderConfig,\n        devicePixelRatio: config.renderConfig?.devicePixelRatio || getDefaultDPR(),\n        // freezeOnOffscreen is true by default to prevent unnecessary rendering when the canvas is offscreen\n        freezeOnOffscreen: config.renderConfig?.freezeOnOffscreen ?? true,\n      },\n    };\n\n    this._pendingConfig = fullConfig;\n\n    // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n    if (this._canvas) {\n      this._create(fullConfig);\n      this._pendingConfig = null;\n    }\n\n    DotLottieWorker._workerManager.registerEventHandler(\n      this._id,\n      // eslint-disable-next-line @typescript-eslint/no-misused-promises\n      this._handleWorkerEvent.bind(this),\n    );\n  }\n\n  private async _handleWorkerEvent(event: MessageEvent): Promise<void> {\n    const rpcResponse: RpcResponse<\n      | 'onComplete'\n      | 'onLoad'\n      | 'onDestroy'\n      | 'onUnfreeze'\n      | 'onFrame'\n      | 'onRender'\n      | 'onFreeze'\n      | 'onPause'\n      | 'onPlay'\n      | 'onStop'\n      | 'onLoadError'\n      | 'onRenderError'\n      | 'onReady'\n      | 'onLoop'\n      | 'onStateMachineStart'\n      | 'onStateMachineStop'\n      | 'onStateMachineTransition'\n      | 'onStateMachineStateEntered'\n      | 'onStateMachineStateExit'\n      | 'onStateMachineCustomEvent'\n      | 'onStateMachineError'\n      | 'onStateMachineBooleanInputValueChange'\n      // eslint-disable-next-line no-secrets/no-secrets\n      | 'onStateMachineNumericInputValueChange'\n      | 'onStateMachineStringInputValueChange'\n      | 'onStateMachineInputFired'\n      | 'onStateMachineInternalMessage'\n    > = event.data;\n\n    if (!rpcResponse.id) {\n      if (rpcResponse.method === 'onLoad' && rpcResponse.result.instanceId === this._id) {\n        await this._updateDotLottieInstanceState();\n        this._eventManager.dispatch(rpcResponse.result.event);\n\n        if (IS_BROWSER && this._canvas instanceof HTMLCanvasElement) {\n          if (this._dotLottieInstanceState.renderConfig.freezeOnOffscreen) {\n            OffscreenObserver.observe(this._canvas, this);\n\n            // Check if canvas is initially offscreen and freeze if necessary\n            if (!isElementInViewport(this._canvas)) {\n              await this.freeze();\n            }\n          }\n\n          if (this._dotLottieInstanceState.renderConfig.autoResize) {\n            CanvasResizeObserver.observe(this._canvas, this);\n          }\n        }\n      }\n\n      if (rpcResponse.method === 'onComplete' && rpcResponse.result.instanceId === this._id) {\n        await this._updateDotLottieInstanceState();\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onDestroy' && rpcResponse.result.instanceId === this._id) {\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onUnfreeze' && rpcResponse.result.instanceId === this._id) {\n        await this._updateDotLottieInstanceState();\n        this._dotLottieInstanceState.isFrozen = false;\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onFrame' && rpcResponse.result.instanceId === this._id) {\n        this._dotLottieInstanceState.currentFrame = (rpcResponse.result.event as FrameEvent).currentFrame;\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onRender' && rpcResponse.result.instanceId === this._id) {\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onFreeze' && rpcResponse.result.instanceId === this._id) {\n        await this._updateDotLottieInstanceState();\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onPause' && rpcResponse.result.instanceId === this._id) {\n        await this._updateDotLottieInstanceState();\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onPlay' && rpcResponse.result.instanceId === this._id) {\n        await this._updateDotLottieInstanceState();\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onStop' && rpcResponse.result.instanceId === this._id) {\n        await this._updateDotLottieInstanceState();\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onLoadError' && rpcResponse.result.instanceId === this._id) {\n        await this._updateDotLottieInstanceState();\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onRenderError' && rpcResponse.result.instanceId === this._id) {\n        // Dont update the instance, since the Core crashed its no long accessible. Calling _updateDotLottieInstanceState will cause it to hang indefinitely.\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onReady' && rpcResponse.result.instanceId === this._id) {\n        await this._updateDotLottieInstanceState();\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onLoop' && rpcResponse.result.instanceId === this._id) {\n        await this._updateDotLottieInstanceState();\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onStateMachineStart' && rpcResponse.result.instanceId === this._id) {\n        await this._updateDotLottieInstanceState();\n        this._setupStateMachineListeners();\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onStateMachineStop' && rpcResponse.result.instanceId === this._id) {\n        await this._updateDotLottieInstanceState();\n        this._cleanupStateMachineListeners();\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onStateMachineTransition' && rpcResponse.result.instanceId === this._id) {\n        await this._updateDotLottieInstanceState();\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onStateMachineStateEntered' && rpcResponse.result.instanceId === this._id) {\n        await this._updateDotLottieInstanceState();\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onStateMachineStateExit' && rpcResponse.result.instanceId === this._id) {\n        await this._updateDotLottieInstanceState();\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onStateMachineCustomEvent' && rpcResponse.result.instanceId === this._id) {\n        await this._updateDotLottieInstanceState();\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onStateMachineError' && rpcResponse.result.instanceId === this._id) {\n        await this._updateDotLottieInstanceState();\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (\n        rpcResponse.method === 'onStateMachineBooleanInputValueChange' &&\n        rpcResponse.result.instanceId === this._id\n      ) {\n        await this._updateDotLottieInstanceState();\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (\n        // eslint-disable-next-line no-secrets/no-secrets\n        rpcResponse.method === 'onStateMachineNumericInputValueChange' &&\n        rpcResponse.result.instanceId === this._id\n      ) {\n        await this._updateDotLottieInstanceState();\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onStateMachineStringInputValueChange' && rpcResponse.result.instanceId === this._id) {\n        await this._updateDotLottieInstanceState();\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onStateMachineInputFired' && rpcResponse.result.instanceId === this._id) {\n        await this._updateDotLottieInstanceState();\n        this._eventManager.dispatch(rpcResponse.result.event);\n      }\n\n      if (rpcResponse.method === 'onStateMachineInternalMessage' && rpcResponse.result.instanceId === this._id) {\n        await this._updateDotLottieInstanceState();\n\n        const internalEvent = rpcResponse.result.event as StateMachineInternalMessage;\n\n        if (internalEvent.message.startsWith('OpenUrl: ')) {\n          handleOpenUrl(internalEvent.message);\n        }\n      }\n    }\n  }\n\n  private async _create(config: Config): Promise<void> {\n    if (!this._canvas) {\n      return;\n    }\n\n    let offscreen: OffscreenCanvas;\n\n    if (this._canvas instanceof HTMLCanvasElement) {\n      offscreen = this._canvas.transferControlToOffscreen();\n    } else {\n      offscreen = this._canvas;\n    }\n\n    const { instanceId } = await this._sendMessage(\n      'create',\n      {\n        instanceId: this._id,\n        config: {\n          ...config,\n          canvas: offscreen as unknown as HTMLCanvasElement,\n        },\n        ...getCanvasSize(this._canvas, config.renderConfig?.devicePixelRatio || getDefaultDPR()),\n      },\n      [offscreen],\n    );\n\n    if (instanceId !== this._id) {\n      throw new Error('Instance ID mismatch');\n    }\n\n    this._created = true;\n\n    await this._updateDotLottieInstanceState();\n  }\n\n  public get loopCount(): number {\n    return this._dotLottieInstanceState.loopCount;\n  }\n\n  public get isLoaded(): boolean {\n    return this._dotLottieInstanceState.isLoaded;\n  }\n\n  public get isPlaying(): boolean {\n    return this._dotLottieInstanceState.isPlaying;\n  }\n\n  public get isPaused(): boolean {\n    return this._dotLottieInstanceState.isPaused;\n  }\n\n  public get isStopped(): boolean {\n    return this._dotLottieInstanceState.isStopped;\n  }\n\n  public get currentFrame(): number {\n    return this._dotLottieInstanceState.currentFrame;\n  }\n\n  public get isFrozen(): boolean {\n    return this._dotLottieInstanceState.isFrozen;\n  }\n\n  public get totalFrames(): number {\n    return this._dotLottieInstanceState.totalFrames;\n  }\n\n  public get segment(): [number, number] | undefined {\n    return this._dotLottieInstanceState.segment;\n  }\n\n  public get speed(): number {\n    return this._dotLottieInstanceState.speed;\n  }\n\n  public get duration(): number {\n    return this._dotLottieInstanceState.duration;\n  }\n\n  public get isReady(): boolean {\n    return this._dotLottieInstanceState.isReady;\n  }\n\n  public get mode(): Mode {\n    return this._dotLottieInstanceState.mode;\n  }\n\n  public get canvas(): HTMLCanvasElement | OffscreenCanvas | null {\n    return this._canvas;\n  }\n\n  /**\n   * Sets the canvas element for rendering in the worker thread.\n   * Cannot change canvas after worker instance is created with a different canvas.\n   * @param canvas - HTMLCanvasElement or OffscreenCanvas to render to\n   * @returns Promise that resolves when canvas has been set\n   * @throws Error if canvas is not HTMLCanvasElement or OffscreenCanvas\n   * @throws Error if trying to change canvas after instance is already created\n   */\n  public async setCanvas(canvas: HTMLCanvasElement | OffscreenCanvas): Promise<void> {\n    const isHTMLCanvas = typeof HTMLCanvasElement !== 'undefined' && canvas instanceof HTMLCanvasElement;\n    const isOffscreenCanvas = typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas;\n\n    if (!isHTMLCanvas && !isOffscreenCanvas) {\n      throw new Error('Worker-based DotLottie requires HTMLCanvasElement or OffscreenCanvas');\n    }\n\n    if (this._canvas === canvas) return;\n\n    if (this._created && this._canvas !== null) {\n      throw new Error('Cannot change canvas after worker instance is already created with a different canvas.');\n    }\n\n    this._canvas = canvas;\n\n    if (!this._created && this._pendingConfig) {\n      await this._create(this._pendingConfig);\n      this._pendingConfig = null;\n    }\n  }\n\n  public get autoplay(): boolean {\n    return this._dotLottieInstanceState.autoplay;\n  }\n\n  public get backgroundColor(): string {\n    return this._dotLottieInstanceState.backgroundColor;\n  }\n\n  public get loop(): boolean {\n    return this._dotLottieInstanceState.loop;\n  }\n\n  public get useFrameInterpolation(): boolean {\n    return this._dotLottieInstanceState.useFrameInterpolation;\n  }\n\n  public get renderConfig(): RenderConfig {\n    return this._dotLottieInstanceState.renderConfig;\n  }\n\n  public get manifest(): Manifest | null {\n    return this._dotLottieInstanceState.manifest;\n  }\n\n  public get activeAnimationId(): string | undefined {\n    return this._dotLottieInstanceState.activeAnimationId;\n  }\n\n  public get marker(): string | undefined {\n    return this._dotLottieInstanceState.marker;\n  }\n\n  public get activeThemeId(): string | undefined {\n    return this._dotLottieInstanceState.activeThemeId;\n  }\n\n  public get layout(): Layout | undefined {\n    return this._dotLottieInstanceState.layout;\n  }\n\n  /**\n   * Starts or resumes animation playback in the worker thread.\n   * Updates the internal playback state (e.g., isPlaying) to reflect that playback has started.\n   * @returns Promise that resolves when playback has started and state has been updated\n   */\n  public async play(): Promise<void> {\n    if (!this._created) return;\n\n    await this._sendMessage('play', { instanceId: this._id });\n    await this._updateDotLottieInstanceState();\n\n    /*\n      Check if the canvas is offscreen and freezing is enabled\n      If freezeOnOffscreen is true and the canvas is currently outside the viewport,\n      we immediately freeze the animation to avoid unnecessary rendering and performance overhead.\n    */\n    if (\n      IS_BROWSER &&\n      this._canvas instanceof HTMLCanvasElement &&\n      this._dotLottieInstanceState.renderConfig.freezeOnOffscreen &&\n      !isElementInViewport(this._canvas)\n    ) {\n      await this.freeze();\n    }\n  }\n\n  /**\n   * Pauses animation playback in the worker thread.\n   * Awaits worker response before resolving. Updates isPaused state to true.\n   * @returns Promise that resolves when playback has paused\n   */\n  public async pause(): Promise<void> {\n    if (!this._created) return;\n\n    await this._sendMessage('pause', { instanceId: this._id });\n    await this._updateDotLottieInstanceState();\n  }\n\n  /**\n   * Stops animation playback and resets to start frame in the worker thread.\n   * Awaits worker response before resolving. Updates isStopped state to true.\n   * @returns Promise that resolves when playback has stopped\n   */\n  public async stop(): Promise<void> {\n    if (!this._created) return;\n\n    await this._sendMessage('stop', { instanceId: this._id });\n    await this._updateDotLottieInstanceState();\n  }\n\n  /**\n   * Changes the animation playback speed in the worker thread.\n   * Awaits worker response before resolving.\n   * @param speed - Playback speed multiplier (e.g., 2 for 2x speed, 0.5 for half speed)\n   * @returns Promise that resolves when speed has been updated\n   */\n  public async setSpeed(speed: number): Promise<void> {\n    if (!this._created) return;\n\n    await this._sendMessage('setSpeed', { instanceId: this._id, speed });\n    await this._updateDotLottieInstanceState();\n  }\n\n  public async setMode(mode: Mode): Promise<void> {\n    if (!this._created) return;\n\n    await this._sendMessage('setMode', { instanceId: this._id, mode });\n    await this._updateDotLottieInstanceState();\n  }\n\n  public async setFrame(frame: number): Promise<void> {\n    if (!this._created) return;\n\n    await this._sendMessage('setFrame', { frame, instanceId: this._id });\n    await this._updateDotLottieInstanceState();\n  }\n\n  public async setSegment(start: number, end: number): Promise<void> {\n    if (!this._created) return;\n\n    await this._sendMessage('setSegment', { instanceId: this._id, segment: [start, end] });\n    await this._updateDotLottieInstanceState();\n  }\n\n  public async resetSegment(): Promise<void> {\n    if (!this._created) return;\n\n    await this._sendMessage('resetSegment', { instanceId: this._id });\n    await this._updateDotLottieInstanceState();\n  }\n\n  public async setRenderConfig(renderConfig: RenderConfig): Promise<void> {\n    if (!this._created) return;\n\n    const { devicePixelRatio, freezeOnOffscreen, quality, ...restConfig } = renderConfig;\n\n    await this._sendMessage('setRenderConfig', {\n      instanceId: this._id,\n      renderConfig: {\n        ...this._dotLottieInstanceState.renderConfig,\n        ...restConfig,\n        // devicePixelRatio is a special case, it should be set to the default value if it's not provided\n        devicePixelRatio: devicePixelRatio || getDefaultDPR(),\n        freezeOnOffscreen: freezeOnOffscreen ?? true,\n        ...(quality !== undefined && { quality }),\n      },\n    });\n\n    await this._updateDotLottieInstanceState();\n\n    if (IS_BROWSER && this._canvas instanceof HTMLCanvasElement) {\n      if (this._dotLottieInstanceState.renderConfig.autoResize) {\n        CanvasResizeObserver.observe(this._canvas, this);\n      } else {\n        CanvasResizeObserver.unobserve(this._canvas);\n      }\n\n      if (this._dotLottieInstanceState.renderConfig.freezeOnOffscreen) {\n        OffscreenObserver.observe(this._canvas, this);\n\n        // Check if canvas is currently offscreen and freeze if necessary\n        if (!isElementInViewport(this._canvas)) {\n          await this.freeze();\n        }\n      } else {\n        OffscreenObserver.unobserve(this._canvas);\n        // If the animation was previously frozen, we need to unfreeze it now\n        // to ensure it resumes rendering when the canvas is back onscreen.\n        if (this._dotLottieInstanceState.isFrozen) {\n          await this.unfreeze();\n        }\n      }\n    }\n  }\n\n  public async setUseFrameInterpolation(useFrameInterpolation: boolean): Promise<void> {\n    if (!this._created) return;\n\n    await this._sendMessage('setUseFrameInterpolation', { instanceId: this._id, useFrameInterpolation });\n    await this._updateDotLottieInstanceState();\n  }\n\n  public async setTheme(themeId: string): Promise<boolean> {\n    if (!this._created) return false;\n\n    const result = await this._sendMessage('setTheme', { instanceId: this._id, themeId });\n\n    await this._updateDotLottieInstanceState();\n\n    return result;\n  }\n\n  /**\n   * Dynamically loads a new animation in the worker thread, replacing the current one.\n   * Awaits worker response before resolving. Stops current playback and cleans up resources.\n   * @param config - Configuration for the new animation (all Config properties except canvas)\n   * @returns Promise that resolves when animation has been loaded\n   */\n  public async load(config: Omit<Config, 'canvas'>): Promise<void> {\n    if (!this._created) {\n      if (this._pendingConfig) {\n        this._pendingConfig = {\n          ...this._pendingConfig,\n          ...config,\n        };\n      }\n\n      return;\n    }\n\n    await this._sendMessage('load', { config, instanceId: this._id });\n    await this._updateDotLottieInstanceState();\n  }\n\n  public async setLoop(loop: boolean): Promise<void> {\n    if (!this._created) return;\n\n    await this._sendMessage('setLoop', { instanceId: this._id, loop });\n    await this._updateDotLottieInstanceState();\n  }\n\n  /**\n   * Sets the number of additional times to replay the animation after the first play in the worker thread.\n   * Requires loop to be true. A value of 0 means infinite replays; a positive value n means\n   * the animation plays a total of n + 1 times (initial play + n replays).\n   * @param loopCount - Number of additional replays (0 = infinite, 1 = plays twice, 2 = plays three times, etc.)\n   * @returns Promise that resolves when loopCount has been updated\n   */\n  public async setLoopCount(loopCount: number): Promise<void> {\n    if (!this._created) return;\n\n    await this._sendMessage('setLoopCount', { instanceId: this._id, loopCount });\n    await this._updateDotLottieInstanceState();\n  }\n\n  /**\n   * Recalculates and updates canvas dimensions in the worker thread.\n   * Awaits worker response before resolving. Call when canvas container size changes.\n   * @returns Promise that resolves when resize has completed\n   */\n  public async resize(): Promise<void> {\n    if (!this._created || !this._canvas) return;\n\n    const { height, width } = getCanvasSize(\n      this._canvas,\n      this._dotLottieInstanceState.renderConfig.devicePixelRatio || getDefaultDPR(),\n    );\n\n    await this._sendMessage('resize', { height, instanceId: this._id, width });\n    await this._updateDotLottieInstanceState();\n  }\n\n  /**\n   * Cleans up and destroys the player instance in the worker thread, releasing resources.\n   * Awaits worker response before resolving. Stops playback and removes event listeners.\n   * @returns Promise that resolves when cleanup has completed\n   */\n  public async destroy(): Promise<void> {\n    if (!this._created) return;\n\n    this._created = false;\n\n    await this._sendMessage('destroy', { instanceId: this._id });\n\n    this._cleanupStateMachineListeners();\n\n    DotLottieWorker._workerManager.unregisterEventHandler(this._id);\n    DotLottieWorker._workerManager.unassignAnimationFromWorker(this._id);\n    this._eventManager.removeAllEventListeners();\n\n    if (IS_BROWSER && this._canvas instanceof HTMLCanvasElement) {\n      OffscreenObserver.unobserve(this._canvas);\n      CanvasResizeObserver.unobserve(this._canvas);\n    }\n  }\n\n  public async freeze(): Promise<void> {\n    if (!this._created) return;\n\n    await this._sendMessage('freeze', { instanceId: this._id });\n    await this._updateDotLottieInstanceState();\n  }\n\n  public async unfreeze(): Promise<void> {\n    if (!this._created) return;\n\n    await this._sendMessage('unfreeze', { instanceId: this._id });\n    await this._updateDotLottieInstanceState();\n  }\n\n  public async setBackgroundColor(backgroundColor: string): Promise<void> {\n    if (!this._created) return;\n\n    await this._sendMessage('setBackgroundColor', { instanceId: this._id, backgroundColor });\n    await this._updateDotLottieInstanceState();\n  }\n\n  public async loadAnimation(animationId: string): Promise<void> {\n    if (!this._created) return;\n\n    await this._sendMessage('loadAnimation', { animationId, instanceId: this._id });\n    await this._updateDotLottieInstanceState();\n  }\n\n  public async setLayout(layout: Layout): Promise<void> {\n    if (!this._created) return;\n\n    await this._sendMessage('setLayout', { instanceId: this._id, layout });\n    await this._updateDotLottieInstanceState();\n  }\n\n  // #region Slots API\n\n  public async setSlots(slots: Record<string, unknown>): Promise<void> {\n    if (!this._created) return;\n\n    await this._sendMessage('setSlots', { instanceId: this._id, slots });\n  }\n\n  public async getSlotIds(): Promise<string[]> {\n    if (!this._created) return [];\n\n    return this._sendMessage('getSlotIds', { instanceId: this._id });\n  }\n\n  public async getSlotType(slotId: string): Promise<SlotType | undefined> {\n    if (!this._created) return undefined;\n\n    return this._sendMessage('getSlotType', { instanceId: this._id, slotId });\n  }\n\n  public async getSlot(slotId: string): Promise<unknown> {\n    if (!this._created) return undefined;\n\n    return this._sendMessage('getSlot', { instanceId: this._id, slotId });\n  }\n\n  public async getSlots(): Promise<Record<string, unknown>> {\n    if (!this._created) return {};\n\n    return this._sendMessage('getSlots', { instanceId: this._id });\n  }\n\n  public async setColorSlot(slotId: string, value: ColorSlotValue): Promise<boolean> {\n    if (!this._created) return false;\n\n    return this._sendMessage('setColorSlot', { instanceId: this._id, slotId, value });\n  }\n\n  public async setScalarSlot(slotId: string, value: ScalarSlotValue): Promise<boolean> {\n    if (!this._created) return false;\n\n    return this._sendMessage('setScalarSlot', { instanceId: this._id, slotId, value });\n  }\n\n  public async setVectorSlot(slotId: string, value: VectorSlotValue): Promise<boolean> {\n    if (!this._created) return false;\n\n    return this._sendMessage('setVectorSlot', { instanceId: this._id, slotId, value });\n  }\n\n  public async setGradientSlot(slotId: string, value: GradientSlotValue, colorStopCount: number): Promise<boolean> {\n    if (!this._created) return false;\n\n    return this._sendMessage('setGradientSlot', { instanceId: this._id, slotId, value, colorStopCount });\n  }\n\n  public async setTextSlot(slotId: string, value: TextSlotValue): Promise<boolean> {\n    if (!this._created) return false;\n\n    return this._sendMessage('setTextSlot', { instanceId: this._id, slotId, value });\n  }\n\n  public async resetSlot(slotId: string): Promise<boolean> {\n    if (!this._created) return false;\n\n    return this._sendMessage('resetSlot', { instanceId: this._id, slotId });\n  }\n\n  public async clearSlot(slotId: string): Promise<boolean> {\n    if (!this._created) return false;\n\n    return this._sendMessage('clearSlot', { instanceId: this._id, slotId });\n  }\n\n  public async resetSlots(): Promise<boolean> {\n    if (!this._created) return false;\n\n    return this._sendMessage('resetSlots', { instanceId: this._id });\n  }\n\n  public async clearSlots(): Promise<boolean> {\n    if (!this._created) return false;\n\n    return this._sendMessage('clearSlots', { instanceId: this._id });\n  }\n\n  // #endregion\n\n  private async _updateDotLottieInstanceState(): Promise<void> {\n    if (!this._created) return;\n\n    const result = await this._sendMessage('getDotLottieInstanceState', { instanceId: this._id });\n\n    this._dotLottieInstanceState = result.state;\n  }\n\n  public markers(): Marker[] {\n    return this._dotLottieInstanceState.markers;\n  }\n\n  public async setMarker(marker: string): Promise<void> {\n    if (!this._created) return;\n\n    await this._sendMessage('setMarker', { instanceId: this._id, marker });\n    await this._updateDotLottieInstanceState();\n  }\n\n  public async setThemeData(themeData: string): Promise<boolean> {\n    if (!this._created) return false;\n\n    const loaded = await this._sendMessage('setThemeData', { instanceId: this._id, themeData });\n\n    await this._updateDotLottieInstanceState();\n\n    return loaded;\n  }\n\n  public async setViewport(x: number, y: number, width: number, height: number): Promise<boolean> {\n    if (!this._created) return false;\n\n    return this._sendMessage('setViewport', { x, y, width, height, instanceId: this._id });\n  }\n\n  public async animationSize(): Promise<{ height: number; width: number }> {\n    if (!this._created) return { height: 0, width: 0 };\n\n    return this._sendMessage('animationSize', { instanceId: this._id });\n  }\n\n  public async setTransform(transform: Transform): Promise<boolean> {\n    if (!this._created) return false;\n\n    return this._sendMessage('setTransform', { instanceId: this._id, transform });\n  }\n\n  public async getTransform(): Promise<Transform | undefined> {\n    if (!this._created) return undefined;\n\n    return this._sendMessage('getTransform', { instanceId: this._id });\n  }\n\n  private async _sendMessage<T extends keyof MethodParamsMap>(\n    method: T,\n    params: MethodParamsMap[T],\n    transfer?: Transferable[],\n  ): Promise<MethodResultMap[T]> {\n    const rpcRequest: RpcRequest<T> = {\n      id: `dotlottie-request-${generateUniqueId()}`,\n      method,\n      params,\n    };\n\n    return new Promise((resolve, reject) => {\n      DotLottieWorker._workerManager.registerRpcReplyHandler(rpcRequest.id, (event: MessageEvent) => {\n        DotLottieWorker._workerManager.unregisterRpcReplyHandler(rpcRequest.id);\n\n        const rpcResponse: RpcResponse<T> = event.data;\n\n        if (rpcResponse.error) {\n          reject(new Error(`Failed to execute method ${method}: ${rpcResponse.error}`));\n        } else {\n          resolve(rpcResponse.result);\n        }\n      });\n\n      this._worker.postMessage(rpcRequest, transfer || []);\n    });\n  }\n\n  public addEventListener<T extends EventType>(type: T, listener: EventListener<T>): void {\n    this._eventManager.addEventListener(type, listener);\n  }\n\n  public removeEventListener<T extends EventType>(type: T, listener?: EventListener<T>): void {\n    this._eventManager.removeEventListener(type, listener);\n  }\n\n  public static setWasmUrl(url: string): void {\n    DotLottieWorker._wasmUrl = url;\n  }\n\n  /**\n   * @experimental\n   *\n   * Register a custom font for use in animations in worker contexts\n   * @param fontName - The name of the font to register\n   * @param fontSource - Either a URL string to fetch the font, or ArrayBuffer/Uint8Array of font data\n   * @returns Promise<boolean> - true if registration message was sent successfully\n   */\n  public static async registerFont(fontName: string, fontSource: string | ArrayBuffer | Uint8Array): Promise<boolean> {\n    try {\n      const id = generateUniqueId();\n\n      DotLottieWorker._workerManager.broadcastMessage({\n        id,\n        method: 'registerFont',\n        params: {\n          fontName,\n          fontSource,\n        },\n      });\n\n      // Note: we can't easily wait for responses from all workers in a broadcast,\n      // so we return true if the broadcast was sent successfully\n      return true;\n    } catch (error) {\n      console.error(`Error broadcasting registerFont for \"${fontName}\":`, error);\n\n      return false;\n    }\n  }\n\n  /**\n   * @experimental\n   * Load a state machine by ID\n   * @param stateMachineId - The ID of the state machine to load\n   * @returns true if the state machine was loaded successfully\n   */\n  public async stateMachineLoad(stateMachineId: string): Promise<boolean> {\n    if (!this._created) return false;\n\n    const result = await this._sendMessage('stateMachineLoad', { instanceId: this._id, stateMachineId });\n\n    await this._updateDotLottieInstanceState();\n\n    return result;\n  }\n\n  /**\n   * @experimental\n   * Load a state machine from data string\n   * @param stateMachineData - The state machine data as a string\n   * @returns true if the state machine was loaded successfully\n   */\n  public async stateMachineLoadData(stateMachineData: string): Promise<boolean> {\n    if (!this._created) return false;\n\n    const result = await this._sendMessage('stateMachineLoadData', { instanceId: this._id, stateMachineData });\n\n    await this._updateDotLottieInstanceState();\n\n    return result;\n  }\n\n  /**\n   * @experimental\n   * Start the state machine\n   * @returns true if the state machine was started successfully\n   */\n  public async stateMachineStart(): Promise<boolean> {\n    if (!this._created) return false;\n\n    const started = await this._sendMessage('stateMachineStart', { instanceId: this._id });\n\n    if (started) {\n      this._setupStateMachineListeners();\n      await this._updateDotLottieInstanceState();\n    }\n\n    return started;\n  }\n\n  /**\n   * @experimental\n   * Stop the state machine\n   * @returns true if the state machine was stopped successfully\n   */\n  public async stateMachineStop(): Promise<boolean> {\n    if (!this._created) return false;\n\n    this._cleanupStateMachineListeners();\n\n    return this._sendMessage('stateMachineStop', { instanceId: this._id });\n  }\n\n  /**\n   * @experimental\n   * Set a numeric input value for the state machine\n   * @param name - The name of the numeric input\n   * @param value - The numeric value to set\n   * @returns true if the input was set successfully\n   */\n  public async stateMachineSetNumericInput(name: string, value: number): Promise<boolean> {\n    if (!this._created) return false;\n\n    return this._sendMessage('stateMachineSetNumericInput', { instanceId: this._id, name, value });\n  }\n\n  /**\n   * @experimental\n   * Set a boolean input value for the state machine\n   * @param name - The name of the boolean input\n   * @param value - The boolean value to set\n   * @returns true if the input was set successfully\n   */\n  public async stateMachineSetBooleanInput(name: string, value: boolean): Promise<boolean> {\n    if (!this._created) return false;\n\n    return this._sendMessage('stateMachineSetBooleanInput', { instanceId: this._id, name, value });\n  }\n\n  /**\n   * @experimental\n   * Set the state machine config\n   * @param config - The state machine config\n   */\n  public async stateMachineSetConfig(config: StateMachineConfig | null): Promise<void> {\n    if (!this._created) return;\n\n    this._sendMessage('stateMachineSetConfig', { instanceId: this._id, config });\n  }\n\n  /**\n   * @experimental\n   * Set a string input value for the state machine\n   * @param name - The name of the string input\n   * @param value - The string value to set\n   * @returns true if the input was set successfully\n   */\n  public async stateMachineSetStringInput(name: string, value: string): Promise<boolean> {\n    if (!this._created) return false;\n\n    return this._sendMessage('stateMachineSetStringInput', { instanceId: this._id, name, value });\n  }\n\n  /**\n   * @experimental\n   * Get a numeric input value from the state machine\n   * @param name - The name of the numeric input\n   * @returns The numeric value or undefined if not found\n   */\n  public async stateMachineGetNumericInput(name: string): Promise<number | undefined> {\n    if (!this._created) return undefined;\n\n    return this._sendMessage('stateMachineGetNumericInput', { instanceId: this._id, name });\n  }\n\n  /**\n   * @experimental\n   * Get a boolean input value from the state machine\n   * @param name - The name of the boolean input\n   * @returns The boolean value or undefined if not found\n   */\n  public async stateMachineGetBooleanInput(name: string): Promise<boolean | undefined> {\n    if (!this._created) return undefined;\n\n    return this._sendMessage('stateMachineGetBooleanInput', { instanceId: this._id, name });\n  }\n\n  /**\n   * @experimental\n   * Get a string input value from the state machine\n   * @param name - The name of the string input\n   * @returns The string value or undefined if not found\n   */\n  public async stateMachineGetStringInput(name: string): Promise<string | undefined> {\n    if (!this._created) return undefined;\n\n    return this._sendMessage('stateMachineGetStringInput', { instanceId: this._id, name });\n  }\n\n  /**\n   * @experimental\n   * Get all inputs\n   * @returns All input keys, followed by their type\n   */\n  public async stateMachineGetInputs(): Promise<string[] | undefined> {\n    if (!this._created) return undefined;\n\n    return this._sendMessage('stateMachineGetInputs', { instanceId: this._id });\n  }\n\n  /**\n   * @experimental\n   * Fire an event in the state machine\n   * @param name - The name of the event to fire\n   */\n  public async stateMachineFireEvent(name: string): Promise<void> {\n    if (!this._created) return;\n\n    this._sendMessage('stateMachineFireEvent', { instanceId: this._id, name });\n  }\n\n  /**\n   * @experimental\n   * Get the current status of the state machine\n   * @returns The current status of the state machine as a string\n   */\n  public async stateMachineGetStatus(): Promise<string> {\n    if (!this._created) return '';\n\n    return this._sendMessage('stateMachineGetStatus', { instanceId: this._id });\n  }\n\n  /**\n   * @experimental\n   * Get the current state of the state machine\n   * @returns The current state of the state machine as a string\n   */\n  public async stateMachineGetCurrentState(): Promise<string> {\n    if (!this._created) return '';\n\n    return this._sendMessage('stateMachineGetCurrentState', { instanceId: this._id });\n  }\n\n  /**\n   * @experimental\n   * Get the active state machine ID\n   * @returns The active state machine ID as a string\n   */\n  public async stateMachineGetActiveId(): Promise<string> {\n    if (!this._created) return '';\n\n    return this._sendMessage('stateMachineGetActiveId', { instanceId: this._id });\n  }\n\n  /**\n   * @experimental\n   * Override the current state of the state machine\n   * @param state - The state to override to\n   * @param immediate - Whether to immediately transition to the state\n   * @returns true if the state override was successful\n   */\n  public async stateMachineOverrideState(state: string, immediate: boolean = false): Promise<boolean> {\n    if (!this._created) return false;\n\n    return this._sendMessage('stateMachineOverrideState', { instanceId: this._id, state, immediate });\n  }\n\n  /**\n   * @experimental\n   * Get a specific state machine by ID\n   * @param stateMachineId - The ID of the state machine to get\n   * @returns The state machine data as a string\n   */\n  public async stateMachineGet(stateMachineId: string): Promise<string> {\n    if (!this._created) return '';\n\n    return this._sendMessage('stateMachineGet', { instanceId: this._id, stateMachineId });\n  }\n\n  /**\n   * @experimental\n   * Get the list of state machine listeners\n   * @returns Array of listener names\n   */\n  public async stateMachineGetListeners(): Promise<string[]> {\n    if (!this._created) return [];\n\n    return this._sendMessage('stateMachineGetListeners', { instanceId: this._id });\n  }\n\n  /**\n   * @experimental\n   * Post a click event to the state machine\n   * @param x - The x coordinate of the click\n   * @param y - The y coordinate of the click\n   * @returns The event result or undefined\n   */\n  public async stateMachinePostClickEvent(x: number, y: number): Promise<void> {\n    if (!this._created) return undefined;\n\n    return this._sendMessage('stateMachinePostClickEvent', { instanceId: this._id, x, y });\n  }\n\n  /**\n   * @experimental\n   * Post a pointer up event to the state machine\n   * @param x - The x coordinate of the pointer\n   * @param y - The y coordinate of the pointer\n   * @returns The event result or undefined\n   */\n  public async stateMachinePostPointerUpEvent(x: number, y: number): Promise<void> {\n    if (!this._created) return undefined;\n\n    return this._sendMessage('stateMachinePostPointerUpEvent', { instanceId: this._id, x, y });\n  }\n\n  /**\n   * @experimental\n   * Post a pointer down event to the state machine\n   * @param x - The x coordinate of the pointer\n   * @param y - The y coordinate of the pointer\n   * @returns The event result or undefined\n   */\n  public async stateMachinePostPointerDownEvent(x: number, y: number): Promise<void> {\n    if (!this._created) return undefined;\n\n    return this._sendMessage('stateMachinePostPointerDownEvent', { instanceId: this._id, x, y });\n  }\n\n  /**\n   * @experimental\n   * Post a pointer move event to the state machine\n   * @param x - The x coordinate of the pointer\n   * @param y - The y coordinate of the pointer\n   * @returns The event result or undefined\n   */\n  public async stateMachinePostPointerMoveEvent(x: number, y: number): Promise<void> {\n    if (!this._created) return undefined;\n\n    return this._sendMessage('stateMachinePostPointerMoveEvent', { instanceId: this._id, x, y });\n  }\n\n  /**\n   * @experimental\n   * Post a pointer enter event to the state machine\n   * @param x - The x coordinate of the pointer\n   * @param y - The y coordinate of the pointer\n   * @returns The event result or undefined\n   */\n  public async stateMachinePostPointerEnterEvent(x: number, y: number): Promise<void> {\n    if (!this._created) return undefined;\n\n    return this._sendMessage('stateMachinePostPointerEnterEvent', { instanceId: this._id, x, y });\n  }\n\n  /**\n   * @experimental\n   * Post a pointer exit event to the state machine\n   * @param x - The x coordinate of the pointer\n   * @param y - The y coordinate of the pointer\n   * @returns The event result or undefined\n   */\n  public async stateMachinePostPointerExitEvent(x: number, y: number): Promise<void> {\n    if (!this._created) return undefined;\n\n    return this._sendMessage('stateMachinePostPointerExitEvent', { instanceId: this._id, x, y });\n  }\n\n  private _onClick(event: MouseEvent): void {\n    const position = getPointerPosition(event);\n\n    if (position) {\n      this._sendMessage('stateMachinePostClickEvent', { instanceId: this._id, x: position.x, y: position.y });\n    }\n  }\n\n  private _onPointerUp(event: PointerEvent): void {\n    const position = getPointerPosition(event);\n\n    if (position) {\n      this._sendMessage('stateMachinePostPointerUpEvent', { instanceId: this._id, x: position.x, y: position.y });\n    }\n  }\n\n  private _onPointerDown(event: PointerEvent): void {\n    const position = getPointerPosition(event);\n\n    if (position) {\n      this._sendMessage('stateMachinePostPointerDownEvent', { instanceId: this._id, x: position.x, y: position.y });\n    }\n  }\n\n  private _onPointerMove(event: PointerEvent): void {\n    const position = getPointerPosition(event);\n\n    if (position) {\n      this._sendMessage('stateMachinePostPointerMoveEvent', { instanceId: this._id, x: position.x, y: position.y });\n    }\n  }\n\n  private _onPointerEnter(event: PointerEvent): void {\n    const position = getPointerPosition(event);\n\n    if (position) {\n      this._sendMessage('stateMachinePostPointerEnterEvent', { instanceId: this._id, x: position.x, y: position.y });\n    }\n  }\n\n  private _onPointerLeave(event: PointerEvent): void {\n    const position = getPointerPosition(event);\n\n    if (position) {\n      this._sendMessage('stateMachinePostPointerExitEvent', { instanceId: this._id, x: position.x, y: position.y });\n    }\n  }\n\n  private async _setupStateMachineListeners(): Promise<void> {\n    if (IS_BROWSER && this._canvas instanceof HTMLCanvasElement && this.isLoaded) {\n      const listeners = await this._sendMessage('stateMachineGetListeners', { instanceId: this._id });\n\n      if (listeners.length === 0) {\n        return;\n      }\n\n      // Clean up any existing listeners first\n      this._cleanupStateMachineListeners();\n\n      if (listeners.includes('Click')) {\n        this._boundOnClick = this._onClick.bind(this);\n        this._canvas.addEventListener('click', this._boundOnClick);\n      }\n\n      if (listeners.includes('PointerUp')) {\n        this._boundOnPointerUp = this._onPointerUp.bind(this);\n        this._canvas.addEventListener('pointerup', this._boundOnPointerUp);\n      }\n\n      if (listeners.includes('PointerDown')) {\n        this._boundOnPointerDown = this._onPointerDown.bind(this);\n        this._canvas.addEventListener('pointerdown', this._boundOnPointerDown);\n      }\n\n      if (listeners.includes('PointerMove')) {\n        this._boundOnPointerMove = this._onPointerMove.bind(this);\n        this._canvas.addEventListener('pointermove', this._boundOnPointerMove);\n      }\n\n      if (listeners.includes('PointerEnter')) {\n        this._boundOnPointerEnter = this._onPointerEnter.bind(this);\n        this._canvas.addEventListener('pointerenter', this._boundOnPointerEnter);\n      }\n\n      if (listeners.includes('PointerExit')) {\n        this._boundOnPointerLeave = this._onPointerLeave.bind(this);\n        this._canvas.addEventListener('pointerleave', this._boundOnPointerLeave);\n      }\n    }\n  }\n\n  private _cleanupStateMachineListeners(): void {\n    if (IS_BROWSER && this._canvas instanceof HTMLCanvasElement) {\n      if (this._boundOnClick) {\n        this._canvas.removeEventListener('click', this._boundOnClick);\n        this._boundOnClick = null;\n      }\n      if (this._boundOnPointerUp) {\n        this._canvas.removeEventListener('pointerup', this._boundOnPointerUp);\n        this._boundOnPointerUp = null;\n      }\n      if (this._boundOnPointerDown) {\n        this._canvas.removeEventListener('pointerdown', this._boundOnPointerDown);\n        this._boundOnPointerDown = null;\n      }\n      if (this._boundOnPointerMove) {\n        this._canvas.removeEventListener('pointermove', this._boundOnPointerMove);\n        this._boundOnPointerMove = null;\n      }\n      if (this._boundOnPointerEnter) {\n        this._canvas.removeEventListener('pointerenter', this._boundOnPointerEnter);\n        this._boundOnPointerEnter = null;\n      }\n      if (this._boundOnPointerLeave) {\n        this._canvas.removeEventListener('pointerleave', this._boundOnPointerLeave);\n        this._boundOnPointerLeave = null;\n      }\n    }\n  }\n}\n"]}