






"""simple docstring"""



import unittest

from transformers import MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING, is_vision_available, pipeline
from transformers.testing_utils import (
    is_pipeline_test,
    nested_simplify,
    require_tf,
    require_torch,
    require_vision,
    slow,
)

from .test_pipelines_common import ANY


if is_vision_available():
						from PIL import Image
else:






						class 							__SCREAMING_SNAKE_CASE						:


								@staticmethod
								def 						_UpperCamelCase       (			*snake_case      :						List[Any]			,    **snake_case      :						int							):
														'''simple docstring'''





														pass






@is_pipeline_test
@require_vision
@require_torch
class 							__SCREAMING_SNAKE_CASE						(				unittest.TestCase		):
		snake_case_     =							MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING


		def 						_UpperCamelCase       (			self      :						Optional[int]			,    snake_case      :						Optional[Any]			,    snake_case      :						Optional[int]			,    snake_case      :						int							):
								'''simple docstring'''





								A__						:  Optional[Any]		  =  pipeline(
								    """zero-shot-object-detection"""			,    model="""hf-internal-testing/tiny-random-owlvit-object-detection"""							)

								A__						:  List[Any]		  =  [
								    {
								        """image""": """./tests/fixtures/tests_samples/COCO/000000039769.png""",
								        """candidate_labels""": ["""cat""", """remote""", """couch"""],
								    }
								]
								return object_detector, examples


		def 						_UpperCamelCase       (			self      :						Optional[int]			,    snake_case      :						Union[str, Any]			,    snake_case      :						List[Any]							):
								'''simple docstring'''





								A__						:  str		  =  object_detector(examples[0]			,    threshold=0.0							)

								A__						:  Optional[int]		  =  len(snake_case							)
								self.assertGreater(snake_case			,    0							)
								self.assertEqual(
								    snake_case			,    [
								        {
								            """score""": ANY(snake_case							),
								            """label""": ANY(snake_case							),
								            """box""": {"""xmin""": ANY(snake_case							), """ymin""": ANY(snake_case							), """xmax""": ANY(snake_case							), """ymax""": ANY(snake_case							)},
								        }
								        for i in range(snake_case							)
								    ]			,    )


		@require_tf
		@unittest.skip("""Zero Shot Object Detection not implemented in TF"""							)
		def 						_UpperCamelCase       (			self      :						Any							):
								'''simple docstring'''





								pass


		@require_torch
		def 						_UpperCamelCase       (			self      :						Any							):
								'''simple docstring'''





								A__						:  List[str]		  =  pipeline(
								    """zero-shot-object-detection"""			,    model="""hf-internal-testing/tiny-random-owlvit-object-detection"""							)

								A__						:  Optional[Any]		  =  object_detector(
								    """./tests/fixtures/tests_samples/COCO/000000039769.png"""			,    candidate_labels=["""cat""", """remote""", """couch"""]			,    threshold=0.64			,    )

								self.assertEqual(
								    nested_simplify(snake_case			,    decimals=4							)			,    [
								        {"""score""": 0.7235, """label""": """cat""", """box""": {"""xmin""": 204, """ymin""": 167, """xmax""": 232, """ymax""": 190}},
								        {"""score""": 0.7218, """label""": """remote""", """box""": {"""xmin""": 204, """ymin""": 167, """xmax""": 232, """ymax""": 190}},
								        {"""score""": 0.7184, """label""": """couch""", """box""": {"""xmin""": 204, """ymin""": 167, """xmax""": 232, """ymax""": 190}},
								        {"""score""": 0.6748, """label""": """remote""", """box""": {"""xmin""": 571, """ymin""": 83, """xmax""": 598, """ymax""": 103}},
								        {"""score""": 0.6656, """label""": """cat""", """box""": {"""xmin""": 571, """ymin""": 83, """xmax""": 598, """ymax""": 103}},
								        {"""score""": 0.6614, """label""": """couch""", """box""": {"""xmin""": 571, """ymin""": 83, """xmax""": 598, """ymax""": 103}},
								        {"""score""": 0.6456, """label""": """remote""", """box""": {"""xmin""": 494, """ymin""": 105, """xmax""": 521, """ymax""": 127}},
								        {"""score""": 0.642, """label""": """remote""", """box""": {"""xmin""": 67, """ymin""": 274, """xmax""": 93, """ymax""": 297}},
								        {"""score""": 0.6419, """label""": """cat""", """box""": {"""xmin""": 494, """ymin""": 105, """xmax""": 521, """ymax""": 127}},
								    ]			,    )

								A__						:  Union[str, Any]		  =  object_detector(
								    [
								        {
								            """image""": """./tests/fixtures/tests_samples/COCO/000000039769.png""",
								            """candidate_labels""": ["""cat""", """remote""", """couch"""],
								        }
								    ]			,    threshold=0.64			,    )

								self.assertEqual(
								    nested_simplify(snake_case			,    decimals=4							)			,    [
								        [
								            {"""score""": 0.7235, """label""": """cat""", """box""": {"""xmin""": 204, """ymin""": 167, """xmax""": 232, """ymax""": 190}},
								            {"""score""": 0.7218, """label""": """remote""", """box""": {"""xmin""": 204, """ymin""": 167, """xmax""": 232, """ymax""": 190}},
								            {"""score""": 0.7184, """label""": """couch""", """box""": {"""xmin""": 204, """ymin""": 167, """xmax""": 232, """ymax""": 190}},
								            {"""score""": 0.6748, """label""": """remote""", """box""": {"""xmin""": 571, """ymin""": 83, """xmax""": 598, """ymax""": 103}},
								            {"""score""": 0.6656, """label""": """cat""", """box""": {"""xmin""": 571, """ymin""": 83, """xmax""": 598, """ymax""": 103}},
								            {"""score""": 0.6614, """label""": """couch""", """box""": {"""xmin""": 571, """ymin""": 83, """xmax""": 598, """ymax""": 103}},
								            {"""score""": 0.6456, """label""": """remote""", """box""": {"""xmin""": 494, """ymin""": 105, """xmax""": 521, """ymax""": 127}},
								            {"""score""": 0.642, """label""": """remote""", """box""": {"""xmin""": 67, """ymin""": 274, """xmax""": 93, """ymax""": 297}},
								            {"""score""": 0.6419, """label""": """cat""", """box""": {"""xmin""": 494, """ymin""": 105, """xmax""": 521, """ymax""": 127}},
								        ]
								    ]			,    )


		@require_torch
		@slow
		def 						_UpperCamelCase       (			self      :						Union[str, Any]							):
								'''simple docstring'''





								A__						:  List[str]		  =  pipeline("""zero-shot-object-detection"""							)

								A__						:  Union[str, Any]		  =  object_detector(
								    """http://images.cocodataset.org/val2017/000000039769.jpg"""			,    candidate_labels=["""cat""", """remote""", """couch"""]			,    )
								self.assertEqual(
								    nested_simplify(snake_case			,    decimals=4							)			,    [
								        {"""score""": 0.2868, """label""": """cat""", """box""": {"""xmin""": 324, """ymin""": 20, """xmax""": 640, """ymax""": 373}},
								        {"""score""": 0.277, """label""": """remote""", """box""": {"""xmin""": 40, """ymin""": 72, """xmax""": 177, """ymax""": 115}},
								        {"""score""": 0.2537, """label""": """cat""", """box""": {"""xmin""": 1, """ymin""": 55, """xmax""": 315, """ymax""": 472}},
								        {"""score""": 0.1474, """label""": """remote""", """box""": {"""xmin""": 335, """ymin""": 74, """xmax""": 371, """ymax""": 187}},
								        {"""score""": 0.1208, """label""": """couch""", """box""": {"""xmin""": 4, """ymin""": 0, """xmax""": 642, """ymax""": 476}},
								    ]			,    )

								A__						:  int		  =  object_detector(
								    [
								        {
								            """image""": """http://images.cocodataset.org/val2017/000000039769.jpg""",
								            """candidate_labels""": ["""cat""", """remote""", """couch"""],
								        },
								        {
								            """image""": """http://images.cocodataset.org/val2017/000000039769.jpg""",
								            """candidate_labels""": ["""cat""", """remote""", """couch"""],
								        },
								    ]			,    )
								self.assertEqual(
								    nested_simplify(snake_case			,    decimals=4							)			,    [
								        [
								            {"""score""": 0.2868, """label""": """cat""", """box""": {"""xmin""": 324, """ymin""": 20, """xmax""": 640, """ymax""": 373}},
								            {"""score""": 0.277, """label""": """remote""", """box""": {"""xmin""": 40, """ymin""": 72, """xmax""": 177, """ymax""": 115}},
								            {"""score""": 0.2537, """label""": """cat""", """box""": {"""xmin""": 1, """ymin""": 55, """xmax""": 315, """ymax""": 472}},
								            {"""score""": 0.1474, """label""": """remote""", """box""": {"""xmin""": 335, """ymin""": 74, """xmax""": 371, """ymax""": 187}},
								            {"""score""": 0.1208, """label""": """couch""", """box""": {"""xmin""": 4, """ymin""": 0, """xmax""": 642, """ymax""": 476}},
								        ],
								        [
								            {"""score""": 0.2868, """label""": """cat""", """box""": {"""xmin""": 324, """ymin""": 20, """xmax""": 640, """ymax""": 373}},
								            {"""score""": 0.277, """label""": """remote""", """box""": {"""xmin""": 40, """ymin""": 72, """xmax""": 177, """ymax""": 115}},
								            {"""score""": 0.2537, """label""": """cat""", """box""": {"""xmin""": 1, """ymin""": 55, """xmax""": 315, """ymax""": 472}},
								            {"""score""": 0.1474, """label""": """remote""", """box""": {"""xmin""": 335, """ymin""": 74, """xmax""": 371, """ymax""": 187}},
								            {"""score""": 0.1208, """label""": """couch""", """box""": {"""xmin""": 4, """ymin""": 0, """xmax""": 642, """ymax""": 476}},
								        ],
								    ]			,    )


		@require_tf
		@unittest.skip("""Zero Shot Object Detection not implemented in TF"""							)
		def 						_UpperCamelCase       (			self      :						Optional[Any]							):
								'''simple docstring'''





								pass


		@require_torch
		@slow
		def 						_UpperCamelCase       (			self      :						List[str]							):
								'''simple docstring'''





								A__						:  int		  =  0.2
								A__						:  Tuple		  =  pipeline("""zero-shot-object-detection"""							)

								A__						:  Tuple		  =  object_detector(
								    """http://images.cocodataset.org/val2017/000000039769.jpg"""			,    candidate_labels=["""cat""", """remote""", """couch"""]			,    threshold=snake_case			,    )
								self.assertEqual(
								    nested_simplify(snake_case			,    decimals=4							)			,    [
								        {"""score""": 0.2868, """label""": """cat""", """box""": {"""xmin""": 324, """ymin""": 20, """xmax""": 640, """ymax""": 373}},
								        {"""score""": 0.277, """label""": """remote""", """box""": {"""xmin""": 40, """ymin""": 72, """xmax""": 177, """ymax""": 115}},
								        {"""score""": 0.2537, """label""": """cat""", """box""": {"""xmin""": 1, """ymin""": 55, """xmax""": 315, """ymax""": 472}},
								    ]			,    )


		@require_torch
		@slow
		def 						_UpperCamelCase       (			self      :						Any							):
								'''simple docstring'''





								A__						:  Union[str, Any]		  =  2
								A__						:  Dict		  =  pipeline("""zero-shot-object-detection"""							)

								A__						:  str		  =  object_detector(
								    """http://images.cocodataset.org/val2017/000000039769.jpg"""			,    candidate_labels=["""cat""", """remote""", """couch"""]			,    top_k=snake_case			,    )
								self.assertEqual(
								    nested_simplify(snake_case			,    decimals=4							)			,    [
								        {"""score""": 0.2868, """label""": """cat""", """box""": {"""xmin""": 324, """ymin""": 20, """xmax""": 640, """ymax""": 373}},
								        {"""score""": 0.277, """label""": """remote""", """box""": {"""xmin""": 40, """ymin""": 72, """xmax""": 177, """ymax""": 115}},
								    ]			,    )














"""simple docstring"""



def      _lowerCAmelCase		(							UpperCAmelCase__       :					int = 1_0_0_0      )		->int:
						A__						:  Optional[int]		  =  2**power
						A__						:  Dict		  =  0
						while n:
												A__  ,  A__						:  Tuple		  =  r + n % 1_0, n // 1_0
						return r


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






