package Client::Client;

use strict;
use warnings;
use Carp;

use lib '/app/tools/common/lib';
use Common::RSDB;
use Common::RSApp;
use Common::Consts;
use Common::Assert;

use constant DB_TABLE => "client";

# private attributes
my @attributes = qw(client_id client_name);

use lib '/app/tools/data_classes/lib';
use Item;
use base 'Item';

# JPK - Creating a set of client id constants.
# --> These may move, or end up in a table, or something.
#     But for now, this ought to be ok.
#
# This block of ids are to be used for beta customers.  We'll recycle these ids
# once the betas have completed.
# These ids are so large because we're claiming the very top end of the int(10) signed ID space.
# JPK - Well, I won't use the _very_ top, just because I find it hard to remember.   But we'll still
# have 2 billion client ids available...
#
use constant kBeta1  => 2000000001;
use constant kBeta2  => 2000000002;
use constant kBeta3  => 2000000003;
use constant kBeta4  => 2000000004;
use constant kBeta5  => 2000000005;
use constant kBeta6  => 2000000006;
use constant kBeta7  => 2000000007;
use constant kBeta8  => 2000000008;
use constant kBeta9  => 2000000009;
use constant kBeta10 => 2000000010;

# Regular ids.
#
use constant kDemo                => 999;
use constant kEpitaph             => 1;
use constant kAlligatorRecords    => 2;
use constant kVirtualLabel        => 3;
use constant kBigFish             => 4;
use constant kSony                => 5;
use constant kLumberjackMordam    => 6;
use constant kKochRecords         => 7;
use constant kKochDistribution    => 8;
use constant kLaugh               => 9;
use constant kDigitalPressure     => 10;
use constant kInstinctRecords     => 11;
use constant kGNPCrescendoRecords => 12;
use constant kVPRecordsDSM        => 13;
use constant kDualtoneMusicGroup  => 14;
use constant kOhBoyRecords        => 15;
use constant kSmithsonian         => 16;
use constant kSunnyside           => 17;
use constant kBeggars             => 18;
use constant kMatador             => 19;
use constant kCurb                => 20;
use constant kWarner              => 21;
use constant kArhoolie            => 22;
use constant kCompass             => 23;
use constant kBigDaddy            => 24;
use constant kPias                => 25;
use constant kHarmonia            => 26;
use constant kRazorTie            => 27;
use constant kTommyBoy            => 28;
use constant kNacional            => 29;
use constant kSheridanSquare      => 30;
use constant kSanctuaryRecords    => 31;
use constant kAcony               => 32;
use constant kFoxMusic            => 33;
use constant kWorldsFair          => 34;
use constant kTouchAndGoRecords   => 35;
use constant kNitroRecords        => 36;
use constant kV2Music             => 37;
use constant kBlindPigRecords     => 38;
use constant kCMG                 => 39;
use constant kGoDigital           => 40;
use constant kAudioBee            => 41;
use constant kIdea                => 42;
use constant kIceRecords          => 43;
use constant kMuzak               => 44;
use constant kFestivalFive        => 45;
use constant kMardiGras           => 46;
use constant kMadacy              => 47;
use constant kLookout             => 48;
use constant kHybrid              => 49;
use constant kLaCupula            => 50;
use constant kNettwerk            => 51;
use constant kNinjaTune           => 52;
use constant kBrunswick           => 53;    ## domain now m2k
use constant kDefinitiveJux       => 54;
use constant kDeliciousVinyl      => 55;

#use constant kMergeRecords        => 56;
use constant kCRCJ            => 57;
use constant kLinus           => 58;
use constant kOnwardAndUpward => 59;
use constant kRSDemo          => 60;
use constant kBarNone         => 61;
use constant kSRGIUK          => 62;
use constant kSustain         => 63;
use constant kSyntax          => 64;

#use constant kPutumayo              => 65; ## we've set them up with a new ID (405)
use constant kDMRecords        => 66;
use constant kDMM              => 67;
use constant kSixDegrees       => 68;
use constant kNativeLanguage   => 69;
use constant kOMRecords        => 70;
use constant kV2Records        => 71;
use constant kSeedDistribution => 72;
use constant kAlphaPup         => 73;
use constant kBlazeTheWorld    => 74;
use constant kCMHRecords       => 75;
use constant kFrontier         => 76;
use constant kMasterwerks      => 77;

#use constant kSunset               => 78; ## no longer a client
use constant kAireSol     => 79;
use constant kAkoya       => 80;
use constant kAntibalas   => 81;
use constant kAntibeMusic => 82;
use constant kBlackRose   => 83;
use constant kBossSounds  => 84;

