Base64 encode image

Updated on

To Base64 encode an image, here are the detailed steps you can follow, whether you’re using a web tool, a programming language, or the command line. This process converts the binary data of an image into an ASCII string format, making it suitable for embedding directly into code or documents.

First, identify your image source: Is it a local file on your computer, or is it an image accessible via a URL? This will dictate your approach.

Using a Web Tool (Like the one above):

  1. Choose your input:
    • Upload File: Click “Choose File” or “Browse” and select the image file from your computer (e.g., a .png, .jpg, or .gif file).
    • Enter URL: Paste the direct URL of an image into the “Image URL” field.
  2. Initiate Encoding: Click the “Encode Image” button.
  3. Retrieve Output: The Base64 encoded string will appear in the “Base64 Encoded String” text area. You’ll also see a preview of the image.
  4. Copy or Download: Use the “Copy to Clipboard” button to easily grab the string, or “Download Text File” to save it.

Using Programming Languages (for Developers):

  • Base64 encode image Python:

    0.0
    0.0 out of 5 stars (based on 0 reviews)
    Excellent0%
    Very good0%
    Average0%
    Poor0%
    Terrible0%

    There are no reviews yet. Be the first one to write one.

    Amazon.com: Check Amazon for Base64 encode image
    Latest Discussions & Reviews:
    1. Import the base64 module.
    2. Open the image file in binary read mode ('rb').
    3. Read the file’s content.
    4. Use base64.b64encode() to encode the bytes.
    5. Decode the result to a UTF-8 string and prepend the data:image/jpeg;base64, or appropriate MIME type prefix.
  • Base64 encode image JavaScript (Client-Side for browsers):

    1. Use the FileReader API.
    2. Create a FileReader object.
    3. Call reader.readAsDataURL(fileObject).
    4. Access the result via reader.result in the onloadend event. This will give you the full data: URL.
  • Base64 encode image PowerShell:

    1. Read the image file’s bytes using [System.IO.File]::ReadAllBytes().
    2. Convert these bytes to a Base64 string using [System.Convert]::ToBase64String().
    3. Prepend the appropriate data URI prefix.
  • Base64 encode image PHP:

    1. Use file_get_contents() to read the image file.
    2. Apply base64_encode() to the file content.
    3. Prepend the data URI prefix.

Using Command Line (for Quick Encoding):

  • Base64 encode image command line (Linux/macOS):

    base64 image.png
    

    (You’ll need to manually add the data:image/png;base64, prefix).

  • Base64 encode image example usage in HTML:
    You can embed the string directly into an <img> tag’s src attribute or as a background-image in CSS.

Remember, the goal is to transform binary image data into a text format that can be easily transported or embedded, often for small images to reduce HTTP requests or for dynamic content generation.

Understanding Base64 Encoding for Images

Base64 encoding is a method of representing binary data (like images, audio, or video files) in an ASCII string format. This conversion makes it possible to transmit data over mediums that are designed to handle text, such as email, XML, or JSON, without corruption. When we talk about “Base64 encode image,” we’re fundamentally discussing how to take the raw bytes of an image file and convert them into a long string of characters. This process increases the data size by approximately 33% but offers significant benefits in certain scenarios. It’s not encryption, so the data remains readable by anyone who decodes it. The standard uses 64 different characters (A-Z, a-z, 0-9, +, /) and the padding character (=) to represent binary data.

Why Base64 Encode Images?

