overtime-live-trading-utils 1.1.4 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/main.js +1 -1
- package/package.json +1 -1
- package/src/constants/sports.ts +16 -7
- package/src/enums/sports.ts +23 -14
- package/src/tests/mock/MockLeagueMap.ts +2 -0
- package/src/tests/mock/MockOpticSoccer.ts +75 -0
- package/src/tests/unit/spread.test.ts +101 -1
- package/src/types/sports.ts +1 -0
- package/src/utils/markets.ts +39 -10
package/main.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.thalesUtils=r():e.thalesUtils=r()}(this,(()=>(()=>{"use strict";var e={d:(r,a)=>{for(var i in a)e.o(a,i)&&!e.o(r,i)&&Object.defineProperty(r,i,{enumerable:!0,get:a[i]})},o:(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};e.r(r),e.d(r,{AMERICAN_LEAGUES:()=>U,DRAW:()=>K,LEAGUES_NO_FORMAL_HOME_AWAY:()=>M,LEAGUES_NO_LIVE_CONSTRAINTS:()=>C,League:()=>p,LeagueIdMapEnetpulse:()=>y,LeagueIdMapOpticOdds:()=>G,LeagueIdMapRundown:()=>m,LeagueMap:()=>c,MIN_ODDS_FOR_DIFF_CHECKING:()=>j,MONEYLINE_TYPE_ID:()=>Q,MULTIPLIER_100:()=>z,MatchResolveType:()=>S,MoneylineTypes:()=>L,PeriodType:()=>d,Provider:()=>I,ScoringType:()=>T,Sport:()=>_,SpreadTypes:()=>s,TAG_CHILD_SPREAD:()=>x,TAG_CHILD_TOTALS:()=>X,TotalTypes:()=>l,UFC_LEAGUE_IDS:()=>u,ZERO:()=>k,adjustSpreadOnChildOdds:()=>pe,adjustSpreadOnOdds:()=>Z,allowGameSportWithPeriodConstraint:()=>Te,allowGameSportWithResultConstraint:()=>de,allowSoccerGame:()=>Se,calculateImpliedOddsDifference:()=>P,checkGameContraints:()=>le,checkOddsFromBookmakers:()=>R,createChildMarkets:()=>oe,fetchResultInCurrentSet:()=>Ie,filterOddsByMarketNameBookmaker:()=>Ee,filterOddsByMarketNameTeamNameBookmaker:()=>ae,gamesDatesMatching:()=>W,getBetTypesForLeague:()=>w,getBookmakersArray:()=>O,getLeagueInfo:()=>V,getLeagueIsDrawAvailable:()=>b,getLeagueLabel:()=>D,getLeagueOpticOddsName:()=>B,getLeaguePeriodType:()=>F,getLeagueProvider:()=>g,getLeagueSport:()=>v,getLeagueSpreadTypes:()=>f,getLeagueTotalTypes:()=>Y,getLiveSupportedLeagues:()=>h,getParentOdds:()=>ie,getSpreadData:()=>J,groupAndFormatMoneylineOdds:()=>_e,groupAndFormatSpreadOdds:()=>Ae,groupAndFormatTotalOdds:()=>te,mapOpticOddsApiFixtureOdds:()=>me,mapOpticOddsApiFixtures:()=>Ue,mapOpticOddsApiResults:()=>ue,processMarket:()=>se,teamNamesMatching:()=>H}),"function"!=typeof Object.assign&&(Object.assign=function(e,r){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var a=Object(e),i=1;i<arguments.length;i++){var o=arguments[i];if(null!=o)for(var E in o)Object.prototype.hasOwnProperty.call(o,E)&&(a[E]=o[E])}return a});var a=function(e){return parseFloat(e.toPrecision(12))};function i(e,r,a){return void 0===a||0==+a?Math[e](r):(r=+r,a=+a,isNaN(r)||"number"!=typeof a||a%1!=0?NaN:r<0?-i(e,-r,a):(r=r.toString().split("e"),+((r=(r=Math[e](+(r[0]+"e"+(r[1]?+r[1]-a:-a)))).toString().split("e"))[0]+"e"+(r[1]?+r[1]+a:a))))}var o,E,A={decimal:{from:function(e){if((e=parseFloat(e))<=1)throw new Error("Outside valid range.");return e},to:function(){return this.decimalValue}},moneyline:{from:function(e){return(e=parseFloat(e))>=0?e/100+1:100/-e+1},to:function(){return this.decimalValue>=2?a(100*(this.decimalValue-1)):a(-100/(this.decimalValue-1))}},hongKong:{from:function(e){if((e=parseFloat(e))<0)throw new Error("Outside valid range.");return e+1},to:function(){return a(this.decimalValue-1)}},impliedProbability:{from:function(e){if((e="string"==typeof e&&"%"==e.slice(-1)?parseFloat(e)/100:parseFloat(e))<=0||e>=1)throw new Error("Outside valid range");return 1/e},to:function(e){if(e.percentage){var r=a(100/this.decimalValue);return null!==e.precision&&(r=i("round",r,-e.precision)),r.toString()+"%"}return a(1/this.decimalValue)}},fractional:{from:function(e){var r,a=e.toString().split("/");if(e=parseFloat(a[0]),2===a.length)r=parseFloat(a[1]);else{if(1!==a.length)throw new Error("Invalid fraction");r=1}if(0===e||0===r||e/r<=0)throw new Error("Outside valid range");return 1+e/r},to:function(e){return function(e,r){for(var a,i=[0,1],o=[1,0],E=function(e){var r=null,a=e.toString().indexOf("E");-1==a&&(a=e.toString().indexOf("e"));var i=null,o=(r=-1==a?e.toString():e.toString().substring(0,a)).toString().indexOf(".");-1==o?i=r:0===o?i=r.substring(1,r.length):o<r.length&&(i=r.substring(0,o)+r.substring(o+1,r.length));var E=i,A=E.toString().length,t=e,_=t.toString().length;0===t&&(_=0);var p,L=A-_;for(p=L;p>0&&E%2==0;p--)E/=2;for(p=L;p>0&&E%5==0;p--)E/=5;return E}(e),A=e,t=Math.pow(10,-r)/2,_=2;_<1e3;_++){var p=Math.floor(A);if(i[_]=p*i[_-1]+i[_-2],Math.abs(i[_])>E)return;if(o[_]=p*o[_-1]+o[_-2],a=i[_]/o[_],Math.abs(a-e)<t||NaN==a)return i[_].toString()+"/"+o[_].toString();A=1/(A-p)}}(this.decimalValue-1,e.precision||12)}},malay:{from:function(e){if((e=parseFloat(e))<=-1||e>1)throw new Error("Outside valid range.");return e<0&&(e=-1/e),e+1},to:function(){return this.decimalValue<=2?a(this.decimalValue-1):a(-1/(this.decimalValue-1))}},indonesian:{from:function(e){if(0===(e=parseFloat(e)))throw new Error("Outside valid range.");return e>=1?e+1:-1/e+1},to:function(){return this.decimalValue<2?a(-1/(this.decimalValue-1)):a(this.decimalValue-1)}}},t=((E=function(e){if("number"!=typeof e||isNaN(e))throw new Error("Invalid odds");this.decimalValue=a(e)}).prototype=(o=function(){throw new Error("This constructor is private, please use the from* functions")}).prototype,o.from=function(e,r){if(!A.hasOwnProperty(e))throw new Error("Unknown format "+e+".");var a=A[e].from(r);return new E(a)},o);t.prototype.to=function(e,r){if(!A.hasOwnProperty(e))throw new Error("Unknown format "+e+".");r=Object.assign({precision:null,percentage:!1},r);var a=A[e].to.call(this,r);return"number"==typeof a&&null!==r.precision&&(a=i("round",a,-r.precision)),a};var _,p,L,s,l,T,S,d,I,n,N=t.from,O=function(e,r,a){var i=e.find((function(e){return Number(e.sportId)===Number(r)}));if(i){if(""==i.primaryBookmaker)return a;var o=[];return i.primaryBookmaker&&o.push(i.primaryBookmaker),i.secondaryBookmaker&&o.push(i.secondaryBookmaker),i.tertiaryBookmaker&&o.push(i.tertiaryBookmaker),o}return a},R=function(e,r,a,i,o){var E=e.get(r[0]);if(!E)return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause no matching bookmakers have been found"};var A=E.homeOdds,t=E.awayOdds,_=a?0:E.drawOdds;return r.some((function(r){var i=e.get(r);return!!i&&(0===i.homeOdds||0===i.awayOdds||!a&&0===i.drawOdds||1===i.homeOdds||1===i.awayOdds||!a&&1===i.drawOdds)}))?{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause bookmakers have 0 or 1 odds"}:1==r.length?{homeOdds:A,awayOdds:t,drawOdds:a?0:_}:r.slice(1).some((function(r){var E=e.get(r);if(E){var p=E.homeOdds,L=E.awayOdds,s=E.drawOdds,l=N("decimal",A).to("impliedProbability"),T=N("decimal",t).to("impliedProbability"),S=a?0:N("decimal",_).to("impliedProbability"),d=N("decimal",p).to("impliedProbability"),I=N("decimal",L).to("impliedProbability"),n=a?0:N("decimal",s).to("impliedProbability"),O=P(l,d),R=P(T,I),c=a?0:P(S,n);if(O>i&&l>o&&d>o||R>i&&T>o&&I>o||!a&&c>i&&S>o&&n>o)return!0}return!1}))?{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds due to percentage difference between bookmakers"}:{homeOdds:A,awayOdds:t,drawOdds:a?0:_}},P=function(e,r){return Math.abs(e-r)/e*100};!function(e){e.SOCCER="Soccer",e.FOOTBALL="Football",e.BASKETBALL="Basketball",e.BASEBALL="Baseball",e.HOCKEY="Hockey",e.FIGHTING="Fighting",e.TENNIS="Tennis",e.ESPORTS="eSports",e.RUGBY="Rugby",e.VOLLEYBALL="Volleyball",e.HANDBALL="Handball",e.WATERPOLO="Waterpolo",e.CRICKET="Cricket",e.MOTOSPORT="Motosport",e.GOLF="Golf",e.TABLE_TENNIS="TableTennis",e.POLITICS="Politics",e.FUTURES="Futures",e.EMPTY=""}(_||(_={})),function(e){e[e.NCAAF=1]="NCAAF",e[e.NFL=2]="NFL",e[e.MLB=3]="MLB",e[e.NBA=4]="NBA",e[e.NCAAB=5]="NCAAB",e[e.NHL=6]="NHL",e[e.UFC=7]="UFC",e[e.WNBA=8]="WNBA",e[e.MLS=10]="MLS",e[e.EPL=11]="EPL",e[e.LIGUE_ONE=12]="LIGUE_ONE",e[e.BUNDESLIGA=13]="BUNDESLIGA",e[e.LA_LIGA=14]="LA_LIGA",e[e.SERIE_A=15]="SERIE_A",e[e.UEFA_CL=16]="UEFA_CL",e[e.UEFA_EL=17]="UEFA_EL",e[e.FIFA_WC=18]="FIFA_WC",e[e.J1_LEAGUE=19]="J1_LEAGUE",e[e.IPL=20]="IPL",e[e.T20_BLAST=21]="T20_BLAST",e[e.IIHF_WORLD_CHAMPIONSHIP=33]="IIHF_WORLD_CHAMPIONSHIP",e[e.COPA_AMERICA=44]="COPA_AMERICA",e[e.COPA_LIBERTADORES=45]="COPA_LIBERTADORES",e[e.UEFA_EURO=50]="UEFA_EURO",e[e.EREDIVISIE=57]="EREDIVISIE",e[e.PRIMEIRA_LIGA=61]="PRIMEIRA_LIGA",e[e.SUMMER_OLYMPICS_SOCCER_WOMEN=65]="SUMMER_OLYMPICS_SOCCER_WOMEN",e[e.SUMMER_OLYMPICS_SOCCER=66]="SUMMER_OLYMPICS_SOCCER",e[e.FIFA_WC_WOMEN=76]="FIFA_WC_WOMEN",e[e.ENGLAND_CUP=132]="ENGLAND_CUP",e[e.FRANCE_CUP=134]="FRANCE_CUP",e[e.SPAIN_CUP=138]="SPAIN_CUP",e[e.ITALY_CUP=141]="ITALY_CUP",e[e.TENNIS_WTA=152]="TENNIS_WTA",e[e.TENNIS_GS=153]="TENNIS_GS",e[e.TENNIS_MASTERS=156]="TENNIS_MASTERS",e[e.SUMMER_OLYMPICS_TENNIS=158]="SUMMER_OLYMPICS_TENNIS",e[e.GERMANY_CUP=209]="GERMANY_CUP",e[e.LIGA_MX=230]="LIGA_MX",e[e.BRAZIL_1=268]="BRAZIL_1",e[e.UEFA_EURO_U21=288]="UEFA_EURO_U21",e[e.FIFA_WORLD_CUP_U20=296]="FIFA_WORLD_CUP_U20",e[e.SUMMER_OLYMPICS_HANDBALL_WOMEN=380]="SUMMER_OLYMPICS_HANDBALL_WOMEN",e[e.SUMMER_OLYMPICS_HANDBALL=381]="SUMMER_OLYMPICS_HANDBALL",e[e.EUROLEAGUE=399]="EUROLEAGUE",e[e.SUMMER_OLYMPICS_BASKETBALL=406]="SUMMER_OLYMPICS_BASKETBALL",e[e.SUMMER_OLYMPICS_BASKETBALL_WOMEN=407]="SUMMER_OLYMPICS_BASKETBALL_WOMEN",e[e.FIBA_WORLD_CUP=409]="FIBA_WORLD_CUP",e[e.FORMULA1=445]="FORMULA1",e[e.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN=453]="SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN",e[e.SUMMER_OLYMPICS_BEACH_VOLEYBALL=454]="SUMMER_OLYMPICS_BEACH_VOLEYBALL",e[e.MOTOGP=497]="MOTOGP",e[e.SAUDI_PROFESSIONAL_LEAGUE=536]="SAUDI_PROFESSIONAL_LEAGUE",e[e.SUMMER_OLYMPICS_WATERPOLO=8881]="SUMMER_OLYMPICS_WATERPOLO",e[e.SUMMER_OLYMPICS_VOLEYBALL_WOMEN=8893]="SUMMER_OLYMPICS_VOLEYBALL_WOMEN",e[e.SUMMER_OLYMPICS_VOLEYBALL=8894]="SUMMER_OLYMPICS_VOLEYBALL",e[e.SUMMER_OLYMPICS_TABLE_TENNIS=8910]="SUMMER_OLYMPICS_TABLE_TENNIS",e[e.BOXING=9196]="BOXING",e[e.SUMMER_OLYMPICS_RUGBY=9578]="SUMMER_OLYMPICS_RUGBY",e[e.SUMMER_OLYMPICS_RUGBY_WOMEN=9588]="SUMMER_OLYMPICS_RUGBY_WOMEN",e[e.SUMMER_OLYMPICS_HOCKEY_WOMEN=9698]="SUMMER_OLYMPICS_HOCKEY_WOMEN",e[e.SUMMER_OLYMPICS_HOCKEY=9699]="SUMMER_OLYMPICS_HOCKEY",e[e.UEFA_NATIONS_LEAGUE=9806]="UEFA_NATIONS_LEAGUE",e[e.CONCACAF_NATIONS_LEAGUE=9821]="CONCACAF_NATIONS_LEAGUE",e[e.CSGO=9977]="CSGO",e[e.DOTA2=9983]="DOTA2",e[e.SUMMER_OLYMPICS_BASKETBALL_3X3=10071]="SUMMER_OLYMPICS_BASKETBALL_3X3",e[e.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN=10072]="SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN",e[e.SUMMER_OLYMPICS_QUALIFICATION=10502]="SUMMER_OLYMPICS_QUALIFICATION",e[e.LOL=10138]="LOL",e[e.CONMEBOL_WC_QUALIFICATIONS=10199]="CONMEBOL_WC_QUALIFICATIONS",e[e.UEFA_CONFERENCE_LEAGUE=10216]="UEFA_CONFERENCE_LEAGUE",e[e.NON_TITLE_BOXING=10595]="NON_TITLE_BOXING",e[e.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION=10611]="UEFA_CHAMPIONS_LEAGUE_QUALIFICATION",e[e.UEFA_EUROPA_LEAGUE_QUALIFICATION=10613]="UEFA_EUROPA_LEAGUE_QUALIFICATION",e[e.UEFA_CONFERENCE_LEAGUE_QUALIFICATION=10615]="UEFA_CONFERENCE_LEAGUE_QUALIFICATION",e[e.US_ELECTION=2e4]="US_ELECTION",e[e.UEFA_SUPER_CUP=20001]="UEFA_SUPER_CUP",e[e.BRAZIL_CUP=20002]="BRAZIL_CUP",e[e.ENGLAND_CHAMPIONSHIP=20011]="ENGLAND_CHAMPIONSHIP",e[e.SCOTLAND_PREMIERSHIP=20101]="SCOTLAND_PREMIERSHIP",e[e.BELGIUM_LEAGUE=20102]="BELGIUM_LEAGUE",e[e.CZECH_LEAGUE=20103]="CZECH_LEAGUE",e[e.CHILE_PRIMERA=20104]="CHILE_PRIMERA",e[e.FINLAND_LEAGUE=20105]="FINLAND_LEAGUE",e[e.ARGENTINA_PRIMERA=20106]="ARGENTINA_PRIMERA",e[e.RUSSIA_PREMIER=20107]="RUSSIA_PREMIER",e[e.TURKEY_SUPER_LEAGUE=20108]="TURKEY_SUPER_LEAGUE",e[e.SERBIA_SUPER_LEAGUE=20109]="SERBIA_SUPER_LEAGUE",e[e.GREECE_SUPER_LEAGUE=20110]="GREECE_SUPER_LEAGUE",e[e.INDIA_PREMIER=20111]="INDIA_PREMIER",e[e.CHINA_SUPER_LEAGUE=20112]="CHINA_SUPER_LEAGUE",e[e.AUSTRALIA_A_LEAGUE=20113]="AUSTRALIA_A_LEAGUE",e[e.SWITZERLAND_SUPER_LEAGUE=20114]="SWITZERLAND_SUPER_LEAGUE",e[e.BUNDESLIGA_2=20115]="BUNDESLIGA_2",e[e.LA_LIGA_2=20116]="LA_LIGA_2",e[e.SERIE_B=20117]="SERIE_B",e[e.INDIA_SUPER_LEAGUE=20118]="INDIA_SUPER_LEAGUE",e[e.LIGUE_2=20119]="LIGUE_2",e[e.AUSTRIA_BUNDESLIGA=20120]="AUSTRIA_BUNDESLIGA",e[e.DENMARK_SUPER_LEAGUE=20121]="DENMARK_SUPER_LEAGUE",e[e.POLAND_LEAGUE=20122]="POLAND_LEAGUE",e[e.SWEDEN_LEAGUE=20123]="SWEDEN_LEAGUE",e[e.COLOMBIA_PRIMERA_A=20124]="COLOMBIA_PRIMERA_A",e[e.ENGLAND_EFL_CUP=20125]="ENGLAND_EFL_CUP",e[e.ENGLAND_LEGAUE_1=20126]="ENGLAND_LEGAUE_1",e[e.URUGUAY_PRIMERA_DIVISION=20127]="URUGUAY_PRIMERA_DIVISION",e[e.AFC_CHAMPIONS_LEAGUE=20128]="AFC_CHAMPIONS_LEAGUE",e[e.EUROCUP=20200]="EUROCUP",e[e.SPAIN_LIGA_ACB=20201]="SPAIN_LIGA_ACB",e[e.ITALY_LEGA_BASKET_SERIE_A=20202]="ITALY_LEGA_BASKET_SERIE_A",e[e.GERMANY_BBL=20203]="GERMANY_BBL",e[e.FRANCE_LNB_PRO_A=20204]="FRANCE_LNB_PRO_A",e[e.CHINA_CBA=20205]="CHINA_CBA",e[e.AUSTRALIA_NBL=20206]="AUSTRALIA_NBL",e[e.VALORANT=20300]="VALORANT",e[e.ROCKET_LEAGUE=20301]="ROCKET_LEAGUE",e[e.CALL_OF_DUTY=20302]="CALL_OF_DUTY",e[e.STARCRAFT=20303]="STARCRAFT",e[e.NFL_FUTURES=30002]="NFL_FUTURES",e[e.NBA_FUTURES=30004]="NBA_FUTURES",e[e.NHL_FUTURES=30006]="NHL_FUTURES",e[e.EPL_FUTURES=30011]="EPL_FUTURES",e[e.LIGUE_ONE_FUTURES=30012]="LIGUE_ONE_FUTURES",e[e.BUNDESLIGA_FUTURES=30013]="BUNDESLIGA_FUTURES",e[e.LA_LIGA_FUTURES=30014]="LA_LIGA_FUTURES",e[e.SERIE_A_FUTURES=30015]="SERIE_A_FUTURES",e[e.UEFA_CHAMPIONS_LEAGUE_FUTURES=30016]="UEFA_CHAMPIONS_LEAGUE_FUTURES",e[e.EUROLEAGUE_FUTURES=30399]="EUROLEAGUE_FUTURES",e[e.GOLF_H2H=100021]="GOLF_H2H",e[e.GOLF_WINNER=100121]="GOLF_WINNER",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1=15312]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2=15313]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3=15314]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4=15315]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5=15316]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6=15317]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7=15318]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_1=15622]="TENNIS_MASTERS_LIVE_MAPPING_V2_1",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_2=15623]="TENNIS_MASTERS_LIVE_MAPPING_V2_2",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_3=15624]="TENNIS_MASTERS_LIVE_MAPPING_V2_3",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_4=15625]="TENNIS_MASTERS_LIVE_MAPPING_V2_4",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_5=15626]="TENNIS_MASTERS_LIVE_MAPPING_V2_5",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_6=15627]="TENNIS_MASTERS_LIVE_MAPPING_V2_6",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_7=15628]="TENNIS_MASTERS_LIVE_MAPPING_V2_7",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_8=15632]="TENNIS_MASTERS_LIVE_MAPPING_V2_8",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_9=15633]="TENNIS_MASTERS_LIVE_MAPPING_V2_9",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_10=15634]="TENNIS_MASTERS_LIVE_MAPPING_V2_10",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_11=15635]="TENNIS_MASTERS_LIVE_MAPPING_V2_11",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_12=15636]="TENNIS_MASTERS_LIVE_MAPPING_V2_12",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_13=15637]="TENNIS_MASTERS_LIVE_MAPPING_V2_13",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_14=15638]="TENNIS_MASTERS_LIVE_MAPPING_V2_14",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_15=15641]="TENNIS_MASTERS_LIVE_MAPPING_V2_15",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_16=15642]="TENNIS_MASTERS_LIVE_MAPPING_V2_16",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_17=15643]="TENNIS_MASTERS_LIVE_MAPPING_V2_17",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_18=15644]="TENNIS_MASTERS_LIVE_MAPPING_V2_18",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_19=15645]="TENNIS_MASTERS_LIVE_MAPPING_V2_19",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_20=15646]="TENNIS_MASTERS_LIVE_MAPPING_V2_20",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_21=15647]="TENNIS_MASTERS_LIVE_MAPPING_V2_21",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_22=15648]="TENNIS_MASTERS_LIVE_MAPPING_V2_22",e[e.TENNIS_WTA_LIVE_MAPPING_V2_1=15322]="TENNIS_WTA_LIVE_MAPPING_V2_1",e[e.TENNIS_WTA_LIVE_MAPPING_V2_2=15323]="TENNIS_WTA_LIVE_MAPPING_V2_2",e[e.TENNIS_WTA_LIVE_MAPPING_V2_3=15324]="TENNIS_WTA_LIVE_MAPPING_V2_3",e[e.TENNIS_WTA_LIVE_MAPPING_V2_4=15325]="TENNIS_WTA_LIVE_MAPPING_V2_4",e[e.TENNIS_WTA_LIVE_MAPPING_V2_5=15326]="TENNIS_WTA_LIVE_MAPPING_V2_5",e[e.TENNIS_WTA_LIVE_MAPPING_V2_6=15327]="TENNIS_WTA_LIVE_MAPPING_V2_6",e[e.TENNIS_WTA_LIVE_MAPPING_V2_7=15328]="TENNIS_WTA_LIVE_MAPPING_V2_7"}(p||(p={})),function(e){e.MONEYLINE="Moneyline"}(L||(L={})),function(e){e.ASIAN_HANDICAP="Asian Handicap",e.GAME_SPREAD="Game Spread",e.POINT_SPREAD="Point Spread",e.GOAL_SPREAD="Goal Spread",e.RUN_LINE="Run Line",e.PUCK_LINE="Puck Line"}(s||(s={})),function(e){e.TOTAL_GAMES="Total Games",e.TOTAL_GOALS="Total Goals",e.TOTAL_POINTS="Total Points",e.TOTAL_RUNS="Total Runs"}(l||(l={})),function(e){e.POINTS="points",e.GOALS="goals",e.ROUNDS="rounds",e.SETS="sets",e.MAPS="maps",e.EMPTY=""}(T||(T={})),function(e){e.OVERTIME="overtime",e.REGULAR="regular",e.EMPTY=""}(S||(S={})),function(e){e.QUARTER="quarter",e.HALF="half",e.PERIOD="period",e.ROUND="round",e.INNING="inning",e.SET="set",e.MAP="map",e.EMPTY=""}(d||(d={})),function(e){e.RUNDOWN="rundown",e.ENETPULSE="enetpulse",e.JSONODDS="jsonOdds",e.OPTICODDS="opticOdds",e.EMPTY=""}(I||(I={}));var c=((n={})[p.NCAAF]={sport:_.FOOTBALL,id:p.NCAAF,label:"NCAA Football",opticOddsName:"NCAAF",provider:I.OPTICODDS,scoringType:T.POINTS,matchResolveType:S.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.NFL]={sport:_.FOOTBALL,id:p.NFL,label:"NFL",opticOddsName:"NFL",provider:I.OPTICODDS,scoringType:T.POINTS,matchResolveType:S.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.MLB]={sport:_.BASEBALL,id:p.MLB,label:"MLB",opticOddsName:"MLB",provider:I.OPTICODDS,scoringType:T.POINTS,matchResolveType:S.OVERTIME,periodType:d.INNING,isDrawAvailable:!1},n[p.NBA]={sport:_.BASKETBALL,id:p.NBA,label:"NBA",opticOddsName:"NBA",provider:I.OPTICODDS,scoringType:T.POINTS,matchResolveType:S.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.NCAAB]={sport:_.BASKETBALL,id:p.NCAAB,label:"NCAA Basketball",opticOddsName:"NCAAB",provider:I.OPTICODDS,scoringType:T.POINTS,matchResolveType:S.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.NHL]={sport:_.HOCKEY,id:p.NHL,label:"NHL",opticOddsName:"NHL",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.OVERTIME,periodType:d.PERIOD,isDrawAvailable:!1},n[p.UFC]={sport:_.FIGHTING,id:p.UFC,label:"UFC",provider:I.OPTICODDS,scoringType:T.ROUNDS,matchResolveType:S.EMPTY,periodType:d.ROUND,isDrawAvailable:!1},n[p.WNBA]={sport:_.BASKETBALL,id:p.WNBA,label:"WNBA",opticOddsName:"WNBA",provider:I.OPTICODDS,scoringType:T.POINTS,matchResolveType:S.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.MLS]={sport:_.SOCCER,id:p.MLS,label:"MLS",opticOddsName:"USA - Major League Soccer",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.EPL]={sport:_.SOCCER,id:p.EPL,label:"EPL",opticOddsName:"England - Premier League",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.LIGUE_ONE]={sport:_.SOCCER,id:p.LIGUE_ONE,label:"Ligue 1",opticOddsName:"France - Ligue 1",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.BUNDESLIGA]={sport:_.SOCCER,id:p.BUNDESLIGA,label:"Bundesliga",opticOddsName:"Germany - Bundesliga",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.LA_LIGA]={sport:_.SOCCER,id:p.LA_LIGA,label:"La Liga",opticOddsName:"Spain - La Liga",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SERIE_A]={sport:_.SOCCER,id:p.SERIE_A,label:"Serie A",opticOddsName:"Italy - Serie A",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.UEFA_CL]={sport:_.SOCCER,id:p.UEFA_CL,label:"UEFA Champions League",opticOddsName:"UEFA - Champions League",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.UEFA_EL]={sport:_.SOCCER,id:p.UEFA_EL,label:"UEFA Europa League",opticOddsName:"UEFA - Europa League",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.FIFA_WC]={sport:_.SOCCER,id:p.FIFA_WC,label:"FIFA World Cup Qualifiers",provider:I.OPTICODDS,opticOddsName:"FIFA - World Cup Qualifiers",scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.J1_LEAGUE]={sport:_.SOCCER,id:p.J1_LEAGUE,label:"J1 League",opticOddsName:"Japan - J1 League",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.IPL]={sport:_.CRICKET,id:p.IPL,label:"Indian Premier League",provider:I.EMPTY,scoringType:T.POINTS,matchResolveType:S.EMPTY,periodType:d.INNING,isDrawAvailable:!1},n[p.T20_BLAST]={sport:_.CRICKET,id:p.T20_BLAST,label:"T20 Blast",provider:I.EMPTY,scoringType:T.POINTS,matchResolveType:S.EMPTY,periodType:d.INNING,isDrawAvailable:!1},n[p.IIHF_WORLD_CHAMPIONSHIP]={sport:_.HOCKEY,id:p.IIHF_WORLD_CHAMPIONSHIP,label:"IIHF World Championship",provider:I.EMPTY,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.PERIOD,isDrawAvailable:!0},n[p.COPA_AMERICA]={sport:_.SOCCER,id:p.COPA_AMERICA,label:"Copa America",opticOddsName:"CONMEBOL - Copa America",provider:I.EMPTY,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.COPA_LIBERTADORES]={sport:_.SOCCER,id:p.COPA_LIBERTADORES,label:"Copa Libertadores",opticOddsName:"CONMEBOL - Copa Libertadores",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.UEFA_EURO]={sport:_.SOCCER,id:p.UEFA_EURO,label:"UEFA EURO 2024",opticOddsName:"UEFA - European Championship",provider:I.EMPTY,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.EREDIVISIE]={sport:_.SOCCER,id:p.EREDIVISIE,label:"Eredivisie",opticOddsName:"Netherlands - Eredivisie",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.PRIMEIRA_LIGA]={sport:_.SOCCER,id:p.PRIMEIRA_LIGA,label:"Primeira Liga",opticOddsName:"Portugal - Primeira Liga",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_SOCCER_WOMEN]={sport:_.SOCCER,id:p.SUMMER_OLYMPICS_SOCCER_WOMEN,label:"Olympic Games Soccer Women",opticOddsName:"Olympics Soccer Women",provider:I.EMPTY,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_SOCCER]={sport:_.SOCCER,id:p.SUMMER_OLYMPICS_SOCCER,label:"Olympic Games Soccer",opticOddsName:"Olympics Soccer Men",provider:I.EMPTY,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.FIFA_WC_WOMEN]={sport:_.SOCCER,id:p.FIFA_WC_WOMEN,label:"FIFA World Cup Women",provider:I.EMPTY,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.ENGLAND_CUP]={sport:_.SOCCER,id:p.ENGLAND_CUP,label:"FA Cup",opticOddsName:"England - FA Cup",provider:I.EMPTY,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.FRANCE_CUP]={sport:_.SOCCER,id:p.FRANCE_CUP,label:"Coupe de France",provider:I.EMPTY,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SPAIN_CUP]={sport:_.SOCCER,id:p.SPAIN_CUP,label:"Copa del Rey",opticOddsName:"Spain - Copa del Rey",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.ITALY_CUP]={sport:_.SOCCER,id:p.ITALY_CUP,label:"Coppa Italia",opticOddsName:"Italy - Coppa Italia",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.TENNIS_WTA]={sport:_.TENNIS,id:p.TENNIS_WTA,label:"WTA Events",opticOddsName:"WTA",provider:I.OPTICODDS,scoringType:T.SETS,matchResolveType:S.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.TENNIS_GS]={sport:_.TENNIS,id:p.TENNIS_GS,label:"Grand Slam",opticOddsName:"ATP,WTA",provider:I.EMPTY,scoringType:T.SETS,matchResolveType:S.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.TENNIS_MASTERS]={sport:_.TENNIS,id:p.TENNIS_MASTERS,label:"ATP Events",opticOddsName:"ATP",provider:I.OPTICODDS,scoringType:T.SETS,matchResolveType:S.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_TENNIS]={sport:_.TENNIS,id:p.SUMMER_OLYMPICS_TENNIS,label:"Olympic Games Tennis",provider:I.EMPTY,scoringType:T.SETS,matchResolveType:S.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.GERMANY_CUP]={sport:_.SOCCER,id:p.GERMANY_CUP,label:"DFB Pokal",opticOddsName:"Germany - DFB Pokal",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.LIGA_MX]={sport:_.SOCCER,id:p.LIGA_MX,label:"Liga MX",opticOddsName:"Mexico - Liga MX",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.BRAZIL_1]={sport:_.SOCCER,id:p.BRAZIL_1,label:"Serie A",opticOddsName:"Brazil - Serie A",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.UEFA_EURO_U21]={sport:_.SOCCER,id:p.UEFA_EURO_U21,label:"UEFA EURO U21",provider:I.EMPTY,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.FIFA_WORLD_CUP_U20]={sport:_.SOCCER,id:p.FIFA_WORLD_CUP_U20,label:"FIFA World Cup U20",provider:I.EMPTY,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_HANDBALL_WOMEN]={sport:_.HANDBALL,id:p.SUMMER_OLYMPICS_HANDBALL_WOMEN,label:"Olympic Games Handball Women",opticOddsName:"Olympics Handball Women",provider:I.EMPTY,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_HANDBALL]={sport:_.HANDBALL,id:p.SUMMER_OLYMPICS_HANDBALL,label:"Olympic Games Handball",opticOddsName:"Olympics Handball Men",provider:I.EMPTY,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.EUROLEAGUE]={sport:_.BASKETBALL,id:p.EUROLEAGUE,label:"Euroleague",opticOddsName:"Euroleague",provider:I.OPTICODDS,scoringType:T.POINTS,matchResolveType:S.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_BASKETBALL]={sport:_.BASKETBALL,id:p.SUMMER_OLYMPICS_BASKETBALL,label:"Olympic Games Basketball",opticOddsName:"Olympics Basketball Men",provider:I.EMPTY,scoringType:T.POINTS,matchResolveType:S.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_BASKETBALL_WOMEN]={sport:_.BASKETBALL,id:p.SUMMER_OLYMPICS_BASKETBALL_WOMEN,label:"Olympic Games Basketball Women",opticOddsName:"Olympics Basketball Women",provider:I.EMPTY,scoringType:T.POINTS,matchResolveType:S.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.FIBA_WORLD_CUP]={sport:_.BASKETBALL,id:p.FIBA_WORLD_CUP,label:"FIBA World Cup",provider:I.EMPTY,scoringType:T.POINTS,matchResolveType:S.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.FORMULA1]={sport:_.MOTOSPORT,id:p.FORMULA1,label:"Formula 1",provider:I.EMPTY,scoringType:T.EMPTY,matchResolveType:S.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN]={sport:_.VOLLEYBALL,id:p.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN,label:"Olympic Games Beach Voleyball Women",provider:I.EMPTY,scoringType:T.SETS,matchResolveType:S.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_BEACH_VOLEYBALL]={sport:_.VOLLEYBALL,id:p.SUMMER_OLYMPICS_BEACH_VOLEYBALL,label:"Olympic Games Beach Voleyball",provider:I.EMPTY,scoringType:T.SETS,matchResolveType:S.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_TABLE_TENNIS]={sport:_.TABLE_TENNIS,id:p.SUMMER_OLYMPICS_TABLE_TENNIS,label:"Olympic Games Table Tennis",provider:I.EMPTY,scoringType:T.SETS,matchResolveType:S.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.MOTOGP]={sport:_.MOTOSPORT,id:p.MOTOGP,label:"MotoGP",provider:I.EMPTY,scoringType:T.EMPTY,matchResolveType:S.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.SAUDI_PROFESSIONAL_LEAGUE]={sport:_.SOCCER,id:p.SAUDI_PROFESSIONAL_LEAGUE,label:"Saudi Professional League",opticOddsName:"Saudi Arabia - Saudi League",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_WATERPOLO]={sport:_.WATERPOLO,id:p.SUMMER_OLYMPICS_WATERPOLO,label:"Olympic Games Water Polo",opticOddsName:"Olympics Water Polo",provider:I.EMPTY,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.QUARTER,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_VOLEYBALL_WOMEN]={sport:_.VOLLEYBALL,id:p.SUMMER_OLYMPICS_VOLEYBALL_WOMEN,label:"Olympic Games Volleyball Women",opticOddsName:"Olympics Volleyball Women",provider:I.EMPTY,scoringType:T.SETS,matchResolveType:S.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_VOLEYBALL]={sport:_.VOLLEYBALL,id:p.SUMMER_OLYMPICS_VOLEYBALL,label:"Olympic Games Volleyball",opticOddsName:"Olympics Volleyball Men",provider:I.EMPTY,scoringType:T.SETS,matchResolveType:S.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.BOXING]={sport:_.FIGHTING,id:p.BOXING,label:"Boxing",provider:I.EMPTY,scoringType:T.ROUNDS,matchResolveType:S.EMPTY,periodType:d.ROUND,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_RUGBY]={sport:_.RUGBY,id:p.SUMMER_OLYMPICS_RUGBY,label:"Olympic Games Rugby",opticOddsName:"Olympics Rugby 7s Men",provider:I.EMPTY,scoringType:T.POINTS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_RUGBY_WOMEN]={sport:_.RUGBY,id:p.SUMMER_OLYMPICS_RUGBY_WOMEN,label:"Olympic Games Rugby Women",opticOddsName:"Olympics Rugby 7s Women",provider:I.EMPTY,scoringType:T.POINTS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_HOCKEY_WOMEN]={sport:_.HOCKEY,id:p.SUMMER_OLYMPICS_HOCKEY_WOMEN,label:"Olympic Games Hockey Women",provider:I.EMPTY,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.PERIOD,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_HOCKEY]={sport:_.HOCKEY,id:p.SUMMER_OLYMPICS_HOCKEY,label:"Olympic Games Hockey",provider:I.EMPTY,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.PERIOD,isDrawAvailable:!0},n[p.UEFA_NATIONS_LEAGUE]={sport:_.SOCCER,id:p.UEFA_NATIONS_LEAGUE,label:"UEFA Nations League",provider:I.OPTICODDS,opticOddsName:"UEFA - Nations League",scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.CONCACAF_NATIONS_LEAGUE]={sport:_.SOCCER,id:p.CONCACAF_NATIONS_LEAGUE,label:"CONCACAF Nations League",provider:I.EMPTY,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.CSGO]={sport:_.ESPORTS,id:p.CSGO,label:"CS GO",opticOddsName:"CS2",provider:I.OPTICODDS,scoringType:T.MAPS,matchResolveType:S.EMPTY,periodType:d.MAP,isDrawAvailable:!1},n[p.DOTA2]={sport:_.ESPORTS,id:p.DOTA2,label:"DOTA 2",opticOddsName:"Dota 2",provider:I.OPTICODDS,scoringType:T.MAPS,matchResolveType:S.EMPTY,periodType:d.MAP,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_BASKETBALL_3X3]={sport:_.BASKETBALL,id:p.SUMMER_OLYMPICS_BASKETBALL_3X3,label:"Olympic Games Basketball 3x3",opticOddsName:"Olympics Basketball 3x3 Men",provider:I.EMPTY,scoringType:T.POINTS,matchResolveType:S.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN]={sport:_.BASKETBALL,id:p.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN,label:"Olympic Games Basketball 3x3 Women",opticOddsName:"Olympics Basketball 3x3 Women",provider:I.EMPTY,scoringType:T.POINTS,matchResolveType:S.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_QUALIFICATION]={sport:_.BASKETBALL,id:p.SUMMER_OLYMPICS_QUALIFICATION,label:"Summer Olympics Basketball Qualification",provider:I.EMPTY,scoringType:T.POINTS,matchResolveType:S.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.LOL]={sport:_.ESPORTS,id:p.LOL,label:"LOL",opticOddsName:"League of Legends",provider:I.OPTICODDS,scoringType:T.MAPS,matchResolveType:S.EMPTY,periodType:d.MAP,isDrawAvailable:!1},n[p.CONMEBOL_WC_QUALIFICATIONS]={sport:_.SOCCER,id:p.CONMEBOL_WC_QUALIFICATIONS,label:"CONMEBOL WC Qualification",provider:I.EMPTY,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.UEFA_CONFERENCE_LEAGUE]={sport:_.SOCCER,id:p.UEFA_CONFERENCE_LEAGUE,label:"UEFA Conference League",opticOddsName:"UEFA - Europa Conference League",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.NON_TITLE_BOXING]={sport:_.FIGHTING,id:p.NON_TITLE_BOXING,label:"Boxing",provider:I.EMPTY,scoringType:T.ROUNDS,matchResolveType:S.EMPTY,periodType:d.ROUND,isDrawAvailable:!1},n[p.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:p.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,label:"UEFA Champions League Qualification",opticOddsName:"UEFA - Champions League",provider:I.EMPTY,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.UEFA_EUROPA_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:p.UEFA_EUROPA_LEAGUE_QUALIFICATION,label:"UEFA Europa League Qualification",opticOddsName:"UEFA - Europa League",provider:I.EMPTY,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.UEFA_CONFERENCE_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:p.UEFA_CONFERENCE_LEAGUE_QUALIFICATION,label:"UEFA Conference League Qualification",opticOddsName:"UEFA - Europa Conference League",provider:I.EMPTY,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.US_ELECTION]={sport:_.POLITICS,id:p.US_ELECTION,label:"US Election 2024",provider:I.EMPTY,scoringType:T.EMPTY,matchResolveType:S.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.UEFA_SUPER_CUP]={sport:_.SOCCER,id:p.UEFA_SUPER_CUP,label:"UEFA Super Cup",opticOddsName:"UEFA - Super Cup",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.BRAZIL_CUP]={sport:_.SOCCER,id:p.BRAZIL_CUP,label:"Copa do Brasil",opticOddsName:"Brazil - Copa do Brasil",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.ENGLAND_CHAMPIONSHIP]={sport:_.SOCCER,id:p.ENGLAND_CHAMPIONSHIP,label:"EFL Championship",opticOddsName:"England - Championship",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SCOTLAND_PREMIERSHIP]={sport:_.SOCCER,id:p.SCOTLAND_PREMIERSHIP,label:"Scotland Premiership",opticOddsName:"Scotland - Premiership",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.BELGIUM_LEAGUE]={sport:_.SOCCER,id:p.BELGIUM_LEAGUE,label:"Belgium Jupiler Pro League",opticOddsName:"Belgium - Jupiler Pro League",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.CZECH_LEAGUE]={sport:_.SOCCER,id:p.CZECH_LEAGUE,label:"Czech Republic FNL",opticOddsName:"Czech Republic - FNL",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.CHILE_PRIMERA]={sport:_.SOCCER,id:p.CHILE_PRIMERA,label:"Chile Primera Division",opticOddsName:"Chile - Primera Division",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.FINLAND_LEAGUE]={sport:_.SOCCER,id:p.FINLAND_LEAGUE,label:"Finland Veikkausliiga",opticOddsName:"Finland - Veikkausliiga",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.ARGENTINA_PRIMERA]={sport:_.SOCCER,id:p.ARGENTINA_PRIMERA,label:"Argentina Primera Division",opticOddsName:"Argentina - Primera Division",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.RUSSIA_PREMIER]={sport:_.SOCCER,id:p.RUSSIA_PREMIER,label:"Russia Premier League",opticOddsName:"Russia - Premier League",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.TURKEY_SUPER_LEAGUE]={sport:_.SOCCER,id:p.TURKEY_SUPER_LEAGUE,label:"Turkey Super Lig",opticOddsName:"Turkey - Super Lig",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SERBIA_SUPER_LEAGUE]={sport:_.SOCCER,id:p.SERBIA_SUPER_LEAGUE,label:"Serbia Super Liga",opticOddsName:"Serbia - Super Liga",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.GREECE_SUPER_LEAGUE]={sport:_.SOCCER,id:p.GREECE_SUPER_LEAGUE,label:"Greece Super League",opticOddsName:"Greece - Super League",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.INDIA_PREMIER]={sport:_.SOCCER,id:p.INDIA_PREMIER,label:"India Calcutta Premier Division",opticOddsName:"India - Calcutta Premier Division",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.CHINA_SUPER_LEAGUE]={sport:_.SOCCER,id:p.CHINA_SUPER_LEAGUE,label:"China Super League",opticOddsName:"China - Super League",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.AUSTRALIA_A_LEAGUE]={sport:_.SOCCER,id:p.AUSTRALIA_A_LEAGUE,label:"Australia A-League",opticOddsName:"Australia - A-League",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SWITZERLAND_SUPER_LEAGUE]={sport:_.SOCCER,id:p.SWITZERLAND_SUPER_LEAGUE,label:"Switzerland Super League",opticOddsName:"Switzerland - Super League",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.BUNDESLIGA_2]={sport:_.SOCCER,id:p.BUNDESLIGA_2,label:"Bundesliga 2",opticOddsName:"Germany - Bundesliga 2",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.LA_LIGA_2]={sport:_.SOCCER,id:p.LA_LIGA_2,label:"La Liga 2",opticOddsName:"Spain - La Liga 2",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SERIE_B]={sport:_.SOCCER,id:p.SERIE_B,label:"Serie B",opticOddsName:"Italy - Serie B",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.INDIA_SUPER_LEAGUE]={sport:_.SOCCER,id:p.INDIA_SUPER_LEAGUE,label:"India Super League",opticOddsName:"India - Super League",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.LIGUE_2]={sport:_.SOCCER,id:p.LIGUE_2,label:"Ligue 2",opticOddsName:"France - Ligue 2",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.AUSTRIA_BUNDESLIGA]={sport:_.SOCCER,id:p.AUSTRIA_BUNDESLIGA,label:"Austria Bundesliga",opticOddsName:"Austria - Bundesliga",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.DENMARK_SUPER_LEAGUE]={sport:_.SOCCER,id:p.DENMARK_SUPER_LEAGUE,label:"Denmark Superliga",opticOddsName:"Denmark - Superliga",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.POLAND_LEAGUE]={sport:_.SOCCER,id:p.POLAND_LEAGUE,label:"Poland Ekstraklasa",opticOddsName:"Poland - Ekstraklasa",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SWEDEN_LEAGUE]={sport:_.SOCCER,id:p.SWEDEN_LEAGUE,label:"Sweden Allsvenskan",opticOddsName:"Sweden - Allsvenskan",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.COLOMBIA_PRIMERA_A]={sport:_.SOCCER,id:p.COLOMBIA_PRIMERA_A,label:"Colombia Primera A",opticOddsName:"Colombia - Primera A",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.ENGLAND_EFL_CUP]={sport:_.SOCCER,id:p.ENGLAND_EFL_CUP,label:"England EFL Cup",opticOddsName:"England - EFL Cup",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.ENGLAND_LEGAUE_1]={sport:_.SOCCER,id:p.ENGLAND_LEGAUE_1,label:"England League 1",opticOddsName:"England - League 1",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.URUGUAY_PRIMERA_DIVISION]={sport:_.SOCCER,id:p.URUGUAY_PRIMERA_DIVISION,label:"Uruguay Primera Division",opticOddsName:"Uruguay - Primera Division",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.AFC_CHAMPIONS_LEAGUE]={sport:_.SOCCER,id:p.AFC_CHAMPIONS_LEAGUE,label:"AFC Champions League",opticOddsName:"AFC - Champions League",provider:I.OPTICODDS,scoringType:T.GOALS,matchResolveType:S.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.EUROCUP]={sport:_.BASKETBALL,id:p.EUROCUP,label:"Eurocup",opticOddsName:"Eurocup",provider:I.OPTICODDS,scoringType:T.POINTS,matchResolveType:S.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.SPAIN_LIGA_ACB]={sport:_.BASKETBALL,id:p.SPAIN_LIGA_ACB,label:"Spain Liga ACB",opticOddsName:"Spain - Liga ACB",provider:I.OPTICODDS,scoringType:T.POINTS,matchResolveType:S.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.ITALY_LEGA_BASKET_SERIE_A]={sport:_.BASKETBALL,id:p.ITALY_LEGA_BASKET_SERIE_A,label:"Italy Lega Basket Serie A",opticOddsName:"Italy - Lega Basket Serie A",provider:I.OPTICODDS,scoringType:T.POINTS,matchResolveType:S.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.GERMANY_BBL]={sport:_.BASKETBALL,id:p.GERMANY_BBL,label:"Germany BBL",opticOddsName:"Germany - BBL",provider:I.OPTICODDS,scoringType:T.POINTS,matchResolveType:S.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.FRANCE_LNB_PRO_A]={sport:_.BASKETBALL,id:p.FRANCE_LNB_PRO_A,label:"France LNB Pro A",opticOddsName:"France - LNB Pro A",provider:I.OPTICODDS,scoringType:T.POINTS,matchResolveType:S.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.CHINA_CBA]={sport:_.BASKETBALL,id:p.CHINA_CBA,label:"China CBA",opticOddsName:"China - CBA",provider:I.OPTICODDS,scoringType:T.POINTS,matchResolveType:S.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.AUSTRALIA_NBL]={sport:_.BASKETBALL,id:p.AUSTRALIA_NBL,label:"Australia NBL",opticOddsName:"Australia - NBL",provider:I.OPTICODDS,scoringType:T.POINTS,matchResolveType:S.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.VALORANT]={sport:_.ESPORTS,id:p.VALORANT,label:"Valorant",opticOddsName:"Valorant",provider:I.OPTICODDS,scoringType:T.MAPS,matchResolveType:S.EMPTY,periodType:d.MAP,isDrawAvailable:!1},n[p.ROCKET_LEAGUE]={sport:_.ESPORTS,id:p.ROCKET_LEAGUE,label:"Rocket League",opticOddsName:"Rocket League",provider:I.OPTICODDS,scoringType:T.MAPS,matchResolveType:S.EMPTY,periodType:d.MAP,isDrawAvailable:!1},n[p.CALL_OF_DUTY]={sport:_.ESPORTS,id:p.CALL_OF_DUTY,label:"Call of Duty",opticOddsName:"Call of Duty",provider:I.OPTICODDS,scoringType:T.MAPS,matchResolveType:S.EMPTY,periodType:d.MAP,isDrawAvailable:!1},n[p.STARCRAFT]={sport:_.ESPORTS,id:p.STARCRAFT,label:"Starcraft",opticOddsName:"Starcraft",provider:I.OPTICODDS,scoringType:T.MAPS,matchResolveType:S.EMPTY,periodType:d.MAP,isDrawAvailable:!1},n[p.NFL_FUTURES]={sport:_.FUTURES,id:p.NFL_FUTURES,label:"NFL Futures",provider:I.EMPTY,scoringType:T.EMPTY,matchResolveType:S.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.NBA_FUTURES]={sport:_.FUTURES,id:p.NBA_FUTURES,label:"NBA Futures",provider:I.EMPTY,scoringType:T.EMPTY,matchResolveType:S.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.NHL_FUTURES]={sport:_.FUTURES,id:p.NHL_FUTURES,label:"NHL Futures",provider:I.EMPTY,scoringType:T.EMPTY,matchResolveType:S.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.EPL_FUTURES]={sport:_.FUTURES,id:p.EPL_FUTURES,label:"EPL Futures",provider:I.EMPTY,scoringType:T.EMPTY,matchResolveType:S.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.LIGUE_ONE_FUTURES]={sport:_.FUTURES,id:p.LIGUE_ONE_FUTURES,label:"Ligue 1 Futures",provider:I.EMPTY,scoringType:T.EMPTY,matchResolveType:S.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.BUNDESLIGA_FUTURES]={sport:_.FUTURES,id:p.BUNDESLIGA_FUTURES,label:"Bundesliga Futures",provider:I.EMPTY,scoringType:T.EMPTY,matchResolveType:S.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.LA_LIGA_FUTURES]={sport:_.FUTURES,id:p.LA_LIGA_FUTURES,label:"La Liga",provider:I.EMPTY,scoringType:T.EMPTY,matchResolveType:S.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.SERIE_A_FUTURES]={sport:_.FUTURES,id:p.SERIE_A_FUTURES,label:"Serie A Futures",provider:I.EMPTY,scoringType:T.EMPTY,matchResolveType:S.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.UEFA_CHAMPIONS_LEAGUE_FUTURES]={sport:_.FUTURES,id:p.UEFA_CHAMPIONS_LEAGUE_FUTURES,label:"UEFA Champions League Futures",provider:I.EMPTY,scoringType:T.EMPTY,matchResolveType:S.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.EUROLEAGUE_FUTURES]={sport:_.FUTURES,id:p.EUROLEAGUE_FUTURES,label:"Euroleague Futures",provider:I.EMPTY,scoringType:T.EMPTY,matchResolveType:S.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.GOLF_H2H]={sport:_.GOLF,id:p.GOLF_H2H,label:"Golf head-to-head",provider:I.EMPTY,scoringType:T.EMPTY,matchResolveType:S.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.GOLF_WINNER]={sport:_.GOLF,id:p.GOLF_WINNER,label:"Golf Tournament Winner",provider:I.EMPTY,scoringType:T.EMPTY,matchResolveType:S.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n),M=[p.CSGO,p.DOTA2,p.LOL,p.VALORANT,p.ROCKET_LEAGUE,p.CALL_OF_DUTY,p.STARCRAFT,p.TENNIS_GS,p.TENNIS_MASTERS,p.SUMMER_OLYMPICS_TENNIS,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7,p.TENNIS_MASTERS_LIVE_MAPPING_V2_1,p.TENNIS_MASTERS_LIVE_MAPPING_V2_2,p.TENNIS_MASTERS_LIVE_MAPPING_V2_3,p.TENNIS_MASTERS_LIVE_MAPPING_V2_4,p.TENNIS_MASTERS_LIVE_MAPPING_V2_5,p.TENNIS_MASTERS_LIVE_MAPPING_V2_6,p.TENNIS_MASTERS_LIVE_MAPPING_V2_7,p.TENNIS_MASTERS_LIVE_MAPPING_V2_8,p.TENNIS_MASTERS_LIVE_MAPPING_V2_9,p.TENNIS_MASTERS_LIVE_MAPPING_V2_10,p.TENNIS_MASTERS_LIVE_MAPPING_V2_11,p.TENNIS_MASTERS_LIVE_MAPPING_V2_12,p.TENNIS_MASTERS_LIVE_MAPPING_V2_13,p.TENNIS_MASTERS_LIVE_MAPPING_V2_14,p.TENNIS_MASTERS_LIVE_MAPPING_V2_15,p.TENNIS_MASTERS_LIVE_MAPPING_V2_16,p.TENNIS_MASTERS_LIVE_MAPPING_V2_17,p.TENNIS_MASTERS_LIVE_MAPPING_V2_18,p.TENNIS_MASTERS_LIVE_MAPPING_V2_19,p.TENNIS_MASTERS_LIVE_MAPPING_V2_20,p.TENNIS_MASTERS_LIVE_MAPPING_V2_21,p.TENNIS_MASTERS_LIVE_MAPPING_V2_22,p.TENNIS_WTA_LIVE_MAPPING_V2_1,p.TENNIS_WTA_LIVE_MAPPING_V2_2,p.TENNIS_WTA_LIVE_MAPPING_V2_3,p.TENNIS_WTA_LIVE_MAPPING_V2_4,p.TENNIS_WTA_LIVE_MAPPING_V2_5,p.TENNIS_WTA_LIVE_MAPPING_V2_6,p.TENNIS_WTA_LIVE_MAPPING_V2_7],C=[p.SUMMER_OLYMPICS_RUGBY,p.SUMMER_OLYMPICS_RUGBY_WOMEN],U=[p.NCAAF,p.NFL,p.MLB,p.NBA,p.NCAAB,p.NHL,p.WNBA,p.MLS,p.IPL,p.T20_BLAST],u=[701,702,703,704],m={1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21},y={320:18,6:24,33:33,16:42,44:44,45:45,11:47,50:50,12:53,13:54,15:55,57:57,61:61,65:65,66:66,17:73,76:76,14:87,152:152,153:153,156:156,158:158,132:132,134:134,138:138,141:141,209:209,230:230,268:268,288:288,296:296,310:310,319:319,322:322,327:327,380:380,381:381,399:399,406:406,407:407,409:409,445:445,453:453,454:454,497:497,536:536,8881:8881,8893:8893,8894:8894,8910:8910,9196:9196,9578:9578,9588:9588,9698:9698,9699:9699,9806:9806,9821:9821,9977:9977,9983:9983,10071:10071,10072:10072,10502:10502,10138:10138,10199:10199,10216:10216,10595:10595,10611:10611,10613:10613,10615:10615},G={1:"NCAAF",2:"NFL",3:"MLB",4:"NBA",5:"NCAAB",6:"NHL",7:"UFC",8:"WNBA",10:"USA - Major League Soccer",11:"England - Premier League",12:"France - Ligue 1",13:"Germany - Bundesliga",14:"Spain - La Liga",15:"Italy - Serie A",16:"UEFA - Champions League",17:"UEFA - Europa League",18:"FIFA - World Cup Qualifiers",19:"Japan - J1 League",45:"CONMEBOL - Copa Libertadores",57:"Netherlands - Eredivisie",61:"Portugal - Primeira Liga",138:"Spain - Copa del Rey",152:"WTA",156:"ATP",141:"Italy - Coppa Italia",209:"Germany - DFB Pokal",230:"Mexico - Liga MX",268:"Brazil - Serie A",399:"Euroleague",536:"Saudi Arabia - Saudi League",9806:"UEFA - Nations League",9977:"CS2",9983:"Dota 2",10138:"League of Legends",10216:"UEFA - Europa Conference League",20001:"UEFA - Super Cup",20002:"Brazil - Copa do Brasil",20011:"England - Championship",20101:"Scotland - Premiership",20102:"Belgium - Jupiler Pro League",20103:"Czech Republic - FNL",20104:"Chile - Primera Division",20105:"Finland - Veikkausliiga",20106:"Argentina - Primera Division",20107:"Russia - Premier League",20108:"Turkey - Super Lig",20109:"Serbia - Super Liga",20110:"Greece - Super League",20111:"India - Calcutta Premier Division",20112:"China - Super League",20113:"Australia - A-League",20114:"Switzerland - Super League",20115:"Germany - Bundesliga 2",20116:"Spain - La Liga 2",20117:"Italy - Serie B",20118:"India - Super League",20119:"France - Ligue 2",20120:"Austria - Bundesliga",20121:"Denmark - Superliga",20122:"Poland - Ekstraklasa",20123:"Sweden - Allsvenskan",20124:"Colombia - Primera A",20125:"England - EFL Cup",20126:"England - League 1",20127:"Uruguay - Primera Division",20128:"AFC - Champions League",20200:"Eurocup",20201:"Spain - Liga ACB",20202:"Italy - Lega Basket Serie A",20203:"Germany - BBL",20204:"France - LNB Pro A",20205:"China - CBA",20206:"Australia - NBL",20300:"Valorant",20301:"Rocket League",20302:"Call of Duty",20303:"Starcraft"},v=function(e){var r=c[e];return r?r.sport:_.EMPTY},D=function(e){var r=c[e];return r?r.label:""},g=function(e){var r=c[e];return r?r.provider:""},b=function(e){var r=c[e];return!!r&&r.isDrawAvailable},F=function(e){var r=c[e];return r?r.periodType:""},B=function(e){var r=c[e];return r?r.opticOddsName:void 0},h=function(e){var r=new Set;return e.filter((function(e){return"true"===e.enabled})).map((function(e){return r.add(Number(e.sportId))})),Array.from(r)},w=function(e,r){var a=new Set;return r.filter((function(r){return Number(r.sportId)===Number(e)&&"true"===r.enabled})).map((function(e){return a.add(e.marketName)})),Array.from(a)},V=function(e,r){return r.filter((function(r){return Number(r.sportId)===e}))},f=function(e,r){return r.filter((function(r){return Number(r.sportId)===Number(e)&&"Spread"===r.type&&"true"===r.enabled})).map((function(e){return e.marketName.toLowerCase()}))},Y=function(e,r){return r.filter((function(r){return Number(r.sportId)===Number(e)&&"Total"===r.type&&"true"===r.enabled})).map((function(e){return e.marketName.toLowerCase()}))},H=function(e,r,a,i,o,E){var A,t;if(M.includes(e)?(A=i.toLowerCase()==r.toLowerCase()||i.toLowerCase()==a.toLowerCase(),t=o.toLowerCase()==r.toLowerCase()||o.toLowerCase()==a.toLowerCase()):(A=i.toLowerCase()==r.toLowerCase(),t=o.toLowerCase()==a.toLowerCase()),!0!==A){var _=E.get(i.toLowerCase()),p=E.get(r.toLowerCase()),L=E.get(a.toLowerCase());if([_,p].some((function(e){return null==e})))return!1;A=M.includes(e)?_==p||_==L:_==p}if(!0!==t){var s=E.get(o.toLowerCase());if(p=E.get(r.toLowerCase()),[s,L=E.get(a.toLowerCase())].some((function(e){return null==e})))return!1;t=M.includes(e)&&s==p||s==L}return A&&t},W=function(e,r,a,i){var o;if(v(a)==_.TENNIS){var E=r.getTime(),A=e.getTime();o=Math.abs(A-E)<=Number(60*i*1e3)}else o=r.toUTCString()==e.toUTCString();return o},k=0,K="Draw",Q=0,j=.2,x=10001,X=10002,z=100,Z=function(e,r,a){if(e.some((function(e){return 0===e})))return e;var i=e.reduce((function(e,r){return e+r}),0);if(i<=1)return Array(e.length).fill(0);if(0===a){if(!(r>100*(i-1)))return e;a=r}var o=1+a/100,E=o/i,A=e.map((function(e){return e*E}));if(A.some((function(e){return e>=1})))return Array(e.length).fill(0);var t=A.reduce((function(e,r){return e+r}),0);if(t<1)return Array(e.length).fill(0);var _=o/t;return A.map((function(e){return e*_}))},J=function(e,r,a,i){var o=e.find((function(e){return Number(e.typeId)===Number(a)&&Number(e.sportId)===Number(r)}));return o?{minSpread:o.minSpread?Number(o.minSpread):i,targetSpread:o.targetSpread?Number(o.targetSpread):0}:{minSpread:i,targetSpread:0}},q=function(){return q=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var o in r=arguments[a])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},q.apply(this,arguments)},$=function(e,r,a){if(a||2===arguments.length)for(var i,o=0,E=r.length;o<E;o++)!i&&o in r||(i||(i=Array.prototype.slice.call(r,0,o)),i[o]=r[o]);return e.concat(i||Array.prototype.slice.call(r))},ee=function(e){return e===k?0:re("decimal","impliedProbability",e)},re=function(e,r,a){try{return N(e,a).to(r)}catch(e){return 0}},ae=function(e,r,a,i,o){var E=new Map;return a.forEach((function(a){var A=0,t=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===i.homeTeam.toLowerCase()}));0!==t.length&&(A=t[0].price);var _=0,p=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===i.awayTeam.toLowerCase()}));0!==p.length&&(_=p[0].price);var L=0;if(!o){var s=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===K.toLowerCase()}));0!==s.length&&(L=s[0].price)}E.set(a.toLowerCase(),{homeOdds:A,awayOdds:_,drawOdds:L})})),E},ie=function(e,r,a,i,o,E,A){var t={homeTeam:i.homeTeam,awayTeam:i.awayTeam},_=ae(i.odds,L.MONEYLINE,a,t,e),p=R(_,a,e,A,j);if(p.errorMessage)return{odds:e?[0,0]:[0,0,0],errorMessage:p.errorMessage};var s=(e?[p.homeOdds,p.awayOdds]:[p.homeOdds,p.awayOdds,p.drawOdds]).map((function(e){return ee(e)})),l=J(r,o,Q,E);return{odds:s=null!==l?Z(s,l.minSpread,l.targetSpread):Z(s,E,0)}},oe=function(e,r,a,i,o,E){var A=[[],[],[],[]],t=A[0],_=A[1],p=A[2],L=A[3],s=V(a,E),l={homeTeam:e.homeTeam,awayTeam:e.awayTeam};if(s.length>0){Ee(e.odds,s,i[0]).forEach((function(e){"Total"===e.type?.5===Math.abs(Number(e.points)%1)&&_.push(e):"Spread"===e.type?.5===Math.abs(Number(e.points)%1)&&t.push(e):"Moneyline"===e.type&&p.push(e)}));var T=$($($([],Ae(t,l),!0),te(_,l),!0),_e(p,l),!0);pe(T,r,o).forEach((function(e){var r={leagueId:Number(e.sportId),typeId:Number(e.typeId),type:e.type.toLowerCase(),line:Number(e.line||0),odds:e.odds},a=s.find((function(r){return Number(r.typeId)===Number(e.typeId)})),i=null==a?void 0:a.minOdds,o=null==a?void 0:a.maxOdds;i&&o&&(e.odds[0]>=i||e.odds[0]<=o||e.odds[1]>=i||e.odds[1]<=o)||L.push(r)}))}else console.warn("No child markets for leagueID: ".concat(Number(a)));return L},Ee=function(e,r,a){var i=r.filter((function(e){return e.marketName.toLowerCase()!==L.MONEYLINE.toLowerCase()&&"true"===e.enabled})).map((function(e){return e.marketName.toLowerCase()}));return e.filter((function(e){return i.includes(e.marketName.toLowerCase())&&e.sportsBookName.toLowerCase()==a.toLowerCase()})).map((function(e){return q(q({},e),r.find((function(r){return r.marketName.toLowerCase()===e.marketName.toLowerCase()})))}))},Ae=function(e,r){var a=e.reduce((function(e,a){var i=a.points,o=a.marketName,E=a.price,A=a.selection,t=a.typeId,_=a.sportId,p=a.type,L=A===r.homeTeam,s="".concat(o,"_").concat(L?i:-i);return e[s]||(e[s]={home:null,away:null,typeId:null,sportId:null}),L?e[s].home=E:e[s].away=E,e[s].typeId=t,e[s].type=p,e[s].sportId=_,e}),{}),i=Object.entries(a).reduce((function(e,r){var a=r[0],i=r[1],o=a.split("_"),E=(o[0],o[1]),A=parseFloat(E);return null!==i.home&&null!==i.away&&e.push({line:A,odds:[i.home,i.away],typeId:i.typeId,sportId:i.sportId,type:i.type}),e}),[]);return i},te=function(e,r){var a=e.reduce((function(e,r){if(r){var a="".concat(r.marketName,"_").concat(r.selection,"_").concat(r.points);e[a]||(e[a]={over:null,under:null}),"over"===r.selectionLine?e[a].over=r.price:"under"===r.selectionLine&&(e[a].under=r.price),e[a].typeId=r.typeId,e[a].type=r.type,e[a].sportId=r.sportId}return e}),{}),i=Object.entries(a).reduce((function(e,a){var i=a[0],o=a[1],E=i.split("_"),A=(E[0],E[1]),t=E[2],_=parseFloat(t),p=A===r.awayTeam;return null!==o.over&&null!==o.under&&e.push({line:_,odds:[o.over,o.under],typeId:p?Number(o.typeId)+1:o.typeId,sportId:o.sportId,type:o.type}),e}),[]);return i},_e=function(e,r){var a=e.reduce((function(e,a){var i=a.price,o=a.selection,E=a.typeId,A=a.sportId,t=a.type,_=E;return e[_]||(e[_]={home:null,away:null,draw:null,typeId:null,sportId:null}),o.toLowerCase()===r.homeTeam.toLowerCase()?e[_].home=i:o.toLowerCase()===r.awayTeam.toLowerCase()?e[_].away=i:o.toLowerCase()===K.toLowerCase()&&(e[_].draw=i),e[_].typeId=E,e[_].type=t,e[_].sportId=A,e}),{}),i=Object.entries(a).reduce((function(e,r){r[0];var a=r[1];return null!==a.home&&null!==a.away&&e.push({odds:a.draw?[a.home,a.away,a.draw]:[a.home,a.away],typeId:a.typeId,sportId:a.sportId,type:a.type}),e}),[]);return i},pe=function(e,r,a){var i=[];return e.forEach((function(e){var o=3===e.odds.length,E=ee(e.odds[0])||k,A=ee(e.odds[1])||k,t=ee(e.odds[2])||k,_=o?[E,A,t]:[E,A];if(!(E===k||A===k||o&&t===k)){var p,L=J(r,e.sportId,e.typeId,a);p=null!==L?Z(_,L.minSpread,L.targetSpread):Z(_,a,0),i.push(q(q({},e),{odds:p}))}})),i},Le=function(){return Le=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var o in r=arguments[a])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},Le.apply(this,arguments)},se=function(e,r,a,i,o,E,A,t){var _=i.filter((function(r){return r.sportId===String(e.leagueId)})),p=ie(!o,_,a,r,e.leagueId,E,A);p.errorMessage?(e.odds=e.odds.map((function(){return{american:0,decimal:0,normalizedImplied:0}})),e.errorMessage=p.errorMessage):e.odds=p.odds.map((function(r){return 0!=r?{american:N("impliedProbability",r).to("moneyline"),decimal:Number(N("impliedProbability",r).to("decimal").toFixed(10)),normalizedImplied:r}:(e.errorMessage="Bad odds after spread adjustment",{american:0,decimal:0,normalizedImplied:0})}));var L=oe(r,_,e.leagueId,a,E,t).map((function(r){var a=Le(Le({},e),r);return a.odds.length>0&&(a.odds=a.odds.map((function(e){return 0==e?{american:0,decimal:0,normalizedImplied:0}:{american:N("impliedProbability",e).to("moneyline"),decimal:Number(N("impliedProbability",e).to("decimal").toFixed(10)),normalizedImplied:e}}))),a}));return e.childMarkets=L,e},le=function(e,r,a){var i=v(r),o=e.homeTeam,E=e.homeTotal,A=e.awayTeam,t=e.awayTotal,p=e.clock,L=e.period,s=e.status,l=parseInt(L);return"completed"==s.toLowerCase()?{allow:!1,message:"Blocking game ".concat(o," - ").concat(A," because it is no longer live.")}:i===_.BASKETBALL?Te(o,A,l,a.get(_.BASKETBALL)):i===_.HOCKEY?Te(o,A,l,a.get(_.HOCKEY)):i===_.BASEBALL?Te(o,A,l,a.get(_.BASEBALL)):i===_.SOCCER?Se(o,A,p,L,a.get(_.SOCCER)):i===_.TENNIS?de(e,o,A,L,E,t,r,i):i===_.VOLLEYBALL?de(e,o,A,l,E,t,r,i):{allow:!0,message:"The sport ".concat(r," does not have constraint")}},Te=function(e,r,a,i){return!Number.isNaN(a)&&a>=i?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to period: ").concat(a,". period")}:{allow:!0,message:""}},Se=function(e,r,a,i,o){var E=Number(a);return!Number.isNaN(E)&&E>=o||Number.isNaN(E)&&"half"!=i.toLowerCase()?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to clock: ").concat(a,"min")}:{allow:!0,message:""}},de=function(e,r,a,i,o,E,A,t){var L=Number(i),s=Ie(L,e),l="atp"==e.league.toLowerCase(),T={home:o,away:E};return t==_.VOLLEYBALL?ne(r,a,s,T,Ne,5==L?Re:Oe):A.toString().startsWith(p.TENNIS_GS)&&l?ne(r,a,s,T,Pe,Me):A.toString().startsWith(p.TENNIS_GS)&&!l||A.toString().startsWith(p.TENNIS_MASTERS)||A.toString().startsWith(p.SUMMER_OLYMPICS_TENNIS)||A.toString().startsWith(p.TENNIS_WTA)?ne(r,a,s,T,ce,Me):{allow:!0,message:"The sport ".concat(A," does not have result constraint")}},Ie=function(e,r){var a=0,i=0;switch(e){case 1:a=Number(r.homePeriod1),i=Number(r.awayPeriod1);break;case 2:a=Number(r.homePeriod2),i=Number(r.awayPeriod2);break;case 3:a=Number(r.homePeriod3),i=Number(r.awayPeriod3);break;case 4:a=Number(r.homePeriod4),i=Number(r.awayPeriod4);break;case 5:a=Number(r.homePeriod5),i=Number(r.awayPeriod5)}return{home:a,away:i}},ne=function(e,r,a,i,o,E){return Number(i.home)!=o&&Number(i.away)!=o||!(Number(i.home)==o&&a.home>=E||Number(i.away)==o&&a.away>=E)?{allow:!0,message:"",currentHomeGameScore:a.home,currentAwayGameScore:a.away}:{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to current result: ").concat(i.home," - ").concat(i.away," (").concat(a.home," - ").concat(a.away,")")}},Ne=2,Oe=20,Re=10,Pe=2,ce=1,Me=5,Ce=function(){return Ce=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var o in r=arguments[a])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},Ce.apply(this,arguments)},Ue=function(e){return e.map((function(e){return{gameId:e.id,startDate:e.start_date,homeTeam:e.home_team_display,awayTeam:e.away_team_display}}))},ue=function(e){return e.map((function(e){return Ce(Ce({gameId:e.fixture.id,sport:e.sport.name,league:e.league.name.toLowerCase(),status:e.fixture.status?e.fixture.status.toLowerCase():e.fixture.status,isLive:e.fixture.is_live,clock:e.in_play.clock,period:e.in_play.period?e.in_play.period.toLowerCase():e.in_play.period,homeTeam:e.fixture.home_team_display,awayTeam:e.fixture.away_team_display,homeTotal:e.scores.home.total,awayTotal:e.scores.away.total},ye(e.scores.home.periods,"home")),ye(e.scores.away.periods,"away"))}))},me=function(e){return e.map((function(e){return{gameId:e.id,startDate:e.start_date,homeTeam:e.home_team_display,awayTeam:e.away_team_display,isLive:e.is_live,status:e.status,sport:e.sport.id,league:e.league.name,odds:e.odds.map((function(r){return{id:r.id,sportsBookName:r.sportsbook,name:r.name,price:r.price,timestamp:r.timestamp,points:r.points,isMain:r.is_main,isLive:e.is_live,marketName:r.market.toLowerCase(),playerId:r.player_id,selection:r.selection,selectionLine:r.selection_line}}))}}))},ye=function(e,r){return Object.values(e).reduce((function(e,a,i){var o;return Ce(Ce({},e),((o={})["".concat(r,"Period").concat(i+1)]=a,o))}),{})};return r})()));
|
|
1
|
+
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.thalesUtils=r():e.thalesUtils=r()}(this,(()=>(()=>{"use strict";var e={d:(r,a)=>{for(var i in a)e.o(a,i)&&!e.o(r,i)&&Object.defineProperty(r,i,{enumerable:!0,get:a[i]})},o:(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};e.r(r),e.d(r,{AMERICAN_LEAGUES:()=>u,DRAW:()=>K,LEAGUES_NO_FORMAL_HOME_AWAY:()=>c,LEAGUES_NO_LIVE_CONSTRAINTS:()=>C,League:()=>L,LeagueIdMapEnetpulse:()=>y,LeagueIdMapOpticOdds:()=>G,LeagueIdMapRundown:()=>m,LeagueMap:()=>M,MIN_ODDS_FOR_DIFF_CHECKING:()=>j,MONEYLINE_TYPE_ID:()=>Q,MULTIPLIER_100:()=>z,MatchResolveType:()=>l,MoneylineTypes:()=>p,PeriodType:()=>I,Provider:()=>N,ScoringType:()=>s,Sport:()=>t,SpreadTypes:()=>T,TAG_CHILD_SPREAD:()=>x,TAG_CHILD_TOTALS:()=>X,TotalTypes:()=>S,UFC_LEAGUE_IDS:()=>U,ZERO:()=>k,adjustSpreadOnChildOdds:()=>Le,adjustSpreadOnOdds:()=>Z,allowGameSportWithPeriodConstraint:()=>se,allowGameSportWithResultConstraint:()=>Ie,allowSoccerGame:()=>le,calculateImpliedOddsDifference:()=>P,checkGameContraints:()=>Se,checkOddsFromBookmakers:()=>O,createChildMarkets:()=>oe,fetchResultInCurrentSet:()=>Ne,filterOddsByMarketNameBookmaker:()=>Ee,filterOddsByMarketNameTeamNameBookmaker:()=>ae,gamesDatesMatching:()=>W,getBetTypesForLeague:()=>h,getBookmakersArray:()=>R,getLeagueInfo:()=>w,getLeagueIsDrawAvailable:()=>b,getLeagueLabel:()=>D,getLeagueOpticOddsName:()=>B,getLeaguePeriodType:()=>F,getLeagueProvider:()=>g,getLeagueSport:()=>v,getLeagueSpreadTypes:()=>f,getLeagueTotalTypes:()=>Y,getLiveSupportedLeagues:()=>V,getParentOdds:()=>ie,getSpreadData:()=>J,groupAndFormatMoneylineOdds:()=>te,groupAndFormatSpreadOdds:()=>Ae,groupAndFormatTotalOdds:()=>_e,mapOpticOddsApiFixtureOdds:()=>me,mapOpticOddsApiFixtures:()=>ue,mapOpticOddsApiResults:()=>Ue,processMarket:()=>Te,teamNamesMatching:()=>H}),"function"!=typeof Object.assign&&(Object.assign=function(e,r){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var a=Object(e),i=1;i<arguments.length;i++){var o=arguments[i];if(null!=o)for(var E in o)Object.prototype.hasOwnProperty.call(o,E)&&(a[E]=o[E])}return a});var a=function(e){return parseFloat(e.toPrecision(12))};function i(e,r,a){return void 0===a||0==+a?Math[e](r):(r=+r,a=+a,isNaN(r)||"number"!=typeof a||a%1!=0?NaN:r<0?-i(e,-r,a):(r=r.toString().split("e"),+((r=(r=Math[e](+(r[0]+"e"+(r[1]?+r[1]-a:-a)))).toString().split("e"))[0]+"e"+(r[1]?+r[1]+a:a))))}var o,E,A={decimal:{from:function(e){if((e=parseFloat(e))<=1)throw new Error("Outside valid range.");return e},to:function(){return this.decimalValue}},moneyline:{from:function(e){return(e=parseFloat(e))>=0?e/100+1:100/-e+1},to:function(){return this.decimalValue>=2?a(100*(this.decimalValue-1)):a(-100/(this.decimalValue-1))}},hongKong:{from:function(e){if((e=parseFloat(e))<0)throw new Error("Outside valid range.");return e+1},to:function(){return a(this.decimalValue-1)}},impliedProbability:{from:function(e){if((e="string"==typeof e&&"%"==e.slice(-1)?parseFloat(e)/100:parseFloat(e))<=0||e>=1)throw new Error("Outside valid range");return 1/e},to:function(e){if(e.percentage){var r=a(100/this.decimalValue);return null!==e.precision&&(r=i("round",r,-e.precision)),r.toString()+"%"}return a(1/this.decimalValue)}},fractional:{from:function(e){var r,a=e.toString().split("/");if(e=parseFloat(a[0]),2===a.length)r=parseFloat(a[1]);else{if(1!==a.length)throw new Error("Invalid fraction");r=1}if(0===e||0===r||e/r<=0)throw new Error("Outside valid range");return 1+e/r},to:function(e){return function(e,r){for(var a,i=[0,1],o=[1,0],E=function(e){var r=null,a=e.toString().indexOf("E");-1==a&&(a=e.toString().indexOf("e"));var i=null,o=(r=-1==a?e.toString():e.toString().substring(0,a)).toString().indexOf(".");-1==o?i=r:0===o?i=r.substring(1,r.length):o<r.length&&(i=r.substring(0,o)+r.substring(o+1,r.length));var E=i,A=E.toString().length,_=e,t=_.toString().length;0===_&&(t=0);var L,p=A-t;for(L=p;L>0&&E%2==0;L--)E/=2;for(L=p;L>0&&E%5==0;L--)E/=5;return E}(e),A=e,_=Math.pow(10,-r)/2,t=2;t<1e3;t++){var L=Math.floor(A);if(i[t]=L*i[t-1]+i[t-2],Math.abs(i[t])>E)return;if(o[t]=L*o[t-1]+o[t-2],a=i[t]/o[t],Math.abs(a-e)<_||NaN==a)return i[t].toString()+"/"+o[t].toString();A=1/(A-L)}}(this.decimalValue-1,e.precision||12)}},malay:{from:function(e){if((e=parseFloat(e))<=-1||e>1)throw new Error("Outside valid range.");return e<0&&(e=-1/e),e+1},to:function(){return this.decimalValue<=2?a(this.decimalValue-1):a(-1/(this.decimalValue-1))}},indonesian:{from:function(e){if(0===(e=parseFloat(e)))throw new Error("Outside valid range.");return e>=1?e+1:-1/e+1},to:function(){return this.decimalValue<2?a(-1/(this.decimalValue-1)):a(this.decimalValue-1)}}},_=((E=function(e){if("number"!=typeof e||isNaN(e))throw new Error("Invalid odds");this.decimalValue=a(e)}).prototype=(o=function(){throw new Error("This constructor is private, please use the from* functions")}).prototype,o.from=function(e,r){if(!A.hasOwnProperty(e))throw new Error("Unknown format "+e+".");var a=A[e].from(r);return new E(a)},o);_.prototype.to=function(e,r){if(!A.hasOwnProperty(e))throw new Error("Unknown format "+e+".");r=Object.assign({precision:null,percentage:!1},r);var a=A[e].to.call(this,r);return"number"==typeof a&&null!==r.precision&&(a=i("round",a,-r.precision)),a};var t,L,p,T,S,s,l,I,N,d,n=_.from,R=function(e,r,a){var i=e.find((function(e){return Number(e.sportId)===Number(r)}));if(i){if(""==i.primaryBookmaker)return a;var o=[];return i.primaryBookmaker&&o.push(i.primaryBookmaker),i.secondaryBookmaker&&o.push(i.secondaryBookmaker),i.tertiaryBookmaker&&o.push(i.tertiaryBookmaker),o}return a},O=function(e,r,a,i,o){var E=e.get(r[0]);if(!E)return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause no matching bookmakers have been found"};var A=E.homeOdds,_=E.awayOdds,t=a?0:E.drawOdds;return r.some((function(r){var i=e.get(r);return!!i&&(0===i.homeOdds||0===i.awayOdds||!a&&0===i.drawOdds||1===i.homeOdds||1===i.awayOdds||!a&&1===i.drawOdds)}))?{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause bookmakers have 0 or 1 odds"}:1==r.length?{homeOdds:A,awayOdds:_,drawOdds:a?0:t}:r.slice(1).some((function(r){var E=e.get(r);if(E){var L=E.homeOdds,p=E.awayOdds,T=E.drawOdds,S=n("decimal",A).to("impliedProbability"),s=n("decimal",_).to("impliedProbability"),l=a?0:n("decimal",t).to("impliedProbability"),I=n("decimal",L).to("impliedProbability"),N=n("decimal",p).to("impliedProbability"),d=a?0:n("decimal",T).to("impliedProbability"),R=P(S,I),O=P(s,N),M=a?0:P(l,d);if(R>i&&S>o&&I>o||O>i&&s>o&&N>o||!a&&M>i&&l>o&&d>o)return!0}return!1}))?{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds due to percentage difference between bookmakers"}:{homeOdds:A,awayOdds:_,drawOdds:a?0:t}},P=function(e,r){return Math.abs(e-r)/e*100};!function(e){e.SOCCER="Soccer",e.FOOTBALL="Football",e.BASKETBALL="Basketball",e.BASEBALL="Baseball",e.HOCKEY="Hockey",e.FIGHTING="Fighting",e.TENNIS="Tennis",e.ESPORTS="eSports",e.RUGBY="Rugby",e.VOLLEYBALL="Volleyball",e.HANDBALL="Handball",e.WATERPOLO="Waterpolo",e.CRICKET="Cricket",e.MOTOSPORT="Motosport",e.GOLF="Golf",e.TABLE_TENNIS="TableTennis",e.POLITICS="Politics",e.FUTURES="Futures",e.EMPTY=""}(t||(t={})),function(e){e[e.NCAAF=1]="NCAAF",e[e.NFL=2]="NFL",e[e.MLB=3]="MLB",e[e.NBA=4]="NBA",e[e.NCAAB=5]="NCAAB",e[e.NHL=6]="NHL",e[e.UFC=7]="UFC",e[e.WNBA=8]="WNBA",e[e.MLS=10]="MLS",e[e.EPL=11]="EPL",e[e.LIGUE_ONE=12]="LIGUE_ONE",e[e.BUNDESLIGA=13]="BUNDESLIGA",e[e.LA_LIGA=14]="LA_LIGA",e[e.SERIE_A=15]="SERIE_A",e[e.UEFA_CL=16]="UEFA_CL",e[e.UEFA_EL=17]="UEFA_EL",e[e.FIFA_WC=18]="FIFA_WC",e[e.J1_LEAGUE=19]="J1_LEAGUE",e[e.IPL=20]="IPL",e[e.T20_BLAST=21]="T20_BLAST",e[e.IIHF_WORLD_CHAMPIONSHIP=33]="IIHF_WORLD_CHAMPIONSHIP",e[e.COPA_AMERICA=44]="COPA_AMERICA",e[e.COPA_LIBERTADORES=45]="COPA_LIBERTADORES",e[e.UEFA_EURO=50]="UEFA_EURO",e[e.EREDIVISIE=57]="EREDIVISIE",e[e.PRIMEIRA_LIGA=61]="PRIMEIRA_LIGA",e[e.SUMMER_OLYMPICS_SOCCER_WOMEN=65]="SUMMER_OLYMPICS_SOCCER_WOMEN",e[e.SUMMER_OLYMPICS_SOCCER=66]="SUMMER_OLYMPICS_SOCCER",e[e.FIFA_WC_WOMEN=76]="FIFA_WC_WOMEN",e[e.ENGLAND_CUP=132]="ENGLAND_CUP",e[e.FRANCE_CUP=134]="FRANCE_CUP",e[e.SPAIN_CUP=138]="SPAIN_CUP",e[e.ITALY_CUP=141]="ITALY_CUP",e[e.TENNIS_WTA=152]="TENNIS_WTA",e[e.TENNIS_GS=153]="TENNIS_GS",e[e.TENNIS_MASTERS=156]="TENNIS_MASTERS",e[e.SUMMER_OLYMPICS_TENNIS=158]="SUMMER_OLYMPICS_TENNIS",e[e.GERMANY_CUP=209]="GERMANY_CUP",e[e.LIGA_MX=230]="LIGA_MX",e[e.BRAZIL_1=268]="BRAZIL_1",e[e.UEFA_EURO_U21=288]="UEFA_EURO_U21",e[e.FIFA_WORLD_CUP_U20=296]="FIFA_WORLD_CUP_U20",e[e.SUMMER_OLYMPICS_HANDBALL_WOMEN=380]="SUMMER_OLYMPICS_HANDBALL_WOMEN",e[e.SUMMER_OLYMPICS_HANDBALL=381]="SUMMER_OLYMPICS_HANDBALL",e[e.EUROLEAGUE=399]="EUROLEAGUE",e[e.SUMMER_OLYMPICS_BASKETBALL=406]="SUMMER_OLYMPICS_BASKETBALL",e[e.SUMMER_OLYMPICS_BASKETBALL_WOMEN=407]="SUMMER_OLYMPICS_BASKETBALL_WOMEN",e[e.FIBA_WORLD_CUP=409]="FIBA_WORLD_CUP",e[e.FORMULA1=445]="FORMULA1",e[e.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN=453]="SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN",e[e.SUMMER_OLYMPICS_BEACH_VOLEYBALL=454]="SUMMER_OLYMPICS_BEACH_VOLEYBALL",e[e.MOTOGP=497]="MOTOGP",e[e.SAUDI_PROFESSIONAL_LEAGUE=536]="SAUDI_PROFESSIONAL_LEAGUE",e[e.SUMMER_OLYMPICS_WATERPOLO=8881]="SUMMER_OLYMPICS_WATERPOLO",e[e.SUMMER_OLYMPICS_VOLEYBALL_WOMEN=8893]="SUMMER_OLYMPICS_VOLEYBALL_WOMEN",e[e.SUMMER_OLYMPICS_VOLEYBALL=8894]="SUMMER_OLYMPICS_VOLEYBALL",e[e.SUMMER_OLYMPICS_TABLE_TENNIS=8910]="SUMMER_OLYMPICS_TABLE_TENNIS",e[e.BOXING=9196]="BOXING",e[e.SUMMER_OLYMPICS_RUGBY=9578]="SUMMER_OLYMPICS_RUGBY",e[e.SUMMER_OLYMPICS_RUGBY_WOMEN=9588]="SUMMER_OLYMPICS_RUGBY_WOMEN",e[e.SUMMER_OLYMPICS_HOCKEY_WOMEN=9698]="SUMMER_OLYMPICS_HOCKEY_WOMEN",e[e.SUMMER_OLYMPICS_HOCKEY=9699]="SUMMER_OLYMPICS_HOCKEY",e[e.UEFA_NATIONS_LEAGUE=9806]="UEFA_NATIONS_LEAGUE",e[e.CONCACAF_NATIONS_LEAGUE=9821]="CONCACAF_NATIONS_LEAGUE",e[e.CSGO=9977]="CSGO",e[e.DOTA2=9983]="DOTA2",e[e.SUMMER_OLYMPICS_BASKETBALL_3X3=10071]="SUMMER_OLYMPICS_BASKETBALL_3X3",e[e.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN=10072]="SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN",e[e.SUMMER_OLYMPICS_QUALIFICATION=10502]="SUMMER_OLYMPICS_QUALIFICATION",e[e.LOL=10138]="LOL",e[e.CONMEBOL_WC_QUALIFICATIONS=10199]="CONMEBOL_WC_QUALIFICATIONS",e[e.UEFA_CONFERENCE_LEAGUE=10216]="UEFA_CONFERENCE_LEAGUE",e[e.NON_TITLE_BOXING=10595]="NON_TITLE_BOXING",e[e.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION=10611]="UEFA_CHAMPIONS_LEAGUE_QUALIFICATION",e[e.UEFA_EUROPA_LEAGUE_QUALIFICATION=10613]="UEFA_EUROPA_LEAGUE_QUALIFICATION",e[e.UEFA_CONFERENCE_LEAGUE_QUALIFICATION=10615]="UEFA_CONFERENCE_LEAGUE_QUALIFICATION",e[e.US_ELECTION=2e4]="US_ELECTION",e[e.UEFA_SUPER_CUP=20001]="UEFA_SUPER_CUP",e[e.BRAZIL_CUP=20002]="BRAZIL_CUP",e[e.ENGLAND_CHAMPIONSHIP=20011]="ENGLAND_CHAMPIONSHIP",e[e.SCOTLAND_PREMIERSHIP=20101]="SCOTLAND_PREMIERSHIP",e[e.BELGIUM_LEAGUE=20102]="BELGIUM_LEAGUE",e[e.CZECH_LEAGUE=20103]="CZECH_LEAGUE",e[e.CHILE_PRIMERA=20104]="CHILE_PRIMERA",e[e.FINLAND_LEAGUE=20105]="FINLAND_LEAGUE",e[e.ARGENTINA_PRIMERA=20106]="ARGENTINA_PRIMERA",e[e.RUSSIA_PREMIER=20107]="RUSSIA_PREMIER",e[e.TURKEY_SUPER_LEAGUE=20108]="TURKEY_SUPER_LEAGUE",e[e.SERBIA_SUPER_LEAGUE=20109]="SERBIA_SUPER_LEAGUE",e[e.GREECE_SUPER_LEAGUE=20110]="GREECE_SUPER_LEAGUE",e[e.INDIA_PREMIER=20111]="INDIA_PREMIER",e[e.CHINA_SUPER_LEAGUE=20112]="CHINA_SUPER_LEAGUE",e[e.AUSTRALIA_A_LEAGUE=20113]="AUSTRALIA_A_LEAGUE",e[e.SWITZERLAND_SUPER_LEAGUE=20114]="SWITZERLAND_SUPER_LEAGUE",e[e.BUNDESLIGA_2=20115]="BUNDESLIGA_2",e[e.LA_LIGA_2=20116]="LA_LIGA_2",e[e.SERIE_B=20117]="SERIE_B",e[e.INDIA_SUPER_LEAGUE=20118]="INDIA_SUPER_LEAGUE",e[e.LIGUE_2=20119]="LIGUE_2",e[e.AUSTRIA_BUNDESLIGA=20120]="AUSTRIA_BUNDESLIGA",e[e.DENMARK_SUPER_LEAGUE=20121]="DENMARK_SUPER_LEAGUE",e[e.POLAND_LEAGUE=20122]="POLAND_LEAGUE",e[e.SWEDEN_LEAGUE=20123]="SWEDEN_LEAGUE",e[e.COLOMBIA_PRIMERA_A=20124]="COLOMBIA_PRIMERA_A",e[e.ENGLAND_EFL_CUP=20125]="ENGLAND_EFL_CUP",e[e.ENGLAND_LEGAUE_1=20126]="ENGLAND_LEGAUE_1",e[e.URUGUAY_PRIMERA_DIVISION=20127]="URUGUAY_PRIMERA_DIVISION",e[e.AFC_CHAMPIONS_LEAGUE=20128]="AFC_CHAMPIONS_LEAGUE",e[e.EUROCUP=20200]="EUROCUP",e[e.SPAIN_LIGA_ACB=20201]="SPAIN_LIGA_ACB",e[e.ITALY_LEGA_BASKET_SERIE_A=20202]="ITALY_LEGA_BASKET_SERIE_A",e[e.GERMANY_BBL=20203]="GERMANY_BBL",e[e.FRANCE_LNB_PRO_A=20204]="FRANCE_LNB_PRO_A",e[e.CHINA_CBA=20205]="CHINA_CBA",e[e.AUSTRALIA_NBL=20206]="AUSTRALIA_NBL",e[e.VALORANT=20300]="VALORANT",e[e.ROCKET_LEAGUE=20301]="ROCKET_LEAGUE",e[e.CALL_OF_DUTY=20302]="CALL_OF_DUTY",e[e.STARCRAFT=20303]="STARCRAFT",e[e.NFL_FUTURES=30002]="NFL_FUTURES",e[e.NBA_FUTURES=30004]="NBA_FUTURES",e[e.NHL_FUTURES=30006]="NHL_FUTURES",e[e.EPL_FUTURES=30011]="EPL_FUTURES",e[e.LIGUE_ONE_FUTURES=30012]="LIGUE_ONE_FUTURES",e[e.BUNDESLIGA_FUTURES=30013]="BUNDESLIGA_FUTURES",e[e.LA_LIGA_FUTURES=30014]="LA_LIGA_FUTURES",e[e.SERIE_A_FUTURES=30015]="SERIE_A_FUTURES",e[e.UEFA_CHAMPIONS_LEAGUE_FUTURES=30016]="UEFA_CHAMPIONS_LEAGUE_FUTURES",e[e.EUROLEAGUE_FUTURES=30399]="EUROLEAGUE_FUTURES",e[e.GOLF_H2H=100021]="GOLF_H2H",e[e.GOLF_WINNER=100121]="GOLF_WINNER",e[e.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_0=15611]="TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_0",e[e.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_1=15612]="TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_1",e[e.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_2=15613]="TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_2",e[e.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_3=15614]="TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_3",e[e.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_4=15615]="TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_4",e[e.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_5=15616]="TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_5",e[e.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_6=15617]="TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_6",e[e.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_7=15618]="TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_7",e[e.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_0=15211]="TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_0",e[e.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_1=15212]="TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_1",e[e.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_2=15213]="TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_2",e[e.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_3=15214]="TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_3",e[e.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_4=15215]="TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_4",e[e.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_5=15216]="TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_5",e[e.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_6=15217]="TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_6",e[e.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_7=15218]="TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_7",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_1=15622]="TENNIS_MASTERS_LIVE_MAPPING_V2_1",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_2=15623]="TENNIS_MASTERS_LIVE_MAPPING_V2_2",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_3=15624]="TENNIS_MASTERS_LIVE_MAPPING_V2_3",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_4=15625]="TENNIS_MASTERS_LIVE_MAPPING_V2_4",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_5=15626]="TENNIS_MASTERS_LIVE_MAPPING_V2_5",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_6=15627]="TENNIS_MASTERS_LIVE_MAPPING_V2_6",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_7=15628]="TENNIS_MASTERS_LIVE_MAPPING_V2_7",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_8=15632]="TENNIS_MASTERS_LIVE_MAPPING_V2_8",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_9=15633]="TENNIS_MASTERS_LIVE_MAPPING_V2_9",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_10=15634]="TENNIS_MASTERS_LIVE_MAPPING_V2_10",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_11=15635]="TENNIS_MASTERS_LIVE_MAPPING_V2_11",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_12=15636]="TENNIS_MASTERS_LIVE_MAPPING_V2_12",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_13=15637]="TENNIS_MASTERS_LIVE_MAPPING_V2_13",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_14=15638]="TENNIS_MASTERS_LIVE_MAPPING_V2_14",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_15=15641]="TENNIS_MASTERS_LIVE_MAPPING_V2_15",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_16=15642]="TENNIS_MASTERS_LIVE_MAPPING_V2_16",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_17=15643]="TENNIS_MASTERS_LIVE_MAPPING_V2_17",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_18=15644]="TENNIS_MASTERS_LIVE_MAPPING_V2_18",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_19=15645]="TENNIS_MASTERS_LIVE_MAPPING_V2_19",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_20=15646]="TENNIS_MASTERS_LIVE_MAPPING_V2_20",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_21=15647]="TENNIS_MASTERS_LIVE_MAPPING_V2_21",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_22=15648]="TENNIS_MASTERS_LIVE_MAPPING_V2_22",e[e.TENNIS_WTA_LIVE_MAPPING_V2_1=15222]="TENNIS_WTA_LIVE_MAPPING_V2_1",e[e.TENNIS_WTA_LIVE_MAPPING_V2_2=15223]="TENNIS_WTA_LIVE_MAPPING_V2_2",e[e.TENNIS_WTA_LIVE_MAPPING_V2_3=15224]="TENNIS_WTA_LIVE_MAPPING_V2_3",e[e.TENNIS_WTA_LIVE_MAPPING_V2_4=15225]="TENNIS_WTA_LIVE_MAPPING_V2_4",e[e.TENNIS_WTA_LIVE_MAPPING_V2_5=15226]="TENNIS_WTA_LIVE_MAPPING_V2_5",e[e.TENNIS_WTA_LIVE_MAPPING_V2_6=15227]="TENNIS_WTA_LIVE_MAPPING_V2_6",e[e.TENNIS_WTA_LIVE_MAPPING_V2_7=15228]="TENNIS_WTA_LIVE_MAPPING_V2_7"}(L||(L={})),function(e){e.MONEYLINE="Moneyline"}(p||(p={})),function(e){e.ASIAN_HANDICAP="Asian Handicap",e.GAME_SPREAD="Game Spread",e.POINT_SPREAD="Point Spread",e.GOAL_SPREAD="Goal Spread",e.RUN_LINE="Run Line",e.PUCK_LINE="Puck Line"}(T||(T={})),function(e){e.TOTAL_GAMES="Total Games",e.TOTAL_GOALS="Total Goals",e.TOTAL_POINTS="Total Points",e.TOTAL_RUNS="Total Runs"}(S||(S={})),function(e){e.POINTS="points",e.GOALS="goals",e.ROUNDS="rounds",e.SETS="sets",e.MAPS="maps",e.EMPTY=""}(s||(s={})),function(e){e.OVERTIME="overtime",e.REGULAR="regular",e.EMPTY=""}(l||(l={})),function(e){e.QUARTER="quarter",e.HALF="half",e.PERIOD="period",e.ROUND="round",e.INNING="inning",e.SET="set",e.MAP="map",e.EMPTY=""}(I||(I={})),function(e){e.RUNDOWN="rundown",e.ENETPULSE="enetpulse",e.JSONODDS="jsonOdds",e.OPTICODDS="opticOdds",e.EMPTY=""}(N||(N={}));var M=((d={})[L.NCAAF]={sport:t.FOOTBALL,id:L.NCAAF,label:"NCAA Football",opticOddsName:"NCAAF",provider:N.OPTICODDS,scoringType:s.POINTS,matchResolveType:l.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1},d[L.NFL]={sport:t.FOOTBALL,id:L.NFL,label:"NFL",opticOddsName:"NFL",provider:N.OPTICODDS,scoringType:s.POINTS,matchResolveType:l.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1},d[L.MLB]={sport:t.BASEBALL,id:L.MLB,label:"MLB",opticOddsName:"MLB",provider:N.OPTICODDS,scoringType:s.POINTS,matchResolveType:l.OVERTIME,periodType:I.INNING,isDrawAvailable:!1},d[L.NBA]={sport:t.BASKETBALL,id:L.NBA,label:"NBA",opticOddsName:"NBA",provider:N.OPTICODDS,scoringType:s.POINTS,matchResolveType:l.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1},d[L.NCAAB]={sport:t.BASKETBALL,id:L.NCAAB,label:"NCAA Basketball",opticOddsName:"NCAAB",provider:N.OPTICODDS,scoringType:s.POINTS,matchResolveType:l.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1},d[L.NHL]={sport:t.HOCKEY,id:L.NHL,label:"NHL",opticOddsName:"NHL",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.OVERTIME,periodType:I.PERIOD,isDrawAvailable:!1},d[L.UFC]={sport:t.FIGHTING,id:L.UFC,label:"UFC",provider:N.OPTICODDS,scoringType:s.ROUNDS,matchResolveType:l.EMPTY,periodType:I.ROUND,isDrawAvailable:!1},d[L.WNBA]={sport:t.BASKETBALL,id:L.WNBA,label:"WNBA",opticOddsName:"WNBA",provider:N.OPTICODDS,scoringType:s.POINTS,matchResolveType:l.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1},d[L.MLS]={sport:t.SOCCER,id:L.MLS,label:"MLS",opticOddsName:"USA - Major League Soccer",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.EPL]={sport:t.SOCCER,id:L.EPL,label:"EPL",opticOddsName:"England - Premier League",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.LIGUE_ONE]={sport:t.SOCCER,id:L.LIGUE_ONE,label:"Ligue 1",opticOddsName:"France - Ligue 1",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.BUNDESLIGA]={sport:t.SOCCER,id:L.BUNDESLIGA,label:"Bundesliga",opticOddsName:"Germany - Bundesliga",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.LA_LIGA]={sport:t.SOCCER,id:L.LA_LIGA,label:"La Liga",opticOddsName:"Spain - La Liga",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.SERIE_A]={sport:t.SOCCER,id:L.SERIE_A,label:"Serie A",opticOddsName:"Italy - Serie A",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.UEFA_CL]={sport:t.SOCCER,id:L.UEFA_CL,label:"UEFA Champions League",opticOddsName:"UEFA - Champions League",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.UEFA_EL]={sport:t.SOCCER,id:L.UEFA_EL,label:"UEFA Europa League",opticOddsName:"UEFA - Europa League",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.FIFA_WC]={sport:t.SOCCER,id:L.FIFA_WC,label:"FIFA World Cup Qualifiers",provider:N.OPTICODDS,opticOddsName:"FIFA - World Cup Qualifiers",scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.J1_LEAGUE]={sport:t.SOCCER,id:L.J1_LEAGUE,label:"J1 League",opticOddsName:"Japan - J1 League",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.IPL]={sport:t.CRICKET,id:L.IPL,label:"Indian Premier League",provider:N.EMPTY,scoringType:s.POINTS,matchResolveType:l.EMPTY,periodType:I.INNING,isDrawAvailable:!1},d[L.T20_BLAST]={sport:t.CRICKET,id:L.T20_BLAST,label:"T20 Blast",provider:N.EMPTY,scoringType:s.POINTS,matchResolveType:l.EMPTY,periodType:I.INNING,isDrawAvailable:!1},d[L.IIHF_WORLD_CHAMPIONSHIP]={sport:t.HOCKEY,id:L.IIHF_WORLD_CHAMPIONSHIP,label:"IIHF World Championship",provider:N.EMPTY,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.PERIOD,isDrawAvailable:!0},d[L.COPA_AMERICA]={sport:t.SOCCER,id:L.COPA_AMERICA,label:"Copa America",opticOddsName:"CONMEBOL - Copa America",provider:N.EMPTY,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.COPA_LIBERTADORES]={sport:t.SOCCER,id:L.COPA_LIBERTADORES,label:"Copa Libertadores",opticOddsName:"CONMEBOL - Copa Libertadores",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.UEFA_EURO]={sport:t.SOCCER,id:L.UEFA_EURO,label:"UEFA EURO 2024",opticOddsName:"UEFA - European Championship",provider:N.EMPTY,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.EREDIVISIE]={sport:t.SOCCER,id:L.EREDIVISIE,label:"Eredivisie",opticOddsName:"Netherlands - Eredivisie",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.PRIMEIRA_LIGA]={sport:t.SOCCER,id:L.PRIMEIRA_LIGA,label:"Primeira Liga",opticOddsName:"Portugal - Primeira Liga",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_SOCCER_WOMEN]={sport:t.SOCCER,id:L.SUMMER_OLYMPICS_SOCCER_WOMEN,label:"Olympic Games Soccer Women",opticOddsName:"Olympics Soccer Women",provider:N.EMPTY,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_SOCCER]={sport:t.SOCCER,id:L.SUMMER_OLYMPICS_SOCCER,label:"Olympic Games Soccer",opticOddsName:"Olympics Soccer Men",provider:N.EMPTY,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.FIFA_WC_WOMEN]={sport:t.SOCCER,id:L.FIFA_WC_WOMEN,label:"FIFA World Cup Women",provider:N.EMPTY,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.ENGLAND_CUP]={sport:t.SOCCER,id:L.ENGLAND_CUP,label:"FA Cup",opticOddsName:"England - FA Cup",provider:N.EMPTY,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.FRANCE_CUP]={sport:t.SOCCER,id:L.FRANCE_CUP,label:"Coupe de France",provider:N.EMPTY,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.SPAIN_CUP]={sport:t.SOCCER,id:L.SPAIN_CUP,label:"Copa del Rey",opticOddsName:"Spain - Copa del Rey",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.ITALY_CUP]={sport:t.SOCCER,id:L.ITALY_CUP,label:"Coppa Italia",opticOddsName:"Italy - Coppa Italia",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.TENNIS_WTA]={sport:t.TENNIS,id:L.TENNIS_WTA,label:"WTA Events",opticOddsName:"WTA",provider:N.OPTICODDS,scoringType:s.SETS,matchResolveType:l.REGULAR,periodType:I.SET,isDrawAvailable:!1},d[L.TENNIS_GS]={sport:t.TENNIS,id:L.TENNIS_GS,label:"Grand Slam",opticOddsName:"ATP,WTA",provider:N.EMPTY,scoringType:s.SETS,matchResolveType:l.REGULAR,periodType:I.SET,isDrawAvailable:!1},d[L.TENNIS_MASTERS]={sport:t.TENNIS,id:L.TENNIS_MASTERS,label:"ATP Events",opticOddsName:"ATP",provider:N.OPTICODDS,scoringType:s.SETS,matchResolveType:l.REGULAR,periodType:I.SET,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_TENNIS]={sport:t.TENNIS,id:L.SUMMER_OLYMPICS_TENNIS,label:"Olympic Games Tennis",provider:N.EMPTY,scoringType:s.SETS,matchResolveType:l.REGULAR,periodType:I.SET,isDrawAvailable:!1},d[L.GERMANY_CUP]={sport:t.SOCCER,id:L.GERMANY_CUP,label:"DFB Pokal",opticOddsName:"Germany - DFB Pokal",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.LIGA_MX]={sport:t.SOCCER,id:L.LIGA_MX,label:"Liga MX",opticOddsName:"Mexico - Liga MX",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.BRAZIL_1]={sport:t.SOCCER,id:L.BRAZIL_1,label:"Serie A",opticOddsName:"Brazil - Serie A",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.UEFA_EURO_U21]={sport:t.SOCCER,id:L.UEFA_EURO_U21,label:"UEFA EURO U21",provider:N.EMPTY,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.FIFA_WORLD_CUP_U20]={sport:t.SOCCER,id:L.FIFA_WORLD_CUP_U20,label:"FIFA World Cup U20",provider:N.EMPTY,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_HANDBALL_WOMEN]={sport:t.HANDBALL,id:L.SUMMER_OLYMPICS_HANDBALL_WOMEN,label:"Olympic Games Handball Women",opticOddsName:"Olympics Handball Women",provider:N.EMPTY,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_HANDBALL]={sport:t.HANDBALL,id:L.SUMMER_OLYMPICS_HANDBALL,label:"Olympic Games Handball",opticOddsName:"Olympics Handball Men",provider:N.EMPTY,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.EUROLEAGUE]={sport:t.BASKETBALL,id:L.EUROLEAGUE,label:"Euroleague",opticOddsName:"Euroleague",provider:N.OPTICODDS,scoringType:s.POINTS,matchResolveType:l.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BASKETBALL]={sport:t.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL,label:"Olympic Games Basketball",opticOddsName:"Olympics Basketball Men",provider:N.EMPTY,scoringType:s.POINTS,matchResolveType:l.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BASKETBALL_WOMEN]={sport:t.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL_WOMEN,label:"Olympic Games Basketball Women",opticOddsName:"Olympics Basketball Women",provider:N.EMPTY,scoringType:s.POINTS,matchResolveType:l.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1},d[L.FIBA_WORLD_CUP]={sport:t.BASKETBALL,id:L.FIBA_WORLD_CUP,label:"FIBA World Cup",provider:N.EMPTY,scoringType:s.POINTS,matchResolveType:l.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1},d[L.FORMULA1]={sport:t.MOTOSPORT,id:L.FORMULA1,label:"Formula 1",provider:N.EMPTY,scoringType:s.EMPTY,matchResolveType:l.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN]={sport:t.VOLLEYBALL,id:L.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN,label:"Olympic Games Beach Voleyball Women",provider:N.EMPTY,scoringType:s.SETS,matchResolveType:l.REGULAR,periodType:I.SET,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BEACH_VOLEYBALL]={sport:t.VOLLEYBALL,id:L.SUMMER_OLYMPICS_BEACH_VOLEYBALL,label:"Olympic Games Beach Voleyball",provider:N.EMPTY,scoringType:s.SETS,matchResolveType:l.REGULAR,periodType:I.SET,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_TABLE_TENNIS]={sport:t.TABLE_TENNIS,id:L.SUMMER_OLYMPICS_TABLE_TENNIS,label:"Olympic Games Table Tennis",provider:N.EMPTY,scoringType:s.SETS,matchResolveType:l.REGULAR,periodType:I.SET,isDrawAvailable:!1},d[L.MOTOGP]={sport:t.MOTOSPORT,id:L.MOTOGP,label:"MotoGP",provider:N.EMPTY,scoringType:s.EMPTY,matchResolveType:l.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1},d[L.SAUDI_PROFESSIONAL_LEAGUE]={sport:t.SOCCER,id:L.SAUDI_PROFESSIONAL_LEAGUE,label:"Saudi Professional League",opticOddsName:"Saudi Arabia - Saudi League",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_WATERPOLO]={sport:t.WATERPOLO,id:L.SUMMER_OLYMPICS_WATERPOLO,label:"Olympic Games Water Polo",opticOddsName:"Olympics Water Polo",provider:N.EMPTY,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.QUARTER,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_VOLEYBALL_WOMEN]={sport:t.VOLLEYBALL,id:L.SUMMER_OLYMPICS_VOLEYBALL_WOMEN,label:"Olympic Games Volleyball Women",opticOddsName:"Olympics Volleyball Women",provider:N.EMPTY,scoringType:s.SETS,matchResolveType:l.REGULAR,periodType:I.SET,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_VOLEYBALL]={sport:t.VOLLEYBALL,id:L.SUMMER_OLYMPICS_VOLEYBALL,label:"Olympic Games Volleyball",opticOddsName:"Olympics Volleyball Men",provider:N.EMPTY,scoringType:s.SETS,matchResolveType:l.REGULAR,periodType:I.SET,isDrawAvailable:!1},d[L.BOXING]={sport:t.FIGHTING,id:L.BOXING,label:"Boxing",provider:N.EMPTY,scoringType:s.ROUNDS,matchResolveType:l.EMPTY,periodType:I.ROUND,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_RUGBY]={sport:t.RUGBY,id:L.SUMMER_OLYMPICS_RUGBY,label:"Olympic Games Rugby",opticOddsName:"Olympics Rugby 7s Men",provider:N.EMPTY,scoringType:s.POINTS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_RUGBY_WOMEN]={sport:t.RUGBY,id:L.SUMMER_OLYMPICS_RUGBY_WOMEN,label:"Olympic Games Rugby Women",opticOddsName:"Olympics Rugby 7s Women",provider:N.EMPTY,scoringType:s.POINTS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_HOCKEY_WOMEN]={sport:t.HOCKEY,id:L.SUMMER_OLYMPICS_HOCKEY_WOMEN,label:"Olympic Games Hockey Women",provider:N.EMPTY,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.PERIOD,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_HOCKEY]={sport:t.HOCKEY,id:L.SUMMER_OLYMPICS_HOCKEY,label:"Olympic Games Hockey",provider:N.EMPTY,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.PERIOD,isDrawAvailable:!0},d[L.UEFA_NATIONS_LEAGUE]={sport:t.SOCCER,id:L.UEFA_NATIONS_LEAGUE,label:"UEFA Nations League",provider:N.OPTICODDS,opticOddsName:"UEFA - Nations League",scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.CONCACAF_NATIONS_LEAGUE]={sport:t.SOCCER,id:L.CONCACAF_NATIONS_LEAGUE,label:"CONCACAF Nations League",provider:N.EMPTY,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.CSGO]={sport:t.ESPORTS,id:L.CSGO,label:"CS GO",opticOddsName:"CS2",provider:N.OPTICODDS,scoringType:s.MAPS,matchResolveType:l.EMPTY,periodType:I.MAP,isDrawAvailable:!1},d[L.DOTA2]={sport:t.ESPORTS,id:L.DOTA2,label:"DOTA 2",opticOddsName:"Dota 2",provider:N.OPTICODDS,scoringType:s.MAPS,matchResolveType:l.EMPTY,periodType:I.MAP,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BASKETBALL_3X3]={sport:t.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL_3X3,label:"Olympic Games Basketball 3x3",opticOddsName:"Olympics Basketball 3x3 Men",provider:N.EMPTY,scoringType:s.POINTS,matchResolveType:l.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN]={sport:t.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN,label:"Olympic Games Basketball 3x3 Women",opticOddsName:"Olympics Basketball 3x3 Women",provider:N.EMPTY,scoringType:s.POINTS,matchResolveType:l.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_QUALIFICATION]={sport:t.BASKETBALL,id:L.SUMMER_OLYMPICS_QUALIFICATION,label:"Summer Olympics Basketball Qualification",provider:N.EMPTY,scoringType:s.POINTS,matchResolveType:l.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1},d[L.LOL]={sport:t.ESPORTS,id:L.LOL,label:"LOL",opticOddsName:"League of Legends",provider:N.OPTICODDS,scoringType:s.MAPS,matchResolveType:l.EMPTY,periodType:I.MAP,isDrawAvailable:!1},d[L.CONMEBOL_WC_QUALIFICATIONS]={sport:t.SOCCER,id:L.CONMEBOL_WC_QUALIFICATIONS,label:"CONMEBOL WC Qualification",provider:N.EMPTY,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.UEFA_CONFERENCE_LEAGUE]={sport:t.SOCCER,id:L.UEFA_CONFERENCE_LEAGUE,label:"UEFA Conference League",opticOddsName:"UEFA - Europa Conference League",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.NON_TITLE_BOXING]={sport:t.FIGHTING,id:L.NON_TITLE_BOXING,label:"Boxing",provider:N.EMPTY,scoringType:s.ROUNDS,matchResolveType:l.EMPTY,periodType:I.ROUND,isDrawAvailable:!1},d[L.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION]={sport:t.SOCCER,id:L.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,label:"UEFA Champions League Qualification",opticOddsName:"UEFA - Champions League",provider:N.EMPTY,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.UEFA_EUROPA_LEAGUE_QUALIFICATION]={sport:t.SOCCER,id:L.UEFA_EUROPA_LEAGUE_QUALIFICATION,label:"UEFA Europa League Qualification",opticOddsName:"UEFA - Europa League",provider:N.EMPTY,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.UEFA_CONFERENCE_LEAGUE_QUALIFICATION]={sport:t.SOCCER,id:L.UEFA_CONFERENCE_LEAGUE_QUALIFICATION,label:"UEFA Conference League Qualification",opticOddsName:"UEFA - Europa Conference League",provider:N.EMPTY,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.US_ELECTION]={sport:t.POLITICS,id:L.US_ELECTION,label:"US Election 2024",provider:N.EMPTY,scoringType:s.EMPTY,matchResolveType:l.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1},d[L.UEFA_SUPER_CUP]={sport:t.SOCCER,id:L.UEFA_SUPER_CUP,label:"UEFA Super Cup",opticOddsName:"UEFA - Super Cup",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.BRAZIL_CUP]={sport:t.SOCCER,id:L.BRAZIL_CUP,label:"Copa do Brasil",opticOddsName:"Brazil - Copa do Brasil",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.ENGLAND_CHAMPIONSHIP]={sport:t.SOCCER,id:L.ENGLAND_CHAMPIONSHIP,label:"EFL Championship",opticOddsName:"England - Championship",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.SCOTLAND_PREMIERSHIP]={sport:t.SOCCER,id:L.SCOTLAND_PREMIERSHIP,label:"Scotland Premiership",opticOddsName:"Scotland - Premiership",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.BELGIUM_LEAGUE]={sport:t.SOCCER,id:L.BELGIUM_LEAGUE,label:"Belgium Jupiler Pro League",opticOddsName:"Belgium - Jupiler Pro League",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.CZECH_LEAGUE]={sport:t.SOCCER,id:L.CZECH_LEAGUE,label:"Czech Republic FNL",opticOddsName:"Czech Republic - FNL",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.CHILE_PRIMERA]={sport:t.SOCCER,id:L.CHILE_PRIMERA,label:"Chile Primera Division",opticOddsName:"Chile - Primera Division",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.FINLAND_LEAGUE]={sport:t.SOCCER,id:L.FINLAND_LEAGUE,label:"Finland Veikkausliiga",opticOddsName:"Finland - Veikkausliiga",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.ARGENTINA_PRIMERA]={sport:t.SOCCER,id:L.ARGENTINA_PRIMERA,label:"Argentina Primera Division",opticOddsName:"Argentina - Primera Division",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.RUSSIA_PREMIER]={sport:t.SOCCER,id:L.RUSSIA_PREMIER,label:"Russia Premier League",opticOddsName:"Russia - Premier League",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.TURKEY_SUPER_LEAGUE]={sport:t.SOCCER,id:L.TURKEY_SUPER_LEAGUE,label:"Turkey Super Lig",opticOddsName:"Turkey - Super Lig",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.SERBIA_SUPER_LEAGUE]={sport:t.SOCCER,id:L.SERBIA_SUPER_LEAGUE,label:"Serbia Super Liga",opticOddsName:"Serbia - Super Liga",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.GREECE_SUPER_LEAGUE]={sport:t.SOCCER,id:L.GREECE_SUPER_LEAGUE,label:"Greece Super League",opticOddsName:"Greece - Super League",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.INDIA_PREMIER]={sport:t.SOCCER,id:L.INDIA_PREMIER,label:"India Calcutta Premier Division",opticOddsName:"India - Calcutta Premier Division",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.CHINA_SUPER_LEAGUE]={sport:t.SOCCER,id:L.CHINA_SUPER_LEAGUE,label:"China Super League",opticOddsName:"China - Super League",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.AUSTRALIA_A_LEAGUE]={sport:t.SOCCER,id:L.AUSTRALIA_A_LEAGUE,label:"Australia A-League",opticOddsName:"Australia - A-League",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.SWITZERLAND_SUPER_LEAGUE]={sport:t.SOCCER,id:L.SWITZERLAND_SUPER_LEAGUE,label:"Switzerland Super League",opticOddsName:"Switzerland - Super League",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.BUNDESLIGA_2]={sport:t.SOCCER,id:L.BUNDESLIGA_2,label:"Bundesliga 2",opticOddsName:"Germany - Bundesliga 2",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.LA_LIGA_2]={sport:t.SOCCER,id:L.LA_LIGA_2,label:"La Liga 2",opticOddsName:"Spain - La Liga 2",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.SERIE_B]={sport:t.SOCCER,id:L.SERIE_B,label:"Serie B",opticOddsName:"Italy - Serie B",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.INDIA_SUPER_LEAGUE]={sport:t.SOCCER,id:L.INDIA_SUPER_LEAGUE,label:"India Super League",opticOddsName:"India - Super League",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.LIGUE_2]={sport:t.SOCCER,id:L.LIGUE_2,label:"Ligue 2",opticOddsName:"France - Ligue 2",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.AUSTRIA_BUNDESLIGA]={sport:t.SOCCER,id:L.AUSTRIA_BUNDESLIGA,label:"Austria Bundesliga",opticOddsName:"Austria - Bundesliga",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.DENMARK_SUPER_LEAGUE]={sport:t.SOCCER,id:L.DENMARK_SUPER_LEAGUE,label:"Denmark Superliga",opticOddsName:"Denmark - Superliga",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.POLAND_LEAGUE]={sport:t.SOCCER,id:L.POLAND_LEAGUE,label:"Poland Ekstraklasa",opticOddsName:"Poland - Ekstraklasa",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.SWEDEN_LEAGUE]={sport:t.SOCCER,id:L.SWEDEN_LEAGUE,label:"Sweden Allsvenskan",opticOddsName:"Sweden - Allsvenskan",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.COLOMBIA_PRIMERA_A]={sport:t.SOCCER,id:L.COLOMBIA_PRIMERA_A,label:"Colombia Primera A",opticOddsName:"Colombia - Primera A",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.ENGLAND_EFL_CUP]={sport:t.SOCCER,id:L.ENGLAND_EFL_CUP,label:"England EFL Cup",opticOddsName:"England - EFL Cup",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.ENGLAND_LEGAUE_1]={sport:t.SOCCER,id:L.ENGLAND_LEGAUE_1,label:"England League 1",opticOddsName:"England - League 1",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.URUGUAY_PRIMERA_DIVISION]={sport:t.SOCCER,id:L.URUGUAY_PRIMERA_DIVISION,label:"Uruguay Primera Division",opticOddsName:"Uruguay - Primera Division",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.AFC_CHAMPIONS_LEAGUE]={sport:t.SOCCER,id:L.AFC_CHAMPIONS_LEAGUE,label:"AFC Champions League",opticOddsName:"AFC - Champions League",provider:N.OPTICODDS,scoringType:s.GOALS,matchResolveType:l.REGULAR,periodType:I.HALF,isDrawAvailable:!0},d[L.EUROCUP]={sport:t.BASKETBALL,id:L.EUROCUP,label:"Eurocup",opticOddsName:"Eurocup",provider:N.OPTICODDS,scoringType:s.POINTS,matchResolveType:l.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1},d[L.SPAIN_LIGA_ACB]={sport:t.BASKETBALL,id:L.SPAIN_LIGA_ACB,label:"Spain Liga ACB",opticOddsName:"Spain - Liga ACB",provider:N.OPTICODDS,scoringType:s.POINTS,matchResolveType:l.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1},d[L.ITALY_LEGA_BASKET_SERIE_A]={sport:t.BASKETBALL,id:L.ITALY_LEGA_BASKET_SERIE_A,label:"Italy Lega Basket Serie A",opticOddsName:"Italy - Lega Basket Serie A",provider:N.OPTICODDS,scoringType:s.POINTS,matchResolveType:l.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1},d[L.GERMANY_BBL]={sport:t.BASKETBALL,id:L.GERMANY_BBL,label:"Germany BBL",opticOddsName:"Germany - BBL",provider:N.OPTICODDS,scoringType:s.POINTS,matchResolveType:l.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1},d[L.FRANCE_LNB_PRO_A]={sport:t.BASKETBALL,id:L.FRANCE_LNB_PRO_A,label:"France LNB Pro A",opticOddsName:"France - LNB Pro A",provider:N.OPTICODDS,scoringType:s.POINTS,matchResolveType:l.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1},d[L.CHINA_CBA]={sport:t.BASKETBALL,id:L.CHINA_CBA,label:"China CBA",opticOddsName:"China - CBA",provider:N.OPTICODDS,scoringType:s.POINTS,matchResolveType:l.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1},d[L.AUSTRALIA_NBL]={sport:t.BASKETBALL,id:L.AUSTRALIA_NBL,label:"Australia NBL",opticOddsName:"Australia - NBL",provider:N.OPTICODDS,scoringType:s.POINTS,matchResolveType:l.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1},d[L.VALORANT]={sport:t.ESPORTS,id:L.VALORANT,label:"Valorant",opticOddsName:"Valorant",provider:N.OPTICODDS,scoringType:s.MAPS,matchResolveType:l.EMPTY,periodType:I.MAP,isDrawAvailable:!1},d[L.ROCKET_LEAGUE]={sport:t.ESPORTS,id:L.ROCKET_LEAGUE,label:"Rocket League",opticOddsName:"Rocket League",provider:N.OPTICODDS,scoringType:s.MAPS,matchResolveType:l.EMPTY,periodType:I.MAP,isDrawAvailable:!1},d[L.CALL_OF_DUTY]={sport:t.ESPORTS,id:L.CALL_OF_DUTY,label:"Call of Duty",opticOddsName:"Call of Duty",provider:N.OPTICODDS,scoringType:s.MAPS,matchResolveType:l.EMPTY,periodType:I.MAP,isDrawAvailable:!1},d[L.STARCRAFT]={sport:t.ESPORTS,id:L.STARCRAFT,label:"Starcraft",opticOddsName:"Starcraft",provider:N.OPTICODDS,scoringType:s.MAPS,matchResolveType:l.EMPTY,periodType:I.MAP,isDrawAvailable:!1},d[L.NFL_FUTURES]={sport:t.FUTURES,id:L.NFL_FUTURES,label:"NFL Futures",provider:N.EMPTY,scoringType:s.EMPTY,matchResolveType:l.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1},d[L.NBA_FUTURES]={sport:t.FUTURES,id:L.NBA_FUTURES,label:"NBA Futures",provider:N.EMPTY,scoringType:s.EMPTY,matchResolveType:l.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1},d[L.NHL_FUTURES]={sport:t.FUTURES,id:L.NHL_FUTURES,label:"NHL Futures",provider:N.EMPTY,scoringType:s.EMPTY,matchResolveType:l.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1},d[L.EPL_FUTURES]={sport:t.FUTURES,id:L.EPL_FUTURES,label:"EPL Futures",provider:N.EMPTY,scoringType:s.EMPTY,matchResolveType:l.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1},d[L.LIGUE_ONE_FUTURES]={sport:t.FUTURES,id:L.LIGUE_ONE_FUTURES,label:"Ligue 1 Futures",provider:N.EMPTY,scoringType:s.EMPTY,matchResolveType:l.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1},d[L.BUNDESLIGA_FUTURES]={sport:t.FUTURES,id:L.BUNDESLIGA_FUTURES,label:"Bundesliga Futures",provider:N.EMPTY,scoringType:s.EMPTY,matchResolveType:l.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1},d[L.LA_LIGA_FUTURES]={sport:t.FUTURES,id:L.LA_LIGA_FUTURES,label:"La Liga",provider:N.EMPTY,scoringType:s.EMPTY,matchResolveType:l.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1},d[L.SERIE_A_FUTURES]={sport:t.FUTURES,id:L.SERIE_A_FUTURES,label:"Serie A Futures",provider:N.EMPTY,scoringType:s.EMPTY,matchResolveType:l.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1},d[L.UEFA_CHAMPIONS_LEAGUE_FUTURES]={sport:t.FUTURES,id:L.UEFA_CHAMPIONS_LEAGUE_FUTURES,label:"UEFA Champions League Futures",provider:N.EMPTY,scoringType:s.EMPTY,matchResolveType:l.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1},d[L.EUROLEAGUE_FUTURES]={sport:t.FUTURES,id:L.EUROLEAGUE_FUTURES,label:"Euroleague Futures",provider:N.EMPTY,scoringType:s.EMPTY,matchResolveType:l.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1},d[L.GOLF_H2H]={sport:t.GOLF,id:L.GOLF_H2H,label:"Golf head-to-head",provider:N.EMPTY,scoringType:s.EMPTY,matchResolveType:l.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1},d[L.GOLF_WINNER]={sport:t.GOLF,id:L.GOLF_WINNER,label:"Golf Tournament Winner",provider:N.EMPTY,scoringType:s.EMPTY,matchResolveType:l.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1},d),c=[L.CSGO,L.DOTA2,L.LOL,L.VALORANT,L.ROCKET_LEAGUE,L.CALL_OF_DUTY,L.STARCRAFT,L.TENNIS_GS,L.TENNIS_MASTERS,L.SUMMER_OLYMPICS_TENNIS,L.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_0,L.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_1,L.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_2,L.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_3,L.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_4,L.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_5,L.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_6,L.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_7,L.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_0,L.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_1,L.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_2,L.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_3,L.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_4,L.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_5,L.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_6,L.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_7,L.TENNIS_MASTERS_LIVE_MAPPING_V2_1,L.TENNIS_MASTERS_LIVE_MAPPING_V2_2,L.TENNIS_MASTERS_LIVE_MAPPING_V2_3,L.TENNIS_MASTERS_LIVE_MAPPING_V2_4,L.TENNIS_MASTERS_LIVE_MAPPING_V2_5,L.TENNIS_MASTERS_LIVE_MAPPING_V2_6,L.TENNIS_MASTERS_LIVE_MAPPING_V2_7,L.TENNIS_MASTERS_LIVE_MAPPING_V2_8,L.TENNIS_MASTERS_LIVE_MAPPING_V2_9,L.TENNIS_MASTERS_LIVE_MAPPING_V2_10,L.TENNIS_MASTERS_LIVE_MAPPING_V2_11,L.TENNIS_MASTERS_LIVE_MAPPING_V2_12,L.TENNIS_MASTERS_LIVE_MAPPING_V2_13,L.TENNIS_MASTERS_LIVE_MAPPING_V2_14,L.TENNIS_MASTERS_LIVE_MAPPING_V2_15,L.TENNIS_MASTERS_LIVE_MAPPING_V2_16,L.TENNIS_MASTERS_LIVE_MAPPING_V2_17,L.TENNIS_MASTERS_LIVE_MAPPING_V2_18,L.TENNIS_MASTERS_LIVE_MAPPING_V2_19,L.TENNIS_MASTERS_LIVE_MAPPING_V2_20,L.TENNIS_MASTERS_LIVE_MAPPING_V2_21,L.TENNIS_MASTERS_LIVE_MAPPING_V2_22,L.TENNIS_WTA_LIVE_MAPPING_V2_1,L.TENNIS_WTA_LIVE_MAPPING_V2_2,L.TENNIS_WTA_LIVE_MAPPING_V2_3,L.TENNIS_WTA_LIVE_MAPPING_V2_4,L.TENNIS_WTA_LIVE_MAPPING_V2_5,L.TENNIS_WTA_LIVE_MAPPING_V2_6,L.TENNIS_WTA_LIVE_MAPPING_V2_7],C=[L.SUMMER_OLYMPICS_RUGBY,L.SUMMER_OLYMPICS_RUGBY_WOMEN],u=[L.NCAAF,L.NFL,L.MLB,L.NBA,L.NCAAB,L.NHL,L.WNBA,L.MLS,L.IPL,L.T20_BLAST],U=[701,702,703,704],m={1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21},y={320:18,6:24,33:33,16:42,44:44,45:45,11:47,50:50,12:53,13:54,15:55,57:57,61:61,65:65,66:66,17:73,76:76,14:87,152:152,153:153,156:156,158:158,132:132,134:134,138:138,141:141,209:209,230:230,268:268,288:288,296:296,310:310,319:319,322:322,327:327,380:380,381:381,399:399,406:406,407:407,409:409,445:445,453:453,454:454,497:497,536:536,8881:8881,8893:8893,8894:8894,8910:8910,9196:9196,9578:9578,9588:9588,9698:9698,9699:9699,9806:9806,9821:9821,9977:9977,9983:9983,10071:10071,10072:10072,10502:10502,10138:10138,10199:10199,10216:10216,10595:10595,10611:10611,10613:10613,10615:10615},G={1:"NCAAF",2:"NFL",3:"MLB",4:"NBA",5:"NCAAB",6:"NHL",7:"UFC",8:"WNBA",10:"USA - Major League Soccer",11:"England - Premier League",12:"France - Ligue 1",13:"Germany - Bundesliga",14:"Spain - La Liga",15:"Italy - Serie A",16:"UEFA - Champions League",17:"UEFA - Europa League",18:"FIFA - World Cup Qualifiers",19:"Japan - J1 League",45:"CONMEBOL - Copa Libertadores",57:"Netherlands - Eredivisie",61:"Portugal - Primeira Liga",138:"Spain - Copa del Rey",152:"WTA",156:"ATP",141:"Italy - Coppa Italia",209:"Germany - DFB Pokal",230:"Mexico - Liga MX",268:"Brazil - Serie A",399:"Euroleague",536:"Saudi Arabia - Saudi League",9806:"UEFA - Nations League",9977:"CS2",9983:"Dota 2",10138:"League of Legends",10216:"UEFA - Europa Conference League",20001:"UEFA - Super Cup",20002:"Brazil - Copa do Brasil",20011:"England - Championship",20101:"Scotland - Premiership",20102:"Belgium - Jupiler Pro League",20103:"Czech Republic - FNL",20104:"Chile - Primera Division",20105:"Finland - Veikkausliiga",20106:"Argentina - Primera Division",20107:"Russia - Premier League",20108:"Turkey - Super Lig",20109:"Serbia - Super Liga",20110:"Greece - Super League",20111:"India - Calcutta Premier Division",20112:"China - Super League",20113:"Australia - A-League",20114:"Switzerland - Super League",20115:"Germany - Bundesliga 2",20116:"Spain - La Liga 2",20117:"Italy - Serie B",20118:"India - Super League",20119:"France - Ligue 2",20120:"Austria - Bundesliga",20121:"Denmark - Superliga",20122:"Poland - Ekstraklasa",20123:"Sweden - Allsvenskan",20124:"Colombia - Primera A",20125:"England - EFL Cup",20126:"England - League 1",20127:"Uruguay - Primera Division",20128:"AFC - Champions League",20200:"Eurocup",20201:"Spain - Liga ACB",20202:"Italy - Lega Basket Serie A",20203:"Germany - BBL",20204:"France - LNB Pro A",20205:"China - CBA",20206:"Australia - NBL",20300:"Valorant",20301:"Rocket League",20302:"Call of Duty",20303:"Starcraft"},v=function(e){var r=M[e];return r?r.sport:t.EMPTY},D=function(e){var r=M[e];return r?r.label:""},g=function(e){var r=M[e];return r?r.provider:""},b=function(e){var r=M[e];return!!r&&r.isDrawAvailable},F=function(e){var r=M[e];return r?r.periodType:""},B=function(e){var r=M[e];return r?r.opticOddsName:void 0},V=function(e){var r=new Set;return e.filter((function(e){return"true"===e.enabled})).map((function(e){return r.add(Number(e.sportId))})),Array.from(r)},h=function(e,r){var a=new Set;return r.filter((function(r){return Number(r.sportId)===Number(e)&&"true"===r.enabled})).map((function(e){return a.add(e.marketName)})),Array.from(a)},w=function(e,r){return r.filter((function(r){return Number(r.sportId)===e}))},f=function(e,r){return r.filter((function(r){return Number(r.sportId)===Number(e)&&"Spread"===r.type&&"true"===r.enabled})).map((function(e){return e.marketName.toLowerCase()}))},Y=function(e,r){return r.filter((function(r){return Number(r.sportId)===Number(e)&&"Total"===r.type&&"true"===r.enabled})).map((function(e){return e.marketName.toLowerCase()}))},H=function(e,r,a,i,o,E){var A,_;if(c.includes(e)?(A=i.toLowerCase()==r.toLowerCase()||i.toLowerCase()==a.toLowerCase(),_=o.toLowerCase()==r.toLowerCase()||o.toLowerCase()==a.toLowerCase()):(A=i.toLowerCase()==r.toLowerCase(),_=o.toLowerCase()==a.toLowerCase()),!0!==A){var t=E.get(i.toLowerCase()),L=E.get(r.toLowerCase()),p=E.get(a.toLowerCase());if([t,L].some((function(e){return null==e})))return!1;A=c.includes(e)?t==L||t==p:t==L}if(!0!==_){var T=E.get(o.toLowerCase());if(L=E.get(r.toLowerCase()),[T,p=E.get(a.toLowerCase())].some((function(e){return null==e})))return!1;_=c.includes(e)&&T==L||T==p}return A&&_},W=function(e,r,a,i){var o;if(v(a)==t.TENNIS){var E=r.getTime(),A=e.getTime();o=Math.abs(A-E)<=Number(60*i*1e3)}else o=r.toUTCString()==e.toUTCString();return o},k=0,K="Draw",Q=0,j=.2,x=10001,X=10002,z=100,Z=function(e,r,a){if(e.some((function(e){return 0===e})))return e;var i=e.reduce((function(e,r){return e+r}),0);if(i<=1)return Array(e.length).fill(0);if(0===a){if(!(r>100*(i-1)))return e;a=r}var o=1+a/100,E=o/i,A=e.map((function(e){return e*E}));if(A.some((function(e){return e>=1})))return Array(e.length).fill(0);var _=A.reduce((function(e,r){return e+r}),0);if(_<1)return Array(e.length).fill(0);var t=o/_;return A.map((function(e){return e*t}))},J=function(e,r,a,i){var o=e.find((function(e){return Number(e.typeId)===Number(a)&&Number(e.sportId)===Number(r)}));return o?{minSpread:o.minSpread?Number(o.minSpread):i,targetSpread:o.targetSpread?Number(o.targetSpread):0}:{minSpread:i,targetSpread:0}},q=function(){return q=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var o in r=arguments[a])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},q.apply(this,arguments)},$=function(e,r,a){if(a||2===arguments.length)for(var i,o=0,E=r.length;o<E;o++)!i&&o in r||(i||(i=Array.prototype.slice.call(r,0,o)),i[o]=r[o]);return e.concat(i||Array.prototype.slice.call(r))},ee=function(e){return e===k?0:re("decimal","impliedProbability",e)},re=function(e,r,a){try{return n(e,a).to(r)}catch(e){return 0}},ae=function(e,r,a,i,o){var E=new Map;return a.forEach((function(a){var A=0,_=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===i.homeTeam.toLowerCase()}));0!==_.length&&(A=_[0].price);var t=0,L=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===i.awayTeam.toLowerCase()}));0!==L.length&&(t=L[0].price);var p=0;if(!o){var T=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===K.toLowerCase()}));0!==T.length&&(p=T[0].price)}E.set(a.toLowerCase(),{homeOdds:A,awayOdds:t,drawOdds:p})})),E},ie=function(e,r,a,i,o,E,A){var _={homeTeam:i.homeTeam,awayTeam:i.awayTeam},t=ae(i.odds,p.MONEYLINE,a,_,e),L=O(t,a,e,A,j);if(L.errorMessage)return{odds:e?[0,0]:[0,0,0],errorMessage:L.errorMessage};var T=(e?[L.homeOdds,L.awayOdds]:[L.homeOdds,L.awayOdds,L.drawOdds]).map((function(e){return ee(e)})),S=J(r,o,Q,E);return{odds:T=null!==S?Z(T,S.minSpread,S.targetSpread):Z(T,E,0)}},oe=function(e,r,a,i,o,E){var A=[[],[],[],[]],_=A[0],t=A[1],L=A[2],p=A[3],T=w(a,E),S={homeTeam:e.homeTeam,awayTeam:e.awayTeam};if(T.length>0){Ee(e.odds,T,i[0]).forEach((function(e){"Total"===e.type?.5===Math.abs(Number(e.points)%1)&&t.push(e):"Spread"===e.type?.5===Math.abs(Number(e.points)%1)&&_.push(e):"Moneyline"===e.type&&L.push(e)}));var s=$($($([],Ae(_,S),!0),_e(t,S),!0),te(L,S),!0);Le(s,r,o).forEach((function(e){var r={leagueId:Number(e.sportId),typeId:Number(e.typeId),type:e.type.toLowerCase(),line:Number(e.line||0),odds:e.odds},a=T.find((function(r){return Number(r.typeId)===Number(e.typeId)})),i=null==a?void 0:a.minOdds,o=null==a?void 0:a.maxOdds;i&&o&&(e.odds[0]>=i||e.odds[0]<=o||e.odds[1]>=i||e.odds[1]<=o)||p.push(r)}))}else console.warn("No child markets for leagueID: ".concat(Number(a)));return p},Ee=function(e,r,a){var i=r.filter((function(e){return e.marketName.toLowerCase()!==p.MONEYLINE.toLowerCase()&&"true"===e.enabled})).map((function(e){return e.marketName.toLowerCase()}));return e.filter((function(e){return i.includes(e.marketName.toLowerCase())&&e.sportsBookName.toLowerCase()==a.toLowerCase()})).map((function(e){return q(q({},e),r.find((function(r){return r.marketName.toLowerCase()===e.marketName.toLowerCase()})))}))},Ae=function(e,r){var a=e.reduce((function(e,a){var i=a.points,o=a.marketName,E=a.price,A=a.selection,_=a.typeId,t=a.sportId,L=a.type,p=A===r.homeTeam,T="".concat(o,"_").concat(p?i:-i);return e[T]||(e[T]={home:null,away:null,typeId:null,sportId:null}),p?e[T].home=E:e[T].away=E,e[T].typeId=_,e[T].type=L,e[T].sportId=t,e}),{}),i=Object.entries(a).reduce((function(e,r){var a=r[0],i=r[1],o=a.split("_"),E=(o[0],o[1]),A=parseFloat(E);return null!==i.home&&null!==i.away&&e.push({line:A,odds:[i.home,i.away],typeId:i.typeId,sportId:i.sportId,type:i.type}),e}),[]);return i},_e=function(e,r){var a=e.reduce((function(e,r){if(r){var a="".concat(r.marketName,"_").concat(r.selection,"_").concat(r.points);e[a]||(e[a]={over:null,under:null}),"over"===r.selectionLine?e[a].over=r.price:"under"===r.selectionLine&&(e[a].under=r.price),e[a].typeId=r.typeId,e[a].type=r.type,e[a].sportId=r.sportId}return e}),{}),i=Object.entries(a).reduce((function(e,a){var i=a[0],o=a[1],E=i.split("_"),A=(E[0],E[1]),_=E[2],t=parseFloat(_),L=A===r.awayTeam;return null!==o.over&&null!==o.under&&e.push({line:t,odds:[o.over,o.under],typeId:L?Number(o.typeId)+1:o.typeId,sportId:o.sportId,type:o.type}),e}),[]);return i},te=function(e,r){var a=e.reduce((function(e,a){var i=a.price,o=a.selection,E=a.typeId,A=a.sportId,_=a.type,t=E;return e[t]||(e[t]={home:null,away:null,draw:null,typeId:null,sportId:null}),o.toLowerCase()===r.homeTeam.toLowerCase()?e[t].home=i:o.toLowerCase()===r.awayTeam.toLowerCase()?e[t].away=i:o.toLowerCase()===K.toLowerCase()&&(e[t].draw=i),e[t].typeId=E,e[t].type=_,e[t].sportId=A,e}),{}),i=Object.entries(a).reduce((function(e,r){r[0];var a=r[1];return null!==a.home&&null!==a.away&&e.push({odds:a.draw?[a.home,a.away,a.draw]:[a.home,a.away],typeId:a.typeId,sportId:a.sportId,type:a.type}),e}),[]);return i},Le=function(e,r,a){var i=[];return e.forEach((function(e){var o=3===e.odds.length,E=ee(e.odds[0])||k,A=ee(e.odds[1])||k,_=ee(e.odds[2])||k,t=o?[E,A,_]:[E,A];if(!(E===k||A===k||o&&_===k)){var L,p=J(r,e.sportId,e.typeId,a);L=null!==p?Z(t,p.minSpread,p.targetSpread):Z(t,a,0),i.push(q(q({},e),{odds:L}))}})),i},pe=function(){return pe=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var o in r=arguments[a])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},pe.apply(this,arguments)},Te=function(e,r,a,i,o,E,A,_){var t=i.filter((function(r){return r.sportId===String(e.leagueId)})),L=w(e.leagueId,_),p=ie(!o,t,a,r,e.leagueId,E,A);p.errorMessage?(e.odds=e.odds.map((function(){return{american:0,decimal:0,normalizedImplied:0}})),e.errorMessage=p.errorMessage):e.odds=p.odds.map((function(r){if(0!=r){var a=L.find((function(r){return Number(r.typeId)===Number(e.typeId)})),i=r;return r<.95&&(i=a&&a.addedSpread>0?r*(100+a.addedSpread)/100:r)>=1&&(i=r),{american:n("impliedProbability",i).to("moneyline"),decimal:Number(n("impliedProbability",i).to("decimal").toFixed(10)),normalizedImplied:i}}return e.errorMessage="Bad odds after spread adjustment",{american:0,decimal:0,normalizedImplied:0}}));var T=oe(r,t,e.leagueId,a,E,_).map((function(r){var a=pe(pe({},e),r);return a.odds.length>0&&(a.odds=a.odds.map((function(e){if(0==e)return{american:0,decimal:0,normalizedImplied:0};var r=L.find((function(e){return Number(e.typeId)===Number(a.typeId)})),i=e;return e<.95&&(i=r&&r.addedSpread>0?e*(100+r.addedSpread)/100:e)>=1&&(i=e),{american:n("impliedProbability",i).to("moneyline"),decimal:Number(n("impliedProbability",i).to("decimal").toFixed(10)),normalizedImplied:i}}))),a}));return e.childMarkets=T,e},Se=function(e,r,a){var i=v(r),o=e.homeTeam,E=e.homeTotal,A=e.awayTeam,_=e.awayTotal,L=e.clock,p=e.period,T=e.status,S=parseInt(p);return"completed"==T.toLowerCase()?{allow:!1,message:"Blocking game ".concat(o," - ").concat(A," because it is no longer live.")}:i===t.BASKETBALL?se(o,A,S,a.get(t.BASKETBALL)):i===t.HOCKEY?se(o,A,S,a.get(t.HOCKEY)):i===t.BASEBALL?se(o,A,S,a.get(t.BASEBALL)):i===t.SOCCER?le(o,A,L,p,a.get(t.SOCCER)):i===t.TENNIS?Ie(e,o,A,p,E,_,r,i):i===t.VOLLEYBALL?Ie(e,o,A,S,E,_,r,i):{allow:!0,message:"The sport ".concat(r," does not have constraint")}},se=function(e,r,a,i){return!Number.isNaN(a)&&a>=i?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to period: ").concat(a,". period")}:{allow:!0,message:""}},le=function(e,r,a,i,o){var E=Number(a);return!Number.isNaN(E)&&E>=o||Number.isNaN(E)&&"half"!=i.toLowerCase()?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to clock: ").concat(a,"min")}:{allow:!0,message:""}},Ie=function(e,r,a,i,o,E,A,_){var p=Number(i),T=Ne(p,e),S="atp"==e.league.toLowerCase(),s={home:o,away:E};return _==t.VOLLEYBALL?de(r,a,T,s,ne,5==p?Oe:Re):A.toString().startsWith(L.TENNIS_GS)&&S?de(r,a,T,s,Pe,ce):A.toString().startsWith(L.TENNIS_GS)&&!S||A.toString().startsWith(L.TENNIS_MASTERS)||A.toString().startsWith(L.SUMMER_OLYMPICS_TENNIS)||A.toString().startsWith(L.TENNIS_WTA)?de(r,a,T,s,Me,ce):{allow:!0,message:"The sport ".concat(A," does not have result constraint")}},Ne=function(e,r){var a=0,i=0;switch(e){case 1:a=Number(r.homePeriod1),i=Number(r.awayPeriod1);break;case 2:a=Number(r.homePeriod2),i=Number(r.awayPeriod2);break;case 3:a=Number(r.homePeriod3),i=Number(r.awayPeriod3);break;case 4:a=Number(r.homePeriod4),i=Number(r.awayPeriod4);break;case 5:a=Number(r.homePeriod5),i=Number(r.awayPeriod5)}return{home:a,away:i}},de=function(e,r,a,i,o,E){return Number(i.home)!=o&&Number(i.away)!=o||!(Number(i.home)==o&&a.home>=E||Number(i.away)==o&&a.away>=E)?{allow:!0,message:"",currentHomeGameScore:a.home,currentAwayGameScore:a.away}:{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to current result: ").concat(i.home," - ").concat(i.away," (").concat(a.home," - ").concat(a.away,")")}},ne=2,Re=20,Oe=10,Pe=2,Me=1,ce=5,Ce=function(){return Ce=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var o in r=arguments[a])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},Ce.apply(this,arguments)},ue=function(e){return e.map((function(e){return{gameId:e.id,startDate:e.start_date,homeTeam:e.home_team_display,awayTeam:e.away_team_display}}))},Ue=function(e){return e.map((function(e){return Ce(Ce({gameId:e.fixture.id,sport:e.sport.name,league:e.league.name.toLowerCase(),status:e.fixture.status?e.fixture.status.toLowerCase():e.fixture.status,isLive:e.fixture.is_live,clock:e.in_play.clock,period:e.in_play.period?e.in_play.period.toLowerCase():e.in_play.period,homeTeam:e.fixture.home_team_display,awayTeam:e.fixture.away_team_display,homeTotal:e.scores.home.total,awayTotal:e.scores.away.total},ye(e.scores.home.periods,"home")),ye(e.scores.away.periods,"away"))}))},me=function(e){return e.map((function(e){return{gameId:e.id,startDate:e.start_date,homeTeam:e.home_team_display,awayTeam:e.away_team_display,isLive:e.is_live,status:e.status,sport:e.sport.id,league:e.league.name,odds:e.odds.map((function(r){return{id:r.id,sportsBookName:r.sportsbook,name:r.name,price:r.price,timestamp:r.timestamp,points:r.points,isMain:r.is_main,isLive:e.is_live,marketName:r.market.toLowerCase(),playerId:r.player_id,selection:r.selection,selectionLine:r.selection_line}}))}}))},ye=function(e,r){return Object.values(e).reduce((function(e,a,i){var o;return Ce(Ce({},e),((o={})["".concat(r,"Period").concat(i+1)]=a,o))}),{})};return r})()));
|
package/package.json
CHANGED
package/src/constants/sports.ts
CHANGED
|
@@ -1421,13 +1421,22 @@ export const LEAGUES_NO_FORMAL_HOME_AWAY = [
|
|
|
1421
1421
|
League.TENNIS_GS,
|
|
1422
1422
|
League.TENNIS_MASTERS,
|
|
1423
1423
|
League.SUMMER_OLYMPICS_TENNIS,
|
|
1424
|
-
League.
|
|
1425
|
-
League.
|
|
1426
|
-
League.
|
|
1427
|
-
League.
|
|
1428
|
-
League.
|
|
1429
|
-
League.
|
|
1430
|
-
League.
|
|
1424
|
+
League.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_0,
|
|
1425
|
+
League.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_1,
|
|
1426
|
+
League.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_2,
|
|
1427
|
+
League.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_3,
|
|
1428
|
+
League.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_4,
|
|
1429
|
+
League.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_5,
|
|
1430
|
+
League.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_6,
|
|
1431
|
+
League.TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_7,
|
|
1432
|
+
League.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_0,
|
|
1433
|
+
League.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_1,
|
|
1434
|
+
League.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_2,
|
|
1435
|
+
League.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_3,
|
|
1436
|
+
League.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_4,
|
|
1437
|
+
League.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_5,
|
|
1438
|
+
League.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_6,
|
|
1439
|
+
League.TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_7,
|
|
1431
1440
|
League.TENNIS_MASTERS_LIVE_MAPPING_V2_1,
|
|
1432
1441
|
League.TENNIS_MASTERS_LIVE_MAPPING_V2_2,
|
|
1433
1442
|
League.TENNIS_MASTERS_LIVE_MAPPING_V2_3,
|
package/src/enums/sports.ts
CHANGED
|
@@ -152,13 +152,22 @@ export enum League {
|
|
|
152
152
|
EUROLEAGUE_FUTURES = 30399,
|
|
153
153
|
GOLF_H2H = 100021,
|
|
154
154
|
GOLF_WINNER = 100121,
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
155
|
+
TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_0 = 15611,
|
|
156
|
+
TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_1 = 15612,
|
|
157
|
+
TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_2 = 15613,
|
|
158
|
+
TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_3 = 15614,
|
|
159
|
+
TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_4 = 15615,
|
|
160
|
+
TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_5 = 15616,
|
|
161
|
+
TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_6 = 15617,
|
|
162
|
+
TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_7 = 15618,
|
|
163
|
+
TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_0 = 15211,
|
|
164
|
+
TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_1 = 15212,
|
|
165
|
+
TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_2 = 15213,
|
|
166
|
+
TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_3 = 15214,
|
|
167
|
+
TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_4 = 15215,
|
|
168
|
+
TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_5 = 15216,
|
|
169
|
+
TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_6 = 15217,
|
|
170
|
+
TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_7 = 15218,
|
|
162
171
|
TENNIS_MASTERS_LIVE_MAPPING_V2_1 = 15622,
|
|
163
172
|
TENNIS_MASTERS_LIVE_MAPPING_V2_2 = 15623,
|
|
164
173
|
TENNIS_MASTERS_LIVE_MAPPING_V2_3 = 15624,
|
|
@@ -181,13 +190,13 @@ export enum League {
|
|
|
181
190
|
TENNIS_MASTERS_LIVE_MAPPING_V2_20 = 15646,
|
|
182
191
|
TENNIS_MASTERS_LIVE_MAPPING_V2_21 = 15647,
|
|
183
192
|
TENNIS_MASTERS_LIVE_MAPPING_V2_22 = 15648,
|
|
184
|
-
TENNIS_WTA_LIVE_MAPPING_V2_1 =
|
|
185
|
-
TENNIS_WTA_LIVE_MAPPING_V2_2 =
|
|
186
|
-
TENNIS_WTA_LIVE_MAPPING_V2_3 =
|
|
187
|
-
TENNIS_WTA_LIVE_MAPPING_V2_4 =
|
|
188
|
-
TENNIS_WTA_LIVE_MAPPING_V2_5 =
|
|
189
|
-
TENNIS_WTA_LIVE_MAPPING_V2_6 =
|
|
190
|
-
TENNIS_WTA_LIVE_MAPPING_V2_7 =
|
|
193
|
+
TENNIS_WTA_LIVE_MAPPING_V2_1 = 15222,
|
|
194
|
+
TENNIS_WTA_LIVE_MAPPING_V2_2 = 15223,
|
|
195
|
+
TENNIS_WTA_LIVE_MAPPING_V2_3 = 15224,
|
|
196
|
+
TENNIS_WTA_LIVE_MAPPING_V2_4 = 15225,
|
|
197
|
+
TENNIS_WTA_LIVE_MAPPING_V2_5 = 15226,
|
|
198
|
+
TENNIS_WTA_LIVE_MAPPING_V2_6 = 15227,
|
|
199
|
+
TENNIS_WTA_LIVE_MAPPING_V2_7 = 15228,
|
|
191
200
|
}
|
|
192
201
|
|
|
193
202
|
export enum MoneylineTypes {
|
|
@@ -47,6 +47,7 @@ const baseDiffSportId: LeagueInfo = {
|
|
|
47
47
|
|
|
48
48
|
// Mock Variants
|
|
49
49
|
const leagueInfoOnlyParent: LeagueInfo[] = [baseLeagueInfo];
|
|
50
|
+
const leagueInfoOnlyParentWithSpreadAdded: LeagueInfo[] = [{ ...baseLeagueInfo, addedSpread: 3 }];
|
|
50
51
|
const leagueInfoOnlyParentDiffSportId: LeagueInfo[] = [baseDiffSportId];
|
|
51
52
|
|
|
52
53
|
const leagueInfoMockDisabledChilds: LeagueInfo[] = [
|
|
@@ -67,6 +68,7 @@ const leagueInfoEnabledAll: LeagueInfo[] = [baseLeagueInfo, spreadMock, totalMoc
|
|
|
67
68
|
// Grouped Exports
|
|
68
69
|
export const LeagueMocks = {
|
|
69
70
|
leagueInfoOnlyParent,
|
|
71
|
+
leagueInfoOnlyParentWithSpreadAdded,
|
|
70
72
|
leagueInfoOnlyParentDiffSportId,
|
|
71
73
|
leagueInfoMockDisabledChilds,
|
|
72
74
|
leagueInfoEnabledSpreadDisabledTotals,
|
|
@@ -108,6 +108,81 @@ export const MockOnlyMoneyline = {
|
|
|
108
108
|
],
|
|
109
109
|
};
|
|
110
110
|
|
|
111
|
+
export const MockOnlyMoneylineFavorite = {
|
|
112
|
+
...MockOddsBaseData,
|
|
113
|
+
odds: [
|
|
114
|
+
{
|
|
115
|
+
id: '34928-19103-2024-11-18:draftkings:moneyline:draw',
|
|
116
|
+
sportsbook: 'DraftKings',
|
|
117
|
+
market: 'Moneyline',
|
|
118
|
+
name: 'Draw',
|
|
119
|
+
is_main: true,
|
|
120
|
+
selection: 'Draw',
|
|
121
|
+
normalized_selection: 'draw',
|
|
122
|
+
market_id: 'moneyline',
|
|
123
|
+
selection_line: null,
|
|
124
|
+
player_id: null,
|
|
125
|
+
team_id: null,
|
|
126
|
+
price: 3.35,
|
|
127
|
+
timestamp: 1731890434.0742507,
|
|
128
|
+
grouping_key: 'default',
|
|
129
|
+
points: null,
|
|
130
|
+
deep_link: {
|
|
131
|
+
ios: 'dksb://sb/addbet/0ML77579980_2',
|
|
132
|
+
android: 'dksb://sb/addbet/0ML77579980_2',
|
|
133
|
+
desktop: 'https://sportsbook.draftkings.com/event/31382489?outcomes=0ML77579980_2',
|
|
134
|
+
},
|
|
135
|
+
limits: null,
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
id: '34928-19103-2024-11-18:draftkings:moneyline:liechtenstein',
|
|
139
|
+
sportsbook: 'DraftKings',
|
|
140
|
+
market: 'Moneyline',
|
|
141
|
+
name: 'Liechtenstein',
|
|
142
|
+
is_main: true,
|
|
143
|
+
selection: 'Liechtenstein',
|
|
144
|
+
normalized_selection: 'liechtenstein',
|
|
145
|
+
market_id: 'moneyline',
|
|
146
|
+
selection_line: null,
|
|
147
|
+
player_id: null,
|
|
148
|
+
team_id: '75B0884699D9',
|
|
149
|
+
price: 1.03,
|
|
150
|
+
timestamp: 1731890434.0742507,
|
|
151
|
+
grouping_key: 'default',
|
|
152
|
+
points: null,
|
|
153
|
+
deep_link: {
|
|
154
|
+
ios: 'dksb://sb/addbet/0ML77579980_1',
|
|
155
|
+
android: 'dksb://sb/addbet/0ML77579980_1',
|
|
156
|
+
desktop: 'https://sportsbook.draftkings.com/event/31382489?outcomes=0ML77579980_1',
|
|
157
|
+
},
|
|
158
|
+
limits: null,
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
id: '34928-19103-2024-11-18:draftkings:moneyline:san_marino',
|
|
162
|
+
sportsbook: 'DraftKings',
|
|
163
|
+
market: 'Moneyline',
|
|
164
|
+
name: 'San Marino',
|
|
165
|
+
is_main: true,
|
|
166
|
+
selection: 'San Marino',
|
|
167
|
+
normalized_selection: 'san_marino',
|
|
168
|
+
market_id: 'moneyline',
|
|
169
|
+
selection_line: null,
|
|
170
|
+
player_id: null,
|
|
171
|
+
team_id: 'CC6409213C00',
|
|
172
|
+
price: 4.5,
|
|
173
|
+
timestamp: 1731890434.0742507,
|
|
174
|
+
grouping_key: 'default',
|
|
175
|
+
points: null,
|
|
176
|
+
deep_link: {
|
|
177
|
+
ios: 'dksb://sb/addbet/0ML77579980_3',
|
|
178
|
+
android: 'dksb://sb/addbet/0ML77579980_3',
|
|
179
|
+
desktop: 'https://sportsbook.draftkings.com/event/31382489?outcomes=0ML77579980_3',
|
|
180
|
+
},
|
|
181
|
+
limits: null,
|
|
182
|
+
},
|
|
183
|
+
],
|
|
184
|
+
};
|
|
185
|
+
|
|
111
186
|
export const MockOnlyMoneylineWithDifferentSportsbook = {
|
|
112
187
|
...MockOddsBaseData,
|
|
113
188
|
odds: [
|
|
@@ -2,7 +2,7 @@ import { ZERO_ODDS_AFTER_SPREAD_ADJUSTMENT } from '../../constants/errors';
|
|
|
2
2
|
import { processMarket } from '../../utils/markets';
|
|
3
3
|
import { mapOpticOddsApiFixtureOdds } from '../../utils/opticOdds';
|
|
4
4
|
import { LeagueMocks } from '../mock/MockLeagueMap';
|
|
5
|
-
import { MockAfterSpreadZeroOdds1 } from '../mock/MockOpticSoccer';
|
|
5
|
+
import { MockAfterSpreadZeroOdds1, MockOnlyMoneylineFavorite, MockOpticSoccer } from '../mock/MockOpticSoccer';
|
|
6
6
|
import { mockSoccer } from '../mock/MockSoccerRedis';
|
|
7
7
|
|
|
8
8
|
describe('Spread configuration', () => {
|
|
@@ -28,4 +28,104 @@ describe('Spread configuration', () => {
|
|
|
28
28
|
expect(market).toHaveProperty('errorMessage');
|
|
29
29
|
expect(market.errorMessage).toBe(ZERO_ODDS_AFTER_SPREAD_ADJUSTMENT); // should be no matching bookmakers mesage
|
|
30
30
|
});
|
|
31
|
+
|
|
32
|
+
it('Should have diff between odds equal to 3%', () => {
|
|
33
|
+
const freshMockSoccer = JSON.parse(JSON.stringify(mockSoccer));
|
|
34
|
+
const freshMockOpticSoccer = JSON.parse(JSON.stringify(MockOpticSoccer));
|
|
35
|
+
const market = JSON.parse(
|
|
36
|
+
JSON.stringify(
|
|
37
|
+
processMarket(
|
|
38
|
+
freshMockSoccer,
|
|
39
|
+
mapOpticOddsApiFixtureOdds([freshMockOpticSoccer])[0],
|
|
40
|
+
['draftkings'],
|
|
41
|
+
[],
|
|
42
|
+
true,
|
|
43
|
+
undefined,
|
|
44
|
+
undefined,
|
|
45
|
+
LeagueMocks.leagueInfoOnlyParent
|
|
46
|
+
)
|
|
47
|
+
)
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
const marketWithAddedSpread = JSON.parse(
|
|
51
|
+
JSON.stringify(
|
|
52
|
+
processMarket(
|
|
53
|
+
freshMockSoccer,
|
|
54
|
+
mapOpticOddsApiFixtureOdds([freshMockOpticSoccer])[0],
|
|
55
|
+
['draftkings'],
|
|
56
|
+
[],
|
|
57
|
+
true,
|
|
58
|
+
undefined,
|
|
59
|
+
undefined,
|
|
60
|
+
LeagueMocks.leagueInfoOnlyParentWithSpreadAdded
|
|
61
|
+
)
|
|
62
|
+
)
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
const diff1 =
|
|
66
|
+
((market.odds[0].decimal - marketWithAddedSpread.odds[0].decimal) / marketWithAddedSpread.odds[0].decimal) *
|
|
67
|
+
100;
|
|
68
|
+
|
|
69
|
+
const diff2 =
|
|
70
|
+
((market.odds[1].decimal - marketWithAddedSpread.odds[1].decimal) / marketWithAddedSpread.odds[1].decimal) *
|
|
71
|
+
100;
|
|
72
|
+
|
|
73
|
+
const diff3 =
|
|
74
|
+
((market.odds[2].decimal - marketWithAddedSpread.odds[2].decimal) / marketWithAddedSpread.odds[2].decimal) *
|
|
75
|
+
100;
|
|
76
|
+
|
|
77
|
+
expect(Math.round(diff1)).toBe(3);
|
|
78
|
+
expect(Math.round(diff2)).toBe(3);
|
|
79
|
+
expect(Math.round(diff3)).toBe(3);
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
it('Should have diff between odds equal to 3%, and one odd should stay the same', () => {
|
|
83
|
+
const freshMockSoccer = JSON.parse(JSON.stringify(mockSoccer));
|
|
84
|
+
const freshMockOpticSoccer = JSON.parse(JSON.stringify(MockOnlyMoneylineFavorite));
|
|
85
|
+
const market = JSON.parse(
|
|
86
|
+
JSON.stringify(
|
|
87
|
+
processMarket(
|
|
88
|
+
freshMockSoccer,
|
|
89
|
+
mapOpticOddsApiFixtureOdds([freshMockOpticSoccer])[0],
|
|
90
|
+
['draftkings'],
|
|
91
|
+
[],
|
|
92
|
+
true,
|
|
93
|
+
undefined,
|
|
94
|
+
undefined,
|
|
95
|
+
LeagueMocks.leagueInfoOnlyParent
|
|
96
|
+
)
|
|
97
|
+
)
|
|
98
|
+
);
|
|
99
|
+
|
|
100
|
+
const marketWithAddedSpread = JSON.parse(
|
|
101
|
+
JSON.stringify(
|
|
102
|
+
processMarket(
|
|
103
|
+
freshMockSoccer,
|
|
104
|
+
mapOpticOddsApiFixtureOdds([freshMockOpticSoccer])[0],
|
|
105
|
+
['draftkings'],
|
|
106
|
+
[],
|
|
107
|
+
true,
|
|
108
|
+
undefined,
|
|
109
|
+
undefined,
|
|
110
|
+
LeagueMocks.leagueInfoOnlyParentWithSpreadAdded
|
|
111
|
+
)
|
|
112
|
+
)
|
|
113
|
+
);
|
|
114
|
+
|
|
115
|
+
const diff1 =
|
|
116
|
+
((market.odds[0].decimal - marketWithAddedSpread.odds[0].decimal) / marketWithAddedSpread.odds[0].decimal) *
|
|
117
|
+
100;
|
|
118
|
+
|
|
119
|
+
const diff2 =
|
|
120
|
+
((market.odds[1].decimal - marketWithAddedSpread.odds[1].decimal) / marketWithAddedSpread.odds[1].decimal) *
|
|
121
|
+
100;
|
|
122
|
+
|
|
123
|
+
const diff3 =
|
|
124
|
+
((market.odds[2].decimal - marketWithAddedSpread.odds[2].decimal) / marketWithAddedSpread.odds[2].decimal) *
|
|
125
|
+
100;
|
|
126
|
+
|
|
127
|
+
expect(Math.round(diff1)).toBe(0);
|
|
128
|
+
expect(Math.round(diff2)).toBe(3);
|
|
129
|
+
expect(Math.round(diff3)).toBe(3);
|
|
130
|
+
});
|
|
31
131
|
});
|
package/src/types/sports.ts
CHANGED
package/src/utils/markets.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as oddslib from 'oddslib';
|
|
2
2
|
import { createChildMarkets, getParentOdds } from './odds';
|
|
3
3
|
import { OddsObject } from '../types/odds';
|
|
4
|
+
import { getLeagueInfo } from './sports';
|
|
4
5
|
/**
|
|
5
6
|
* Processes a single sports event. This function maps event data to a specific format,
|
|
6
7
|
* filters invalid events, and optionally fetches player properties if the sport supports it.
|
|
@@ -27,6 +28,7 @@ export const processMarket = (
|
|
|
27
28
|
leagueMap: any
|
|
28
29
|
) => {
|
|
29
30
|
const sportSpreadData = spreadData.filter((data) => data.sportId === String(market.leagueId));
|
|
31
|
+
const leagueInfo = getLeagueInfo(market.leagueId, leagueMap);
|
|
30
32
|
|
|
31
33
|
const moneylineOdds = getParentOdds(
|
|
32
34
|
!isDrawAvailable,
|
|
@@ -50,12 +52,26 @@ export const processMarket = (
|
|
|
50
52
|
market.errorMessage = moneylineOdds.errorMessage;
|
|
51
53
|
} else {
|
|
52
54
|
// Pack market odds for UI
|
|
53
|
-
market.odds = moneylineOdds.odds.map((
|
|
54
|
-
if (
|
|
55
|
+
market.odds = moneylineOdds.odds.map((probability) => {
|
|
56
|
+
if (probability != 0) {
|
|
57
|
+
const leagueInfoByTypeId = leagueInfo.find((league) => Number(league.typeId) === Number(market.typeId));
|
|
58
|
+
let finalProbability = probability;
|
|
59
|
+
|
|
60
|
+
if (probability < 0.95) {
|
|
61
|
+
finalProbability =
|
|
62
|
+
leagueInfoByTypeId && leagueInfoByTypeId.addedSpread > 0
|
|
63
|
+
? (probability * (100 + leagueInfoByTypeId.addedSpread)) / 100
|
|
64
|
+
: probability;
|
|
65
|
+
// edge case if added spread is bigger than 5%, it can happen that odd goes above 1, in that case return odd from api.
|
|
66
|
+
if (finalProbability >= 1) {
|
|
67
|
+
finalProbability = probability;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
55
71
|
return {
|
|
56
|
-
american: oddslib.from('impliedProbability',
|
|
57
|
-
decimal: Number(oddslib.from('impliedProbability',
|
|
58
|
-
normalizedImplied:
|
|
72
|
+
american: oddslib.from('impliedProbability', finalProbability).to('moneyline'),
|
|
73
|
+
decimal: Number(oddslib.from('impliedProbability', finalProbability).to('decimal').toFixed(10)),
|
|
74
|
+
normalizedImplied: finalProbability,
|
|
59
75
|
};
|
|
60
76
|
} else {
|
|
61
77
|
market.errorMessage = 'Bad odds after spread adjustment';
|
|
@@ -80,19 +96,32 @@ export const processMarket = (
|
|
|
80
96
|
const packedChildMarkets = childMarkets.map((childMarket: any) => {
|
|
81
97
|
const preparedMarket = { ...market, ...childMarket };
|
|
82
98
|
if (preparedMarket.odds.length > 0) {
|
|
83
|
-
preparedMarket.odds = preparedMarket.odds.map((
|
|
84
|
-
if (
|
|
99
|
+
preparedMarket.odds = preparedMarket.odds.map((probability) => {
|
|
100
|
+
if (probability == 0) {
|
|
85
101
|
return {
|
|
86
102
|
american: 0,
|
|
87
103
|
decimal: 0,
|
|
88
104
|
normalizedImplied: 0,
|
|
89
105
|
};
|
|
90
106
|
}
|
|
107
|
+
const leagueInfoByTypeId = leagueInfo.find(
|
|
108
|
+
(league) => Number(league.typeId) === Number(preparedMarket.typeId)
|
|
109
|
+
);
|
|
110
|
+
let finalProbability = probability;
|
|
91
111
|
|
|
112
|
+
if (probability < 0.95) {
|
|
113
|
+
finalProbability =
|
|
114
|
+
leagueInfoByTypeId && leagueInfoByTypeId.addedSpread > 0
|
|
115
|
+
? (probability * (100 + leagueInfoByTypeId.addedSpread)) / 100
|
|
116
|
+
: probability;
|
|
117
|
+
if (finalProbability >= 1) {
|
|
118
|
+
finalProbability = probability;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
92
121
|
return {
|
|
93
|
-
american: oddslib.from('impliedProbability',
|
|
94
|
-
decimal: Number(oddslib.from('impliedProbability',
|
|
95
|
-
normalizedImplied:
|
|
122
|
+
american: oddslib.from('impliedProbability', finalProbability).to('moneyline'),
|
|
123
|
+
decimal: Number(oddslib.from('impliedProbability', finalProbability).to('decimal').toFixed(10)),
|
|
124
|
+
normalizedImplied: finalProbability,
|
|
96
125
|
};
|
|
97
126
|
});
|
|
98
127
|
}
|