#use constant kCerebral             => 85; ## split into 2 clients, but later braintoy became cerebral (elsewhere)
use constant kCyclone                  => 86;
use constant kDesiHits                 => 87;
use constant kDownloadTales            => 88;
use constant kErikSimms                => 89;
use constant kHomeStyleCooking         => 90;
use constant kJeremyToback             => 91;
use constant kJetsOverhead             => 92;
use constant kManifest                 => 93;
use constant kMaranathaOLD             => 94;
use constant kMissMabry                => 95;
use constant kModernSky                => 96;
use constant kMusicMind                => 97;
use constant kPhelps                   => 98;
use constant kRDKKombo                 => 99;
use constant kRichFerguson             => 100;
use constant kRunRiot                  => 101;
use constant kSolSelectas              => 102;
use constant kSoundInk                 => 103;
use constant kStoneQuarry              => 104;
use constant kTomRossi                 => 105;
use constant kTheBatterie              => 106;
use constant kTruthAndSoul             => 107;
use constant kTypeTwo                  => 108;
use constant kWolfRayet                => 109;
use constant kWaTunes                  => 110;
use constant kBacciBros                => 111;
use constant kContentManagement        => 112;
use constant kCHPMedia                 => 113;
use constant kTheMilitiaGroup          => 114;
use constant kHopefulTragedy           => 115;
use constant kMBEntertainment          => 116;
use constant kReamp                    => 117;
use constant kElevenSevenMusic         => 118;
use constant kJazzHeads                => 119;
use constant kNewRenaissance           => 120;
use constant kRainman                  => 121;
use constant kCentaur                  => 122;
use constant kWelkMusic                => 123;
use constant kBagPakMusic              => 124;
use constant kRagBaby                  => 125;
use constant kRevolver                 => 126;
use constant kArcMusic                 => 127;
use constant kVineRipe                 => 128;
use constant kTesla                    => 129;
use constant kElevenSevenIntl          => 130;
use constant kAlive                    => 131;
use constant kBomp                     => 132;
use constant kOutlook                  => 133;
use constant kOseao                    => 134;
use constant kDRE                      => 135;
use constant kRusk                     => 136;
use constant kSongCast                 => 137;
use constant kNewWorld                 => 138;
use constant kMussoMusic               => 139;
use constant kFancorps                 => 140;
use constant kDischord                 => 141;
use constant kCrusade                  => 142;
use constant kGoner                    => 143;
use constant kBismeaux                 => 144;
use constant kKufala                   => 145;
use constant kEMG                      => 146;
use constant kCryptogramophone         => 147;
use constant kTeshMedia                => 148;
use constant kDaywind                  => 149;
use constant kBarbes                   => 150;
use constant kQualiton                 => 151;
use constant kBMcDonald                => 152;
use constant kRegoIrish                => 153;
use constant kTheSawDoctors            => 154;
use constant kCherryRedDSM             => 155;
use constant kTompkinsSq               => 156;
use constant kCountdownMedia           => 157;
use constant kDitto                    => 158;
use constant kSPGEntertainment         => 159;
use constant kCerebral                 => 160;    # previously braintoy
use constant kRapALot                  => 161;
use constant kCBSRecords               => 162;
use constant kESPDisk                  => 163;
use constant kFestivaLink              => 164;
use constant kDestra                   => 165;
use constant kSoundenStudios           => 166;
use constant kHudson                   => 167;
use constant kLatinMusic               => 168;
use constant kKillRockStars            => 169;
use constant kPinecastle               => 170;
use constant kOwnedAndOperated         => 171;
use constant kSoundIssue               => 172;
use constant kSuperD                   => 173;
use constant kRebelMix                 => 174;
use constant kInfinity                 => 175;
use constant kJanmar                   => 176;
use constant kWildPalms                => 177;
use constant kIDLA                     => 178;
use constant kNede                     => 179;
use constant kGrapewire                => 180;
use constant kSmogVeil                 => 181;
use constant kMoS                      => 182;
use constant kEGRMedia                 => 183;
use constant kReiner                   => 184;
use constant k604Records               => 185;
use constant kAlmaRecords              => 186;
use constant kAnthemGroup              => 187;
use constant kBorealisRecords          => 188;
use constant kDistortEnt               => 189;
use constant kJustinTime               => 190;
use constant kLastGang                 => 191;
use constant kMarquis                  => 192;
use constant kMintRecords              => 193;
use constant kOrangeRecords            => 194;
use constant kOutsideMusic             => 195;
use constant kRoyaltyRecords           => 196;
use constant kSonicUnyon               => 197;
use constant kTrueNorth                => 198;
use constant kKochCA                   => 199;
use constant k360DGM                   => 200;
use constant kCDAGroup                 => 201;
use constant kRSTest                   => 202;
use constant kLocobop                  => 203;
use constant kAlternativeTentacles     => 204;
use constant kCTD                      => 205;
use constant kCarrotTopRecords         => 206;
use constant kWesternJubilee           => 207;
use constant kLostGold                 => 208;
use constant kMountainApple            => 209;
use constant kMountainAppleDist        => 210;
use constant kTaraMusic                => 211;
use constant kPyper                    => 212;
use constant kBoomtown                 => 213;
use constant kBPA                      => 214;
use constant kCoolPool                 => 215;
use constant kUbiquity                 => 216;
use constant kBSD                      => 217;
use constant kStylus                   => 218;
use constant kSkint                    => 219;
use constant kDome                     => 221;
use constant kMbop                     => 222;
use constant kRel                      => 223;
use constant kNuUrban                  => 225;
use constant kGreentrax                => 226;
use constant kMultiverse               => 227;
use constant kZAudio                   => 228;
use constant kMeerkat                  => 229;
use constant kElectromode              => 231;
use constant kHardtimez                => 233;
use constant kMondo                    => 234;
use constant k4Real                    => 235;
use constant kMusicResponse            => 236;
use constant kAngelAir                 => 237;
use constant kMarketSquare             => 238;
use constant kLabelWorx                => 241;
use constant kTitaniumDigitals         => 243;
use constant kRenaizzance              => 244;
use constant kTaang                    => 245;
use constant kRepublic                 => 246;
use constant kRAF                      => 247;
use constant kAAOMusic                 => 248;
use constant kGroovesmith              => 249;
use constant kGigatone                 => 250;
use constant kLot49                    => 251;
use constant kATO                      => 252;
use constant kLenchMob                 => 253;
use constant kJeepers                  => 254;
use constant kOneCellRecords           => 255;
use constant kBlackledgeMusic          => 256;
use constant kHoweRecords              => 257;
use constant kBamaRags                 => 258;
use constant kCMTest                   => 259;
use constant kPetrol                   => 260;
use constant kHardcoreBeats            => 261;
use constant kLMLMusic                 => 262;
use constant kDancingCat               => 263;
use constant kTwinSisters              => 264;
use constant kCaCao                    => 265;
use constant kSurfDog                  => 266;
use constant kMusicSales               => 267;
use constant kPRARecords               => 268;
use constant kNuRave                   => 269;
use constant kHot                      => 270;
use constant kMetric                   => 272;
use constant kPinnacleProductions      => 273;
use constant kReformRecords            => 274;
use constant kFunMachine               => 275;
use constant kWMGTrial                 => 276;
use constant kYepRoc                   => 277;
use constant kDorado                   => 278;
use constant kDFSB                     => 279;
use constant kMusicallySpeaking        => 280;
use constant kSoulSpazm                => 281;
use constant kMusicKitchen             => 282;
use constant kIndieBLU                 => 283;
use constant kBasinStreetRecords       => 284;
use constant kMoSUS                    => 285;
use constant kDanceToTheRadio          => 286;
use constant kRSDemoUK                 => 287;
use constant kRSTestUK                 => 288;
use constant kMalaco                   => 289;
use constant kFearless                 => 290;
use constant kNYCRecords               => 291;
use constant kEverloving               => 292;
use constant kQuango                   => 293;
use constant kE1                       => 294;
use constant kGDE                      => 295;
use constant kDistort                  => 296;
use constant kPearsonEducation         => 297;
use constant kRevelMusic               => 298;
use constant kMalacoRecords            => 299;
use constant kDittoMusic               => 300;
use constant kProperAmerican           => 301;
use constant kDTMVDemo                 => 302;
use constant kHousePlanet              => 303;
use constant kResonanceRecords         => 304;
use constant kSimonAndSchuster         => 305;
use constant kVPRecords                => 306;
use constant kAwal                     => 307;
use constant kHachette                 => 308;
use constant kStrawberryBird           => 309;
use constant kDTMVTest                 => 310;
use constant kRelativityMusic          => 311;
use constant kFaberAndFaber            => 312;
use constant kFaberFactory             => 313;
use constant kBloomsburyUSA            => 314;
use constant kVPRecordsUK              => 315;
use constant kRandomHouse              => 316;
use constant kHayHouse                 => 317;
use constant kMacmillan                => 318;
use constant kZojakWorldwide           => 319;
use constant kBlackRiver               => 320;
use constant kPenguin                  => 321;
use constant kWorkman                  => 322;
use constant kRandomHouseUK            => 323;
use constant kWiley                    => 324;
use constant kAboveBoard               => 325;
use constant kOpenRoad                 => 326;
use constant kWWNorton                 => 327;
use constant kBloomsburyWW             => 328;
use constant kOxfordUniversityPress    => 329;
use constant kDisneyBooks              => 330;
use constant kDSMDemo                  => 331;
use constant kMomAndPopMusic           => 332;
use constant kNER                      => 333;
use constant kSpiritVoyage             => 334;
use constant kBerrettKoehler           => 335;
use constant kHornblow                 => 336;
use constant kVPRecordsAL              => 337;
use constant kEMI                      => 338;
use constant kMusicounts               => 339;
use constant kLyndhurst                => 340;
use constant kHMDigital                => 341;
use constant kSTHoldings               => 342;
use constant kCherryRed                => 343;
use constant kMemphisIndustries        => 344;
use constant kRoySakumaProductions     => 345;
use constant kRowmanLittlefield        => 346;
use constant kHyperion                 => 347;
use constant kMacmillanAU              => 348;
use constant kAugustCreativeContent    => 349;
use constant kRelapseRecords           => 350;
use constant k21stHapilos              => 351;
use constant kCultRecords              => 352;
use constant kRapALotRecords           => 353;
use constant kCommunityMusicGroup      => 354;
use constant kHachetteUK               => 355;
use constant kMusicRoadRecords         => 356;
use constant kVareseSarabande          => 357;
use constant kUnified                  => 358;
use constant kMacmillanUK              => 359;
use constant kBlackenedRecordings      => 360;
use constant kBloomsburyUS             => 361;
use constant kPandaRecords             => 362;
use constant kFutureClassic            => 363;
use constant kUBL2Music                => 364;
use constant kSagePub                  => 365;
use constant kBonsound                 => 366;
use constant kSwitchMusicGroup         => 367;
use constant kCreateControl            => 368;
use constant kMTheory                  => 369;
use constant kWelkMG                   => 370;
use constant kAlBunettaEstate          => 371;
use constant kTheOrchard               => 372;
use constant kFoolsGold                => 373;
use constant kRSOrchardDemo            => 374;
use constant kRPMMSC                   => 375;
use constant kCarparkRecords           => 376;
use constant kRadikalRecords           => 377;
use constant kEditionRecords           => 378;
use constant kRuco                     => 379;
use constant kPodwallEntertainment     => 380;
use constant kArtBeatz                 => 381;
use constant kAntlerRecords            => 382;
use constant kFODRecords               => 383;
use constant kSailorRecords            => 384;
use constant kWojtekRecords            => 385;
use constant kSmithMusic               => 386;
use constant kJackAndJack              => 387;
use constant kAmyLeeMusic              => 388;
use constant kEOneMusicCanada          => 389;
use constant kNaxos                    => 390;
use constant kAnticon                  => 391;
use constant kBoyceAvenue              => 392;
use constant kSouthernLord             => 393;
use constant kLightInTheAtticRecords   => 394;
use constant kArborsRecords            => 395;
use constant kDomeRecords              => 396;
use constant kPinecastleRecords        => 397;
use constant kTemporaryResidence       => 398;
use constant kMelloMusic               => 399;
use constant kUSAMediaRights           => 400;
use constant k1520Entertainment        => 401;
use constant kOmnianMusicGroup         => 402;
use constant kRedBullRecords           => 403;
use constant kMattel                   => 404;
use constant kPutumayo                 => 405;
use constant kThreeQuarter             => 406;
use constant kMarionLorraine           => 407;
use constant kCosmicTrigger            => 408;
use constant kSilentGiantEntertainment => 409;
use constant kSilentGiantDistribution  => 410;
use constant kAudiogram                => 411;
use constant kMorenaMusic              => 412;
use constant kDeAngelis                => 413;
use constant kGlassnoteRecords         => 414;
use constant kWuMusicGroup             => 415;
use constant kAlientoMusicGroup        => 416;
use constant kGraceHouseMusicGroup     => 417;
use constant kCheskyRecords            => 418;
use constant kBlueElanRecords          => 419;
use constant kForeignFamilyCollective  => 420;
use constant kDragCity                 => 421;
use constant kBigDealMusic             => 422;
use constant kNextRecords              => 423;
use constant kLionBabeLLC              => 424;
use constant kAviKaplanMusic           => 425;
use constant kDarlaRecords             => 426;
use constant kTheInnovativePeople      => 427;
use constant kBrazilDeluxe             => 428;
use constant kExploited                => 429;
use constant kAztecaMusicGroup         => 430;
use constant kCrimsonRoseRecords       => 431;
use constant kPureNoise                => 432;
use constant kEqualVisionRecords       => 433;
use constant kUSAMediaRightsMulti      => 434;
use constant kBroadwayRecords          => 435;
use constant kSundayBest               => 436;
use constant kNewstateEntertainment    => 437;
use constant kRimasEntertainment       => 438;
use constant kCleopatraRecords         => 439;
use constant kMR305                    => 440;
use constant kGrandviewRecordings      => 441;
use constant kLawRecords               => 442;
use constant kJungleRecords            => 443;
use constant kBlack17Media             => 444;
use constant kDogbearRecords           => 445;
use constant kMailboatRecords          => 446;
use constant kBeachGothRecords         => 447;
use constant kCSNRecords               => 448;
use constant kDollyRecords             => 449;
use constant kHancockRecords           => 450;
use constant kInsideRecords            => 451;
use constant kKKRecords                => 452;
use constant kNullRecords              => 453;
use constant kPhenixOpus               => 454;
use constant kVotivMusic               => 455;
use constant kStonesThrowRecords       => 456;
use constant kHitcoRecords             => 457;
use constant kRBFridayInc              => 458;
use constant kGodmodeMusic             => 459;
use constant kAmericanGramaphoneLLC    => 460;
use constant kTheOrchardUK             => 461;
use constant kAtenziaRecords           => 462;
use constant kATTENTIONMEDIAEUROPEAB   => 463;
use constant kDalapop                  => 464;
use constant kDanielEngenProductions   => 465;
use constant kEchoOutCph               => 466;
use constant kFarmenAS                 => 467;
use constant kGrammofonAS              => 468;
use constant kIndisciplinarian         => 469;
use constant kMarkkuMattila            => 470;
use constant kMerionGroupAB            => 471;
use constant kTyrirotMusikk            => 472;
use constant kSomethingBeautiful       => 473;
use constant kLydheim                  => 474;
use constant kTalentMusikkAS           => 475;
use constant kMTGMusic                 => 476;
use constant kLindbergLydAS            => 477;
use constant kPirayaMusic              => 478;
use constant kSamsaraRecords           => 479;
use constant kInciconAS                => 480;
use constant kZone4D                   => 481;
use constant kCrunchyFrog              => 482;
use constant kMassproduktion           => 483;
use constant kLouvaioProductions       => 484;
use constant kTopazMusic               => 485;
use constant kRudeRecords              => 486;
use constant kMergeRecords             => 487;
use constant kKweendisk                => 488;
use constant kSwingkids                => 489;
use constant kKnirckefrittProduksjonAS => 490;
use constant kRedlineRecordingsHB      => 491;
use constant kPsychopathicRecords      => 492;
use constant kMaverickSabre            => 493;
use constant kDiscosGoma               => 494;
use constant kBTS                      => 495;
use constant kNeubauMusic              => 496;
use constant kSpectrophonicRecords     => 497;
use constant kEastBeachRecordsTapes    => 498;
use constant k43NorthBroadway          => 499;
use constant kBattenbergRecordings     => 500;
use constant keOneMusicCanadaUSD       => 501;
use constant kOneMediaIP               => 502;
use constant kMagnusBohman             => 503;
use constant k10KProjects              => 504;
use constant kGRiZ                     => 505;
use constant kZhuMusic                 => 506;
use constant kSeitrackManagement       => 507;
use constant kSeasonofMist             => 508;
use constant kEasyLife                 => 509;
use constant kEasyVirginiaRecords      => 510;
use constant kAlmostReligious          => 511;
use constant kGetLowRecords            => 512;
use constant kBlueEngineRecords        => 513;
use constant kDelmarkRecords           => 514;
use constant kFutureClassicRECLLC      => 515;
use constant kSedaluPublishing         => 516;
use constant kKondzillaFilmes          => 517;
use constant kKondzillaRecords         => 518;
use constant kMetalBlade               => 519;
use constant kSmithMusicCoLtd          => 520;
use constant kBootzillaRecords         => 521;
use constant kRTIndustries             => 522;
use constant kSkynyrdPartners          => 523;
use constant kBadSinRecords            => 524;
use constant kStevenHalpernMusic       => 525;
use constant kKiRecords                => 526;
use constant kDineAloneRecords         => 527;
use constant kZachBrownBand            => 528;
use constant kHearThisMusic            => 529;
use constant kDSmoke                   => 530;
use constant kReachRecords             => 531;
use constant kGotee                    => 532;
use constant kToothAndNail             => 533;
use constant kMaranatha                => 534;
use constant kFairTrade                => 535;
use constant kPCD                      => 536;
use constant kMCMXCVLTD                => 537;
use constant kMachineEntertainmentGroup => 538;
use constant kCALFIBenRector           => 539;
use constant kCALFIJudahandtheLion     => 540;
use constant kCALFIDaughtry            => 541;
use constant kCALFIMatKearney          => 542;
use constant kCALFIBlackRockRecordings => 543;
use constant kCALFIPariahDogs          => 544;
use constant kCALFImmw                 => 545;
use constant kCALFIwoodbros            => 546;
use constant kMCmadeintheshade         => 547;
use constant kZRecords                 => 548;
use constant kTempo                    => 549;
use constant kYoYoUSA                  => 550;
use constant kMusicBrokers             => 551;
use constant kWSFirefly                => 552;
use constant kMCblackclay              => 553;
use constant kFlushRecords             => 554;
use constant kTriblRecords             => 555;
use constant kLoki                     => 556;
use constant kSlumerican               => 557;
use constant kDarkroom                 => 558;
use constant kOcesaSeitrackManagement  => 559;
use constant kMusiqueSelect            => 560;
use constant kComedyCentral            => 561;
use constant kComedyDynamics           => 562;
use constant kTMedia                   => 563;
use constant kBlueElan                 => 564; # Note: do not confuse this with kBlueElanRecords
use constant kFatPossumRecords         => 565;
use constant kWKRecords                => 566;
use constant kAvex                     => 567;
use constant kNfartam                  => 568;
use constant kNiceLife                 => 569;
use constant kDax                      => 570;
use constant kDaleplayRecords          => 571;
use constant kD36                      => 572;
use constant kWuTangProductions        => 573;
use constant kGRFLLPunitedmasters      => 574;
use constant kGRFLLPtopdog             => 575;
use constant kGRFLLPcrimsonroserecords => 576;
use constant kGRFLLPsano               => 577;
use constant kBigCrownRecords          => 578;
use constant kThrillerRecords          => 579;
use constant kLetArtistsBe             => 580;
use constant kMassAppealRecords        => 581;
use constant kDSlevelgroup             => 582;
use constant kSixShooterRecords        => 583;
use constant kORCHglassnoterecords     => 584;
use constant kVPAcquisitions           => 585;
use constant kGRFLLPjapanavex          => 586;
use constant kGRFLLPblackboxla         => 587;
use constant kDSroyaltyrecovery        => 588;
use constant kDSstellademo             => 589;
use constant kDigitalFunding           => 590;
use constant kGRFLLPdangercollective   => 591;
use constant kGRFLLProcafella          => 592;
use constant kTwentyNineMusicGroup     => 593;
use constant kBlancoyNegroMusic        => 594;
use constant kRSDataart                => 595;
use constant kBobFrankEntertainment    => 596;
use constant kPSBMnewmachine           => 597;
use constant kCMHPublishing            => 598;
use constant kSpaceflightRecords       => 599;
use constant kLVRN                     => 600;
use constant kRobbinsEntertainmentLLC  => 601;
use constant kMNRKMNRK                 => 602;
use constant kGRFLLPSeekAndStrike      => 603;
use constant kNapalm                   => 604;
use constant kLaReserveRecords         => 605;
use constant kGRFLLPtriedtrue          => 606;
use constant kMediaAsia                => 607;
use constant kGRFLLPdemo               => 608;
use constant kGRFLLPlumbre             => 609;
use constant kMCcalicodiscos           => 610;
use constant kDSrareamericans          => 611;
use constant kGRFLLPgaslightanthem     => 612;
use constant kDScountylineentertainment => 613;
use constant kDSomnivorerecordings     => 614;
use constant kORCHTheOrchardPubOps     => 615;
use constant kGRFLLPmaverickcity       => 616;
use constant kMacmillanAUPrint         => 617;
use constant kDStowerofpowerroyalties  => 618;
use constant kStanleyPark              => 619;
use constant kHeldeep                  => 620;
use constant kMDLBeast                 => 621;
use constant kDSsingitloud             => 622;
use constant kExpandedMusic            => 623;
use constant kBloomsburyUK             => 624;
use constant kSpiritVoyagePublishing   => 625;
use constant kDoublePRecords           => 626;
use constant kGRFLLPlany               => 627;
use constant kHallofFameArtists        => 628;
use constant kIndependentCo            => 629;
use constant kLWEntertainment          => 630;
use constant kEncoreRecordings         => 631;
use constant kDScarolinepolachek       => 632;
use constant kTheOtherSongs            => 633;
use constant kRebelMusic               => 634;
use constant kGRFLLPprimarywavesd      => 635;
use constant kVirginiaEuro             => 636;
use constant kAtracao                  => 637;
use constant kORCHawalusd              => 638;
use constant kORCHawalgbp              => 639;
use constant kORCHawalaud              => 640;
use constant kORCHawaleur              => 641;
use constant kORCHawalsek              => 642;
use constant kKongStudios              => 643;
use constant kOurVinyl                 => 644;
use constant kSpectraMusiqueInc        => 645;
use constant kORCHOutDehRecordsLimited => 646;