The primary reasons for Base64 encoding images revolve around embedding and reducing HTTP requests. By embedding images directly into HTML, CSS, or JavaScript, you eliminate the need for the browser to make a separate HTTP request to fetch that image file from the server.

  • Reduced HTTP Requests: For small images, like icons, logos, or tiny sprites, embedding them via Base64 can significantly decrease the number of individual network requests a browser needs to make to load a page. A typical webpage can have dozens of images, and each one usually requires a separate request. For example, a website with 15 small icons, if each is encoded, could reduce requests by 15. While a single large image benefits less from this, a multitude of small ones can see notable performance gains, particularly on HTTP/1.x connections.
  • Offline Access & Portability: Base64 encoded images can be embedded directly into single-file HTML documents, email signatures, or PDF files. This makes the content self-contained and easily portable, ensuring the images display correctly even if the external image files are missing or the user is offline. Consider a generated report that needs to be self-sufficient; Base64 encoding helps achieve this.
  • Dynamic Content Generation: When generating HTML or CSS dynamically on the server-side, it’s often simpler to insert a Base64 string directly rather than managing separate image files and their URLs. This is particularly useful in templating engines or when images are sourced from a database.
  • CSS and JavaScript Embedding: Images can be embedded directly into CSS files using the url() function or manipulated within JavaScript strings, simplifying asset management and deployment, especially for themes or components. For instance, a CSS file for a theme could include all its necessary small icons without needing a separate img folder.
  • Avoiding CORS Issues: When fetching images from different origins (domains), browsers enforce Cross-Origin Resource Sharing (CORS) policies. By encoding an image and embedding it directly, you bypass these security restrictions, as the image data is part of the document itself, not an external resource. This is especially relevant for JavaScript applications that might be loading images from third-party APIs.

The Trade-offs of Base64 Encoding

While the benefits are clear, it’s crucial to understand the downsides before universally applying Base64 encoding to all images.

  • Increased File Size: Base64 encoding inflates the size of the original binary data by approximately 33%. For a 10KB image, it becomes roughly 13.3KB. This means larger download sizes for pages. A study by Google found that for images over 10KB, the overhead of Base64 often outweighs the benefits of reduced HTTP requests.
  • No Caching: Base64 encoded images are part of the HTML, CSS, or JavaScript file they are embedded in. This means they cannot be cached separately by the browser. Every time the parent file is loaded, the Base64 image data is re-downloaded. External image files, conversely, can be cached, leading to faster subsequent page loads. For a frequently visited page, this can negate any initial performance gains.
  • Performance Impact (for Large Images): For larger images, the increased file size of the Base64 string can lead to slower initial page load times. The browser also has to spend CPU cycles decoding the Base64 string back into an image, which can be computationally intensive for many large images, affecting rendering performance, especially on less powerful devices.
  • Code Readability: Embedding long Base64 strings can make your HTML, CSS, or JavaScript files very long and difficult to read and maintain. Imagine scrolling through lines and lines of alphanumeric characters just to find an image.
  • Development Workflow: Managing Base64 images can be less intuitive than managing separate image files. Tools and build processes might be needed to automate the encoding if you’re frequently updating images.

In summary, Base64 encoding for images is a tool best used strategically for small, critical images where the benefits of reduced HTTP requests and easy embedding outweigh the size increase and caching limitations. It’s not a silver bullet for all image optimization.

Base64 Encode Image Python: A Deep Dive

Python is a versatile language, and encoding images to Base64 is straightforward thanks to its built-in base64 module. This is incredibly useful for backend services that need to process images, generate dynamic content, or transmit image data through text-based protocols. Json decode unicode python

Encoding a Local Image File

To Base64 encode an image file stored on your local system, you’ll need to read its contents as binary data and then apply the Base64 encoding.

import base64
import os

