overtime-live-trading-utils 0.0.152 → 0.0.154

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 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:()=>u,League:()=>L,LeagueIdMapEnetpulse:()=>y,LeagueIdMapOpticOdds:()=>G,LeagueIdMapRundown:()=>m,LeagueMap:()=>P,MIN_ODDS_FOR_DIFF_CHECKING:()=>j,MONEYLINE_TYPE_ID:()=>Q,MULTIPLIER_100:()=>z,MatchResolveType:()=>T,MoneylineTypes:()=>p,PeriodType:()=>N,Provider:()=>n,ScoringType:()=>l,Sport:()=>_,SpreadTypes:()=>S,TAG_CHILD_SPREAD:()=>x,TAG_CHILD_TOTALS:()=>X,TotalTypes:()=>s,UFC_LEAGUE_IDS:()=>C,ZERO:()=>k,adjustSpreadOnChildOdds:()=>_e,adjustSpreadOnOdds:()=>Z,allowGameSportWithPeriodConstraint:()=>se,allowGameSportWithResultConstraint:()=>Te,allowSoccerGame:()=>le,calculateImpliedOddsDifference:()=>c,checkGameContraints:()=>Se,checkOddsFromBookmakers:()=>R,createChildMarkets:()=>Ee,fetchResultInCurrentSet:()=>Ne,filterOddsByMarketNameBookmaker:()=>oe,filterOddsByMarketNameTeamNameBookmaker:()=>ae,gamesDatesMatching:()=>W,getBetTypesForLeague:()=>h,getBookmakersArray:()=>O,getLeagueInfo:()=>B,getLeagueIsDrawAvailable:()=>b,getLeagueLabel:()=>D,getLeagueOpticOddsName:()=>w,getLeaguePeriodType:()=>V,getLeagueProvider:()=>g,getLeagueSport:()=>v,getLeagueSpreadTypes:()=>f,getLeagueTotalTypes:()=>Y,getLiveSupportedLeagues:()=>F,getParentOdds:()=>ie,getSpreadData:()=>J,groupAndFormatSpreadOdds:()=>Ae,groupAndFormatTotalOdds:()=>te,mapOpticOddsApiFixtureOdds:()=>Ce,mapOpticOddsApiFixtures:()=>ue,mapOpticOddsApiResults:()=>Ue,processMarket:()=>pe,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 E=arguments[i];if(null!=E)for(var o in E)Object.prototype.hasOwnProperty.call(E,o)&&(a[o]=E[o])}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 E,o,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],E=[1,0],o=function(e){var r=null,a=e.toString().indexOf("E");-1==a&&(a=e.toString().indexOf("e"));var i=null,E=(r=-1==a?e.toString():e.toString().substring(0,a)).toString().indexOf(".");-1==E?i=r:0===E?i=r.substring(1,r.length):E<r.length&&(i=r.substring(0,E)+r.substring(E+1,r.length));var o=i,A=o.toString().length,t=e,_=t.toString().length;0===t&&(_=0);var L,p=A-_;for(L=p;L>0&&o%2==0;L--)o/=2;for(L=p;L>0&&o%5==0;L--)o/=5;return o}(e),A=e,t=Math.pow(10,-r)/2,_=2;_<1e3;_++){var L=Math.floor(A);if(i[_]=L*i[_-1]+i[_-2],Math.abs(i[_])>o)return;if(E[_]=L*E[_-1]+E[_-2],a=i[_]/E[_],Math.abs(a-e)<t||NaN==a)return i[_].toString()+"/"+E[_].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)}}},t=((o=function(e){if("number"!=typeof e||isNaN(e))throw new Error("Invalid odds");this.decimalValue=a(e)}).prototype=(E=function(){throw new Error("This constructor is private, please use the from* functions")}).prototype,E.from=function(e,r){if(!A.hasOwnProperty(e))throw new Error("Unknown format "+e+".");var a=A[e].from(r);return new o(a)},E);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 _,L,p,S,s,l,T,N,n,d,I=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 E=[];return i.primaryBookmaker&&E.push(i.primaryBookmaker),i.secondaryBookmaker&&E.push(i.secondaryBookmaker),i.tertiaryBookmaker&&E.push(i.tertiaryBookmaker),E}return a},R=function(e,r,a,i,E){var o=e.get(r[0]);if(!o)return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause no matching bookmakers have been found"};var A=o.homeOdds,t=o.awayOdds,_=a?0:o.drawOdds;if(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)})))return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause bookmakers have 0 or 1 odds"};if(1==r.length)return{homeOdds:A,awayOdds:t,drawOdds:a?0:_};if(r.slice(1).some((function(r){var o=e.get(r);if(o){var L=o.homeOdds,p=o.awayOdds,S=o.drawOdds,s=I("decimal",A).to("impliedProbability"),l=I("decimal",t).to("impliedProbability"),T=a?0:I("decimal",_).to("impliedProbability"),N=I("decimal",L).to("impliedProbability"),n=I("decimal",p).to("impliedProbability"),d=a?0:I("decimal",S).to("impliedProbability"),O=c(s,N),R=c(l,n),P=a?0:c(T,d);if(O>i&&s>E&&N>E||R>i&&l>E&&n>E||!a&&P>i&&T>E&&d>E)return!0}return!1})))return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds due to percentage difference between bookmakers"};var L=[];return r.forEach((function(r){return L.push(e.get(r))})),{homeOdds:A,awayOdds:t,drawOdds:a?0:_}},c=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.EUROCUP=20200]="EUROCUP",e[e.NFL_FUTURES=30002]="NFL_FUTURES",e[e.NBA_FUTURES=30004]="NBA_FUTURES",e[e.EPL_FUTURES=30011]="EPL_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"}(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"}(S||(S={})),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.EMPTY=""}(l||(l={})),function(e){e.OVERTIME="overtime",e.REGULAR="regular",e.EMPTY=""}(T||(T={})),function(e){e.QUARTER="quarter",e.HALF="half",e.PERIOD="period",e.ROUND="round",e.INNING="inning",e.SET="set",e.EMPTY=""}(N||(N={})),function(e){e.RUNDOWN="rundown",e.ENETPULSE="enetpulse",e.JSONODDS="jsonOdds",e.OPTICODDS="opticOdds",e.EMPTY=""}(n||(n={}));var P=((d={})[L.NCAAF]={sport:_.FOOTBALL,id:L.NCAAF,label:"NCAA Football",opticOddsName:"NCAAF",provider:n.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.NFL]={sport:_.FOOTBALL,id:L.NFL,label:"NFL",opticOddsName:"NFL",provider:n.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.MLB]={sport:_.BASEBALL,id:L.MLB,label:"MLB",opticOddsName:"MLB",provider:n.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.INNING,isDrawAvailable:!1},d[L.NBA]={sport:_.BASKETBALL,id:L.NBA,label:"NBA",opticOddsName:"NBA",provider:n.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.NCAAB]={sport:_.BASKETBALL,id:L.NCAAB,label:"NCAA Basketball",provider:n.RUNDOWN,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.NHL]={sport:_.HOCKEY,id:L.NHL,label:"NHL",opticOddsName:"NHL",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.OVERTIME,periodType:N.PERIOD,isDrawAvailable:!1},d[L.UFC]={sport:_.FIGHTING,id:L.UFC,label:"UFC",provider:n.OPTICODDS,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},d[L.WNBA]={sport:_.BASKETBALL,id:L.WNBA,label:"WNBA",opticOddsName:"WNBA",provider:n.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.MLS]={sport:_.SOCCER,id:L.MLS,label:"MLS",opticOddsName:"USA - Major League Soccer",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.EPL]={sport:_.SOCCER,id:L.EPL,label:"EPL",opticOddsName:"England - Premier League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.LIGUE_ONE]={sport:_.SOCCER,id:L.LIGUE_ONE,label:"Ligue 1",opticOddsName:"France - Ligue 1",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.BUNDESLIGA]={sport:_.SOCCER,id:L.BUNDESLIGA,label:"Bundesliga",opticOddsName:"Germany - Bundesliga",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.LA_LIGA]={sport:_.SOCCER,id:L.LA_LIGA,label:"La Liga",opticOddsName:"Spain - La Liga",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SERIE_A]={sport:_.SOCCER,id:L.SERIE_A,label:"Serie A",opticOddsName:"Italy - Serie A",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.UEFA_CL]={sport:_.SOCCER,id:L.UEFA_CL,label:"UEFA Champions League",opticOddsName:"UEFA - Champions League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.UEFA_EL]={sport:_.SOCCER,id:L.UEFA_EL,label:"UEFA Europa League",opticOddsName:"UEFA - Europa League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.FIFA_WC]={sport:_.SOCCER,id:L.FIFA_WC,label:"FIFA World Cup Qualifiers",provider:n.OPTICODDS,opticOddsName:"FIFA - World Cup Qualifiers",scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.J1_LEAGUE]={sport:_.SOCCER,id:L.J1_LEAGUE,label:"J1 League",opticOddsName:"Japan - J1 League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.IPL]={sport:_.CRICKET,id:L.IPL,label:"Indian Premier League",provider:n.RUNDOWN,scoringType:l.POINTS,matchResolveType:T.EMPTY,periodType:N.INNING,isDrawAvailable:!1},d[L.T20_BLAST]={sport:_.CRICKET,id:L.T20_BLAST,label:"T20 Blast",provider:n.RUNDOWN,scoringType:l.POINTS,matchResolveType:T.EMPTY,periodType:N.INNING,isDrawAvailable:!1},d[L.IIHF_WORLD_CHAMPIONSHIP]={sport:_.HOCKEY,id:L.IIHF_WORLD_CHAMPIONSHIP,label:"IIHF World Championship",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.PERIOD,isDrawAvailable:!0},d[L.COPA_AMERICA]={sport:_.SOCCER,id:L.COPA_AMERICA,label:"Copa America",opticOddsName:"CONMEBOL - Copa America",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.COPA_LIBERTADORES]={sport:_.SOCCER,id:L.COPA_LIBERTADORES,label:"Copa Libertadores",opticOddsName:"CONMEBOL - Copa Libertadores",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.UEFA_EURO]={sport:_.SOCCER,id:L.UEFA_EURO,label:"UEFA EURO 2024",opticOddsName:"UEFA - European Championship",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.EREDIVISIE]={sport:_.SOCCER,id:L.EREDIVISIE,label:"Eredivisie",opticOddsName:"Netherlands - Eredivisie",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.PRIMEIRA_LIGA]={sport:_.SOCCER,id:L.PRIMEIRA_LIGA,label:"Primeira Liga",opticOddsName:"Portugal - Primeira Liga",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_SOCCER_WOMEN]={sport:_.SOCCER,id:L.SUMMER_OLYMPICS_SOCCER_WOMEN,label:"Olympic Games Soccer Women",opticOddsName:"Olympics Soccer Women",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_SOCCER]={sport:_.SOCCER,id:L.SUMMER_OLYMPICS_SOCCER,label:"Olympic Games Soccer",opticOddsName:"Olympics Soccer Men",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.FIFA_WC_WOMEN]={sport:_.SOCCER,id:L.FIFA_WC_WOMEN,label:"FIFA World Cup Women",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.ENGLAND_CUP]={sport:_.SOCCER,id:L.ENGLAND_CUP,label:"FA Cup",opticOddsName:"England - FA Cup",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.FRANCE_CUP]={sport:_.SOCCER,id:L.FRANCE_CUP,label:"Coupe de France",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SPAIN_CUP]={sport:_.SOCCER,id:L.SPAIN_CUP,label:"Copa del Rey",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.ITALY_CUP]={sport:_.SOCCER,id:L.ITALY_CUP,label:"Coppa Italia",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.TENNIS_WTA]={sport:_.TENNIS,id:L.TENNIS_WTA,label:"WTA Events",opticOddsName:"WTA",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.TENNIS_GS]={sport:_.TENNIS,id:L.TENNIS_GS,label:"Grand Slam",opticOddsName:"ATP,WTA",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.TENNIS_MASTERS]={sport:_.TENNIS,id:L.TENNIS_MASTERS,label:"ATP Events",opticOddsName:"ATP",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_TENNIS]={sport:_.TENNIS,id:L.SUMMER_OLYMPICS_TENNIS,label:"Olympic Games Tennis",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.GERMANY_CUP]={sport:_.SOCCER,id:L.GERMANY_CUP,label:"DFB Pokal",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.LIGA_MX]={sport:_.SOCCER,id:L.LIGA_MX,label:"Liga MX",opticOddsName:"Mexico - Liga MX",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.BRAZIL_1]={sport:_.SOCCER,id:L.BRAZIL_1,label:"Serie A",opticOddsName:"Brazil - Serie A",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.UEFA_EURO_U21]={sport:_.SOCCER,id:L.UEFA_EURO_U21,label:"UEFA EURO U21",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.FIFA_WORLD_CUP_U20]={sport:_.SOCCER,id:L.FIFA_WORLD_CUP_U20,label:"FIFA World Cup U20",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_HANDBALL_WOMEN]={sport:_.HANDBALL,id:L.SUMMER_OLYMPICS_HANDBALL_WOMEN,label:"Olympic Games Handball Women",opticOddsName:"Olympics Handball Women",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_HANDBALL]={sport:_.HANDBALL,id:L.SUMMER_OLYMPICS_HANDBALL,label:"Olympic Games Handball",opticOddsName:"Olympics Handball Men",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.EUROLEAGUE]={sport:_.BASKETBALL,id:L.EUROLEAGUE,label:"Euroleague",opticOddsName:"Euroleague",provider:n.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BASKETBALL]={sport:_.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL,label:"Olympic Games Basketball",opticOddsName:"Olympics Basketball Men",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BASKETBALL_WOMEN]={sport:_.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL_WOMEN,label:"Olympic Games Basketball Women",opticOddsName:"Olympics Basketball Women",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.FIBA_WORLD_CUP]={sport:_.BASKETBALL,id:L.FIBA_WORLD_CUP,label:"FIBA World Cup",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.FORMULA1]={sport:_.MOTOSPORT,id:L.FORMULA1,label:"Formula 1",provider:n.ENETPULSE,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN]={sport:_.VOLLEYBALL,id:L.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN,label:"Olympic Games Beach Voleyball Women",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BEACH_VOLEYBALL]={sport:_.VOLLEYBALL,id:L.SUMMER_OLYMPICS_BEACH_VOLEYBALL,label:"Olympic Games Beach Voleyball",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_TABLE_TENNIS]={sport:_.TABLE_TENNIS,id:L.SUMMER_OLYMPICS_TABLE_TENNIS,label:"Olympic Games Table Tennis",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.MOTOGP]={sport:_.MOTOSPORT,id:L.MOTOGP,label:"MotoGP",provider:n.ENETPULSE,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d[L.SAUDI_PROFESSIONAL_LEAGUE]={sport:_.SOCCER,id:L.SAUDI_PROFESSIONAL_LEAGUE,label:"Saudi Professional League",opticOddsName:"Saudi Arabia - Saudi League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_WATERPOLO]={sport:_.WATERPOLO,id:L.SUMMER_OLYMPICS_WATERPOLO,label:"Olympic Games Water Polo",opticOddsName:"Olympics Water Polo",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.QUARTER,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_VOLEYBALL_WOMEN]={sport:_.VOLLEYBALL,id:L.SUMMER_OLYMPICS_VOLEYBALL_WOMEN,label:"Olympic Games Volleyball Women",opticOddsName:"Olympics Volleyball Women",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_VOLEYBALL]={sport:_.VOLLEYBALL,id:L.SUMMER_OLYMPICS_VOLEYBALL,label:"Olympic Games Volleyball",opticOddsName:"Olympics Volleyball Men",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.BOXING]={sport:_.FIGHTING,id:L.BOXING,label:"Boxing",provider:n.ENETPULSE,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_RUGBY]={sport:_.RUGBY,id:L.SUMMER_OLYMPICS_RUGBY,label:"Olympic Games Rugby",opticOddsName:"Olympics Rugby 7s Men",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_RUGBY_WOMEN]={sport:_.RUGBY,id:L.SUMMER_OLYMPICS_RUGBY_WOMEN,label:"Olympic Games Rugby Women",opticOddsName:"Olympics Rugby 7s Women",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_HOCKEY_WOMEN]={sport:_.HOCKEY,id:L.SUMMER_OLYMPICS_HOCKEY_WOMEN,label:"Olympic Games Hockey Women",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.PERIOD,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_HOCKEY]={sport:_.HOCKEY,id:L.SUMMER_OLYMPICS_HOCKEY,label:"Olympic Games Hockey",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.PERIOD,isDrawAvailable:!0},d[L.UEFA_NATIONS_LEAGUE]={sport:_.SOCCER,id:L.UEFA_NATIONS_LEAGUE,label:"UEFA Nations League",provider:n.OPTICODDS,opticOddsName:"UEFA - Nations League",scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.CONCACAF_NATIONS_LEAGUE]={sport:_.SOCCER,id:L.CONCACAF_NATIONS_LEAGUE,label:"CONCACAF Nations League",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.CSGO]={sport:_.ESPORTS,id:L.CSGO,label:"CS GO",opticOddsName:"CS2",provider:n.ENETPULSE,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},d[L.DOTA2]={sport:_.ESPORTS,id:L.DOTA2,label:"DOTA 2",opticOddsName:"Dota 2",provider:n.ENETPULSE,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BASKETBALL_3X3]={sport:_.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL_3X3,label:"Olympic Games Basketball 3x3",opticOddsName:"Olympics Basketball 3x3 Men",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN]={sport:_.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN,label:"Olympic Games Basketball 3x3 Women",opticOddsName:"Olympics Basketball 3x3 Women",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_QUALIFICATION]={sport:_.BASKETBALL,id:L.SUMMER_OLYMPICS_QUALIFICATION,label:"Summer Olympics Basketball Qualification",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.LOL]={sport:_.ESPORTS,id:L.LOL,label:"LOL",opticOddsName:"League of Legends",provider:n.ENETPULSE,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},d[L.CONMEBOL_WC_QUALIFICATIONS]={sport:_.SOCCER,id:L.CONMEBOL_WC_QUALIFICATIONS,label:"CONMEBOL WC Qualification",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.UEFA_CONFERENCE_LEAGUE]={sport:_.SOCCER,id:L.UEFA_CONFERENCE_LEAGUE,label:"UEFA Conference League",opticOddsName:"UEFA - Europa Conference League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.NON_TITLE_BOXING]={sport:_.FIGHTING,id:L.NON_TITLE_BOXING,label:"Boxing",provider:n.ENETPULSE,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},d[L.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:L.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,label:"UEFA Champions League Qualification",opticOddsName:"UEFA - Champions League",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.UEFA_EUROPA_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:L.UEFA_EUROPA_LEAGUE_QUALIFICATION,label:"UEFA Europa League Qualification",opticOddsName:"UEFA - Europa League",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.UEFA_CONFERENCE_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:L.UEFA_CONFERENCE_LEAGUE_QUALIFICATION,label:"UEFA Conference League Qualification",opticOddsName:"UEFA - Europa Conference League",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.US_ELECTION]={sport:_.POLITICS,id:L.US_ELECTION,label:"US Election 2024",provider:n.EMPTY,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d[L.UEFA_SUPER_CUP]={sport:_.SOCCER,id:L.UEFA_SUPER_CUP,label:"UEFA Super Cup",opticOddsName:"UEFA - Super Cup",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.BRAZIL_CUP]={sport:_.SOCCER,id:L.BRAZIL_CUP,label:"Copa do Brasil",opticOddsName:"Brazil - Copa do Brasil",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.ENGLAND_CHAMPIONSHIP]={sport:_.SOCCER,id:L.ENGLAND_CHAMPIONSHIP,label:"EFL Championship",opticOddsName:"England - Championship",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SCOTLAND_PREMIERSHIP]={sport:_.SOCCER,id:L.SCOTLAND_PREMIERSHIP,label:"Scotland Premiership",opticOddsName:"Scotland - Premiership",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.BELGIUM_LEAGUE]={sport:_.SOCCER,id:L.BELGIUM_LEAGUE,label:"Belgium Jupiler Pro League",opticOddsName:"Belgium - Jupiler Pro League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.CZECH_LEAGUE]={sport:_.SOCCER,id:L.CZECH_LEAGUE,label:"Czech Republic FNL",opticOddsName:"Czech Republic - FNL",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.CHILE_PRIMERA]={sport:_.SOCCER,id:L.CHILE_PRIMERA,label:"Chile Primera Division",opticOddsName:"Chile - Primera Division",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.FINLAND_LEAGUE]={sport:_.SOCCER,id:L.FINLAND_LEAGUE,label:"Finland Veikkausliiga",opticOddsName:"Finland - Veikkausliiga",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.ARGENTINA_PRIMERA]={sport:_.SOCCER,id:L.ARGENTINA_PRIMERA,label:"Argentina Primera Division",opticOddsName:"Argentina - Primera Division",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.RUSSIA_PREMIER]={sport:_.SOCCER,id:L.RUSSIA_PREMIER,label:"Russia Premier League",opticOddsName:"Russia - Premier League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.TURKEY_SUPER_LEAGUE]={sport:_.SOCCER,id:L.TURKEY_SUPER_LEAGUE,label:"Turkey Super Lig",opticOddsName:"Turkey - Super Lig",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SERBIA_SUPER_LEAGUE]={sport:_.SOCCER,id:L.SERBIA_SUPER_LEAGUE,label:"Serbia Super Liga",opticOddsName:"Serbia - Super Liga",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.GREECE_SUPER_LEAGUE]={sport:_.SOCCER,id:L.GREECE_SUPER_LEAGUE,label:"Greece Super League",opticOddsName:"Greece - Super League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.INDIA_PREMIER]={sport:_.SOCCER,id:L.INDIA_PREMIER,label:"India Calcutta Premier Division",opticOddsName:"India - Calcutta Premier Division",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.CHINA_SUPER_LEAGUE]={sport:_.SOCCER,id:L.CHINA_SUPER_LEAGUE,label:"China Super League",opticOddsName:"China - Super League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.AUSTRALIA_A_LEAGUE]={sport:_.SOCCER,id:L.AUSTRALIA_A_LEAGUE,label:"Australia A-League",opticOddsName:"Australia - A-League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SWITZERLAND_SUPER_LEAGUE]={sport:_.SOCCER,id:L.SWITZERLAND_SUPER_LEAGUE,label:"Switzerland Super League",opticOddsName:"Switzerland - Super League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.BUNDESLIGA_2]={sport:_.SOCCER,id:L.BUNDESLIGA_2,label:"Bundesliga 2",opticOddsName:"Germany - Bundesliga 2",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.LA_LIGA_2]={sport:_.SOCCER,id:L.LA_LIGA_2,label:"La Liga 2",opticOddsName:"Spain - La Liga 2",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SERIE_B]={sport:_.SOCCER,id:L.SERIE_B,label:"Serie B",opticOddsName:"Italy - Serie B",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.INDIA_SUPER_LEAGUE]={sport:_.SOCCER,id:L.INDIA_SUPER_LEAGUE,label:"India Super League",opticOddsName:"India - Super League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.LIGUE_2]={sport:_.SOCCER,id:L.LIGUE_2,label:"Ligue 2",opticOddsName:"France - Ligue 2",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.AUSTRIA_BUNDESLIGA]={sport:_.SOCCER,id:L.AUSTRIA_BUNDESLIGA,label:"Austria Bundesliga",opticOddsName:"Austria - Bundesliga",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.DENMARK_SUPER_LEAGUE]={sport:_.SOCCER,id:L.DENMARK_SUPER_LEAGUE,label:"Denmark Superliga",opticOddsName:"Denmark - Superliga",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.POLAND_LEAGUE]={sport:_.SOCCER,id:L.POLAND_LEAGUE,label:"Poland Ekstraklasa",opticOddsName:"Poland - Ekstraklasa",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SWEDEN_LEAGUE]={sport:_.SOCCER,id:L.SWEDEN_LEAGUE,label:"Sweden Allsvenskan",opticOddsName:"Sweden - Allsvenskan",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.COLOMBIA_PRIMERA_A]={sport:_.SOCCER,id:L.COLOMBIA_PRIMERA_A,label:"Colombia Primera A",opticOddsName:"Colombia - Primera A",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.ENGLAND_EFL_CUP]={sport:_.SOCCER,id:L.ENGLAND_EFL_CUP,label:"England EFL Cup",opticOddsName:"England - EFL Cup",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.ENGLAND_LEGAUE_1]={sport:_.SOCCER,id:L.ENGLAND_LEGAUE_1,label:"England League 1",opticOddsName:"England - League 1",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.URUGUAY_PRIMERA_DIVISION]={sport:_.SOCCER,id:L.URUGUAY_PRIMERA_DIVISION,label:"Uruguay Primera Division",opticOddsName:"Uruguay - Primera Division",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.EUROCUP]={sport:_.BASKETBALL,id:L.EUROCUP,label:"Eurocup",opticOddsName:"Eurocup",provider:n.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.NFL_FUTURES]={sport:_.FUTURES,id:L.NFL_FUTURES,label:"NFL Futures",provider:n.EMPTY,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d[L.NBA_FUTURES]={sport:_.FUTURES,id:L.NBA_FUTURES,label:"NBA Futures",provider:n.EMPTY,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d[L.EPL_FUTURES]={sport:_.FUTURES,id:L.EPL_FUTURES,label:"EPL Futures",provider:n.EMPTY,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d[L.GOLF_H2H]={sport:_.GOLF,id:L.GOLF_H2H,label:"Golf head-to-head",provider:n.JSONODDS,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d[L.GOLF_WINNER]={sport:_.GOLF,id:L.GOLF_WINNER,label:"Golf Tournament Winner",provider:n.JSONODDS,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d),M=[L.CSGO,L.DOTA2,L.LOL,L.TENNIS_GS,L.TENNIS_MASTERS,L.SUMMER_OLYMPICS_TENNIS,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6,L.TENNIS_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],u=[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],C=[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",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",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",20200:"Eurocup"},v=function(e){var r=P[e];return r?r.sport:_.EMPTY},D=function(e){var r=P[e];return r?r.label:""},g=function(e){var r=P[e];return r?r.provider:""},b=function(e){var r=P[e];return!!r&&r.isDrawAvailable},F=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)},B=function(e,r){return r.filter((function(r){return Number(r.sportId)===e}))},w=function(e){var r=P[e];return r?r.opticOddsName:void 0},V=function(e){var r=P[e];return r?r.periodType:""},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,E,o){var A,t;if(M.includes(e)?(A=i.toLowerCase()==r.toLowerCase()||i.toLowerCase()==a.toLowerCase(),t=E.toLowerCase()==r.toLowerCase()||E.toLowerCase()==a.toLowerCase()):(A=i.toLowerCase()==r.toLowerCase(),t=E.toLowerCase()==a.toLowerCase()),!0!==A){var _=o.get(i.toLowerCase()),L=o.get(r.toLowerCase()),p=o.get(a.toLowerCase());if([_,L].some((function(e){return null==e})))return!1;A=M.includes(e)?_==L||_==p:_==L}if(!0!==t){var S=o.get(E.toLowerCase());if(L=o.get(r.toLowerCase()),[S,p=o.get(a.toLowerCase())].some((function(e){return null==e})))return!1;t=M.includes(e)&&S==L||S==p}return A&&t},W=function(e,r,a,i){var E;if(v(a)==_.TENNIS){var o=r.getTime(),A=e.getTime();E=Math.abs(A-o)<=Number(60*i*1e3)}else E=r.toUTCString()==e.toUTCString();return E},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 E=1+a/100,o=E/i,A=e.map((function(e){return e*o}));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 _=E/t;return A.map((function(e){return e*_}))},J=function(e,r,a,i){var E=e.find((function(e){return Number(e.typeId)===Number(a)&&Number(e.sportId)===Number(r)}));return E?{minSpread:E.minSpread?Number(E.minSpread):i,targetSpread:E.targetSpread?Number(E.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 E in r=arguments[a])Object.prototype.hasOwnProperty.call(r,E)&&(e[E]=r[E]);return e},q.apply(this,arguments)},$=function(e,r,a){if(a||2===arguments.length)for(var i,E=0,o=r.length;E<o;E++)!i&&E in r||(i||(i=Array.prototype.slice.call(r,0,E)),i[E]=r[E]);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 I(e,a).to(r)}catch(e){return 0}},ae=function(e,r,a,i,E){var o=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,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&&(_=L[0].price);var p=0;if(!E){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&&(p=S[0].price)}o.set(a.toLowerCase(),{homeOdds:A,awayOdds:_,drawOdds:p})})),o},ie=function(e,r,a,i,E,o,A){var t={homeTeam:i.homeTeam,awayTeam:i.awayTeam},_=ae(i.odds,p.MONEYLINE,a,t,e),L=R(_,a,e,A,j);if(L.errorMessage)return{odds:e?[0,0]:[0,0,0],errorMessage:L.errorMessage};var S=(e?[L.homeOdds,L.awayOdds]:[L.homeOdds,L.awayOdds,L.drawOdds]).map((function(e){return ee(e)})),s=J(r,E,Q,o);return{odds:S=null!==s?Z(S,s.minSpread,s.targetSpread):Z(S,o,0)}},Ee=function(e,r,a,i,E,o){var A=[[],[],[]],t=A[0],_=A[1],L=A[2],p=B(a,o),S={homeTeam:e.homeTeam,awayTeam:e.awayTeam};if(p.length>0){oe(e.odds,p,i[0]).filter((function(e){return e&&.5===Math.abs(Number(e.points)%1)})).forEach((function(e){"Total"===e.type?_.push(e):"Spread"===e.type&&t.push(e)}));var s=$($([],Ae(t,S),!0),te(_,S),!0);_e(s,r,E).forEach((function(e){var r={leagueId:Number(e.sportId),typeId:Number(e.typeId),type:e.type.toLowerCase(),line:Number(e.line),odds:e.odds},a=p.find((function(r){return Number(r.typeId)===Number(e.typeId)})),i=null==a?void 0:a.minOdds,E=null==a?void 0:a.maxOdds;i&&E&&(e.odds[0]>=i||e.odds[0]<=E||e.odds[1]>=i||e.odds[1]<=E)||L.push(r)}))}else console.warn("No child markets for leagueID: ".concat(Number(a)));return L},oe=function(e,r,a){var i=r.filter((function(e){return e.marketName.toLowerCase()!==p.MONEYLINE.toLowerCase()})).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,E=a.price,o=a.selection,A=a.typeId,t=a.sportId,_=a.type,L=o===r.homeTeam,p=L?i:-i;return e[p]||(e[p]={home:null,away:null,typeId:null,sportId:null}),L?e[p].home=E:e[p].away=E,e[p].typeId=A,e[p].type=_,e[p].sportId=t,e}),{}),i=Object.entries(a).reduce((function(e,r){var a=r[0],i=r[1],E=parseFloat(a);return null!==i.home&&null!==i.away&&e.push({line:E,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.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],E=a[1],o=i.split("_"),A=o[0],t=o[1],_=parseFloat(t),L=A===r.awayTeam;return null!==E.over&&null!==E.under&&e.push({line:_,odds:[E.over,E.under],typeId:L?Number(E.typeId)+1:E.typeId,sportId:E.sportId,type:E.type}),e}),[]);return i},_e=function(e,r,a){var i=[];return e.forEach((function(e){var E=ee(e.odds[0])||k,o=ee(e.odds[1])||k;if(E!==k&&o!==k){var A,t=J(r,e.sportId,e.typeId,a);E=(A=null!==t?Z([E,o],t.minSpread,t.targetSpread):Z([E,o],a,0))[0],o=A[1],i.push(q(q({},e),{odds:A}))}})),i},Le=function(){return Le=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var E in r=arguments[a])Object.prototype.hasOwnProperty.call(r,E)&&(e[E]=r[E]);return e},Le.apply(this,arguments)},pe=function(e,r,a,i,E,o,A,t){var _=i.filter((function(r){return r.sportId===String(e.leagueId)})),L=ie(!E,_,a,r,e.leagueId,o,A);L.errorMessage?(e.odds=e.odds.map((function(){return{american:0,decimal:0,normalizedImplied:0}})),e.errorMessage=L.errorMessage):e.odds=L.odds.map((function(r){return 0!=r?{american:I("impliedProbability",r).to("moneyline"),decimal:I("impliedProbability",r).to("decimal"),normalizedImplied:r}:(e.errorMessage="Unexpected odds after spread adjustment",{american:0,decimal:0,normalizedImplied:0})}));var p=Ee(r,_,e.leagueId,a,o,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:I("impliedProbability",e).to("moneyline"),decimal:I("impliedProbability",e).to("decimal"),normalizedImplied:e}}))),a}));return e.childMarkets=p,e},Se=function(e,r,a){var i=v(r),E=e.homeTeam,o=e.homeTotal,A=e.awayTeam,t=e.awayTotal,L=e.clock,p=e.period,S=e.status,s=parseInt(p);return"completed"==S.toLowerCase()?{allow:!1,message:"Blocking game ".concat(E," - ").concat(A," because it is no longer live.")}:i===_.BASKETBALL?se(E,A,s,a.get(_.BASKETBALL)):i===_.HOCKEY?se(E,A,s,a.get(_.HOCKEY)):i===_.BASEBALL?se(E,A,s,a.get(_.BASEBALL)):i===_.SOCCER?le(E,A,L,p,a.get(_.SOCCER)):i===_.TENNIS?Te(e,E,A,p,o,t,r,i):i===_.VOLLEYBALL?Te(e,E,A,s,o,t,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,E){var o=Number(a);return!Number.isNaN(o)&&o>=E||Number.isNaN(o)&&"HALF"!=i?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to clock: ").concat(a,"min")}:{allow:!0,message:""}},Te=function(e,r,a,i,E,o,A,t){var p=Number(i),S=Ne(p,e),s="atp"==e.league.toLowerCase(),l={home:E,away:o};return t==_.VOLLEYBALL?ne(r,a,S,l,de,5==p?Oe:Ie):A.toString().startsWith(L.TENNIS_GS)&&s?ne(r,a,S,l,Re,Pe):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)?ne(r,a,S,l,ce,Pe):{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}},ne=function(e,r,a,i,E,o){return Number(i.home)!=E&&Number(i.away)!=E||!(Number(i.home)==E&&a.home>=o||Number(i.away)==E&&a.away>=o)?{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,")")}},de=2,Ie=20,Oe=10,Re=2,ce=1,Pe=5,Me=function(){return Me=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var E in r=arguments[a])Object.prototype.hasOwnProperty.call(r,E)&&(e[E]=r[E]);return e},Me.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 Me(Me({gameId:e.fixture.id,sport:e.sport.name,league:e.league.name.toLowerCase(),status:e.fixture.status.toLowerCase(),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},me(e.scores.home.periods,"home")),me(e.scores.away.periods,"away"))}))},Ce=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}}))}}))},me=function(e,r){return Object.values(e).reduce((function(e,a,i){var E;return Me(Me({},e),((E={})["".concat(r,"Period").concat(i+1)]=a,E))}),{})};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:()=>M,LEAGUES_NO_LIVE_CONSTRAINTS:()=>C,League:()=>p,LeagueIdMapEnetpulse:()=>y,LeagueIdMapOpticOdds:()=>G,LeagueIdMapRundown:()=>U,LeagueMap:()=>P,MIN_ODDS_FOR_DIFF_CHECKING:()=>j,MONEYLINE_TYPE_ID:()=>Q,MULTIPLIER_100:()=>z,MatchResolveType:()=>T,MoneylineTypes:()=>L,PeriodType:()=>d,Provider:()=>n,ScoringType:()=>S,Sport:()=>_,SpreadTypes:()=>s,TAG_CHILD_SPREAD:()=>x,TAG_CHILD_TOTALS:()=>X,TotalTypes:()=>l,UFC_LEAGUE_IDS:()=>m,ZERO:()=>k,adjustSpreadOnChildOdds:()=>pe,adjustSpreadOnOdds:()=>Z,allowGameSportWithPeriodConstraint:()=>Se,allowGameSportWithResultConstraint:()=>de,allowSoccerGame:()=>Te,calculateImpliedOddsDifference:()=>c,checkGameContraints:()=>le,checkOddsFromBookmakers:()=>R,createChildMarkets:()=>oe,fetchResultInCurrentSet:()=>ne,filterOddsByMarketNameBookmaker:()=>Ee,filterOddsByMarketNameTeamNameBookmaker:()=>ae,gamesDatesMatching:()=>W,getBetTypesForLeague:()=>B,getBookmakersArray:()=>O,getLeagueInfo:()=>h,getLeagueIsDrawAvailable:()=>b,getLeagueLabel:()=>D,getLeagueOpticOddsName:()=>w,getLeaguePeriodType:()=>V,getLeagueProvider:()=>g,getLeagueSport:()=>v,getLeagueSpreadTypes:()=>f,getLeagueTotalTypes:()=>Y,getLiveSupportedLeagues:()=>F,getParentOdds:()=>ie,getSpreadData:()=>J,groupAndFormatMoneylineOdds:()=>_e,groupAndFormatSpreadOdds:()=>Ae,groupAndFormatTotalOdds:()=>te,mapOpticOddsApiFixtureOdds:()=>Ue,mapOpticOddsApiFixtures:()=>ue,mapOpticOddsApiResults:()=>me,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,S,T,d,n,I,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;if(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)})))return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause bookmakers have 0 or 1 odds"};if(1==r.length)return{homeOdds:A,awayOdds:t,drawOdds:a?0:_};if(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"),S=N("decimal",t).to("impliedProbability"),T=a?0:N("decimal",_).to("impliedProbability"),d=N("decimal",p).to("impliedProbability"),n=N("decimal",L).to("impliedProbability"),I=a?0:N("decimal",s).to("impliedProbability"),O=c(l,d),R=c(S,n),P=a?0:c(T,I);if(O>i&&l>o&&d>o||R>i&&S>o&&n>o||!a&&P>i&&T>o&&I>o)return!0}return!1})))return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds due to percentage difference between bookmakers"};var p=[];return r.forEach((function(r){return p.push(e.get(r))})),{homeOdds:A,awayOdds:t,drawOdds:a?0:_}},c=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.NFL_FUTURES=30002]="NFL_FUTURES",e[e.NBA_FUTURES=30004]="NBA_FUTURES",e[e.EPL_FUTURES=30011]="EPL_FUTURES",e[e.UEFA_CHAMPIONS_LEAGUE_FUTURES=30016]="UEFA_CHAMPIONS_LEAGUE_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.EMPTY=""}(S||(S={})),function(e){e.OVERTIME="overtime",e.REGULAR="regular",e.EMPTY=""}(T||(T={})),function(e){e.QUARTER="quarter",e.HALF="half",e.PERIOD="period",e.ROUND="round",e.INNING="inning",e.SET="set",e.EMPTY=""}(d||(d={})),function(e){e.RUNDOWN="rundown",e.ENETPULSE="enetpulse",e.JSONODDS="jsonOdds",e.OPTICODDS="opticOdds",e.EMPTY=""}(n||(n={}));var P=((I={})[p.NCAAF]={sport:_.FOOTBALL,id:p.NCAAF,label:"NCAA Football",opticOddsName:"NCAAF",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.NFL]={sport:_.FOOTBALL,id:p.NFL,label:"NFL",opticOddsName:"NFL",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.MLB]={sport:_.BASEBALL,id:p.MLB,label:"MLB",opticOddsName:"MLB",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.INNING,isDrawAvailable:!1},I[p.NBA]={sport:_.BASKETBALL,id:p.NBA,label:"NBA",opticOddsName:"NBA",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.NCAAB]={sport:_.BASKETBALL,id:p.NCAAB,label:"NCAA Basketball",opticOddsName:"NCAAB",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.NHL]={sport:_.HOCKEY,id:p.NHL,label:"NHL",opticOddsName:"NHL",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.OVERTIME,periodType:d.PERIOD,isDrawAvailable:!1},I[p.UFC]={sport:_.FIGHTING,id:p.UFC,label:"UFC",provider:n.OPTICODDS,scoringType:S.ROUNDS,matchResolveType:T.EMPTY,periodType:d.ROUND,isDrawAvailable:!1},I[p.WNBA]={sport:_.BASKETBALL,id:p.WNBA,label:"WNBA",opticOddsName:"WNBA",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.MLS]={sport:_.SOCCER,id:p.MLS,label:"MLS",opticOddsName:"USA - Major League Soccer",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.EPL]={sport:_.SOCCER,id:p.EPL,label:"EPL",opticOddsName:"England - Premier League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.LIGUE_ONE]={sport:_.SOCCER,id:p.LIGUE_ONE,label:"Ligue 1",opticOddsName:"France - Ligue 1",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.BUNDESLIGA]={sport:_.SOCCER,id:p.BUNDESLIGA,label:"Bundesliga",opticOddsName:"Germany - Bundesliga",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.LA_LIGA]={sport:_.SOCCER,id:p.LA_LIGA,label:"La Liga",opticOddsName:"Spain - La Liga",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SERIE_A]={sport:_.SOCCER,id:p.SERIE_A,label:"Serie A",opticOddsName:"Italy - Serie A",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.UEFA_CL]={sport:_.SOCCER,id:p.UEFA_CL,label:"UEFA Champions League",opticOddsName:"UEFA - Champions League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.UEFA_EL]={sport:_.SOCCER,id:p.UEFA_EL,label:"UEFA Europa League",opticOddsName:"UEFA - Europa League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.FIFA_WC]={sport:_.SOCCER,id:p.FIFA_WC,label:"FIFA World Cup Qualifiers",provider:n.OPTICODDS,opticOddsName:"FIFA - World Cup Qualifiers",scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.J1_LEAGUE]={sport:_.SOCCER,id:p.J1_LEAGUE,label:"J1 League",opticOddsName:"Japan - J1 League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.IPL]={sport:_.CRICKET,id:p.IPL,label:"Indian Premier League",provider:n.EMPTY,scoringType:S.POINTS,matchResolveType:T.EMPTY,periodType:d.INNING,isDrawAvailable:!1},I[p.T20_BLAST]={sport:_.CRICKET,id:p.T20_BLAST,label:"T20 Blast",provider:n.EMPTY,scoringType:S.POINTS,matchResolveType:T.EMPTY,periodType:d.INNING,isDrawAvailable:!1},I[p.IIHF_WORLD_CHAMPIONSHIP]={sport:_.HOCKEY,id:p.IIHF_WORLD_CHAMPIONSHIP,label:"IIHF World Championship",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.PERIOD,isDrawAvailable:!0},I[p.COPA_AMERICA]={sport:_.SOCCER,id:p.COPA_AMERICA,label:"Copa America",opticOddsName:"CONMEBOL - Copa America",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.COPA_LIBERTADORES]={sport:_.SOCCER,id:p.COPA_LIBERTADORES,label:"Copa Libertadores",opticOddsName:"CONMEBOL - Copa Libertadores",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.UEFA_EURO]={sport:_.SOCCER,id:p.UEFA_EURO,label:"UEFA EURO 2024",opticOddsName:"UEFA - European Championship",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.EREDIVISIE]={sport:_.SOCCER,id:p.EREDIVISIE,label:"Eredivisie",opticOddsName:"Netherlands - Eredivisie",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.PRIMEIRA_LIGA]={sport:_.SOCCER,id:p.PRIMEIRA_LIGA,label:"Primeira Liga",opticOddsName:"Portugal - Primeira Liga",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SUMMER_OLYMPICS_SOCCER_WOMEN]={sport:_.SOCCER,id:p.SUMMER_OLYMPICS_SOCCER_WOMEN,label:"Olympic Games Soccer Women",opticOddsName:"Olympics Soccer Women",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SUMMER_OLYMPICS_SOCCER]={sport:_.SOCCER,id:p.SUMMER_OLYMPICS_SOCCER,label:"Olympic Games Soccer",opticOddsName:"Olympics Soccer Men",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.FIFA_WC_WOMEN]={sport:_.SOCCER,id:p.FIFA_WC_WOMEN,label:"FIFA World Cup Women",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.ENGLAND_CUP]={sport:_.SOCCER,id:p.ENGLAND_CUP,label:"FA Cup",opticOddsName:"England - FA Cup",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.FRANCE_CUP]={sport:_.SOCCER,id:p.FRANCE_CUP,label:"Coupe de France",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SPAIN_CUP]={sport:_.SOCCER,id:p.SPAIN_CUP,label:"Copa del Rey",opticOddsName:"Spain - Copa del Rey",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.ITALY_CUP]={sport:_.SOCCER,id:p.ITALY_CUP,label:"Coppa Italia",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.TENNIS_WTA]={sport:_.TENNIS,id:p.TENNIS_WTA,label:"WTA Events",opticOddsName:"WTA",provider:n.ENETPULSE,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},I[p.TENNIS_GS]={sport:_.TENNIS,id:p.TENNIS_GS,label:"Grand Slam",opticOddsName:"ATP,WTA",provider:n.ENETPULSE,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},I[p.TENNIS_MASTERS]={sport:_.TENNIS,id:p.TENNIS_MASTERS,label:"ATP Events",opticOddsName:"ATP",provider:n.ENETPULSE,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},I[p.SUMMER_OLYMPICS_TENNIS]={sport:_.TENNIS,id:p.SUMMER_OLYMPICS_TENNIS,label:"Olympic Games Tennis",provider:n.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},I[p.GERMANY_CUP]={sport:_.SOCCER,id:p.GERMANY_CUP,label:"DFB Pokal",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.LIGA_MX]={sport:_.SOCCER,id:p.LIGA_MX,label:"Liga MX",opticOddsName:"Mexico - Liga MX",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.BRAZIL_1]={sport:_.SOCCER,id:p.BRAZIL_1,label:"Serie A",opticOddsName:"Brazil - Serie A",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.UEFA_EURO_U21]={sport:_.SOCCER,id:p.UEFA_EURO_U21,label:"UEFA EURO U21",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.FIFA_WORLD_CUP_U20]={sport:_.SOCCER,id:p.FIFA_WORLD_CUP_U20,label:"FIFA World Cup U20",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SUMMER_OLYMPICS_HANDBALL_WOMEN]={sport:_.HANDBALL,id:p.SUMMER_OLYMPICS_HANDBALL_WOMEN,label:"Olympic Games Handball Women",opticOddsName:"Olympics Handball Women",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SUMMER_OLYMPICS_HANDBALL]={sport:_.HANDBALL,id:p.SUMMER_OLYMPICS_HANDBALL,label:"Olympic Games Handball",opticOddsName:"Olympics Handball Men",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.EUROLEAGUE]={sport:_.BASKETBALL,id:p.EUROLEAGUE,label:"Euroleague",opticOddsName:"Euroleague",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.SUMMER_OLYMPICS_BASKETBALL]={sport:_.BASKETBALL,id:p.SUMMER_OLYMPICS_BASKETBALL,label:"Olympic Games Basketball",opticOddsName:"Olympics Basketball Men",provider:n.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.SUMMER_OLYMPICS_BASKETBALL_WOMEN]={sport:_.BASKETBALL,id:p.SUMMER_OLYMPICS_BASKETBALL_WOMEN,label:"Olympic Games Basketball Women",opticOddsName:"Olympics Basketball Women",provider:n.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.FIBA_WORLD_CUP]={sport:_.BASKETBALL,id:p.FIBA_WORLD_CUP,label:"FIBA World Cup",provider:n.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.FORMULA1]={sport:_.MOTOSPORT,id:p.FORMULA1,label:"Formula 1",provider:n.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},I[p.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN]={sport:_.VOLLEYBALL,id:p.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN,label:"Olympic Games Beach Voleyball Women",provider:n.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},I[p.SUMMER_OLYMPICS_BEACH_VOLEYBALL]={sport:_.VOLLEYBALL,id:p.SUMMER_OLYMPICS_BEACH_VOLEYBALL,label:"Olympic Games Beach Voleyball",provider:n.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},I[p.SUMMER_OLYMPICS_TABLE_TENNIS]={sport:_.TABLE_TENNIS,id:p.SUMMER_OLYMPICS_TABLE_TENNIS,label:"Olympic Games Table Tennis",provider:n.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},I[p.MOTOGP]={sport:_.MOTOSPORT,id:p.MOTOGP,label:"MotoGP",provider:n.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},I[p.SAUDI_PROFESSIONAL_LEAGUE]={sport:_.SOCCER,id:p.SAUDI_PROFESSIONAL_LEAGUE,label:"Saudi Professional League",opticOddsName:"Saudi Arabia - Saudi League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SUMMER_OLYMPICS_WATERPOLO]={sport:_.WATERPOLO,id:p.SUMMER_OLYMPICS_WATERPOLO,label:"Olympic Games Water Polo",opticOddsName:"Olympics Water Polo",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.QUARTER,isDrawAvailable:!0},I[p.SUMMER_OLYMPICS_VOLEYBALL_WOMEN]={sport:_.VOLLEYBALL,id:p.SUMMER_OLYMPICS_VOLEYBALL_WOMEN,label:"Olympic Games Volleyball Women",opticOddsName:"Olympics Volleyball Women",provider:n.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},I[p.SUMMER_OLYMPICS_VOLEYBALL]={sport:_.VOLLEYBALL,id:p.SUMMER_OLYMPICS_VOLEYBALL,label:"Olympic Games Volleyball",opticOddsName:"Olympics Volleyball Men",provider:n.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},I[p.BOXING]={sport:_.FIGHTING,id:p.BOXING,label:"Boxing",provider:n.EMPTY,scoringType:S.ROUNDS,matchResolveType:T.EMPTY,periodType:d.ROUND,isDrawAvailable:!1},I[p.SUMMER_OLYMPICS_RUGBY]={sport:_.RUGBY,id:p.SUMMER_OLYMPICS_RUGBY,label:"Olympic Games Rugby",opticOddsName:"Olympics Rugby 7s Men",provider:n.EMPTY,scoringType:S.POINTS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SUMMER_OLYMPICS_RUGBY_WOMEN]={sport:_.RUGBY,id:p.SUMMER_OLYMPICS_RUGBY_WOMEN,label:"Olympic Games Rugby Women",opticOddsName:"Olympics Rugby 7s Women",provider:n.EMPTY,scoringType:S.POINTS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SUMMER_OLYMPICS_HOCKEY_WOMEN]={sport:_.HOCKEY,id:p.SUMMER_OLYMPICS_HOCKEY_WOMEN,label:"Olympic Games Hockey Women",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.PERIOD,isDrawAvailable:!0},I[p.SUMMER_OLYMPICS_HOCKEY]={sport:_.HOCKEY,id:p.SUMMER_OLYMPICS_HOCKEY,label:"Olympic Games Hockey",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.PERIOD,isDrawAvailable:!0},I[p.UEFA_NATIONS_LEAGUE]={sport:_.SOCCER,id:p.UEFA_NATIONS_LEAGUE,label:"UEFA Nations League",provider:n.OPTICODDS,opticOddsName:"UEFA - Nations League",scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.CONCACAF_NATIONS_LEAGUE]={sport:_.SOCCER,id:p.CONCACAF_NATIONS_LEAGUE,label:"CONCACAF Nations League",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.CSGO]={sport:_.ESPORTS,id:p.CSGO,label:"CS GO",opticOddsName:"CS2",provider:n.ENETPULSE,scoringType:S.ROUNDS,matchResolveType:T.EMPTY,periodType:d.ROUND,isDrawAvailable:!1},I[p.DOTA2]={sport:_.ESPORTS,id:p.DOTA2,label:"DOTA 2",opticOddsName:"Dota 2",provider:n.ENETPULSE,scoringType:S.ROUNDS,matchResolveType:T.EMPTY,periodType:d.ROUND,isDrawAvailable:!1},I[p.SUMMER_OLYMPICS_BASKETBALL_3X3]={sport:_.BASKETBALL,id:p.SUMMER_OLYMPICS_BASKETBALL_3X3,label:"Olympic Games Basketball 3x3",opticOddsName:"Olympics Basketball 3x3 Men",provider:n.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[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:n.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.SUMMER_OLYMPICS_QUALIFICATION]={sport:_.BASKETBALL,id:p.SUMMER_OLYMPICS_QUALIFICATION,label:"Summer Olympics Basketball Qualification",provider:n.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.LOL]={sport:_.ESPORTS,id:p.LOL,label:"LOL",opticOddsName:"League of Legends",provider:n.ENETPULSE,scoringType:S.ROUNDS,matchResolveType:T.EMPTY,periodType:d.ROUND,isDrawAvailable:!1},I[p.CONMEBOL_WC_QUALIFICATIONS]={sport:_.SOCCER,id:p.CONMEBOL_WC_QUALIFICATIONS,label:"CONMEBOL WC Qualification",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.UEFA_CONFERENCE_LEAGUE]={sport:_.SOCCER,id:p.UEFA_CONFERENCE_LEAGUE,label:"UEFA Conference League",opticOddsName:"UEFA - Europa Conference League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.NON_TITLE_BOXING]={sport:_.FIGHTING,id:p.NON_TITLE_BOXING,label:"Boxing",provider:n.EMPTY,scoringType:S.ROUNDS,matchResolveType:T.EMPTY,periodType:d.ROUND,isDrawAvailable:!1},I[p.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:p.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,label:"UEFA Champions League Qualification",opticOddsName:"UEFA - Champions League",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.UEFA_EUROPA_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:p.UEFA_EUROPA_LEAGUE_QUALIFICATION,label:"UEFA Europa League Qualification",opticOddsName:"UEFA - Europa League",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.UEFA_CONFERENCE_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:p.UEFA_CONFERENCE_LEAGUE_QUALIFICATION,label:"UEFA Conference League Qualification",opticOddsName:"UEFA - Europa Conference League",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.US_ELECTION]={sport:_.POLITICS,id:p.US_ELECTION,label:"US Election 2024",provider:n.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},I[p.UEFA_SUPER_CUP]={sport:_.SOCCER,id:p.UEFA_SUPER_CUP,label:"UEFA Super Cup",opticOddsName:"UEFA - Super Cup",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.BRAZIL_CUP]={sport:_.SOCCER,id:p.BRAZIL_CUP,label:"Copa do Brasil",opticOddsName:"Brazil - Copa do Brasil",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.ENGLAND_CHAMPIONSHIP]={sport:_.SOCCER,id:p.ENGLAND_CHAMPIONSHIP,label:"EFL Championship",opticOddsName:"England - Championship",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SCOTLAND_PREMIERSHIP]={sport:_.SOCCER,id:p.SCOTLAND_PREMIERSHIP,label:"Scotland Premiership",opticOddsName:"Scotland - Premiership",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.BELGIUM_LEAGUE]={sport:_.SOCCER,id:p.BELGIUM_LEAGUE,label:"Belgium Jupiler Pro League",opticOddsName:"Belgium - Jupiler Pro League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.CZECH_LEAGUE]={sport:_.SOCCER,id:p.CZECH_LEAGUE,label:"Czech Republic FNL",opticOddsName:"Czech Republic - FNL",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.CHILE_PRIMERA]={sport:_.SOCCER,id:p.CHILE_PRIMERA,label:"Chile Primera Division",opticOddsName:"Chile - Primera Division",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.FINLAND_LEAGUE]={sport:_.SOCCER,id:p.FINLAND_LEAGUE,label:"Finland Veikkausliiga",opticOddsName:"Finland - Veikkausliiga",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.ARGENTINA_PRIMERA]={sport:_.SOCCER,id:p.ARGENTINA_PRIMERA,label:"Argentina Primera Division",opticOddsName:"Argentina - Primera Division",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.RUSSIA_PREMIER]={sport:_.SOCCER,id:p.RUSSIA_PREMIER,label:"Russia Premier League",opticOddsName:"Russia - Premier League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.TURKEY_SUPER_LEAGUE]={sport:_.SOCCER,id:p.TURKEY_SUPER_LEAGUE,label:"Turkey Super Lig",opticOddsName:"Turkey - Super Lig",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SERBIA_SUPER_LEAGUE]={sport:_.SOCCER,id:p.SERBIA_SUPER_LEAGUE,label:"Serbia Super Liga",opticOddsName:"Serbia - Super Liga",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.GREECE_SUPER_LEAGUE]={sport:_.SOCCER,id:p.GREECE_SUPER_LEAGUE,label:"Greece Super League",opticOddsName:"Greece - Super League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.INDIA_PREMIER]={sport:_.SOCCER,id:p.INDIA_PREMIER,label:"India Calcutta Premier Division",opticOddsName:"India - Calcutta Premier Division",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.CHINA_SUPER_LEAGUE]={sport:_.SOCCER,id:p.CHINA_SUPER_LEAGUE,label:"China Super League",opticOddsName:"China - Super League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.AUSTRALIA_A_LEAGUE]={sport:_.SOCCER,id:p.AUSTRALIA_A_LEAGUE,label:"Australia A-League",opticOddsName:"Australia - A-League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SWITZERLAND_SUPER_LEAGUE]={sport:_.SOCCER,id:p.SWITZERLAND_SUPER_LEAGUE,label:"Switzerland Super League",opticOddsName:"Switzerland - Super League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.BUNDESLIGA_2]={sport:_.SOCCER,id:p.BUNDESLIGA_2,label:"Bundesliga 2",opticOddsName:"Germany - Bundesliga 2",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.LA_LIGA_2]={sport:_.SOCCER,id:p.LA_LIGA_2,label:"La Liga 2",opticOddsName:"Spain - La Liga 2",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SERIE_B]={sport:_.SOCCER,id:p.SERIE_B,label:"Serie B",opticOddsName:"Italy - Serie B",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.INDIA_SUPER_LEAGUE]={sport:_.SOCCER,id:p.INDIA_SUPER_LEAGUE,label:"India Super League",opticOddsName:"India - Super League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.LIGUE_2]={sport:_.SOCCER,id:p.LIGUE_2,label:"Ligue 2",opticOddsName:"France - Ligue 2",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.AUSTRIA_BUNDESLIGA]={sport:_.SOCCER,id:p.AUSTRIA_BUNDESLIGA,label:"Austria Bundesliga",opticOddsName:"Austria - Bundesliga",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.DENMARK_SUPER_LEAGUE]={sport:_.SOCCER,id:p.DENMARK_SUPER_LEAGUE,label:"Denmark Superliga",opticOddsName:"Denmark - Superliga",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.POLAND_LEAGUE]={sport:_.SOCCER,id:p.POLAND_LEAGUE,label:"Poland Ekstraklasa",opticOddsName:"Poland - Ekstraklasa",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SWEDEN_LEAGUE]={sport:_.SOCCER,id:p.SWEDEN_LEAGUE,label:"Sweden Allsvenskan",opticOddsName:"Sweden - Allsvenskan",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.COLOMBIA_PRIMERA_A]={sport:_.SOCCER,id:p.COLOMBIA_PRIMERA_A,label:"Colombia Primera A",opticOddsName:"Colombia - Primera A",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.ENGLAND_EFL_CUP]={sport:_.SOCCER,id:p.ENGLAND_EFL_CUP,label:"England EFL Cup",opticOddsName:"England - EFL Cup",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.ENGLAND_LEGAUE_1]={sport:_.SOCCER,id:p.ENGLAND_LEGAUE_1,label:"England League 1",opticOddsName:"England - League 1",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.URUGUAY_PRIMERA_DIVISION]={sport:_.SOCCER,id:p.URUGUAY_PRIMERA_DIVISION,label:"Uruguay Primera Division",opticOddsName:"Uruguay - Primera Division",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.AFC_CHAMPIONS_LEAGUE]={sport:_.SOCCER,id:p.AFC_CHAMPIONS_LEAGUE,label:"AFC Champions League",opticOddsName:"AFC - Champions League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.EUROCUP]={sport:_.BASKETBALL,id:p.EUROCUP,label:"Eurocup",opticOddsName:"Eurocup",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.SPAIN_LIGA_ACB]={sport:_.BASKETBALL,id:p.SPAIN_LIGA_ACB,label:"Spain Liga ACB",opticOddsName:"Spain - Liga ACB",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[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:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.GERMANY_BBL]={sport:_.BASKETBALL,id:p.GERMANY_BBL,label:"Germany BBL",opticOddsName:"Germany - BBL",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.FRANCE_LNB_PRO_A]={sport:_.BASKETBALL,id:p.FRANCE_LNB_PRO_A,label:"France LNB Pro A",opticOddsName:"France - LNB Pro A",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.CHINA_CBA]={sport:_.BASKETBALL,id:p.CHINA_CBA,label:"China CBA",opticOddsName:"China - CBA",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.AUSTRALIA_NBL]={sport:_.BASKETBALL,id:p.AUSTRALIA_NBL,label:"Australia NBL",opticOddsName:"Australia - NBL",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.NFL_FUTURES]={sport:_.FUTURES,id:p.NFL_FUTURES,label:"NFL Futures",provider:n.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},I[p.NBA_FUTURES]={sport:_.FUTURES,id:p.NBA_FUTURES,label:"NBA Futures",provider:n.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},I[p.EPL_FUTURES]={sport:_.FUTURES,id:p.EPL_FUTURES,label:"EPL Futures",provider:n.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},I[p.UEFA_CHAMPIONS_LEAGUE_FUTURES]={sport:_.FUTURES,id:p.UEFA_CHAMPIONS_LEAGUE_FUTURES,label:"UEFA Champions League Futures",provider:n.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},I[p.GOLF_H2H]={sport:_.GOLF,id:p.GOLF_H2H,label:"Golf head-to-head",provider:n.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},I[p.GOLF_WINNER]={sport:_.GOLF,id:p.GOLF_WINNER,label:"Golf Tournament Winner",provider:n.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},I),M=[p.CSGO,p.DOTA2,p.LOL,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],m=[701,702,703,704],U={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",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"},v=function(e){var r=P[e];return r?r.sport:_.EMPTY},D=function(e){var r=P[e];return r?r.label:""},g=function(e){var r=P[e];return r?r.provider:""},b=function(e){var r=P[e];return!!r&&r.isDrawAvailable},F=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)},B=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)},h=function(e,r){return r.filter((function(r){return Number(r.sportId)===e}))},w=function(e){var r=P[e];return r?r.opticOddsName:void 0},V=function(e){var r=P[e];return r?r.periodType:""},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=h(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 S=$($($([],Ae(t,l),!0),te(_,l),!0),_e(p,l),!0);pe(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=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()})).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.home,a.away,a.draw],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:N("impliedProbability",r).to("decimal"),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:N("impliedProbability",e).to("decimal"),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?Se(o,A,l,a.get(_.BASKETBALL)):i===_.HOCKEY?Se(o,A,l,a.get(_.HOCKEY)):i===_.BASEBALL?Se(o,A,l,a.get(_.BASEBALL)):i===_.SOCCER?Te(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")}},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:""}},Te=function(e,r,a,i,o){var E=Number(a);return!Number.isNaN(E)&&E>=o||Number.isNaN(E)&&"HALF"!=i?{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=ne(L,e),l="atp"==e.league.toLowerCase(),S={home:o,away:E};return t==_.VOLLEYBALL?Ie(r,a,s,S,Ne,5==L?Re:Oe):A.toString().startsWith(p.TENNIS_GS)&&l?Ie(r,a,s,S,ce,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)?Ie(r,a,s,S,Pe,Me):{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}},Ie=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,ce=2,Pe=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}}))},me=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.toLowerCase(),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"))}))},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,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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "overtime-live-trading-utils",
3
- "version": "0.0.152",
3
+ "version": "0.0.154",
4
4
  "description": "",