# JPK - For now, we'll use this hash to store
# some preference state... Eventually we may move this
# into a database.
#
# skipFreeTracks
#   1 -> set revenue for non-free tracks as revenue-entered divided by total-non-free-tracks AND skip free tracks in the reporting aggregates
#   0 -> set revenue for all tracks as revenue-entered divided by total-tracks AND include free tracks in the reporting aggregates
#
# reportFreeTracks
#   1 -> include free tracks in the royalty output file
#   0 -> do not include free tracks in the royalty output file
#
# Default (from a business perspective at least) is:
# skipFeeTracks = yes
# reportFreeTracks = no

# codeName
#   essentially the CamelCase version of Common::Consts::CLIENT_NAME_CLEAN
#   aka: the vhost name

my %gPreferences = (
    kDemo() => {
        skipFreeTracks   => 0,
        reportFreeTracks => 1,
        codeName         => 'Demo',
    },
    kEpitaph() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Epitaph',
    },
    kAlligatorRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Alligator',
    },
    kVirtualLabel() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'VirtualLabel',
    },
    kBigFish() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BFMDigital',
    },
    kSony() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Sony',
    },
    kLumberjackMordam() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 1,
        codeName         => 'LMMG',
    },
    kKochRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 1,
        codeName         => 'Koch',
    },
    kKochDistribution() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 1,
        codeName         => 'Ked',
    },
    kLaugh() => {
        skipFreeTracks   => 0,
        reportFreeTracks => 1,
        codeName         => 'Laugh',
    },
    kDigitalPressure() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DigitalPressure',
    },
    kInstinctRecords() => {
        skipFreeTracks   => 0,
        reportFreeTracks => 1,
        codeName         => 'Instinct',
    },
    kGNPCrescendoRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 1,
        codeName         => 'GNPCrescendo',
    },
    kVPRecordsDSM() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'VPRecordsDSM',
    },
    kDualtoneMusicGroup() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Dualtone',
    },
    kOhBoyRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'OhBoy',
    },
    kSmithsonian() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SFW',
    },
    kSunnyside() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 1,
        codeName         => 'Sunnyside',
    },
    kBeggars() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Beggars',
    },
    kMatador() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Matador',
    },
    kCurb() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 1,
        codeName         => 'Curb',
    },
    kWarner() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 1,
        codeName         => 'WMG',
    },
    kArhoolie() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Arhoolie',
    },
    kCompass() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Compass',
    },
    kBigDaddy() => {
        skipFreeTracks   => 0,
        reportFreeTracks => 1,
        codeName         => 'BigDaddy',
    },
    kPias() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'VPD',
    },
    kHarmonia() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'HMUSA',
    },
    kRazorTie() => {
        skipFreeTracks   => 0,
        reportFreeTracks => 1,
        codeName         => 'RazorAndTie',
    },
    kTommyBoy() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 1,
        codeName         => 'TommyBoy',
    },
    kNacional() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Nacional',
    },
    kSheridanSquare() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SheridanSquare',
    },
    kSanctuaryRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SRGI',
    },
    kAcony() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 1,
        codeName         => 'Acony',
    },
    kFoxMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'FoxMusic',
    },
    kWorldsFair() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'WorldsFair',
    },
    kTouchAndGoRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 1,
        codeName         => 'TouchAndGoRecords',
    },
    kNitroRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'NitroRecords',
    },
    kV2Music() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'V2Music',
    },
    kBlindPigRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BlindPigRecords',
    },
    kCMG() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CMG',
    },
    kGoDigital() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 1,
        codeName         => 'GoDigital',
    },
    kAudioBee() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 1,
        codeName         => 'AudioBee',
    },
    kIdea() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 1,
        codeName         => 'Idea',
    },
    kIceRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'IceRecords',
    },
    kMuzak() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Muzak',
    },
    kFestivalFive() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'FestivalFive',
    },
    kMardiGras() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MardiGras',
    },
    kMadacy() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Madacy',
    },
    kLookout() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Lookout',
    },
    kHybrid() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Hybrid',
    },
    kLaCupula() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'LaCupula',
    },
    kNettwerk() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Nettwerk',
    },
    kNinjaTune() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'NinjaTune',
    },
    kBrunswick() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'M2K',    ## now it's m2k on web
    },
    kDefinitiveJux() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DefinitiveJux',
    },
    kDeliciousVinyl() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DeliciousVinyl',
    },

    #    kMergeRecords() => {
    #        skipFreeTracks   => 1,
    #        reportFreeTracks => 0,
    #        codeName         => 'MergeRecords',
    #    },
    kCRCJ() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CRCJ',
    },
    kLinus() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Linus',
    },
    kOnwardAndUpward() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'OnwardAndUpward',
    },
    kRSDemo() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RSDemo',
    },
    kBarNone() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BarNone',
    },
    kSRGIUK() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SRGIUK',
    },
    kSustain() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Sustain',
    },
    kSyntax() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Syntax',
    },
    kPutumayo() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Putumayo',
    },
    kDMRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DMRecords',
    },
    kDMM() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DMM',
    },
    kSixDegrees() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SixDegrees',
    },
    kNativeLanguage() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'NativeLanguage',
    },
    kOMRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'OMRecords',
    },
    kV2Records() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'V2Records',
    },
    kSeedDistribution() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SeedDistribution',
    },
    kAlphaPup() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'AlphaPup',
    },
    kBlazeTheWorld() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BlazeTheWorld',
    },
    kCMHRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CMHRecords',
    },
    kFrontier() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Frontier',
    },
    kMasterwerks() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Masterwerks',
    },
    kAireSol() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'AireSol',
    },
    kAkoya() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Akoya',
    },
    kAntibalas() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Antibalas',
    },
    kAntibeMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'AntibeMusic',
    },
    kBlackRose() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BlackRose',
    },
    kBossSounds() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BossSounds',
    },
    kCyclone() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Cyclone',
    },
    kDesiHits() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DesiHits',
    },
    kDownloadTales() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DownloadTales',
    },
    kErikSimms() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'ErikSimms',
    },
    kHomeStyleCooking() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'HomeStyleCooking',
    },
    kJeremyToback() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'JeremyToback',
    },
    kJetsOverhead() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'JetsOverhead',
    },
    kManifest() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Manifest',
    },
    kMaranathaOLD() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MaranathaOLD',
    },
    kMissMabry() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MissMabry',
    },
    kModernSky() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'ModernSky',
    },
    kMusicMind() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MusicMind',
    },
    kPhelps() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Phelps',
    },
    kRDKKombo() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RDKKombo',
    },
    kRichFerguson() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RichFerguson',
    },
    kRunRiot() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RunRiot',
    },
    kSolSelectas() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SolSelectas',
    },
    kSoundInk() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SoundInk',
    },
    kStoneQuarry() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'StoneQuarry',
    },
    kTomRossi() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'TomRossi',
    },
    kTheBatterie() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'TheBatterie',
    },
    kTruthAndSoul() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'TruthAndSoul',
    },
    kTypeTwo() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'TypeTwo',
    },
    kWolfRayet() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'WolfRayet',
    },
    kWaTunes() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'WaTunes',
    },
    kBacciBros() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BacciBros',
    },
    kContentManagement() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'ContentManagement',
    },
    kCHPMedia() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CHPMedia',
    },
    kTheMilitiaGroup() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'TheMilitiaGroup',
    },
    kHopefulTragedy() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'HopefulTragedy',
    },
    kMBEntertainment() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MBEntertainment',
    },
    kReamp() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Reamp',
    },
    kElevenSevenMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'ElevenSevenMusic',
    },
    kJazzHeads() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'JazzHeads',
    },
    kNewRenaissance() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'NewRenaissance',
    },
    kRainman() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Rainman',
    },
    kCentaur() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Centaur',
    },
    kWelkMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'WelkMusic',
    },
    kBagPakMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BagPakMusic',
    },
    kRagBaby() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RagBaby',
    },
    kRevolver() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Revolver',
    },
    kArcMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'ArcMusic',
    },
    kVineRipe() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'VineRipe',
    },
    kTesla() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Tesla',
    },
    kElevenSevenIntl() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'ElevenSevenIntl',
    },
    kAlive() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Alive',
    },
    kBomp() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Bomp',
    },
    kOutlook() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Outlook',
    },
    kOseao() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Oseao',
    },
    kDRE() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DRE',
    },
    kRusk() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Rusk',
    },
    kSongCast() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SongCast',
    },
    kNewWorld() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'NewWorld',
    },
    kMussoMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MussoMusic',
    },
    kFancorps() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Fancorps',
    },
    kDischord() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Dischord',
    },
    kCrusade() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Crusade',
    },
    kGoner() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Goner',
    },
    kBismeaux() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Bismeaux',
    },
    kKufala() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Kufala',
    },
    kEMG() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'EMG',
    },
    kCryptogramophone() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Cryptogramophone',
    },
    kTeshMedia() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'TeshMedia',
    },
    kDaywind() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Daywind',
    },
    kBarbes() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Barbes',
    },
    kQualiton() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Qualiton',
    },
    kBMcDonald() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BMcDonald',
    },
    kRegoIrish() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RegoIrish',
    },
    kTheSawDoctors() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'TheSawDoctors',
    },
    kCherryRedDSM() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CherryRedDSM',
    },
    kTompkinsSq() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'TompkinsSq',
    },
    kCountdownMedia() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CountdownMedia',
    },
    kDitto() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Ditto',
    },
    kSPGEntertainment() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SPGEntertainment',
    },
    kCerebral() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Cerebral',
    },
    kRapALot() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RapALot',
    },
    kCBSRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CBSRecords',
    },
    kESPDisk() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'ESPDisk',
    },
    kFestivaLink() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'FestivaLink',
    },
    kDestra() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Destra',
    },
    kSoundenStudios() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SoundenStudios',
    },
    kHudson() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Hudson',
    },
    kLatinMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'LatinMusic',
    },
    kKillRockStars() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'KillRockStars',
    },
    kPinecastle() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Pinecastle',
    },
    kOwnedAndOperated() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'OwnedAndOperated',
    },
    kSoundIssue() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SoundIssue',
    },
    kSuperD() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SuperD',
    },
    kRebelMix() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RebelMix',
    },
    kInfinity() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Infinity',
    },
    kJanmar() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Janmar',
    },
    kWildPalms() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'WildPalms',
    },
    kIDLA() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'IDLA',
    },
    kNede() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Nede',
    },
    kGrapewire() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Grapewire',
    },
    kSmogVeil() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SmogVeil',
    },
    kMoS() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MoS',
    },
    kEGRMedia() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'EGRMedia',
    },
    kReiner() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Reiner',
    },
    k604Records() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => '604Records',
    },
    kAlmaRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'AlmaRecords',
    },
    kAnthemGroup() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'AnthemGroup',
    },
    kBorealisRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BorealisRecords',
    },
    kDistortEnt() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DistortEnt',
    },
    kJustinTime() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'JustinTime',
    },
    kLastGang() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'LastGang',
    },
    kMarquis() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Marquis',
    },
    kMintRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MintRecords',
    },
    kOrangeRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'OrangeRecords',
    },
    kOutsideMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'OutsideMusic',
    },
    kRoyaltyRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RoyaltyRecords',
    },
    kSonicUnyon() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SonicUnyon',
    },
    kTrueNorth() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'TrueNorth',
    },
    kKochCA() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'KochCA',
    },
    k360DGM() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => '360DGM',
    },
    kCDAGroup() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CDAGroup',
    },
    kRSTest() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RSTest',
    },
    kLocobop() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Locobop',
    },
    kAlternativeTentacles() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'AlternativeTentacles',
    },
    kCTD() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CTD',
    },
    kCarrotTopRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CarrotTopRecords',
    },
    kWesternJubilee() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'WesternJubilee',
    },
    kLostGold() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'LostGold',
    },
    kMountainApple() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MountainApple',
    },
    kMountainAppleDist() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MountainAppleDist',
    },
    kTaraMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'TaraMusic',
    },
    kPyper() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Pyper',
    },
    kBoomtown() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Boomtown',
    },
    kBPA() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BPA',
    },
    kCoolPool() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CoolPool',
    },
    kUbiquity() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Ubiquity',
    },
    kBSD() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BSD',
    },
    kStylus() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Stylus',
    },
    kSkint() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Skint',
    },
    kDome() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Dome',
    },
    kMbop() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Mbop',
    },
    kRel() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Rel',
    },
    kNuUrban() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'NuUrban',
    },
    kGreentrax() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Greentrax',
    },
    kMultiverse() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Multiverse',
    },
    kZAudio() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'ZAudio',
    },
    kMeerkat() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Meerkat',
    },
    kElectromode() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Electromode',
    },
    kHardtimez() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Hardtimez',
    },
    kMondo() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Mondo',
    },
    k4Real() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => '4Real',
    },
    kMusicResponse() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MusicResponse',
    },
    kAngelAir() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'AngelAir',
    },
    kMarketSquare() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MarketSquare',
    },
    kLabelWorx() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'LabelWorx',
    },
    kTitaniumDigitals() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'TitaniumDigitals',
    },
    kRenaizzance() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Renaizzance',
    },
    kTaang() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Taang',
    },
    kRepublic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Republic',
    },
    kRAF() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RAF',
    },
    kAAOMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'AAOMusic',
    },
    kGroovesmith() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Groovesmith',
    },
    kGigatone() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Gigatone',
    },
    kLot49() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Lot49',
    },
    kATO() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'ATO',
    },
    kLenchMob() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'LenchMob',
    },
    kJeepers() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Jeepers',
    },
    kOneCellRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'OneCellRecords',
    },
    kBlackledgeMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BlackledgeMusic',
    },
    kHoweRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'HoweRecords',
    },
    kBamaRags() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BamaRags',
    },
    kCMTest() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CMTest',
    },
    kPetrol() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Petrol',
    },
    kHardcoreBeats() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'HardcoreBeats',
    },
    kLMLMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'LMLMusic',
    },
    kDancingCat() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DancingCat',
    },
    kTwinSisters() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'TwinSisters',
    },
    kCaCao() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CaCao',
    },
    kSurfDog() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SurfDog',
    },
    kMusicSales() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MusicSales',
    },
    kPRARecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'PRARecords',
    },
    kNuRave() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'NuRave',
    },
    kHot() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Hot',
    },
    kMetric() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Metric',
    },
    kPinnacleProductions() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'PinnacleProductions',
    },
    kReformRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'ReformRecords',
    },
    kFunMachine() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'FunMachine',
    },
    kWMGTrial() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'WMGTrial',
    },
    kYepRoc() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'YepRoc',
    },
    kDorado() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Dorado',
    },
    kDFSB() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DFSB',
    },
    kMusicallySpeaking() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MusicallySpeaking',
    },
    kSoulSpazm() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SoulSpazm',
    },
    kMusicKitchen() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MusicKitchen',
    },
    kIndieBLU() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'IndieBLU',
    },
    kBasinStreetRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BasinStreetRecords',
    },
    kMoSUS() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MoSUS',
    },
    kDanceToTheRadio() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DanceToTheRadio',
    },
    kRSDemoUK() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RSDemoUK',
    },
    kRSTestUK() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RSTestUK',
    },
    kMalaco() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Malaco',
    },
    kFearless() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Fearless',
    },
    kNYCRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'NYCRecords',
    },
    kEverloving() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Everloving',
    },
    kQuango() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Quango',
    },
    kE1() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'E1',
    },
    kGDE() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'GDE',
    },
    kDistort() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Distort',
    },
    kRevelMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RevelMusic',
    },
    kMalacoRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MalacoRecords',
    },
    kDittoMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DittoMusic',
    },
    kProperAmerican() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'ProperAmerican',
    },
    kHousePlanet() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'HousePlanet',
    },
    kResonanceRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'ResonanceRecords',
    },
    kVPRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'VPRecords',
    },
    kAwal() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Awal',
    },
    kStrawberryBird() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'StrawberryBird',
    },
    kRelativityMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RelativityMusic',
    },
    kVPRecordsUK() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'VPRecordsUK',
    },
    kZojakWorldwide() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'ZojakWorldwide',
    },
    kBlackRiver() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BlackRiver',
    },
    kAboveBoard() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'AboveBoard',
    },
    kDSMDemo() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DSMDemo',
    },
    kMomAndPopMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MomAndPopMusic',
    },
    kBeta2() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SonyBeta',
    },
    kNER() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'NER',
    },
    kSpiritVoyage() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SpiritVoyage',
    },
    kHornblow() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Hornblow',
    },
    kVPRecordsAL() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'VPAL',
    },
    kEMI() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'EMI',
    },
    kMusicounts() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MUSICOUNTS',
    },
    kHMDigital() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'HMDIGITAL',
    },
    kSTHoldings() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'STHOLDINGS',
    },
    kCherryRed() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CherryRed',
    },
    kMemphisIndustries() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MemphisIndustries',
    },
    kRoySakumaProductions() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RoySakumaProductions',
    },
    kAugustCreativeContent() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'AugustCreativeContent',
    },
    kRelapseRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RelapseRecords',
    },
    k21stHapilos() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => '21stHapilos',
    },
    kCultRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CultRecords',
    },
    kRapALotRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RapALotRecords',
    },
    kCommunityMusicGroup() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CommunityMusicGroup',
    },
    kMusicRoadRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MusicRoadRecords',
    },
    kVareseSarabande() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'VareseSarabande',
    },
    kUnified() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Unified',
    },
    kBlackenedRecordings() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BlackenedRecordings',
    },
    kPandaRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'PandaRecords',
    },
    kFutureClassic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'FutureClassic',
    },
    kUBL2Music() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'UBL2Music',
    },
    kBonsound() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Bonsound',
    },
    kSwitchMusicGroup() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SwitchMusicGroup',
    },
    kCreateControl() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CreateControl',
    },
    kMTheory() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MTheory',
    },
    kWelkMG() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'WelkMG',
    },
    kAlBunettaEstate() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'AlBunettaEstate',
    },
    kTheOrchard() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'TheOrchard',
    },
    kFoolsGold() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'FoolsGold',
    },
    kRSOrchardDemo() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RSOrchardDemo',
    },
    kRPMMSC() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RPMMSC',
    },
    kCarparkRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CarparkRecords',
    },
    kRadikalRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RadikalRecords',
    },
    kEditionRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'EditionRecords',
    },
    kRuco() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Ruco',
    },
    kPodwallEntertainment() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'PodwallEntertainment',
    },
    kArtBeatz() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'ArtBeatz',
    },
    kAntlerRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'AntlerRecords',
    },
    kFODRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'FODRecords',
    },
    kSailorRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SailorRecords',
    },
    kWojtekRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'WojtekRecords',
    },
    kSmithMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SmithMusic',
    },
    kJackAndJack() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'JackAndJack',
    },
    kAmyLeeMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'AmyLeeMusic',
    },
    kEOneMusicCanada() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'EOneMusicCanada',
    },
    kNaxos() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Naxos',
    },
    kAnticon() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Anticon',
    },
    kBoyceAvenue() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BoyceAvenue',
    },
    kSouthernLord() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SouthernLord',
    },
    kLightInTheAtticRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'LightInTheAtticRecords',
    },
    kArborsRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'ArborsRecords',
    },
    kDomeRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DomeRecords',
    },
    kPinecastleRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'PinecastleRecords',
    },
    kTemporaryResidence() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'TemporaryResidence',
    },
    kMelloMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MelloMusic',
    },
    kUSAMediaRights() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'USAMediaRights',
    },
    k1520Entertainment() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => '1520Entertainment',
    },
    kOmnianMusicGroup() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'OmnianMusicGroup',
    },
    kRedBullRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RedBullRecords',
    },
    kMattel() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Mattel',
    },
    kThreeQuarter() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'ThreeQuarter',
    },
    kMarionLorraine() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MarionLorraine',
    },
    kCosmicTrigger() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CosmicTrigger',
    },
    kSilentGiantEntertainment() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SilentGiantEntertainment',
    },
    kSilentGiantDistribution() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SilentGiantDistribution',
    },
    kAudiogram() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Audiogram',
    },
    kMorenaMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MorenaMusic',
    },
    kDeAngelis() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DeAngelis',
    },
    kGlassnoteRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'GlassnoteRecords',
    },
    kWuMusicGroup() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'WuMusicGroup',
    },
    kAlientoMusicGroup() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'AlientoMusicGroup',
    },
    kGraceHouseMusicGroup() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'GraceHouseMusicGroup',
    },
    kCheskyRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CheskyRecords',
    },
    kBlueElanRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BlueElanRecords',
    },
    kForeignFamilyCollective() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'ForeignFamilyCollective',
    },
    kDragCity() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DragCity',
    },
    kBigDealMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BigDealMusic',
    },
    kNextRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'NextRecords',
    },
    kLionBabeLLC() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'LionBabeLLC',
    },
    kAviKaplanMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'AviKaplanMusic',
    },
    kDarlaRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DarlaRecords',
    },
    kTheInnovativePeople() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'TheInnovativePeople',
    },
    kBrazilDeluxe() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BrazilDeluxe',
    },
    kExploited() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Exploited',
    },
    kAztecaMusicGroup() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'AztecaMusicGroup',
    },
    kCrimsonRoseRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CrimsonRoseRecords',
    },
    kPureNoise() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'PureNoise',
    },
    kEqualVisionRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'EqualVisionRecords',
    },
    kUSAMediaRightsMulti() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'USAMediaRightsMulti',
    },
    kBroadwayRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BroadwayRecords',
    },
    kSundayBest() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SundayBest',
    },
    kNewstateEntertainment() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'NewstateEntertainment',
    },
    kRimasEntertainment() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RimasEntertainment',
    },
    kCleopatraRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CleopatraRecords',
    },
    kMR305() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MR305',
    },
    kGrandviewRecordings() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'GrandviewRecordings',
    },
    kLawRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'LawRecords',
    },
    kJungleRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'JungleRecords',
    },
    kBlack17Media() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Black17Media',
    },
    kDogbearRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DogbearRecords',
    },
    kMailboatRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MailboatRecords',
    },
    kBeachGothRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BeachGothRecords',
    },
    kCSNRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CSNRecords',
    },
    kDollyRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DollyRecords',
    },
    kHancockRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'HancockRecords',
    },
    kInsideRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'InsideRecords',
    },
    kKKRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'KKRecords',
    },
    kNullRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'NullRecords',
    },
    kPhenixOpus() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'PhenixOpus',
    },
    kVotivMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'VotivMusic',
    },
    kStonesThrowRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'StonesThrowRecords',
    },
    kHitcoRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'HitcoRecords',
    },
    kRBFridayInc() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RBFridayInc',
    },
    kGodmodeMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'GodmodeMusic',
    },
    kAmericanGramaphoneLLC() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'AmericanGramaphoneLLC',
    },
    kTheOrchardUK() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'TheOrchardUK',
    },
    kAtenziaRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'AtenziaRecords',
    },
    kATTENTIONMEDIAEUROPEAB() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'ATTENTIONMEDIAEUROPEAB',
    },
    kDalapop() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Dalapop',
    },
    kDanielEngenProductions() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DanielEngenProductions',
    },
    kEchoOutCph() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'EchoOutCph',
    },
    kFarmenAS() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'FarmenAS',
    },
    kGrammofonAS() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'GrammofonAS',
    },
    kIndisciplinarian() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Indisciplinarian',
    },
    kMarkkuMattila() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MarkkuMattila',
    },
    kMerionGroupAB() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MerionGroupAB',
    },
    kTyrirotMusikk() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'TyrirotMusikk',
    },
    kSomethingBeautiful() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SomethingBeautiful',
    },
    kLydheim() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Lydheim',
    },
    kTalentMusikkAS() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'TalentMusikkAS',
    },
    kMTGMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MTGMusic',
    },
    kLindbergLydAS() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'LindbergLydAS',
    },
    kPirayaMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'PirayaMusic',
    },
    kSamsaraRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SamsaraRecords',
    },
    kInciconAS() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'InciconAS',
    },
    kZone4D() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Zone4D',
    },
    kCrunchyFrog() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'CrunchyFrog',
    },
    kMassproduktion() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Massproduktion',
    },
    kLouvaioProductions() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'LouvaioProductions',
    },
    kTopazMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'TopazMusic',
    },
    kRudeRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RudeRecords',
    },
    kMergeRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MergeRecords',
    },
    kKweendisk() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Kweendisk',
    },
    kSwingkids() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'Swingkids',
    },
    kKnirckefrittProduksjonAS() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'KnirckefrittProduksjonAS',
    },
    kRedlineRecordingsHB() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'RedlineRecordingsHB',
    },
    kPsychopathicRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'PsychopathicRecords',
    },
    kMaverickSabre() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MaverickSabre',
    },
    kDiscosGoma() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'DiscosGoma',
    },
    kBTS() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BTS',
    },
    kNeubauMusic() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'NeubauMusic',
    },
    kSpectrophonicRecords() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'SpectrophonicRecords',
    },
    kEastBeachRecordsTapes() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'EastBeachRecordsTapes',
    },
    k43NorthBroadway() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => '43NorthBroadway',
    },
    kBattenbergRecordings() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'BattenbergRecordings',
    },
    keOneMusicCanadaUSD() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'eOneMusicCanadaUSD',
    },
    kOneMediaIP() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'OneMediaIP',
    },
    kMagnusBohman() => {
        skipFreeTracks   => 1,
        reportFreeTracks => 0,
        codeName         => 'MagnusBohman',
    },
    k10KProjects() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => '10KProjects',
    },
    kGRiZ() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'GRiZ',
    },
    kZhuMusic() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'ZhuMusic',
    },
    kSeitrackManagement() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'SeitrackManagement',
    },
    kSeasonofMist() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'SeasonofMist',
    },
    kEasyLife() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'EasyLife',
    },
    kEasyVirginiaRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'VirginiaRecords',
    },
    kAlmostReligious() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'AlmostReligious',
    },
    kGetLowRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'GetLowRecords',
    },
    kBlueEngineRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'BlueEngineRecords',
    },
    kDelmarkRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'DelmarkRecords',
    },
    kFutureClassicRECLLC() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'FutureClassicRECLLC',
    },
    kSedaluPublishing() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'SedaluPublishing',
    },
    kKondzillaFilmes() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'KondzillaFilmes',
    },
    kKondzillaRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'KondzillaRecords',
    },
    kMetalBlade() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'MetalBlade',
    },
    kSmithMusicCoLtd() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'SmithMusicCoLtd',
    },
    kBootzillaRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'BootzillaRecords',
    },
    kRTIndustries() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'RTIndustries',
    },
    kSkynyrdPartners() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'SkynyrdPartners',
    },
    kBadSinRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'BadSinRecords',
    },
    kStevenHalpernMusic() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'StevenHalpernMusic',
    },
    kKiRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'KiRecords',
    },
    kDineAloneRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'DineAloneRecords',
    },
    kZachBrownBand() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'ZachBrownBand',
    },
    kHearThisMusic() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'HearThisMusic',
    },
    kDSmoke() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'DSmoke',
    },
    kReachRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'ReachRecords',
    },
    kGotee() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'Gotee',
    },
    kToothAndNail() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'ToothAndNail',
    },
    kMaranatha() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'Maranatha',
    },
    kFairTrade() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'FairTrade',
    },
    kPCD() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'PCD',
    },
    kMCMXCVLTD() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'MCMXCVLTD',
    },
    kMachineEntertainmentGroup() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'MachineEntertainmentGroup',
    },
    kCALFIBenRector() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'CALFIBenRector',
    },
    kCALFIJudahandtheLion() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'CALFIJudahandtheLion',
    },
    kCALFIDaughtry() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'CALFIDaughtry',
    },
    kCALFIMatKearney() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'CALFIMatKearney',
    },
    kCALFIBlackRockRecordings() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'CALFIBlackRockRecordings',
    },
    kCALFIPariahDogs() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'CALFIPariahDogs',
    },
    kCALFImmw() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'CALFImmw',
    },
    kCALFIwoodbros() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'CALFIwoodbros',
    },
    kMCmadeintheshade() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'MCmadeintheshade',
    },
    kZRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'ZRecords',
    },
    kTempo() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'Tempo',
    },
    kYoYoUSA() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'YoYoUSA',
    },
    kMusicBrokers() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'MusicBrokers',
    },
    kWSFirefly() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'WSFirefly',
    },
    kMCblackclay() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'MCblackclay',
    },
    kFlushRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'FlushRecords',
    },
    kTriblRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'TriblRecords',
    },
    kLoki() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'Loki',
    },
    kSlumerican() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'Slumerican',
    },
    kDarkroom() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'Darkroom',
    },
    kOcesaSeitrackManagement() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'OcesaSeitrackManagement',
    },
    kMusiqueSelect() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'MusiqueSelect',
    },
    kComedyCentral() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'ComedyCentral',
    },
    kComedyDynamics() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'ComedyDynamics',
    },
    kTMedia() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'TMedia',
    },
    kBlueElan() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'BlueElan',
    },
    kFatPossumRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'FatPossumRecords',
    },
    kWKRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'WKRecords',
    },
    kAvex() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'Avex',
    },
    kNfartam() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'Nfartam',
    },
    kNiceLife() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'NiceLife',
    },
    kDax() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'Dax',
    },
    kDaleplayRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'DaleplayRecords',
    },
    kD36() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'D36',
    },
    kWuTangProductions() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'WuTangProductions',
    },
    kGRFLLPunitedmasters() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'GRFLLPunitedmasters',
    },
    kGRFLLPtopdog() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'GRFLLPtopdog',
    },
    kGRFLLPcrimsonroserecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'GRFLLPcrimsonroserecords',
    },
    kGRFLLPsano() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'GRFLLPsano',
    },
    kBigCrownRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'BigCrownRecords',
    },
    kThrillerRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'ThrillerRecords',
    },
    kLetArtistsBe() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'LetArtistsBe',
    },
    kMassAppealRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'MassAppealRecords',
    },
    kDSlevelgroup() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'DSlevelgroup',
    },
    kSixShooterRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'SixShooterRecords',
    },
    kORCHglassnoterecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'ORCHglassnoterecords',
    },
    kVPAcquisitions() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'VPAcquisitions',
    },
    kGRFLLPjapanavex() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'GRFLLPjapanavex',
    },
    kGRFLLPblackboxla() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'GRFLLPblackboxla',
    },
    kDSroyaltyrecovery() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'DSroyaltyrecovery',
    },
    kDSstellademo() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'DSstellademo',
    },
    kDigitalFunding() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'DigitalFunding',
    },
    kGRFLLPdangercollective() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'GRFLLPdangercollective',
    },
    kGRFLLProcafella() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'GRFLLProcafella',
    },
    kTwentyNineMusicGroup() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'TwentyNineMusicGroup',
    },
    kBlancoyNegroMusic() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'BlancoyNegroMusic',
    },
    kRSDataart() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'RSDataart',
    },
    kBobFrankEntertainment() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'BobFrankEntertainment',
    },
    kPSBMnewmachine() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'PSBMnewmachine',
    },
    kCMHPublishing() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'CMHPublishing',
    },
    kSpaceflightRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'SpaceflightRecords',
    },
    kLVRN() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'LVRN',
    },
    kRobbinsEntertainmentLLC() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'RobbinsEntertainmentLLC',
    },
    kMNRKMNRK() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'MNRKMNRK',
    },
    kGRFLLPSeekAndStrike() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'GRFLLPSeekAndStrike',
    },
    kNapalm() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'Napalm',
    },
    kLaReserveRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'LaReserveRecords',
    },
    kGRFLLPtriedtrue() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'GRFLLPtriedtrue',
    },
    kMediaAsia() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'MediaAsia',
    },
    kGRFLLPdemo() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'GRFLLPdemo',
    },
    kGRFLLPlumbre() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'GRFLLPlumbre',
    },
    kMCcalicodiscos() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'MCcalicodiscos',
    },
    kDSrareamericans() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'DSrareamericans',
    },
    kGRFLLPgaslightanthem() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'GRFLLPgaslightanthem',
    },
    kDScountylineentertainment() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'DScountylineentertainment',
    },
    kDSomnivorerecordings() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'DSomnivorerecordings',
    },
    kORCHTheOrchardPubOps() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'ORCHTheOrchardPubOps',
    },
    kGRFLLPmaverickcity() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'GRFLLPmaverickcity',
    },
    kDStowerofpowerroyalties() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'DStowerofpowerroyalties',
    },
    kStanleyPark() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'StanleyPark',
    },
    kHeldeep() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'Heldeep',
    },
    kMDLBeast() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'MDLBeast',
    },
    kDSsingitloud() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'DSsingitloud',
    },
    kExpandedMusic() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'ExpandedMusic',
    },
    kSpiritVoyagePublishing() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'SpiritVoyagePublishing',
    },
    kDoublePRecords() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'DoublePRecords',
    },
    kGRFLLPlany() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'GRFLLPlany',
    },
    kHallofFameArtists() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'HallofFameArtists',
    },
    kIndependentCo() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'IndependentCo',
    },
    kLWEntertainment() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'LWEntertainment',
    },
    kEncoreRecordings() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'EncoreRecordings',
    },
    kDScarolinepolachek() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'DScarolinepolachek',
    },
    kTheOtherSongs() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'TheOtherSongs',
    },
    kRebelMusic() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'RebelMusic',
    },
    kGRFLLPprimarywavesd() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'GRFLLPprimarywavesd',
    },
    kVirginiaEuro() => {        
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'VirginiaEuro',
    },
    kAtracao() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'Atracao',
    },
    kORCHawalusd() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'ORCHawalusd',
    },
    kORCHawalgbp() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'ORCHawalgbp',
    },
    kORCHawalaud() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'ORCHawalaud',
    },
    kORCHawaleur() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'ORCHawaleur',
    },
    kORCHawalsek() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'ORCHawalsek',
    },
    kKongStudios() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'KongStudios',
    },
    kOurVinyl() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'OurVinyl',
    },
    kSpectraMusiqueInc() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'SpectraMusiqueInc',
    },
    kORCHOutDehRecordsLimited() => {
         skipFreeTracks   => 1,
         reportFreeTracks => 0,
         codeName         => 'ORCHOutDehRecordsLimited',
    },
);