def encode_image_to_base64(image_path):
    """
    Encodes a local image file to a Base64 string with data URI prefix.

    Args:
        image_path (str): The full path to the image file.

    Returns:
        str: The Base64 encoded string with data URI prefix, or None if an error occurs.
    """
    if not os.path.exists(image_path):
        print(f"Error: Image file not found at '{image_path}'")
        return None

    try:
        # Determine MIME type based on file extension
        # This is a basic approach; for robust MIME type detection,
        # you might use the 'mimetypes' module or a third-party library.
        extension = os.path.splitext(image_path)[1].lower()
        if extension == '.png':
            mime_type = 'image/png'
        elif extension == '.jpg' or extension == '.jpeg':
            mime_type = 'image/jpeg'
        elif extension == '.gif':
            mime_type = 'image/gif'
        elif extension == '.svg':
            mime_type = 'image/svg+xml'
        else:
            print(f"Warning: Unknown image type for extension '{extension}', defaulting to application/octet-stream.")
            mime_type = 'application/octet-stream' # Fallback

        with open(image_path, "rb") as image_file:
            # Read the binary data
            binary_data = image_file.read()
            # Encode the binary data to Base64
            encoded_string = base64.b64encode(binary_data).decode('utf-8')
            # Prepend the data URI prefix
            data_uri = f"data:{mime_type};base64,{encoded_string}"
            return data_uri
    except IOError as e:
        print(f"Error reading or processing file: {e}")
        return None
    except Exception as e:
        print(f"An unexpected error occurred: {e}")
        return None

# Example Usage:
# Make sure you have an image file named 'example.png' in the same directory
# or provide a full path.
image_file_path = "example.png" # Replace with your image file
encoded_image = encode_image_to_base64(image_file_path)

if encoded_image:
    print("Base64 Encoded Image (first 100 chars):")
    print(encoded_image[:100] + "..." if len(encoded_image) > 100 else encoded_image)

    # You can now use this string in HTML, CSS, etc.
    # For instance, saving it to an HTML file:
    html_content = f"""
    <!DOCTYPE html>
    <html>
    <head><title>Base64 Image Example</title></head>
    <body>
        <h1>Encoded Image Display</h1>
        <img src="{encoded_image}" alt="Embedded Image" style="max-width:300px; border:1px solid #ccc;">
        <p>This image is embedded directly into the HTML using a Base64 data URI.</p>
    </body>
    </html>
    """
    with open("output.html", "w") as f:
        f.write(html_content)
    print("\nHTML file 'output.html' created with the embedded image.")

Explanation:

  • open(image_path, "rb"): Opens the file in “read binary” mode. This is crucial as image data is binary, not text.
  • image_file.read(): Reads the entire content of the image file as a bytes object.
  • base64.b64encode(binary_data): Performs the actual Base64 encoding. It returns a bytes object.
  • .decode('utf-8'): Converts the bytes object returned by b64encode into a UTF-8 string, which is what’s typically required for embedding.
  • f"data:{mime_type};base64,{encoded_string}": This constructs the Data URI scheme. The mime_type (e.g., image/png, image/jpeg) tells the browser what kind of data follows, making it render correctly.

Encoding an Image from a URL (using requests)

Encoding an image from a URL involves fetching the image data first. The requests library is excellent for this.

import base64
import requests
from io import BytesIO # To handle binary data in memory
import mimetypes # For more robust MIME type detection

def encode_image_from_url_to_base64(image_url):
    """
    Fetches an image from a URL and encodes it to a Base64 string with data URI prefix.

    Args:
        image_url (str): The URL of the image.

    Returns:
        str: The Base64 encoded string with data URI prefix, or None if an error occurs.
    """
    try:
        response = requests.get(image_url, stream=True)
        response.raise_for_status() # Raise an HTTPError for bad responses (4xx or 5xx)

        # Get MIME type from content-type header, or guess from URL
        content_type = response.headers.get('Content-Type')
        if content_type and content_type.startswith('image/'):
            mime_type = content_type
        else:
            # Fallback: guess from URL extension
            guessed_mime = mimetypes.guess_type(image_url)[0]
            if guessed_mime and guessed_mime.startswith('image/'):
                mime_type = guessed_mime
            else:
                print(f"Warning: Could not determine MIME type for URL '{image_url}', defaulting to application/octet-stream.")
                mime_type = 'application/octet-stream'

        # Read the image content into a BytesIO object
        # This prevents loading the entire image into memory at once if it's large,
        # and ensures it's handled as binary data.
        image_data = BytesIO(response.content)
        
        # Read the binary data from BytesIO
        binary_data = image_data.read()

        # Encode the binary data to Base64
        encoded_string = base64.b64encode(binary_data).decode('utf-8')

        # Prepend the data URI prefix
        data_uri = f"data:{mime_type};base64,{encoded_string}"
        return data_uri

    except requests.exceptions.RequestException as e:
        print(f"Error fetching image from URL '{image_url}': {e}")
        return None
    except Exception as e:
        print(f"An unexpected error occurred: {e}")
        return None

