import unittest

import numpy as np

from diffusers import LMSDiscreteScheduler, OnnxStableDiffusionInpaintPipeline
from diffusers.utils.testing_utils import (
    is_onnx_available,
    load_image,
    nightly,
    require_onnxruntime,
    require_torch_gpu,
)

from ..test_pipelines_onnx_common import OnnxPipelineTesterMixin


if is_onnx_available():
       import onnxruntime as ort





class 							lowercase						(						__lowerCamelCase ,				unittest.TestCase ):
   # FIXME: add fast tests
   pass





@nightly
@require_onnxruntime
@require_torch_gpu
class 							lowercase						(						unittest.TestCase ):


   @property
   def __UpperCAmelCase       (   self				:	Any)      ->					Optional[Any]:
         return (
             "CUDAExecutionProvider",
             {
                 "gpu_mem_limit": "15000000000",  # 15GB
                 "arena_extend_strategy": "kSameAsRequested",
             },
         )


   @property
   def __UpperCAmelCase       (   self				:	Dict)      ->					Optional[int]:
         lowercase_     =      ort.SessionOptions()
         lowercase_     =      False
         return options


   def __UpperCAmelCase       (   self				:	Tuple)      ->					Optional[int]:
         lowercase_     =      load_image(
             "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main"
             "/in_paint/overture-creations-5sI6fQgYIuo.png")
         lowercase_     =      load_image(
             "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main"
             "/in_paint/overture-creations-5sI6fQgYIuo_mask.png")
         lowercase_     =      OnnxStableDiffusionInpaintPipeline.from_pretrained(
             "runwayml/stable-diffusion-inpainting"   ,		revision="onnx"   ,		safety_checker=__lowerCAmelCase   ,		feature_extractor=__lowerCAmelCase   ,		provider=self.gpu_provider   ,		sess_options=self.gpu_options   ,		)
         pipe.set_progress_bar_config(disable=__lowerCAmelCase)

         lowercase_     =      "A red cat sitting on a park bench"

         lowercase_     =      np.random.RandomState(0)
         lowercase_     =      pipe(
             prompt=__lowerCAmelCase   ,		image=__lowerCAmelCase   ,		mask_image=__lowerCAmelCase   ,		guidance_scale=7.5   ,		num_inference_steps=10   ,		generator=__lowerCAmelCase   ,		output_type="np"   ,		)
         lowercase_     =      output.images
         lowercase_     =      images[0, 255:258, 255:258, -1]

         assert images.shape == (1, 512, 512, 3)
         lowercase_     =      np.array([0.2514, 0.3007, 0.3517, 0.1790, 0.2382, 0.3167, 0.1944, 0.2273, 0.2464])

         assert np.abs(image_slice.flatten() - expected_slice).max() < 1e-3


   def __UpperCAmelCase       (   self				:	str)      ->					str:
         lowercase_     =      load_image(
             "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main"
             "/in_paint/overture-creations-5sI6fQgYIuo.png")
         lowercase_     =      load_image(
             "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main"
             "/in_paint/overture-creations-5sI6fQgYIuo_mask.png")
         lowercase_     =      LMSDiscreteScheduler.from_pretrained(
             "runwayml/stable-diffusion-inpainting"   ,		subfolder="scheduler"   ,		revision="onnx")
         lowercase_     =      OnnxStableDiffusionInpaintPipeline.from_pretrained(
             "runwayml/stable-diffusion-inpainting"   ,		revision="onnx"   ,		scheduler=__lowerCAmelCase   ,		safety_checker=__lowerCAmelCase   ,		feature_extractor=__lowerCAmelCase   ,		provider=self.gpu_provider   ,		sess_options=self.gpu_options   ,		)
         pipe.set_progress_bar_config(disable=__lowerCAmelCase)

         lowercase_     =      "A red cat sitting on a park bench"

         lowercase_     =      np.random.RandomState(0)
         lowercase_     =      pipe(
             prompt=__lowerCAmelCase   ,		image=__lowerCAmelCase   ,		mask_image=__lowerCAmelCase   ,		guidance_scale=7.5   ,		num_inference_steps=20   ,		generator=__lowerCAmelCase   ,		output_type="np"   ,		)
         lowercase_     =      output.images
         lowercase_     =      images[0, 255:258, 255:258, -1]

         assert images.shape == (1, 512, 512, 3)
         lowercase_     =      np.array([0.0086, 0.0077, 0.0083, 0.0093, 0.0107, 0.0139, 0.0094, 0.0097, 0.0125])

         assert np.abs(image_slice.flatten() - expected_slice).max() < 1e-3







'''simple docstring'''

from __future__ import annotations


def __a (	__lowerCamelCase			:						int | str				)	->							bool:
      '''simple docstring'''


      lowercase_     =      str(__lowerCamelCase				)
      return n == n[::-1]


def __a (	__lowerCamelCase			:						int = 1_000_000				)	->							Optional[int]:
      '''simple docstring'''


      lowercase_     =      0

      for i in range(1 ,		__lowerCamelCase				):
            if is_palindrome(__lowerCamelCase				) and is_palindrome(bin(__lowerCamelCase				).split("b"				)[1]				):
                  total += i
      return total


if __name__ == "__main__":
       print(solution(int(str(input().strip()))))