# --------------------------------
# Constructor
# --------------------------------
sub new {
    my $class = shift;
    my %args  = @_;

    my $self = $class->SUPER::new( %args, dbo => Common::RSApp::GetCommonDB() );

    $self->_init(%args);

    return $self;
}

sub _init {
    my $self = shift;
    my %args = @_;

    # initialize user properties
    foreach (@attributes) {
        $self->{$_} = undef;
    }

    # are we loading an existing User?
    if ( $args{client_id} ) {
        $self->Load( client_id => $args{client_id} );
        $self->{dirty} = 0;
    }
}

# --------------------------------
# Properties
# --------------------------------
sub ClientID {
    my $self = shift;
    $self->{client_id};
}

sub ClientName {
    my $self = shift;
    $self->{client_name};
}

# --------------------------------
# Preferences
# --------------------------------
sub SkipFreeTracks {
    my $self = shift;

    my $clientID = $self->{client_id};
    my $flag     = $gPreferences{$clientID}{skipFreeTracks};
    return undef unless $flag;

    #	assert(defined $flag, "Client::Client::SkipFreeTracks - missing preferences for clientID $clientID");
    return $flag;
}

sub ReportFreeTracks {
    my $self = shift;

    my $clientID = $self->{client_id};
    my $flag     = $gPreferences{$clientID}{reportFreeTracks};
    return undef unless $flag;

    #	assert(defined $flag, "Client::Client::ReportFreeTracks - missing preferences for clientID $clientID");
    return $flag;
}