# Example Usage:
# Use a publicly accessible image URL.
# Ensure the URL points directly to an image, not an HTML page containing an image.
image_url = "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" 
encoded_image_from_url = encode_image_from_url_to_base64(image_url)

if encoded_image_from_url:
    print("\nBase64 Encoded Image from URL (first 100 chars):")
    print(encoded_image_from_url[:100] + "..." if len(encoded_image_from_url) > 100 else encoded_image_from_url)
    
    # You could similarly embed this into HTML or use it as needed.

Explanation:

  • requests.get(image_url): Fetches the image content from the given URL.
  • response.raise_for_status(): Checks if the request was successful (HTTP status 200).
  • BytesIO(response.content): response.content gives the raw binary content. BytesIO treats this binary data as a file in memory, allowing read() to be called on it.
  • mimetypes.guess_type(image_url): This module helps in guessing the MIME type more robustly based on the URL or content. It returns a tuple, where the first element is the MIME type.

Decoding a Base64 String Back to an Image

The reverse process is just as important. If you have a Base64 encoded image string, you can convert it back into an image file. Csv transpose columns to rows

import base64
import re # For regular expressions to parse data URI
import os

def decode_base64_to_image(base64_string, output_path="decoded_image"):
    """
    Decodes a Base64 string (potentially with data URI prefix) back into an image file.

    Args:
        base64_string (str): The Base64 encoded string, optionally with a data URI prefix.
        output_path (str): The desired path and filename (without extension) for the decoded image.

    Returns:
        str: The path to the saved image file, or None if decoding fails.
    """
    # Check if the string has a data URI prefix and extract components
    data_uri_match = re.match(r"data:(?P<mime>[\w/\-\.+]+);base64,(?P<data>.+)", base64_string)
    
    if data_uri_match:
        mime_type = data_uri_match.group('mime')
        encoded_data = data_uri_match.group('data')
    else:
        # Assume it's just the Base64 string without a prefix, try to guess type
        mime_type = "application/octet-stream" # Default if not specified
        encoded_data = base64_string

    try:
        # Determine file extension from MIME type
        # For more complex MIME types (e.g., image/x-icon), this might need refinement.
        extension_map = {
            "image/png": ".png",
            "image/jpeg": ".jpg",
            "image/gif": ".gif",
            "image/svg+xml": ".svg",
            # Add more as needed
        }
        file_extension = extension_map.get(mime_type, ".bin") # Fallback to .bin for unknown types

        decoded_data = base64.b64decode(encoded_data)

        final_output_path = f"{output_path}{file_extension}"
        with open(final_output_path, "wb") as fh:
            fh.write(decoded_data)
        print(f"Image successfully decoded and saved to '{final_output_path}'")
        return final_output_path
    except base64.binascii.Error as e:
        print(f"Error decoding Base64 string (invalid characters): {e}")
        return None
    except Exception as e:
        print(f"An unexpected error occurred during decoding: {e}")
        return None

# Example Usage of Decoding:
# Let's use the previously encoded image (replace with your actual Base64 string if running separately)
# For this example, let's assume 'encoded_image' holds the full data URI from the first example.
if 'encoded_image' in locals() and encoded_image: # Check if 'encoded_image' variable exists and has value
    decoded_file = decode_base64_to_image(encoded_image, "reconstructed_image")
elif 'encoded_image_from_url' in locals() and encoded_image_from_url:
    decoded_file = decode_base64_to_image(encoded_image_from_url, "reconstructed_url_image")
