

def 	__a     (      A__			:  Any			,  A__			:  List[Any] = False       ):
    if n == 2:
        return True
    if not n % 2 or n < 2:
        return False
    if n > 5 and n % 10 not in (1, 3, 7, 9):  # can quickly check last digit
        return False
    if n > 3317044064679887385961981 and not allow_probable:
        raise ValueError(
            "Warning: upper bound of deterministic test is exceeded. "
            "Pass allow_probable=True to allow probabilistic test. "
            "A return value of True indicates a probable prime."       )
    # array bounds provided by analysis
    SCREAMING_SNAKE_CASE										=   [
        2047,
        1373653,
        25326001,
        3215031751,
        2152302898747,
        3474749660383,
        341550071728321,
        1,
        3825123056546413051,
        1,
        1,
        318665857834031151167461,
        3317044064679887385961981,
    ]

    SCREAMING_SNAKE_CASE										=   [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41]
    for idx, _p in enumerate(SCREAMING_SNAKE_CASE_			,  1       ):
        if n < _p:
            # then we have our last prime to check
            SCREAMING_SNAKE_CASE										=   primes[:idx]
            break
    SCREAMING_SNAKE_CASE							,	SCREAMING_SNAKE_CASE										=   n - 1, 0
    # break up n -1 into a power of 2 (s) and
    # remaining odd component
    # essentially, solve for d * 2 ** s == n - 1
    while d % 2 == 0:
        d //= 2
        s += 1
    for prime in plist:
        SCREAMING_SNAKE_CASE										=   False
        for r in range(SCREAMING_SNAKE_CASE_       ):
            SCREAMING_SNAKE_CASE										=   pow(SCREAMING_SNAKE_CASE_			,  d * 2**r			,  SCREAMING_SNAKE_CASE_       )
            # see article for analysis explanation for m
            if (r == 0 and m == 1) or ((m + 1) % n == 0):
                SCREAMING_SNAKE_CASE										=   True
                # this loop will not determine compositeness
                break
        if pr:
            continue
        # if pr is False, then the above loop never evaluated to true,
        # and the n MUST be composite
        return False
    return True





def 	__a     (      ):
    assert not miller_rabin(561       )
    assert miller_rabin(563       )
    # 2047

    assert not miller_rabin(838201       )
    assert miller_rabin(838207       )
    # 1_373_653

    assert not miller_rabin(17316001       )
    assert miller_rabin(17316017       )
    # 25_326_001

    assert not miller_rabin(3078386641       )
    assert miller_rabin(3078386653       )
    # 3_215_031_751

    assert not miller_rabin(1713045574801       )
    assert miller_rabin(1713045574819       )
    # 2_152_302_898_747

    assert not miller_rabin(2779799728307       )
    assert miller_rabin(2779799728327       )
    # 3_474_749_660_383

    assert not miller_rabin(113850023909441       )
    assert miller_rabin(113850023909527       )
    # 341_550_071_728_321

    assert not miller_rabin(1275041018848804351       )
    assert miller_rabin(1275041018848804391       )
    # 3_825_123_056_546_413_051

    assert not miller_rabin(79666464458507787791867       )
    assert miller_rabin(79666464458507787791951       )
    # 318_665_857_834_031_151_167_461

    assert not miller_rabin(552840677446647897660333       )
    assert miller_rabin(552840677446647897660359       )
    # 3_317_044_064_679_887_385_961_981
    # upper limit for probabilistic test


if __name__ == "__main__":
    test_miller_rabin()





'''simple docstring'''
from argparse import ArgumentParser

from .add_new_model import AddNewModelCommand
from .add_new_model_like import AddNewModelLikeCommand
from .convert import ConvertCommand
from .download import DownloadCommand
from .env import EnvironmentCommand
from .lfs import LfsCommands
from .pt_to_tf import PTtoTFCommand
from .run import RunCommand
from .serving import ServeCommand
from .user import UserCommands





def 			lowerCamelCase(							)		->		int:
			A_									= ArgumentParser('Transformers CLI tool'       ,usage='transformers-cli <command> [<args>]'     )
			A_									= parser.add_subparsers(help='transformers-cli command helpers'     )

			# Register commands
			ConvertCommand.register_subcommand(SCREAMING_SNAKE_CASE_     )
			DownloadCommand.register_subcommand(SCREAMING_SNAKE_CASE_     )
			EnvironmentCommand.register_subcommand(SCREAMING_SNAKE_CASE_     )
			RunCommand.register_subcommand(SCREAMING_SNAKE_CASE_     )
			ServeCommand.register_subcommand(SCREAMING_SNAKE_CASE_     )
			UserCommands.register_subcommand(SCREAMING_SNAKE_CASE_     )
			AddNewModelCommand.register_subcommand(SCREAMING_SNAKE_CASE_     )
			AddNewModelLikeCommand.register_subcommand(SCREAMING_SNAKE_CASE_     )
			LfsCommands.register_subcommand(SCREAMING_SNAKE_CASE_     )
			PTtoTFCommand.register_subcommand(SCREAMING_SNAKE_CASE_     )

			# Let's go
			A_									= parser.parse_args()

			if not hasattr(SCREAMING_SNAKE_CASE_       ,'func'     ):
						parser.print_help()
						exit(1     )

			# Run
			A_									= args.func(SCREAMING_SNAKE_CASE_     )
			service.run()


if __name__ == "__main__":
							main()