sub CodeName {
    my $self = shift;

    #	my $clientID = shift || $self->{client_id};
    my $clientID = shift || Common::RSApp::GetClientID();

    my $codeName = $gPreferences{$clientID}{codeName};
    return undef unless $codeName;

    #	assert(defined $codeName, "Client::Client::CodeName - missing preferences for clientID $clientID");
    return $codeName;
}

# -------------------------------
# Public Methods
# -------------------------------

sub GetObjectXML {
    my $self = shift;

    return $self->SUPER::GetObjectXML(@attributes);
}

sub Load {
    my $self = shift;
    my %args = @_;

    my $sql;
    if ( defined $args{client_id} && $args{client_id} =~ /^\d+$/ ) {
        $sql = "SELECT * FROM " . DB_TABLE . " WHERE client_id=" . $self->{dbo}->DBQuote( $args{client_id} );
    } else {
        $self->{errstr} = "client_id ($args{client_id}) not specified or not valid";
        return undef;
    }

    my $sth = $self->{dbo}->DoCmd($sql);
    unless ( defined $sth ) {
        $self->{errstr} = "database error: " . $DBI::errstr;
        return undef;
    }

    my $href = $sth->fetchrow_hashref();
    if ( !defined $href || $sth->rows == 0 ) {
        $self->{errstr} = "no file record for client_id=$args{client_id}";
        return undef;
    }

    $self->_load($href);

    $self->{dirty} = 0;

    return 1;
}

sub Save {
    my $self = shift;

    # this is generally a read only class
    return undef;
}

# -------------------------------
# Private Methods
# -------------------------------
sub _load {
    my $self = shift;
    my $href = shift;

    map { $self->{$_} = $href->{$_} } @attributes;
}

###
1;    # Play nicely.
###