else:
    print("\nNo encoded image available from previous examples to decode.")
    # Fallback for demonstration if above examples weren't run or didn't produce output
    sample_base64_jpeg = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD//gA7Q1JFQVRPUjogdm4uY29tLnBob3Rvc2hvcC5pY2NzX3Byb2ZpbGUtMTMuMS4wADGYAABoAAANhACAAQnJpZ2h0bmVzcyBDb250cm9sX2NoYW5uZWwuY3VydmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/bAIQAAwICAwICAwIDAwIDAwQDAwIEBQIEBQUEBAQFCAcHBgYGBggNCAkJCgUGBQQQDg8LCAwSDQ0PDw0NDw0PDw0P/8AAEQgAQABAAEBEQA/8AAAwABAAgQBP/EAGAABAAEBAQEBAQAAAAAAAAAAAAACAgMBBAUGBxAREhMKFRYXGSYgKRoJCRoLC0YcLDwhEAAgEDAwICBwkICAYDAAAAAAECAwQFBhEREgcIEwAUITEyQVFhBiJSgaGxcnOTwdFCYnIyQoKjsuJDU2Njg9PUFTWFCD/8QAHAEAAgIDAQEBAAAAAAAAAAAAAAECMQIDBAYFBwAKCQgBAAADAgEBAQEBAAAAAAAAAAAAAAECAwQFBgcRBwgQEhMVFhccEyUnIygpGhscHR8RIgAAgIBBAEEAQMEAQMEAwAAAAAAEQACIQMxQQIFE1FhcYEygTJSobHB0fFCYnKCkqKywxAAEDAwMCBQEDBQMFAQAAAAAAEQACIRAxQVFSYQIFE0KBkaGxwdHh8RFiUoKi0v/xAAcAQACAwEBAQEAAAAAAAAAAAABAgADEQMEBQYABwgAAQMCBgMBAQEBAAAAAAAAAAAAAAECARADBAUGBwgAESExMUFRYXGBkZKRobHB0fEwIAAAEDAgQFBgcRAQAAAAAAAAAAAAABEQACIQMxQQIFI0FhcYGygTJSobHB0f/9oADAMBAAIRAxEAPwD82kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//2Q=="
    print("\nAttempting to decode a sample JPEG Base64 string...")
    decoded_file = decode_base64_to_image(sample_base64_jpeg, "sample_decoded_jpeg")

Explanation:

  • re.match(r"data:(?P<mime>[\w/\-\.+]+);base64,(?P<data>.+)", base64_string): This regular expression is powerful. It attempts to parse the Data URI.
    • data:: Matches the literal “data:”.
    • (?P<mime>[\w/\-\.+]+): This is a named capturing group (?P<mime>) that captures the MIME type (e.g., image/png). [\w/\-\.+]+ matches one or more word characters, slashes, hyphens, periods, or plus signs.
    • ;base64,: Matches the literal “;base64,”.
    • (?P<data>.+): Another named capturing group (?P<data>) that captures the rest of the string, which is the actual Base64 encoded data.
  • base64.b64decode(encoded_data): This is the core function for decoding the Base64 string back into its original binary form. It returns a bytes object.
  • open(final_output_path, "wb"): Opens a new file in “write binary” mode.
  • fh.write(decoded_data): Writes the decoded binary data to the file, reconstructing the image.

These Python examples cover the essential operations for working with Base64 encoded images, providing robust solutions for various scenarios.

Base64 Encode Image PowerShell: Practical Scripting

PowerShell, Microsoft’s cross-platform automation and scripting language, provides native capabilities to Base64 encode and decode data, including images. This is incredibly useful for system administrators, developers working in Windows environments, or anyone needing to automate tasks involving image embedding in scripts or configurations.

Encoding a Local Image File in PowerShell

Encoding a local image file involves reading its byte stream and converting it to a Base64 string.

