



def 							UpperCAmelCase__		(				_SCREAMING_SNAKE_CASE   :	int     ,				_SCREAMING_SNAKE_CASE   :	int				)->str:
      if a < 0 or b < 0:
            raise ValueError('''the value of both inputs must be positive'''				)

      _lowerCAmelCase 			=  str(bin(_SCREAMING_SNAKE_CASE				)				)[2:]  # remove the leading "0b"
      _lowerCAmelCase 			=  str(bin(_SCREAMING_SNAKE_CASE				)				)[2:]  # remove the leading "0b"

      _lowerCAmelCase 			=  max(len(_SCREAMING_SNAKE_CASE				)     ,				len(_SCREAMING_SNAKE_CASE				)				)

      return "0b" + "".join(
          str(int(char_a == '''1''' and char_b == '''1'''				)				)
          for char_a, char_b in zip(a_binary.zfill(_SCREAMING_SNAKE_CASE				)     ,				b_binary.zfill(_SCREAMING_SNAKE_CASE				)				)				)


if __name__ == "__main__":
    import doctest

    doctest.testmod()




from __future__ import annotations
def 							UpperCAmelCase__		(				_SCREAMING_SNAKE_CASE   :	list				)->list:
      if len(_SCREAMING_SNAKE_CASE				) == 0:
            return []
      _lowerCAmelCase			,   _lowerCAmelCase 			=  min(_SCREAMING_SNAKE_CASE				), max(_SCREAMING_SNAKE_CASE				)
      _lowerCAmelCase 			=  int(max_value - min_value				) + 1
      _lowerCAmelCase 			=  [[] for _ in range(_SCREAMING_SNAKE_CASE				)]

      for i in my_list:
            buckets[int(i - min_value				)].append(_SCREAMING_SNAKE_CASE				)

      return [v for bucket in buckets for v in sorted(_SCREAMING_SNAKE_CASE				)]


if __name__ == "__main__":
    from doctest import testmod

    testmod()
    assert bucket_sort([4, 5, 3, 2, 1]) == [1, 2, 3, 4, 5]
    assert bucket_sort([0, 1, -1_0, 1_5, 2, -2]) == [-1_0, -2, 0, 1, 2, 1_5]