5
5
  "main": "main.js",
6
6
  "scripts": {
@@ -49,7 +49,8 @@ export const LeagueMap = {
49
49
  sport: Sport.BASKETBALL,
50
50
  id: League.NCAAB,
51
51
  label: 'NCAA Basketball',
52
- provider: Provider.RUNDOWN,
52
+ opticOddsName: 'NCAAB',
53
+ provider: Provider.OPTICODDS,
53
54
  scoringType: ScoringType.POINTS,
54
55
  matchResolveType: MatchResolveType.OVERTIME,
55
56
  periodType: PeriodType.QUARTER,
@@ -202,7 +203,7 @@ export const LeagueMap = {
202
203
  sport: Sport.CRICKET,
203
204
  id: League.IPL,
204
205
  label: 'Indian Premier League',
205
- provider: Provider.RUNDOWN,
206
+ provider: Provider.EMPTY,
206
207
  scoringType: ScoringType.POINTS,
207
208
  matchResolveType: MatchResolveType.EMPTY,
208
209
  periodType: PeriodType.INNING,
@@ -212,7 +213,7 @@ export const LeagueMap = {
212
213
  sport: Sport.CRICKET,
213
214
  id: League.T20_BLAST,
214
215
  label: 'T20 Blast',
215
- provider: Provider.RUNDOWN,
216
+ provider: Provider.EMPTY,
216
217
  scoringType: ScoringType.POINTS,
217
218
  matchResolveType: MatchResolveType.EMPTY,
218
219
  periodType: PeriodType.INNING,
@@ -222,7 +223,7 @@ export const LeagueMap = {
222
223
  sport: Sport.HOCKEY,
223
224
  id: League.IIHF_WORLD_CHAMPIONSHIP,
224
225
  label: 'IIHF World Championship',
225
- provider: Provider.ENETPULSE,
226
+ provider: Provider.EMPTY,
226
227
  scoringType: ScoringType.GOALS,
227
228
  matchResolveType: MatchResolveType.REGULAR,
228
229
  periodType: PeriodType.PERIOD,
@@ -233,7 +234,7 @@ export const LeagueMap = {
233
234
  id: League.COPA_AMERICA,
234
235
  label: 'Copa America',
235
236
  opticOddsName: 'CONMEBOL - Copa America',
236
- provider: Provider.ENETPULSE,
237
+ provider: Provider.EMPTY,
237
238
  scoringType: ScoringType.GOALS,
238
239
  matchResolveType: MatchResolveType.REGULAR,
239
240
  periodType: PeriodType.HALF,
@@ -255,7 +256,7 @@ export const LeagueMap = {
255
256
  id: League.UEFA_EURO,
256
257
  label: 'UEFA EURO 2024',
257
258
  opticOddsName: 'UEFA - European Championship',
258
- provider: Provider.ENETPULSE,
259
+ provider: Provider.EMPTY,
259
260
  scoringType: ScoringType.GOALS,
260
261
  matchResolveType: MatchResolveType.REGULAR,
261
262
  periodType: PeriodType.HALF,
@@ -288,7 +289,7 @@ export const LeagueMap = {
288
289
  id: League.SUMMER_OLYMPICS_SOCCER_WOMEN,
289
290
  label: 'Olympic Games Soccer Women',
290
291
  opticOddsName: 'Olympics Soccer Women',
291
- provider: Provider.ENETPULSE,
292
+ provider: Provider.EMPTY,
292
293
  scoringType: ScoringType.GOALS,
293
294
  matchResolveType: MatchResolveType.REGULAR,
294
295
  periodType: PeriodType.HALF,
@@ -299,7 +300,7 @@ export const LeagueMap = {
299
300
  id: League.SUMMER_OLYMPICS_SOCCER,
300
301
  label: 'Olympic Games Soccer',
301
302
  opticOddsName: 'Olympics Soccer Men',
302
- provider: Provider.ENETPULSE,
303
+ provider: Provider.EMPTY,
303
304
  scoringType: ScoringType.GOALS,
304
305
  matchResolveType: MatchResolveType.REGULAR,
305
306
  periodType: PeriodType.HALF,
@@ -309,7 +310,7 @@ export const LeagueMap = {
309
310
  sport: Sport.SOCCER,
310
311
  id: League.FIFA_WC_WOMEN,
311
312
  label: 'FIFA World Cup Women',
312
- provider: Provider.ENETPULSE,
313
+ provider: Provider.EMPTY,
313
314
  scoringType: ScoringType.GOALS,
314
315
  matchResolveType: MatchResolveType.REGULAR,
315
316
  periodType: PeriodType.HALF,
@@ -320,7 +321,7 @@ export const LeagueMap = {
320
321
  id: League.ENGLAND_CUP,
321
322
  label: 'FA Cup',
322
323
  opticOddsName: 'England - FA Cup',
323
- provider: Provider.ENETPULSE,
324
+ provider: Provider.EMPTY,
324
325
  scoringType: ScoringType.GOALS,
325
326
  matchResolveType: MatchResolveType.REGULAR,
326
327
  periodType: PeriodType.HALF,
@@ -330,7 +331,7 @@ export const LeagueMap = {
330
331
  sport: Sport.SOCCER,
331
332
  id: League.FRANCE_CUP,
332
333
  label: 'Coupe de France',
333
- provider: Provider.ENETPULSE,
334
+ provider: Provider.EMPTY,
334
335
  scoringType: ScoringType.GOALS,
335
336
  matchResolveType: MatchResolveType.REGULAR,
336
337
  periodType: PeriodType.HALF,
@@ -340,7 +341,8 @@ export const LeagueMap = {
340
341
  sport: Sport.SOCCER,
341
342
  id: League.SPAIN_CUP,
342
343
  label: 'Copa del Rey',
343
- provider: Provider.ENETPULSE,
344
+ opticOddsName: 'Spain - Copa del Rey',
345
+ provider: Provider.OPTICODDS,
344
346
  scoringType: ScoringType.GOALS,
345
347
  matchResolveType: MatchResolveType.REGULAR,
346
348
  periodType: PeriodType.HALF,
@@ -350,7 +352,7 @@ export const LeagueMap = {
350
352
  sport: Sport.SOCCER,
351
353
  id: League.ITALY_CUP,
352
354
  label: 'Coppa Italia',
353
- provider: Provider.ENETPULSE,
355
+ provider: Provider.EMPTY,
354
356
  scoringType: ScoringType.GOALS,
355
357
  matchResolveType: MatchResolveType.REGULAR,
356
358
  periodType: PeriodType.HALF,
@@ -393,7 +395,7 @@ export const LeagueMap = {
393
395
  sport: Sport.TENNIS,
394
396
  id: League.SUMMER_OLYMPICS_TENNIS,
395
397
  label: 'Olympic Games Tennis',
396
- provider: Provider.ENETPULSE,
398
+ provider: Provider.EMPTY,
397
399
  scoringType: ScoringType.SETS,
398
400
  matchResolveType: MatchResolveType.REGULAR,
399
401
  periodType: PeriodType.SET,
@@ -403,7 +405,7 @@ export const LeagueMap = {
403
405
  sport: Sport.SOCCER,
404
406
  id: League.GERMANY_CUP,
405
407
  label: 'DFB Pokal',
406
- provider: Provider.ENETPULSE,
408
+ provider: Provider.EMPTY,
407
409
  scoringType: ScoringType.GOALS,
408
410
  matchResolveType: MatchResolveType.REGULAR,
409
411
  periodType: PeriodType.HALF,
@@ -435,7 +437,7 @@ export const LeagueMap = {
435
437
  sport: Sport.SOCCER,
436
438
  id: League.UEFA_EURO_U21,
437
439
  label: 'UEFA EURO U21',
438
- provider: Provider.ENETPULSE,
440
+ provider: Provider.EMPTY,
439
441
  scoringType: ScoringType.GOALS,
440
442
  matchResolveType: MatchResolveType.REGULAR,
441
443
  periodType: PeriodType.HALF,
@@ -445,7 +447,7 @@ export const LeagueMap = {
445
447
  sport: Sport.SOCCER,
446
448
  id: League.FIFA_WORLD_CUP_U20,
447
449
  label: 'FIFA World Cup U20',
448
- provider: Provider.ENETPULSE,
450
+ provider: Provider.EMPTY,
449
451
  scoringType: ScoringType.GOALS,
450
452
  matchResolveType: MatchResolveType.REGULAR,
451
453
  periodType: PeriodType.HALF,
@@ -456,7 +458,7 @@ export const LeagueMap = {
456
458
  id: League.SUMMER_OLYMPICS_HANDBALL_WOMEN,
457
459
  label: 'Olympic Games Handball Women',
458
460
  opticOddsName: 'Olympics Handball Women',
459
- provider: Provider.ENETPULSE,
461
+ provider: Provider.EMPTY,
460
462
  scoringType: ScoringType.GOALS,
461
463
  matchResolveType: MatchResolveType.REGULAR,
462
464
  periodType: PeriodType.HALF,
@@ -467,7 +469,7 @@ export const LeagueMap = {
467
469
  id: League.SUMMER_OLYMPICS_HANDBALL,
468
470
  label: 'Olympic Games Handball',
469
471
  opticOddsName: 'Olympics Handball Men',
470
- provider: Provider.ENETPULSE,
472
+ provider: Provider.EMPTY,
471
473
  scoringType: ScoringType.GOALS,
472
474
  matchResolveType: MatchResolveType.REGULAR,
473
475
  periodType: PeriodType.HALF,
@@ -489,7 +491,7 @@ export const LeagueMap = {
489
491
  id: League.SUMMER_OLYMPICS_BASKETBALL,
490
492
  label: 'Olympic Games Basketball',
491
493
  opticOddsName: 'Olympics Basketball Men',
492
- provider: Provider.ENETPULSE,
494
+ provider: Provider.EMPTY,
493
495
  scoringType: ScoringType.POINTS,
494
496
  matchResolveType: MatchResolveType.OVERTIME,
495
497
  periodType: PeriodType.QUARTER,
@@ -500,7 +502,7 @@ export const LeagueMap = {
500
502
  id: League.SUMMER_OLYMPICS_BASKETBALL_WOMEN,
501
503
  label: 'Olympic Games Basketball Women',
502
504
  opticOddsName: 'Olympics Basketball Women',
503
- provider: Provider.ENETPULSE,
505
+ provider: Provider.EMPTY,
504
506
  scoringType: ScoringType.POINTS,
505
507
  matchResolveType: MatchResolveType.OVERTIME,
506
508
  periodType: PeriodType.QUARTER,
@@ -510,7 +512,7 @@ export const LeagueMap = {
510
512
  sport: Sport.BASKETBALL,
511
513
  id: League.FIBA_WORLD_CUP,
512
514
  label: 'FIBA World Cup',
513
- provider: Provider.ENETPULSE,
515
+ provider: Provider.EMPTY,
514
516
  scoringType: ScoringType.POINTS,
515
517
  matchResolveType: MatchResolveType.OVERTIME,
516
518
  periodType: PeriodType.QUARTER,
@@ -520,7 +522,7 @@ export const LeagueMap = {
520
522
  sport: Sport.MOTOSPORT,
521
523
  id: League.FORMULA1,
522
524
  label: 'Formula 1',
523
- provider: Provider.ENETPULSE,
525
+ provider: Provider.EMPTY,
524
526
  scoringType: ScoringType.EMPTY,
525
527
  matchResolveType: MatchResolveType.EMPTY,
526
528
  periodType: PeriodType.EMPTY,
@@ -530,7 +532,7 @@ export const LeagueMap = {
530
532
  sport: Sport.VOLLEYBALL,
531
533
  id: League.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN,
532
534
  label: 'Olympic Games Beach Voleyball Women',
533
- provider: Provider.ENETPULSE,
535
+ provider: Provider.EMPTY,
534
536
  scoringType: ScoringType.SETS,
535
537
  matchResolveType: MatchResolveType.REGULAR,
536
538
  periodType: PeriodType.SET,
@@ -540,7 +542,7 @@ export const LeagueMap = {
540
542
  sport: Sport.VOLLEYBALL,
541
543
  id: League.SUMMER_OLYMPICS_BEACH_VOLEYBALL,
542
544
  label: 'Olympic Games Beach Voleyball',
543
- provider: Provider.ENETPULSE,
545
+ provider: Provider.EMPTY,
544
546
  scoringType: ScoringType.SETS,
545
547
  matchResolveType: MatchResolveType.REGULAR,
546
548
  periodType: PeriodType.SET,
@@ -550,7 +552,7 @@ export const LeagueMap = {
550
552
  sport: Sport.TABLE_TENNIS,
551
553
  id: League.SUMMER_OLYMPICS_TABLE_TENNIS,
552
554
  label: 'Olympic Games Table Tennis',
553
- provider: Provider.ENETPULSE,
555
+ provider: Provider.EMPTY,
554
556
  scoringType: ScoringType.SETS,
555
557
  matchResolveType: MatchResolveType.REGULAR,
556
558
  periodType: PeriodType.SET,
@@ -560,7 +562,7 @@ export const LeagueMap = {
560
562
  sport: Sport.MOTOSPORT,
561
563
  id: League.MOTOGP,
562
564
  label: 'MotoGP',
563
- provider: Provider.ENETPULSE,
565
+ provider: Provider.EMPTY,
564
566
  scoringType: ScoringType.EMPTY,
565
567
  matchResolveType: MatchResolveType.EMPTY,
566
568
  periodType: PeriodType.EMPTY,
@@ -582,7 +584,7 @@ export const LeagueMap = {
582
584
  id: League.SUMMER_OLYMPICS_WATERPOLO,
583
585
  label: 'Olympic Games Water Polo',
584
586
  opticOddsName: 'Olympics Water Polo',
585
- provider: Provider.ENETPULSE,
587
+ provider: Provider.EMPTY,
586
588
  scoringType: ScoringType.GOALS,
587
589
  matchResolveType: MatchResolveType.REGULAR,
588
590
  periodType: PeriodType.QUARTER,
@@ -593,7 +595,7 @@ export const LeagueMap = {
593
595
  id: League.SUMMER_OLYMPICS_VOLEYBALL_WOMEN,
594
596
  label: 'Olympic Games Volleyball Women',
595
597
  opticOddsName: 'Olympics Volleyball Women',
596
- provider: Provider.ENETPULSE,
598
+ provider: Provider.EMPTY,
597
599
  scoringType: ScoringType.SETS,
598
600
  matchResolveType: MatchResolveType.REGULAR,
599
601
  periodType: PeriodType.SET,
@@ -604,7 +606,7 @@ export const LeagueMap = {
604
606
  id: League.SUMMER_OLYMPICS_VOLEYBALL,
605
607
  label: 'Olympic Games Volleyball',
606
608
  opticOddsName: 'Olympics Volleyball Men',
607
- provider: Provider.ENETPULSE,
609
+ provider: Provider.EMPTY,
608
610
  scoringType: ScoringType.SETS,
609
611
  matchResolveType: MatchResolveType.REGULAR,
610
612
  periodType: PeriodType.SET,
@@ -614,7 +616,7 @@ export const LeagueMap = {
614
616
  sport: Sport.FIGHTING,
615
617
  id: League.BOXING,
616
618
  label: 'Boxing',
617
- provider: Provider.ENETPULSE,
619
+ provider: Provider.EMPTY,
618
620
  scoringType: ScoringType.ROUNDS,
619
621
  matchResolveType: MatchResolveType.EMPTY,
620
622
  periodType: PeriodType.ROUND,
@@ -625,7 +627,7 @@ export const LeagueMap = {
625
627
  id: League.SUMMER_OLYMPICS_RUGBY,
626
628
  label: 'Olympic Games Rugby',
627
629
  opticOddsName: 'Olympics Rugby 7s Men',
628
- provider: Provider.ENETPULSE,
630
+ provider: Provider.EMPTY,
629
631
  scoringType: ScoringType.POINTS,
630
632
  matchResolveType: MatchResolveType.REGULAR,
631
633
  periodType: PeriodType.HALF,
@@ -636,7 +638,7 @@ export const LeagueMap = {
636
638
  id: League.SUMMER_OLYMPICS_RUGBY_WOMEN,
637
639
  label: 'Olympic Games Rugby Women',
638
640
  opticOddsName: 'Olympics Rugby 7s Women',
639
- provider: Provider.ENETPULSE,
641
+ provider: Provider.EMPTY,
640
642
  scoringType: ScoringType.POINTS,
641
643
  matchResolveType: MatchResolveType.REGULAR,
642
644
  periodType: PeriodType.HALF,
@@ -646,7 +648,7 @@ export const LeagueMap = {
646
648
  sport: Sport.HOCKEY,
647
649
  id: League.SUMMER_OLYMPICS_HOCKEY_WOMEN,
648
650
  label: 'Olympic Games Hockey Women',
649
- provider: Provider.ENETPULSE,
651
+ provider: Provider.EMPTY,
650
652
  scoringType: ScoringType.GOALS,
651
653
  matchResolveType: MatchResolveType.REGULAR,
652
654
  periodType: PeriodType.PERIOD,
@@ -656,7 +658,7 @@ export const LeagueMap = {
656
658
  sport: Sport.HOCKEY,
657
659
  id: League.SUMMER_OLYMPICS_HOCKEY,
658
660
  label: 'Olympic Games Hockey',
659
- provider: Provider.ENETPULSE,
661
+ provider: Provider.EMPTY,
660
662
  scoringType: ScoringType.GOALS,
661
663
  matchResolveType: MatchResolveType.REGULAR,
662
664
  periodType: PeriodType.PERIOD,
@@ -677,7 +679,7 @@ export const LeagueMap = {
677
679
  sport: Sport.SOCCER,
678
680
  id: League.CONCACAF_NATIONS_LEAGUE,
679
681
  label: 'CONCACAF Nations League',
680
- provider: Provider.ENETPULSE,
682
+ provider: Provider.EMPTY,
681
683
  scoringType: ScoringType.GOALS,
682
684
  matchResolveType: MatchResolveType.REGULAR,
683
685
  periodType: PeriodType.HALF,
@@ -710,7 +712,7 @@ export const LeagueMap = {
710
712
  id: League.SUMMER_OLYMPICS_BASKETBALL_3X3,
711
713
  label: 'Olympic Games Basketball 3x3',
712
714
  opticOddsName: 'Olympics Basketball 3x3 Men',
713
- provider: Provider.ENETPULSE,
715
+ provider: Provider.EMPTY,
714
716
  scoringType: ScoringType.POINTS,
715
717
  matchResolveType: MatchResolveType.OVERTIME,
716
718
  periodType: PeriodType.QUARTER,
@@ -721,7 +723,7 @@ export const LeagueMap = {
721
723
  id: League.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN,
722
724
  label: 'Olympic Games Basketball 3x3 Women',
723
725
  opticOddsName: 'Olympics Basketball 3x3 Women',
724
- provider: Provider.ENETPULSE,
726
+ provider: Provider.EMPTY,
725
727
  scoringType: ScoringType.POINTS,
726
728
  matchResolveType: MatchResolveType.OVERTIME,
727
729
  periodType: PeriodType.QUARTER,
@@ -731,7 +733,7 @@ export const LeagueMap = {
731
733
  sport: Sport.BASKETBALL,
732
734
  id: League.SUMMER_OLYMPICS_QUALIFICATION,
733
735
  label: 'Summer Olympics Basketball Qualification',
734
- provider: Provider.ENETPULSE,
736
+ provider: Provider.EMPTY,
735
737
  scoringType: ScoringType.POINTS,
736
738
  matchResolveType: MatchResolveType.OVERTIME,
737
739
  periodType: PeriodType.QUARTER,
@@ -752,7 +754,7 @@ export const LeagueMap = {
752
754
  sport: Sport.SOCCER,
753
755
  id: League.CONMEBOL_WC_QUALIFICATIONS,
754
756
  label: 'CONMEBOL WC Qualification',
755
- provider: Provider.ENETPULSE,
757
+ provider: Provider.EMPTY,
756
758
  scoringType: ScoringType.GOALS,
757
759
  matchResolveType: MatchResolveType.REGULAR,
758
760
  periodType: PeriodType.HALF,
@@ -773,7 +775,7 @@ export const LeagueMap = {
773
775
  sport: Sport.FIGHTING,
774
776
  id: League.NON_TITLE_BOXING,
775
777
  label: 'Boxing',
776
- provider: Provider.ENETPULSE,
778
+ provider: Provider.EMPTY,
777
779
  scoringType: ScoringType.ROUNDS,
778
780
  matchResolveType: MatchResolveType.EMPTY,
779
781
  periodType: PeriodType.ROUND,
@@ -784,7 +786,7 @@ export const LeagueMap = {
784
786
  id: League.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,
785
787
  label: 'UEFA Champions League Qualification',
786
788
  opticOddsName: 'UEFA - Champions League',
787
- provider: Provider.ENETPULSE,
789
+ provider: Provider.EMPTY,
788
790
  scoringType: ScoringType.GOALS,
789
791
  matchResolveType: MatchResolveType.REGULAR,
790
792
  periodType: PeriodType.HALF,
@@ -795,7 +797,7 @@ export const LeagueMap = {
795
797
  id: League.UEFA_EUROPA_LEAGUE_QUALIFICATION,
796
798
  label: 'UEFA Europa League Qualification',
797
799
  opticOddsName: 'UEFA - Europa League',
798
- provider: Provider.ENETPULSE,
800
+ provider: Provider.EMPTY,
799
801
  scoringType: ScoringType.GOALS,
800
802
  matchResolveType: MatchResolveType.REGULAR,
801
803
  periodType: PeriodType.HALF,
@@ -806,7 +808,7 @@ export const LeagueMap = {
806
808
  id: League.UEFA_CONFERENCE_LEAGUE_QUALIFICATION,
807
809
  label: 'UEFA Conference League Qualification',
808
810
  opticOddsName: 'UEFA - Europa Conference League',
809
- provider: Provider.ENETPULSE,
811
+ provider: Provider.EMPTY,
810
812
  scoringType: ScoringType.GOALS,
811
813
  matchResolveType: MatchResolveType.REGULAR,
812
814
  periodType: PeriodType.HALF,
@@ -1152,6 +1154,17 @@ export const LeagueMap = {
1152
1154
  periodType: PeriodType.HALF,
1153
1155
  isDrawAvailable: true,
1154
1156
  },
1157
+ [League.AFC_CHAMPIONS_LEAGUE]: {
1158
+ sport: Sport.SOCCER,
1159
+ id: League.AFC_CHAMPIONS_LEAGUE,
1160
+ label: 'AFC Champions League',
1161
+ opticOddsName: 'AFC - Champions League',
1162
+ provider: Provider.OPTICODDS,
1163
+ scoringType: ScoringType.GOALS,
1164
+ matchResolveType: MatchResolveType.REGULAR,
1165
+ periodType: PeriodType.HALF,
1166
+ isDrawAvailable: true,
1167
+ },
1155
1168
  [League.EUROCUP]: {
1156
1169
  sport: Sport.BASKETBALL,
1157
1170
  id: League.EUROCUP,
@@ -1163,6 +1176,72 @@ export const LeagueMap = {
1163
1176
  periodType: PeriodType.QUARTER,
1164
1177
  isDrawAvailable: false,
1165
1178
  },
1179
+ [League.SPAIN_LIGA_ACB]: {
1180
+ sport: Sport.BASKETBALL,
1181
+ id: League.SPAIN_LIGA_ACB,
1182
+ label: 'Spain Liga ACB',
1183
+ opticOddsName: 'Spain - Liga ACB',
1184
+ provider: Provider.OPTICODDS,
1185
+ scoringType: ScoringType.POINTS,
1186
+ matchResolveType: MatchResolveType.OVERTIME,
1187
+ periodType: PeriodType.QUARTER,
1188
+ isDrawAvailable: false,
1189
+ },
1190
+ [League.ITALY_LEGA_BASKET_SERIE_A]: {
1191
+ sport: Sport.BASKETBALL,
1192
+ id: League.ITALY_LEGA_BASKET_SERIE_A,
1193
+ label: 'Italy Lega Basket Serie A',
1194
+ opticOddsName: 'Italy - Lega Basket Serie A',
1195
+ provider: Provider.OPTICODDS,
1196
+ scoringType: ScoringType.POINTS,
1197
+ matchResolveType: MatchResolveType.OVERTIME,
1198
+ periodType: PeriodType.QUARTER,
1199
+ isDrawAvailable: false,
1200
+ },
1201
+ [League.GERMANY_BBL]: {
1202
+ sport: Sport.BASKETBALL,
1203
+ id: League.GERMANY_BBL,
1204
+ label: 'Germany BBL',
1205
+ opticOddsName: 'Germany - BBL',
1206
+ provider: Provider.OPTICODDS,
1207
+ scoringType: ScoringType.POINTS,
1208
+ matchResolveType: MatchResolveType.OVERTIME,
1209
+ periodType: PeriodType.QUARTER,
1210
+ isDrawAvailable: false,
1211
+ },
1212
+ [League.FRANCE_LNB_PRO_A]: {
1213
+ sport: Sport.BASKETBALL,
1214
+ id: League.FRANCE_LNB_PRO_A,
1215
+ label: 'France LNB Pro A',
1216
+ opticOddsName: 'France - LNB Pro A',
1217
+ provider: Provider.OPTICODDS,
1218
+ scoringType: ScoringType.POINTS,
1219
+ matchResolveType: MatchResolveType.OVERTIME,
1220
+ periodType: PeriodType.QUARTER,
1221
+ isDrawAvailable: false,
1222
+ },
1223
+ [League.CHINA_CBA]: {
1224
+ sport: Sport.BASKETBALL,
1225
+ id: League.CHINA_CBA,
1226
+ label: 'China CBA',
1227
+ opticOddsName: 'China - CBA',
1228
+ provider: Provider.OPTICODDS,
1229
+ scoringType: ScoringType.POINTS,
1230
+ matchResolveType: MatchResolveType.OVERTIME,
1231
+ periodType: PeriodType.QUARTER,
1232
+ isDrawAvailable: false,
1233
+ },
1234
+ [League.AUSTRALIA_NBL]: {
1235
+ sport: Sport.BASKETBALL,
1236
+ id: League.AUSTRALIA_NBL,
1237
+ label: 'Australia NBL',
1238
+ opticOddsName: 'Australia - NBL',
1239
+ provider: Provider.OPTICODDS,
1240
+ scoringType: ScoringType.POINTS,
1241
+ matchResolveType: MatchResolveType.OVERTIME,
1242
+ periodType: PeriodType.QUARTER,
1243
+ isDrawAvailable: false,
1244
+ },
1166
1245
  [League.NFL_FUTURES]: {
1167
1246
  sport: Sport.FUTURES,
1168
1247
  id: League.NFL_FUTURES,
@@ -1193,11 +1272,21 @@ export const LeagueMap = {
1193
1272
  periodType: PeriodType.EMPTY,
1194
1273
  isDrawAvailable: false,
1195
1274
  },
1275
+ [League.UEFA_CHAMPIONS_LEAGUE_FUTURES]: {
1276
+ sport: Sport.FUTURES,
1277
+ id: League.UEFA_CHAMPIONS_LEAGUE_FUTURES,
1278
+ label: 'UEFA Champions League Futures',
1279
+ provider: Provider.EMPTY,
1280
+ scoringType: ScoringType.EMPTY,
1281
+ matchResolveType: MatchResolveType.EMPTY,
1282
+ periodType: PeriodType.EMPTY,
1283
+ isDrawAvailable: false,
1284
+ },
1196
1285
  [League.GOLF_H2H]: {
1197
1286
  sport: Sport.GOLF,
1198
1287
  id: League.GOLF_H2H,
1199
1288
  label: 'Golf head-to-head',
1200
- provider: Provider.JSONODDS,
1289
+ provider: Provider.EMPTY,
1201
1290
  scoringType: ScoringType.EMPTY,
1202
1291
  matchResolveType: MatchResolveType.EMPTY,
1203
1292
  periodType: PeriodType.EMPTY,
@@ -1207,7 +1296,7 @@ export const LeagueMap = {
1207
1296
  sport: Sport.GOLF,
1208
1297
  id: League.GOLF_WINNER,
1209
1298
  label: 'Golf Tournament Winner',
1210
- provider: Provider.JSONODDS,
1299
+ provider: Provider.EMPTY,
1211
1300
  scoringType: ScoringType.EMPTY,
1212
1301
  matchResolveType: MatchResolveType.EMPTY,
1213
1302
  periodType: PeriodType.EMPTY,
@@ -1377,6 +1466,7 @@ export const LeagueIdMapOpticOdds = {
1377
1466
  2: 'NFL',
1378
1467
  3: 'MLB',
1379
1468
  4: 'NBA',
1469
+ 5: 'NCAAB',
1380
1470
  6: 'NHL',
1381
1471
  7: 'UFC',
1382
1472
  8: 'WNBA',
@@ -1393,6 +1483,7 @@ export const LeagueIdMapOpticOdds = {
1393
1483
  45: 'CONMEBOL - Copa Libertadores',
1394
1484
  57: 'Netherlands - Eredivisie',
1395
1485
  61: 'Portugal - Primeira Liga',
1486
+ 138: 'Spain - Copa del Rey',
1396
1487
  230: 'Mexico - Liga MX',
1397
1488
  268: 'Brazil - Serie A',
1398
1489
  399: 'Euroleague',
@@ -1432,5 +1523,12 @@ export const LeagueIdMapOpticOdds = {
1432
1523
  20125: 'England - EFL Cup',
1433
1524
  20126: 'England - League 1',
1434
1525
  20127: 'Uruguay - Primera Division',
1526
+ 20128: 'AFC - Champions League',
1435
1527
  20200: 'Eurocup',
1528
+ 20201: 'Spain - Liga ACB',
1529
+ 20202: 'Italy - Lega Basket Serie A',
1530
+ 20203: 'Germany - BBL',
1531
+ 20204: 'France - LNB Pro A',
1532
+ 20205: 'China - CBA',
1533
+ 20206: 'Australia - NBL',
1436
1534
  };
@@ -128,10 +128,18 @@ export enum League {
128
128
  ENGLAND_EFL_CUP = 20125,
129
129
  ENGLAND_LEGAUE_1 = 20126,
130
130
  URUGUAY_PRIMERA_DIVISION = 20127,
131
+ AFC_CHAMPIONS_LEAGUE = 20128,
131
132
  EUROCUP = 20200,
133
+ SPAIN_LIGA_ACB = 20201,
134
+ ITALY_LEGA_BASKET_SERIE_A = 20202,
135
+ GERMANY_BBL = 20203,
136
+ FRANCE_LNB_PRO_A = 20204,
137
+ CHINA_CBA = 20205,
138
+ AUSTRALIA_NBL = 20206,
132
139
  NFL_FUTURES = 30002,
133
140
  NBA_FUTURES = 30004,
134
141
  EPL_FUTURES = 30011,
142
+ UEFA_CHAMPIONS_LEAGUE_FUTURES = 30016,
135
143
  GOLF_H2H = 100021,
136
144
  GOLF_WINNER = 100121,
137
145
  TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1 = 15312,
@@ -58,7 +58,7 @@ export const processMarket = (
58
58
  normalizedImplied: _odd,
59
59
  };
60
60
  } else {
61
- market.errorMessage = 'Unexpected odds after spread adjustment';
61
+ market.errorMessage = 'Bad odds after spread adjustment';
62
62
  return {
63
63
  american: 0,
64
64
  decimal: 0,
package/src/utils/odds.ts CHANGED
@@ -191,7 +191,7 @@ export const createChildMarkets: (
191
191
  defaultSpreadForLiveMarkets,
192
192
  leagueMap
193
193
  ) => {
194
- const [spreadOdds, totalOdds, childMarkets]: any[] = [[], [], []];
194
+ const [spreadOdds, totalOdds, moneylineOdds, childMarkets]: any[] = [[], [], [], []];
195
195
  const leagueInfo = getLeagueInfo(leagueId, leagueMap);
196
196
  const commonData = {
197
197
  homeTeam: apiResponseWithOdds.homeTeam,
@@ -205,19 +205,20 @@ export const createChildMarkets: (
205
205
  liveOddsProviders[0]
206
206
  );
207
207
 
208
- const allValidOdds = allChildOdds.filter((odd) => odd && Math.abs(Number(odd.points) % 1) === 0.5) as any;
209
-
210
- allValidOdds.forEach((odd) => {
208
+ allChildOdds.forEach((odd) => {
211
209
  if (odd.type === 'Total') {
212
- totalOdds.push(odd);
210
+ if (Math.abs(Number(odd.points) % 1) === 0.5) totalOdds.push(odd);
213
211
  } else if (odd.type === 'Spread') {
214
- spreadOdds.push(odd);
212
+ if (Math.abs(Number(odd.points) % 1) === 0.5) spreadOdds.push(odd);
213
+ } else if (odd.type === 'Moneyline') {
214
+ moneylineOdds.push(odd);
215
215
  }
216
216
  });
217
217
 
218
218
  const formattedOdds = [
219
219
  ...groupAndFormatSpreadOdds(spreadOdds, commonData),
220
220
  ...groupAndFormatTotalOdds(totalOdds, commonData),
221
+ ...groupAndFormatMoneylineOdds(moneylineOdds, commonData),
221
222
  ];
222
223
 
223
224
  const oddsWithSpreadAdjusted = adjustSpreadOnChildOdds(
@@ -231,7 +232,7 @@ export const createChildMarkets: (
231
232
  leagueId: Number(data.sportId),
232
233
  typeId: Number(data.typeId),
233
234
  type: data.type.toLowerCase(),
234
- line: Number(data.line),
235
+ line: Number(data.line || 0),
235
236
  odds: data.odds,
236
237
  };
237
238
  const leagueInfoByTypeId = leagueInfo.find((league) => Number(league.typeId) === Number(data.typeId));
@@ -294,10 +295,10 @@ export const filterOddsByMarketNameBookmaker = (oddsArray, leagueInfos: LeagueIn
294
295
  export const groupAndFormatSpreadOdds = (oddsArray, commonData) => {
295
296
  // Group odds by their selection points and selection
296
297
  const groupedOdds = oddsArray.reduce((acc: any, odd: any) => {
297
- const { points, price, selection, typeId, sportId, type } = odd;
298
+ const { points, marketName, price, selection, typeId, sportId, type } = odd;
298
299
  const isHomeTeam = selection === commonData.homeTeam;
299
300
 
300
- const key = isHomeTeam ? points : -points;
301
+ const key = `${marketName}_${isHomeTeam ? points : -points}`;
301
302
 
302
303
  if (!acc[key]) {
303
304
  acc[key] = { home: null, away: null, typeId: null, sportId: null };
@@ -317,7 +318,8 @@ export const groupAndFormatSpreadOdds = (oddsArray, commonData) => {
317
318
  }, {}) as any;
318
319
  // Format the grouped odds into the desired output
319
320
  const formattedOdds = (Object.entries(groupedOdds as any) as any).reduce((acc, [key, value]) => {
320
- const line = parseFloat(key);
321
+ const [_marketName, lineFloat] = key.split('_');
322
+ const line = parseFloat(lineFloat);
321
323
  if ((value as any).home !== null && (value as any).away !== null) {
322
324
  acc.push({
323
325
  line: line as any,
@@ -343,7 +345,7 @@ export const groupAndFormatTotalOdds = (oddsArray, commonData) => {
343
345
  // Group odds by their selection points and selection
344
346
  const groupedOdds = oddsArray.reduce((acc, odd) => {
345
347
  if (odd) {
346
- const key = `${odd.selection}_${odd.points}`;
348
+ const key = `${odd.marketName}_${odd.selection}_${odd.points}`;
347
349
  if (!acc[key]) {
348
350
  acc[key] = { over: null, under: null };
349
351
  }
@@ -363,7 +365,7 @@ export const groupAndFormatTotalOdds = (oddsArray, commonData) => {
363
365
 
364
366
  // Format the grouped odds into the desired output
365
367
  const formattedOdds = (Object.entries(groupedOdds as any) as any).reduce((acc, [key, value]) => {
366
- const [selection, selectionLine] = key.split('_');
368
+ const [_marketName, selection, selectionLine] = key.split('_');
367
369
  const line = parseFloat(selectionLine);
368
370
 
369
371
  // if we have away team in total odds we know the market is team total and we need to increase typeId by one.
@@ -384,12 +386,59 @@ export const groupAndFormatTotalOdds = (oddsArray, commonData) => {
384
386
  return formattedOdds;
385
387
  };
386
388
 
389
+ /**
390
+ * Groups spread odds by their lines and formats the result.
391
+ *
392
+ * @param {Array} oddsArray - The input array of odds objects.
393
+ * @param {Object} commonData - The common data object containing homeTeam information.
394
+ * @returns {Array} The grouped and formatted spread odds.
395
+ */
396
+ export const groupAndFormatMoneylineOdds = (oddsArray, commonData) => {
397
+ // Group odds by their selection points and selection
398
+ const groupedOdds = oddsArray.reduce((acc: any, odd: any) => {
399
+ const { price, selection, typeId, sportId, type } = odd;
400
+ const key = typeId;
401
+
402
+ if (!acc[key]) {
403
+ acc[key] = { home: null, away: null, draw: null, typeId: null, sportId: null };
404
+ }
405
+
406
+ if (selection.toLowerCase() === commonData.homeTeam.toLowerCase()) acc[key].home = price;
407
+ else if (selection.toLowerCase() === commonData.awayTeam.toLowerCase()) acc[key].away = price;
408
+ else if (selection.toLowerCase() === DRAW.toLowerCase()) acc[key].draw = price;
409
+
410
+ acc[key].typeId = typeId;
411
+ acc[key].type = type;
412
+ acc[key].sportId = sportId;
413
+
414
+ return acc;
415
+ }, {}) as any;
416
+ // Format the grouped odds into the desired output
417
+ const formattedOdds = (Object.entries(groupedOdds as any) as any).reduce((acc, [_key, value]) => {
418
+ if ((value as any).home !== null && (value as any).away !== null) {
419
+ acc.push({
420
+ odds: [(value as any).home, (value as any).away, (value as any).draw],
421
+ typeId: value.typeId,
422
+ sportId: value.sportId,
423
+ type: value.type,
424
+ });
425
+ }
426
+ return acc;
427
+ }, []);
428
+
429
+ return formattedOdds;
430
+ };
431
+
387
432
  export const adjustSpreadOnChildOdds = (iterableGroupedOdds, spreadDataForSport, defaultSpreadForLiveMarkets) => {
388
433
  const result: any[] = [];
389
434
  iterableGroupedOdds.forEach((data) => {
390
- let homeTeamOdds = convertOddsToImpl(data.odds[0]) || ZERO;
391
- let awayTeamOdds = convertOddsToImpl(data.odds[1]) || ZERO;
392
- let isZeroOddsChild = homeTeamOdds === ZERO || awayTeamOdds === ZERO;
435
+ const hasDrawOdds = data.odds.length === 3;
436
+ const homeTeamOdds = convertOddsToImpl(data.odds[0]) || ZERO;
437
+ const awayTeamOdds = convertOddsToImpl(data.odds[1]) || ZERO;
438
+ const drawOdds = convertOddsToImpl(data.odds[2]) || ZERO;
439
+ const odds = hasDrawOdds ? [homeTeamOdds, awayTeamOdds, drawOdds] : [homeTeamOdds, awayTeamOdds];
440
+
441
+ const isZeroOddsChild = homeTeamOdds === ZERO || awayTeamOdds === ZERO || (hasDrawOdds && drawOdds === ZERO);
393
442
  if (!isZeroOddsChild) {
394
443
  const spreadData = getSpreadData(
395
444
  spreadDataForSport,
@@ -399,15 +448,11 @@ export const adjustSpreadOnChildOdds = (iterableGroupedOdds, spreadDataForSport,
399
448
  );
400
449
  let adjustedOdds;
401
450
  if (spreadData !== null) {
402
- adjustedOdds = adjustSpreadOnOdds(
403
- [homeTeamOdds, awayTeamOdds],
404
- spreadData.minSpread,
405
- spreadData.targetSpread
406
- );
451
+ adjustedOdds = adjustSpreadOnOdds(odds, spreadData.minSpread, spreadData.targetSpread);
407
452
  } else {
408
- adjustedOdds = adjustSpreadOnOdds([homeTeamOdds, awayTeamOdds], defaultSpreadForLiveMarkets, 0);
453
+ adjustedOdds = adjustSpreadOnOdds(odds, defaultSpreadForLiveMarkets, 0);
409
454
  }
410
- [homeTeamOdds, awayTeamOdds] = adjustedOdds;
455
+
411
456
  result.push({
412
457
  ...data,
413
458
  odds: adjustedOdds,