function Convert-ImageToBase64 {
    param(
        [Parameter(Mandatory=$true)]
        [string]$ImagePath
    )

    if (-not (Test-Path $ImagePath)) {
        Write-Error "Error: Image file not found at '$ImagePath'"
        return $null
    }

    try {
        # Read the image file as a byte array
        $imageBytes = [System.IO.File]::ReadAllBytes($ImagePath)

        # Convert the byte array to a Base64 string
        $base64String = [System.Convert]::ToBase64String($imageBytes)

        # Determine MIME type based on file extension
        # This is a basic approach; for more robust detection, you might
        # need to use third-party tools or a lookup table.
        $extension = [System.IO.Path]::GetExtension($ImagePath).ToLower()
        $mimeType = switch ($extension) {
            ".png"  { "image/png" }
            ".jpg"  { "image/jpeg" }
            ".jpeg" { "image/jpeg" }
            ".gif"  { "image/gif" }
            ".svg"  { "image/svg+xml" }
            default { "application/octet-stream"; Write-Warning "Unknown image type for extension '$extension', defaulting to application/octet-stream." }
        }

        # Prepend the data URI prefix
        $dataUri = "data:$mimeType;base64,$base64String"
        return $dataUri
    }
    catch {
        Write-Error "An error occurred during encoding: $($_.Exception.Message)"
        return $null
    }
}

# Example Usage:
# Make sure you have an image file (e.g., C:\temp\logo.png)
$imageFilePath = "C:\temp\my_image.png" # <--- IMPORTANT: Replace with your actual image path
# Create a dummy image file for demonstration if it doesn't exist
if (-not (Test-Path $imageFilePath)) {
    Write-Host "Creating a dummy image file for demonstration at $imageFilePath..."
    # You would typically have a real image here. This is just for the script to run.
    # For a simple placeholder, you might use a command like:
    # "New-Item -Path $imageFilePath -ItemType File -Value 'Dummy image content'"
    # or download a small image for testing.
    # For a real PNG (minimal):
    $dummyPngBytes = [byte[]](0x89,0x50,0x4E,0x47,0x0D,0x0A,0x1A,0x0A,0x00,0x00,0x00,0x0D,0x49,0x48,0x44,0x52,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x08,0x06,0x00,0x00,0x00,0x1F,0x15,0xC4,0x89,0x00,0x00,0x00,0x0C,0x49,0x44,0x41,0x54,0x78,0xDA,0xED,0xC1,0x01,0x01,0x00,0x00,0x00,0xC2,0xA0,0xF7,0x4F,0x00,0x00,0x00,0x00,0x49,0x45,0x4E,0x44,0xAE,0x42,0x60,0x82)
    [System.IO.File]::WriteAllBytes($imageFilePath, $dummyPngBytes)
    Write-Host "Dummy image created."
}

$encodedResult = Convert-ImageToBase64 -ImagePath $imageFilePath

if ($encodedResult) {
    Write-Host "`nBase64 Encoded Image (first 100 chars):"
    Write-Host ($encodedResult.Substring(0, [System.Math]::Min(100, $encodedResult.Length)) + "..." )
    
    # You can save this to a file or use it in an HTML snippet
    $htmlContent = @"
<!DOCTYPE html>
<html>
<head><title>PowerShell Base64 Image</title></head>
<body>
    <h1>Encoded Image Display via PowerShell</h1>
    <img src="$encodedResult" alt="Embedded Image" style="max-width:300px; border:1px solid #ccc;">
    <p>This image was encoded using PowerShell and embedded in HTML.</p>
</body>
</html>
"@
    $outputPath = "C:\temp\powershell_output.html" # <--- IMPORTANT: Choose an appropriate output path
    $htmlContent | Out-File $outputPath -Encoding UTF8
    Write-Host "`nHTML file '$outputPath' created with the embedded image."
}

Explanation: Random bingo generator

  • [System.IO.File]::ReadAllBytes($ImagePath): This .NET method reads the entire content of the specified file into a byte array. PowerShell seamlessly integrates with .NET classes.
  • [System.Convert]::ToBase64String($imageBytes): Another direct call to a .NET method that converts the byte array into its Base64 string representation.
  • [System.IO.Path]::GetExtension($ImagePath).ToLower(): Used to extract the file extension to help determine the MIME type.
  • $dataUri = "data:$mimeType;base64,$base64String": Constructs the Data URI, similar to Python, enabling direct embedding.

