(function (_, kotlin_kotlin) {
  'use strict';
  //region block: imports
  var imul = Math.imul;
  var Long = kotlin_kotlin.$_$.am;
  var protoOf = kotlin_kotlin.$_$.xf;
  var objectCreate = kotlin_kotlin.$_$.vf;
  var objectMeta = kotlin_kotlin.$_$.wf;
  var setMetadataFor = kotlin_kotlin.$_$.yf;
  var toLong = kotlin_kotlin.$_$.ag;
  var VOID = kotlin_kotlin.$_$.g;
  var THROW_CCE = kotlin_kotlin.$_$.hm;
  var classMeta = kotlin_kotlin.$_$.ie;
  //endregion
  //region block: pre-declaration
  setMetadataFor(Companion, 'Companion', objectMeta);
  setMetadataFor(Color, 'Color', classMeta);
  //endregion
  function Color_init_$Init$(colorRGBA, $this) {
    Color.call($this, colorRGBA.shr_9fl3wl_k$(24).and_4spn93_k$(new Long(255, 0)).toInt_1tsl84_k$(), colorRGBA.shr_9fl3wl_k$(16).and_4spn93_k$(new Long(255, 0)).toInt_1tsl84_k$(), colorRGBA.shr_9fl3wl_k$(8).and_4spn93_k$(new Long(255, 0)).toInt_1tsl84_k$(), colorRGBA.shr_9fl3wl_k$(0).and_4spn93_k$(new Long(255, 0)).toInt_1tsl84_k$());
    return $this;
  }
  function Color_init_$Create$(colorRGBA) {
    return Color_init_$Init$(colorRGBA, objectCreate(protoOf(Color)));
  }
  function Companion() {
    Companion_instance = this;
  }
  var Companion_instance;
  function Companion_getInstance() {
    if (Companion_instance == null)
      new Companion();
    return Companion_instance;
  }
  function Color(red, green, blue, alpha) {
    Companion_getInstance();
    this.red_1 = red;
    this.green_1 = green;
    this.blue_1 = blue;
    this.alpha_1 = alpha;
    this.rgba_1 = toLong(this.alpha_1).or_v7fvkl_k$(toLong(this.blue_1).shl_bg8if3_k$(8)).or_v7fvkl_k$(toLong(this.green_1).shl_bg8if3_k$(16)).or_v7fvkl_k$(toLong(this.red_1).shl_bg8if3_k$(24));
    this.argb_1 = toLong(this.blue_1).or_v7fvkl_k$(toLong(this.green_1).shl_bg8if3_k$(8)).or_v7fvkl_k$(toLong(this.red_1).shl_bg8if3_k$(16)).or_v7fvkl_k$(toLong(this.alpha_1).shl_bg8if3_k$(24));
  }
  protoOf(Color).get_red_18ix20_k$ = function () {
    return this.red_1;
  };
  protoOf(Color).get_green_is36qi_k$ = function () {
    return this.green_1;
  };
  protoOf(Color).get_blue_wojj4z_k$ = function () {
    return this.blue_1;
  };
  protoOf(Color).get_alpha_iooth1_k$ = function () {
    return this.alpha_1;
  };
  protoOf(Color).get_rgba_wotmrh_k$ = function () {
    return this.rgba_1;
  };
  protoOf(Color).get_argb_woj09h_k$ = function () {
    return this.argb_1;
  };
  protoOf(Color).component1_7eebsc_k$ = function () {
    return this.red_1;
  };
  protoOf(Color).component2_7eebsb_k$ = function () {
    return this.green_1;
  };
  protoOf(Color).component3_7eebsa_k$ = function () {
    return this.blue_1;
  };
  protoOf(Color).component4_7eebs9_k$ = function () {
    return this.alpha_1;
  };
  protoOf(Color).copy_my5h57_k$ = function (red, green, blue, alpha) {
    return new Color(red, green, blue, alpha);
  };
  protoOf(Color).copy$default_4rym5e_k$ = function (red, green, blue, alpha, $super) {
    red = red === VOID ? this.red_1 : red;
    green = green === VOID ? this.green_1 : green;
    blue = blue === VOID ? this.blue_1 : blue;
    alpha = alpha === VOID ? this.alpha_1 : alpha;
    return $super === VOID ? this.copy_my5h57_k$(red, green, blue, alpha) : $super.copy_my5h57_k$.call(this, red, green, blue, alpha);
  };
  protoOf(Color).toString = function () {
    return 'Color(red=' + this.red_1 + ', green=' + this.green_1 + ', blue=' + this.blue_1 + ', alpha=' + this.alpha_1 + ')';
  };
  protoOf(Color).hashCode = function () {
    var result = this.red_1;
    result = imul(result, 31) + this.green_1 | 0;
    result = imul(result, 31) + this.blue_1 | 0;
    result = imul(result, 31) + this.alpha_1 | 0;
    return result;
  };
  protoOf(Color).equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof Color))
      return false;
    var tmp0_other_with_cast = other instanceof Color ? other : THROW_CCE();
    if (!(this.red_1 === tmp0_other_with_cast.red_1))
      return false;
    if (!(this.green_1 === tmp0_other_with_cast.green_1))
      return false;
    if (!(this.blue_1 === tmp0_other_with_cast.blue_1))
      return false;
    if (!(this.alpha_1 === tmp0_other_with_cast.alpha_1))
      return false;
    return true;
  };
  //region block: exports
  _.$_$ = _.$_$ || {};
  _.$_$.a = Color_init_$Create$;
  //endregion
  return _;
}(module.exports, require('./kotlin-kotlin-stdlib.js')));
