import { forwardRef, useMemo } from 'react';
import { IconProps } from './types';

export const IconAws24 = forwardRef<SVGSVGElement, IconProps>(
    ({ color = 'currentColor', title, ...props }, svgRef) => {
        const titleId = useMemo(
            () =>
                title
                    ? 'title-' + Math.random().toString(36).substr(2, 9)
                    : undefined,
            [title]
        );
        return (
            <svg
                xmlns="http://www.w3.org/2000/svg"
                width={24}
                height={24}
                fill="none"
                viewBox="0 0 24 24"
                aria-hidden={!title}
                ref={svgRef}
                aria-labelledby={titleId}
                {...props}
            >
                {title ? <title id={titleId}>{title}</title> : null}
                <g fill={color}>
                    <path d="M6.895 10.085q.002.434.086.692c.062.172.14.359.249.561a.34.34 0 0 1 .054.18q.002.116-.148.233l-.49.327a.37.37 0 0 1-.202.07q-.117-.002-.234-.11a2.4 2.4 0 0 1-.28-.365 6 6 0 0 1-.241-.46q-.91 1.075-2.288 1.075c-.654 0-1.176-.187-1.557-.56s-.576-.873-.576-1.495c0-.662.234-1.2.708-1.605.475-.404 1.105-.607 1.907-.607.265 0 .537.023.825.062.288.04.584.102.895.172v-.569c0-.591-.125-1.004-.366-1.246q-.372-.359-1.268-.358a3.5 3.5 0 0 0-.84.102 6 6 0 0 0-.841.264 2 2 0 0 1-.273.101.5.5 0 0 1-.124.024q-.165.002-.164-.242V5.95q-.002-.189.055-.273A.6.6 0 0 1 2 5.514q.408-.21.98-.35a4.7 4.7 0 0 1 1.214-.148q1.388 0 2.04.63c.427.42.645 1.06.645 1.916v2.523zm-3.16 1.183q.384 0 .802-.14c.28-.094.529-.265.74-.498.124-.148.217-.312.264-.499.046-.187.078-.412.078-.677v-.327a7 7 0 0 0-.716-.133 6 6 0 0 0-.732-.046c-.521 0-.903.1-1.16.311-.256.21-.381.506-.381.896 0 .366.093.638.288.825.187.195.46.288.817.288m6.25.841c-.14 0-.234-.023-.296-.078-.062-.047-.117-.156-.164-.304L7.697 5.71a1.4 1.4 0 0 1-.07-.312c0-.124.062-.195.186-.195h.763q.222-.001.303.078c.063.047.11.156.156.304l1.308 5.155 1.214-5.155c.039-.156.085-.257.147-.304a.54.54 0 0 1 .312-.078h.622q.22-.001.312.078c.062.047.117.156.148.304l1.23 5.217 1.346-5.217q.07-.234.155-.304a.5.5 0 0 1 .304-.078h.724c.124 0 .194.063.194.195 0 .039-.008.078-.015.125a1 1 0 0 1-.055.194l-1.876 6.02q-.069.232-.163.303a.5.5 0 0 1-.296.078h-.669q-.22.002-.311-.078c-.062-.055-.117-.156-.148-.312l-1.206-5.022-1.199 5.015c-.039.155-.085.257-.148.311-.062.055-.171.078-.311.078zm10 .21a5.2 5.2 0 0 1-1.198-.14c-.39-.093-.693-.195-.895-.311-.125-.07-.21-.148-.242-.218a.6.6 0 0 1-.046-.218v-.398c0-.163.062-.24.179-.24a.4.4 0 0 1 .14.022c.047.016.117.047.194.078q.4.177.857.273c.31.062.614.093.926.093q.737 0 1.136-.257a.84.84 0 0 0 .405-.74.76.76 0 0 0-.21-.544c-.14-.148-.405-.28-.787-.405l-1.128-.35c-.568-.18-.988-.445-1.245-.795a1.86 1.86 0 0 1-.39-1.129q0-.49.21-.864c.14-.25.328-.467.561-.639a2.5 2.5 0 0 1 .81-.405 3.4 3.4 0 0 1 .98-.132c.171 0 .35.008.521.031.18.024.343.055.506.086q.234.057.444.124.21.07.327.14a.7.7 0 0 1 .233.195.42.42 0 0 1 .07.257V6.2q-.002.248-.179.25a.8.8 0 0 1-.295-.094 3.6 3.6 0 0 0-1.495-.304c-.443 0-.793.07-1.035.218s-.365.374-.365.693q0 .329.233.553c.156.148.444.296.856.428l1.105.35c.56.18.965.429 1.207.748q.359.481.358 1.09c0 .335-.07.639-.203.903-.14.265-.327.499-.568.686-.241.194-.53.335-.864.436a3.7 3.7 0 0 1-1.113.163" />
                    <path
                        fillRule="evenodd"
                        d="M21.456 16.103c-2.56 1.892-6.28 2.897-9.48 2.897-4.482 0-8.522-1.658-11.572-4.415-.242-.218-.024-.514.264-.343 3.3 1.916 7.37 3.076 11.58 3.076 2.842 0 5.962-.592 8.834-1.806.428-.195.794.28.374.591"
                        clipRule="evenodd"
                    />
                    <path
                        fillRule="evenodd"
                        d="M22.522 14.889c-.327-.42-2.164-.203-2.996-.101-.25.03-.288-.187-.063-.35 1.463-1.029 3.868-.733 4.148-.39.28.35-.077 2.756-1.447 3.909-.21.179-.413.085-.32-.148.312-.771 1.005-2.508.678-2.92"
                        clipRule="evenodd"
                    />
                </g>
            </svg>
        );
    }
);