Decoding a Base64 String Back to an Image in PowerShell

To reverse the process and convert a Base64 string back into an image file, you’ll need to parse the Data URI (if present), decode the Base64 part, and write the resulting bytes to a file.

function Convert-Base64ToImage {
    param(
        [Parameter(Mandatory=$true)]
        [string]$Base64String,

        [Parameter(Mandatory=$true)]
        [string]$OutputPath # Path and filename without extension, e.g., "C:\temp\decoded_image"
    )

    try {
        $mimeType = ""
        $encodedData = ""
        
        # Check if the string has a data URI prefix
        if ($Base64String.StartsWith("data:", [System.StringComparison]::OrdinalIgnoreCase)) {
            # Regex to extract MIME type and Base64 data
            $match = [regex]::Match($Base64String, "^data:(?<mime>[\w/\-\.+]+);base64,(?<data>.+)$")
            if ($match.Success) {
                $mimeType = $match.Groups["mime"].Value
                $encodedData = $match.Groups["data"].Value
            } else {
                Write-Error "Invalid Data URI format."
                return $null
            }
        } else {
            # Assume it's just the Base64 string without a prefix, try to guess type from common extensions
            Write-Warning "No data URI prefix found. Attempting to decode as image, guessing extension from common types."
            $encodedData = $Base64String
            # For a more robust solution, you'd want to pass the expected MIME type as a parameter
            # or try to infer it from the data itself (more complex).
            # For simplicity, we'll assume common types.
            if ($encodedData.StartsWith("/9j/", [System.StringComparison]::Ordinal) -or $encodedData.StartsWith("iVBORw0KGgo", [System.StringComparison]::Ordinal)) {
                # Common starts for JPEG and PNG respectively
                # This is a very rough guess!
                if ($encodedData.StartsWith("/9j/", [System.StringComparison]::Ordinal)) {
                    $mimeType = "image/jpeg"
                } elseif ($encodedData.StartsWith("iVBORw0KGgo", [System.StringComparison]::Ordinal)) {
                    $mimeType = "image/png"
                } else {
                     $mimeType = "application/octet-stream"
                }
            } else {
                 $mimeType = "application/octet-stream"
            }
        }

        # Decode the Base64 string to a byte array
        $decodedBytes = [System.Convert]::FromBase64String($encodedData)

        # Determine file extension from MIME type
        $extensionMap = @{
            "image/png"       = ".png"
            "image/jpeg"      = ".jpg"
            "image/gif"       = ".gif"
            "image/svg+xml"   = ".svg"
            "application/octet-stream" = ".bin" # Fallback
            # Add more MIME types and their extensions as needed
        }
        $fileExtension = $extensionMap.Get_Item($mimeType) # Using .Get_Item instead of [] for clarity

        if (-not $fileExtension) {
            Write-Warning "Could not map MIME type '$mimeType' to a known file extension. Using '.bin'."
            $fileExtension = ".bin"
        }

        $finalOutputPath = "$($OutputPath)$($fileExtension)"

        # Write the byte array to a file
        [System.IO.File]::WriteAllBytes($finalOutputPath, $decodedBytes)

        Write-Host "Image successfully decoded and saved to '$finalOutputPath'"
        return $finalOutputPath
    }
    catch {
        Write-Error "An error occurred during decoding: $($_.Exception.Message)"
        return $null
    }
}

# Example Usage of Decoding:
# Assuming $encodedResult from the previous encoding example is available,
# or you can paste a full Base64 Data URI string directly.
if ($encodedResult) { # Use the result from the encoding function above
    $decodedImagePath = Convert-Base64ToImage -Base64String $encodedResult -OutputPath "C:\temp\reconstructed_powershell_image"
} else {
    Write-Host "`nNo encoded image string available from previous example for decoding."
    Write-Host "Provide a Base64 string directly for decoding demonstration."
    # Example for demonstration if no encoding happened
    $sampleBase64Png = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" # A 1x1 transparent PNG
    $decodedSamplePath = Convert-Base64ToImage -Base64String $sampleBase64Png -OutputPath "C:\temp\sample_decoded_1x1"
}

Explanation:

  • Parsing Data URI: The code first checks if the input string starts with data:. If it does, a regular expression ([regex]::Match) is used to extract the MIME type and the actual Base64 encoded data.
  • [System.Convert]::FromBase64String($encodedData): This crucial .NET method takes the Base64 string and converts it back into a byte array.
  • File Extension Mapping: A hashtable ($extensionMap) is used to map common MIME types to their corresponding file extensions, ensuring the output file has the correct extension.
  • [System.IO.File]::WriteAllBytes($finalOutputPath, $decodedBytes): Writes the decoded byte array to the specified file path, effectively recreating the image file.

PowerShell’s deep integration with the .NET Framework makes these operations both powerful and efficient, suitable for scripting a wide range of image processing and embedding tasks within a Windows ecosystem.

Base64 Encode Image HTML & CSS: Embedding Assets Directly

One of the most common applications for Base64 encoded images is to embed them directly into web documents using HTML and CSS. This technique, leveraging the Data URI scheme, helps reduce HTTP requests and can improve initial page load times for small assets.

Embedding in HTML (<img> Tag)

The <img> tag is the most straightforward way to display an image in HTML. Instead of pointing to an external file using a URL in the src attribute, you can directly embed the Base64 encoded string. Random bingo cards printable

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Base64 Image in HTML</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            text-align: center;
            padding: 20px;
        }
        .image-container {
            border: 1px solid #ddd;
            padding: 15px;
            margin: 20px auto;
            max-width: 400px;
            background-color: #f9f9f9;
            border-radius: 8px;
            box-shadow: 0 2px 5px rgba(0,0,0,0.05);
        }
        img {
            max-width: 100%;
            height: auto;
            display: block;
            margin: 0 auto 15px;
        }
        pre {
            background-color: #e0e0e0;
            padding: 10px;
            border-radius: 5px;
            overflow-x: auto;
            text-align: left;
        }
    </style>
</head>
<body>
    <h1>Embedding Base64 Images Directly in HTML</h1>

    <div class="image-container">
        <h2>Small Icon Example (PNG)</h2>
        <!-- Replace this with an actual Base64 string of a small PNG image -->
        <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAADiklEQVR4nI2VW0wUQRiGX5eBvP8yF2m00TQDg0aM0bCxqSgRxE0iYopHjBsTEwTjoYkmHjQRk3jxS0mS4gPGRGIsiUfFRERFjJEYl1w/bX/W1V32mfnuzswuT8sH/M1c5nFm+c/3f+aL8wX+T5jB74lZ+cOqj4gq1WjM+nK9Vd/uO0eY/u4X8c+1Wf+bWf6fK45c9Z8Z/4iQ+V8e5H4u7v+7v+Q+k/gC7QOAvtH4B8L7Q+AXtB4Bu03gV7QOAD+s8AnrM2fWz9T32f7/4F/x1j+H+uA9jY7F21F/iR9n/9zX3/2n/0XyX9+f/n/fNf8c/2X9eB4k01f3j1R/xJ+xX/0X5D91834D9W/xP+xP/1/nL9aB5C3xP/yTfG/vJ9n/9h+8+93/+/f5j/f22z9aB5C30P/zjvG/vv9p/9y+3+9x/u/f7j/f2yz9aB5C/yf/yL/A/vT9p/93+x+77/fP/6v/j/f2yz9aB5A/yD/xv/w/7w/wB/gD/gf/gv/B/gL/D/gX/B/gH/E/gH/A/gD/gH/A/gH/A/gD/A/gD/A/gD/A/gD/A/gD/A/gD/A/gD/A/gD/A/gH/A/gH/A/gD/A/gD/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/A/gH/

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *