686-637125980079833088	health,obama,uninsured,arrived,obamacare	0.2929089,0.26489246,0.2613199,0.11032646,0.07055226
686-641075401465425920	arrived,health,uninsured,obamacare,obama	0.538873,0.3019444,0.06001327,0.050345033,0.04882425
686-649002362716205056	health,obama,uninsured,obamacare,arrived	0.8575456,0.050944403,0.038592312,0.02768594,0.025231732
686-621686015430893568	uninsured,obamacare,obama,health,arrived	0.7189956,0.16309617,0.049927495,0.035550356,0.032430414
686-647873753020416000	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-646104843782782976	obamacare,health,uninsured,arrived,obama	0.38250402,0.24455613,0.15735398,0.122718446,0.092867434
686-621427376342306816	arrived,obamacare,uninsured,obama,health	0.5487748,0.26389152,0.1136239,0.043722376,0.029987466
686-623294080353615872	obamacare,arrived,obama,health,uninsured	0.7397696,0.16108684,0.050299805,0.028092135,0.020751625
686-644910320692150272	obama,health,obamacare,arrived,uninsured	0.71467966,0.23991014,0.016434144,0.015265099,0.0137109645
686-624697477644423168	health,uninsured,arrived,obamacare,obama	0.36807346,0.2646592,0.2498158,0.08046518,0.036986355
686-646915350185971712	uninsured,arrived,obamacare,obama,health	0.66161036,0.1494768,0.12319115,0.043076802,0.0226449
686-638187221175128064	obama,obamacare,health,arrived,uninsured	0.95030516,0.014381347,0.013459731,0.011762289,0.010091456
686-644403943519313920	uninsured,obamacare,obama,health,arrived	0.44042346,0.36755097,0.075071365,0.065889165,0.051065058
686-620769211221192704	uninsured,arrived,obamacare,health,obama	0.59072214,0.25273964,0.069783196,0.048439447,0.038315553
686-635690784927289344	obamacare,arrived,obama,health,uninsured	0.83750093,0.096888244,0.035301737,0.017404925,0.012904184
686-616746820711153668	uninsured,arrived,health,obama,obamacare	0.5196394,0.33476174,0.07782459,0.040880717,0.026893603
686-645022413412016128	uninsured,health,obamacare,obama,arrived	0.54068047,0.25168923,0.1541795,0.027418738,0.026032072
686-621476070793981952	health,uninsured,arrived,obamacare,obama	0.5108311,0.2938463,0.17343384,0.015085077,0.006803651
686-637264072266772480	arrived,obamacare,health,uninsured,obama	0.50814945,0.19516842,0.16389295,0.12818398,0.0046051997
686-617891622945210368	arrived,uninsured,health,obamacare,obama	0.41463864,0.35397205,0.14254302,0.0482739,0.0405724
686-628289446375460864	arrived,obamacare,uninsured,obama,health	0.6689519,0.2173225,0.06699059,0.02400182,0.022733167
686-624641216706023424	uninsured,arrived,obama,obamacare,health	0.5793585,0.29511908,0.057307832,0.03578436,0.032430194
686-632794650307260417	uninsured,arrived,obamacare,obama,health	0.5522126,0.26513407,0.08516645,0.056864563,0.040622324
686-619822248900362241	obama,health,obamacare,arrived,uninsured	0.43563575,0.3072579,0.09377844,0.084714346,0.07861359
686-647427929991843842	health,arrived,uninsured,obamacare,obama	0.4794748,0.20407312,0.1791571,0.08400967,0.0532853
686-617524116459917312	obamacare,arrived,health,uninsured,obama	0.37431583,0.2458554,0.169354,0.1626217,0.047853053
686-627335755136811008	uninsured,obamacare,obama,arrived,health	0.47482118,0.26867566,0.100554824,0.07887915,0.07706919
686-618764058163060736	arrived,obamacare,uninsured,obama,health	0.39781594,0.22587796,0.14488603,0.13434577,0.09707429
686-634808431359168512	uninsured,health,arrived,obamacare,obama	0.58132327,0.24112724,0.091053136,0.0509569,0.03553944
686-636283549428121601	obamacare,obama,uninsured,arrived,health	0.41401193,0.23247847,0.16140462,0.10984804,0.082256965
686-628292081870610432	uninsured,obamacare,obama,arrived,health	0.8243031,0.09958551,0.03463803,0.021206757,0.020266624
686-645699165368881152	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-646967377729458177	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-618502172368609280	arrived,obamacare,uninsured,health,obama	0.30617028,0.29807493,0.24069527,0.084736876,0.07032267
686-615175537296736257	arrived,obama,obamacare,health,uninsured	0.76840055,0.08435868,0.07862771,0.038003426,0.030609617
686-619180042766016513	obamacare,health,uninsured,arrived,obama	0.35147113,0.33463767,0.14126049,0.11333316,0.05929755
686-626568370440245249	arrived,obama,health,obamacare,uninsured	0.542945,0.1868642,0.09957725,0.09820203,0.07241151
686-631610802517049344	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-631612711172857856	obamacare,health,obama,arrived,uninsured	0.39972395,0.3889185,0.11749933,0.050737567,0.043120664
686-647424973267714048	obamacare,arrived,health,uninsured,obama	0.38550642,0.26077405,0.20557028,0.07541526,0.07273397
686-638241466532261888	uninsured,obama,obamacare,arrived,health	0.41099504,0.20568673,0.14917341,0.14683166,0.08731317
686-624196650437877761	uninsured,obamacare,health,obama,arrived	0.5257529,0.17507336,0.17480138,0.085999936,0.03837241
686-642078704089350144	uninsured,arrived,obamacare,health,obama	0.45447046,0.24509342,0.20826314,0.06212583,0.030047158
686-627881599120510980	arrived,obama,obamacare,health,uninsured	0.93206376,0.028633667,0.01460978,0.014162092,0.010530685
686-615184988015693825	arrived,health,uninsured,obamacare,obama	0.42241275,0.23739563,0.14519788,0.1398874,0.055106312
686-618924788686295040	health,obamacare,arrived,uninsured,obama	0.38283613,0.18843107,0.17145793,0.1450767,0.112198144
686-639525545747812352	uninsured,obama,obamacare,health,arrived	0.85786414,0.05767104,0.029606305,0.02900857,0.025849959
686-639556478026805248	arrived,health,obamacare,uninsured,obama	0.49719188,0.24315459,0.17983371,0.04905903,0.030760793
686-643499561374322688	uninsured,health,obama,arrived,obamacare	0.5465626,0.1627346,0.109423764,0.10752872,0.07375029
686-618574502822313984	health,arrived,obamacare,obama,uninsured	0.7501718,0.13398057,0.061251573,0.038419016,0.016177025
686-622413428578222080	obamacare,health,arrived,uninsured,obama	0.3103401,0.29732504,0.26907668,0.094550386,0.028707808
686-648404309919449088	arrived,obama,obamacare,health,uninsured	0.8818235,0.047795273,0.02898255,0.02367252,0.01772616
686-648618362675720192	obamacare,arrived,obama,health,uninsured	0.83060867,0.13709123,0.017947093,0.007891932,0.0064610653
686-648416940193505281	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648856907260788736	health,obamacare,obama,arrived,uninsured	0.8614288,0.062485814,0.041932356,0.017800918,0.016352138
686-618800407733624832	obama,health,arrived,obamacare,uninsured	0.38279623,0.34287462,0.098489076,0.09785726,0.077982835
686-644881067413864448	obama,health,uninsured,arrived,obamacare	0.32355613,0.31817776,0.28908494,0.03935558,0.029825613
686-624454197107298305	arrived,uninsured,obama,obamacare,health	0.72003263,0.15259753,0.056813914,0.03645896,0.03409695
686-635353366743248896	arrived,uninsured,obama,obamacare,health	0.38028657,0.29618075,0.16959748,0.077597536,0.07633767
686-626933548700708865	obamacare,arrived,health,uninsured,obama	0.4185126,0.27668825,0.14693198,0.14585872,0.012008447
686-634012163045130242	obamacare,arrived,obama,health,uninsured	0.67083573,0.25912312,0.036251206,0.019264847,0.014525102
686-642011199564050438	uninsured,arrived,health,obama,obamacare	0.39061064,0.33477983,0.113367856,0.09494673,0.06629497
686-647329764794068992	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-630027982724329473	arrived,obamacare,health,obama,uninsured	0.7465977,0.13135542,0.072967514,0.03579448,0.013284884
686-618858839207710720	health,uninsured,obamacare,arrived,obama	0.42328656,0.35053992,0.09782814,0.08868811,0.03965728
686-646127499957547008	arrived,health,obama,obamacare,uninsured	0.4426646,0.27220774,0.14115089,0.09059231,0.053384457
686-616719901764419584	uninsured,arrived,health,obama,obamacare	0.33647546,0.29513344,0.2102874,0.081653506,0.076450184
686-617468343721836544	obamacare,health,uninsured,obama,arrived	0.6483573,0.1848876,0.109859124,0.03630938,0.02058664
686-643620609310769152	uninsured,arrived,health,obamacare,obama	0.71957326,0.07920495,0.0730076,0.07136748,0.056846693
686-626487105112268800	health,uninsured,obama,arrived,obamacare	0.8535941,0.08713433,0.025459506,0.020392846,0.013419171
686-627481990606905344	obamacare,uninsured,obama,arrived,health	0.35182285,0.27048087,0.15501192,0.1334772,0.08920714
686-639890688730075136	uninsured,obamacare,obama,arrived,health	0.5396771,0.37636608,0.041107353,0.021660855,0.021188669
686-618369864999272448	health,arrived,obama,obamacare,uninsured	0.98128515,0.009084856,0.006198217,0.0022348876,0.0011968678
686-648417179499532288	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-617615052745625600	uninsured,obama,obamacare,arrived,health	0.3474641,0.24079467,0.18508618,0.14244229,0.08421276
686-621075393253130240	obama,obamacare,uninsured,arrived,health	0.599622,0.25772366,0.06251067,0.05343705,0.02670659
686-646480464966914048	obamacare,health,uninsured,obama,arrived	0.4204635,0.36848962,0.13437973,0.049823005,0.02684413
686-618876627464761344	uninsured,obamacare,arrived,obama,health	0.61572415,0.18041727,0.09214364,0.06161059,0.050104383
686-637702128195121152	uninsured,health,arrived,obamacare,obama	0.36101645,0.32957467,0.17939709,0.07570708,0.054304723
686-628180714803081216	arrived,health,obamacare,obama,uninsured	0.47670436,0.2705885,0.16427939,0.054285184,0.0341426
686-648055147373858816	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-620547806424662016	arrived,obama,obamacare,health,uninsured	0.908321,0.036068186,0.019974202,0.018809577,0.016827006
686-646967380799827968	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-639519186620821504	health,arrived,obamacare,uninsured,obama	0.97181535,0.026137685,0.0013236101,4.0595914E-4,3.173791E-4
686-640667039451992064	health,obamacare,obama,uninsured,arrived	0.6960206,0.15305792,0.064180546,0.044228308,0.042512625
686-644991952551702528	arrived,health,obama,obamacare,uninsured	0.75227606,0.21147457,0.012535371,0.011975701,0.011738283
686-628433767049236480	obamacare,arrived,uninsured,obama,health	0.59468603,0.16244656,0.15863654,0.051209867,0.03302103
686-631907265977520128	uninsured,obamacare,health,obama,arrived	0.71526885,0.11829655,0.11646681,0.032601956,0.017365824
686-633767074557501440	health,arrived,uninsured,obamacare,obama	0.30773452,0.26184952,0.22615235,0.10744745,0.09681617
686-636649858640801792	uninsured,health,arrived,obamacare,obama	0.3006556,0.27962768,0.2538321,0.09447797,0.07140662
686-627714305652342785	arrived,uninsured,obama,obamacare,health	0.7306438,0.18010393,0.03886703,0.026452847,0.023932405
686-628965433291337729	uninsured,obamacare,arrived,obama,health	0.5578837,0.3114579,0.08557011,0.029517343,0.015570967
686-642549371347836929	obamacare,health,uninsured,arrived,obama	0.34030962,0.29692328,0.2723583,0.051407266,0.039001536
686-645880300459950080	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-628359551595728896	uninsured,arrived,obamacare,health,obama	0.39302376,0.21753463,0.19599642,0.14292845,0.050516736
686-640168509721325569	obamacare,arrived,uninsured,health,obama	0.7871237,0.14338543,0.03240221,0.019597458,0.017491238
686-646786416907710464	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-628744190344753152	uninsured,obamacare,arrived,health,obama	0.4438978,0.42436498,0.048654463,0.04817416,0.034908593
686-634032508766695424	health,arrived,obama,obamacare,uninsured	0.62125134,0.22444089,0.07647094,0.044168007,0.033668797
686-633287537918910464	uninsured,arrived,health,obamacare,obama	0.599315,0.24636438,0.07927659,0.04101867,0.034025352
686-641626307516760064	uninsured,arrived,health,obama,obamacare	0.38237587,0.16150597,0.15579382,0.15336335,0.146961
686-624014576020008961	arrived,uninsured,health,obama,obamacare	0.33952647,0.32127503,0.1984172,0.081375346,0.05940596
686-625427546629361664	obamacare,obama,arrived,health,uninsured	0.55089706,0.16287732,0.10494653,0.100488685,0.08079037
686-638123317564678144	obama,health,arrived,obamacare,uninsured	0.8537614,0.067665696,0.040008318,0.0221495,0.016415138
686-626184384148803589	arrived,uninsured,obama,health,obamacare	0.43944445,0.43271843,0.057575893,0.036028165,0.034233056
686-643765859488391169	obamacare,uninsured,obama,arrived,health	0.78109413,0.11555272,0.051078465,0.026627507,0.025647191
686-638696854796955648	uninsured,obamacare,health,obama,arrived	0.522409,0.19684918,0.1935652,0.05673151,0.030445065
686-616703919872303105	obamacare,arrived,obama,health,uninsured	0.5335841,0.37342262,0.042783223,0.030968709,0.019241288
686-625871999487709184	arrived,obama,health,obamacare,uninsured	0.921101,0.03179031,0.017516635,0.016274456,0.013317641
686-624597131957964806	obamacare,obama,uninsured,health,arrived	0.4556165,0.31564227,0.12590815,0.062473707,0.04035935
686-632693649051025408	obamacare,obama,health,arrived,uninsured	0.9213049,0.03107524,0.022878366,0.013438124,0.011303392
686-625363709641097216	health,arrived,obamacare,obama,uninsured	0.51166046,0.14507647,0.13810374,0.13641404,0.068745315
686-628962356266012672	arrived,obamacare,health,uninsured,obama	0.90635157,0.086075604,0.0055342754,0.0012218852,8.166487E-4
686-616704146029187073	uninsured,arrived,health,obama,obamacare	0.5569326,0.17810701,0.109513886,0.09799976,0.057446722
686-619673698912436224	arrived,obamacare,obama,health,uninsured	0.43060467,0.28129077,0.1288352,0.08751062,0.07175874
686-621399898680893440	arrived,obamacare,obama,health,uninsured	0.6963713,0.16883223,0.06952139,0.03689312,0.028381959
686-619959095517425664	obamacare,arrived,health,uninsured,obama	0.35191745,0.22661778,0.1680312,0.12959246,0.1238411
686-621156596303826944	obamacare,uninsured,obama,arrived,health	0.364907,0.34531555,0.10647751,0.103088744,0.08021121
686-643904129543327745	obamacare,health,obama,arrived,uninsured	0.6992903,0.17921762,0.059066284,0.03277368,0.029652156
686-647551018629107712	arrived,uninsured,obamacare,obama,health	0.63634866,0.1955442,0.07533818,0.06090558,0.03186335
686-648915573682913282	obamacare,obama,health,arrived,uninsured	0.8746332,0.0551316,0.026876997,0.023441536,0.01991668
686-644777565966716928	health,uninsured,obama,arrived,obamacare	0.5705747,0.34785706,0.036678642,0.023631047,0.021258567
686-619584915965775872	health,obama,obamacare,arrived,uninsured	0.8619496,0.05560805,0.03612826,0.023834148,0.022479938
686-639422590499557376	arrived,health,obama,obamacare,uninsured	0.87426883,0.04681001,0.032748364,0.024171017,0.022001786
686-616404183474790400	health,arrived,obama,uninsured,obamacare	0.8071445,0.08541195,0.04791059,0.031151999,0.028380921
686-629473093589835776	obamacare,arrived,uninsured,health,obama	0.303353,0.2892581,0.19663382,0.11832641,0.09242868
686-648235816687288320	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-632235628843913217	obamacare,arrived,health,obama,uninsured	0.5524736,0.19551112,0.16146447,0.05768698,0.032863814
686-630059878917144576	obamacare,obama,arrived,health,uninsured	0.99702656,0.0010496987,6.6536607E-4,6.308324E-4,6.275207E-4
686-648235860140363780	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-638429803914227712	uninsured,obamacare,obama,health,arrived	0.5211534,0.39817867,0.040986728,0.02048178,0.01919942
686-621504512407261184	health,obama,arrived,obamacare,uninsured	0.35719013,0.3310437,0.117189914,0.1109868,0.083589464
686-627530513666973696	obamacare,health,uninsured,arrived,obama	0.5044859,0.20953377,0.14901331,0.08223641,0.054730576
686-618206389035528192	health,uninsured,obamacare,arrived,obama	0.5943627,0.35408837,0.025314804,0.016839694,0.00939449
686-618654433736437760	health,obamacare,obama,arrived,uninsured	0.71402663,0.17450817,0.05357334,0.034955345,0.022936502
686-620357853145112576	health,uninsured,obamacare,obama,arrived	0.5126043,0.20380579,0.20372225,0.051936354,0.027931299
686-632353210204749825	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-637081090562256896	arrived,obamacare,health,obama,uninsured	0.3854821,0.3846586,0.14988977,0.04479381,0.03517572
686-647148645901402112	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-621132721813880833	obamacare,arrived,health,obama,uninsured	0.47549465,0.2776904,0.15885738,0.057897754,0.030059796
686-615214490263511041	obamacare,uninsured,arrived,obama,health	0.6885987,0.17153504,0.052782092,0.044374194,0.042709973
686-616052497237422080	uninsured,health,obamacare,arrived,obama	0.33178917,0.24343446,0.19273457,0.17794912,0.054092698
686-616050590129352704	obamacare,arrived,obama,health,uninsured	0.62295735,0.23586263,0.070612766,0.0409731,0.029594166
686-643505439888572416	health,arrived,obamacare,obama,uninsured	0.4312166,0.27929643,0.23764102,0.029754918,0.02209104
686-627117459347107840	arrived,obamacare,uninsured,obama,health	0.41289657,0.26236597,0.20425646,0.07538844,0.045092534
686-645880314783371264	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-631635399245369345	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-645958420034650113	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-643463660082479105	obamacare,uninsured,arrived,obama,health	0.5203166,0.30938604,0.12044858,0.032256633,0.017592156
686-635138641828925440	health,obamacare,arrived,obama,uninsured	0.5147561,0.14649057,0.12057322,0.11340093,0.10477923
686-618271813638819840	obama,arrived,health,obamacare,uninsured	0.46728188,0.28823605,0.16068445,0.06427611,0.0195215
686-625722360839151616	arrived,uninsured,obamacare,health,obama	0.4582322,0.22031161,0.18336906,0.088432096,0.04965504
686-644935981414621184	uninsured,obamacare,arrived,health,obama	0.3254561,0.24506232,0.15348014,0.15025643,0.12574501
686-631640367985762304	obamacare,obama,arrived,health,uninsured	0.89075047,0.03556523,0.035176165,0.023768928,0.01473922
686-645606862268661761	uninsured,arrived,health,obamacare,obama	0.3993227,0.21243104,0.1862048,0.15660205,0.04543941
686-618939913484922880	health,uninsured,arrived,obamacare,obama	0.574585,0.17409651,0.1556093,0.05680714,0.038902026
686-615215827172872192	obama,arrived,uninsured,health,obamacare	0.3759499,0.30256206,0.20626485,0.08171495,0.033508252
686-620723007946776577	obamacare,obama,arrived,health,uninsured	0.5894264,0.120842315,0.1194124,0.08576601,0.08455287
686-631290480358223872	health,uninsured,obama,obamacare,arrived	0.6645202,0.16154416,0.084020264,0.050226487,0.039688878
686-628912738329194496	arrived,obamacare,health,obama,uninsured	0.41563004,0.3102741,0.1718944,0.05210417,0.050097268
686-615974759441014784	uninsured,arrived,obamacare,health,obama	0.29985598,0.22408433,0.2107412,0.18993661,0.07538188
686-635546077849104384	obamacare,health,uninsured,obama,arrived	0.549352,0.18013658,0.16658926,0.0593731,0.04454906
686-634562836572848128	uninsured,obama,obamacare,health,arrived	0.9112844,0.03656067,0.018527273,0.01794408,0.015683576
686-619172891209408512	uninsured,health,arrived,obama,obamacare	0.38310677,0.24267101,0.23067997,0.08636343,0.05717881
686-636919953896140800	obamacare,arrived,obama,uninsured,health	0.40520555,0.2184432,0.18008025,0.14374779,0.052523214
686-642065010357747713	uninsured,obamacare,obama,arrived,health	0.5396771,0.37636608,0.041107353,0.021660855,0.021188669
686-636607496791023616	arrived,obamacare,uninsured,health,obama	0.4527984,0.28994352,0.18079491,0.04694801,0.029515179
686-624392684640280576	uninsured,obamacare,obama,arrived,health	0.67609334,0.112722084,0.08853305,0.062318105,0.06033343
686-640500227003166720	obamacare,uninsured,health,obama,arrived	0.5210992,0.22686285,0.20291372,0.029671986,0.019452266
686-622207932323598339	obamacare,arrived,health,uninsured,obama	0.7485034,0.24406551,0.0034826307,0.0029324521,0.0010160409
686-629493595251191808	obamacare,health,arrived,obama,uninsured	0.84452814,0.06879864,0.04797368,0.028155455,0.010544109
686-622618479124877312	obamacare,obama,health,arrived,uninsured	0.8719227,0.055863563,0.02755154,0.024101565,0.02056065
686-645517691952824320	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648316805446922242	obamacare,obama,health,arrived,uninsured	0.82361716,0.06560541,0.039944462,0.037158716,0.033674236
686-636699669364666368	health,uninsured,arrived,obamacare,obama	0.3739127,0.30256897,0.21369943,0.06003847,0.049780443
686-630581686300901376	arrived,obama,health,obamacare,uninsured	0.8555715,0.05881775,0.031670216,0.031133419,0.022807086
686-645518016743124992	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-639227508227858433	arrived,obamacare,uninsured,obama,health	0.82718015,0.092686564,0.03825358,0.02390616,0.017973535
686-633714054423531520	arrived,obama,obamacare,health,uninsured	0.8412135,0.054652754,0.05047717,0.029557865,0.024098681
686-633786854698020864	uninsured,obamacare,arrived,health,obama	0.53870904,0.17162877,0.145827,0.085532,0.05830321
686-648417248227409921	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648971401534304256	obamacare,arrived,obama,uninsured,health	0.44457963,0.3908298,0.07047079,0.04785407,0.046265718
686-629709740545851392	uninsured,obama,obamacare,health,arrived	0.85508555,0.049851477,0.03327425,0.031814292,0.029974446
686-632904732340809728	health,obamacare,obama,arrived,uninsured	0.63719344,0.27616817,0.04209764,0.027630534,0.01691022
686-631159735266476032	health,obamacare,arrived,obama,uninsured	0.6578036,0.14657657,0.13845117,0.040976595,0.016192084
686-633066262034317313	health,obama,obamacare,arrived,uninsured	0.9275117,0.031429034,0.015977394,0.013546899,0.01153499
686-616018309952045057	arrived,obamacare,obama,health,uninsured	0.8373485,0.105232045,0.028690634,0.015177023,0.013551776
686-618173923427913728	uninsured,health,obama,arrived,obamacare	0.70027775,0.12812532,0.068306945,0.061076988,0.04221302
686-632666763059068929	obamacare,health,obama,arrived,uninsured	0.7574322,0.15605272,0.046912815,0.021798177,0.01780409
686-630729367245705216	uninsured,obamacare,obama,health,arrived	0.4985869,0.32953894,0.13802594,0.017784037,0.016064202
686-632249836364894208	health,arrived,obama,obamacare,uninsured	0.8019095,0.11047307,0.046854768,0.02366075,0.017101912
686-646786708600586241	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-643592420958040064	uninsured,arrived,obama,health,obamacare	0.67375547,0.24698041,0.036887184,0.023152411,0.019224532
686-617891692016893953	obamacare,arrived,obama,health,uninsured	0.74489725,0.1667524,0.046815593,0.022928227,0.01860655
686-628603463094550528	arrived,health,uninsured,obama,obamacare	0.5722068,0.24725126,0.06167998,0.061523806,0.057338156
686-646604729112330241	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-621026450909429760	health,uninsured,obamacare,obama,arrived	0.40661445,0.29378033,0.1276736,0.099216305,0.07271533
686-647034059202367491	uninsured,obamacare,health,arrived,obama	0.5428218,0.3412817,0.051300235,0.03274671,0.031849552
686-627150122145738752	uninsured,arrived,health,obamacare,obama	0.41198117,0.24202088,0.16146874,0.12701537,0.057513844
686-630166890803892224	obamacare,arrived,obama,health,uninsured	0.747324,0.16260669,0.04764258,0.023681581,0.018745152
686-615198652492050432	obamacare,health,arrived,obama,uninsured	0.5354322,0.15397312,0.14474267,0.08334119,0.08251081
686-630400737978241025	uninsured,arrived,health,obamacare,obama	0.515119,0.18285303,0.14153543,0.1276273,0.03286524
686-646403856914644992	arrived,uninsured,health,obamacare,obama	0.6378842,0.15053818,0.14402461,0.051832862,0.015720181
686-627875758208258049	uninsured,arrived,obama,health,obamacare	0.51496565,0.32071418,0.058861863,0.054936636,0.05052166
686-644310004187693061	uninsured,arrived,health,obamacare,obama	0.476582,0.42107373,0.09378675,0.008063682,4.938571E-4
686-621425129667579904	uninsured,arrived,health,obama,obamacare	0.49253255,0.32157728,0.07776454,0.055866987,0.052258644
686-626732313376894976	uninsured,arrived,health,obama,obamacare	0.6183406,0.23019537,0.07215966,0.049326424,0.029977927
686-632245155995774976	arrived,health,obamacare,obama,uninsured	0.4990798,0.2658645,0.1207484,0.06516166,0.049145654
686-634238073904066560	obama,arrived,obamacare,health,uninsured	0.4698651,0.4399976,0.036333837,0.030071972,0.023731457
686-646605012466970624	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-636369468336156673	uninsured,arrived,obama,health,obamacare	0.6692812,0.19001916,0.060425267,0.043386787,0.036887582
686-647874010290585600	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-629483382347436032	health,obama,obamacare,arrived,uninsured	0.57765955,0.1792007,0.09665855,0.07831357,0.06816764
686-648417270025351168	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648492676250136576	obamacare,obama,health,arrived,uninsured	0.85262173,0.05781208,0.032835923,0.030011714,0.026718576
686-646605004942368768	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-624807307528925184	arrived,obamacare,obama,health,uninsured	0.534789,0.27567023,0.09198379,0.055457212,0.042099744
686-634724416686030848	obamacare,uninsured,obama,health,arrived	0.47147635,0.3014366,0.08550083,0.071513906,0.0700723
686-644331930758975489	uninsured,obamacare,arrived,health,obama	0.4953822,0.3007011,0.11328539,0.062023398,0.028607916
686-645995504506175488	uninsured,obama,obamacare,health,arrived	0.9112438,0.036561474,0.018522466,0.01796801,0.015704246
686-640907816232964096	uninsured,obamacare,obama,arrived,health	0.50805336,0.29019946,0.09231607,0.05579603,0.05363506
686-626010241805746176	obamacare,arrived,health,uninsured,obama	0.5395421,0.18565506,0.14841318,0.06946332,0.056926344
686-628325256793595904	health,uninsured,obamacare,obama,arrived	0.6411042,0.21088982,0.09455643,0.033320058,0.020129472
686-615370037159833604	obamacare,obama,arrived,health,uninsured	0.40196157,0.28255427,0.15597722,0.102275774,0.057231173
686-627506049298227200	arrived,uninsured,health,obama,obamacare	0.5043182,0.3087444,0.123705626,0.036207564,0.027024217
686-644979436882952192	obamacare,uninsured,arrived,obama,health	0.52701217,0.19376084,0.16294092,0.067338325,0.048947763
686-615150983664922624	health,obamacare,uninsured,arrived,obama	0.43328047,0.19125986,0.16795021,0.1279808,0.07952866
686-616761584921096193	arrived,obamacare,obama,health,uninsured	0.8373485,0.105232045,0.028690634,0.015177023,0.013551776
686-632256346067464193	health,arrived,obama,obamacare,uninsured	0.8019095,0.11047307,0.046854768,0.02366075,0.017101912
686-645415762086264832	health,uninsured,arrived,obama,obamacare	0.35968223,0.34526315,0.122809425,0.10221709,0.070028104
686-639063048976736256	health,uninsured,obamacare,arrived,obama	0.55939066,0.2650169,0.064954355,0.057429463,0.053208612
686-646810325694709760	uninsured,health,obama,obamacare,arrived	0.6057032,0.3005469,0.04763251,0.024271466,0.021845914
686-648451270999719936	obamacare,obama,health,arrived,uninsured	0.8721036,0.055819876,0.02749869,0.024064662,0.02051322
686-628594697645129728	obamacare,obama,health,arrived,uninsured	0.8886516,0.04786738,0.02399728,0.021241944,0.018241761
686-648302148644507648	obamacare,obama,health,arrived,uninsured	0.8746332,0.0551316,0.026876997,0.023441536,0.01991668
686-631826100130316288	health,obamacare,arrived,obama,uninsured	0.33417314,0.3311145,0.2604196,0.037160054,0.037132695
686-641967322111082497	health,arrived,obama,obamacare,uninsured	0.6788636,0.1842171,0.06361248,0.041686688,0.031620156
686-648905773624389632	uninsured,health,obamacare,arrived,obama	0.38188517,0.24266334,0.2137052,0.12465418,0.037092112
686-617070604760432641	obamacare,health,obama,uninsured,arrived	0.5012403,0.23881009,0.09241458,0.088285066,0.07924995
686-623632344063283200	health,obama,obamacare,arrived,uninsured	0.7487757,0.13550264,0.06480396,0.029543685,0.02137399
686-633867356381540352	obamacare,uninsured,health,arrived,obama	0.5933062,0.37534997,0.015777132,0.010280152,0.00528657
686-640640203091263488	arrived,uninsured,health,obamacare,obama	0.8572707,0.13165498,0.008571217,0.0018731499,6.299564E-4
686-623281801771945984	obamacare,obama,health,arrived,uninsured	0.87011737,0.056638166,0.027270172,0.025752166,0.020222113
686-648709927528062976	obamacare,obama,health,arrived,uninsured	0.85254544,0.057829343,0.0328536,0.030036708,0.026734905
686-638888153605017600	health,uninsured,arrived,obama,obamacare	0.42262635,0.2676789,0.22615997,0.052985333,0.030549478
686-625844281287151616	uninsured,arrived,obama,health,obamacare	0.63950944,0.27062836,0.041796286,0.026418313,0.021647613
686-640905845623099392	health,obamacare,arrived,uninsured,obama	0.42972928,0.20190842,0.1740489,0.13632959,0.05798381
686-636209116927520768	health,obamacare,uninsured,obama,arrived	0.34526008,0.33834875,0.23645912,0.048125435,0.031806633
686-637411454367305728	arrived,health,obama,obamacare,uninsured	0.7341568,0.2015182,0.028535698,0.025336603,0.010452716
686-618030656392704000	health,uninsured,arrived,obama,obamacare	0.34687454,0.28629354,0.28361875,0.04463972,0.03857345
686-641778818093580288	health,arrived,obamacare,uninsured,obama	0.31977338,0.24007559,0.19994049,0.19496892,0.04524162
686-626582975426220033	health,uninsured,arrived,obamacare,obama	0.43911535,0.38175586,0.090525515,0.051369276,0.03723401
686-644654588319002624	obamacare,health,arrived,uninsured,obama	0.3604463,0.35638306,0.19361262,0.04566891,0.0438891
686-644110151683866624	arrived,obamacare,uninsured,obama,health	0.7050625,0.15235531,0.069766976,0.04128589,0.03152934
686-637454463230472192	uninsured,arrived,obama,obamacare,health	0.59158945,0.32253948,0.033102866,0.032579374,0.020188864
686-615268976059244544	health,arrived,obama,obamacare,uninsured	0.5210733,0.34403637,0.05903401,0.048533987,0.027322361
686-633762414396329985	uninsured,obamacare,health,obama,arrived	0.57988477,0.24175727,0.12440039,0.036592603,0.01736497
686-618913630017294336	uninsured,obamacare,health,arrived,obama	0.5999017,0.22423898,0.09428103,0.07134647,0.010231861
686-643427313611317248	obamacare,arrived,obama,uninsured,health	0.816614,0.065336525,0.04836869,0.046261866,0.023418924
686-634790844579471360	uninsured,obamacare,obama,health,arrived	0.64701474,0.27165338,0.041196454,0.020648507,0.01948691
686-626142050581286912	arrived,obamacare,health,obama,uninsured	0.41694742,0.34091908,0.17194954,0.049977038,0.020206934
686-643169723568529408	obamacare,uninsured,health,arrived,obama	0.43922237,0.26707056,0.16146466,0.09395197,0.03829043
686-619172179415035904	health,obamacare,obama,arrived,uninsured	0.7348549,0.2053987,0.031232342,0.014278251,0.014235834
686-616758797277605888	uninsured,arrived,obama,health,obamacare	0.6515128,0.17937249,0.071471676,0.04900319,0.048639808
686-645995754092408832	uninsured,obama,obamacare,health,arrived	0.6578289,0.10632091,0.10631449,0.07306948,0.05646619
686-628579183275429888	obamacare,uninsured,arrived,health,obama	0.4653986,0.31777686,0.14178158,0.038983297,0.036059666
686-621821973237211140	obamacare,uninsured,arrived,health,obama	0.37773407,0.31795123,0.14129947,0.11442216,0.048593063
686-624298586294067201	uninsured,health,obamacare,obama,arrived	0.5478556,0.18700677,0.17949983,0.056560807,0.029076997
686-624645360011608064	obamacare,health,obama,arrived,uninsured	0.8310936,0.062323812,0.048281882,0.037631918,0.020668771
686-647566492125540352	arrived,obama,obamacare,health,uninsured	0.8818235,0.047795273,0.02898255,0.02367252,0.01772616
686-644883822257967104	obamacare,uninsured,obama,arrived,health	0.38950464,0.30437937,0.19410571,0.078212254,0.033798017
686-636056905438261248	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-633344658450464769	health,arrived,obama,obamacare,uninsured	0.7120668,0.185963,0.04519912,0.032492217,0.024278818
686-638490029397028864	uninsured,obama,obamacare,health,arrived	0.9112844,0.03656067,0.018527273,0.01794408,0.015683576
686-627653586462330881	obama,obamacare,health,arrived,uninsured	0.92302436,0.020851202,0.020274388,0.018657818,0.017192256
686-644266344481992705	health,obama,obamacare,arrived,uninsured	0.57601434,0.20804434,0.11107406,0.056059584,0.048807688
686-619853661125103616	obama,health,obamacare,arrived,uninsured	0.66311055,0.1850363,0.062690124,0.05031811,0.038844895
686-619098365083688960	obama,health,uninsured,obamacare,arrived	0.75561213,0.15818943,0.04321334,0.023093782,0.019891286
686-616833713029013504	uninsured,obamacare,health,obama,arrived	0.5571968,0.26998028,0.070669465,0.056960057,0.045193404
686-625421172021268481	uninsured,obamacare,obama,health,arrived	0.6413512,0.17389187,0.12411208,0.032850128,0.027794717
686-619990701678264320	uninsured,arrived,obama,health,obamacare	0.9081763,0.031053852,0.026603237,0.018703368,0.015463238
686-631965353552314368	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-631457688170278912	arrived,uninsured,obamacare,health,obama	0.35428485,0.24295045,0.2348106,0.09570251,0.072251596
686-628372607222439936	obamacare,obama,health,arrived,uninsured	0.48689374,0.19229463,0.1676854,0.13548276,0.017643454
686-615025033350524929	health,arrived,obamacare,obama,uninsured	0.5789242,0.2757423,0.067791894,0.05411312,0.02342851
686-630827412834660352	health,arrived,obamacare,obama,uninsured	0.50993323,0.24795926,0.1662948,0.042372502,0.033440236
686-616028016779460608	obamacare,obama,health,arrived,uninsured	0.8920269,0.0470931,0.023225792,0.020321244,0.017332938
686-638019775503970304	uninsured,obama,obamacare,health,arrived	0.9037188,0.038371887,0.02057432,0.019781066,0.01755388
686-627266092356898816	arrived,uninsured,obamacare,obama,health	0.43755746,0.3013799,0.16548263,0.054259438,0.041320592
686-647149041705463808	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-615255497999036416	health,uninsured,obama,arrived,obamacare	0.8142259,0.08044041,0.044645887,0.03542308,0.025264695
686-632278337948291072	obamacare,health,obama,arrived,uninsured	0.6328434,0.2522228,0.056174777,0.03704673,0.021712288
686-624576676865961984	uninsured,obama,arrived,obamacare,health	0.45580688,0.18689403,0.124791406,0.1169663,0.11554138
686-622553993781207040	arrived,uninsured,obamacare,health,obama	0.41485554,0.32007965,0.123190895,0.10527463,0.036599264
686-632230457527115776	obamacare,obama,health,uninsured,arrived	0.88198245,0.041042704,0.027463255,0.026810389,0.022701193
686-639825953984761857	obamacare,obama,health,arrived,uninsured	0.89236516,0.04700651,0.023129193,0.020245297,0.017253848
686-625030157645053952	uninsured,arrived,obama,obamacare,health	0.5793585,0.29511908,0.057307832,0.03578436,0.032430194
686-618834622571360256	health,arrived,obama,obamacare,uninsured	0.76185274,0.18385592,0.02837746,0.014481619,0.011432254
686-645733047036309504	health,obamacare,uninsured,arrived,obama	0.47955444,0.16736117,0.14084156,0.13747013,0.0747727
686-636265540760178688	uninsured,obamacare,obama,arrived,health	0.5396771,0.37636608,0.041107353,0.021660855,0.021188669
686-638477100618543106	health,uninsured,arrived,obamacare,obama	0.7244287,0.11026602,0.092840984,0.038507085,0.03395722
686-627604965867950081	obamacare,uninsured,arrived,obama,health	0.5324286,0.25007558,0.14999293,0.041617624,0.025885265
686-648236510873956352	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-616785123766185985	obamacare,obama,health,arrived,uninsured	0.38571203,0.18729854,0.1505027,0.15021123,0.12627551
686-646516353302663169	health,obama,obamacare,arrived,uninsured	0.80011946,0.086137526,0.044574805,0.037718553,0.031449668
686-624733052766306304	health,uninsured,obamacare,obama,arrived	0.39927894,0.26134944,0.22370164,0.06684147,0.04882852
686-648966860931747840	uninsured,arrived,health,obamacare,obama	0.3637515,0.26663098,0.18241735,0.13946007,0.047740098
686-622284096950128640	obama,obamacare,health,uninsured,arrived	0.55809236,0.12447696,0.12444755,0.104689404,0.08829375
686-643499257052446720	uninsured,obamacare,arrived,health,obama	0.3254561,0.24506232,0.15348014,0.15025643,0.12574501
686-623530431556616192	uninsured,obamacare,health,arrived,obama	0.5069883,0.17820002,0.17684264,0.07719485,0.060774215
686-646132091328045056	health,obama,obamacare,arrived,uninsured	0.86745137,0.056905594,0.029295385,0.02497065,0.021377025
686-629824149742059520	arrived,obamacare,health,obama,uninsured	0.7465977,0.13135542,0.072967514,0.03579448,0.013284884
686-636681054334554112	health,obamacare,obama,arrived,uninsured	0.73933756,0.16671911,0.04724593,0.029121066,0.017576344
686-648905095292170240	uninsured,obama,obamacare,health,arrived	0.920475,0.032573987,0.0169078,0.016028026,0.014015209
686-633983452174352384	obamacare,arrived,uninsured,health,obama	0.357736,0.23873849,0.2008762,0.15054949,0.05209982
686-647096839888633857	health,uninsured,obama,arrived,obamacare	0.54857385,0.20707938,0.114900894,0.07020172,0.059244163
686-648555121350176768	obamacare,obama,health,arrived,uninsured	0.89407563,0.046536185,0.022717727,0.019822165,0.016848272
686-616560193778905088	obamacare,health,obama,arrived,uninsured	0.42400178,0.41413426,0.06451619,0.05594876,0.041399024
686-627247504891863040	obamacare,arrived,obama,uninsured,health	0.6472156,0.20370263,0.05975166,0.054800544,0.03452955
686-616042694482071552	arrived,obamacare,uninsured,obama,health	0.2913157,0.24586354,0.18948516,0.14452139,0.12881419
686-644611775644741632	health,arrived,uninsured,obamacare,obama	0.53151447,0.22633518,0.16679615,0.04313784,0.032216378
686-622152171191058433	uninsured,arrived,health,obama,obamacare	0.56515086,0.22024962,0.14814876,0.042127732,0.024323046
686-633729759248273413	obamacare,obama,health,arrived,uninsured	0.9213049,0.03107524,0.022878366,0.013438124,0.011303392
686-632936372358148096	health,arrived,obama,obamacare,uninsured	0.8019095,0.11047307,0.046854768,0.02366075,0.017101912
686-618290713466277888	obamacare,obama,health,arrived,uninsured	0.87011737,0.056638166,0.027270172,0.025752166,0.020222113
686-631654920693919744	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-626894077523460096	arrived,obama,obamacare,health,uninsured	0.91552186,0.033646286,0.01914672,0.018144617,0.013540487
686-641189476295835648	obamacare,arrived,obama,health,uninsured	0.72079945,0.21853562,0.03220525,0.016236922,0.012222761
686-648054643168182273	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-627867041261842432	arrived,obamacare,health,obama,uninsured	0.7357024,0.15622681,0.052327495,0.039073344,0.016669935
686-647415004304666624	arrived,obamacare,uninsured,health,obama	0.9621722,0.015276437,0.013319427,0.0072385925,0.0019933626
686-627130566043791360	uninsured,health,arrived,obama,obamacare	0.31310943,0.30414492,0.17218503,0.1580418,0.052518822
686-629108432235180032	obama,obamacare,health,arrived,uninsured	0.3606954,0.18113519,0.1754122,0.15290786,0.12984937
686-631263015254523904	uninsured,obamacare,arrived,health,obama	0.43992662,0.20075077,0.15633783,0.14827925,0.054705534
686-646876989517901825	obamacare,arrived,obama,health,uninsured	0.5008072,0.25630096,0.10276474,0.079487935,0.060639154
686-630104475852763136	health,obama,obamacare,arrived,uninsured	0.9157882,0.03595147,0.018660242,0.015777847,0.013822298
686-648417820372566016	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-624452237943685120	arrived,health,obama,obamacare,uninsured	0.87426883,0.04681001,0.032748364,0.024171017,0.022001786
686-639512042957852676	obamacare,health,uninsured,obama,arrived	0.48295933,0.2525002,0.13323832,0.0676848,0.06361732
686-620759104613552128	uninsured,arrived,obamacare,obama,health	0.60219264,0.28112602,0.056188963,0.03706192,0.02343046
686-648236434646667264	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-634367130646016000	obamacare,obama,health,arrived,uninsured	0.8920269,0.0470931,0.023225792,0.020321244,0.017332938
686-625836774661591040	uninsured,obamacare,obama,arrived,health	0.34652162,0.27137673,0.17806262,0.17484286,0.029196164
686-631539395707863040	obamacare,arrived,obama,health,uninsured	0.69690466,0.23446332,0.03528309,0.019876743,0.013472189
686-645517972866510848	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647873731298131968	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-646606141124800512	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-632574762569572353	obamacare,health,arrived,uninsured,obama	0.50014377,0.19566457,0.16473146,0.09576492,0.043695282
686-639558030296649728	obamacare,health,uninsured,obama,arrived	0.48295933,0.2525002,0.13323832,0.0676848,0.06361732
686-648534474796466176	obamacare,health,obama,arrived,uninsured	0.7530401,0.1614305,0.047261335,0.020466464,0.01780166
686-619164499631738884	health,obamacare,obama,arrived,uninsured	0.7348549,0.2053987,0.031232342,0.014278251,0.014235834
686-628964281485148160	health,uninsured,obama,obamacare,arrived	0.5803229,0.2708912,0.075408444,0.037866205,0.03551124
686-637262773815087104	obamacare,obama,arrived,uninsured,health	0.3548157,0.21976614,0.17206043,0.14143516,0.11192258
686-639913899492536320	uninsured,obama,obamacare,health,arrived	0.9118167,0.036407992,0.018384583,0.01784506,0.015545624
686-618611213300277248	health,arrived,obama,obamacare,uninsured	0.98128515,0.009084856,0.006198217,0.0022348876,0.0011968678
686-632697262657765377	arrived,obama,uninsured,health,obamacare	0.5053246,0.28321382,0.10645215,0.056778777,0.048230667
686-628750779764097025	obamacare,uninsured,obama,arrived,health	0.7485281,0.15196165,0.047459316,0.027796283,0.02425462
686-639875062586191874	health,uninsured,arrived,obama,obamacare	0.34817934,0.32187325,0.18711637,0.105198964,0.03763207
686-629517513538170881	arrived,obamacare,uninsured,obama,health	0.37133437,0.2517799,0.24138854,0.079600275,0.05589691
686-645699372542332929	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-632752425800216576	health,arrived,obama,obamacare,uninsured	0.8019095,0.11047307,0.046854768,0.02366075,0.017101912
686-646967398269108224	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-633317278315057152	uninsured,arrived,obama,obamacare,health	0.8370361,0.05251624,0.042855006,0.03504407,0.032548606
686-641071123078053888	uninsured,arrived,obama,health,obamacare	0.63950944,0.27062836,0.041796286,0.026418313,0.021647613
686-628321985609736192	uninsured,arrived,obamacare,obama,health	0.41291133,0.24719363,0.21117046,0.07194798,0.05677658
686-619214859234885632	health,arrived,uninsured,obamacare,obama	0.698557,0.25846073,0.041508064,8.731421E-4,6.010442E-4
686-645711778958053376	obama,health,obamacare,arrived,uninsured	0.71467966,0.23991014,0.016434144,0.015265099,0.0137109645
686-634900147894415361	obamacare,arrived,health,obama,uninsured	0.41475132,0.37787843,0.15746957,0.033415817,0.01648486
686-619201121815523328	health,arrived,obama,obamacare,uninsured	0.8115408,0.121889055,0.035510503,0.01803741,0.013022273
686-629027214802071552	health,uninsured,obama,obamacare,arrived	0.6441957,0.23134819,0.048918694,0.043291636,0.032245815
686-625840085066514437	uninsured,arrived,health,obamacare,obama	0.7377536,0.24235144,0.007876957,0.007575942,0.004442003
686-645771237290037248	arrived,health,obamacare,uninsured,obama	0.31316534,0.30675113,0.1683461,0.16392426,0.047813192
686-640897407866249216	health,arrived,obama,obamacare,uninsured	0.71876365,0.17815068,0.046472076,0.031967852,0.02464571
686-646242616435085312	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-634574388759789568	health,arrived,obama,obamacare,uninsured	0.82899487,0.109239995,0.031424943,0.01823725,0.01210291
686-636696303033024512	arrived,obama,health,uninsured,obamacare	0.83898205,0.057736278,0.048342124,0.029349962,0.025589569
686-635775332193333248	health,arrived,obama,uninsured,obamacare	0.3592341,0.30844608,0.13928661,0.10344073,0.089592494
686-614974070581538818	uninsured,obamacare,health,arrived,obama	0.32831317,0.22266032,0.15705101,0.15411898,0.13785651
686-636311845666582528	uninsured,arrived,obamacare,obama,health	0.63430357,0.22286248,0.053806175,0.053481568,0.035546213
686-633110045132124160	uninsured,health,arrived,obama,obamacare	0.699285,0.16919363,0.05851796,0.048354123,0.024649331
686-614983081783459840	arrived,uninsured,health,obama,obamacare	0.55993545,0.2728303,0.11116479,0.032269247,0.023800183
686-627739381470629889	obamacare,obama,health,arrived,uninsured	0.89236516,0.04700651,0.023129193,0.020245297,0.017253848
686-623295350674096128	obamacare,obama,health,arrived,uninsured	0.8839145,0.04898719,0.024134493,0.023808993,0.019154856
686-644336042967851008	arrived,uninsured,obama,obamacare,health	0.72736347,0.16042009,0.05062273,0.033926602,0.0276671
686-646604757587599360	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647148642940223488	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-618911055285239808	obamacare,uninsured,health,arrived,obama	0.35834074,0.22082543,0.21374996,0.12467294,0.082410924
686-644255995275911168	uninsured,obamacare,arrived,health,obama	0.474995,0.16481738,0.15705276,0.1541995,0.048935372
686-621012924551794689	health,obamacare,uninsured,arrived,obama	0.30607492,0.2524074,0.2328426,0.14699787,0.061677214
686-629640878747971584	uninsured,arrived,health,obama,obamacare	0.5456526,0.23564725,0.14839447,0.04202873,0.028276928
686-646080500214329344	health,arrived,uninsured,obamacare,obama	0.6566851,0.18838806,0.12662455,0.018961495,0.0093407985
686-646424729679609856	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-621678531513221121	uninsured,arrived,obamacare,health,obama	0.4206209,0.20545979,0.15696216,0.12326759,0.09368957
686-633418068450918400	health,obamacare,obama,arrived,uninsured	0.74045444,0.20639153,0.028683422,0.013224086,0.011246547
686-636979132069363712	uninsured,arrived,obamacare,health,obama	0.6090116,0.25515518,0.06583571,0.055432256,0.014565279
686-639152703608745984	uninsured,health,arrived,obama,obamacare	0.5253675,0.303837,0.07094165,0.05404344,0.045810428
686-638361980756193280	obamacare,obama,health,arrived,uninsured	0.89236516,0.04700651,0.023129193,0.020245297,0.017253848
686-618966471104950272	arrived,obamacare,uninsured,health,obama	0.38841873,0.25452736,0.1988427,0.081103325,0.07710786
686-615020175700721664	obamacare,health,obama,arrived,uninsured	0.41256794,0.2066264,0.19460073,0.12731606,0.058888875
686-621025744135680000	uninsured,health,obama,obamacare,arrived	0.7365442,0.1668384,0.049352657,0.025480028,0.021784693
686-629536783194324992	obama,obamacare,health,arrived,uninsured	0.78783107,0.1650782,0.018315597,0.015735874,0.013039238
686-624246301841080320	health,obama,obamacare,arrived,uninsured	0.6716043,0.14220224,0.072932996,0.06121088,0.052049592
686-641479061563420672	obamacare,arrived,obama,health,uninsured	0.69690466,0.23446332,0.03528309,0.019876743,0.013472189
686-619116435428769792	obamacare,obama,arrived,uninsured,health	0.22680514,0.21737827,0.21347912,0.18134862,0.16098885
686-617056835376254978	uninsured,obamacare,health,arrived,obama	0.27338746,0.2602942,0.16492197,0.15632796,0.1450684
686-623960391735865344	arrived,obamacare,uninsured,health,obama	0.4680894,0.27046818,0.18640406,0.04727715,0.027761199
686-639099491908501504	obamacare,health,uninsured,arrived,obama	0.49358588,0.23273896,0.11932735,0.09246955,0.06187826
686-642163947181867008	obamacare,arrived,health,uninsured,obama	0.3914416,0.3001422,0.15042189,0.11473133,0.043262962
686-635195864869310464	obama,arrived,health,uninsured,obamacare	0.6076281,0.25299513,0.05838692,0.0520949,0.028894944
686-643408505408393216	uninsured,obamacare,arrived,health,obama	0.37372017,0.2910188,0.17639,0.083938584,0.07493243
686-646061354256871428	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-644631040926027776	uninsured,arrived,obama,health,obamacare	0.51144606,0.29939318,0.07993152,0.055642452,0.053586807
686-631680509102297092	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-625342339691646978	uninsured,obama,obamacare,health,arrived	0.56336963,0.17872442,0.090044685,0.08765149,0.08020977
686-632363708665212928	obamacare,health,obama,arrived,uninsured	0.74887407,0.15216705,0.04886669,0.025345668,0.024746494
686-629783269312172033	arrived,obamacare,health,obama,uninsured	0.7465977,0.13135542,0.072967514,0.03579448,0.013284884
686-648236015346302977	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648865736127967232	health,obamacare,obama,arrived,uninsured	0.8614288,0.062485814,0.041932356,0.017800918,0.016352138
686-638916114840326144	arrived,uninsured,obama,health,obamacare	0.8714833,0.052526146,0.037095197,0.019468246,0.019427108
686-618965174846889984	arrived,obamacare,health,obama,uninsured	0.43004194,0.26988298,0.14206539,0.1195965,0.038413208
686-647583321434791937	arrived,health,uninsured,obamacare,obama	0.7624573,0.21481787,0.015626337,0.0059011537,0.0011973251
686-645517924728500224	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647329705910099968	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-617378369416622080	obamacare,health,uninsured,obama,arrived	0.6750875,0.17178929,0.100636296,0.033180438,0.019306488
686-646424089914122240	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647049501832667136	uninsured,health,obamacare,obama,arrived	0.39839467,0.29689345,0.19764213,0.06104343,0.046026308
686-646061647572922368	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-629479961187995648	health,uninsured,arrived,obamacare,obama	0.2799915,0.2565812,0.178911,0.14499596,0.13952035
686-620624524355092480	uninsured,arrived,obamacare,health,obama	0.43875283,0.20326932,0.1800858,0.099387385,0.078504674
686-627119011998879744	obamacare,health,arrived,obama,uninsured	0.41515952,0.32764316,0.10305166,0.09678347,0.057362184
686-628647057574727680	health,obamacare,uninsured,obama,arrived	0.459648,0.28982943,0.15076868,0.06184568,0.037908204
686-619654101517922304	uninsured,obama,arrived,health,obamacare	0.40742105,0.3421999,0.12577604,0.06921416,0.055388846
686-647884499775303680	arrived,uninsured,obama,health,obamacare	0.5181455,0.21955137,0.1442485,0.06363298,0.054421663
686-641592996308234241	obamacare,arrived,obama,health,uninsured	0.3682336,0.2697722,0.23645073,0.064513505,0.061029963
686-641264544518664192	obamacare,health,uninsured,obama,arrived	0.42409307,0.2479116,0.19722483,0.07099525,0.05977526
686-648869228473413632	obamacare,arrived,health,uninsured,obama	0.3791218,0.29899022,0.21325712,0.058266845,0.050364
686-639578555815489536	health,arrived,obamacare,uninsured,obama	0.97181535,0.026137685,0.0013236101,4.0595914E-4,3.173791E-4
686-644346982186766337	arrived,obamacare,health,obama,uninsured	0.3518299,0.30198303,0.19839829,0.08694744,0.06084135
686-629100655991373828	obama,arrived,uninsured,obamacare,health	0.6033119,0.22025773,0.11678201,0.04165528,0.017993083
686-636653214595723265	obamacare,health,uninsured,arrived,obama	0.32328647,0.20879543,0.20512906,0.20003055,0.0627585
686-647511088905482240	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-634783720369733633	uninsured,health,arrived,obama,obamacare	0.6718215,0.12044091,0.11151575,0.049142975,0.04707887
686-624242062829965312	arrived,health,obama,uninsured,obamacare	0.4473718,0.39645934,0.065246426,0.04800291,0.042919505
686-646604846804504576	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-646433858846461952	obama,health,uninsured,arrived,obamacare	0.39562187,0.29333103,0.16495958,0.08410062,0.061986905
686-617916719634382848	obama,obamacare,health,arrived,uninsured	0.5608512,0.16893347,0.16330823,0.06215291,0.044754162
686-626984369920454656	health,obama,obamacare,arrived,uninsured	0.3361186,0.24586129,0.15508556,0.1344692,0.12846534
686-615188977469911040	obamacare,arrived,obama,health,uninsured	0.4078786,0.36930203,0.09002738,0.078232065,0.05455991
686-634548757657317376	arrived,uninsured,health,obama,obamacare	0.3655292,0.27507913,0.25549182,0.076316,0.027583811
686-643182375418114048	obama,uninsured,obamacare,health,arrived	0.7207952,0.18827343,0.036383104,0.030563151,0.02398508
686-617717552068861952	obamacare,arrived,uninsured,obama,health	0.46383783,0.21351902,0.15923922,0.093305975,0.070097946
686-635188683994304512	uninsured,arrived,obama,health,obamacare	0.9081763,0.031053852,0.026603237,0.018703368,0.015463238
686-628039460555476992	obamacare,arrived,obama,health,uninsured	0.5043638,0.3917422,0.04796247,0.03327791,0.02265362
686-619230374107971584	health,arrived,obama,obamacare,uninsured	0.7300776,0.15102792,0.053064313,0.04261857,0.023211557
686-635600449899335680	arrived,uninsured,obamacare,obama,health	0.35492337,0.3149898,0.15917456,0.089810275,0.081102006
686-635668271543529472	arrived,health,uninsured,obamacare,obama	0.733684,0.11825449,0.1056801,0.028372254,0.014009152
686-623842456467943424	arrived,health,obamacare,uninsured,obama	0.56413543,0.27824795,0.119967885,0.03299691,0.0046517937
686-626459240207622144	obamacare,arrived,obama,uninsured,health	0.3116106,0.22045836,0.19481573,0.16364488,0.10947041
686-646812174489247744	uninsured,health,obama,obamacare,arrived	0.6057032,0.3005469,0.04763251,0.024271466,0.021845914
686-627905389028184064	arrived,health,obama,obamacare,uninsured	0.80367047,0.11973462,0.0408432,0.020790963,0.014960719
686-628351940074692608	obamacare,arrived,health,obama,uninsured	0.5078494,0.26638865,0.140755,0.053216707,0.031790227
686-642357069526339586	obamacare,uninsured,obama,health,arrived	0.5629445,0.17584585,0.0995693,0.09764885,0.06399155
686-630793531460820992	health,obama,obamacare,arrived,uninsured	0.9157882,0.03595147,0.018660242,0.015777847,0.013822298
686-626544684555333632	obamacare,arrived,health,obama,uninsured	0.6029815,0.17529926,0.15237312,0.036543652,0.032802437
686-621517974713823232	uninsured,arrived,health,obama,obamacare	0.6356413,0.1967471,0.117877916,0.032738116,0.016995605
686-625833076132724738	uninsured,arrived,obamacare,obama,health	0.61311895,0.26920903,0.055075377,0.03821921,0.024377408
686-631611053177196544	obama,uninsured,health,arrived,obamacare	0.45734823,0.1694234,0.15414682,0.14528981,0.07379172
686-623976207369920513	arrived,obamacare,health,obama,uninsured	0.592477,0.17070986,0.1697577,0.04866514,0.018390302
686-628911983270629376	uninsured,obama,obamacare,health,arrived	0.44542405,0.19031045,0.12558742,0.1242687,0.11440938
686-640411565674602496	health,obamacare,uninsured,obama,arrived	0.47428048,0.26753476,0.18838932,0.043635026,0.026160425
686-642311461738446848	obamacare,arrived,obama,health,uninsured	0.6966267,0.19830577,0.05585001,0.028536454,0.020681033
686-626507883069444096	uninsured,obamacare,obama,health,arrived	0.7672902,0.14940523,0.042484984,0.021519387,0.019300237
686-645067309887844356	obama,health,obamacare,arrived,uninsured	0.47438294,0.39526784,0.048113596,0.04504374,0.037191864
686-615980537723924480	health,uninsured,obamacare,obama,arrived	0.3358571,0.33121076,0.23299609,0.054581568,0.045354463
686-637079596706451456	uninsured,health,obamacare,arrived,obama	0.25086886,0.24707453,0.23663184,0.19660094,0.06882384
686-630157795615072256	uninsured,health,arrived,obama,obamacare	0.4877984,0.30240107,0.097069055,0.06925016,0.043481316
686-629480510473961473	uninsured,obamacare,arrived,obama,health	0.5477204,0.3102762,0.0790942,0.036594965,0.026314221
686-636928367049084931	obamacare,arrived,obama,health,uninsured	0.78339845,0.1402075,0.040667925,0.020346457,0.0153796645
686-622250762697990144	arrived,uninsured,obama,obamacare,health	0.5085718,0.40614527,0.04218891,0.021767626,0.021326376
686-643247652788944896	uninsured,arrived,obama,obamacare,health	0.67632,0.19410418,0.05744189,0.03717512,0.034958787
686-631628854579347456	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-632746377693413376	uninsured,arrived,obamacare,obama,health	0.5522126,0.26513407,0.08516645,0.056864563,0.040622324
686-615341416802328577	obamacare,obama,arrived,health,uninsured	0.40196157,0.28255427,0.15597722,0.102275774,0.057231173
686-625363788754194432	uninsured,arrived,obamacare,obama,health	0.43154302,0.2647949,0.15909246,0.07257987,0.07198976
686-626739716793212929	obamacare,obama,arrived,health,uninsured	0.7829506,0.08814041,0.049653992,0.04593882,0.033316217
686-628358269648662528	uninsured,arrived,obama,obamacare,health	0.7586513,0.089968294,0.07365543,0.03907194,0.03865302
686-633100217798098944	health,arrived,uninsured,obama,obamacare	0.6532755,0.1469939,0.136924,0.041328598,0.021478005
686-641648092304023553	uninsured,arrived,obamacare,obama,health	0.6433698,0.22011746,0.05669725,0.049681127,0.03013436
686-633747104863678464	uninsured,health,arrived,obama,obamacare	0.5264405,0.3170283,0.10596154,0.03012268,0.020447
686-646786749989978112	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-621489651635720192	health,uninsured,obamacare,obama,arrived	0.35619345,0.31430003,0.22059089,0.05679716,0.052118473
686-636954419641380864	arrived,health,obamacare,obama,uninsured	0.6955998,0.13344036,0.11200421,0.039363988,0.019591639
686-615213684512714752	obamacare,arrived,uninsured,health,obama	0.41581234,0.3338192,0.21178532,0.030647567,0.007935591
686-646803412793880576	uninsured,health,arrived,obamacare,obama	0.5146171,0.2521552,0.12465329,0.05473913,0.053835295
686-625271927788015616	arrived,health,uninsured,obamacare,obama	0.33455354,0.21886925,0.21433638,0.12284418,0.10939663
686-625835045190680576	obamacare,obama,health,arrived,uninsured	0.88870585,0.048027918,0.023264015,0.022381056,0.017621147
686-648466894983335937	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-641011729799839744	obamacare,arrived,obama,health,uninsured	0.69690466,0.23446332,0.03528309,0.019876743,0.013472189
686-632532795181690880	obamacare,health,arrived,uninsured,obama	0.50014377,0.19566457,0.16473146,0.09576492,0.043695282
686-645354537038032897	arrived,obamacare,uninsured,health,obama	0.594772,0.23942511,0.08345683,0.04490391,0.037442148
686-648592783935164416	obamacare,obama,health,arrived,uninsured	0.89407563,0.046536185,0.022717727,0.019822165,0.016848272
686-637257874494767104	uninsured,health,obamacare,arrived,obama	0.32142377,0.25167346,0.17416272,0.159866,0.092874035
686-619181811306921984	uninsured,obamacare,arrived,obama,health	0.48643556,0.2772315,0.17248367,0.03328883,0.030560445
686-647329772733796352	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-642175604712828928	uninsured,obama,obamacare,health,arrived	0.9118167,0.036407992,0.018384583,0.01784506,0.015545624
686-647894957617999873	health,arrived,uninsured,obama,obamacare	0.284547,0.2591967,0.23279071,0.11325134,0.11021427
686-620396769076064256	arrived,uninsured,obama,obamacare,health	0.83472383,0.06057453,0.04955282,0.029832745,0.025316076
686-625755985278291968	health,obama,arrived,obamacare,uninsured	0.77763397,0.11712339,0.064953364,0.026698168,0.013591115
686-626520582352412672	arrived,obama,obamacare,health,uninsured	0.85116434,0.05680359,0.04245345,0.028441656,0.02113693
686-642325782409400320	health,arrived,obama,obamacare,uninsured	0.4761639,0.301432,0.08960591,0.07184864,0.060949553
686-617014436654526464	obamacare,arrived,uninsured,health,obama	0.4869721,0.19042756,0.15559706,0.12906083,0.03794246
686-629787109285609472	arrived,obamacare,health,obama,uninsured	0.7465977,0.13135542,0.072967514,0.03579448,0.013284884
686-644389942399860736	arrived,health,obamacare,obama,uninsured	0.26548213,0.2331636,0.20687136,0.15286843,0.14161448
686-619151363050606592	obamacare,health,obama,uninsured,arrived	0.6957316,0.16845603,0.05574086,0.040116597,0.039954916
686-631512613546008577	obama,obamacare,health,arrived,uninsured	0.35380295,0.1768219,0.16959916,0.16056173,0.13921428
686-627468684823367681	arrived,uninsured,obamacare,obama,health	0.9863971,0.009261614,0.0018258913,0.0014418921,0.0010734963
686-623593160292200448	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-625813935917277184	uninsured,arrived,obama,obamacare,health	0.3404745,0.29383323,0.17204902,0.16797222,0.025671063
686-618944297212088321	obamacare,arrived,health,obama,uninsured	0.9989817,2.825973E-4,2.503935E-4,2.5008537E-4,2.3523046E-4
686-645965206305304576	health,arrived,obamacare,uninsured,obama	0.5252307,0.2691052,0.092520334,0.07199368,0.041150086
686-647055186762952704	uninsured,arrived,health,obama,obamacare	0.6356413,0.1967471,0.117877916,0.032738116,0.016995605
686-620336926248189952	arrived,obama,obamacare,health,uninsured	0.92405427,0.032053743,0.016301978,0.015804315,0.011785715
686-641999979972706304	obamacare,health,obama,uninsured,arrived	0.3197833,0.30980256,0.16298448,0.15336396,0.05406572
686-631251926470934528	obamacare,uninsured,health,obama,arrived	0.4165337,0.34409094,0.16894141,0.04018719,0.030246746
686-639779745983561728	uninsured,health,arrived,obamacare,obama	0.60102254,0.15193143,0.14550401,0.05098078,0.05056124
686-648280862442680320	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-634097959458570240	obamacare,obama,uninsured,health,arrived	0.8525077,0.055297542,0.04125013,0.02719317,0.023751454
686-622516843220176896	arrived,health,uninsured,obamacare,obama	0.5364933,0.32796007,0.07999085,0.051483497,0.004072283
686-638183214633385984	obama,obamacare,health,arrived,uninsured	0.95030516,0.014381347,0.013459731,0.011762289,0.010091456
686-618750919811964928	health,uninsured,arrived,obama,obamacare	0.41130608,0.2741447,0.18620116,0.0712309,0.05711713
686-649065809956880384	health,uninsured,arrived,obama,obamacare	0.42938352,0.30674905,0.10848836,0.09826611,0.057112977
686-646448586989957120	health,uninsured,obamacare,arrived,obama	0.3657157,0.27611035,0.1984079,0.10670605,0.05306001
686-636200273166209025	obamacare,obama,uninsured,health,arrived	0.5418476,0.22733685,0.08380033,0.075600564,0.071414694
686-647881935918886912	uninsured,obama,obamacare,health,arrived	0.9112844,0.03656067,0.018527273,0.01794408,0.015683576
686-615991655502516224	arrived,obamacare,health,obama,uninsured	0.6105201,0.23940426,0.100456014,0.034499574,0.015119997
686-634458338508406784	health,obamacare,arrived,uninsured,obama	0.3656135,0.21601598,0.1943158,0.16505045,0.05900428
686-622261491102658560	arrived,uninsured,obama,obamacare,health	0.5677385,0.35800508,0.036719006,0.019098539,0.018438913
686-646061379221327873	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-629413083908194304	arrived,obamacare,health,obama,uninsured	0.6017885,0.23564142,0.06420162,0.062799886,0.035568535
686-629436621612449792	uninsured,health,arrived,obamacare,obama	0.28613538,0.26186195,0.22820312,0.15445311,0.06934644
686-634147402354569216	obamacare,health,uninsured,obama,arrived	0.6773949,0.14368449,0.094613835,0.052488707,0.031818043
686-635792371494555648	health,arrived,obama,obamacare,uninsured	0.733248,0.16730988,0.050700895,0.02727436,0.02146685
686-614972851309969408	obamacare,obama,health,arrived,uninsured	0.77440727,0.12283841,0.043135446,0.030995525,0.028623363
686-642423914736390144	arrived,health,obama,obamacare,uninsured	0.4284726,0.3042981,0.1018273,0.087654956,0.077747025
686-630822884211077120	uninsured,health,obama,obamacare,arrived	0.7205953,0.21726078,0.032160193,0.016221268,0.013762492
686-634082162036359168	obamacare,obama,health,arrived,uninsured	0.9023902,0.040578846,0.022770733,0.018789351,0.015470874
686-631954887404728320	obamacare,arrived,obama,uninsured,health	0.7610672,0.17816263,0.028348085,0.01810817,0.014313906
686-630727289265909760	obamacare,health,arrived,obama,uninsured	0.514674,0.22660641,0.17368211,0.07228444,0.0127530405
686-627154071322034176	health,obamacare,uninsured,arrived,obama	0.76724076,0.07752735,0.07461038,0.04174748,0.03887405
686-638059998237622273	obama,obamacare,health,uninsured,arrived	0.25179774,0.23869964,0.21746382,0.20658204,0.08545675
686-648236409560657920	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-646061379376431104	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-645351134098403328	obamacare,arrived,uninsured,health,obama	0.64592695,0.1396807,0.11356925,0.055446498,0.045376617
686-646793298460323846	arrived,obama,obamacare,health,uninsured	0.41100422,0.32076126,0.09992272,0.08970156,0.078610234
686-646787494365671424	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-621101218702753792	arrived,obamacare,obama,health,uninsured	0.75129735,0.13776256,0.057186306,0.030357786,0.023395997
686-616012777061224448	arrived,obama,obamacare,health,uninsured	0.8821595,0.04757934,0.026476236,0.024843633,0.018941326
686-646605025901346816	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-634015125859639297	health,uninsured,obama,arrived,obamacare	0.5121102,0.36370638,0.052726842,0.040288094,0.03116852
686-628073930570514433	uninsured,obama,arrived,obamacare,health	0.463776,0.20237406,0.13217819,0.10893398,0.0927378
686-647329899892510721	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-642367170031288320	obamacare,obama,health,uninsured,arrived	0.7859425,0.14971195,0.024369784,0.022088489,0.017887311
686-646605041567072256	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-615318005854142465	health,uninsured,arrived,obamacare,obama	0.575547,0.15533328,0.14668125,0.07965567,0.042782817
686-624638663989682176	arrived,uninsured,obama,obamacare,health	0.79846406,0.12703162,0.03615666,0.020442232,0.017905429
686-625464337998708736	uninsured,health,obama,obamacare,arrived	0.7519976,0.14594178,0.044135235,0.029291142,0.028634226
686-619131687834882049	obamacare,arrived,uninsured,obama,health	0.67915386,0.11043313,0.105660744,0.05683744,0.047914837
686-645415779295494144	health,uninsured,arrived,obama,obamacare	0.35968223,0.34526315,0.122809425,0.10221709,0.070028104
686-623326181350215680	arrived,health,obama,uninsured,obamacare	0.41369006,0.20654315,0.1647638,0.111713745,0.103289254
686-631456611681312768	health,uninsured,obama,obamacare,arrived	0.69215405,0.2379872,0.03582347,0.018545458,0.015489828
686-632283808998535168	obamacare,obama,health,arrived,uninsured	0.92690516,0.031284127,0.015607268,0.01435786,0.011845618
686-637071776682479616	obama,obamacare,health,arrived,uninsured	0.8643108,0.045039598,0.037850346,0.027724389,0.025074854
686-646424229097918465	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-649073104719757312	obamacare,obama,health,arrived,uninsured	0.8746332,0.0551316,0.026876997,0.023441536,0.01991668
686-631723829245575169	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-636992097954959360	arrived,obama,obamacare,health,uninsured	0.8339731,0.06967041,0.035805285,0.034628328,0.025922863
686-628125559306883072	obamacare,uninsured,obama,arrived,health	0.42233965,0.22316255,0.21061109,0.081756756,0.062129952
686-643197451030020098	health,obama,arrived,obamacare,uninsured	0.6827273,0.09274988,0.08918176,0.06975249,0.06558859
686-629033152023916544	health,obamacare,obama,arrived,uninsured	0.6941383,0.19492795,0.05568077,0.034695715,0.020557255
686-631898212958400512	uninsured,obama,health,obamacare,arrived	0.764681,0.08856265,0.05520125,0.046841208,0.044713896
686-625877563215380481	health,uninsured,arrived,obama,obamacare	0.40095192,0.22565813,0.18899727,0.11510173,0.06929094
686-633413279243739136	arrived,health,uninsured,obama,obamacare	0.45284417,0.19048999,0.15081117,0.12628712,0.079567574
686-629146059839700992	health,uninsured,obama,obamacare,arrived	0.6441957,0.23134819,0.048918694,0.043291636,0.032245815
686-622398077278756864	arrived,health,obama,obamacare,uninsured	0.72401375,0.19461642,0.03105241,0.025749255,0.024568176
686-638185554669117440	obama,obamacare,health,arrived,uninsured	0.95030516,0.014381347,0.013459731,0.011762289,0.010091456
686-649007109795876865	health,obamacare,obama,arrived,uninsured	0.8614288,0.062485814,0.041932356,0.017800918,0.016352138
686-646967761134948352	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-649023036889296896	uninsured,obamacare,health,obama,arrived	0.42742443,0.24062446,0.161131,0.10069575,0.070124365
686-623300548859555840	obamacare,obama,health,arrived,uninsured	0.87011737,0.056638166,0.027270172,0.025752166,0.020222113
686-638087482849009664	arrived,uninsured,health,obamacare,obama	0.49470583,0.27337784,0.136948,0.077474624,0.017493714
686-620269265099296768	uninsured,health,arrived,obama,obamacare	0.43598455,0.3205987,0.16504425,0.048649367,0.029723147
686-634416556747976704	uninsured,arrived,obama,health,obamacare	0.4191944,0.34315884,0.115419485,0.10477292,0.017454345
686-631820991518236672	uninsured,health,obamacare,obama,arrived	0.6940494,0.14205895,0.10851052,0.0334654,0.021915728
686-647148691011334144	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-639468303677702144	arrived,uninsured,obamacare,obama,health	0.4818508,0.19168071,0.18607126,0.12260497,0.01779223
686-648417213171539968	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-645879998780280832	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-615965903247802368	obama,health,obamacare,arrived,uninsured	0.4099343,0.3524145,0.08600656,0.07933583,0.07230879
686-642004635520253952	obamacare,arrived,obama,health,uninsured	0.69690466,0.23446332,0.03528309,0.019876743,0.013472189
686-618757686784491522	uninsured,arrived,obamacare,obama,health	0.3160778,0.25643167,0.1915858,0.16508563,0.070819095
686-625341766242205696	uninsured,health,obamacare,obama,arrived	0.39129427,0.38120398,0.08167548,0.07894338,0.06688287
686-638817156990304258	obamacare,obama,arrived,health,uninsured	0.9956564,0.00155606,9.5753896E-4,9.1672345E-4,9.1330864E-4
686-629644561560657921	uninsured,arrived,health,obamacare,obama	0.63365877,0.12523344,0.0868092,0.082871355,0.07142724
686-649083836236632064	obamacare,obama,health,arrived,uninsured	0.8841837,0.046770867,0.025563652,0.023122106,0.02035968
686-638749624056938496	obamacare,arrived,health,uninsured,obama	0.6224292,0.27271852,0.04659661,0.02943818,0.028817492
686-632982839424716800	arrived,obama,obamacare,health,uninsured	0.70935434,0.19837028,0.042689305,0.02780184,0.021784265
686-625027431343099904	arrived,uninsured,obamacare,obama,health	0.31931895,0.24544966,0.20409869,0.14610872,0.085023984
686-636334026702389248	health,uninsured,obama,obamacare,arrived	0.69856036,0.19047081,0.05688219,0.029171336,0.02491528
686-645336412603088896	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-621785093577818112	uninsured,obamacare,arrived,obama,health	0.6824538,0.177619,0.05342388,0.053360052,0.03314326
686-641096656524587008	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-614995379403132928	arrived,obamacare,uninsured,obama,health	0.663722,0.1350788,0.12423741,0.04381807,0.033143703
686-632276056972611584	health,uninsured,obamacare,arrived,obama	0.46900904,0.24556668,0.108385116,0.10626278,0.07077637
686-633044382464110592	obama,obamacare,health,arrived,uninsured	0.3444216,0.22958545,0.16517833,0.15710537,0.10370924
686-635685141780656128	uninsured,arrived,obamacare,health,obama	0.360739,0.20621133,0.19717196,0.17482746,0.06105026
686-645699551387512832	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-649023735358341120	obamacare,obama,health,arrived,uninsured	0.8740693,0.049500074,0.028038876,0.025612757,0.02277902
686-621136622101270528	uninsured,health,arrived,obamacare,obama	0.447223,0.24959563,0.14410134,0.12520823,0.033871796
686-626712632997888000	health,arrived,obama,obamacare,uninsured	0.5397019,0.24047676,0.09984578,0.061989248,0.057986315
686-638869413115133952	health,uninsured,obamacare,obama,arrived	0.33553842,0.3229722,0.27735043,0.042835135,0.021303803
686-640954016927625216	arrived,obamacare,uninsured,obama,health	0.5254112,0.19970313,0.1766557,0.06020208,0.038027916
686-626174391466921988	health,uninsured,obama,arrived,obamacare	0.8535941,0.08713433,0.025459506,0.020392846,0.013419171
686-647873529002749952	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-627625106441936896	health,arrived,obamacare,obama,uninsured	0.5967822,0.24349831,0.1018929,0.04185528,0.0159713
686-646787477785591812	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-636911954922196992	obamacare,health,uninsured,arrived,obama	0.39441627,0.31528273,0.14079839,0.09850477,0.05099783
686-625848205817827328	arrived,health,obama,obamacare,uninsured	0.59503627,0.1918496,0.10233379,0.071287625,0.039492708
686-639518061108850688	obamacare,health,uninsured,obama,arrived	0.48295933,0.2525002,0.13323832,0.0676848,0.06361732
686-645517678543695872	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648054858189156352	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648417294821883904	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-625476775473233923	health,obama,arrived,obamacare,uninsured	0.3889863,0.27195606,0.2181302,0.07350475,0.047422703
686-621140150748213248	obamacare,health,obama,arrived,uninsured	0.6581979,0.21051812,0.06820215,0.037836462,0.02524537
686-645336511991296000	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-626779334716616705	arrived,obama,obamacare,health,uninsured	0.9296841,0.028702317,0.015847411,0.014898866,0.01086728
686-620659325908987906	health,obama,obamacare,arrived,uninsured	0.41608,0.2224495,0.20184806,0.12641127,0.033211187
686-639152108835500032	health,uninsured,obamacare,obama,arrived	0.4747452,0.20763634,0.18965119,0.073355556,0.054611698
686-617839758119571456	health,arrived,obama,obamacare,uninsured	0.8115408,0.121889055,0.035510503,0.01803741,0.013022273
686-619175636230221826	health,arrived,obama,obamacare,uninsured	0.8115408,0.121889055,0.035510503,0.01803741,0.013022273
686-620284492096385025	uninsured,arrived,obamacare,health,obama	0.56828964,0.15485013,0.14264928,0.08520677,0.049004205
686-645336369548644353	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-637345022665355264	arrived,obama,health,obamacare,uninsured	0.8488858,0.13911791,0.010986765,5.3718255E-4,4.7236437E-4
686-639912646406504448	uninsured,obama,obamacare,health,arrived	0.9118167,0.036407992,0.018384583,0.01784506,0.015545624
686-627956156896415744	obama,obamacare,health,arrived,uninsured	0.80845547,0.14327067,0.018212743,0.01646754,0.0135935685
686-636652059920605185	uninsured,health,obamacare,obama,arrived	0.39065626,0.26799244,0.20711014,0.07661272,0.057628453
686-620753075339276288	health,obamacare,arrived,obama,uninsured	0.64220464,0.15351602,0.14256817,0.041979883,0.01973125
686-623314524137984000	obamacare,arrived,obama,health,uninsured	0.65176076,0.26871508,0.041365363,0.01994015,0.018218625
686-617392528522915841	arrived,health,obama,obamacare,uninsured	0.40337348,0.25131395,0.14785944,0.14039356,0.05705957
686-629476498781552641	obamacare,uninsured,obama,health,arrived	0.76781154,0.14024849,0.044639748,0.024193643,0.023106607
686-631123069113868289	health,arrived,obama,obamacare,uninsured	0.49561495,0.33910438,0.07650684,0.053733703,0.035040107
686-632597849914613760	arrived,uninsured,obama,health,obamacare	0.52413064,0.24960987,0.09532435,0.06592124,0.06501392
686-615033943973343232	obamacare,arrived,uninsured,health,obama	0.31590015,0.26089117,0.20734227,0.1839936,0.031872816
686-615192518217457664	obamacare,arrived,obama,health,uninsured	0.75183016,0.1897809,0.031355824,0.015470932,0.011562187
686-635726171456569344	obamacare,arrived,obama,health,uninsured	0.74860746,0.15368642,0.033693153,0.032137807,0.031875137
686-648880505555824640	uninsured,arrived,obama,health,obamacare	0.67793244,0.10932037,0.0875382,0.07042175,0.054787267
686-634862319349035009	arrived,uninsured,obama,health,obamacare	0.4690799,0.37253675,0.122399285,0.01903873,0.016945342
686-615145246062718976	uninsured,health,arrived,obamacare,obama	0.46545467,0.19886515,0.15214868,0.145495,0.038036484
686-630857282763534337	obamacare,arrived,uninsured,health,obama	0.5633096,0.1758994,0.1016947,0.0996895,0.059406765
686-628838407771287555	obamacare,health,obama,uninsured,arrived	0.4553732,0.34406224,0.0707093,0.06778128,0.06207399
686-629519405320417280	uninsured,obamacare,arrived,obama,health	0.5477204,0.3102762,0.0790942,0.036594965,0.026314221
686-620025241105006592	uninsured,obamacare,health,arrived,obama	0.38589105,0.30175212,0.11402364,0.107524335,0.090808846
686-625791591161155584	obamacare,arrived,uninsured,obama,health	0.42134053,0.31468147,0.16601422,0.053876806,0.044086993
686-627302049177153536	obamacare,arrived,uninsured,health,obama	0.38713053,0.26675135,0.16645701,0.15449353,0.025167586
686-643351989691224064	uninsured,obama,obamacare,health,arrived	0.9112844,0.03656067,0.018527273,0.01794408,0.015683576
686-627980032401498112	obamacare,uninsured,obama,health,arrived	0.331643,0.2815853,0.20918666,0.16346747,0.014117586
686-632356356368957441	health,arrived,obama,obamacare,uninsured	0.8019095,0.11047307,0.046854768,0.02366075,0.017101912
686-636639543764979712	obamacare,arrived,obama,health,uninsured	0.797687,0.1531264,0.026042908,0.013505352,0.009638324
686-644851206339342338	arrived,obamacare,uninsured,obama,health	0.6327737,0.17263569,0.08791032,0.058762405,0.047917873
686-618538955177246720	uninsured,arrived,health,obamacare,obama	0.40315613,0.253127,0.15935233,0.1194957,0.06486882
686-636925060289171456	health,obama,obamacare,arrived,uninsured	0.8612004,0.057834007,0.03039828,0.026923018,0.023644283
686-647511112607494145	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-624616006623739904	health,uninsured,arrived,obama,obamacare	0.39095327,0.33321244,0.1698403,0.06144524,0.04454873
686-621404507524612097	uninsured,health,obama,arrived,obamacare	0.4443366,0.27038214,0.10786695,0.10173829,0.075676024
686-648062204768481280	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-632302670485680128	arrived,obamacare,obama,health,uninsured	0.46446615,0.2601,0.13023728,0.09107336,0.054123215
686-631632355829116928	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-645091293899550721	health,uninsured,obama,arrived,obamacare	0.60522705,0.3221456,0.032695748,0.020895608,0.019035958
686-648140749360357377	arrived,health,obama,obamacare,uninsured	0.802798,0.1300364,0.03587624,0.018179437,0.013109945
686-641097194351796224	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-641585597400793088	health,uninsured,obama,obamacare,arrived	0.67132246,0.2039262,0.058149133,0.03652012,0.030082092
686-632028171441950720	obama,arrived,obamacare,health,uninsured	0.54877114,0.26587293,0.15104103,0.019979231,0.014335632
686-642999925089898496	uninsured,health,obamacare,arrived,obama	0.367972,0.20856185,0.17181519,0.16627738,0.08537358
686-620423890158882817	obamacare,arrived,obama,health,uninsured	0.79881555,0.13123138,0.035807565,0.017800625,0.016344892
686-628949107814572032	health,uninsured,obama,obamacare,arrived	0.5778049,0.27394384,0.057854425,0.05190245,0.03849439
686-644907547246235648	uninsured,health,obama,obamacare,arrived	0.32150006,0.28077137,0.22517397,0.12171994,0.050834656
686-638783788487716864	uninsured,obama,obamacare,health,arrived	0.8869811,0.04471724,0.024092946,0.02324872,0.02095997
686-628677242428637184	arrived,obamacare,health,obama,uninsured	0.32584485,0.3086118,0.22919975,0.07613191,0.060211685
686-643255178645274624	obamacare,arrived,uninsured,health,obama	0.42278787,0.19394176,0.14597233,0.12483282,0.112465225
686-637990143014531072	uninsured,arrived,health,obama,obamacare	0.35590988,0.29441068,0.17085479,0.10565621,0.07316847
686-623515795658686464	obama,obamacare,health,arrived,uninsured	0.8643108,0.045039598,0.037850346,0.027724389,0.025074854
686-635075307293249536	uninsured,health,obamacare,arrived,obama	0.5392791,0.2447332,0.10966107,0.06497842,0.041348174
686-646605474800889856	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-632582628676345856	health,uninsured,arrived,obamacare,obama	0.27483892,0.25425258,0.20932633,0.18533699,0.076245144
686-643901693269250048	health,obamacare,uninsured,obama,arrived	0.47161835,0.3689726,0.07180956,0.04938502,0.03821445
686-644346641768652800	arrived,health,uninsured,obama,obamacare	0.77569276,0.098181754,0.080442,0.026562838,0.019120652
686-620247082901897216	obamacare,health,uninsured,arrived,obama	0.5749043,0.2515999,0.077304475,0.05780204,0.038389254
686-630825508155035648	uninsured,health,obama,obamacare,arrived	0.7205953,0.21726078,0.032160193,0.016221268,0.013762492
686-639301354586947588	uninsured,health,arrived,obamacare,obama	0.31638238,0.2281725,0.2082505,0.18367155,0.063523084
686-626727696198975488	obamacare,health,arrived,obama,uninsured	0.4893338,0.24059916,0.21870002,0.036791198,0.014575818
686-648074243616342016	health,obamacare,uninsured,arrived,obama	0.46913487,0.20301655,0.16066033,0.10099814,0.06619013
686-630404467746172928	health,uninsured,arrived,obama,obamacare	0.4614814,0.23090921,0.22360541,0.047599744,0.036404252
686-646424054719770624	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-646514466599911425	health,obamacare,uninsured,arrived,obama	0.39628664,0.29345152,0.20870633,0.052314583,0.04924094
686-648708426059661312	obamacare,health,uninsured,arrived,obama	0.5844358,0.13466072,0.1298273,0.11483516,0.036240965
686-646819067014328320	uninsured,health,obama,obamacare,arrived	0.6057032,0.3005469,0.04763251,0.024271466,0.021845914
686-639791516999897088	arrived,obamacare,health,uninsured,obama	0.3362478,0.26232502,0.17350934,0.16983743,0.058080398
686-639807591183478784	arrived,obamacare,health,uninsured,obama	0.38047558,0.32926628,0.19302128,0.058543056,0.038693786
686-646061770101035008	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-630736783513358336	health,uninsured,obama,obamacare,arrived	0.48856354,0.3196921,0.09038716,0.05116142,0.05019577
686-647476401071755264	uninsured,health,obamacare,obama,arrived	0.45897806,0.20071974,0.14600958,0.10487389,0.08941872
686-620660362883538944	health,obamacare,uninsured,arrived,obama	0.30628243,0.3009473,0.17567572,0.12718435,0.08991018
686-630828478150148097	uninsured,health,obama,obamacare,arrived	0.7205953,0.21726078,0.032160193,0.016221268,0.013762492
686-638790786440646658	arrived,uninsured,health,obama,obamacare	0.7630865,0.09114733,0.051708043,0.051376104,0.042682026
686-622235592919650304	obamacare,uninsured,arrived,health,obama	0.38349727,0.2270818,0.19279337,0.12831123,0.068316326
686-615192937618485248	obamacare,health,uninsured,obama,arrived	0.52185684,0.16589285,0.15448575,0.12779646,0.029968064
686-631096481202634752	arrived,uninsured,health,obama,obamacare	0.32576644,0.3110217,0.13871758,0.11263895,0.11185534
686-641748340623966208	uninsured,obama,health,obamacare,arrived	0.31025755,0.19368467,0.1843352,0.1625401,0.14918247
686-648236402124046336	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647470736140013568	obamacare,uninsured,arrived,obama,health	0.61913466,0.18273878,0.09594931,0.059527263,0.042650007
686-621478003436990465	arrived,uninsured,obamacare,obama,health	0.5532616,0.1959143,0.13545081,0.060259502,0.055113807
686-623305209096204289	uninsured,arrived,obamacare,obama,health	0.6153799,0.21900007,0.11126388,0.03325101,0.021105139
686-646604745491148800	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-636001199259422720	obamacare,arrived,health,uninsured,obama	0.27100638,0.25896046,0.2083678,0.14042075,0.12124464
686-644719776636477440	arrived,health,uninsured,obama,obamacare	0.77569276,0.098181754,0.080442,0.026562838,0.019120652
686-638453612104912896	uninsured,arrived,obama,health,obamacare	0.5839017,0.32898778,0.042119104,0.023072952,0.021918498
686-639766007737909248	uninsured,health,arrived,obamacare,obama	0.4970835,0.23125407,0.1472017,0.06669099,0.05776977
686-627520760819662848	uninsured,arrived,health,obama,obamacare	0.60996425,0.21181084,0.123307176,0.033216625,0.0217011
686-627503951764566016	obamacare,obama,arrived,health,uninsured	0.9956564,0.00155606,9.5753896E-4,9.1672345E-4,9.1330864E-4
686-621649800417681408	obama,arrived,uninsured,obamacare,health	0.77585006,0.11100466,0.10454174,0.0064334297,0.0021701094
686-616426328313610240	arrived,obamacare,health,obama,uninsured	0.5345157,0.28221694,0.124358006,0.03716429,0.02174509
686-643647560947769344	obamacare,health,obama,arrived,uninsured	0.6914258,0.21201111,0.047362167,0.03090284,0.018298095
686-645036353877618688	uninsured,health,arrived,obamacare,obama	0.7874047,0.14599438,0.0625687,0.0020340243,0.0019981654
686-615256013642403840	uninsured,obamacare,arrived,obama,health	0.37806264,0.28541663,0.26710358,0.04266858,0.026748577
686-626483657969000448	obama,obamacare,health,arrived,uninsured	0.3606954,0.18113519,0.1754122,0.15290786,0.12984937
686-638543707277520897	arrived,obama,obamacare,health,uninsured	0.7096065,0.11691157,0.06641667,0.062252473,0.04481277
686-644900445891239936	arrived,uninsured,obamacare,obama,health	0.6520019,0.13837846,0.137671,0.04148154,0.030467082
686-624404071169028096	arrived,obamacare,obama,health,uninsured	0.673724,0.17162071,0.07723523,0.04348418,0.033935852
686-631826462253969408	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-635189904247496704	obamacare,uninsured,health,obama,arrived	0.3348334,0.22264087,0.20644835,0.16141507,0.07466231
686-617113656707432448	arrived,health,obamacare,obama,uninsured	0.529299,0.23454033,0.09370845,0.090784766,0.051667448
686-633744948345442304	obamacare,obama,health,arrived,uninsured	0.87108034,0.0552449,0.027441569,0.025434244,0.020798966
686-621688263720439810	health,uninsured,arrived,obama,obamacare	0.75152284,0.08142918,0.06887796,0.057213247,0.04095675
686-643256241075171329	obamacare,arrived,obama,health,uninsured	0.69690466,0.23446332,0.03528309,0.019876743,0.013472189
686-622231070667227136	obamacare,uninsured,arrived,health,obama	0.38349727,0.2270818,0.19279337,0.12831123,0.068316326
686-648597846338367488	obamacare,obama,health,arrived,uninsured	0.85363024,0.05491414,0.033070706,0.0306645,0.027720386
686-646459425964724224	arrived,obamacare,obama,health,uninsured	0.51743394,0.30216107,0.09210155,0.05041995,0.03788349
686-618927139509829633	arrived,uninsured,health,obama,obamacare	0.6546289,0.1682373,0.11292312,0.042165507,0.022045199
686-628321993469919232	obamacare,arrived,uninsured,health,obama	0.25522724,0.25048634,0.24510264,0.17682832,0.07235543
686-648514310931542016	obamacare,obama,health,arrived,uninsured	0.8782222,0.05031541,0.025955949,0.025296805,0.02020958
686-631607705388511232	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-631263522161344512	uninsured,arrived,obamacare,health,obama	0.48459575,0.24014041,0.13159983,0.10973337,0.033930648
686-644580662209417217	health,obamacare,obama,arrived,uninsured	0.6134528,0.20064557,0.099001005,0.047211535,0.039689086
686-624758980481581056	arrived,obamacare,obama,uninsured,health	0.75499636,0.08015747,0.07017689,0.054377377,0.04029192
686-646967685553623041	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-638868492410822656	obama,obamacare,health,arrived,uninsured	0.95030516,0.014381347,0.013459731,0.011762289,0.010091456
686-647873884570697728	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-624145692445913088	arrived,obama,obamacare,health,uninsured	0.7866322,0.08929817,0.0462619,0.04423332,0.033574436
686-648726473675661312	obamacare,obama,health,arrived,uninsured	0.85704887,0.056225117,0.031578153,0.029314533,0.025833305
686-642835182777671680	arrived,uninsured,health,obamacare,obama	0.93600345,0.034834795,0.017398018,0.006886496,0.004877271
686-628507623956975616	arrived,uninsured,obama,obamacare,health	0.5014841,0.24265887,0.13620792,0.060585193,0.059063952
686-632211072863240192	arrived,uninsured,health,obama,obamacare	0.4681264,0.29395857,0.10712022,0.078527644,0.05226715
686-636559496345550848	arrived,obamacare,uninsured,obama,health	0.5254112,0.19970313,0.1766557,0.06020208,0.038027916
686-645699487302717440	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647402680651018240	arrived,obamacare,uninsured,health,obama	0.9621722,0.015276437,0.013319427,0.0072385925,0.0019933626
686-622373927331962880	arrived,health,uninsured,obama,obamacare	0.48063776,0.2290266,0.22790809,0.03656581,0.025861755
686-617128110002192384	arrived,uninsured,obama,health,obamacare	0.32447103,0.27175313,0.1560947,0.12703529,0.12064584
686-619118992318279680	health,uninsured,obamacare,arrived,obama	0.34366873,0.31946856,0.20480877,0.07107831,0.06097566
686-624201798388023296	uninsured,health,arrived,obama,obamacare	0.46804276,0.24315093,0.22900918,0.036683425,0.023113698
686-635318945247969280	obama,arrived,obamacare,health,uninsured	0.5484522,0.39343122,0.02374881,0.019930506,0.0144372815
686-623305811767332864	obamacare,arrived,obama,health,uninsured	0.83121455,0.07623445,0.048763886,0.023843788,0.019943338
686-642654117563891712	obamacare,arrived,uninsured,obama,health	0.6081575,0.15859687,0.15296282,0.050813787,0.02946901
686-647062852130504705	arrived,obama,health,obamacare,uninsured	0.85876405,0.054438766,0.031641897,0.03147489,0.023680389
686-625694962089242624	health,arrived,uninsured,obamacare,obama	0.36912012,0.23262152,0.17929204,0.16155486,0.05741148
686-641665023358558208	health,arrived,obama,obamacare,uninsured	0.384764,0.23131135,0.16608754,0.15713659,0.06070053
686-648695852245065728	obamacare,health,obama,arrived,uninsured	0.78174716,0.14389102,0.041023385,0.017998757,0.015339651
686-646809974648102914	uninsured,health,obama,obamacare,arrived	0.6057032,0.3005469,0.04763251,0.024271466,0.021845914
686-641714764297674754	health,uninsured,obamacare,arrived,obama	0.26336837,0.23316987,0.2125595,0.17715818,0.11374408
686-625493346773958656	arrived,uninsured,health,obama,obamacare	0.5014779,0.20610106,0.17722681,0.06952231,0.04567195
686-644297162822676480	obama,arrived,obamacare,health,uninsured	0.76020235,0.13738748,0.06807936,0.019344147,0.014986652
686-628548313063813120	obamacare,arrived,uninsured,health,obama	0.41452006,0.27538276,0.16472153,0.116914265,0.028461395
686-645517800451244032	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647873596178628608	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-619733424375398400	arrived,obama,obamacare,health,uninsured	0.85116434,0.05680359,0.04245345,0.028441656,0.02113693
686-646808790369730560	uninsured,health,obama,obamacare,arrived	0.6057032,0.3005469,0.04763251,0.024271466,0.021845914
686-636346045476110336	obama,uninsured,health,arrived,obamacare	0.7301506,0.11912219,0.11333579,0.021566128,0.015825305
686-623287324902862848	obamacare,arrived,obama,health,uninsured	0.65176076,0.26871508,0.041365363,0.01994015,0.018218625
686-643828240436609024	health,obama,uninsured,obamacare,arrived	0.70665085,0.19793165,0.039544217,0.030161105,0.025712194
686-619569046099468288	health,obama,obamacare,arrived,uninsured	0.8619496,0.05560805,0.03612826,0.023834148,0.022479938
686-644326721492242432	obamacare,uninsured,health,obama,arrived	0.3054042,0.28505653,0.28011882,0.08733952,0.042080943
686-648235810391650304	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-645754769206833152	arrived,obama,health,uninsured,obamacare	0.841808,0.057378262,0.046476193,0.029051477,0.025286058
686-622106263904747520	obamacare,uninsured,health,arrived,obama	0.3939148,0.24927297,0.15530881,0.11432859,0.08717484
686-629439790048370688	uninsured,obamacare,health,obama,arrived	0.46527633,0.33370167,0.12304587,0.04795959,0.030016528
686-630925335199006720	health,uninsured,obamacare,arrived,obama	0.52691776,0.21361879,0.115481995,0.11346534,0.03051613
686-626918564604194820	uninsured,health,arrived,obama,obamacare	0.4111046,0.31709406,0.19883932,0.042681705,0.030280324
686-639808080268562433	health,arrived,uninsured,obama,obamacare	0.66553795,0.13852607,0.12250269,0.039220653,0.034212608
686-617886511627960320	health,uninsured,obama,arrived,obamacare	0.46018118,0.30224505,0.09308078,0.084669635,0.059823368
686-633571187134738432	uninsured,obama,obamacare,health,arrived	0.8207518,0.06683412,0.039162543,0.038711656,0.034539886
686-631296541823791104	obama,uninsured,obamacare,arrived,health	0.5647934,0.29261234,0.0730726,0.043772776,0.025748905
686-615029955311702016	obamacare,uninsured,health,obama,arrived	0.46325812,0.37669408,0.055591572,0.055398427,0.049057778
686-621554946576519168	uninsured,arrived,obama,health,obamacare	0.9081763,0.031053852,0.026603237,0.018703368,0.015463238
686-618257814385991680	obamacare,arrived,obama,health,uninsured	0.78996515,0.1187883,0.048930563,0.024338521,0.017977485
686-646604759818895360	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-640155488957689856	arrived,uninsured,health,obamacare,obama	0.9539554,0.024731686,0.012501043,0.0051171933,0.003694661
686-628697583943184384	arrived,obamacare,obama,uninsured,health	0.44539908,0.2506403,0.12111016,0.110281356,0.0725691
686-627476360336932864	uninsured,health,arrived,obama,obamacare	0.5030864,0.25773287,0.17147079,0.037587654,0.030122304
686-615091237805293568	arrived,obama,obamacare,health,uninsured	0.8818235,0.047795273,0.02898255,0.02367252,0.01772616
686-628429508954165248	arrived,obamacare,obama,health,uninsured	0.58649516,0.22752869,0.13325998,0.031255987,0.021460196
686-624200517883801600	health,arrived,uninsured,obama,obamacare	0.4962203,0.21729292,0.1355448,0.08656054,0.06438145
686-639595062725345280	uninsured,arrived,obama,obamacare,health	0.47588915,0.38207442,0.057899352,0.05277452,0.03136255
686-638866307908157440	obama,obamacare,health,arrived,uninsured	0.95030516,0.014381347,0.013459731,0.011762289,0.010091456
686-629489764366856192	uninsured,health,obama,arrived,obamacare	0.5277376,0.124746405,0.12418671,0.11754228,0.105786964
686-639437990964654080	uninsured,obamacare,health,arrived,obama	0.3131668,0.2923292,0.1938617,0.1516168,0.049025536
686-639776575576219652	uninsured,obama,obamacare,health,arrived	0.85786414,0.05767104,0.029606305,0.02900857,0.025849959
686-632303526824312832	uninsured,health,obama,obamacare,arrived	0.6469566,0.23498876,0.053759176,0.03771433,0.026581109
686-639774908411613184	uninsured,obama,obamacare,health,arrived	0.85786414,0.05767104,0.029606305,0.02900857,0.025849959
686-615031440338747392	obama,obamacare,health,arrived,uninsured	0.33744073,0.2130439,0.17227286,0.14892723,0.12831527
686-627912773700354048	obamacare,uninsured,obama,health,arrived	0.331643,0.2815853,0.20918666,0.16346747,0.014117586
686-638312703233126400	health,obamacare,arrived,obama,uninsured	0.5484898,0.17226616,0.16582769,0.083067805,0.030348528
686-648283131942846464	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-629350858686394368	uninsured,arrived,obamacare,health,obama	0.41435608,0.2589047,0.15969642,0.0867687,0.08027412
686-619197321683845120	arrived,obamacare,uninsured,obama,health	0.359571,0.24451827,0.23522556,0.09826374,0.06242145
686-627663412823113728	health,uninsured,arrived,obamacare,obama	0.36427036,0.25543734,0.1676365,0.14299828,0.06965752
686-636684572348911616	uninsured,health,arrived,obama,obamacare	0.54019,0.20736596,0.16709869,0.04771105,0.03763435
686-648061054476378112	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-620789627008385024	health,obama,obamacare,uninsured,arrived	0.7323313,0.19419256,0.032556,0.020803602,0.020116547
686-625782407463960576	arrived,uninsured,obamacare,obama,health	0.39826876,0.3215249,0.1390781,0.074076004,0.06705226
686-626121677810892800	health,uninsured,obama,arrived,obamacare	0.8535941,0.08713433,0.025459506,0.020392846,0.013419171
686-635470464320573440	obamacare,arrived,health,obama,uninsured	0.8113269,0.088784486,0.06251734,0.025930904,0.011440357
686-632253671246462976	health,arrived,obama,obamacare,uninsured	0.8019095,0.11047307,0.046854768,0.02366075,0.017101912
686-631601977168932868	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-625508635150536704	arrived,obama,obamacare,uninsured,health	0.7425368,0.17304972,0.033313207,0.027258957,0.023841362
686-645794553149169664	health,uninsured,obamacare,obama,arrived	0.6975998,0.13257585,0.1182894,0.035465732,0.016069164
686-623458266631303168	uninsured,obamacare,arrived,obama,health	0.4394897,0.38499078,0.10759364,0.039045908,0.02887998
686-646446764648591360	uninsured,arrived,health,obamacare,obama	0.56440604,0.36320645,0.05090083,0.015583013,0.0059036375
686-630826480193437696	uninsured,health,obama,obamacare,arrived	0.7205953,0.21726078,0.032160193,0.016221268,0.013762492
686-627118897397936129	uninsured,health,obama,arrived,obamacare	0.47574463,0.38326427,0.05604207,0.051956024,0.032993004
686-626122584229347328	health,uninsured,obama,arrived,obamacare	0.8535941,0.08713433,0.025459506,0.020392846,0.013419171
686-648477126694322176	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-630937744919949312	uninsured,health,obama,obamacare,arrived	0.7205953,0.21726078,0.032160193,0.016221268,0.013762492
686-635773739251179520	uninsured,obamacare,health,obama,arrived	0.53162014,0.2559594,0.082711525,0.07272181,0.05698717
686-649066471197274112	arrived,uninsured,obamacare,health,obama	0.34916157,0.258511,0.17146644,0.11102275,0.10983823
686-620708642862424065	uninsured,arrived,obamacare,health,obama	0.5608267,0.18756436,0.16481395,0.047214758,0.039580233
686-646062975225204736	obamacare,health,obama,uninsured,arrived	0.7352561,0.14911892,0.04872091,0.03778621,0.029117903
686-649051514309230593	obamacare,health,obama,uninsured,arrived	0.68534696,0.23432145,0.035763707,0.023672365,0.02089552
686-623297935221071872	uninsured,obama,obamacare,arrived,health	0.9060876,0.036540642,0.019702021,0.019207222,0.018462548
686-644344421887164418	uninsured,arrived,health,obamacare,obama	0.476582,0.42107373,0.09378675,0.008063682,4.938571E-4
686-646604860045983744	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-622142474753024000	uninsured,health,arrived,obamacare,obama	0.39540046,0.33657357,0.179799,0.07944925,0.0087776985
686-647900482527207426	health,obama,obamacare,arrived,uninsured	0.8690421,0.057486948,0.028649507,0.024275733,0.020545686
686-631277745713082368	obamacare,uninsured,health,obama,arrived	0.45042256,0.32172453,0.08920129,0.081679545,0.05697209
686-623277716758892544	uninsured,arrived,obamacare,obama,health	0.57029533,0.24462487,0.123776264,0.037395798,0.023907723
686-629912025938952192	health,obama,obamacare,arrived,uninsured	0.80011946,0.086137526,0.044574805,0.037718553,0.031449668
686-634815457866948610	obamacare,obama,health,arrived,uninsured	0.7309741,0.1677369,0.047475703,0.029996403,0.023816887
686-635270826024148993	health,arrived,obama,obamacare,uninsured	0.5307909,0.27441368,0.08452274,0.05562052,0.054652147
686-620581103997333504	uninsured,health,obamacare,arrived,obama	0.48307148,0.2479116,0.10379442,0.10250283,0.06271968
686-637979813517619200	obama,obamacare,health,arrived,uninsured	0.95030516,0.014381347,0.013459731,0.011762289,0.010091456
686-619162095796400128	health,obamacare,obama,arrived,uninsured	0.7348549,0.2053987,0.031232342,0.014278251,0.014235834
686-617021589998174208	uninsured,obamacare,health,obama,arrived	0.3730426,0.28147915,0.27852058,0.03790164,0.029056035
686-625415170823733248	obamacare,arrived,obama,health,uninsured	0.5969833,0.3144905,0.04715033,0.02396536,0.017410496
686-625864012807434242	arrived,health,uninsured,obama,obamacare	0.565625,0.30093136,0.061032485,0.042088155,0.030322978
686-636539414198403072	arrived,health,obama,obamacare,uninsured	0.6616053,0.19291006,0.067073815,0.043090463,0.03532038
686-630875913811439616	obama,obamacare,health,arrived,uninsured	0.8308658,0.1269202,0.015905228,0.014397863,0.011910932
686-648417098608185344	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-645699391454515201	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-631128309322121217	arrived,uninsured,health,obama,obamacare	0.40724242,0.40440163,0.12522872,0.037759524,0.02536772
686-645336298073509888	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-627057741199114246	obamacare,arrived,obama,health,uninsured	0.6966267,0.19830577,0.05585001,0.028536454,0.020681033
686-646786599246663680	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648167632949104641	health,obama,uninsured,obamacare,arrived	0.84890693,0.056681775,0.039579395,0.029981725,0.024850154
686-617770233445642240	uninsured,arrived,obamacare,obama,health	0.42894727,0.37211108,0.07534177,0.06600066,0.057599224
686-620774492462133249	obamacare,obama,health,arrived,uninsured	0.87011737,0.056638166,0.027270172,0.025752166,0.020222113
686-644575075035967488	obamacare,health,arrived,uninsured,obama	0.40185484,0.28369945,0.21574368,0.049632177,0.04906985
686-631502592208564225	uninsured,health,obamacare,arrived,obama	0.85528535,0.14125596,0.0012960127,0.0011839081,9.787715E-4
686-631321064165896194	obamacare,arrived,health,obama,uninsured	0.3125993,0.2959743,0.2848794,0.067358136,0.03918886
686-639179065522528257	uninsured,obama,obamacare,health,arrived	0.74168944,0.09415223,0.06835038,0.052490145,0.043317784
686-644335239574200321	arrived,health,uninsured,obamacare,obama	0.6521395,0.20135,0.05602602,0.047629002,0.0428555
686-647329776298889216	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647148823165333504	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-644866139089186816	uninsured,obama,arrived,health,obamacare	0.38941336,0.2063635,0.19635068,0.17815626,0.029716216
686-638908114960433153	obamacare,health,uninsured,arrived,obama	0.42342848,0.17660688,0.16189454,0.1537055,0.08436459
686-637265501153050624	obamacare,arrived,obama,health,uninsured	0.5758658,0.22780477,0.084688745,0.0729049,0.038735785
686-638830571666337792	obama,obamacare,health,arrived,uninsured	0.8306851,0.12697473,0.015947508,0.014440534,0.011952125
686-644426032842448896	uninsured,obamacare,arrived,health,obama	0.4953822,0.3007011,0.11328539,0.062023398,0.028607916
686-648849656835907586	obamacare,obama,health,arrived,uninsured	0.8746332,0.0551316,0.026876997,0.023441536,0.01991668
686-625055642844311552	uninsured,arrived,health,obamacare,obama	0.515119,0.18285303,0.14153543,0.1276273,0.03286524
686-646811601018851328	uninsured,health,obama,obamacare,arrived	0.6057032,0.3005469,0.04763251,0.024271466,0.021845914
686-616524528743612416	health,obama,obamacare,arrived,uninsured	0.80011946,0.086137526,0.044574805,0.037718553,0.031449668
686-623442820372819968	arrived,obamacare,health,obama,uninsured	0.44485316,0.30551636,0.18096386,0.048059776,0.020606838
686-617706299468349440	uninsured,arrived,obama,obamacare,health	0.81520206,0.118521504,0.03268354,0.016967125,0.016625801
686-618952292373393408	arrived,obama,obamacare,health,uninsured	0.8697829,0.049884308,0.029475918,0.027802333,0.023054488
686-648586015062425600	obamacare,obama,health,arrived,uninsured	0.8746332,0.0551316,0.026876997,0.023441536,0.01991668
686-643587646044925953	obamacare,obama,health,arrived,uninsured	0.8886516,0.04786738,0.02399728,0.021241944,0.018241761
686-632921061714059264	obamacare,obama,health,arrived,uninsured	0.9269864,0.03126364,0.015587471,0.014339812,0.011822657
686-617928156238888960	uninsured,arrived,health,obama,obamacare	0.5324775,0.23116197,0.11472632,0.10182666,0.019807557
686-631549643713687552	health,arrived,obamacare,uninsured,obama	0.37333214,0.29874885,0.1929028,0.07269771,0.06231849
686-648455006719463429	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-635959666963578880	obamacare,obama,health,arrived,uninsured	0.7197069,0.09902629,0.070054024,0.056691173,0.054521605
686-617062593165926400	health,obamacare,obama,arrived,uninsured	0.77707595,0.14831865,0.04112281,0.01802464,0.015457961
686-630823499012161537	uninsured,health,obama,obamacare,arrived	0.7205953,0.21726078,0.032160193,0.016221268,0.013762492
686-625132785557180416	obamacare,obama,health,arrived,uninsured	0.8540697,0.05643083,0.040151846,0.027358059,0.021989543
686-634686402387554304	arrived,uninsured,obamacare,health,obama	0.401935,0.22999771,0.17558537,0.117929876,0.07455204
686-642067847535923200	health,uninsured,obamacare,obama,arrived	0.6975998,0.13257585,0.1182894,0.035465732,0.016069164
686-627931849872928768	uninsured,arrived,obamacare,obama,health	0.5513244,0.2723899,0.121563055,0.03514382,0.019578775
686-626890199272943616	uninsured,health,arrived,obamacare,obama	0.45658234,0.2058906,0.18965623,0.09561666,0.0522542
686-647033450642305025	arrived,obamacare,health,obama,uninsured	0.51356775,0.27674887,0.08207456,0.067478344,0.060130496
686-622109049740464128	arrived,uninsured,health,obama,obamacare	0.47050878,0.4152656,0.04824008,0.04022078,0.025764776
686-620100797687140352	health,uninsured,arrived,obamacare,obama	0.24401419,0.241894,0.2371503,0.22051293,0.056428567
686-636663698975760385	uninsured,health,obamacare,arrived,obama	0.3191452,0.26889062,0.19996403,0.16225033,0.049749836
686-643582453379022852	uninsured,arrived,health,obamacare,obama	0.43146542,0.20484906,0.18742062,0.13237394,0.043890946
686-646407875900772352	uninsured,obama,obamacare,arrived,health	0.3443463,0.29930735,0.12497649,0.123245485,0.10812437
686-624622537750614017	arrived,uninsured,health,obama,obamacare	0.55526024,0.18042913,0.11819022,0.08633317,0.05978722
686-638566492829839360	uninsured,arrived,obama,health,obamacare	0.5839017,0.32898778,0.042119104,0.023072952,0.021918498
686-645699589803081737	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-644522702141804544	uninsured,arrived,health,obamacare,obama	0.29461458,0.27163005,0.262281,0.12758815,0.04388622
686-637410988904574976	uninsured,health,obamacare,obama,arrived	0.40791762,0.29616702,0.17751835,0.06365464,0.054742362
686-638374563923910656	health,uninsured,obamacare,obama,arrived	0.3285624,0.30000868,0.26591292,0.07023247,0.0352835
686-645880260882530304	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-619710448141635584	health,obama,obamacare,uninsured,arrived	0.7323313,0.19419256,0.032556,0.020803602,0.020116547
686-618223257335033856	obama,uninsured,health,obamacare,arrived	0.7355964,0.19968385,0.026004503,0.021328302,0.017386952
686-626414801816694784	arrived,health,obama,obamacare,uninsured	0.7499512,0.14578988,0.048271924,0.037162993,0.01882399
686-627486175175946241	arrived,obama,uninsured,obamacare,health	0.741655,0.081498824,0.06312517,0.05784788,0.055873107
686-619114276691664898	uninsured,arrived,health,obama,obamacare	0.7307956,0.12116874,0.09127702,0.035392273,0.021366367
686-641984346161848320	obamacare,health,arrived,obama,uninsured	0.72513795,0.13491072,0.07876027,0.04002922,0.021161847
686-622357042800521216	uninsured,arrived,obama,health,obamacare	0.7822772,0.1386698,0.03664644,0.02306869,0.019337846
686-635145778520981504	uninsured,obamacare,health,arrived,obama	0.54816806,0.24832894,0.1182437,0.046128053,0.03913122
686-629474087765721088	obamacare,health,uninsured,obama,arrived	0.31949985,0.26232022,0.24304917,0.09865053,0.076480225
686-641367407349534720	arrived,obamacare,uninsured,health,obama	0.49234363,0.2570277,0.15113567,0.053550135,0.045942854
686-632396249845526528	health,arrived,obamacare,obama,uninsured	0.6123528,0.14965041,0.132949,0.06966927,0.035378538
686-628693492735324160	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-623915184512307200	uninsured,health,arrived,obamacare,obama	0.30331036,0.27186024,0.22831693,0.1520824,0.04443008
686-629718813643116545	arrived,obamacare,health,uninsured,obama	0.5082572,0.19763356,0.18452097,0.06203789,0.047550373
686-630144919588499456	obamacare,uninsured,obama,arrived,health	0.56409925,0.20878874,0.08147411,0.07384986,0.07178803
686-647351291321057280	uninsured,arrived,health,obama,obamacare	0.60839885,0.17993005,0.14822075,0.041809525,0.021640854
686-648620831548002304	uninsured,health,obama,arrived,obamacare	0.4680019,0.20468016,0.15790203,0.10096346,0.068452455
686-632905410261987328	health,obamacare,obama,arrived,uninsured	0.63719344,0.27616817,0.04209764,0.027630534,0.01691022
686-644683655231574017	uninsured,health,arrived,obama,obamacare	0.36857268,0.25037098,0.21577612,0.12163069,0.04364952
686-645517849348341761	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647232216129503232	obamacare,obama,arrived,health,uninsured	0.99702656,0.0010496987,6.6536607E-4,6.308324E-4,6.275207E-4
686-621641949217468416	arrived,obamacare,uninsured,obama,health	0.6265018,0.1689004,0.14181677,0.041296225,0.021484802
686-644855499532337152	health,arrived,obamacare,obama,uninsured	0.43189284,0.27119824,0.15287209,0.10080664,0.043230172
686-626059993595424768	uninsured,arrived,obama,health,obamacare	0.41467944,0.39243492,0.12255159,0.038308777,0.032025293
686-644625781528760320	health,uninsured,obama,arrived,obamacare	0.7144438,0.21270429,0.032458723,0.021051254,0.019341918
686-646242579542081536	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-628956656903299073	obamacare,obama,health,arrived,uninsured	0.48689374,0.19229463,0.1676854,0.13548276,0.017643454
686-648546572251348993	health,obamacare,obama,arrived,uninsured	0.7301373,0.17824835,0.04903123,0.023172729,0.01941039
686-646451417633296384	uninsured,arrived,health,obama,obamacare	0.68326217,0.13311847,0.115473,0.044828903,0.023317458
686-623288420228579328	uninsured,health,arrived,obama,obamacare	0.5620586,0.3142739,0.05797389,0.037604596,0.02808896
686-617079648380407808	health,obamacare,obama,uninsured,arrived	0.29278812,0.23436013,0.19914274,0.13802397,0.13568506
686-618798353065717760	arrived,uninsured,obamacare,health,obama	0.42088205,0.3168856,0.15535985,0.06396283,0.042909697
686-623971735361220612	arrived,obamacare,health,obama,uninsured	0.592477,0.17070986,0.1697577,0.04866514,0.018390302
686-623271963159494656	health,uninsured,arrived,obamacare,obama	0.6993281,0.11872038,0.09626192,0.047099587,0.038589958
686-641307243540017152	obamacare,uninsured,arrived,health,obama	0.5669348,0.25994173,0.095110975,0.04336499,0.03464748
686-630497177584795648	obamacare,uninsured,arrived,health,obama	0.8659305,0.13060988,0.0014747083,0.0012210977,7.638369E-4
686-643156790805270528	obamacare,uninsured,health,arrived,obama	0.43922237,0.26707056,0.16146466,0.09395197,0.03829043
686-624010878556336129	obamacare,health,arrived,obama,uninsured	0.3926379,0.32941562,0.17919171,0.05235015,0.04640461
686-647148940027035648	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-628435386780516352	arrived,obamacare,uninsured,obama,health	0.6689519,0.2173225,0.06699059,0.02400182,0.022733167
686-624255620284305409	uninsured,health,arrived,obama,obamacare	0.2280897,0.22285128,0.20595326,0.17973694,0.16336882
686-636615692977094656	uninsured,health,arrived,obamacare,obama	0.3105913,0.27728072,0.19981731,0.14599347,0.06631718
686-623525055830577152	uninsured,obama,arrived,obamacare,health	0.5655534,0.23198473,0.12440519,0.04774297,0.030313672
686-624553676405915648	obamacare,arrived,uninsured,obama,health	0.6532675,0.14646634,0.12545194,0.04804046,0.026773756
686-642777250367062016	obamacare,arrived,uninsured,obama,health	0.31042713,0.21202166,0.20864911,0.18518865,0.08371344
686-645780626616926208	health,obama,obamacare,arrived,uninsured	0.8710114,0.05592468,0.028467719,0.0240794,0.020516798
686-622128020757676032	uninsured,obamacare,arrived,obama,health	0.5124372,0.20249173,0.18678448,0.060084034,0.03820252
686-621110630183874561	obamacare,obama,uninsured,arrived,health	0.7117026,0.078498594,0.07607642,0.06985252,0.063869864
686-646887083529867264	uninsured,health,obama,obamacare,arrived	0.6057032,0.3005469,0.04763251,0.024271466,0.021845914
686-624332585460715521	arrived,obamacare,obama,health,uninsured	0.8277541,0.05469476,0.052330907,0.0327906,0.03242966
686-645586223369613312	arrived,obama,health,obamacare,uninsured	0.45585588,0.17094731,0.14987111,0.11541369,0.10791201
686-628307801920638976	obamacare,health,uninsured,arrived,obama	0.34985942,0.26793733,0.1929396,0.12726335,0.062000293
686-628842064596369408	arrived,obamacare,health,uninsured,obama	0.33279106,0.30583704,0.16627936,0.124221094,0.07087146
686-621568325009563650	arrived,health,obama,obamacare,uninsured	0.6910145,0.24843661,0.031985372,0.016426047,0.012137469
686-622407338645946368	obamacare,arrived,health,obama,uninsured	0.5661912,0.17611839,0.14597878,0.071429096,0.040282518
686-644336337995321344	uninsured,health,obama,obamacare,arrived	0.7708305,0.14481089,0.042059187,0.023712445,0.01858694
686-645909315530936320	obamacare,health,obama,uninsured,arrived	0.7352561,0.14911892,0.04872091,0.03778621,0.029117903
686-649013140068237312	obamacare,obama,health,arrived,uninsured	0.8738723,0.04956247,0.028080229,0.025667336,0.022817664
686-633035129426808832	arrived,health,uninsured,obama,obamacare	0.48940662,0.32818836,0.11385391,0.037256796,0.031294305
686-646061501644537856	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-615230139576807424	uninsured,arrived,health,obama,obamacare	0.33366033,0.26268205,0.25313425,0.07832585,0.07219749
686-636216126377230336	obamacare,health,arrived,obama,uninsured	0.5404544,0.22683746,0.09745256,0.06789757,0.06735801
686-646867404815908864	arrived,obamacare,obama,health,uninsured	0.6197898,0.2921524,0.032702174,0.02827686,0.027078776
686-627604404124807168	health,arrived,obamacare,obama,uninsured	0.5967822,0.24349831,0.1018929,0.04185528,0.0159713
686-628336154710925312	obamacare,arrived,uninsured,obama,health	0.39406264,0.22647507,0.19021754,0.10842582,0.08081895
686-640337500158992384	uninsured,obama,obamacare,health,arrived	0.9118167,0.036407992,0.018384583,0.01784506,0.015545624
686-617458892512063488	uninsured,arrived,obamacare,obama,health	0.34624916,0.26757625,0.20196924,0.11105305,0.07315231
686-629783969198948356	arrived,obamacare,health,obama,uninsured	0.7465977,0.13135542,0.072967514,0.03579448,0.013284884
686-615024578369208325	arrived,uninsured,obama,obamacare,health	0.829552,0.0952623,0.030235045,0.025959572,0.018991068
686-641580191102316544	arrived,obamacare,health,uninsured,obama	0.5749772,0.29442543,0.052642714,0.042672668,0.03528199
686-645699364103393280	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-644206138448322560	uninsured,health,obama,obamacare,arrived	0.6845545,0.17822357,0.050475314,0.04561345,0.04113318
686-645486085821206528	obama,health,obamacare,arrived,uninsured	0.71467966,0.23991014,0.016434144,0.015265099,0.0137109645
686-639077863908638720	arrived,uninsured,health,obamacare,obama	0.8572707,0.13165498,0.008571217,0.0018731499,6.299564E-4
686-646061477087080448	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-633027338901413888	obamacare,uninsured,arrived,health,obama	0.4802616,0.2048903,0.19896033,0.07307038,0.042817395
686-632390208776859649	arrived,health,obamacare,obama,uninsured	0.5677234,0.2616542,0.10323359,0.044036366,0.023352467
686-636078993662341120	uninsured,arrived,health,obama,obamacare	0.60839885,0.17993005,0.14822075,0.041809525,0.021640854
686-646786666112221184	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-630827284765634560	obamacare,arrived,obama,health,uninsured	0.46831354,0.42639285,0.05645108,0.027887557,0.020954985
686-634364926224678912	health,obamacare,uninsured,obama,arrived	0.43684265,0.257058,0.19813338,0.07153254,0.036433443
686-640224874749915136	arrived,uninsured,obama,obamacare,health	0.59340036,0.21136737,0.08508616,0.05543412,0.05471202
686-618581939625295872	obamacare,uninsured,health,arrived,obama	0.5933062,0.37534997,0.015777132,0.010280152,0.00528657
686-622791950232592385	arrived,obama,obamacare,health,uninsured	0.8818235,0.047795273,0.02898255,0.02367252,0.01772616
686-628370863457341440	arrived,health,uninsured,obama,obamacare	0.43381768,0.23340687,0.22436786,0.06764563,0.040761963
686-618914079076388865	health,arrived,uninsured,obamacare,obama	0.698557,0.25846073,0.041508064,8.731421E-4,6.010442E-4
686-631272613302661121	obama,obamacare,uninsured,arrived,health	0.26977554,0.24222296,0.22883686,0.16560292,0.09356172
686-618013036624936960	arrived,obamacare,obama,health,uninsured	0.8373485,0.105232045,0.028690634,0.015177023,0.013551776
686-646291172386705408	obamacare,obama,arrived,health,uninsured	0.36430424,0.32974494,0.13456208,0.09412203,0.07726674
686-638063038294282241	obamacare,arrived,uninsured,health,obama	0.46344876,0.18407477,0.1354869,0.12681623,0.09017335
686-625031552188071937	health,obama,arrived,obamacare,uninsured	0.38674554,0.37904948,0.12955594,0.054761156,0.049887873
686-615295475068076032	uninsured,arrived,obama,obamacare,health	0.6560467,0.16767259,0.12698779,0.02487921,0.024413735
686-647511141900423169	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-629400186884730883	obamacare,uninsured,health,arrived,obama	0.46216187,0.38104168,0.06848433,0.05236335,0.035948765
686-645003497088249856	uninsured,arrived,obamacare,health,obama	0.6261985,0.29944167,0.03788364,0.02433286,0.012143392
686-628433868748525568	uninsured,health,obama,arrived,obamacare	0.5419216,0.1957285,0.17803389,0.043510526,0.040805466
686-631600766457769984	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-616406616712314880	health,obamacare,arrived,uninsured,obama	0.40649065,0.2598398,0.14962459,0.14286017,0.041184794
686-619855062634995712	uninsured,health,arrived,obamacare,obama	0.42418572,0.38469183,0.120994024,0.06352548,0.006602954
686-643553571741528064	obamacare,uninsured,arrived,health,obama	0.41545647,0.20751205,0.16750875,0.14966124,0.059861496
686-622279776544407552	obama,obamacare,arrived,health,uninsured	0.32627627,0.17735627,0.17656456,0.17030546,0.14949743
686-619245559304458240	health,arrived,uninsured,obamacare,obama	0.53151447,0.22633518,0.16679615,0.04313784,0.032216378
686-615966080167645184	uninsured,health,arrived,obama,obamacare	0.5195265,0.13429072,0.13114777,0.112851866,0.102183126
686-646786577448878084	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-637885065981071360	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-615033520205869056	arrived,uninsured,obama,obamacare,health	0.829552,0.0952623,0.030235045,0.025959572,0.018991068
686-620429395883245568	obamacare,arrived,obama,health,uninsured	0.69130343,0.24170755,0.035413843,0.017391374,0.0141838025
686-630536454733713408	obamacare,arrived,health,obama,uninsured	0.2855147,0.26029378,0.20872447,0.19983019,0.045636848
686-646242685754429441	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-626480668562878464	uninsured,health,arrived,obama,obamacare	0.453688,0.26528004,0.19343969,0.05775541,0.029836847
686-647058391324487680	obamacare,arrived,obama,health,uninsured	0.39090118,0.38821208,0.11673806,0.061849903,0.04229879
686-623891421813080068	uninsured,arrived,obamacare,health,obama	0.42089346,0.2522234,0.1448882,0.09828245,0.083712496
686-623523902241636352	health,uninsured,obamacare,obama,arrived	0.46095666,0.18908055,0.18222588,0.086975336,0.080761574
686-649002067131019265	uninsured,health,arrived,obama,obamacare	0.6761812,0.13595976,0.1311441,0.037120506,0.019594435
686-616394550198734848	health,arrived,obama,uninsured,obamacare	0.8071445,0.08541195,0.04791059,0.031151999,0.028380921
686-647060281244393472	arrived,obama,obamacare,health,uninsured	0.8756903,0.04842132,0.027530452,0.026832491,0.021525439
686-617512171497336832	arrived,obamacare,obama,health,uninsured	0.8373485,0.105232045,0.028690634,0.015177023,0.013551776
686-636264577206910976	obama,obamacare,arrived,uninsured,health	0.5514006,0.14847948,0.14066857,0.13844848,0.021002835
686-617011486733393921	arrived,health,obama,obamacare,uninsured	0.58123046,0.1912811,0.07765704,0.0767168,0.073114574
686-617347502002565120	health,uninsured,obama,obamacare,arrived	0.52166814,0.31226832,0.06488967,0.054925002,0.046248868
686-626775052122488832	arrived,obama,obamacare,health,uninsured	0.91205627,0.03590353,0.019894348,0.018621197,0.013524636
686-638002934635175936	uninsured,obamacare,obama,arrived,health	0.4527631,0.29772067,0.122996755,0.08212858,0.04439091
686-617343234898063360	uninsured,health,obama,arrived,obamacare	0.59160846,0.22227989,0.07590833,0.060347296,0.049855992
686-626408416869662720	arrived,obamacare,uninsured,obama,health	0.48880127,0.23860398,0.20867991,0.04167933,0.022235505
686-632747053576232960	health,arrived,obama,obamacare,uninsured	0.8019095,0.11047307,0.046854768,0.02366075,0.017101912
686-634752246912262146	health,uninsured,obama,obamacare,arrived	0.39235714,0.25841087,0.14053357,0.13313398,0.07556444
686-626071557845028865	uninsured,obama,arrived,health,obamacare	0.34987247,0.2606556,0.19770646,0.121420845,0.07034463
686-639484524917825536	uninsured,arrived,obama,obamacare,health	0.549433,0.28887337,0.054180905,0.0538024,0.053710304
686-634325348730036224	uninsured,arrived,health,obama,obamacare	0.59693444,0.21152228,0.09058141,0.060399476,0.040562417
686-625843912368754688	uninsured,arrived,obama,health,obamacare	0.63950944,0.27062836,0.041796286,0.026418313,0.021647613
686-618794698459738113	health,arrived,obamacare,obama,uninsured	0.46055615,0.21684171,0.20530082,0.07510759,0.042193733
686-626387781716021248	arrived,obama,obamacare,health,uninsured	0.45122778,0.15310045,0.1521464,0.14876583,0.094759546
686-631614404929429506	obamacare,arrived,uninsured,obama,health	0.5126289,0.30150568,0.11475351,0.044401806,0.02671007
686-630970321584009216	arrived,health,obama,obamacare,uninsured	0.57622755,0.2311893,0.09546105,0.05323299,0.04388913
686-629819636951846912	arrived,obamacare,health,obama,uninsured	0.7465977,0.13135542,0.072967514,0.03579448,0.013284884
686-643951256386568192	uninsured,health,arrived,obamacare,obama	0.30307546,0.2722269,0.24502662,0.12690578,0.05276523
686-621152772205867009	obamacare,uninsured,health,obama,arrived	0.33948505,0.32310608,0.26353583,0.044957258,0.028915782
686-628356216113209348	arrived,uninsured,health,obamacare,obama	0.3203433,0.30253556,0.19289467,0.13372357,0.050502885
686-638217284813623296	obamacare,arrived,uninsured,health,obama	0.31486002,0.26692426,0.18843989,0.12508264,0.10469319
686-619217690104832000	arrived,obamacare,health,obama,uninsured	0.39497244,0.2757888,0.16116261,0.11737315,0.050702963
686-648235812165808128	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648299322480676864	obamacare,obama,health,arrived,uninsured	0.87441623,0.055190917,0.026929814,0.023494916,0.019968098
686-621158623935361024	obamacare,uninsured,arrived,health,obama	0.52094674,0.23746842,0.13966122,0.06340744,0.03851617
686-619974471961612288	health,obama,obamacare,arrived,uninsured	0.80011946,0.086137526,0.044574805,0.037718553,0.031449668
686-616410801394610176	arrived,health,uninsured,obama,obamacare	0.2706135,0.26448432,0.25216767,0.11955517,0.093179375
686-623364023497551872	uninsured,obamacare,arrived,obama,health	0.75486845,0.086093076,0.08341659,0.04589249,0.029729402
686-639559245902381056	uninsured,health,obama,arrived,obamacare	0.7448693,0.08210347,0.07313641,0.050570834,0.04932001
686-646605569541799936	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-619642435358953472	obamacare,health,obama,uninsured,arrived	0.41952857,0.26186025,0.15249527,0.14429389,0.021821998
686-625801933853298689	obamacare,uninsured,obama,arrived,health	0.52861226,0.20035847,0.11070807,0.08258993,0.07773127
686-632256907705618432	health,arrived,obama,obamacare,uninsured	0.8019095,0.11047307,0.046854768,0.02366075,0.017101912
686-616387200188579840	health,uninsured,obamacare,arrived,obama	0.37074292,0.28639296,0.1640491,0.14346571,0.035349306
686-642009864802144256	obamacare,obama,health,arrived,uninsured	0.8920269,0.0470931,0.023225792,0.020321244,0.017332938
686-645336529905127424	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-644334977753088000	arrived,uninsured,obama,obamacare,health	0.72736347,0.16042009,0.05062273,0.033926602,0.0276671
686-632020183268257792	uninsured,obama,obamacare,health,arrived	0.9215663,0.03238807,0.016353706,0.015864035,0.013827901
686-641682199599669248	uninsured,obamacare,obama,arrived,health	0.62529784,0.24161473,0.05019394,0.041678507,0.041215
686-644347151540203520	uninsured,obamacare,health,obama,arrived	0.4999868,0.24388143,0.18607841,0.044919644,0.025133708
686-632926423116853248	health,uninsured,obamacare,obama,arrived	0.47696543,0.18618806,0.12852928,0.104414366,0.10390288
686-645067256162992128	obama,obamacare,health,arrived,uninsured	0.79964733,0.14593197,0.020273458,0.018546574,0.015600662
686-619163762394857472	health,obamacare,obama,arrived,uninsured	0.7348549,0.2053987,0.031232342,0.014278251,0.014235834
686-644285151610974208	uninsured,obama,obamacare,arrived,health	0.90628505,0.036495358,0.01966029,0.01915231,0.018407008
686-614975490231771136	arrived,obama,obamacare,health,uninsured	0.76840055,0.08435868,0.07862771,0.038003426,0.030609617
686-623281996773482498	arrived,health,obama,obamacare,uninsured	0.80367047,0.11973462,0.0408432,0.020790963,0.014960719
686-646604802185531392	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-631080372139233281	obamacare,arrived,uninsured,obama,health	0.47100064,0.22345643,0.16934827,0.07940639,0.05678828
686-631657883097174016	obamacare,obama,arrived,health,uninsured	0.89075047,0.03556523,0.035176165,0.023768928,0.01473922
686-644519321146904576	health,uninsured,arrived,obamacare,obama	0.513019,0.27214935,0.19407049,0.013499369,0.0072617335
686-643458006802235392	uninsured,health,obama,obamacare,arrived	0.53177124,0.36497048,0.047710896,0.028255846,0.027291559
686-634906825096331264	obamacare,uninsured,arrived,obama,health	0.64119816,0.14737846,0.13566247,0.043166615,0.03259427
686-641039258896105472	uninsured,obama,obamacare,arrived,health	0.90628505,0.036495358,0.01966029,0.01915231,0.018407008
686-628721020589846528	uninsured,obama,obamacare,arrived,health	0.90628505,0.036495358,0.01966029,0.01915231,0.018407008
686-624219530043088897	obamacare,arrived,uninsured,health,obama	0.3705066,0.3253234,0.17370783,0.079816766,0.050645396
686-636599743368433664	health,obamacare,obama,arrived,uninsured	0.78527975,0.09929961,0.049725384,0.03687912,0.028816117
686-647885722557521920	uninsured,obama,arrived,obamacare,health	0.7042661,0.10374403,0.07648889,0.058425922,0.057075102
686-635493376251465728	arrived,health,uninsured,obama,obamacare	0.7255293,0.14864916,0.061393622,0.041344773,0.023083167
686-625081523293786112	health,obama,uninsured,arrived,obamacare	0.29944465,0.29422075,0.175611,0.15539436,0.07532925
686-639913965783515136	uninsured,obama,obamacare,health,arrived	0.9118167,0.036407992,0.018384583,0.01784506,0.015545624
686-648277222403481600	obamacare,obama,health,arrived,uninsured	0.8023268,0.07712428,0.043267768,0.039297428,0.03798373
686-628311972073897984	arrived,obamacare,uninsured,obama,health	0.6689519,0.2173225,0.06699059,0.02400182,0.022733167
686-642195137498492928	obama,health,obamacare,arrived,uninsured	0.96966666,0.016447766,0.010532919,0.0022601446,0.0010925188
686-630788560979783680	arrived,health,uninsured,obama,obamacare	0.6610266,0.15404563,0.11065284,0.043896202,0.030378718
686-637009935209885697	obamacare,uninsured,obama,health,arrived	0.68997455,0.13754582,0.07408788,0.05495976,0.043432
686-633770719080398848	obamacare,health,arrived,uninsured,obama	0.32702193,0.28995645,0.25614232,0.1249283,0.0019509733
686-642492765104791552	health,arrived,obama,obamacare,uninsured	0.38744974,0.3275681,0.10831911,0.10115671,0.07550634
686-622336353708195841	arrived,health,uninsured,obama,obamacare	0.7255293,0.14864916,0.061393622,0.041344773,0.023083167
686-619714351092510720	obamacare,arrived,obama,health,uninsured	0.74489725,0.1667524,0.046815593,0.022928227,0.01860655
686-631278908395012096	obamacare,uninsured,arrived,obama,health	0.45272276,0.24979182,0.17370677,0.07379999,0.049978662
686-641644822713905152	obamacare,arrived,health,obama,uninsured	0.9988659,3.1709057E-4,2.8120648E-4,2.7256875E-4,2.6325404E-4
686-626218333218566144	uninsured,arrived,obama,health,obamacare	0.79067636,0.12711772,0.03899023,0.022001982,0.021213729
686-632334208858505216	obamacare,obama,health,arrived,uninsured	0.9054032,0.040412277,0.020188386,0.018647933,0.015348213
686-619671842278670336	arrived,health,obama,uninsured,obamacare	0.5360329,0.15412083,0.11247861,0.112139,0.08522867
686-647266641449889793	arrived,obama,health,obamacare,uninsured	0.63612163,0.1125794,0.086519524,0.08602997,0.07874948
686-644908192321769472	obama,health,obamacare,arrived,uninsured	0.71467966,0.23991014,0.016434144,0.015265099,0.0137109645
686-638737010400825345	uninsured,health,obamacare,arrived,obama	0.35379052,0.28604305,0.20974436,0.09738076,0.0530413
686-646786569517428736	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-628325741231505408	arrived,uninsured,health,obamacare,obama	0.3203433,0.30253556,0.19289467,0.13372357,0.050502885
686-630893629754712064	arrived,health,obamacare,uninsured,obama	0.41855302,0.29291353,0.1596318,0.071855344,0.0570463
686-640565253332340736	obamacare,uninsured,arrived,obama,health	0.6858627,0.2134562,0.042337995,0.037394788,0.020948311
686-634269298513592320	uninsured,health,obamacare,arrived,obama	0.7173174,0.12748268,0.1163947,0.024839912,0.013965314
686-629812760604377088	obamacare,arrived,health,uninsured,obama	0.7485034,0.24406551,0.0034826307,0.0029324521,0.0010160409
686-632899496645689344	obamacare,uninsured,arrived,obama,health	0.6858627,0.2134562,0.042337995,0.037394788,0.020948311
686-631206864357724160	health,obamacare,arrived,obama,uninsured	0.6578036,0.14657657,0.13845117,0.040976595,0.016192084
686-615265798299385856	uninsured,health,arrived,obamacare,obama	0.6115907,0.29864097,0.041300472,0.03760273,0.010865144
686-646424105525317632	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-617463364097286145	arrived,uninsured,obama,obamacare,health	0.829552,0.0952623,0.030235045,0.025959572,0.018991068
686-629475912120074240	obamacare,uninsured,obama,health,arrived	0.5346277,0.2552213,0.09667583,0.057239607,0.056235593
686-646605074613972992	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-641441728847810562	uninsured,obamacare,arrived,health,obama	0.56566006,0.13425161,0.13398793,0.12981835,0.03628203
686-625798655543480321	arrived,health,obama,obamacare,uninsured	0.82000315,0.1098479,0.032535885,0.01917426,0.018438827
686-620421402194264065	health,uninsured,obamacare,obama,arrived	0.5126043,0.20380579,0.20372225,0.051936354,0.027931299
686-646242282321113088	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-631488673989685249	health,obama,uninsured,obamacare,arrived	0.73601454,0.16743505,0.06350909,0.020787213,0.012254101
686-646844583981223937	arrived,health,obamacare,obama,uninsured	0.4801158,0.3342325,0.06932384,0.060912367,0.05541549
686-634897601582645252	obamacare,health,obama,arrived,uninsured	0.61871165,0.26365373,0.056971006,0.03340988,0.027253732
686-616085864548995076	obamacare,arrived,uninsured,obama,health	0.56753826,0.21020424,0.09452458,0.07774525,0.049987696
686-647674617675382784	arrived,obama,obamacare,health,uninsured	0.92405427,0.032053743,0.016301978,0.015804315,0.011785715
686-632260904734879744	obamacare,obama,health,arrived,uninsured	0.92690516,0.031284127,0.015607268,0.01435786,0.011845618
686-648579529376579584	obamacare,obama,health,arrived,uninsured	0.86824846,0.046536516,0.037893027,0.02545273,0.021869289
686-630836382605250560	uninsured,health,obama,obamacare,arrived	0.7205953,0.21726078,0.032160193,0.016221268,0.013762492
686-632268093180395521	health,arrived,uninsured,obamacare,obama	0.3286451,0.2604836,0.23586172,0.117680684,0.057328906
686-648482093241122816	health,obama,uninsured,obamacare,arrived	0.84890693,0.056681775,0.039579395,0.029981725,0.024850154
686-630122338860699648	obamacare,obama,health,arrived,uninsured	0.9213049,0.03107524,0.022878366,0.013438124,0.011303392
686-630938400653185024	health,uninsured,arrived,obamacare,obama	0.34192106,0.32809925,0.23428252,0.059448443,0.03624873
686-641940723693129728	uninsured,health,obama,arrived,obamacare	0.63412386,0.15008107,0.13705368,0.05649887,0.022242507
686-630111356767879168	health,obama,obamacare,arrived,uninsured	0.88752085,0.047900215,0.02474382,0.021109397,0.018725695
686-640636855629815812	health,uninsured,obamacare,obama,arrived	0.6975998,0.13257585,0.1182894,0.035465732,0.016069164
686-616515346250338304	health,arrived,uninsured,obama,obamacare	0.6532755,0.1469939,0.136924,0.041328598,0.021478005
686-635302278015111168	health,uninsured,obamacare,obama,arrived	0.6975998,0.13257585,0.1182894,0.035465732,0.016069164
686-625826575800512512	obamacare,arrived,health,obama,uninsured	0.40637895,0.31855398,0.18328191,0.059305184,0.032479968
686-628549953464442880	uninsured,arrived,obamacare,obama,health	0.3625303,0.346833,0.20387955,0.049995117,0.03676205
686-631189031649472512	health,obamacare,uninsured,arrived,obama	0.33880574,0.21485855,0.17963724,0.17900783,0.08769065
686-643548573326548992	arrived,health,uninsured,obama,obamacare	0.35957944,0.20459063,0.18619026,0.17397562,0.07566401
686-621055295754760192	uninsured,obamacare,arrived,health,obama	0.34715784,0.32000792,0.17751633,0.07977179,0.07554613
686-628363059392835584	obama,obamacare,health,arrived,uninsured	0.933393,0.018786235,0.018196184,0.01597685,0.013647758
686-619198859055636480	uninsured,health,obama,arrived,obamacare	0.36855325,0.2571628,0.19465128,0.15305975,0.026572917
686-632006491499687937	arrived,obamacare,uninsured,obama,health	0.43295997,0.3552992,0.1361099,0.04622534,0.029405551
686-646813577509126145	uninsured,obama,obamacare,health,arrived	0.9215532,0.03239147,0.016356833,0.01586731,0.0138311675
686-647067341604319232	arrived,obama,health,obamacare,uninsured	0.7743903,0.07289096,0.058422733,0.050157264,0.044138774
686-615355003922821120	health,obamacare,arrived,uninsured,obama	0.96953416,0.021563262,0.00456708,0.002387685,0.001947802
686-617787799224365056	arrived,uninsured,health,obama,obamacare	0.39578554,0.28004676,0.2341617,0.053114258,0.036891736
686-630063711454146560	obamacare,arrived,obama,health,uninsured	0.40923312,0.36591807,0.13666101,0.0541768,0.03401099
686-619871344671465472	health,obamacare,obama,arrived,uninsured	0.56750923,0.2814715,0.05609847,0.04838125,0.046539575
686-636963530147778560	obamacare,health,arrived,obama,uninsured	0.5652605,0.23560569,0.13379681,0.047649566,0.017687403
686-634491942840176640	obama,uninsured,health,arrived,obamacare	0.7301506,0.11912219,0.11333579,0.021566128,0.015825305
686-648054638449561600	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-618021893250097156	health,arrived,obama,obamacare,uninsured	0.8115408,0.121889055,0.035510503,0.01803741,0.013022273
686-618167676955959296	obama,obamacare,health,arrived,uninsured	0.29148725,0.18915255,0.1849808,0.17484799,0.1595314
686-649027296435638272	uninsured,obamacare,arrived,health,obama	0.37369874,0.24023761,0.1856384,0.12709767,0.07332761
686-634425164973764608	uninsured,obamacare,obama,health,arrived	0.64546233,0.2722445,0.041572586,0.020939993,0.019780554
686-646502810452803584	arrived,uninsured,health,obama,obamacare	0.59964544,0.16765521,0.15603575,0.049132057,0.027531516
686-638901741434634240	obamacare,obama,health,arrived,uninsured	0.85041547,0.041043203,0.037808754,0.037658986,0.033073578
686-634797559924453376	health,uninsured,obama,obamacare,arrived	0.39235714,0.25841087,0.14053357,0.13313398,0.07556444
686-621413861728591873	obamacare,uninsured,arrived,obama,health	0.37216246,0.24811527,0.14670512,0.1388348,0.09418235
686-630746895246176256	arrived,obama,health,obamacare,uninsured	0.8015347,0.073738426,0.044858303,0.04437607,0.03549248
686-634898130392231936	obamacare,health,obama,arrived,uninsured	0.61871165,0.26365373,0.056971006,0.03340988,0.027253732
686-637542066772291584	arrived,obama,obamacare,health,uninsured	0.92405427,0.032053743,0.016301978,0.015804315,0.011785715
686-637772519731261440	obamacare,uninsured,obama,arrived,health	0.7044215,0.1779424,0.056196842,0.03276143,0.028677786
686-615250557838622720	uninsured,obamacare,obama,health,arrived	0.69250256,0.16728722,0.06814702,0.037669744,0.03439343
686-623424864108425217	obama,obamacare,health,arrived,uninsured	0.8643108,0.045039598,0.037850346,0.027724389,0.025074854
686-623986762885558272	uninsured,health,obama,obamacare,arrived	0.49780345,0.2623614,0.10543309,0.068108626,0.06629341
686-623840148153856000	health,uninsured,arrived,obama,obamacare	0.38363472,0.2624566,0.22986035,0.074711554,0.049336806
686-646786536109805568	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-644203001641615360	health,arrived,obamacare,uninsured,obama	0.3870326,0.27448833,0.21091926,0.08187237,0.04568745
686-648548778908123137	obamacare,obama,health,arrived,uninsured	0.8141897,0.06532969,0.0503999,0.036266215,0.033814535
686-648324875971620864	health,arrived,obama,uninsured,obamacare	0.31262988,0.2876178,0.1372549,0.1314347,0.13106275
686-616752808713433089	obamacare,uninsured,health,obama,arrived	0.4522647,0.38689455,0.061460618,0.056285147,0.043094963
686-639855932046970880	uninsured,health,obama,arrived,obamacare	0.46315148,0.24120048,0.11600201,0.09125362,0.08839242
686-622731067313782784	arrived,health,uninsured,obama,obamacare	0.61186635,0.22738793,0.07109455,0.049324676,0.040326484
686-624158421743308800	arrived,health,obama,obamacare,uninsured	0.80367047,0.11973462,0.0408432,0.020790963,0.014960719
686-631886438099996672	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-626898466426515456	obama,uninsured,arrived,obamacare,health	0.43512568,0.23232415,0.22952981,0.053914588,0.049105756
686-632013103035719680	health,uninsured,arrived,obamacare,obama	0.5336347,0.14040251,0.1382948,0.10123549,0.08643245
686-632200312539901953	uninsured,obamacare,arrived,health,obama	0.39649203,0.30064553,0.15679982,0.10491325,0.04114935
686-624584720416944128	obamacare,uninsured,arrived,obama,health	0.6285774,0.13571791,0.12349994,0.06288452,0.049320247
686-640705626801315840	health,uninsured,obamacare,obama,arrived	0.6975998,0.13257585,0.1182894,0.035465732,0.016069164
686-615967160876150785	obamacare,arrived,health,uninsured,obama	0.3550273,0.29373735,0.17438734,0.105298415,0.07154961
686-623952333257486340	arrived,uninsured,obamacare,health,obama	0.63782984,0.14107798,0.123717345,0.06618386,0.031190978
686-624688698853040130	uninsured,health,arrived,obama,obamacare	0.3674564,0.26396984,0.24193947,0.07275533,0.053878963
686-618311140725157888	arrived,obama,obamacare,health,uninsured	0.8625456,0.057386428,0.029854087,0.028699493,0.021514399
686-634537518927605761	uninsured,arrived,obama,obamacare,health	0.638936,0.20166966,0.076046884,0.041744877,0.041602623
686-646278247135768576	arrived,health,uninsured,obamacare,obama	0.3114312,0.29408416,0.23819731,0.11732724,0.038960095
686-627480249815666688	health,uninsured,obamacare,arrived,obama	0.34338373,0.2849826,0.23668322,0.09774011,0.03721035
686-624238038911094784	health,uninsured,obamacare,obama,arrived	0.442351,0.30270702,0.16296493,0.05575374,0.0362233
686-615285324625874944	uninsured,obama,obamacare,health,arrived	0.9215532,0.03239147,0.016356833,0.01586731,0.0138311675
686-634626777978007552	obamacare,arrived,obama,health,uninsured	0.7475631,0.105952494,0.068171345,0.045655552,0.03265746
686-621776866538557440	uninsured,obamacare,arrived,obama,health	0.607985,0.22534731,0.06478604,0.06387123,0.038010415
686-631661145129140224	health,obamacare,arrived,obama,uninsured	0.59574825,0.20213807,0.13555388,0.04822113,0.018338673
686-635037435005538304	arrived,obama,health,obamacare,uninsured	0.860201,0.057504665,0.030685466,0.029999947,0.021608919
686-619196149329752064	obama,obamacare,arrived,uninsured,health	0.55874103,0.26327032,0.13025439,0.033530295,0.014203992
686-619637610709954560	arrived,uninsured,obama,obamacare,health	0.40550104,0.24416569,0.16810264,0.12181537,0.06041528
686-620659214583595009	obamacare,obama,uninsured,arrived,health	0.8545599,0.04925154,0.043092035,0.02894823,0.024148306
686-628161242365100032	obamacare,health,obama,uninsured,arrived	0.4146864,0.30811203,0.12143829,0.0904591,0.06530418
686-615279049498361856	obamacare,arrived,uninsured,health,obama	0.27602762,0.2596174,0.25607407,0.10786854,0.100412406
686-618791345898045440	arrived,obamacare,uninsured,obama,health	0.37181714,0.21781912,0.17850769,0.13274866,0.0991074
686-621545375116185600	obamacare,arrived,uninsured,health,obama	0.5565811,0.21205729,0.103105105,0.08051663,0.047739875
686-627490524736397312	health,uninsured,obamacare,arrived,obama	0.59870535,0.1696806,0.121918954,0.073677756,0.03601732
686-634418046539468800	health,arrived,obama,obamacare,uninsured	0.82899487,0.109239995,0.031424943,0.01823725,0.01210291
686-621783075354079236	obamacare,arrived,uninsured,health,obama	0.55818486,0.35675433,0.06837628,0.015320238,0.0013642878
686-628309775076466688	uninsured,obama,obamacare,arrived,health	0.9060876,0.036540642,0.019702021,0.019207222,0.018462548
686-638800735153614848	health,uninsured,obamacare,obama,arrived	0.628939,0.21706581,0.10638534,0.031622972,0.01598687
686-628813056206737412	uninsured,health,obama,obamacare,arrived	0.7955589,0.1274255,0.03570065,0.021554952,0.019759977
686-634167774147817472	obamacare,uninsured,health,obama,arrived	0.4524877,0.23574312,0.15840162,0.08160658,0.07176097
686-614994353388396544	obamacare,arrived,obama,health,uninsured	0.8247357,0.10054779,0.038205273,0.02026239,0.016248839
686-648286605384413184	obamacare,obama,health,arrived,uninsured	0.8746332,0.0551316,0.026876997,0.023441536,0.01991668
686-630838831332372480	uninsured,health,obama,obamacare,arrived	0.7205953,0.21726078,0.032160193,0.016221268,0.013762492
686-617018173582389248	obamacare,arrived,obama,health,uninsured	0.77490085,0.14674273,0.04058011,0.019983388,0.017792895
686-646468298561978368	uninsured,health,arrived,obamacare,obama	0.63562053,0.17088677,0.0761326,0.06183845,0.055521637
686-621453776927518720	health,arrived,uninsured,obamacare,obama	0.5235126,0.23244558,0.13078667,0.064650446,0.048604716
686-635951395447947265	arrived,obama,obamacare,health,uninsured	0.8181162,0.069216855,0.052353363,0.034685273,0.025628302
686-627153055654522880	obamacare,health,arrived,uninsured,obama	0.32965484,0.20605892,0.2022409,0.19348879,0.06855655
686-620782911680176128	health,uninsured,arrived,obamacare,obama	0.49064815,0.22524087,0.15244585,0.094474666,0.03719047
686-621687784366059520	arrived,obamacare,health,uninsured,obama	0.27400672,0.2685898,0.19101086,0.18198073,0.08441186
686-644636464706363392	health,uninsured,obamacare,obama,arrived	0.628939,0.21706581,0.10638534,0.031622972,0.01598687
686-615335732002070528	health,obamacare,arrived,uninsured,obama	0.4063159,0.2777741,0.13814531,0.13319388,0.0445708
686-627837913724796928	arrived,uninsured,health,obamacare,obama	0.430161,0.25440693,0.21705969,0.063073,0.03529939
686-631631341923233793	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-625727600871256065	health,arrived,obama,obamacare,uninsured	0.86407924,0.06402203,0.03720746,0.019576382,0.015114903
686-626179524460281856	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-634537574179184640	arrived,uninsured,obamacare,obama,health	0.25395364,0.24831149,0.2288064,0.22529468,0.04363379
686-620725615377928192	health,uninsured,arrived,obamacare,obama	0.4276213,0.26002732,0.183892,0.072640195,0.055819195
686-629500860091863042	obamacare,health,arrived,obama,uninsured	0.84452814,0.06879864,0.04797368,0.028155455,0.010544109
686-642327621083115520	uninsured,health,arrived,obama,obamacare	0.70926815,0.2078437,0.047110554,0.027962942,0.007814633
686-646300617342758912	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-645518141896785920	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-633440325407756288	arrived,obamacare,health,obama,uninsured	0.7771918,0.12961149,0.041612513,0.035768297,0.015815903
686-646475329503109121	arrived,uninsured,health,obama,obamacare	0.7756008,0.08427574,0.055613387,0.050457604,0.03405246
686-624799360425918464	arrived,obamacare,obama,health,uninsured	0.534789,0.27567023,0.09198379,0.055457212,0.042099744
686-620336618029756416	obamacare,arrived,health,uninsured,obama	0.7485034,0.24406551,0.0034826307,0.0029324521,0.0010160409
686-623931780903604224	obamacare,arrived,obama,health,uninsured	0.5680629,0.28305706,0.06886811,0.044630848,0.035381064
686-629076011758546944	health,uninsured,arrived,obama,obamacare	0.45565808,0.18165033,0.14464344,0.12161846,0.09642969
686-617327439274864640	arrived,obamacare,health,obama,uninsured	0.523718,0.18856773,0.15985854,0.105352566,0.022503143
686-634902216449593344	arrived,obama,uninsured,obamacare,health	0.5872409,0.13713507,0.10480841,0.08786789,0.08294776
686-632263903716769792	obamacare,uninsured,health,arrived,obama	0.57061785,0.22446227,0.13729456,0.03432503,0.033300303
686-632255673019924480	health,arrived,obama,obamacare,uninsured	0.8019095,0.11047307,0.046854768,0.02366075,0.017101912
686-647678227729612800	arrived,obamacare,obama,uninsured,health	0.62162215,0.26456955,0.053592425,0.032301083,0.0279148
686-627862770655080448	uninsured,arrived,obamacare,obama,health	0.35236767,0.2845731,0.24762928,0.06421649,0.051213466
686-629315699958087680	arrived,obama,obamacare,health,uninsured	0.92405427,0.032053743,0.016301978,0.015804315,0.011785715
686-629476256342347776	obamacare,uninsured,obama,health,arrived	0.42604715,0.40870264,0.076113194,0.045294635,0.043842394
686-637730101313040384	uninsured,arrived,obamacare,health,obama	0.38405633,0.30980095,0.16771041,0.08908776,0.049344547
686-628754698825302016	arrived,obama,obamacare,health,uninsured	0.61226684,0.1357351,0.12369521,0.09419921,0.03410362
686-629444099490185216	arrived,obama,obamacare,health,uninsured	0.8818235,0.047795273,0.02898255,0.02367252,0.01772616
686-615002970216886272	obamacare,obama,health,arrived,uninsured	0.77440727,0.12283841,0.043135446,0.030995525,0.028623363
686-632590407214362625	obamacare,health,obama,arrived,uninsured	0.7574322,0.15605272,0.046912815,0.021798177,0.01780409
686-646061430953766912	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-615036797295300608	health,obamacare,obama,arrived,uninsured	0.4660508,0.27069798,0.14295438,0.062506504,0.057790346
686-643446040788639744	health,uninsured,obamacare,obama,arrived	0.473218,0.23668994,0.13802704,0.08807078,0.06399422
686-643399220595191808	uninsured,arrived,obamacare,health,obama	0.3430947,0.26147032,0.25298357,0.07894534,0.063506104
686-644540546611048448	arrived,uninsured,obama,obamacare,health	0.72736347,0.16042009,0.05062273,0.033926602,0.0276671
686-632686177011802112	obamacare,obama,health,arrived,uninsured	0.9269864,0.03126364,0.015587471,0.014339812,0.011822657
686-641438706306433025	health,obamacare,obama,arrived,uninsured	0.6746256,0.17044175,0.08317715,0.039577793,0.032177735
686-646061446837616640	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-627564974290808832	health,uninsured,obama,obamacare,arrived	0.4686941,0.27978516,0.10724533,0.07822101,0.06605441
686-636429325764419584	obamacare,uninsured,arrived,health,obama	0.35149843,0.22603105,0.2073623,0.15161133,0.063496895
686-636906769248321540	uninsured,obama,arrived,health,obamacare	0.34635147,0.24437344,0.22394384,0.11869542,0.06663581
686-648616208187523073	obamacare,obama,health,arrived,uninsured	0.82361716,0.06560541,0.039944462,0.037158716,0.033674236
686-621038261482463233	uninsured,obamacare,arrived,health,obama	0.34715784,0.32000792,0.17751633,0.07977179,0.07554613
686-646327243808075776	arrived,uninsured,health,obama,obamacare	0.7756008,0.08427574,0.055613387,0.050457604,0.03405246
686-645336375991136256	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-615117824927891456	health,obamacare,uninsured,obama,arrived	0.737961,0.12183214,0.08415742,0.03294067,0.023108747
686-620337277407866880	health,uninsured,obamacare,arrived,obama	0.39096898,0.35753676,0.11421499,0.107090645,0.030188635
686-615247606382526464	health,obamacare,arrived,obama,uninsured	0.28773403,0.2581324,0.22762379,0.13998829,0.086521514
686-639415900643438592	health,arrived,uninsured,obamacare,obama	0.4700073,0.21151935,0.1763326,0.10862811,0.033512656
686-633972295703371777	obamacare,arrived,health,obama,uninsured	0.9989817,2.825973E-4,2.503935E-4,2.5008537E-4,2.3523046E-4
686-634038667313483776	obamacare,obama,health,arrived,uninsured	0.8414789,0.06763859,0.033805776,0.03138475,0.025691971
686-616455171426676736	obama,health,obamacare,arrived,uninsured	0.7171294,0.25168332,0.024801573,0.00379465,0.0025910276
686-622197045357494272	obamacare,arrived,uninsured,health,obama	0.34527957,0.2622823,0.18043153,0.17118348,0.040823106
686-625991467325104128	obamacare,arrived,uninsured,obama,health	0.5504514,0.17577711,0.17322686,0.059872713,0.040671892
686-625060075359440896	obama,arrived,obamacare,health,uninsured	0.5484522,0.39343122,0.02374881,0.019930506,0.0144372815
686-616687103800406017	obamacare,health,uninsured,obama,arrived	0.74569154,0.09787425,0.06255074,0.059423298,0.034460206
686-646510018871840769	arrived,obama,obamacare,health,uninsured	0.8818235,0.047795273,0.02898255,0.02367252,0.01772616
686-630925517043183617	health,obamacare,uninsured,arrived,obama	0.5949726,0.21907964,0.079907894,0.0583585,0.047681328
686-646605503909523457	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-630084056386895872	obamacare,uninsured,arrived,health,obama	0.8659305,0.13060988,0.0014747083,0.0012210977,7.638369E-4
686-636788423978807296	arrived,obama,obamacare,health,uninsured	0.88751644,0.044731,0.02430044,0.024121912,0.019330228
686-617864586159620096	obamacare,arrived,obama,health,uninsured	0.69130343,0.24170755,0.035413843,0.017391374,0.0141838025
686-623923856554766336	uninsured,health,arrived,obamacare,obama	0.30331036,0.27186024,0.22831693,0.1520824,0.04443008
686-632027204575084544	arrived,obamacare,health,obama,uninsured	0.70186,0.12571912,0.07723017,0.05059994,0.044590782
686-623610647834550273	obamacare,arrived,health,uninsured,obama	0.37305358,0.23331058,0.18158883,0.16385292,0.048194114
686-625682109923921920	obamacare,health,arrived,obama,uninsured	0.3855594,0.2212338,0.19464657,0.11422348,0.08433674
686-623619986498670592	uninsured,health,obama,arrived,obamacare	0.7951278,0.12969565,0.0367867,0.019481676,0.01890813
686-616743960401342464	arrived,obamacare,health,obama,uninsured	0.6778543,0.17530832,0.06605097,0.04893288,0.031853534
686-645699147215958016	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-646061584821841920	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647873554940346368	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-634627049135714304	uninsured,arrived,obama,obamacare,health	0.638936,0.20166966,0.076046884,0.041744877,0.041602623
686-637421850859929601	obama,arrived,health,obamacare,uninsured	0.56361955,0.20387937,0.17617638,0.029781224,0.026543459
686-628937278145069056	arrived,uninsured,health,obama,obamacare	0.721024,0.14833601,0.05632427,0.047728647,0.026587103
686-631894249622106113	obamacare,obama,arrived,health,uninsured	0.99702656,0.0010496987,6.6536607E-4,6.308324E-4,6.275207E-4
686-626225752812462080	obamacare,arrived,health,obama,uninsured	0.51211756,0.1793642,0.15917055,0.10344655,0.045901094
686-637970910616621056	obama,arrived,obamacare,health,uninsured	0.31246856,0.206652,0.16700132,0.16164018,0.15223794
686-619722689754738688	health,obama,obamacare,uninsured,arrived	0.7323313,0.19419256,0.032556,0.020803602,0.020116547
686-625803234674761728	arrived,uninsured,obama,health,obamacare	0.39056876,0.38983324,0.14133854,0.042906236,0.035353214
686-618795774386671616	health,obamacare,uninsured,arrived,obama	0.66892177,0.12380031,0.10839894,0.056647073,0.0422319
686-636903097823010821	obamacare,obama,health,arrived,uninsured	0.5770128,0.18160637,0.09109691,0.079974845,0.07030909
686-645600137327284224	uninsured,health,arrived,obamacare,obama	0.41223535,0.33558,0.14215064,0.074982405,0.035051603
686-624302945010630656	arrived,obama,obamacare,uninsured,health	0.6175553,0.1529791,0.13673384,0.064378396,0.028353333
686-636603470011723776	obamacare,uninsured,health,arrived,obama	0.36593843,0.21194443,0.18863903,0.16237345,0.07110467
686-631850128282750976	obama,obamacare,health,arrived,uninsured	0.3606954,0.18113519,0.1754122,0.15290786,0.12984937
686-615088084024184832	arrived,obamacare,uninsured,health,obama	0.3405067,0.3152901,0.16768369,0.14387685,0.03264267
686-642818747854680064	uninsured,health,obama,arrived,obamacare	0.5108515,0.21967801,0.1442272,0.07516636,0.05007692
686-632306677593829376	health,arrived,obama,obamacare,uninsured	0.8019095,0.11047307,0.046854768,0.02366075,0.017101912
686-621723729643487232	uninsured,health,obamacare,arrived,obama	0.4007389,0.30072555,0.12347248,0.089288995,0.08577407
686-631482289097043968	uninsured,arrived,health,obama,obamacare	0.75045687,0.09359586,0.07175631,0.054318298,0.029872656
686-644304831713288192	uninsured,obama,obamacare,health,arrived	0.34976554,0.23014295,0.20850004,0.11620705,0.095384434
686-631945951314378752	arrived,obamacare,uninsured,obama,health	0.43295997,0.3552992,0.1361099,0.04622534,0.029405551
686-623950444549640192	uninsured,arrived,health,obamacare,obama	0.56403637,0.22230801,0.17214835,0.036729395,0.0047778566
686-625837570392326146	uninsured,obamacare,arrived,obama,health	0.600647,0.22072811,0.08746793,0.051073354,0.040083613
686-644965129025646592	obama,health,obamacare,arrived,uninsured	0.71467966,0.23991014,0.016434144,0.015265099,0.0137109645
686-634235782941777920	obamacare,arrived,obama,health,uninsured	0.69690466,0.23446332,0.03528309,0.019876743,0.013472189
686-626813720182792193	health,arrived,uninsured,obama,obamacare	0.6363682,0.19497916,0.107625246,0.033069696,0.027957654
686-636288385133314048	arrived,health,uninsured,obamacare,obama	0.29764983,0.2663164,0.2504298,0.14272873,0.0428752
686-622222978403569664	arrived,health,uninsured,obama,obamacare	0.61186635,0.22738793,0.07109455,0.049324676,0.040326484
686-618013408244293633	arrived,obama,health,obamacare,uninsured	0.921101,0.03179031,0.017516635,0.016274456,0.013317641
686-624316405777731584	arrived,uninsured,health,obamacare,obama	0.79958785,0.06986169,0.06607043,0.032794923,0.031685103
686-618992162005471232	health,arrived,obama,obamacare,uninsured	0.8115408,0.121889055,0.035510503,0.01803741,0.013022273
686-621684586645426176	obama,uninsured,arrived,health,obamacare	0.44548988,0.2624889,0.20173728,0.048352867,0.04193108
686-624008997197090816	obama,arrived,obamacare,health,uninsured	0.54877114,0.26587293,0.15104103,0.019979231,0.014335632
686-628010884908998656	obamacare,arrived,uninsured,obama,health	0.40601605,0.26827526,0.2521129,0.043824345,0.029771453
686-646786631266004994	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-630905455150268416	health,uninsured,obama,obamacare,arrived	0.6645202,0.16154416,0.084020264,0.050226487,0.039688878
686-640970399384211456	uninsured,arrived,health,obamacare,obama	0.4652955,0.17239375,0.16866203,0.12757687,0.06607187
686-625737348605706241	arrived,obamacare,uninsured,obama,health	0.37916833,0.3365051,0.17697558,0.06278434,0.04456666
686-633275625130868736	obamacare,obama,arrived,health,uninsured	0.3831222,0.2700297,0.13399409,0.11034183,0.10251219
686-637700374229581828	health,obama,uninsured,obamacare,arrived	0.55778366,0.21662743,0.12979,0.05032959,0.045469336
686-640173927088697344	arrived,uninsured,health,obamacare,obama	0.9539554,0.024731686,0.012501043,0.0051171933,0.003694661
686-645517640597827584	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-643150951591866368	uninsured,health,obama,obamacare,arrived	0.7406757,0.16558263,0.048335824,0.024569858,0.020836025
686-635559258424217600	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-636344154457550849	arrived,obamacare,health,uninsured,obama	0.31718868,0.25212926,0.20485693,0.17316957,0.052655574
686-615035044835409920	obamacare,health,arrived,obama,uninsured	0.467383,0.30075368,0.10562759,0.08662378,0.039611947
686-624622777195208704	arrived,uninsured,health,obama,obamacare	0.52666736,0.24717756,0.16405343,0.03976889,0.022332778
686-643178975238291456	health,uninsured,obamacare,obama,arrived	0.6975998,0.13257585,0.1182894,0.035465732,0.016069164
686-617792250748125184	obamacare,arrived,obama,health,uninsured	0.69690466,0.23446332,0.03528309,0.019876743,0.013472189
686-648194345598763008	uninsured,arrived,obamacare,obama,health	0.66161036,0.1494768,0.12319115,0.043076802,0.0226449
686-639944008194658304	arrived,obamacare,obama,uninsured,health	0.5448766,0.19023262,0.13554464,0.10941247,0.019933712
686-648614268741382144	uninsured,arrived,health,obamacare,obama	0.6080653,0.20634557,0.07615926,0.0690915,0.040338367
686-623873781270867968	obamacare,uninsured,arrived,health,obama	0.32469726,0.29966068,0.16061844,0.15744738,0.057576228
686-646242406464126976	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-625198386199834624	health,arrived,obama,obamacare,uninsured	0.35611987,0.22033167,0.1977797,0.12346212,0.10230663
686-639146928429596672	uninsured,obama,obamacare,health,arrived	0.9215532,0.03239147,0.016356833,0.01586731,0.0138311675
686-621387787615490048	obamacare,obama,health,arrived,uninsured	0.51718277,0.31362852,0.06414805,0.0557413,0.049299393
686-633998601409155072	obamacare,obama,health,arrived,uninsured	0.81909025,0.06710052,0.04042379,0.039315324,0.03407015
686-619897367643361285	arrived,uninsured,obama,obamacare,health	0.83472383,0.06057453,0.04955282,0.029832745,0.025316076
686-619100234052796417	obama,uninsured,obamacare,health,arrived	0.82783335,0.12451655,0.016915424,0.016349709,0.014384949
686-632979141273382912	health,uninsured,arrived,obama,obamacare	0.44065055,0.27204502,0.2003302,0.05227454,0.034699675
686-639237102492876800	arrived,uninsured,health,obamacare,obama	0.526621,0.21210288,0.192782,0.054421477,0.014072633
686-645517937709850624	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-649079379738234882	obamacare,obama,health,arrived,uninsured	0.87875015,0.048425235,0.02683678,0.02442045,0.021567415
686-629475879580758017	obamacare,uninsured,arrived,obama,health	0.4316894,0.2088205,0.1597952,0.12533878,0.0743561
686-639567740714504193	uninsured,arrived,health,obama,obamacare	0.64409935,0.10425045,0.10218467,0.08962635,0.059839167
686-642436356447293441	health,uninsured,obamacare,obama,arrived	0.6648292,0.19666167,0.09589161,0.028310254,0.014307257
686-634436232060076033	health,uninsured,arrived,obama,obamacare	0.64701205,0.14769992,0.1393842,0.04085149,0.025052322
686-635274772750860288	arrived,obamacare,obama,uninsured,health	0.7627657,0.14773604,0.041061785,0.028123306,0.02031313
686-648280245825441793	obamacare,obama,health,arrived,uninsured	0.86348855,0.054905247,0.030168843,0.02733099,0.02410638
686-618368503595274240	uninsured,obama,health,obamacare,arrived	0.8335793,0.057422854,0.03913957,0.035633683,0.034224603
686-633057564519874560	arrived,obamacare,health,uninsured,obama	0.3253901,0.30725756,0.20400207,0.12826994,0.035080325
686-631727315366449152	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-618821726818955264	arrived,obama,obamacare,health,uninsured	0.8828781,0.044394713,0.026262475,0.025519896,0.02094478
686-634419855978983424	obama,obamacare,health,arrived,uninsured	0.52106905,0.35081178,0.045395575,0.04443215,0.03829143
686-645380602896719873	obamacare,health,uninsured,arrived,obama	0.37424132,0.3403928,0.14793712,0.08791384,0.04951491
686-646967551046488065	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-624623030887579648	arrived,uninsured,health,obama,obamacare	0.55526024,0.18042913,0.11819022,0.08633317,0.05978722
686-629632601087692801	uninsured,arrived,obama,health,obamacare	0.63950944,0.27062836,0.041796286,0.026418313,0.021647613
686-641740501616619520	health,obamacare,uninsured,obama,arrived	0.5949811,0.16723707,0.14967269,0.04753396,0.0405752
686-620249445578473472	arrived,health,obamacare,obama,uninsured	0.28773582,0.28462636,0.18813561,0.13014233,0.10935986
686-647511451880427520	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648888516286410752	obamacare,obama,health,arrived,uninsured	0.82361716,0.06560541,0.039944462,0.037158716,0.033674236
686-625388202774425600	obamacare,health,obama,arrived,uninsured	0.6132895,0.22137898,0.06318086,0.058411315,0.043739352
686-626597767998107648	arrived,health,obama,obamacare,uninsured	0.7315971,0.1397356,0.059128385,0.04550677,0.024032138
686-628640473234718720	health,uninsured,obama,obamacare,arrived	0.739911,0.15444429,0.048372053,0.030280191,0.026992416
686-629997899594776576	arrived,obamacare,health,obama,uninsured	0.7465977,0.13135542,0.072967514,0.03579448,0.013284884
686-644910498220240896	obama,health,obamacare,arrived,uninsured	0.71467966,0.23991014,0.016434144,0.015265099,0.0137109645
686-648236342992891906	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-615018681546862592	arrived,obamacare,health,obama,uninsured	0.4366467,0.34367505,0.090316884,0.074338585,0.05502278
686-641033558274891776	arrived,obama,health,obamacare,uninsured	0.921101,0.03179031,0.017516635,0.016274456,0.013317641
686-616779591298887684	obamacare,arrived,obama,health,uninsured	0.7559899,0.18405749,0.031716153,0.016458599,0.011777846
686-632203804663005184	arrived,obamacare,health,uninsured,obama	0.44971097,0.25448593,0.13158712,0.12213547,0.042080503
686-649031200099713024	uninsured,health,arrived,obama,obamacare	0.6761812,0.13595976,0.1311441,0.037120506,0.019594435
686-647544077542662144	uninsured,arrived,obama,obamacare,health	0.5834622,0.14200555,0.11019409,0.08815482,0.076183334
686-640343563528732672	obamacare,arrived,obama,health,uninsured	0.6303365,0.24134673,0.051867805,0.044379864,0.032069054
686-620004606848929792	obamacare,arrived,uninsured,health,obama	0.382321,0.33977634,0.12552457,0.11551085,0.03686725
686-629259689986031617	obamacare,arrived,uninsured,health,obama	0.400384,0.26796323,0.16769557,0.09200704,0.07195015
686-625081596354371584	arrived,uninsured,obama,obamacare,health	0.58983463,0.2398433,0.07856841,0.047942877,0.04381083
686-628670949659967488	health,uninsured,obamacare,obama,arrived	0.6411042,0.21088982,0.09455643,0.033320058,0.020129472
686-620267769087442944	health,obamacare,arrived,obama,uninsured	0.31489924,0.30418074,0.13925898,0.13639967,0.105261385
686-617794278362755073	obama,obamacare,health,arrived,uninsured	0.8643108,0.045039598,0.037850346,0.027724389,0.025074854
686-633790289778380800	obamacare,arrived,obama,health,uninsured	0.69690466,0.23446332,0.03528309,0.019876743,0.013472189
686-620707304099319808	obamacare,uninsured,obama,arrived,health	0.8084655,0.07246339,0.048388302,0.04714273,0.023540096
686-633441411010985984	obamacare,uninsured,obama,health,arrived	0.6216152,0.30262578,0.033352718,0.023339227,0.019067097
686-625263463791620096	obamacare,arrived,obama,health,uninsured	0.42019925,0.3263104,0.10750622,0.07501045,0.0709737
686-639105730155442178	obamacare,arrived,obama,health,uninsured	0.80255604,0.12895589,0.03567236,0.019111384,0.013704343
686-615299299493031942	uninsured,obama,obamacare,health,arrived	0.79829067,0.14926852,0.019219218,0.017713603,0.015507993
686-628292127475150848	uninsured,obamacare,obama,arrived,health	0.8243031,0.09958551,0.03463803,0.021206757,0.020266624
686-648235897641664512	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-643297726667493376	uninsured,health,obama,arrived,obamacare	0.56055546,0.3258378,0.043309055,0.036959432,0.03333829
686-619281736380256256	uninsured,arrived,obama,obamacare,health	0.67495793,0.20143224,0.060406208,0.03197651,0.031227112
686-632348918047637504	health,obama,arrived,obamacare,uninsured	0.45406628,0.32531646,0.08452627,0.07126829,0.06482268
686-645336359109005313	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-631859377717280768	obamacare,health,uninsured,arrived,obama	0.62937707,0.16433917,0.08534252,0.071037896,0.049903333
686-618999344440569857	obamacare,arrived,uninsured,obama,health	0.47800183,0.26207596,0.16239221,0.049762484,0.047767486
686-630525758759288832	arrived,uninsured,health,obama,obamacare	0.43037283,0.37426877,0.1052815,0.068119444,0.021957451
686-646061459756093440	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-629519941142577152	obamacare,health,arrived,obama,uninsured	0.84452814,0.06879864,0.04797368,0.028155455,0.010544109
686-646605619600863232	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-625793272582176768	obamacare,obama,arrived,health,uninsured	0.87483764,0.04132379,0.036543634,0.026330508,0.020964444
686-637641473408630784	health,obamacare,obama,uninsured,arrived	0.59076923,0.19194865,0.08203079,0.07092132,0.06433
686-631197812676521984	health,obamacare,arrived,obama,uninsured	0.44984967,0.2130082,0.15251341,0.09343362,0.09119511
686-638954046066290688	arrived,uninsured,obama,health,obamacare	0.8714833,0.052526146,0.037095197,0.019468246,0.019427108
686-617951777887883264	health,arrived,obamacare,uninsured,obama	0.47216693,0.23317641,0.13553695,0.10774994,0.051369764
686-636791131724976129	obamacare,arrived,obama,health,uninsured	0.5969833,0.3144905,0.04715033,0.02396536,0.017410496
686-647874055777878016	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-634368090160152576	obama,arrived,obamacare,uninsured,health	0.26034737,0.2543761,0.24133451,0.19031386,0.05362813
686-621403948843335680	arrived,uninsured,obamacare,health,obama	0.41788673,0.23669013,0.14266472,0.13498911,0.067769304
686-644185979113181184	arrived,health,uninsured,obama,obamacare	0.4049848,0.3631482,0.16023561,0.045078833,0.02655251
686-637871265642975232	health,obamacare,uninsured,arrived,obama	0.34248886,0.25248027,0.20862205,0.14079298,0.05561587
686-646242322041057280	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648612854984142848	uninsured,obama,health,obamacare,arrived	0.5758548,0.15916644,0.09060492,0.09017308,0.08420078
686-647873904225062912	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648061055483031552	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-628299060093456384	arrived,health,obamacare,uninsured,obama	0.47836187,0.2159215,0.16883221,0.09699275,0.039891653
686-629155772484722688	uninsured,health,arrived,obamacare,obama	0.48680323,0.20037343,0.15522037,0.08953188,0.06807109
686-630557180228452352	arrived,obamacare,health,obama,uninsured	0.7465977,0.13135542,0.072967514,0.03579448,0.013284884
686-622195055101521920	arrived,obamacare,health,uninsured,obama	0.37678036,0.2949426,0.20130886,0.078390725,0.04857747
686-629301850236420096	obamacare,uninsured,arrived,obama,health	0.37002155,0.32691056,0.20655099,0.059084084,0.03743283
686-642515547431772160	health,obamacare,uninsured,arrived,obama	0.35017514,0.27398616,0.26243287,0.07310568,0.04030017
686-615165092561334272	arrived,health,obamacare,uninsured,obama	0.42951822,0.2641638,0.20960046,0.054053895,0.042663604
686-629759484718632960	uninsured,arrived,obamacare,health,obama	0.36086553,0.22945347,0.19520524,0.16049305,0.053982694
686-633261959635275776	obamacare,uninsured,obama,health,arrived	0.4159337,0.25642854,0.13032612,0.102111824,0.095199846
686-638569162525151232	obamacare,health,uninsured,obama,arrived	0.34987625,0.23965396,0.20716366,0.10360735,0.09969878
686-633475835270328320	obamacare,health,arrived,obama,uninsured	0.6086017,0.17763537,0.14624056,0.04814338,0.019379029
686-624345449923780609	arrived,obamacare,obama,health,uninsured	0.5028693,0.22054985,0.18146807,0.062905855,0.032206923
686-622588512131350528	uninsured,arrived,obamacare,health,obama	0.25709596,0.23760723,0.22084922,0.2038201,0.080627516
686-617703550957649920	uninsured,health,arrived,obama,obamacare	0.5944871,0.1954486,0.118735276,0.05839455,0.0329345
686-625437234691338240	obamacare,uninsured,arrived,health,obama	0.78076404,0.17659247,0.03294535,0.005362344,0.0043357927
686-640111255659778048	arrived,health,obama,obamacare,uninsured	0.5215707,0.36862472,0.055853784,0.033481468,0.020469341
686-627273869103992832	arrived,obama,health,uninsured,obamacare	0.86071986,0.04984854,0.04183901,0.025256261,0.022336341
686-634410245561970689	obamacare,arrived,health,uninsured,obama	0.86436266,0.12896997,0.0031132698,0.0026803368,8.7374257E-4
686-620462289666248704	obamacare,health,arrived,obama,uninsured	0.4082846,0.26811916,0.26308766,0.042007975,0.018500635
686-624560895545335809	obama,obamacare,health,arrived,uninsured	0.8643108,0.045039598,0.037850346,0.027724389,0.025074854
686-614976989716480001	obamacare,arrived,uninsured,health,obama	0.3214457,0.28200093,0.23478493,0.11642137,0.045347065
686-634400890192011265	arrived,obama,obamacare,health,uninsured	0.72450984,0.16159901,0.04936465,0.037874572,0.026651941
686-631704300859879424	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-644375131578609664	obama,obamacare,health,arrived,uninsured	0.3618627,0.26347154,0.13681677,0.123273864,0.11457511
686-628715941686329344	obamacare,health,uninsured,arrived,obama	0.5418686,0.17320386,0.119302206,0.09783754,0.06778775
686-634008431125393409	obamacare,uninsured,arrived,obama,health	0.40922225,0.40755072,0.071008645,0.0698277,0.042390697
686-644999542216101888	health,arrived,obama,obamacare,uninsured	0.762257,0.18410562,0.028473668,0.014566766,0.010596973
686-627306064707514368	obama,uninsured,obamacare,health,arrived	0.7207952,0.18827343,0.036383104,0.030563151,0.02398508
686-620749070710251520	obama,obamacare,arrived,health,uninsured	0.8084164,0.068386234,0.05056478,0.041606396,0.031026175
686-642058441289281536	health,uninsured,arrived,obama,obamacare	0.43089265,0.34045023,0.110004,0.07440127,0.044251878
686-628922587553226752	arrived,health,uninsured,obamacare,obama	0.46721387,0.28321996,0.2071137,0.022566874,0.019885603
686-627530842592546816	health,uninsured,obama,obamacare,arrived	0.5916044,0.17250785,0.17159778,0.03638668,0.027903294
686-618167031737753600	obama,arrived,health,obamacare,uninsured	0.46728188,0.28823605,0.16068445,0.06427611,0.0195215
686-645880106561372161	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-628694913111068672	obamacare,uninsured,arrived,health,obama	0.3928552,0.19821973,0.19293977,0.18089268,0.03509262
686-626470998938882048	health,obamacare,obama,arrived,uninsured	0.6941383,0.19492795,0.05568077,0.034695715,0.020557255
686-632687531897831424	obamacare,obama,health,arrived,uninsured	0.9269864,0.03126364,0.015587471,0.014339812,0.011822657
686-633513201402048513	obamacare,arrived,health,obama,uninsured	0.39529493,0.31706253,0.19807504,0.06716444,0.022403046
686-628768093959917569	obamacare,arrived,obama,uninsured,health	0.6472156,0.20370263,0.05975166,0.054800544,0.03452955
686-632839808771952640	arrived,obamacare,uninsured,obama,health	0.34496707,0.26193294,0.21676242,0.15282893,0.02350865
686-639014697522499584	arrived,uninsured,obamacare,health,obama	0.81462085,0.052410707,0.04810005,0.04784991,0.037018474
686-644326400938373120	obamacare,health,uninsured,obama,arrived	0.4768842,0.3481118,0.121786684,0.035889033,0.0173283
686-648304982777810944	health,uninsured,obama,obamacare,arrived	0.6178851,0.23765486,0.07077236,0.038558234,0.035129454
686-642017873410527232	obamacare,uninsured,health,obama,arrived	0.33015916,0.25711852,0.21010993,0.11980158,0.08281081
686-622308166664126464	arrived,obama,health,obamacare,uninsured	0.84657496,0.05632361,0.038872823,0.032785423,0.02544317
686-619624216627965952	arrived,uninsured,obama,health,obamacare	0.70780617,0.17161168,0.048741423,0.045438398,0.02640232
686-627584203895537665	arrived,obamacare,uninsured,health,obama	0.57116807,0.24472259,0.06802079,0.05850938,0.0575792
686-625824983307173892	obama,arrived,obamacare,uninsured,health	0.48244643,0.16620475,0.15944795,0.15289028,0.0390106
686-617833170482827264	uninsured,health,arrived,obama,obamacare	0.7484892,0.15055658,0.042465553,0.035532385,0.022956314
686-647330635623743488	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-619146861958443008	uninsured,health,obamacare,obama,arrived	0.40594018,0.24331214,0.20857832,0.09383974,0.04832964
686-641318169861357568	obamacare,uninsured,arrived,obama,health	0.345775,0.21149296,0.19095366,0.14117274,0.11060563
686-645699465874051072	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-630407756885938177	health,obamacare,arrived,obama,uninsured	0.6517625,0.17358416,0.11719244,0.041567553,0.015893338
686-643222739998912512	arrived,obama,obamacare,health,uninsured	0.8844209,0.04726197,0.026137747,0.024537792,0.01764165
686-619898092792381440	arrived,obama,obamacare,health,uninsured	0.7563486,0.076620765,0.06205372,0.053849693,0.051127236
686-643263901325524992	uninsured,arrived,obamacare,health,obama	0.58775795,0.154005,0.11174033,0.10849325,0.03800347
686-617347863161368576	obamacare,arrived,uninsured,health,obama	0.3641026,0.2590308,0.16478822,0.15488096,0.05719742
686-618931818398621696	obamacare,arrived,obama,health,uninsured	0.72836924,0.18810597,0.03457522,0.032759532,0.016190035
686-647148796120539136	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-639544696159739905	uninsured,health,arrived,obama,obamacare	0.44397214,0.2291916,0.21182919,0.05789754,0.057109512
686-628362729871548420	uninsured,arrived,obamacare,health,obama	0.42201415,0.21472506,0.17898251,0.1397746,0.044503678
686-633276033760792576	obamacare,arrived,obama,health,uninsured	0.65176076,0.26871508,0.041365363,0.01994015,0.018218625
686-629722677973004288	arrived,obamacare,health,uninsured,obama	0.9041949,0.0866911,0.0060447194,0.0017241223,0.0013451799
686-620286797176647680	arrived,health,obamacare,uninsured,obama	0.30414563,0.30322465,0.28610152,0.061286002,0.04524218
686-628399491142434816	uninsured,obama,health,arrived,obamacare	0.3435366,0.20044863,0.16616695,0.14651221,0.14333561
686-626191330478153728	health,uninsured,arrived,obama,obamacare	0.61177087,0.16903222,0.13273405,0.049570195,0.03689269
686-621430270810566657	arrived,obamacare,health,uninsured,obama	0.30547774,0.26713738,0.20176418,0.122873716,0.10274699
686-644118274905624576	health,obamacare,obama,arrived,uninsured	0.6941383,0.19492795,0.05568077,0.034695715,0.020557255
686-624281552994893825	arrived,obamacare,health,uninsured,obama	0.5708663,0.27099642,0.07082916,0.06923298,0.01807516
686-631401988555575296	obamacare,obama,health,arrived,uninsured	0.8723436,0.05575576,0.027431333,0.024007069,0.020462247
686-632216634430631936	obamacare,arrived,health,obama,uninsured	0.53425705,0.19852632,0.18344234,0.057664566,0.026109736
686-626576598154768384	obamacare,uninsured,obama,health,arrived	0.64939564,0.26807278,0.041486923,0.021162558,0.019882092
686-638501591188770816	uninsured,arrived,health,obama,obamacare	0.53668755,0.20448792,0.14909266,0.059917234,0.049814623
686-616067628294107136	uninsured,obamacare,health,obama,arrived	0.5213721,0.2112693,0.14116928,0.06480184,0.061387505
686-639436507565178880	health,uninsured,arrived,obama,obamacare	0.3420829,0.28382054,0.26560456,0.0600415,0.04845052
686-643234605080907776	obamacare,arrived,health,obama,uninsured	0.4842761,0.28899562,0.15660875,0.042607944,0.027511597
686-629778753413976064	health,obama,arrived,uninsured,obamacare	0.42662305,0.27777922,0.13635899,0.13512172,0.024117015
686-631661590601932801	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-645517749595181056	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648477680719937537	arrived,obamacare,obama,health,uninsured	0.59271586,0.14625661,0.12401083,0.079994254,0.057022456
686-644341179396542468	uninsured,health,obama,obamacare,arrived	0.88617575,0.03812335,0.03723574,0.019744195,0.018720966
686-639977667995893760	uninsured,arrived,health,obama,obamacare	0.7265457,0.11719529,0.10631353,0.032755833,0.01718968
686-648249267434356736	uninsured,obama,obamacare,health,arrived	0.9112438,0.036561474,0.018522466,0.01796801,0.015704246
686-619874423311593472	uninsured,health,arrived,obamacare,obama	0.42418572,0.38469183,0.120994024,0.06352548,0.006602954
686-621452432569012225	health,uninsured,arrived,obamacare,obama	0.40495118,0.40253526,0.07844941,0.061564665,0.05249948
686-631162016435171329	health,obamacare,arrived,obama,uninsured	0.6578036,0.14657657,0.13845117,0.040976595,0.016192084
686-625798922276048896	obama,arrived,obamacare,health,uninsured	0.54877114,0.26587293,0.15104103,0.019979231,0.014335632
686-629476609968467968	uninsured,obamacare,arrived,obama,health	0.5477204,0.3102762,0.0790942,0.036594965,0.026314221
686-647506677055520768	uninsured,health,arrived,obamacare,obama	0.3983708,0.36956644,0.11553973,0.115022816,0.001500225
686-615156995641860096	obamacare,arrived,uninsured,obama,health	0.40204915,0.31970614,0.17145199,0.066850916,0.039941818
686-646967459396907008	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-629689716359696384	uninsured,arrived,health,obama,obamacare	0.36229017,0.2976019,0.1967714,0.07811399,0.06522253
686-641699137998729217	health,obama,obamacare,arrived,uninsured	0.8653088,0.053968623,0.030781552,0.026747432,0.023193588
686-635166245306933248	uninsured,obamacare,health,arrived,obama	0.36076945,0.34749642,0.1710664,0.06075132,0.059916414
686-647873473390374912	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-645562627108634624	obamacare,arrived,obama,health,uninsured	0.75183016,0.1897809,0.031355824,0.015470932,0.011562187
686-648417235090837504	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-638866146637312004	arrived,obamacare,health,uninsured,obama	0.3534157,0.2751231,0.20333149,0.13475345,0.03337627
686-622195372228784128	arrived,obama,health,obamacare,uninsured	0.87057596,0.047715858,0.032522712,0.027764602,0.021420864
686-648054972987236352	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648831415157661697	health,uninsured,obamacare,obama,arrived	0.5714661,0.16823488,0.14927085,0.0653379,0.045690272
686-620560047408484352	uninsured,health,arrived,obama,obamacare	0.568106,0.31266227,0.04798345,0.042734295,0.028513988
686-639636678534152192	health,obamacare,uninsured,obama,arrived	0.6336676,0.18630058,0.09090431,0.062223047,0.02690447
686-628310891373666305	health,obama,obamacare,arrived,uninsured	0.490109,0.13510509,0.13111307,0.12831187,0.115361
686-625457942263894016	uninsured,obamacare,arrived,health,obama	0.33638495,0.33097342,0.16645621,0.10335491,0.062830515
686-620779484460023808	arrived,health,uninsured,obama,obamacare	0.50581795,0.34527367,0.06901513,0.048328187,0.03156503
686-642377061781278720	uninsured,obamacare,health,obama,arrived	0.5864332,0.27705786,0.073364645,0.041444387,0.021699926
686-616021833826050048	health,arrived,obamacare,uninsured,obama	0.30827606,0.2486316,0.24658242,0.10014637,0.09636356
686-622682924647735296	arrived,obamacare,health,uninsured,obama	0.42602956,0.2777299,0.15503286,0.093431205,0.04777649
686-614987870030405632	obamacare,obama,health,arrived,uninsured	0.77440727,0.12283841,0.043135446,0.030995525,0.028623363
686-639309653306814464	arrived,obama,obamacare,health,uninsured	0.9223055,0.028636819,0.02438526,0.014184503,0.010487866
686-648662873212907520	obama,arrived,uninsured,obamacare,health	0.77585006,0.11100466,0.10454174,0.0064334297,0.0021701094
686-630221650907148288	health,arrived,obamacare,uninsured,obama	0.4004715,0.2691685,0.17714363,0.10505304,0.04816334
686-643260477498359809	health,obamacare,arrived,obama,uninsured	0.5544378,0.16635664,0.14513941,0.092000656,0.04206551
686-648055131251064832	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-642606880984928257	uninsured,obamacare,obama,health,arrived	0.27219075,0.26669568,0.20441173,0.15654871,0.10015315
686-632313396495446016	health,obama,obamacare,uninsured,arrived	0.43600327,0.18965466,0.13859224,0.118270494,0.11747932
686-631070213471993856	health,arrived,obama,obamacare,uninsured	0.746818,0.15852524,0.047391307,0.029242499,0.018022938
686-647148645737848832	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-625423521921892352	uninsured,obamacare,obama,arrived,health	0.574631,0.20268315,0.10456681,0.09579884,0.022320192
686-619693119995551744	health,uninsured,arrived,obamacare,obama	0.49064815,0.22524087,0.15244585,0.094474666,0.03719047
686-635151305074323457	obamacare,arrived,health,uninsured,obama	0.7485034,0.24406551,0.0034826307,0.0029324521,0.0010160409
686-622511310274596864	arrived,uninsured,obama,obamacare,health	0.63919383,0.22829917,0.052463133,0.045670755,0.034373093
686-624753588535865344	arrived,uninsured,health,obama,obamacare	0.45336616,0.25327918,0.22878963,0.036208544,0.028356489
686-628597470193430528	uninsured,obama,arrived,health,obamacare	0.44662136,0.3205162,0.16484724,0.045422498,0.022592707
686-627528972977344512	health,uninsured,obama,obamacare,arrived	0.6848003,0.19553113,0.056793906,0.034919888,0.02795475
686-629700335796416512	obamacare,uninsured,health,arrived,obama	0.32584924,0.24616253,0.17992996,0.1646262,0.08343208
686-633366758674464768	obamacare,health,obama,arrived,uninsured	0.8039891,0.13081656,0.035360508,0.016357973,0.013475851
686-645992081920540672	obama,arrived,obamacare,health,uninsured	0.61151886,0.13870493,0.09177234,0.08639466,0.07160924
686-639840851330379777	arrived,obamacare,health,obama,uninsured	0.592477,0.17070986,0.1697577,0.04866514,0.018390302
686-644284799960662017	health,obamacare,arrived,uninsured,obama	0.46421042,0.20089601,0.15256743,0.09719819,0.08512796
686-646606129212985344	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-629251703884414976	obamacare,arrived,health,obama,uninsured	0.30823487,0.24645117,0.16819058,0.16682051,0.11030288
686-631992022463848448	health,uninsured,arrived,obamacare,obama	0.5336347,0.14040251,0.1382948,0.10123549,0.08643245
686-623883676175106048	uninsured,arrived,obama,obamacare,health	0.7921686,0.12749484,0.03691591,0.022712747,0.0207079
686-647511485128667136	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647205335376130049	arrived,obama,health,obamacare,uninsured	0.42078373,0.2460625,0.14706919,0.12932733,0.05675726
686-614987803638788096	arrived,obama,obamacare,health,uninsured	0.76840055,0.08435868,0.07862771,0.038003426,0.030609617
686-645699547109285889	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-639617032208560128	obamacare,arrived,obama,health,uninsured	0.69690466,0.23446332,0.03528309,0.019876743,0.013472189
686-642048165278023680	obamacare,arrived,health,obama,uninsured	0.4803626,0.20413908,0.18885079,0.066573955,0.060073577
686-636133270267150336	uninsured,arrived,obamacare,health,obama	0.40731713,0.31236234,0.14562948,0.06797953,0.06671152
686-626783343342850048	uninsured,obamacare,arrived,health,obama	0.5013038,0.23493126,0.15065497,0.07127265,0.041837335
686-633979831592599552	health,uninsured,obamacare,obama,arrived	0.27323398,0.26691833,0.19438742,0.134779,0.13068123
686-622373932277059584	arrived,uninsured,health,obamacare,obama	0.38846007,0.19017465,0.18882342,0.18006252,0.052479357
686-633302995132882945	obamacare,arrived,uninsured,obama,health	0.4658437,0.3329967,0.082142845,0.06209676,0.056919985
686-630806005094461441	uninsured,health,obamacare,arrived,obama	0.35908908,0.23539561,0.203855,0.10095453,0.10070577
686-629570821112135680	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-646143893461929985	health,obama,obamacare,arrived,uninsured	0.86745137,0.056905594,0.029295385,0.02497065,0.021377025
686-625792983263248390	uninsured,health,arrived,obama,obamacare	0.8125117,0.17173395,0.0055953353,0.005147905,0.0050111185
686-630843190531112960	arrived,uninsured,health,obama,obamacare	0.5720006,0.22497621,0.074412584,0.06725256,0.061358012
686-631457266114277376	uninsured,health,obamacare,obama,arrived	0.6940494,0.14205895,0.10851052,0.0334654,0.021915728
686-620378848308256768	uninsured,health,arrived,obamacare,obama	0.35294676,0.30997577,0.1341355,0.10204221,0.10089975
686-646424059555745792	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-618910643966472192	uninsured,obamacare,health,arrived,obama	0.57503635,0.14434755,0.13802084,0.10525796,0.0373373
686-643466313889918977	uninsured,health,obama,arrived,obamacare	0.44266114,0.20898166,0.16949986,0.15765654,0.021200798
686-632525923804442624	health,obama,arrived,obamacare,uninsured	0.7891436,0.08296972,0.049384676,0.04788609,0.0306159
686-626522451019702272	uninsured,obamacare,obama,health,arrived	0.46409914,0.31219903,0.119209796,0.052943747,0.051548284
686-621169235138449409	uninsured,health,arrived,obamacare,obama	0.447223,0.24959563,0.14410134,0.12520823,0.033871796
686-616414919462752256	health,obamacare,obama,arrived,uninsured	0.6941383,0.19492795,0.05568077,0.034695715,0.020557255
686-646242362864369664	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647600856704020480	arrived,health,uninsured,obamacare,obama	0.7624573,0.21481787,0.015626337,0.0059011537,0.0011973251
686-633802612291145728	obamacare,health,obama,arrived,uninsured	0.7714388,0.14376624,0.042004365,0.02352728,0.019263312
686-619185886798856192	obamacare,arrived,obama,health,uninsured	0.69130343,0.24170755,0.035413843,0.017391374,0.0141838025
686-633279965723795456	uninsured,arrived,health,obamacare,obama	0.5148043,0.23987778,0.15065846,0.048979674,0.045679778
686-622163869767634944	arrived,health,obama,obamacare,uninsured	0.7499512,0.14578988,0.048271924,0.037162993,0.01882399
686-619294100056113152	health,arrived,obama,obamacare,uninsured	0.37029177,0.33759284,0.12994806,0.12972386,0.03244347
686-638807111053381632	uninsured,obama,obamacare,health,arrived	0.9215532,0.03239147,0.016356833,0.01586731,0.0138311675
686-643254175455911936	obamacare,arrived,health,obama,uninsured	0.4842761,0.28899562,0.15660875,0.042607944,0.027511597
686-624302516126158849	obamacare,obama,health,arrived,uninsured	0.9149492,0.03506592,0.022276891,0.014965453,0.012742557
686-632249929000464384	health,arrived,obama,obamacare,uninsured	0.8019095,0.11047307,0.046854768,0.02366075,0.017101912
686-634073766365147137	health,uninsured,arrived,obama,obamacare	0.64701205,0.14769992,0.1393842,0.04085149,0.025052322
686-640884418937118721	obamacare,arrived,uninsured,health,obama	0.3934411,0.23475529,0.18806142,0.14497912,0.038763054
686-621018216010248192	health,uninsured,arrived,obama,obamacare	0.61828065,0.19636351,0.08959485,0.053365067,0.0423959
686-630962342348455937	health,uninsured,arrived,obamacare,obama	0.53138673,0.18744747,0.14479862,0.10815485,0.028212318
686-619598823275376640	health,obama,obamacare,arrived,uninsured	0.8619496,0.05560805,0.03612826,0.023834148,0.022479938
686-648285987177521152	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-618776826069020672	health,arrived,obamacare,obama,uninsured	0.46055615,0.21684171,0.20530082,0.07510759,0.042193733
686-618632562739560448	health,arrived,uninsured,obamacare,obama	0.698557,0.25846073,0.041508064,8.731421E-4,6.010442E-4
686-649021302519517184	health,obamacare,obama,arrived,uninsured	0.3619933,0.3261216,0.13730313,0.09197074,0.0826112
686-623890051580215296	uninsured,health,arrived,obamacare,obama	0.37241927,0.24936782,0.17758921,0.11744739,0.08317633
686-637813418636873728	uninsured,obamacare,health,arrived,obama	0.4905694,0.16375838,0.15441726,0.14791729,0.043337658
686-614984583956729856	uninsured,arrived,obamacare,obama,health	0.5839635,0.24391636,0.09306344,0.043898586,0.035158094
686-628859567640739840	arrived,health,uninsured,obamacare,obama	0.35854563,0.3222626,0.1508602,0.0978563,0.070475295
686-648236187279192064	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-632303348138438656	health,uninsured,obama,obamacare,arrived	0.58304906,0.2574173,0.07684093,0.045829136,0.036863565
686-639600956972228609	uninsured,arrived,obamacare,health,obama	0.81447214,0.09629477,0.036896296,0.03019894,0.022137856
686-639533195881484288	health,arrived,obamacare,uninsured,obama	0.97181535,0.026137685,0.0013236101,4.0595914E-4,3.173791E-4
686-631493418997424128	uninsured,health,obama,obamacare,arrived	0.77680945,0.13258924,0.04311738,0.024048336,0.0234356
686-635028427540533248	arrived,health,obama,obamacare,uninsured	0.7499512,0.14578988,0.048271924,0.037162993,0.01882399
686-641941961285304320	health,obama,obamacare,arrived,uninsured	0.34656137,0.21159051,0.15858713,0.15079072,0.13247028
686-639925099894718464	uninsured,obama,obamacare,health,arrived	0.9118167,0.036407992,0.018384583,0.01784506,0.015545624
686-642781922071068673	health,uninsured,arrived,obamacare,obama	0.32244912,0.29808527,0.17523365,0.15959594,0.044636015
686-634884465408520192	health,uninsured,arrived,obama,obamacare	0.34436336,0.27740273,0.2663013,0.057487197,0.054445416
686-635934633885061121	arrived,obamacare,health,uninsured,obama	0.5027405,0.19767354,0.11411549,0.111432925,0.07403753
686-628543217793921024	uninsured,health,obamacare,arrived,obama	0.3114267,0.22524282,0.2249253,0.17188756,0.06651761
686-636901072284446720	health,obama,uninsured,obamacare,arrived	0.716269,0.09970081,0.09762042,0.07030854,0.016101211
686-631113750960078848	health,arrived,obama,obamacare,uninsured	0.779541,0.13842812,0.0409433,0.02535773,0.015729828
686-614975636663209984	uninsured,obama,health,obamacare,arrived	0.5910694,0.14860915,0.100676805,0.089602426,0.07004225
686-631646786172665856	uninsured,obama,health,arrived,obamacare	0.37241215,0.274807,0.21257369,0.09454401,0.04566315
686-645517636084719616	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-639145265383890945	uninsured,obamacare,obama,health,arrived	0.57276076,0.28560653,0.058874298,0.04728675,0.035471655
686-646242359651475456	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-628367433833807872	obama,health,obamacare,arrived,uninsured	0.69243914,0.1816428,0.044132005,0.040967252,0.040818777
686-646937049170378752	uninsured,obama,obamacare,health,arrived	0.9112438,0.036561474,0.018522466,0.01796801,0.015704246
686-624726702812463105	obamacare,uninsured,arrived,obama,health	0.5324286,0.25007558,0.14999293,0.041617624,0.025885265
686-647456905972031488	health,uninsured,arrived,obamacare,obama	0.6375029,0.16186248,0.08770991,0.060734436,0.052190278
686-635246200707379200	arrived,obama,health,uninsured,obamacare	0.86071986,0.04984854,0.04183901,0.025256261,0.022336341
686-646967615907196928	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-626813941314797568	arrived,health,uninsured,obamacare,obama	0.41841722,0.23338869,0.14894013,0.14576359,0.053490374
686-627966321834065920	obamacare,arrived,health,uninsured,obama	0.7485034,0.24406551,0.0034826307,0.0029324521,0.0010160409
686-626406910196121600	uninsured,arrived,health,obama,obamacare	0.58014214,0.2746047,0.06993948,0.039973788,0.03533985
686-625833814778974208	obamacare,uninsured,arrived,obama,health	0.56161565,0.18047369,0.16857652,0.05315969,0.03617443
686-621632782083731456	arrived,obamacare,health,obama,uninsured	0.4388032,0.28288427,0.15329903,0.08538574,0.03962774
686-646786449262514177	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-625401994438553600	obamacare,arrived,uninsured,obama,health	0.5784945,0.15317595,0.12105997,0.088997826,0.05827177
686-631523412989468672	uninsured,arrived,obamacare,obama,health	0.27952483,0.23673156,0.19091812,0.18120109,0.1116244
686-645880080657346560	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-615014921626124288	obamacare,arrived,obama,health,uninsured	0.584779,0.28137302,0.061597858,0.043904286,0.02834581
686-640199455145377792	obamacare,health,arrived,uninsured,obama	0.36127347,0.24391314,0.20543376,0.12579767,0.06358194
686-640203324340330496	uninsured,arrived,health,obama,obamacare	0.3641695,0.30483112,0.16042657,0.09219735,0.078375444
686-644944740119613440	obama,health,obamacare,arrived,uninsured	0.71467966,0.23991014,0.016434144,0.015265099,0.0137109645
686-620705829625458689	health,arrived,obama,uninsured,obamacare	0.5364331,0.25446966,0.08614503,0.065177456,0.05777478
686-647873529065533440	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-636211433328390144	uninsured,obamacare,obama,health,arrived	0.6184132,0.29942673,0.04149556,0.020896217,0.019768283
686-648999302962941952	uninsured,obama,obamacare,health,arrived	0.6036103,0.13610066,0.093243144,0.0859961,0.0810498
686-632290980113346561	health,arrived,obama,obamacare,uninsured	0.8019095,0.11047307,0.046854768,0.02366075,0.017101912
686-634396680222310400	health,obamacare,obama,uninsured,arrived	0.5131814,0.2368902,0.11983382,0.07917108,0.050923537
686-631253478350819328	uninsured,health,obamacare,obama,arrived	0.4402855,0.35343525,0.12562579,0.05082575,0.029827707
686-629471083696009216	uninsured,health,obamacare,obama,arrived	0.54443973,0.278981,0.12395642,0.0341057,0.018517137
686-631961614007164928	obamacare,health,obama,arrived,uninsured	0.39765608,0.3942156,0.11640449,0.049579635,0.042144164
686-632249058657239041	health,arrived,obama,obamacare,uninsured	0.8019095,0.11047307,0.046854768,0.02366075,0.017101912
686-634157824055058432	uninsured,obamacare,health,obama,arrived	0.44949892,0.26817197,0.13284683,0.08285416,0.06662811
686-643826868257316870	health,arrived,uninsured,obamacare,obama	0.38048065,0.3321493,0.17238905,0.06489612,0.050084878
686-629019143568670720	obamacare,health,arrived,obama,uninsured	0.4568172,0.28712454,0.09569227,0.08782347,0.0725425
686-648300864080379905	obamacare,uninsured,arrived,health,obama	0.500045,0.29958344,0.09410871,0.058276888,0.04798595
686-622168204199116801	arrived,obama,health,obamacare,uninsured	0.66485596,0.22803344,0.04904152,0.03350139,0.024567675
686-629834118126137344	arrived,health,uninsured,obamacare,obama	0.5333304,0.35806477,0.074480504,0.020456338,0.013668002
686-625744069109506048	uninsured,health,arrived,obamacare,obama	0.56019145,0.29056287,0.1393715,0.007402654,0.0024714964
686-648236269080850432	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-644277980978479104	arrived,uninsured,obama,obamacare,health	0.7531319,0.094581306,0.06596356,0.04781848,0.03850473
686-629374448400003072	health,arrived,obamacare,obama,uninsured	0.8056833,0.066156894,0.057248,0.04919758,0.02171418
686-629277442591588352	health,uninsured,obama,obamacare,arrived	0.6441957,0.23134819,0.048918694,0.043291636,0.032245815
686-627503814107529216	arrived,obamacare,obama,health,uninsured	0.51506215,0.23710282,0.10963332,0.07101804,0.06718367
686-615066806227591168	health,obamacare,arrived,uninsured,obama	0.318192,0.23364784,0.18951541,0.18824606,0.07039869
686-632292869995409408	health,uninsured,obamacare,obama,arrived	0.5348348,0.24502164,0.14882088,0.041385952,0.029936748
686-631455350781255681	health,uninsured,obama,obamacare,arrived	0.69215405,0.2379872,0.03582347,0.018545458,0.015489828
686-647511363305107456	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-624413967046340608	uninsured,obama,obamacare,arrived,health	0.31896254,0.19832641,0.1978813,0.16107805,0.123751685
686-624428686163472384	obama,health,obamacare,arrived,uninsured	0.27964962,0.20999901,0.19064006,0.17642696,0.14328437
686-628338218664988672	health,uninsured,obamacare,obama,arrived	0.5676603,0.24945764,0.11750073,0.036724422,0.028656948
686-645517952213581825	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-645336326540099584	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-643417529390510080	arrived,uninsured,obamacare,health,obama	0.63343275,0.122102395,0.1026035,0.07675785,0.065103486
686-639580339854159872	health,uninsured,arrived,obama,obamacare	0.68353575,0.21164484,0.044898394,0.033817753,0.026103236
686-634816969129201664	uninsured,health,obama,obamacare,arrived	0.6638131,0.222318,0.041919302,0.03774002,0.034209576
686-635104217313619968	health,obama,uninsured,arrived,obamacare	0.37991592,0.28616914,0.14298409,0.11925938,0.071671456
686-626425692578643968	health,arrived,obama,obamacare,uninsured	0.56554896,0.33823207,0.041548632,0.031567186,0.023103137
686-621177082593161216	uninsured,arrived,obamacare,health,obama	0.61626965,0.23336929,0.10994273,0.026166508,0.014251829
686-632250544707530752	obamacare,obama,health,uninsured,arrived	0.88198245,0.041042704,0.027463255,0.026810389,0.022701193
686-627949622292557824	obamacare,uninsured,obama,arrived,health	0.6051056,0.23178622,0.062127393,0.052326206,0.048654612
686-635064281470488576	health,obama,obamacare,arrived,uninsured	0.80011946,0.086137526,0.044574805,0.037718553,0.031449668
686-643272019283304448	obamacare,arrived,health,obama,uninsured	0.40263945,0.23355119,0.18572357,0.11846237,0.05962344
686-641598383732473856	uninsured,obamacare,obama,health,arrived	0.5204531,0.364128,0.056503322,0.03065518,0.028260414
686-647511261509345280	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-639456660537212929	obama,obamacare,health,arrived,uninsured	0.3606954,0.18113519,0.1754122,0.15290786,0.12984937
686-618250793163034624	arrived,obama,health,obamacare,uninsured	0.921101,0.03179031,0.017516635,0.016274456,0.013317641
686-627847619746865153	uninsured,health,arrived,obama,obamacare	0.50744003,0.1750956,0.17506285,0.087893784,0.054507717
686-632599403753160705	obamacare,obama,arrived,health,uninsured	0.89075047,0.03556523,0.035176165,0.023768928,0.01473922
686-624049630620155905	obamacare,uninsured,health,arrived,obama	0.3899114,0.2055119,0.1834472,0.14752619,0.07360328
686-648857246600925188	arrived,obamacare,obama,uninsured,health	0.46495286,0.26972052,0.106497996,0.084786244,0.07404238
686-618988141630898177	health,arrived,obama,obamacare,uninsured	0.8115408,0.121889055,0.035510503,0.01803741,0.013022273
686-615159319106031617	uninsured,obama,obamacare,health,arrived	0.79829067,0.14926852,0.019219218,0.017713603,0.015507993
686-633446761927806976	obamacare,uninsured,obama,health,arrived	0.64994293,0.27702653,0.031557307,0.022598255,0.01887496
686-631240422652690433	arrived,uninsured,obama,health,obamacare	0.63246375,0.21812339,0.06499146,0.04360383,0.04081756
686-644340635454062592	uninsured,health,obama,obamacare,arrived	0.88617575,0.03812335,0.03723574,0.019744195,0.018720966
686-642362186535444480	health,arrived,obamacare,uninsured,obama	0.60040444,0.16596743,0.11309546,0.085011005,0.035521667
686-626031869889527808	health,uninsured,arrived,obamacare,obama	0.5093126,0.17815763,0.17181441,0.07135772,0.06935762
686-632891378033405952	arrived,health,uninsured,obama,obamacare	0.3610351,0.28715014,0.12643941,0.12308804,0.10228731
686-631880284087021569	obamacare,arrived,health,obama,uninsured	0.39487228,0.22302425,0.19755675,0.1299667,0.054580025
686-646242628472832000	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-642340171019632640	uninsured,obama,arrived,health,obamacare	0.33786738,0.23399727,0.23077336,0.12537831,0.07198366
686-646352228148756480	health,obamacare,arrived,obama,uninsured	0.40647078,0.263902,0.24981114,0.04279185,0.037024237
686-620014757345669120	arrived,health,obamacare,obama,uninsured	0.5528735,0.18258373,0.1753126,0.057279974,0.031950176
686-646818280410234881	uninsured,health,obama,obamacare,arrived	0.6057032,0.3005469,0.04763251,0.024271466,0.021845914
686-637262780853186560	obama,arrived,obamacare,uninsured,health	0.9974927,6.3041196E-4,6.2956125E-4,6.247694E-4,6.2258815E-4
686-615250053389811712	arrived,obamacare,health,obama,uninsured	0.7771918,0.12961149,0.041612513,0.035768297,0.015815903
686-631970539008065536	uninsured,health,arrived,obamacare,obama	0.82811993,0.057997093,0.050287843,0.03251934,0.031075794
686-628305313385566208	arrived,obamacare,obama,health,uninsured	0.79191864,0.11515449,0.047999687,0.02533367,0.019593526
686-642080390304374785	health,obama,obamacare,uninsured,arrived	0.30029073,0.243942,0.23733535,0.10973834,0.10869357
686-646181334461890560	uninsured,health,obamacare,arrived,obama	0.58593726,0.19817558,0.09695771,0.08898279,0.029946655
686-648981724928606208	arrived,obamacare,uninsured,health,obama	0.4307382,0.22961314,0.14885232,0.12602577,0.064770564
686-620768914776162305	obamacare,arrived,uninsured,obama,health	0.2928709,0.29114446,0.28395438,0.08630929,0.04572096
686-629785431282855936	arrived,obamacare,health,obama,uninsured	0.7465977,0.13135542,0.072967514,0.03579448,0.013284884
686-643398369788846080	uninsured,arrived,obamacare,health,obama	0.3430947,0.26147032,0.25298357,0.07894534,0.063506104
686-645389655647522817	uninsured,arrived,obamacare,obama,health	0.38275784,0.2723386,0.15629914,0.14573127,0.04287312
686-615175887399469056	arrived,obamacare,health,obama,uninsured	0.28217208,0.24082884,0.19941068,0.16051827,0.11707012
686-632356997053050880	obamacare,obama,health,arrived,uninsured	0.9244591,0.031621873,0.01673132,0.014793117,0.012394593
686-647574850958176256	obamacare,health,arrived,uninsured,obama	0.32042778,0.3093874,0.13605386,0.11976689,0.11436407
686-633021606915215360	obama,obamacare,health,arrived,uninsured	0.29148725,0.18915255,0.1849808,0.17484799,0.1595314
686-637055446440738816	obamacare,arrived,uninsured,obama,health	0.44230804,0.38394484,0.08893148,0.04915377,0.035661872
686-643538261252698113	uninsured,obamacare,arrived,health,obama	0.3254561,0.24506232,0.15348014,0.15025643,0.12574501
686-626059767081897988	uninsured,arrived,obama,health,obamacare	0.63950944,0.27062836,0.041796286,0.026418313,0.021647613
686-630985566327336960	uninsured,health,obama,obamacare,arrived	0.689767,0.24040769,0.03614491,0.018222926,0.015457463
686-637047285495402496	uninsured,health,obama,obamacare,arrived	0.73159784,0.16875851,0.04782517,0.025991889,0.025826553
686-625846092622598145	uninsured,obamacare,arrived,health,obama	0.32338002,0.25638103,0.23591344,0.1391562,0.0451693
686-628308830892462080	arrived,health,obamacare,uninsured,obama	0.44687146,0.30252072,0.117166474,0.08203666,0.051404696
686-618973479891668992	obamacare,arrived,obama,health,uninsured	0.5471563,0.2855737,0.08695571,0.046411276,0.033903044
686-644518169227345920	obama,uninsured,obamacare,health,arrived	0.29220584,0.2685475,0.15168038,0.14447135,0.14309491
686-648054645571522560	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-615015957132656640	obamacare,health,obama,arrived,uninsured	0.41256794,0.2066264,0.19460073,0.12731606,0.058888875
686-631515217269121024	arrived,health,obama,obamacare,uninsured	0.80367047,0.11973462,0.0408432,0.020790963,0.014960719
686-644099632843194369	obamacare,uninsured,obama,arrived,health	0.8084655,0.07246339,0.048388302,0.04714273,0.023540096
686-616828949381799936	arrived,obama,health,uninsured,obamacare	0.7039369,0.095230445,0.09352195,0.05393248,0.053378228
686-634229515363876864	uninsured,obamacare,arrived,health,obama	0.31463948,0.28850535,0.18080305,0.12818515,0.08786701
686-634433604634873856	health,obama,obamacare,arrived,uninsured	0.7966372,0.08119667,0.046091564,0.040906373,0.035168182
686-625756881835925504	uninsured,obamacare,arrived,obama,health	0.74070024,0.11567193,0.07353304,0.04459351,0.025501259
686-619187806452195328	health,obamacare,obama,arrived,uninsured	0.7348549,0.2053987,0.031232342,0.014278251,0.014235834
686-640891305183313921	uninsured,obamacare,arrived,health,obama	0.4373631,0.26774967,0.14861105,0.11120077,0.03507542
686-622523846579617792	uninsured,arrived,obama,health,obamacare	0.27305695,0.25645375,0.1690072,0.15965474,0.14182736
686-624048441627418625	obama,obamacare,health,arrived,uninsured	0.29148725,0.18915255,0.1849808,0.17484799,0.1595314
686-647259899748044800	health,uninsured,obamacare,arrived,obama	0.43967625,0.21912247,0.20774606,0.08416108,0.049294133
686-631817414871810048	uninsured,arrived,obama,health,obamacare	0.9014395,0.043559734,0.026716094,0.014305724,0.013978978
686-634949411215245312	obamacare,health,obama,arrived,uninsured	0.61871165,0.26365373,0.056971006,0.03340988,0.027253732
686-625333904338251776	obamacare,obama,arrived,health,uninsured	0.58151853,0.16947906,0.14659758,0.08608703,0.01631782
686-639247248468090880	arrived,health,uninsured,obama,obamacare	0.3854527,0.3429305,0.20302232,0.040360115,0.028234363
686-624689440196272131	arrived,uninsured,obamacare,health,obama	0.34926444,0.3319805,0.12056906,0.09977864,0.09840735
686-623296715882270720	uninsured,arrived,obamacare,obama,health	0.57154214,0.2977847,0.069269285,0.037469693,0.02393417
686-626409939989344256	arrived,obamacare,uninsured,obama,health	0.48880127,0.23860398,0.20867991,0.04167933,0.022235505
686-643892650991448064	obamacare,arrived,uninsured,health,obama	0.55818486,0.35675433,0.06837628,0.015320238,0.0013642878
686-616711924869283840	arrived,uninsured,health,obamacare,obama	0.36004063,0.24701759,0.22165622,0.09899761,0.07228793
686-647329751040811008	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-632298381587562496	uninsured,obamacare,health,obama,arrived	0.46800357,0.28906804,0.16082399,0.049191073,0.03291332
686-616003896540958720	obamacare,health,arrived,uninsured,obama	0.45212528,0.2542595,0.17062159,0.0748433,0.048150346
686-642732754673770496	uninsured,obamacare,arrived,health,obama	0.452997,0.19183873,0.18049939,0.105448656,0.06921622
686-629412410785316864	obamacare,uninsured,arrived,obama,health	0.45270753,0.28894654,0.16180345,0.053077072,0.043465376
686-646006338418548740	arrived,uninsured,obama,obamacare,health	0.4740589,0.26221803,0.11176048,0.07666945,0.07529314
686-618589232647401472	health,obama,obamacare,arrived,uninsured	0.8631703,0.05602732,0.03325936,0.02434382,0.023199165
686-621141757082796032	health,obamacare,obama,uninsured,arrived	0.336162,0.20073517,0.1824223,0.15495192,0.12572864
686-623886375914336256	uninsured,obamacare,arrived,health,obama	0.9937729,0.0017111052,0.0017105594,0.0014440963,0.0013613137
686-640655912445734917	obamacare,arrived,obama,health,uninsured	0.60429716,0.25842863,0.069899745,0.03827168,0.029102769
686-648574036365017088	arrived,uninsured,obama,health,obamacare	0.6889496,0.16871832,0.05990835,0.045855418,0.036568306
686-629799421538992128	arrived,obamacare,health,obama,uninsured	0.7465977,0.13135542,0.072967514,0.03579448,0.013284884
686-628986114481721348	obamacare,health,uninsured,arrived,obama	0.32212228,0.31141803,0.19365019,0.11305,0.059759505
686-618021660042473472	arrived,health,obamacare,uninsured,obama	0.5372003,0.14652917,0.14038007,0.1324933,0.043397218
686-623251394162614272	obamacare,obama,health,arrived,uninsured	0.88870585,0.048027918,0.023264015,0.022381056,0.017621147
686-616833006406250496	obamacare,health,arrived,uninsured,obama	0.5705539,0.30193257,0.10915339,0.015503597,0.0028565007
686-631810114597457920	uninsured,arrived,obama,health,obamacare	0.90608454,0.040973105,0.024358198,0.015621455,0.012962675
686-631291800863555584	obamacare,arrived,health,uninsured,obama	0.70548254,0.1131062,0.07062167,0.069809884,0.04097971
686-615156963979063296	obamacare,arrived,uninsured,obama,health	0.42787895,0.31351444,0.16374992,0.059589118,0.035267573
686-632254356272902144	obamacare,uninsured,health,arrived,obama	0.57061785,0.22446227,0.13729456,0.03432503,0.033300303
686-636952804016398336	obama,uninsured,health,arrived,obamacare	0.5327424,0.15749663,0.15318948,0.120586015,0.035985477
686-645699548203999233	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-622247346391392256	obamacare,arrived,obama,health,uninsured	0.81113094,0.12183931,0.035649277,0.017865572,0.013514884
686-621377282951647232	obamacare,health,arrived,uninsured,obama	0.6849504,0.1641179,0.054499842,0.054293595,0.042138264
686-616420607790567424	arrived,uninsured,obamacare,obama,health	0.2836795,0.275252,0.24242884,0.11789968,0.080739975
686-625443832927272960	uninsured,health,obamacare,arrived,obama	0.5761094,0.24648128,0.08377154,0.05870303,0.034934744
686-633551719599751168	uninsured,arrived,health,obama,obamacare	0.60996425,0.21181084,0.123307176,0.033216625,0.0217011
686-644666311629340676	arrived,obama,health,uninsured,obamacare	0.5004878,0.18046671,0.11338576,0.11087353,0.09478616
686-629634128724365312	obamacare,obama,health,arrived,uninsured	0.87011737,0.056638166,0.027270172,0.025752166,0.020222113
686-636674455260016641	health,uninsured,arrived,obamacare,obama	0.3739127,0.30256897,0.21369943,0.06003847,0.049780443
686-620712023257710593	arrived,health,obama,uninsured,obamacare	0.5021213,0.28219962,0.1120621,0.065822214,0.03779472
686-647152420322062336	arrived,uninsured,obama,obamacare,health	0.6550226,0.20962486,0.05344091,0.048040442,0.03387114
686-648253345812115456	obamacare,obama,health,arrived,uninsured	0.89262,0.04693314,0.023071447,0.020179853,0.017195538
686-648897664143089664	arrived,uninsured,obama,health,obamacare	0.79025394,0.1473865,0.029203882,0.016608184,0.016547522
686-633012161904664576	health,uninsured,arrived,obamacare,obama	0.6177578,0.18074152,0.119120345,0.0492278,0.03315257
686-633755368192016385	uninsured,arrived,obama,health,obamacare	0.4927442,0.23302439,0.11159135,0.08759535,0.07504471
686-637742408659279872	arrived,obama,obamacare,health,uninsured	0.8818235,0.047795273,0.02898255,0.02367252,0.01772616
686-628143541860962304	obamacare,uninsured,health,obama,arrived	0.4492021,0.25549814,0.19876038,0.06169735,0.03484205
686-648295013433016320	uninsured,obama,obamacare,arrived,health	0.90628505,0.036495358,0.01966029,0.01915231,0.018407008
686-646061459403763712	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-638141964886634496	obama,obamacare,arrived,health,uninsured	0.45789802,0.27046135,0.11923537,0.08582288,0.06658239
686-635030571647799296	arrived,uninsured,health,obamacare,obama	0.43758175,0.27841294,0.15019833,0.089969434,0.04383754
686-632368386861891584	uninsured,obama,obamacare,health,arrived	0.85023856,0.12778749,0.014694637,0.0042616855,0.0030176148
686-614982357376856064	obamacare,arrived,obama,health,uninsured	0.8247357,0.10054779,0.038205273,0.02026239,0.016248839
686-617347232241725441	health,uninsured,obamacare,obama,arrived	0.46115848,0.275595,0.16568676,0.05680167,0.040758096
686-636207122871529472	obama,obamacare,arrived,uninsured,health	0.5514006,0.14847948,0.14066857,0.13844848,0.021002835
686-646474144066899968	health,obamacare,arrived,obama,uninsured	0.4624165,0.2710253,0.1451883,0.07880478,0.042565115
686-647053992321765377	health,uninsured,obamacare,obama,arrived	0.41420344,0.24169247,0.23915894,0.0702562,0.034688946
686-626799650125803520	arrived,health,uninsured,obama,obamacare	0.62371814,0.16675696,0.13535467,0.04219503,0.03197521
686-632782767726596096	obama,obamacare,arrived,uninsured,health	0.48511449,0.17032905,0.16140842,0.15861015,0.024537895
686-624720498673356801	arrived,uninsured,obamacare,health,obama	0.4062007,0.30103514,0.1358608,0.09438721,0.06251614
686-628654499893264385	obama,arrived,obamacare,health,uninsured	0.47281238,0.1481295,0.14311863,0.1355059,0.10043361
686-622731900424167424	uninsured,arrived,obamacare,health,obama	0.50554425,0.16110152,0.15478007,0.11183333,0.06674084
686-623876938206199808	uninsured,arrived,obamacare,obama,health	0.60219264,0.28112602,0.056188963,0.03706192,0.02343046
686-629475829848875008	obamacare,uninsured,arrived,health,obama	0.45612538,0.3131764,0.106510684,0.07585762,0.048329912
686-631918794085036032	health,arrived,obama,obamacare,uninsured	0.6819777,0.19259815,0.054908663,0.048097666,0.022417815
686-647148667221114880	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-644141170596163584	obamacare,obama,uninsured,health,arrived	0.49741742,0.21380845,0.13531494,0.10139855,0.052060638
686-646368803555799040	health,arrived,obamacare,uninsured,obama	0.4354161,0.18119468,0.17363726,0.1618367,0.04791528
686-615235589823049728	obamacare,health,arrived,obama,uninsured	0.27060696,0.24182135,0.1892343,0.14990212,0.14843528
686-632837000005947392	health,arrived,obama,obamacare,uninsured	0.8019095,0.11047307,0.046854768,0.02366075,0.017101912
686-645699417647874050	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647636600583667712	arrived,health,uninsured,obamacare,obama	0.7624573,0.21481787,0.015626337,0.0059011537,0.0011973251
686-636535570160746497	obamacare,uninsured,health,arrived,obama	0.3426553,0.22521254,0.2190593,0.14327182,0.06980102
686-643276757995548673	uninsured,obamacare,obama,health,arrived	0.5403525,0.16716477,0.12058078,0.08804461,0.08385731
686-623516192226066432	health,uninsured,arrived,obama,obamacare	0.70452654,0.12323302,0.1005101,0.03684817,0.034882173
686-617440791049465860	health,obamacare,obama,uninsured,arrived	0.42000118,0.22101247,0.13983876,0.12847087,0.09067671
686-636863138650939392	health,uninsured,obama,obamacare,arrived	0.5704326,0.301445,0.043360356,0.042442184,0.04231984
686-624268941813252101	health,obamacare,obama,arrived,uninsured	0.45347822,0.39050147,0.07728007,0.045338497,0.033401735
686-615259291692437504	obamacare,obama,health,arrived,uninsured	0.58608884,0.13687116,0.119945444,0.08142897,0.0756656
686-629826661517668352	arrived,obamacare,health,obama,uninsured	0.7465977,0.13135542,0.072967514,0.03579448,0.013284884
686-644146986044690434	obamacare,arrived,obama,health,uninsured	0.7348459,0.15175407,0.05214889,0.033113554,0.028137622
686-625730851075133440	arrived,health,obama,uninsured,obamacare	0.34527734,0.28762758,0.28685483,0.05239279,0.027847482
686-638145692624646145	uninsured,arrived,obama,obamacare,health	0.47588915,0.38207442,0.057899352,0.05277452,0.03136255
686-629870427972567041	arrived,obamacare,health,obama,uninsured	0.7465977,0.13135542,0.072967514,0.03579448,0.013284884
686-618232243207581696	uninsured,obamacare,obama,health,arrived	0.6848656,0.17945203,0.051554617,0.04819475,0.03593301
686-624804288724889600	arrived,obamacare,obama,health,uninsured	0.534789,0.27567023,0.09198379,0.055457212,0.042099744
686-637269440233500672	obamacare,arrived,health,uninsured,obama	0.9834821,0.0056463475,0.0037586924,0.0035734428,0.0035394
686-639204284106731520	health,obama,uninsured,obamacare,arrived	0.67034703,0.121187255,0.091958955,0.06288142,0.05362533
686-634832747475939328	arrived,obamacare,health,uninsured,obama	0.5027405,0.19767354,0.11411549,0.111432925,0.07403753
686-625382725550256128	arrived,obamacare,uninsured,health,obama	0.45439786,0.26078096,0.13053228,0.12093746,0.033351433
686-630521711448817664	health,uninsured,obama,obamacare,arrived	0.5866033,0.30888438,0.048279893,0.02998542,0.02624704
686-617724966692237312	uninsured,arrived,obama,health,obamacare	0.8980656,0.03474369,0.029340427,0.020757768,0.017092487
686-617703188553187328	obama,obamacare,health,arrived,uninsured	0.3606954,0.18113519,0.1754122,0.15290786,0.12984937
686-626016206806491137	health,uninsured,arrived,obama,obamacare	0.6332822,0.15514973,0.14229666,0.044588692,0.024682747
686-631640949383409664	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-641451586246459392	uninsured,arrived,obama,health,obamacare	0.41389188,0.41154784,0.13500398,0.020800488,0.01875582
686-645880202174853120	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-626275267070201856	obamacare,uninsured,arrived,obama,health	0.64189297,0.15042281,0.14228736,0.04144882,0.02394805
686-631613969837465600	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-616401674274504704	health,arrived,obama,uninsured,obamacare	0.8071445,0.08541195,0.04791059,0.031151999,0.028380921
686-623833345978445824	health,obamacare,arrived,obama,uninsured	0.5509338,0.14653543,0.12707737,0.09153791,0.08391554
686-622108920987779073	uninsured,arrived,obama,health,obamacare	0.7822772,0.1386698,0.03664644,0.02306869,0.019337846
686-624786187991977984	health,obamacare,arrived,obama,uninsured	0.33036843,0.25660172,0.20350835,0.13650168,0.07301981
686-625358482137440256	arrived,obama,obamacare,health,uninsured	0.85116434,0.05680359,0.04245345,0.028441656,0.02113693
686-640941517855719424	obamacare,uninsured,arrived,obama,health	0.37034157,0.20153783,0.19119418,0.13637605,0.10055038
686-641429605715456000	obamacare,uninsured,arrived,health,obama	0.30710152,0.2958701,0.2044979,0.12699759,0.06553289
686-615308427565400064	obama,health,obamacare,arrived,uninsured	0.7171294,0.25168332,0.024801573,0.00379465,0.0025910276
686-645336447512276992	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-642742249957158913	arrived,health,uninsured,obama,obamacare	0.28692287,0.24482813,0.18111672,0.16874683,0.11838544
686-614976324168355840	obamacare,arrived,obama,health,uninsured	0.53350776,0.17364754,0.14959328,0.10989831,0.03335314
686-620330108264411136	health,arrived,obama,obamacare,uninsured	0.3836173,0.25478736,0.15188955,0.111438036,0.098267764
686-618898851076960256	arrived,obama,health,uninsured,obamacare	0.39367658,0.18852788,0.1734187,0.1223016,0.122075245
686-621396746900533249	obama,arrived,obamacare,health,uninsured	0.54877114,0.26587293,0.15104103,0.019979231,0.014335632
686-648235885641789441	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-623504311398445056	obamacare,arrived,obama,uninsured,health	0.27640924,0.26831895,0.18691485,0.15136121,0.11699576
686-615279319074652160	uninsured,arrived,obamacare,obama,health	0.62520844,0.15731089,0.10777289,0.06813289,0.041574884
686-635640128761782272	arrived,uninsured,health,obama,obamacare	0.5014779,0.20610106,0.17722681,0.06952231,0.04567195
686-639102924514193408	health,arrived,obama,uninsured,obamacare	0.65893,0.24326493,0.04244388,0.028243829,0.027117362
686-648374929881088000	uninsured,arrived,obamacare,obama,health	0.66161036,0.1494768,0.12319115,0.043076802,0.0226449
686-631523227966283776	uninsured,health,obamacare,arrived,obama	0.85528535,0.14125596,0.0012960127,0.0011839081,9.787715E-4
686-630770092159205377	health,arrived,obama,obamacare,uninsured	0.49355394,0.28631544,0.098501146,0.060815692,0.06081378
686-645857804931043328	arrived,uninsured,obama,health,obamacare	0.4690799,0.37253675,0.122399285,0.01903873,0.016945342
686-629330906939944960	health,uninsured,obama,obamacare,arrived	0.63222915,0.2631525,0.045578577,0.02980423,0.029235562
686-645699584983863296	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-637346978263752704	uninsured,obama,obamacare,health,arrived	0.9215663,0.03238807,0.016353706,0.015864035,0.013827901
686-630801892428378112	obama,health,arrived,obamacare,uninsured	0.5926819,0.25575262,0.08180592,0.038409915,0.03134965
686-645138858636513281	obamacare,arrived,obama,health,uninsured	0.7559899,0.18405749,0.031716153,0.016458599,0.011777846
686-642085838348767232	obamacare,obama,health,arrived,uninsured	0.9296645,0.02784084,0.020290582,0.01205393,0.010150167
686-629414622081126400	arrived,obamacare,health,obama,uninsured	0.6017885,0.23564142,0.06420162,0.062799886,0.035568535
686-648518737989996544	obamacare,obama,health,arrived,uninsured	0.85314476,0.057085898,0.033282585,0.029651893,0.02683487
686-626529994005594112	uninsured,obamacare,obama,arrived,health	0.7349884,0.10799764,0.058642212,0.051315904,0.047055848
686-620652475700260864	arrived,obama,obamacare,health,uninsured	0.77263117,0.15089977,0.040381204,0.021450194,0.014637697
686-644640117727068161	health,uninsured,obama,obamacare,arrived	0.53904,0.3469834,0.057349026,0.030001175,0.026626378
686-639355450949931008	uninsured,arrived,obama,health,obamacare	0.4405829,0.36099756,0.090882935,0.054410756,0.053125862
686-624398937466773504	uninsured,arrived,obama,health,obamacare	0.5846496,0.23195444,0.078578345,0.06460706,0.04021052
686-620369225555709957	obamacare,uninsured,obama,arrived,health	0.7485281,0.15196165,0.047459316,0.027796283,0.02425462
686-621794886354890753	health,uninsured,arrived,obama,obamacare	0.67937624,0.1701455,0.0683982,0.049713165,0.0323669
686-628581534979764225	obama,obamacare,health,arrived,uninsured	0.933393,0.018786235,0.018196184,0.01597685,0.013647758
686-646424268541181952	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-634910254535417856	uninsured,arrived,health,obamacare,obama	0.45123878,0.29285476,0.17296776,0.06902947,0.013909232
686-617820948490620928	uninsured,obama,obamacare,arrived,health	0.90628505,0.036495358,0.01966029,0.01915231,0.018407008
686-625481914598715392	obamacare,uninsured,arrived,health,obama	0.78076404,0.17659247,0.03294535,0.005362344,0.0043357927
686-626935572939055112	obama,obamacare,health,arrived,uninsured	0.3606954,0.18113519,0.1754122,0.15290786,0.12984937
686-648512584786665472	obamacare,arrived,health,uninsured,obama	0.7847294,0.202799,0.008590522,0.002712986,0.0011680935
686-638726391438008322	health,arrived,obama,obamacare,uninsured	0.40530753,0.38312408,0.07656051,0.07017618,0.0648317
686-625750087294156800	obamacare,health,obama,arrived,uninsured	0.79092,0.12897108,0.0419362,0.021853006,0.016319674
686-638409720181706752	health,obamacare,uninsured,obama,arrived	0.6124172,0.21466309,0.10210136,0.036190894,0.03462743
686-640260686178742272	obama,obamacare,health,uninsured,arrived	0.41887966,0.22946456,0.2292247,0.06172674,0.060704354
686-647511085797343232	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-633316396324118528	health,arrived,obamacare,obama,uninsured	0.6164511,0.12741369,0.11750199,0.08230517,0.05632809
686-636643215282540544	health,arrived,obama,uninsured,obamacare	0.6528643,0.21354541,0.061142553,0.03825336,0.0341944
686-615338954397650944	arrived,health,obamacare,uninsured,obama	0.42951822,0.2641638,0.20960046,0.054053895,0.042663604
686-647011628177825792	health,obamacare,uninsured,arrived,obama	0.3242815,0.23166853,0.19610031,0.1379136,0.11003604
686-637747956918169600	uninsured,health,obamacare,arrived,obama	0.2997951,0.2806737,0.16032712,0.15453537,0.1046687
686-628771925645393920	obamacare,uninsured,health,obama,arrived	0.49295163,0.24592105,0.17626354,0.051010203,0.033853576
686-648402815186894848	health,arrived,uninsured,obama,obamacare	0.49786988,0.3670246,0.06242893,0.043177962,0.02949863
686-633407422879678465	health,obamacare,arrived,obama,uninsured	0.39252988,0.31683418,0.17234203,0.08473066,0.03356326
686-638530575830253568	arrived,obama,health,obamacare,uninsured	0.921101,0.03179031,0.017516635,0.016274456,0.013317641
686-628553544967299072	arrived,health,uninsured,obama,obamacare	0.5722068,0.24725126,0.06167998,0.061523806,0.057338156
686-646605045891338240	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647329812156026880	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-619021306235781120	arrived,obamacare,obama,health,uninsured	0.8373485,0.105232045,0.028690634,0.015177023,0.013551776
686-634040660358758404	arrived,obamacare,health,uninsured,obama	0.39133286,0.34613442,0.117589496,0.07977897,0.06516424
686-639479533327007744	uninsured,health,arrived,obamacare,obama	0.34012413,0.32446134,0.1542539,0.13865381,0.04250683
686-639202373253111808	health,uninsured,arrived,obama,obamacare	0.6398285,0.156263,0.11727376,0.05340037,0.033234335
686-637039314862501888	uninsured,obamacare,obama,health,arrived	0.4122245,0.31898198,0.10573131,0.08386555,0.07919667
686-639619643246665728	uninsured,health,obamacare,obama,arrived	0.39367655,0.24314077,0.18637015,0.10316545,0.07364709
686-646094843761045507	health,uninsured,arrived,obama,obamacare	0.4410614,0.23111084,0.1724267,0.09329371,0.06210734
686-623607818990583808	obamacare,uninsured,arrived,obama,health	0.47310632,0.35435987,0.07067864,0.052421756,0.04943342
686-628344720121561092	obamacare,obama,arrived,health,uninsured	0.5871096,0.25776908,0.05546957,0.050282456,0.04936929
686-617350267357388800	uninsured,arrived,obamacare,obama,health	0.681823,0.16635579,0.06758174,0.051873304,0.032366145
686-646424044900888576	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-626134690542526465	obamacare,health,arrived,obama,uninsured	0.38908815,0.38058034,0.10164307,0.07650303,0.052185412
686-631137752344432640	health,uninsured,arrived,obamacare,obama	0.33548087,0.28646109,0.23954566,0.081923455,0.05658893
686-635560929556430851	obamacare,arrived,uninsured,obama,health	0.5967535,0.17871119,0.15193073,0.04770001,0.02490458
686-624635212480299008	health,obamacare,uninsured,obama,arrived	0.4241528,0.28502446,0.19597612,0.05978524,0.035061397
686-623476220538261504	uninsured,arrived,obamacare,obama,health	0.5387389,0.1809218,0.1803515,0.05078694,0.04920086
686-645517666547953664	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647148606646980608	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-632984432618684417	health,arrived,obamacare,uninsured,obama	0.50079364,0.1556022,0.15155506,0.14995533,0.042093795
686-619210743649583104	arrived,obama,obamacare,health,uninsured	0.41650936,0.26553893,0.22627772,0.05042176,0.041252233
686-632619323740176384	obamacare,arrived,obama,health,uninsured	0.5270663,0.36789855,0.055922464,0.028472295,0.020640392
686-624703860972589056	uninsured,obamacare,obama,health,arrived	0.8206698,0.11013691,0.03436998,0.018666113,0.016157242
686-648618672567685120	uninsured,arrived,health,obamacare,obama	0.6513432,0.1836728,0.06710459,0.061527316,0.03635206
686-647090664073744385	obamacare,arrived,uninsured,obama,health	0.67915386,0.11043313,0.105660744,0.05683744,0.047914837
686-615135970493476868	obamacare,arrived,health,obama,uninsured	0.6488509,0.21232173,0.05405107,0.053119294,0.03165696
686-647873609197748224	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-623639400220598272	health,obama,obamacare,arrived,uninsured	0.7487757,0.13550264,0.06480396,0.029543685,0.02137399
686-624362238774784001	arrived,uninsured,obamacare,obama,health	0.737597,0.15092205,0.04833888,0.041963167,0.021178938
686-623650163945525248	uninsured,arrived,obama,health,obamacare	0.704463,0.1508471,0.0742307,0.04021714,0.03024206
686-648320264955015168	obamacare,obama,health,arrived,uninsured	0.82361716,0.06560541,0.039944462,0.037158716,0.033674236
686-639805829659688960	health,obamacare,uninsured,arrived,obama	0.35115397,0.33440736,0.2565253,0.033225484,0.024687877
686-630500167020515328	obamacare,arrived,obama,health,uninsured	0.53562915,0.27165762,0.07523891,0.066245414,0.051228937
686-635472534490759173	obamacare,arrived,obama,health,uninsured	0.3619938,0.3567572,0.18798101,0.059006076,0.03426192
686-639835420700774400	uninsured,obamacare,obama,arrived,health	0.62529784,0.24161473,0.05019394,0.041678507,0.041215
686-633110172634779649	obamacare,health,uninsured,arrived,obama	0.46954858,0.23044793,0.1808659,0.08618981,0.032947756
686-635147940462329856	health,arrived,obama,obamacare,uninsured	0.82899487,0.109239995,0.031424943,0.01823725,0.01210291
686-644276082506514433	uninsured,obamacare,obama,health,arrived	0.52169,0.30015188,0.08904126,0.04540099,0.043715842
686-638393927125438464	arrived,obamacare,uninsured,health,obama	0.27047208,0.19466048,0.19406205,0.18649958,0.15430583
686-627642945991127040	health,arrived,obamacare,obama,uninsured	0.5967822,0.24349831,0.1018929,0.04185528,0.0159713
686-639776312312377344	uninsured,health,obama,obamacare,arrived	0.71245396,0.17100444,0.057527617,0.032227997,0.026785966
686-646786348649615361	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-639186019678597125	arrived,obamacare,uninsured,obama,health	0.4772581,0.21665305,0.16916257,0.07968897,0.057237327
686-630893684620292096	uninsured,obama,obamacare,health,arrived	0.92098176,0.03254401,0.01649713,0.01600618,0.013970939
686-619155704423649280	uninsured,health,obamacare,obama,arrived	0.26578078,0.2585917,0.22220723,0.20856267,0.04485762
686-645764445822697472	health,obama,obamacare,arrived,uninsured	0.8710114,0.05592468,0.028467719,0.0240794,0.020516798
686-624173494150889473	uninsured,health,obamacare,arrived,obama	0.28267658,0.24271953,0.241932,0.12328221,0.109389685
686-631706931632050176	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-645517622415630336	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-636270803747741697	arrived,uninsured,obama,health,obamacare	0.30488086,0.28207698,0.1433445,0.1429536,0.12674403
686-645518203284811776	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-645735026370281472	health,obamacare,arrived,uninsured,obama	0.42972928,0.20190842,0.1740489,0.13632959,0.05798381
686-622566212413710336	obama,obamacare,health,arrived,uninsured	0.3606954,0.18113519,0.1754122,0.15290786,0.12984937
686-648417203176366080	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-624595929786482689	arrived,uninsured,health,obama,obamacare	0.4866664,0.24230382,0.20015763,0.042861156,0.028010972
686-646967603580145664	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-645710489389895680	uninsured,health,arrived,obama,obamacare	0.50644356,0.23947062,0.18037476,0.04896138,0.024749689
686-628485318002495488	uninsured,health,obama,arrived,obamacare	0.7750836,0.121348225,0.04711983,0.029634474,0.02681388
686-629414413355712512	arrived,obamacare,health,obama,uninsured	0.6017885,0.23564142,0.06420162,0.062799886,0.035568535
686-619962715197456384	health,uninsured,obama,obamacare,arrived	0.6160569,0.21414834,0.07743936,0.049058616,0.043296773
686-632998636977131520	health,obama,obamacare,arrived,uninsured	0.86039746,0.058160055,0.030888835,0.025897386,0.024656247
686-641391191913852928	uninsured,health,arrived,obamacare,obama	0.47330183,0.3191669,0.19265729,0.0126685,0.0022054848
686-628690058313396224	arrived,obamacare,obama,uninsured,health	0.43606418,0.225696,0.16942361,0.08642926,0.08238694
686-631962707613384708	obamacare,obama,arrived,uninsured,health	0.763778,0.12039622,0.08328621,0.018118938,0.01442067
686-629621349745623041	obamacare,obama,health,arrived,uninsured	0.87011737,0.056638166,0.027270172,0.025752166,0.020222113
686-623257848500195328	obamacare,obama,health,arrived,uninsured	0.88870585,0.048027918,0.023264015,0.022381056,0.017621147
686-641301617149628416	arrived,uninsured,obama,health,obamacare	0.72351426,0.1564927,0.053213827,0.03633533,0.030443884
686-642867333657165825	obamacare,obama,health,arrived,uninsured	0.78214973,0.09253831,0.047721714,0.04190828,0.035681956
686-645699210285715460	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-639678682148179968	arrived,health,obama,obamacare,uninsured	0.6910145,0.24843661,0.031985372,0.016426047,0.012137469
686-627713267239010304	arrived,uninsured,obama,obamacare,health	0.85129553,0.074992776,0.036621764,0.018798625,0.018291326
686-622551881089355776	health,arrived,uninsured,obamacare,obama	0.50932723,0.24806117,0.13972358,0.068775885,0.034112122
686-634499714961010689	uninsured,obama,obamacare,arrived,health	0.893202,0.04151055,0.022402884,0.021941703,0.020942848
686-648054644560687104	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-645699501882081280	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-645699516084060161	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-639037485503393792	health,uninsured,obama,arrived,obamacare	0.36674252,0.31961423,0.13108389,0.09588074,0.08667863
686-629266106868465664	obamacare,health,arrived,obama,uninsured	0.5986668,0.24247202,0.1048926,0.03792969,0.016038904
686-636294454522028032	health,uninsured,obamacare,arrived,obama	0.3832183,0.2520057,0.19593637,0.131231,0.037608664
686-628548191810531328	arrived,health,uninsured,obamacare,obama	0.5446694,0.23425433,0.17115016,0.031568293,0.018357836
686-616459663496708097	obama,obamacare,health,arrived,uninsured	0.50225914,0.17312862,0.16411318,0.1311428,0.029356258
686-645768337260158976	obamacare,uninsured,health,obama,arrived	0.56051123,0.22732998,0.09228999,0.07070048,0.04916832
686-638951138352459776	obamacare,uninsured,health,arrived,obama	0.35451788,0.33607337,0.13719074,0.13570464,0.036513392
686-648652472760688640	obamacare,obama,health,arrived,uninsured	0.82361716,0.06560541,0.039944462,0.037158716,0.033674236
686-622491932585885696	health,uninsured,obamacare,arrived,obama	0.6384872,0.19153957,0.08967728,0.050303742,0.02999218
686-646967411111952384	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-645968618551816193	obamacare,obama,uninsured,health,arrived	0.87144357,0.04740444,0.033584204,0.02522085,0.022346953
686-628657912718606336	obama,arrived,uninsured,health,obamacare	0.26995394,0.23385383,0.225918,0.22420754,0.0460667
686-643829114080616448	arrived,obama,obamacare,health,uninsured	0.8795302,0.044219095,0.032078862,0.026224827,0.017947007
686-628293137752985600	health,uninsured,obamacare,obama,arrived	0.6411042,0.21088982,0.09455643,0.033320058,0.020129472
686-629677700043571200	arrived,obamacare,uninsured,health,obama	0.33009055,0.30781093,0.18635759,0.11767619,0.05806473
686-625800711410880512	arrived,obamacare,health,obama,uninsured	0.37948972,0.32345372,0.18310486,0.06975424,0.04419745
686-628423739290595328	arrived,health,obamacare,uninsured,obama	0.41268617,0.3969367,0.10161054,0.05373169,0.035034858
686-624632591912534016	obama,health,obamacare,arrived,uninsured	0.47104228,0.21566708,0.13922678,0.13344789,0.04061597
686-639179353855774720	uninsured,obama,obamacare,health,arrived	0.74168944,0.09415223,0.06835038,0.052490145,0.043317784
686-644908400564834304	obama,health,obamacare,arrived,uninsured	0.71467966,0.23991014,0.016434144,0.015265099,0.0137109645
686-643587955987230720	obamacare,arrived,obama,health,uninsured	0.7527738,0.16275668,0.04355676,0.023291348,0.0176214
686-619857367073579008	obamacare,obama,health,arrived,uninsured	0.6524874,0.27928126,0.029739488,0.02006734,0.018424517
686-636229712373657601	health,arrived,obama,obamacare,uninsured	0.8367601,0.056130182,0.04846253,0.030122343,0.028524864
686-643873562399502336	arrived,health,obama,obamacare,uninsured	0.39439642,0.27565092,0.18880291,0.0810579,0.060091857
686-646967543165419520	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-632772926073380865	obamacare,uninsured,arrived,obama,health	0.6858627,0.2134562,0.042337995,0.037394788,0.020948311
686-619129121562456064	arrived,obamacare,uninsured,obama,health	0.2921737,0.24634933,0.22700606,0.14118932,0.093281575
686-645699425772290048	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-635818855462510592	uninsured,obama,health,obamacare,arrived	0.2881549,0.20307462,0.19808778,0.17083699,0.13984571
686-638872069661310977	health,arrived,uninsured,obama,obamacare	0.3549385,0.34408754,0.2267812,0.04391153,0.030281214
686-646967573574123520	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-633032100338380800	obamacare,health,uninsured,arrived,obama	0.5907914,0.17483294,0.098858684,0.077060066,0.058456913
686-624639575688933376	obamacare,obama,health,arrived,uninsured	0.82650375,0.06872779,0.04554772,0.033114903,0.026105838
686-636001300853977088	obama,obamacare,arrived,uninsured,health	0.33317932,0.31302065,0.15916069,0.12305998,0.07157936
686-644327253736710145	obamacare,arrived,uninsured,obama,health	0.7259261,0.12587339,0.12460805,0.01245793,0.011134515
686-639177907202560000	obamacare,uninsured,obama,arrived,health	0.74703795,0.16059129,0.039865073,0.036744352,0.01576135
686-644099792784723968	obamacare,arrived,obama,health,uninsured	0.85969865,0.051517457,0.047248263,0.023624867,0.017910786
686-634974500682137600	health,arrived,obama,uninsured,obamacare	0.3304726,0.32832894,0.14812016,0.09696628,0.09611201
686-620744125667766272	uninsured,obamacare,obama,arrived,health	0.6549399,0.17036712,0.07810301,0.054876987,0.041713018
686-641460858971926528	uninsured,obama,health,arrived,obamacare	0.4937723,0.17848076,0.16394387,0.11506957,0.04873351
686-615353519336349698	uninsured,health,arrived,obama,obamacare	0.6781545,0.21040858,0.101652764,0.004908033,0.0048760953
686-635169163065974784	obamacare,arrived,uninsured,obama,health	0.5967535,0.17871119,0.15193073,0.04770001,0.02490458
686-648856563021692928	arrived,uninsured,obamacare,health,obama	0.3206826,0.22355825,0.22284536,0.16377409,0.06913971
686-639089410013794304	arrived,uninsured,health,obama,obamacare	0.75727123,0.092700616,0.05313186,0.05284921,0.04404706
686-646242712526655488	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-618802357070118912	health,arrived,uninsured,obama,obamacare	0.5413856,0.19697729,0.17493989,0.05607878,0.030618438
686-629403324467425280	health,obama,obamacare,arrived,uninsured	0.7850482,0.087581076,0.049539875,0.041431203,0.036399685
686-616530764310536192	uninsured,health,obamacare,arrived,obama	0.45279664,0.2794898,0.15115947,0.07604485,0.04050927
686-648271249198743552	arrived,obama,obamacare,health,uninsured	0.8818235,0.047795273,0.02898255,0.02367252,0.01772616
686-644905281797779457	obama,health,obamacare,arrived,uninsured	0.71467966,0.23991014,0.016434144,0.015265099,0.0137109645
686-618853276029710336	health,uninsured,obamacare,arrived,obama	0.5492549,0.1978667,0.14558163,0.067042224,0.04025455
686-624704256730361856	arrived,uninsured,health,obamacare,obama	0.2752037,0.24921364,0.19496346,0.16759145,0.11302777
686-649027429982466048	health,uninsured,arrived,obamacare,obama	0.46928304,0.195603,0.1864036,0.082021914,0.066688426
686-625743821834440704	uninsured,health,arrived,obamacare,obama	0.56019145,0.29056287,0.1393715,0.007402654,0.0024714964
686-625747274048630784	obamacare,health,obama,arrived,uninsured	0.79092,0.12897108,0.0419362,0.021853006,0.016319674
686-647873585306996736	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-632689185921626112	obamacare,obama,health,arrived,uninsured	0.9269864,0.03126364,0.015587471,0.014339812,0.011822657
686-627182310799069185	obamacare,arrived,uninsured,health,obama	0.48904425,0.23360264,0.1428431,0.12844932,0.006060689
686-639944613281685504	arrived,obama,health,obamacare,uninsured	0.6285307,0.11803893,0.08767626,0.08759992,0.0781542
686-648336238596874240	health,uninsured,obamacare,obama,arrived	0.31217661,0.305411,0.15486902,0.12828963,0.099253714
686-614975697820471296	arrived,obama,obamacare,health,uninsured	0.76840055,0.08435868,0.07862771,0.038003426,0.030609617
686-643961560071733248	health,obama,uninsured,arrived,obamacare	0.37064466,0.20552853,0.19079266,0.1386253,0.094408885
686-629478638245801984	obamacare,uninsured,obama,arrived,health	0.57938594,0.34395128,0.036576636,0.020955788,0.01913037
686-649020976106225664	uninsured,health,arrived,obama,obamacare	0.6761812,0.13595976,0.1311441,0.037120506,0.019594435
686-648640685487206400	obamacare,obama,health,arrived,uninsured	0.8942051,0.04649778,0.02268496,0.019796174,0.016815994
686-616788706960084992	obamacare,obama,health,arrived,uninsured	0.8525668,0.0604505,0.032170113,0.030114474,0.024698153
686-621670336954793985	arrived,health,obama,uninsured,obamacare	0.28498864,0.2574297,0.19478339,0.16831565,0.094482645
686-645336307900612609	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-619942829595455488	health,obama,obamacare,arrived,uninsured	0.8631703,0.05602732,0.03325936,0.02434382,0.023199165
686-619254117001596929	health,obama,obamacare,arrived,uninsured	0.5234177,0.1500099,0.113158815,0.11182292,0.10159065
686-646095418640736256	health,obama,obamacare,arrived,uninsured	0.90521187,0.040812563,0.021011319,0.017849065,0.015115165
686-631863876619927552	obamacare,health,uninsured,arrived,obama	0.62937707,0.16433917,0.08534252,0.071037896,0.049903333
686-634468803963920384	uninsured,obama,obamacare,health,arrived	0.6236749,0.12752509,0.0854143,0.0836218,0.07976389
686-615974497036967937	uninsured,health,obama,arrived,obamacare	0.77932453,0.066316016,0.06626324,0.04578373,0.04231249
686-644687052638973952	health,uninsured,obama,obamacare,arrived	0.38294393,0.34955868,0.10968983,0.09975335,0.058054227
686-615175485325185024	health,obama,obamacare,arrived,uninsured	0.71946496,0.20528002,0.027785426,0.02518592,0.022283696
686-629019977140600832	health,uninsured,obama,obamacare,arrived	0.6246853,0.23754607,0.06779847,0.035855617,0.03411455
686-647329855759978496	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-630059178627719168	uninsured,arrived,obamacare,health,obama	0.35421646,0.24351609,0.18842584,0.17520134,0.038640276
686-635103833568477184	health,arrived,uninsured,obamacare,obama	0.41270873,0.26329973,0.119022645,0.10270362,0.10226526
686-635064506037706753	arrived,health,obamacare,obama,uninsured	0.3341141,0.25222406,0.22891468,0.0975686,0.087178566
686-645952744440918016	health,obama,obamacare,arrived,uninsured	0.90521187,0.040812563,0.021011319,0.017849065,0.015115165
686-624276723480297472	uninsured,health,arrived,obama,obamacare	0.30627692,0.2806747,0.2636704,0.09426035,0.055117622
686-614989428977614848	arrived,uninsured,health,obama,obamacare	0.55993545,0.2728303,0.11116479,0.032269247,0.023800183
686-648244517577994240	health,obamacare,arrived,obama,uninsured	0.50989115,0.26744252,0.09601124,0.08833476,0.038320348
686-630065128113737728	obamacare,arrived,obama,health,uninsured	0.40923312,0.36591807,0.13666101,0.0541768,0.03401099
686-616751644571774976	arrived,obamacare,health,obama,uninsured	0.6778543,0.17530832,0.06605097,0.04893288,0.031853534
686-641320558068695040	arrived,obama,obamacare,health,uninsured	0.8818235,0.047795273,0.02898255,0.02367252,0.01772616
686-643760080681209856	health,obama,obamacare,arrived,uninsured	0.8396986,0.11527066,0.017534608,0.014614931,0.012881193
686-623961870332903424	uninsured,arrived,obamacare,health,obama	0.46079788,0.28276938,0.10673184,0.09238543,0.057315476
686-616442751190634497	arrived,health,obama,uninsured,obamacare	0.28494102,0.28135097,0.17259608,0.15394208,0.10716986
686-638650282583306241	uninsured,arrived,obamacare,health,obama	0.35273945,0.22897176,0.18258457,0.17830114,0.057403088
686-648236466552705024	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-646002921222438912	arrived,obama,health,obamacare,uninsured	0.64658046,0.11671421,0.08446233,0.082216784,0.07002621
686-645517676027113472	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-623492628911226880	obama,arrived,obamacare,health,uninsured	0.5967937,0.23705141,0.1347961,0.018141113,0.013217703
686-625786194211680256	arrived,health,obama,obamacare,uninsured	0.81880814,0.1101869,0.03283849,0.019455109,0.01871139
686-617651287849574400	uninsured,obamacare,arrived,obama,health	0.64751136,0.23424345,0.061961,0.035130862,0.02115331
686-642746325289689088	uninsured,health,arrived,obama,obamacare	0.42503852,0.2859262,0.12343132,0.09342937,0.072174616
686-641648962680655872	arrived,obama,obamacare,health,uninsured	0.43758848,0.32116616,0.11419985,0.08354536,0.043500148
686-628750901734469633	obamacare,obama,arrived,uninsured,health	0.7391504,0.09921508,0.07844407,0.042569682,0.040620778
686-640912336249745408	health,obamacare,uninsured,obama,arrived	0.32012197,0.21728134,0.16873656,0.15799528,0.13586484
686-646320574793289728	health,uninsured,arrived,obama,obamacare	0.57765263,0.15726586,0.14919728,0.073380694,0.042503532
686-646848426039111681	arrived,health,obama,obamacare,uninsured	0.70426714,0.12215296,0.0850326,0.044351343,0.044195928
686-644518501189877760	uninsured,obama,obamacare,arrived,health	0.33709612,0.29335898,0.18693304,0.14640692,0.03620493
686-646967637646397440	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-634905902169128960	obamacare,health,obama,arrived,uninsured	0.40986246,0.3528935,0.12118046,0.06728812,0.048775464
686-646967551021289472	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-624374395465805824	arrived,obama,health,uninsured,obamacare	0.86071986,0.04984854,0.04183901,0.025256261,0.022336341
686-625771794436370432	health,obama,arrived,obamacare,uninsured	0.77763397,0.11712339,0.064953364,0.026698168,0.013591115
686-638922392929112065	health,arrived,obamacare,obama,uninsured	0.46357605,0.246299,0.13118991,0.1158715,0.043063536
686-626810203925782528	uninsured,arrived,obamacare,health,obama	0.40113315,0.24395607,0.23609558,0.06681562,0.0519996
686-626512783522164736	health,uninsured,obama,arrived,obamacare	0.8535941,0.08713433,0.025459506,0.020392846,0.013419171
686-644682532575911936	obama,obamacare,arrived,health,uninsured	0.31256974,0.27498838,0.21596237,0.13409571,0.06238378
686-632638388483436544	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-646424596191703040	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-618588273452056576	obamacare,obama,arrived,health,uninsured	0.88488287,0.04799109,0.023897888,0.02328807,0.0199401
686-623285541862137857	obamacare,uninsured,arrived,health,obama	0.41132572,0.27755773,0.20796064,0.06410421,0.039051685
686-635582733272645633	uninsured,obama,obamacare,health,arrived	0.9215663,0.03238807,0.016353706,0.015864035,0.013827901
686-636754847862247424	obamacare,uninsured,arrived,health,obama	0.3869263,0.19588776,0.19325738,0.17550841,0.048420157
686-626837364544012288	health,uninsured,obama,arrived,obamacare	0.8535941,0.08713433,0.025459506,0.020392846,0.013419171
686-641226073137614850	health,obamacare,arrived,uninsured,obama	0.46527725,0.24025504,0.14625049,0.09391927,0.054297946
686-642494186571235328	obama,uninsured,obamacare,arrived,health	0.46462566,0.23929553,0.15142973,0.10015815,0.04449094
686-624205716954296321	health,obamacare,arrived,uninsured,obama	0.49112684,0.21489044,0.15469424,0.096101224,0.04318726
686-625785243878866944	health,obamacare,uninsured,obama,arrived	0.45360023,0.2733567,0.17739291,0.062846616,0.032803513
686-619164058198110212	health,obamacare,obama,arrived,uninsured	0.6835774,0.20968789,0.05739609,0.026038026,0.023300562
686-647511088054038528	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-626896433384435712	arrived,health,uninsured,obamacare,obama	0.4145156,0.24933451,0.17867248,0.100564525,0.056912873
686-627546132038713345	arrived,obamacare,obama,uninsured,health	0.4822729,0.18371445,0.1334436,0.11043361,0.09013546
686-619693354935304192	health,obama,obamacare,uninsured,arrived	0.7323313,0.19419256,0.032556,0.020803602,0.020116547
686-625276080828448768	arrived,health,obama,obamacare,uninsured	0.6910145,0.24843661,0.031985372,0.016426047,0.012137469
686-623284078327017472	obamacare,uninsured,arrived,health,obama	0.41132572,0.27755773,0.20796064,0.06410421,0.039051685
686-634568274915667968	obamacare,health,uninsured,obama,arrived	0.7629628,0.10693821,0.08780023,0.028588766,0.013710001
686-630669931286241280	obamacare,obama,health,arrived,uninsured	0.89236516,0.04700651,0.023129193,0.020245297,0.017253848
686-645740705944576001	uninsured,obama,health,arrived,obamacare	0.8400936,0.05758834,0.038323335,0.033888534,0.030106194
686-628992154069667840	arrived,uninsured,health,obama,obamacare	0.721024,0.14833601,0.05632427,0.047728647,0.026587103
686-623590691185295364	uninsured,obama,health,obamacare,arrived	0.5408568,0.18398511,0.09943758,0.09464476,0.08107579
686-649045796390699008	obamacare,arrived,obama,health,uninsured	0.8492676,0.05364896,0.04688128,0.026970757,0.023231398
686-623948724423622656	uninsured,obama,obamacare,health,arrived	0.92098176,0.03254401,0.01649713,0.01600618,0.013970939
686-631272605442441216	health,arrived,obama,obamacare,uninsured	0.54354084,0.3091034,0.06524938,0.045621123,0.036485247
686-623600472637706240	health,uninsured,arrived,obama,obamacare	0.5545198,0.19522038,0.15157664,0.056419656,0.042263538
686-629484372522090496	obamacare,arrived,uninsured,health,obama	0.2939696,0.2888628,0.23716368,0.13098153,0.049022377
686-639950368319909888	uninsured,obama,obamacare,health,arrived	0.9118167,0.036407992,0.018384583,0.01784506,0.015545624
686-634897934195236864	obamacare,health,obama,arrived,uninsured	0.61871165,0.26365373,0.056971006,0.03340988,0.027253732
686-631286660706086912	arrived,health,uninsured,obama,obamacare	0.6243459,0.18752448,0.09606562,0.058151588,0.033912428
686-640510587424796676	obama,obamacare,arrived,health,uninsured	0.7625862,0.06704658,0.061174992,0.05832655,0.050865706
686-643080399288184832	uninsured,obama,obamacare,health,arrived	0.9112844,0.03656067,0.018527273,0.01794408,0.015683576
686-641707697709150209	health,obamacare,obama,uninsured,arrived	0.5820608,0.18289787,0.13800976,0.072453,0.02457855
686-635188169785364480	obamacare,uninsured,health,arrived,obama	0.37570968,0.26027456,0.21814692,0.08569024,0.060178608
686-640335587245957120	health,uninsured,arrived,obamacare,obama	0.6463741,0.1436841,0.11807465,0.046655077,0.045212068
686-617017771231055872	uninsured,health,obama,obamacare,arrived	0.56263554,0.29585752,0.060090356,0.0450043,0.036412314
686-629287388100079616	uninsured,health,arrived,obamacare,obama	0.58536386,0.21465246,0.07693238,0.06289493,0.06015636
686-632288844566671361	obama,arrived,obamacare,health,uninsured	0.21156386,0.19998482,0.19866124,0.19632576,0.19346432
686-635637046069989377	obamacare,uninsured,arrived,obama,health	0.2747834,0.25518999,0.2323616,0.14263795,0.09502707
686-639471617232515077	uninsured,arrived,obamacare,health,obama	0.26955453,0.2575985,0.22333792,0.20068671,0.048822362
686-614984520241168384	uninsured,arrived,health,obamacare,obama	0.98262316,0.0051670396,0.004178136,0.0040957094,0.003935976
686-623267112719482880	obamacare,arrived,obama,health,uninsured	0.65176076,0.26871508,0.041365363,0.01994015,0.018218625
686-625363112045187072	obamacare,obama,arrived,health,uninsured	0.58151853,0.16947906,0.14659758,0.08608703,0.01631782
686-615175116503166977	arrived,obama,obamacare,health,uninsured	0.93206376,0.028633667,0.01460978,0.014162092,0.010530685
686-615339627134717952	obamacare,arrived,health,obama,uninsured	0.9989817,2.825973E-4,2.503935E-4,2.5008537E-4,2.3523046E-4
686-636305442201841664	uninsured,arrived,obamacare,health,obama	0.29400647,0.27019683,0.22817336,0.109646946,0.09797642
686-649031478299488257	health,uninsured,obama,arrived,obamacare	0.66055703,0.2042208,0.05914072,0.051798414,0.024283014
686-642009220297064448	obamacare,uninsured,arrived,health,obama	0.32248512,0.27282494,0.18790802,0.1414724,0.07530951
686-634786504812986369	uninsured,arrived,health,obamacare,obama	0.6591692,0.15703298,0.069851086,0.059875514,0.054071203
686-628324854228492288	obama,arrived,health,uninsured,obamacare	0.44616535,0.35176882,0.10940755,0.049896386,0.042761903
686-637993609149546496	obama,obamacare,health,arrived,uninsured	0.95030516,0.014381347,0.013459731,0.011762289,0.010091456
686-645699420097384448	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-620665446094614528	obamacare,obama,uninsured,arrived,health	0.8545599,0.04925154,0.043092035,0.02894823,0.024148306
686-639527146113904640	health,uninsured,obamacare,obama,arrived	0.628939,0.21706581,0.10638534,0.031622972,0.01598687
686-626568462928744448	arrived,obamacare,uninsured,health,obama	0.594772,0.23942511,0.08345683,0.04490391,0.037442148
686-631628564878741504	uninsured,health,obamacare,obama,arrived	0.61750925,0.18952855,0.13218644,0.039268855,0.021506881
686-647292290013093888	uninsured,health,obama,obamacare,arrived	0.6057032,0.3005469,0.04763251,0.024271466,0.021845914
686-616516359703281668	health,arrived,obamacare,uninsured,obama	0.5044638,0.1985486,0.1434646,0.11665575,0.03686724
686-631877113486819328	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-633852132240826369	uninsured,obamacare,obama,arrived,health	0.34970513,0.2512181,0.1518573,0.14577754,0.10144193
686-636055529211756544	obama,obamacare,uninsured,health,arrived	0.29838574,0.25108483,0.18338808,0.17729323,0.08984811
686-630771092567760897	health,arrived,obama,obamacare,uninsured	0.49355394,0.28631544,0.098501146,0.060815692,0.06081378
686-626384165978669056	health,arrived,obamacare,obama,uninsured	0.5510645,0.34864315,0.045260496,0.036071792,0.018960053
686-623569018004373504	uninsured,arrived,health,obama,obamacare	0.36885193,0.27482995,0.25654125,0.059010476,0.040766414
686-626891311816286208	arrived,uninsured,obamacare,health,obama	0.4849607,0.17470063,0.16927262,0.10970308,0.061362963
686-617801320297164800	obamacare,arrived,obama,health,uninsured	0.7542365,0.18515457,0.03222336,0.016619563,0.01176595
686-649055170861617152	obamacare,health,obama,uninsured,arrived	0.57219225,0.347242,0.0358181,0.023918737,0.02082894
686-617421262638297088	uninsured,health,obamacare,obama,arrived	0.35284826,0.31847355,0.22123863,0.07055598,0.03688359
686-641675624621346816	uninsured,health,obama,arrived,obamacare	0.7951278,0.12969565,0.0367867,0.019481676,0.01890813
686-626932992888467456	arrived,obama,obamacare,health,uninsured	0.91627485,0.03326665,0.018768,0.017773386,0.013917093
686-620328278222614528	uninsured,obama,obamacare,health,arrived	0.39991343,0.22694042,0.19657816,0.1039709,0.072597094
686-633994626530209793	uninsured,arrived,health,obamacare,obama	0.51183146,0.29872972,0.07913787,0.058345187,0.051955756
686-618193430401847296	health,obamacare,obama,arrived,uninsured	0.4635784,0.4065206,0.04904931,0.047206547,0.033645116
686-629475446803988480	uninsured,obamacare,arrived,obama,health	0.5477204,0.3102762,0.0790942,0.036594965,0.026314221
686-628430426445516800	obamacare,arrived,obama,health,uninsured	0.72079945,0.21853562,0.03220525,0.016236922,0.012222761
686-620785751177822209	arrived,uninsured,health,obama,obamacare	0.5764915,0.20594008,0.1051595,0.10222837,0.010180579
686-631671474097668097	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-645880336883167232	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647884716817821696	obamacare,arrived,uninsured,obama,health	0.3122408,0.31162885,0.20130558,0.09064168,0.084183075
686-615346629508358144	obama,arrived,health,uninsured,obamacare	0.45556092,0.17854008,0.17311741,0.09771524,0.09506634
686-615008915575582720	obama,health,uninsured,arrived,obamacare	0.38022345,0.31683502,0.1338074,0.13217685,0.03695731
686-624292867587096576	arrived,uninsured,obama,obamacare,health	0.34868434,0.28107253,0.1332788,0.12529784,0.11166648
686-647193717166751744	obamacare,obama,health,arrived,uninsured	0.90085393,0.036359753,0.022520535,0.021073563,0.01919223
686-646061718569791488	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-625760016373522437	uninsured,obamacare,arrived,obama,health	0.600647,0.22072811,0.08746793,0.051073354,0.040083613
686-629503370856898560	uninsured,obamacare,arrived,health,obama	0.3020965,0.28788543,0.24224313,0.10081284,0.06696214
686-641113063291265024	uninsured,arrived,obamacare,obama,health	0.60219264,0.28112602,0.056188963,0.03706192,0.02343046
686-629530193984536578	obamacare,arrived,uninsured,obama,health	0.57112855,0.2078834,0.097081885,0.06355563,0.06035052
686-618242694964338688	obamacare,arrived,obama,health,uninsured	0.65176076,0.26871508,0.041365363,0.01994015,0.018218625
686-638486889083748352	arrived,uninsured,obama,obamacare,health	0.4231945,0.2621227,0.1267327,0.09954285,0.08840725
686-620775711394168832	uninsured,health,arrived,obama,obamacare	0.568106,0.31266227,0.04798345,0.042734295,0.028513988
686-643217627813429252	health,arrived,uninsured,obamacare,obama	0.29675665,0.24042268,0.22625704,0.16177787,0.074785754
686-618032668236627969	obama,arrived,obamacare,health,uninsured	0.80063385,0.12122941,0.042700354,0.020551879,0.014884517
686-632898886496092160	obamacare,obama,health,arrived,uninsured	0.9269864,0.03126364,0.015587471,0.014339812,0.011822657
686-629025288085573632	health,uninsured,obama,obamacare,arrived	0.6441957,0.23134819,0.048918694,0.043291636,0.032245815
686-624668148873199616	health,uninsured,arrived,obamacare,obama	0.6460796,0.24176887,0.08500913,0.024722245,0.00242013
686-626933141316329472	arrived,uninsured,obamacare,obama,health	0.9863971,0.009261614,0.0018258913,0.0014418921,0.0010734963
686-632774418008272896	uninsured,arrived,obamacare,health,obama	0.3207826,0.27995998,0.20614795,0.10943766,0.08367181
686-643398329443962880	uninsured,arrived,obamacare,health,obama	0.3430947,0.26147032,0.25298357,0.07894534,0.063506104
686-614974904400785408	uninsured,health,obama,arrived,obamacare	0.4782492,0.25370565,0.17834035,0.047432914,0.042271905
686-648907116908929026	arrived,uninsured,obama,health,obamacare	0.79025394,0.1473865,0.029203882,0.016608184,0.016547522
686-630321681362497537	obamacare,arrived,obama,uninsured,health	0.51492846,0.31594706,0.06255124,0.06136995,0.045203306
686-622606230175911936	obamacare,arrived,health,obama,uninsured	0.9989817,2.825973E-4,2.503935E-4,2.5008537E-4,2.3523046E-4
686-648534663653289984	health,obamacare,obama,arrived,uninsured	0.61294085,0.22360678,0.07315277,0.04962443,0.04067516
686-646604748896886784	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648382827482841088	arrived,health,obama,obamacare,uninsured	0.80367047,0.11973462,0.0408432,0.020790963,0.014960719
686-630839323877875712	uninsured,health,obama,obamacare,arrived	0.7205953,0.21726078,0.032160193,0.016221268,0.013762492
686-627996600653217792	obama,health,obamacare,uninsured,arrived	0.3982596,0.24101537,0.22970556,0.069225796,0.06179365
686-646242299941273601	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-633717104693391360	health,arrived,obamacare,obama,uninsured	0.8056833,0.066156894,0.057248,0.04919758,0.02171418
686-642017480953720832	health,obamacare,obama,uninsured,arrived	0.80381477,0.12550049,0.032883186,0.019983033,0.017818546
686-648061286828236800	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-626864461639499777	arrived,obama,obamacare,health,uninsured	0.91190475,0.035982843,0.019846931,0.018717036,0.013548441
686-629476783885295616	uninsured,obamacare,obama,health,arrived	0.51341975,0.33031458,0.06679386,0.052959852,0.03651198
686-620728564133031940	obamacare,health,arrived,obama,uninsured	0.6404859,0.1826759,0.097003594,0.061344188,0.018490436
686-644135923316314112	uninsured,arrived,obamacare,health,obama	0.3577069,0.2764304,0.18202353,0.13356909,0.05027007
686-620177111655972864	obamacare,arrived,obama,health,uninsured	0.36511797,0.25814456,0.18601221,0.1135301,0.077195175
686-639104267672944640	obamacare,arrived,obama,health,uninsured	0.80255604,0.12895589,0.03567236,0.019111384,0.013704343
686-645968752983457792	obamacare,arrived,health,obama,uninsured	0.6869073,0.1463251,0.10862455,0.03812138,0.020021698
686-623341526513352704	uninsured,arrived,obama,health,obamacare	0.63950944,0.27062836,0.041796286,0.026418313,0.021647613
686-628306458342465540	uninsured,obamacare,obama,arrived,health	0.8243031,0.09958551,0.03463803,0.021206757,0.020266624
686-629791111897178112	health,uninsured,obamacare,obama,arrived	0.37918183,0.24678609,0.18504168,0.10273652,0.08625388
686-634017107236118528	health,obamacare,obama,uninsured,arrived	0.6285044,0.24926795,0.052142955,0.04057015,0.029514559
686-646331354943242244	uninsured,obamacare,obama,health,arrived	0.66489303,0.19633302,0.059893135,0.046109598,0.0327712
686-631858056800808960	uninsured,obama,health,obamacare,arrived	0.54473644,0.16690579,0.12485529,0.09896627,0.06453622
686-634742378104946689	uninsured,arrived,obamacare,obama,health	0.50013846,0.34023407,0.08280351,0.049166325,0.027657613
686-629494575296458754	uninsured,obamacare,obama,health,arrived	0.5343179,0.2933455,0.08718698,0.043691263,0.041458342
686-633469248753508352	health,obamacare,arrived,uninsured,obama	0.45615494,0.24688955,0.13570222,0.12153695,0.03971633
686-617542791816704000	uninsured,obama,arrived,health,obamacare	0.47149253,0.35609442,0.06719987,0.05588165,0.049331553
686-619190313874272256	obama,obamacare,arrived,uninsured,health	0.55874103,0.26327032,0.13025439,0.033530295,0.014203992
686-623903399612973056	obamacare,health,obama,arrived,uninsured	0.4639161,0.18184108,0.16032863,0.10307739,0.090836816
686-629340541986205699	health,obamacare,uninsured,arrived,obama	0.29969072,0.2696691,0.21926413,0.119739145,0.09163691
686-629409460151128064	obamacare,uninsured,arrived,health,obama	0.36729184,0.30347866,0.119396366,0.11368952,0.09614363
686-634896899749883904	arrived,health,obamacare,uninsured,obama	0.31289282,0.24693584,0.23000634,0.14695252,0.06321246
686-633224439614861312	health,uninsured,arrived,obamacare,obama	0.35836646,0.29970348,0.14203988,0.103191696,0.09669848
686-621472063321186305	uninsured,obamacare,arrived,health,obama	0.96916896,0.015363094,0.0059957174,0.005872353,0.0035998472
686-628405573411860480	health,obama,arrived,uninsured,obamacare	0.3602763,0.23813576,0.22829418,0.09052133,0.082772434
686-632578574231449600	obamacare,obama,health,arrived,uninsured	0.92690516,0.031284127,0.015607268,0.01435786,0.011845618
686-646099878121115648	uninsured,health,obamacare,obama,arrived	0.27455008,0.25048956,0.18395132,0.18192533,0.109083705
686-615226472593256448	obamacare,obama,health,arrived,uninsured	0.7778581,0.16934301,0.020065475,0.01764416,0.015089265
686-648992951578681344	obamacare,obama,health,arrived,uninsured	0.8746332,0.0551316,0.026876997,0.023441536,0.01991668
686-646331477093941248	uninsured,obamacare,obama,health,arrived	0.7077021,0.16992061,0.05252885,0.040663637,0.029184828
686-617073822349545473	obamacare,uninsured,health,obama,arrived	0.5759848,0.23948362,0.11651568,0.038527522,0.02948837
686-631507229296971776	arrived,health,uninsured,obama,obamacare	0.6243459,0.18752448,0.09606562,0.058151588,0.033912428
686-621215807209541632	arrived,obamacare,uninsured,health,obama	0.808733,0.072297834,0.049920764,0.03854751,0.030500924
686-626955138108788736	obamacare,arrived,uninsured,health,obama	0.40403414,0.23624411,0.16068423,0.11166919,0.08736834
686-629440493814837248	arrived,obama,obamacare,health,uninsured	0.9296841,0.028702317,0.015847411,0.014898866,0.01086728
686-625908613509447680	uninsured,health,arrived,obamacare,obama	0.56019145,0.29056287,0.1393715,0.007402654,0.0024714964
686-638467435268431872	obamacare,obama,arrived,health,uninsured	0.31944755,0.21351226,0.1937771,0.15517291,0.118090175
686-631996468853800960	obamacare,arrived,uninsured,health,obama	0.4180384,0.41695222,0.06607144,0.059672844,0.039265096
686-623300277823774720	arrived,health,uninsured,obamacare,obama	0.40657008,0.18523148,0.17862067,0.1566066,0.07297118
686-626194034013306880	health,uninsured,obama,arrived,obamacare	0.8535941,0.08713433,0.025459506,0.020392846,0.013419171
686-638404610953248768	uninsured,health,obama,obamacare,arrived	0.51950955,0.37254247,0.041057043,0.039744895,0.02714604
686-632059077942767616	uninsured,health,obama,obamacare,arrived	0.7205953,0.21726078,0.032160193,0.016221268,0.013762492
686-643856132944101380	health,arrived,obamacare,uninsured,obama	0.50079364,0.1556022,0.15155506,0.14995533,0.042093795
686-646061475753127936	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-634440233057054720	health,uninsured,arrived,obama,obamacare	0.64701205,0.14769992,0.1393842,0.04085149,0.025052322
686-620232940090474496	health,arrived,obamacare,obama,uninsured	0.39279133,0.31131136,0.19985348,0.05847432,0.037569527
686-648495001341685760	uninsured,obama,health,arrived,obamacare	0.3794887,0.28853697,0.1327565,0.122689925,0.076527916
686-632427421925441536	obama,arrived,uninsured,obamacare,health	0.2613053,0.2000751,0.18574141,0.17846042,0.17441775
686-620652620823138304	arrived,obama,obamacare,uninsured,health	0.5705438,0.33256614,0.07588932,0.01341539,0.0075853257
686-632356413579358208	obamacare,obama,health,arrived,uninsured	0.9244591,0.031621873,0.01673132,0.014793117,0.012394593
686-647511236419018752	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-631506882230751232	uninsured,health,obama,arrived,obamacare	0.5976314,0.30138457,0.046564862,0.027592752,0.026826419
686-632936122977517568	obamacare,health,arrived,uninsured,obama	0.4873823,0.198023,0.15972787,0.10662919,0.04823762
686-644554662205636608	uninsured,arrived,health,obama,obamacare	0.6121176,0.1886697,0.084893964,0.072745614,0.041573115
686-631600748304863232	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-646511672782360576	obama,obamacare,health,arrived,uninsured	0.3606954,0.18113519,0.1754122,0.15290786,0.12984937
686-626128404333637632	arrived,uninsured,obama,health,obamacare	0.7125081,0.119793884,0.070935994,0.053835176,0.04292688
686-641969704224051200	health,obamacare,arrived,obama,uninsured	0.50640935,0.24188444,0.13637711,0.070213005,0.045116074
686-626705642229772289	health,uninsured,arrived,obamacare,obama	0.35870615,0.32950273,0.18872963,0.07324244,0.049819034
686-648871456441565184	obamacare,uninsured,arrived,obama,health	0.49839157,0.26740193,0.15003033,0.043244198,0.040931985
686-615092520461012992	arrived,obamacare,uninsured,health,obama	0.4823196,0.2650711,0.21931367,0.02543276,0.0078628985
686-636085546897399808	arrived,obama,obamacare,health,uninsured	0.8730442,0.046230797,0.029882507,0.02804039,0.022802092
686-618486899506810880	obama,uninsured,health,obamacare,arrived	0.37112987,0.2523843,0.16454905,0.107150525,0.10478623
686-622246086565056512	health,arrived,obama,obamacare,uninsured	0.6673915,0.18714935,0.06098402,0.04644986,0.038025305
686-644287567181967361	obamacare,arrived,health,obama,uninsured	0.4883757,0.20302847,0.1364627,0.0865075,0.08562565
686-630487466043158528	arrived,obamacare,health,obama,uninsured	0.7465977,0.13135542,0.072967514,0.03579448,0.013284884
686-646061676630966272	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-643262333179920384	arrived,obamacare,obama,uninsured,health	0.7627657,0.14773604,0.041061785,0.028123306,0.02031313
686-628327774621704193	obamacare,uninsured,obama,health,arrived	0.331643,0.2815853,0.20918666,0.16346747,0.014117586
686-646351417368793089	uninsured,arrived,health,obamacare,obama	0.37505752,0.2130576,0.20584306,0.10540301,0.10063881
686-620021454696902656	uninsured,arrived,obamacare,obama,health	0.36912775,0.26270753,0.1459458,0.12545806,0.096760854
686-647315544547291136	uninsured,arrived,health,obama,obamacare	0.45585006,0.33230963,0.14087678,0.04254369,0.028419835
686-619171910954319872	health,obamacare,obama,arrived,uninsured	0.7348549,0.2053987,0.031232342,0.014278251,0.014235834
686-626485319324581888	health,uninsured,arrived,obamacare,obama	0.3809191,0.22861406,0.16024613,0.14061734,0.089603364
686-633109408650784768	uninsured,health,arrived,obama,obamacare	0.699285,0.16919363,0.05851796,0.048354123,0.024649331
686-648906097361727488	health,arrived,obama,obamacare,uninsured	0.7436048,0.15051387,0.049058773,0.033783592,0.02303898
686-632278382877655040	health,uninsured,obamacare,obama,arrived	0.6975998,0.13257585,0.1182894,0.035465732,0.016069164
686-630400800276279296	uninsured,arrived,health,obamacare,obama	0.515119,0.18285303,0.14153543,0.1276273,0.03286524
686-628401434850131968	uninsured,health,obamacare,arrived,obama	0.49543235,0.26167566,0.1158606,0.08341186,0.04361956
686-617876457516216321	uninsured,arrived,obama,obamacare,health	0.54800016,0.21040376,0.10004017,0.0806143,0.06094161
686-647210266527186944	uninsured,health,arrived,obamacare,obama	0.41291538,0.2178043,0.20606148,0.09772339,0.06549546
686-642089836241784833	health,obamacare,obama,arrived,uninsured	0.39936116,0.39782277,0.1511547,0.035999715,0.015661635
686-615326698033270784	health,arrived,obamacare,obama,uninsured	0.69163173,0.15772286,0.06306248,0.05859695,0.028985966
686-648347439133364224	obamacare,obama,health,arrived,uninsured	0.7831776,0.0835583,0.049604792,0.042968202,0.04069109
686-629982389809233920	obamacare,arrived,obama,health,uninsured	0.7564206,0.18390533,0.031616207,0.016367825,0.011690042
686-619827739743395844	uninsured,health,arrived,obamacare,obama	0.42418572,0.38469183,0.120994024,0.06352548,0.006602954
686-634096028866727936	obamacare,obama,uninsured,health,arrived	0.8525077,0.055297542,0.04125013,0.02719317,0.023751454
686-625833724526112768	uninsured,arrived,obama,health,obamacare	0.66216475,0.24710347,0.040989324,0.026881734,0.022860717
686-633713417686228992	health,arrived,obama,uninsured,obamacare	0.680229,0.18635286,0.05373905,0.0470304,0.03264865
686-622767799690133504	uninsured,arrived,obama,health,obamacare	0.7822772,0.1386698,0.03664644,0.02306869,0.019337846
686-646791929544359936	uninsured,arrived,health,obama,obamacare	0.60996425,0.21181084,0.123307176,0.033216625,0.0217011
686-648829385894596608	arrived,obamacare,uninsured,health,obama	0.874174,0.11050038,0.007607626,0.006414539,0.0013034454
686-630875499984760832	arrived,obamacare,health,obama,uninsured	0.7465977,0.13135542,0.072967514,0.03579448,0.013284884
686-627191110343991296	obamacare,uninsured,arrived,obama,health	0.30891433,0.2758167,0.23679511,0.11375618,0.06471766
686-631644913185112065	obamacare,obama,arrived,health,uninsured	0.89075047,0.03556523,0.035176165,0.023768928,0.01473922
686-634351176251629568	health,obama,obamacare,arrived,uninsured	0.8572182,0.058682844,0.03157348,0.02665745,0.025867991
686-645699606550962177	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648235844948520961	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-633725986752843776	uninsured,obama,obamacare,health,arrived	0.8398628,0.06279021,0.03430746,0.033330135,0.02970938
686-646061454576119808	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-649001792584347648	obamacare,obama,health,arrived,uninsured	0.8740693,0.049500074,0.028038876,0.025612757,0.02277902
686-637753433051672576	uninsured,health,obamacare,arrived,obama	0.5235374,0.31340605,0.09717673,0.042703208,0.023176644
686-628889509594206208	arrived,uninsured,health,obama,obamacare	0.721024,0.14833601,0.05632427,0.047728647,0.026587103
686-620720262305058816	obamacare,health,arrived,obama,uninsured	0.4082846,0.26811916,0.26308766,0.042007975,0.018500635
686-623925949202100224	health,uninsured,obamacare,arrived,obama	0.3004952,0.2726249,0.25948837,0.12837838,0.039013144
686-624357884370010112	health,arrived,uninsured,obamacare,obama	0.32021254,0.25963148,0.22439861,0.1347047,0.06105268
686-616086659759800320	uninsured,obama,health,obamacare,arrived	0.3738487,0.26889777,0.23241185,0.067005,0.05783667
686-645336272525856768	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-623337409241939968	uninsured,arrived,obama,health,obamacare	0.63950944,0.27062836,0.041796286,0.026418313,0.021647613
686-615283932783841280	obama,health,obamacare,arrived,uninsured	0.7171294,0.25168332,0.024801573,0.00379465,0.0025910276
686-648236147185991681	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-645517780054228992	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-625032807446765568	health,arrived,obama,obamacare,uninsured	0.33153892,0.24704821,0.22002245,0.1348499,0.06654054
686-648897663375642624	health,obamacare,uninsured,arrived,obama	0.36730656,0.22391069,0.21162212,0.13797645,0.05918419
686-629059317958774784	obamacare,uninsured,arrived,obama,health	0.5324286,0.25007558,0.14999293,0.041617624,0.025885265
686-639441769126600704	obama,obamacare,uninsured,arrived,health	0.7348848,0.14152054,0.06934993,0.030580219,0.023664508
686-648241807785000960	obamacare,obama,health,arrived,uninsured	0.82361716,0.06560541,0.039944462,0.037158716,0.033674236
686-644315904688439296	uninsured,obamacare,arrived,obama,health	0.3907294,0.3397349,0.10495062,0.08795063,0.07663443
686-617835993249542144	obamacare,health,arrived,obama,uninsured	0.65934986,0.12974344,0.08782028,0.08493234,0.03815408
686-629414940709945344	obamacare,uninsured,arrived,health,obama	0.7121016,0.16643673,0.101478174,0.010962126,0.0090213725
686-631279174812983296	uninsured,health,arrived,obama,obamacare	0.2869308,0.28066412,0.23714449,0.10645918,0.08880145
686-640021098839412736	arrived,obama,obamacare,health,uninsured	0.7866322,0.08929817,0.0462619,0.04423332,0.033574436
686-621643226773094400	obamacare,uninsured,arrived,health,obama	0.61141413,0.14720182,0.14719431,0.057368837,0.036820862
686-646424036499701761	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-646605060328292352	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-618638829814067200	health,obamacare,obama,arrived,uninsured	0.71402663,0.17450817,0.05357334,0.034955345,0.022936502
686-615178077090488320	uninsured,arrived,health,obamacare,obama	0.4277052,0.32076108,0.18757299,0.059571844,0.004388882
686-637057149227671553	uninsured,arrived,obamacare,health,obama	0.30956468,0.2631014,0.15541515,0.13963342,0.13228536
686-620642248758177792	uninsured,obamacare,obama,health,arrived	0.37141624,0.28344616,0.16373515,0.14504723,0.036355205
686-622482117570752512	uninsured,obamacare,obama,arrived,health	0.32698673,0.2215111,0.21081685,0.13621114,0.104474194
686-644765351264174080	arrived,health,uninsured,obamacare,obama	0.35342,0.1955041,0.18918578,0.1717658,0.090124324
686-632297008405962752	health,arrived,obama,obamacare,uninsured	0.8019095,0.11047307,0.046854768,0.02366075,0.017101912
686-648417267261149184	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-633871657761767424	health,uninsured,obamacare,obama,arrived	0.6975998,0.13257585,0.1182894,0.035465732,0.016069164
686-629484618090020864	uninsured,obama,arrived,health,obamacare	0.35162857,0.2476562,0.15441124,0.14957346,0.09673054
686-648417090186121216	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-645517839479123968	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648894041879220225	obamacare,obama,health,arrived,uninsured	0.85363024,0.05491414,0.033070706,0.0306645,0.027720386
686-629470994277597184	uninsured,health,arrived,obama,obamacare	0.7463448,0.13410413,0.060684003,0.038464423,0.020402607
686-635559111376158722	obamacare,arrived,health,obama,uninsured	0.8113269,0.088784486,0.06251734,0.025930904,0.011440357
686-631814154001731584	uninsured,arrived,obama,health,obamacare	0.9014395,0.043559734,0.026716094,0.014305724,0.013978978
686-618579900648325120	arrived,uninsured,health,obama,obamacare	0.43899348,0.23412791,0.18128712,0.085224204,0.060367275
686-621719292002893824	obama,uninsured,arrived,health,obamacare	0.44548988,0.2624889,0.20173728,0.048352867,0.04193108
686-639535263627247616	obama,uninsured,arrived,obamacare,health	0.24230663,0.21586895,0.20535287,0.1717296,0.16474195
686-626382963522031616	obamacare,arrived,uninsured,obama,health	0.67915386,0.11043313,0.105660744,0.05683744,0.047914837
686-629203640910098433	uninsured,obama,health,obamacare,arrived	0.91995054,0.029618992,0.018644916,0.016597727,0.015187823
686-648417102051676160	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-638233537045467136	health,uninsured,arrived,obama,obamacare	0.57178414,0.18173343,0.14134248,0.056618273,0.048521694
686-627972304274784256	obamacare,uninsured,health,arrived,obama	0.61515635,0.14191674,0.14182217,0.056516718,0.04458799
686-618480333659471872	uninsured,arrived,obamacare,health,obama	0.42718208,0.3313807,0.121929,0.07355185,0.045956373
686-625385062360596480	obamacare,health,arrived,uninsured,obama	0.39661846,0.25470242,0.17719315,0.09867081,0.07281514
686-641878720979030016	arrived,obama,health,obamacare,uninsured	0.30667248,0.24358426,0.23792239,0.13511463,0.076706246
686-648235878448562177	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-633811418136092672	uninsured,obama,health,obamacare,arrived	0.3378305,0.19976851,0.15732376,0.15668769,0.14838953
686-618029399347200000	health,obamacare,arrived,uninsured,obama	0.4263759,0.23391771,0.16363585,0.11098241,0.06508812
686-624271629376487425	uninsured,arrived,health,obama,obamacare	0.54705215,0.2454956,0.13907172,0.04150042,0.026880126
686-647329710637084672	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-645336267731914752	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-618847542437130240	health,obamacare,obama,arrived,uninsured	0.4189484,0.41825637,0.07206803,0.045915112,0.04481205
686-648055138784018432	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-622108497140813824	arrived,uninsured,obama,obamacare,health	0.5677385,0.35800508,0.036719006,0.019098539,0.018438913
686-623998773916737536	arrived,uninsured,health,obama,obamacare	0.3773122,0.30258766,0.2108639,0.071091734,0.03814449
686-637703978264981504	health,obamacare,arrived,obama,uninsured	0.32995117,0.26032487,0.18314494,0.16922708,0.057351958
686-646868174814625792	arrived,obamacare,obama,health,uninsured	0.6197898,0.2921524,0.032702174,0.02827686,0.027078776
686-647512975952216065	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-616172803834818564	arrived,obama,health,obamacare,uninsured	0.8198841,0.05982048,0.045819238,0.039759163,0.03471701
686-617011232755683329	arrived,health,obama,obamacare,uninsured	0.5598071,0.1880961,0.0865337,0.08461104,0.08095201
686-644513476086525952	health,uninsured,obama,arrived,obamacare	0.5672367,0.32458678,0.042312942,0.040323503,0.025540039
686-633321138869940224	arrived,health,uninsured,obama,obamacare	0.41572568,0.2272291,0.18947348,0.08446675,0.083104976
686-648914992704520192	uninsured,arrived,health,obama,obamacare	0.6668651,0.13431613,0.13049658,0.040894654,0.027427543
686-630156732451262464	arrived,health,obamacare,uninsured,obama	0.58846134,0.29732856,0.056487266,0.04754482,0.010178029
686-648055063387185153	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-634737350497710081	health,arrived,obama,obamacare,uninsured	0.82899487,0.109239995,0.031424943,0.01823725,0.01210291
686-624993209874317312	obamacare,arrived,uninsured,health,obama	0.5640853,0.14792508,0.12452915,0.12283441,0.040626056
686-643266216509882368	obama,obamacare,health,arrived,uninsured	0.3606954,0.18113519,0.1754122,0.15290786,0.12984937
686-630769793541378048	health,uninsured,obama,obamacare,arrived	0.73228145,0.16475429,0.048585553,0.029876122,0.024502607
686-646967675994767360	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-630303599050907649	obamacare,arrived,obama,uninsured,health	0.51492846,0.31594706,0.06255124,0.06136995,0.045203306
686-634007391596507137	arrived,obama,obamacare,health,uninsured	0.881065,0.04906415,0.02561873,0.025477557,0.018774541
686-636659827138252800	obamacare,obama,arrived,uninsured,health	0.3548157,0.21976614,0.17206043,0.14143516,0.11192258
686-646967386122399744	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-622154042123374592	arrived,health,uninsured,obama,obamacare	0.61186635,0.22738793,0.07109455,0.049324676,0.040326484
686-629475999156187136	obamacare,health,uninsured,arrived,obama	0.47683784,0.21097587,0.14113308,0.12526071,0.045792494
686-624769526765326336	uninsured,obamacare,arrived,health,obama	0.5665991,0.12716098,0.12705918,0.10695101,0.07222975
686-647873453819695105	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-630773624908218368	uninsured,obamacare,arrived,health,obama	0.35776094,0.29883456,0.22232488,0.06423164,0.05684799
686-615280702599397377	obamacare,obama,health,arrived,uninsured	0.7778581,0.16934301,0.020065475,0.01764416,0.015089265
686-637146263142559745	arrived,uninsured,health,obama,obamacare	0.44522554,0.23738217,0.23553401,0.04879426,0.033064008
686-639251439710261248	uninsured,obamacare,health,arrived,obama	0.41035813,0.24853899,0.13325396,0.12565531,0.08219362
686-628375533634457600	health,arrived,obama,uninsured,obamacare	0.65893,0.24326493,0.04244388,0.028243829,0.027117362
686-636146179022041089	arrived,health,obamacare,uninsured,obama	0.26950973,0.2660868,0.21666601,0.20535229,0.04238517
686-628723596211433472	uninsured,arrived,obama,obamacare,health	0.47588915,0.38207442,0.057899352,0.05277452,0.03136255
686-634079414284877824	obamacare,uninsured,obama,arrived,health	0.5673411,0.33650288,0.037656758,0.029839827,0.028659431
686-628935388653056001	obamacare,arrived,uninsured,obama,health	0.67915386,0.11043313,0.105660744,0.05683744,0.047914837
686-648596585580916736	obamacare,obama,health,arrived,uninsured	0.87869877,0.04987259,0.025674194,0.024552848,0.021201603
686-619926622175518721	health,obama,uninsured,obamacare,arrived	0.35712722,0.22486202,0.14876585,0.1427119,0.12653302
686-648535138398158848	uninsured,obama,obamacare,health,arrived	0.9192148,0.03285988,0.017324489,0.016310353,0.0142905
686-623456917780729856	uninsured,obama,obamacare,health,arrived	0.42230487,0.18695268,0.13326654,0.1310343,0.12644158
686-633779522282881024	obamacare,obama,uninsured,arrived,health	0.5844196,0.20452935,0.11365116,0.062322646,0.03507726
686-634161529298878465	health,arrived,obamacare,uninsured,obama	0.37488422,0.25972015,0.17626506,0.097926535,0.09120405
686-648417130010931200	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-639911393609682944	obamacare,health,arrived,obama,uninsured	0.45817113,0.20848621,0.2007908,0.082277276,0.05027459
686-634775442587807745	arrived,uninsured,health,obamacare,obama	0.27637714,0.27187347,0.25052017,0.11239985,0.08882936
686-626715504116400129	arrived,obama,obamacare,health,uninsured	0.8844209,0.04726197,0.026137747,0.024537792,0.01764165
686-621504445516529664	health,arrived,obama,obamacare,uninsured	0.70215285,0.17434913,0.050991915,0.040551037,0.031955063
686-618226365222002688	arrived,obamacare,health,obama,uninsured	0.7771918,0.12961149,0.041612513,0.035768297,0.015815903
686-639427578520928256	health,arrived,uninsured,obama,obamacare	0.32128185,0.2558152,0.1958255,0.17962126,0.04745616
686-640916216014577664	obamacare,health,uninsured,obama,arrived	0.446719,0.29419932,0.15366255,0.06525691,0.040162235
686-639232902383800320	uninsured,health,obamacare,obama,arrived	0.5080747,0.2644679,0.14705303,0.049025573,0.03137878
686-624728427283775488	uninsured,health,obamacare,obama,arrived	0.43089285,0.33858702,0.13755913,0.056272168,0.03668883
686-624280244514631680	uninsured,health,obamacare,arrived,obama	0.4611644,0.39148438,0.058068044,0.046224948,0.043058198
686-626269799023296512	health,uninsured,obama,arrived,obamacare	0.8535941,0.08713433,0.025459506,0.020392846,0.013419171
686-639130625866399744	arrived,obamacare,health,obama,uninsured	0.29641148,0.27954486,0.21822168,0.112024,0.09379797
686-632357475367260160	health,obama,arrived,uninsured,obamacare	0.35229096,0.29048353,0.25620624,0.069238216,0.031781044
686-616770795533012992	arrived,obamacare,obama,health,uninsured	0.8373485,0.105232045,0.028690634,0.015177023,0.013551776
686-641245954327248896	uninsured,arrived,health,obamacare,obama	0.4290817,0.25992656,0.20015922,0.06426572,0.046566796
686-648294593788669952	obamacare,obama,health,arrived,uninsured	0.82361716,0.06560541,0.039944462,0.037158716,0.033674236
686-647329796221878272	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648417131810295808	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-624309321879322625	health,arrived,obamacare,uninsured,obama	0.31049815,0.25022465,0.24558191,0.11198313,0.08171218
686-624207037937909760	uninsured,arrived,obamacare,health,obama	0.7343336,0.1421961,0.08923957,0.01934948,0.01488128
686-626670108006440960	obama,obamacare,arrived,health,uninsured	0.3689293,0.3101355,0.211467,0.06376687,0.04570133
686-646605012634894336	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-623328058431393792	arrived,obamacare,health,obama,uninsured	0.44485316,0.30551636,0.18096386,0.048059776,0.020606838
686-627832569757892608	obamacare,uninsured,obama,health,arrived	0.331643,0.2815853,0.20918666,0.16346747,0.014117586
686-644304975196225536	obamacare,arrived,obama,health,uninsured	0.41697186,0.27188867,0.117547,0.101359636,0.092232816
686-621480864006991873	health,arrived,obamacare,obama,uninsured	0.58492833,0.2506347,0.07017646,0.062432136,0.031828366
686-645765383463530497	health,obama,obamacare,arrived,uninsured	0.8710114,0.05592468,0.028467719,0.0240794,0.020516798
686-640301477093748736	obamacare,arrived,obama,health,uninsured	0.75183016,0.1897809,0.031355824,0.015470932,0.011562187
686-648628517811433472	arrived,obamacare,health,obama,uninsured	0.38898158,0.28258324,0.13174006,0.11251027,0.08418485
686-647873469254778880	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-615982257770139648	arrived,obamacare,health,obama,uninsured	0.6105201,0.23940426,0.100456014,0.034499574,0.015119997
686-615128387728900096	obamacare,arrived,health,obama,uninsured	0.75570977,0.11670154,0.064201325,0.04292252,0.020464836
686-625426174014025729	obama,arrived,obamacare,health,uninsured	0.36786044,0.18903688,0.16582908,0.16502698,0.11224663
686-620102574998327299	obamacare,health,uninsured,arrived,obama	0.5749043,0.2515999,0.077304475,0.05780204,0.038389254
686-619693839624744960	health,obama,obamacare,uninsured,arrived	0.7323313,0.19419256,0.032556,0.020803602,0.020116547
686-643548308145836032	arrived,health,uninsured,obama,obamacare	0.30283883,0.29477018,0.28683645,0.06597623,0.049578298
686-630440155623469056	obamacare,health,uninsured,arrived,obama	0.65771705,0.10703036,0.10223471,0.07025444,0.06276346
686-646120822940241921	arrived,uninsured,health,obamacare,obama	0.2844877,0.2328054,0.21527526,0.18105267,0.08637897
686-627220054380163072	arrived,obamacare,obama,health,uninsured	0.7291554,0.15111232,0.05037351,0.046698563,0.022660164
686-638529419867394048	arrived,obamacare,health,obama,uninsured	0.7771918,0.12961149,0.041612513,0.035768297,0.015815903
686-636216189576970240	obamacare,health,arrived,obama,uninsured	0.5404331,0.21633296,0.09877454,0.07319559,0.07126381
686-638002125583179776	health,arrived,obama,uninsured,obamacare	0.65893,0.24326493,0.04244388,0.028243829,0.027117362
686-646604844485230592	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648883418214739969	uninsured,arrived,obama,health,obamacare	0.67793244,0.10932037,0.0875382,0.07042175,0.054787267
686-636821047287922688	health,arrived,obamacare,obama,uninsured	0.29979226,0.2962552,0.20679541,0.110744774,0.086412355
686-640171637044850688	uninsured,health,obamacare,arrived,obama	0.5395918,0.28868428,0.06380806,0.05873044,0.049185432
686-646967483090366464	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-623485658623901696	uninsured,obama,health,arrived,obamacare	0.7633081,0.087235354,0.05795035,0.046099573,0.045406625
686-630825517390929921	obamacare,uninsured,health,arrived,obama	0.35876533,0.2537156,0.22125292,0.0879119,0.07835424
686-639164931670208512	obamacare,uninsured,obama,arrived,health	0.6780938,0.09206079,0.082217656,0.08165377,0.06597399
686-619069023481806852	arrived,obamacare,obama,health,uninsured	0.4394951,0.18843155,0.18343744,0.10150725,0.08712868
686-623837599757680640	health,arrived,obamacare,obama,uninsured	0.3805573,0.3278192,0.20121816,0.058288563,0.03211678
686-633326210316013569	uninsured,obamacare,obama,arrived,health	0.38497642,0.32840517,0.19038942,0.053278893,0.042950105
686-645999436959580160	uninsured,obama,obamacare,health,arrived	0.9112438,0.036561474,0.018522466,0.01796801,0.015704246
686-637107464287027200	arrived,health,obamacare,obama,uninsured	0.6242689,0.1600549,0.09697791,0.07766663,0.04103165
686-646786306597457922	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-637074601600753664	health,arrived,obama,uninsured,obamacare	0.5019389,0.24921307,0.12283975,0.10573975,0.020268576
686-647329700725940225	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-619162052448399360	health,obamacare,obama,arrived,uninsured	0.7348549,0.2053987,0.031232342,0.014278251,0.014235834
686-636897733152890881	health,uninsured,obamacare,obama,arrived	0.44478145,0.23131682,0.21824412,0.08432436,0.021333246
686-646786671640375296	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648679195506159616	obamacare,obama,health,arrived,uninsured	0.8902857,0.046808407,0.022948768,0.02106671,0.018890465
686-646061790116184064	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-615216500471894016	obamacare,arrived,health,uninsured,obama	0.32500896,0.322657,0.17876197,0.1342929,0.039279204
686-624187174875836416	arrived,obama,obamacare,health,uninsured	0.9226565,0.028530214,0.024365684,0.014001151,0.010446482
686-626726119979364352	arrived,health,obamacare,obama,uninsured	0.48724258,0.16689363,0.15299359,0.1099892,0.08288101
686-645517662609502208	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-631869649441964032	health,obamacare,uninsured,arrived,obama	0.3720664,0.31225196,0.16723114,0.10500176,0.04344874
686-631678062342463488	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-629473933339820033	uninsured,obamacare,arrived,obama,health	0.5477204,0.3102762,0.0790942,0.036594965,0.026314221
686-639444921997524992	uninsured,obamacare,arrived,obama,health	0.66164756,0.1540895,0.1063569,0.043420848,0.034485225
686-630955605310722048	obamacare,obama,arrived,health,uninsured	0.8617081,0.04028053,0.033659764,0.032354094,0.03199752
686-629413105739649025	arrived,obamacare,health,obama,uninsured	0.6017885,0.23564142,0.06420162,0.062799886,0.035568535
686-620360049907466240	health,arrived,obamacare,uninsured,obama	0.61471057,0.15707073,0.14377576,0.045336153,0.03910679
686-630851462101377025	health,uninsured,obama,arrived,obamacare	0.5481496,0.28146666,0.070587195,0.051375873,0.048420697
686-638469604721979392	health,obama,obamacare,arrived,uninsured	0.9275117,0.031429034,0.015977394,0.013546899,0.01153499
686-646061690895732736	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-645712465624338432	uninsured,obama,health,arrived,obamacare	0.8400936,0.05758834,0.038323335,0.033888534,0.030106194
686-646061376654340096	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647396725666238464	health,arrived,uninsured,obama,obamacare	0.42367768,0.17777373,0.16540767,0.12126092,0.111879975
686-630537862883094528	obamacare,health,arrived,obama,uninsured	0.514674,0.22660641,0.17368211,0.07228444,0.0127530405
686-646424115734269952	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-624550288909733888	arrived,health,obama,uninsured,obamacare	0.44398212,0.3708887,0.06970907,0.061522957,0.053897154
686-648235905430392832	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-638526924806057984	arrived,obama,health,obamacare,uninsured	0.921101,0.03179031,0.017516635,0.016274456,0.013317641
686-644940006256046080	obamacare,arrived,obama,health,uninsured	0.39090118,0.38821208,0.11673806,0.061849903,0.04229879
686-617422881199239168	uninsured,obama,health,obamacare,arrived	0.53093636,0.14626883,0.11431848,0.10529956,0.10317679
686-630920715189948416	arrived,health,obamacare,obama,uninsured	0.35697895,0.352536,0.15705238,0.07361182,0.05982087
686-635289000735969280	arrived,uninsured,obama,obamacare,health	0.34197688,0.27919623,0.20343357,0.1313629,0.044030417
686-639137641850605568	uninsured,arrived,health,obamacare,obama	0.7316732,0.13504165,0.093204215,0.029280841,0.0108001
686-642004885433647104	obamacare,health,uninsured,arrived,obama	0.3100455,0.2996514,0.25008,0.07487085,0.065352224
686-647551529168318464	health,uninsured,obamacare,arrived,obama	0.68790984,0.08515406,0.0768968,0.076165035,0.07387427
686-622150928972447744	uninsured,obamacare,arrived,obama,health	0.6295431,0.20212579,0.1025419,0.03896244,0.026826741
686-636937536930082816	arrived,health,obama,uninsured,obamacare	0.36711058,0.24428363,0.15378745,0.12649114,0.108327195
686-635996715196125184	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-646066899214835713	health,arrived,uninsured,obama,obamacare	0.44258454,0.3450392,0.14782752,0.03677081,0.027777933
686-619162610580099072	health,obamacare,obama,arrived,uninsured	0.7348549,0.2053987,0.031232342,0.014278251,0.014235834
686-645838936590254080	arrived,health,uninsured,obamacare,obama	0.45071805,0.23928535,0.16282237,0.078836225,0.06833802
686-622255892709441536	uninsured,obamacare,health,obama,arrived	0.61802924,0.16286154,0.1542944,0.043504715,0.021310093
686-640334907340947456	obamacare,arrived,health,uninsured,obama	0.3881656,0.29101253,0.23240654,0.057482984,0.03093235
686-619162093283966980	health,obamacare,obama,arrived,uninsured	0.7348549,0.2053987,0.031232342,0.014278251,0.014235834
686-628984902143356929	health,obamacare,obama,arrived,uninsured	0.6941383,0.19492795,0.05568077,0.034695715,0.020557255
686-627661769691889664	uninsured,health,arrived,obama,obamacare	0.4165783,0.20627649,0.19749798,0.103154816,0.076492436
686-620382491451338752	obamacare,obama,health,arrived,uninsured	0.82063013,0.069101445,0.0411965,0.036482878,0.03258906
686-621377342284414977	obamacare,arrived,health,obama,uninsured	0.5128387,0.24032466,0.1724835,0.050165985,0.024187151
686-625842116242055169	uninsured,arrived,health,obamacare,obama	0.8862781,0.096483,0.012535027,0.003528084,0.0011758297
686-641391578561544192	uninsured,arrived,obamacare,health,obama	0.55751634,0.20296107,0.12281132,0.06658327,0.050128013
686-631208630575067136	obama,obamacare,health,arrived,uninsured	0.80845547,0.14327067,0.018212743,0.01646754,0.0135935685
686-621675035263172608	health,obamacare,arrived,obama,uninsured	0.40695524,0.2956195,0.18720223,0.06608534,0.04413771
686-635250679381164032	health,obama,obamacare,uninsured,arrived	0.86368173,0.056597065,0.03015546,0.024785794,0.024779974
686-616405808293658624	arrived,obamacare,obama,health,uninsured	0.65838283,0.20989075,0.060325097,0.04520248,0.026198853
686-620602172644786176	uninsured,obamacare,health,obama,arrived	0.711599,0.14285198,0.06274984,0.04296009,0.0398391
686-633779692483543040	obama,arrived,health,uninsured,obamacare	0.6076281,0.25299513,0.05838692,0.0520949,0.028894944
686-648598625765855232	obamacare,obama,health,arrived,uninsured	0.8740693,0.049500074,0.028038876,0.025612757,0.02277902
686-618201512141983744	uninsured,health,obamacare,arrived,obama	0.28590655,0.23754846,0.23347963,0.18783794,0.055227406
686-647601794999173120	arrived,health,uninsured,obamacare,obama	0.34009954,0.2719009,0.17109914,0.11583822,0.10106219
686-620771801178705920	health,arrived,uninsured,obamacare,obama	0.38077176,0.37838548,0.09608039,0.077584565,0.067177825
686-624815269022695425	uninsured,arrived,obama,obamacare,health	0.7921686,0.12749484,0.03691591,0.022712747,0.0207079
686-617845338309816320	obamacare,arrived,health,obama,uninsured	0.9989817,2.825973E-4,2.503935E-4,2.5008537E-4,2.3523046E-4
686-649071466667859970	obamacare,obama,health,arrived,uninsured	0.85363024,0.05491414,0.033070706,0.0306645,0.027720386
686-640666291133542400	obama,obamacare,health,arrived,uninsured	0.7728563,0.0666078,0.05791889,0.055833805,0.04678319
686-618582379850940416	uninsured,health,arrived,obama,obamacare	0.36496925,0.23842227,0.14558695,0.13142522,0.1195963
686-646883682482044928	health,obama,obamacare,arrived,uninsured	0.8710114,0.05592468,0.028467719,0.0240794,0.020516798
686-639691803692634112	health,uninsured,arrived,obama,obamacare	0.34817934,0.32187325,0.18711637,0.105198964,0.03763207
686-626869109242875904	uninsured,obama,arrived,health,obamacare	0.31814885,0.21475406,0.20319398,0.19823183,0.065671295
686-646491533391360000	obamacare,arrived,obama,health,uninsured	0.5240477,0.21846204,0.11098758,0.08193104,0.06457167
686-645517708482641920	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-631088673954492416	uninsured,health,arrived,obama,obamacare	0.57550126,0.40027803,0.008937292,0.00806266,0.00722075
686-625724648592920578	arrived,obama,obamacare,health,uninsured	0.89494044,0.043249425,0.02280295,0.0220968,0.016910393
686-625173953854570496	obama,obamacare,arrived,health,uninsured	0.64030004,0.20160653,0.09672376,0.035366748,0.026002951
686-615262145190711296	obamacare,obama,health,arrived,uninsured	0.58608884,0.13687116,0.119945444,0.08142897,0.0756656
686-633782456823468032	obamacare,health,obama,arrived,uninsured	0.47830477,0.40531406,0.054383364,0.03183084,0.030166963
686-648236471762026497	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-615169554080251904	health,arrived,uninsured,obamacare,obama	0.32951674,0.2554588,0.21667625,0.13941379,0.05893443
686-647523181754994688	arrived,obamacare,uninsured,health,obama	0.27890155,0.27769595,0.22491837,0.13306355,0.08542059
686-620023154358882305	health,uninsured,obamacare,arrived,obama	0.6119349,0.16760947,0.1483501,0.06900775,0.003097793
686-619956646320713728	health,arrived,uninsured,obamacare,obama	0.698557,0.25846073,0.041508064,8.731421E-4,6.010442E-4
686-629609593388138496	obamacare,arrived,health,uninsured,obama	0.4231983,0.2241593,0.15755206,0.14055125,0.05453907
686-617956544693432320	obamacare,arrived,obama,health,uninsured	0.60429716,0.25842863,0.069899745,0.03827168,0.029102769
686-624287781490192385	arrived,obama,health,obamacare,uninsured	0.6868458,0.11463399,0.08297011,0.06321362,0.052336507
686-626398816606904320	uninsured,obamacare,arrived,obama,health	0.3795114,0.37362382,0.16140328,0.04479266,0.04066884
686-628430986049658880	obamacare,arrived,uninsured,obama,health	0.64409655,0.16725862,0.1041506,0.047559593,0.03693461
686-644545285780180992	arrived,health,uninsured,obama,obamacare	0.7255293,0.14864916,0.061393622,0.041344773,0.023083167
686-636617246949838848	health,obamacare,obama,arrived,uninsured	0.73933756,0.16671911,0.04724593,0.029121066,0.017576344
686-634302173162160128	health,obama,obamacare,arrived,uninsured	0.843414,0.06298535,0.034610085,0.03025729,0.028733281
686-622227725013659648	arrived,obama,obamacare,health,uninsured	0.70935434,0.19837028,0.042689305,0.02780184,0.021784265
686-618167299267100672	health,uninsured,arrived,obamacare,obama	0.94791514,0.045585398,0.0043176296,0.0013383054,8.435401E-4
686-632333401207533568	obamacare,obama,health,arrived,uninsured	0.9054032,0.040412277,0.020188386,0.018647933,0.015348213
686-644371919303655424	obamacare,arrived,obama,health,uninsured	0.7564206,0.18390533,0.031616207,0.016367825,0.011690042
686-648889811957338112	arrived,uninsured,obama,health,obamacare	0.79025394,0.1473865,0.029203882,0.016608184,0.016547522
686-629792014045999104	uninsured,arrived,obamacare,health,obama	0.45660484,0.18743005,0.18205902,0.11434015,0.05956594
686-639144113405870080	uninsured,obama,obamacare,health,arrived	0.74168944,0.09415223,0.06835038,0.052490145,0.043317784
686-631653985900883969	uninsured,health,obama,obamacare,arrived	0.77680945,0.13258924,0.04311738,0.024048336,0.0234356
686-648592033326698496	arrived,obama,obamacare,health,uninsured	0.4721387,0.18701859,0.12092357,0.11823137,0.10168777
686-646604805696163841	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-641687959415099393	obamacare,obama,health,arrived,uninsured	0.9213049,0.03107524,0.022878366,0.013438124,0.011303392
686-648417181940649985	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-623619036094427136	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-648993278440902656	arrived,obamacare,health,obama,uninsured	0.44942546,0.31410405,0.16976483,0.047654375,0.019051287
686-619969717927743488	arrived,uninsured,obama,obamacare,health	0.83472383,0.06057453,0.04955282,0.029832745,0.025316076
686-646069871172784129	arrived,obamacare,health,uninsured,obama	0.51048875,0.2881479,0.15847154,0.037284434,0.005607398
686-618533086792298496	uninsured,obama,obamacare,arrived,health	0.90628505,0.036495358,0.01966029,0.01915231,0.018407008
686-632233900505460736	obamacare,obama,health,arrived,uninsured	0.8890627,0.04705825,0.02409823,0.021828545,0.0179523
686-636046839385489408	uninsured,obamacare,arrived,obama,health	0.32472628,0.25755206,0.20776887,0.12617153,0.08378127
686-624159624183332864	health,uninsured,obamacare,obama,arrived	0.5591836,0.20568387,0.12172622,0.06354216,0.049864132
686-642439872146313216	obamacare,arrived,health,obama,uninsured	0.44362232,0.28758883,0.16397485,0.06441598,0.04039803
686-645001793483763716	arrived,obamacare,uninsured,obama,health	0.60887736,0.23140232,0.07179223,0.047140006,0.04078805
686-618549972141617152	obamacare,arrived,obama,health,uninsured	0.5969833,0.3144905,0.04715033,0.02396536,0.017410496
686-626041675924705280	uninsured,arrived,obama,health,obamacare	0.41467944,0.39243492,0.12255159,0.038308777,0.032025293
686-635974993122299904	arrived,obamacare,health,obama,uninsured	0.7771918,0.12961149,0.041612513,0.035768297,0.015815903
686-639090456056303616	uninsured,obama,arrived,health,obamacare	0.323744,0.2451734,0.19486168,0.16540153,0.0708194
686-648235900300869634	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647511340731338752	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-636903934532173824	uninsured,obama,health,obamacare,arrived	0.5618081,0.17812777,0.09190971,0.09133788,0.07681654
686-645336485013516288	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-617017168324984832	obamacare,arrived,health,obama,uninsured	0.5541781,0.19393298,0.1657266,0.057795323,0.028366998
686-646113005776711680	obamacare,health,obama,uninsured,arrived	0.7352561,0.14911892,0.04872091,0.03778621,0.029117903
686-626122407632240640	health,uninsured,obama,arrived,obamacare	0.8535941,0.08713433,0.025459506,0.020392846,0.013419171
686-645517986321727488	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-621063498672508929	obama,obamacare,health,arrived,uninsured	0.3606954,0.18113519,0.1754122,0.15290786,0.12984937
686-626544266005774336	obamacare,arrived,health,uninsured,obama	0.57476586,0.20895843,0.13947059,0.043486577,0.033318516
686-644107030458990592	uninsured,obama,obamacare,health,arrived	0.9112844,0.03656067,0.018527273,0.01794408,0.015683576
686-615355293225119744	arrived,health,obamacare,obama,uninsured	0.36665726,0.2733401,0.14108296,0.11017798,0.10874171
686-634775266548674560	uninsured,health,arrived,obamacare,obama	0.4423015,0.24078119,0.14906526,0.10199549,0.065856546
686-617711659788824576	health,arrived,obamacare,obama,uninsured	0.6451163,0.19238658,0.06216223,0.055008873,0.045325983
686-622482179201708032	uninsured,obamacare,arrived,obama,health	0.508354,0.31494355,0.12033111,0.032392953,0.023978375
686-633712672245215236	uninsured,arrived,health,obamacare,obama	0.49162343,0.16992831,0.16349582,0.13429825,0.040654168
686-621579701597777920	obamacare,health,arrived,obama,uninsured	0.78482854,0.124240965,0.03954474,0.03613326,0.015252517
686-630578434406809600	health,obamacare,arrived,obama,uninsured	0.6517625,0.17358416,0.11719244,0.041567553,0.015893338
686-646061606607044608	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648417101435260928	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-630148724497481728	obamacare,uninsured,arrived,obama,health	0.5324286,0.25007558,0.14999293,0.041617624,0.025885265
686-625382280723349504	arrived,uninsured,health,obamacare,obama	0.50604576,0.171012,0.16915509,0.11888266,0.03490448
686-616414929059360768	health,arrived,obamacare,obama,uninsured	0.6454988,0.15250377,0.14580789,0.040835198,0.015354313
686-645518172293079040	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-646061484573790208	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-645699442457186306	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-615995982946238464	arrived,health,obama,obamacare,uninsured	0.4050063,0.32369417,0.1182801,0.094045416,0.05897403
686-647148634358702080	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-623320582969384960	arrived,health,uninsured,obama,obamacare	0.50581795,0.34527367,0.06901513,0.048328187,0.03156503
686-648236099978964992	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-631609300801028096	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-649057859154636800	obamacare,health,obama,uninsured,arrived	0.57219225,0.347242,0.0358181,0.023918737,0.02082894
686-642061811437596672	obamacare,arrived,uninsured,obama,health	0.3858161,0.31624934,0.20696308,0.050506935,0.04046454
686-629740816320331776	uninsured,arrived,health,obamacare,obama	0.39187685,0.279908,0.15388483,0.13374938,0.040580943
686-646424196189417472	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647591185972793344	arrived,health,uninsured,obamacare,obama	0.7624573,0.21481787,0.015626337,0.0059011537,0.0011973251
686-646078288624922626	arrived,uninsured,health,obama,obamacare	0.47804672,0.15292372,0.14370926,0.13093327,0.09438705
686-649034980639662080	obamacare,obama,health,arrived,uninsured	0.82361716,0.06560541,0.039944462,0.037158716,0.033674236
686-620664866341265409	arrived,obama,obamacare,health,uninsured	0.75744385,0.09788929,0.05288817,0.051212884,0.040565822
686-617816222898483204	obamacare,arrived,health,obama,uninsured	0.28861842,0.25349814,0.17469499,0.1741503,0.10903814
686-627302194476290048	obamacare,obama,health,arrived,uninsured	0.6641479,0.13564277,0.07026966,0.068041004,0.061898645
686-644900333232066561	arrived,uninsured,obamacare,obama,health	0.60326606,0.15770468,0.15592584,0.04799046,0.035112996
686-615143275037458432	uninsured,obama,obamacare,health,arrived	0.79829067,0.14926852,0.019219218,0.017713603,0.015507993
686-624576655676174336	uninsured,obamacare,obama,arrived,health	0.73255,0.1581353,0.049142327,0.031086866,0.029085478
686-630711686626869248	obamacare,health,arrived,uninsured,obama	0.395195,0.29102463,0.14948776,0.099559635,0.06473297
686-647511119691694081	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-626541680187998208	health,obamacare,arrived,uninsured,obama	0.3739458,0.34288874,0.15092216,0.08263108,0.049612217
686-646381296999010304	uninsured,health,arrived,obama,obamacare	0.44132075,0.3468783,0.118553676,0.05580751,0.037439764
686-625777740436905984	health,obama,uninsured,obamacare,arrived	0.50874525,0.23625344,0.10731025,0.105823494,0.041867543
686-625504600196448256	obama,health,arrived,uninsured,obamacare	0.7322447,0.11966172,0.06807685,0.061779264,0.01823751
686-636323954697703425	health,obamacare,obama,arrived,uninsured	0.48935652,0.40703645,0.04966011,0.029994512,0.023952436
686-615018810215497728	health,arrived,uninsured,obama,obamacare	0.5925178,0.18023789,0.11238473,0.067333765,0.047525853
686-648628389864050688	arrived,obamacare,uninsured,health,obama	0.34302858,0.21298933,0.20589848,0.19143277,0.04665084
686-634701845173288960	health,obamacare,obama,uninsured,arrived	0.77274066,0.14211076,0.043127157,0.021012133,0.021009304
686-644303558167232513	obamacare,obama,arrived,health,uninsured	0.9956564,0.00155606,9.5753896E-4,9.1672345E-4,9.1330864E-4
686-632007268871966725	obamacare,health,uninsured,obama,arrived	0.46059865,0.17414327,0.16926989,0.099343985,0.0966442
686-615348566140264448	obamacare,health,arrived,obama,uninsured	0.37631887,0.30368948,0.15332599,0.10652036,0.0601453
686-629064986862616576	obamacare,arrived,obama,health,uninsured	0.797687,0.1531264,0.026042908,0.013505352,0.009638324
686-623876096749121536	uninsured,obamacare,arrived,health,obama	0.9937729,0.0017111052,0.0017105594,0.0014440963,0.0013613137
686-633104516569698304	obamacare,health,uninsured,arrived,obama	0.46954858,0.23044793,0.1808659,0.08618981,0.032947756
686-632366174458806272	obamacare,health,obama,arrived,uninsured	0.70846677,0.17530076,0.057856422,0.029676352,0.02869972
686-639556725532553216	arrived,health,obamacare,obama,uninsured	0.32098344,0.31453633,0.2544204,0.059999898,0.05005995
686-636872895331991552	arrived,health,obamacare,uninsured,obama	0.45431882,0.2858667,0.1648899,0.09230723,0.002617317
686-631460655812448257	obama,obamacare,health,arrived,uninsured	0.5847136,0.32988238,0.03968608,0.024777925,0.020940058
686-641375221673390081	uninsured,obama,obamacare,health,arrived	0.9215532,0.03239147,0.016356833,0.01586731,0.0138311675
686-628423889484316673	health,uninsured,arrived,obamacare,obama	0.44560182,0.23205239,0.18176162,0.09184461,0.04873954
686-614982593856077824	uninsured,health,obamacare,arrived,obama	0.28857657,0.23189388,0.21953706,0.13471308,0.1252794
686-635450294147674112	uninsured,health,obama,arrived,obamacare	0.40443155,0.32799834,0.09704792,0.08852309,0.0819991
686-636813510001958916	obamacare,health,obama,uninsured,arrived	0.55725557,0.23832175,0.089533485,0.060109705,0.05477948
686-639278646063198209	health,arrived,obama,obamacare,uninsured	0.6503804,0.19010445,0.06961923,0.054437447,0.03545849
686-633029468429283328	obama,obamacare,health,arrived,uninsured	0.3444216,0.22958545,0.16517833,0.15710537,0.10370924
686-646357210654597120	arrived,uninsured,obama,health,obamacare	0.6979518,0.16504434,0.049903188,0.049160637,0.037940066
686-648893167249551360	health,obamacare,obama,arrived,uninsured	0.8614288,0.062485814,0.041932356,0.017800918,0.016352138
686-628390064746135552	arrived,obama,obamacare,health,uninsured	0.862142,0.04909037,0.04313528,0.025292093,0.020340225
686-626459114504237056	uninsured,arrived,obama,health,obamacare	0.8980656,0.03474369,0.029340427,0.020757768,0.017092487
686-619862641301827584	obama,obamacare,arrived,health,uninsured	0.4811054,0.23246793,0.1741287,0.08031706,0.031980924
686-617674583357820928	health,arrived,uninsured,obamacare,obama	0.4818639,0.19546697,0.1354181,0.09497365,0.09227738
686-633502258861203456	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-622417962406948864	arrived,health,uninsured,obama,obamacare	0.6844721,0.17221397,0.05916102,0.04587486,0.038278043
686-647148842861768705	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-615324890900627457	obamacare,arrived,obama,health,uninsured	0.48542386,0.24149723,0.12195678,0.083771855,0.06735028
686-615154965221347328	arrived,obama,obamacare,health,uninsured	0.76840055,0.08435868,0.07862771,0.038003426,0.030609617
686-620607817599352832	uninsured,health,arrived,obama,obamacare	0.568106,0.31266227,0.04798345,0.042734295,0.028513988
686-636759304091992064	uninsured,arrived,obama,health,obamacare	0.41975716,0.2541491,0.1368466,0.09984517,0.08940198
686-619124540409552896	health,obama,arrived,obamacare,uninsured	0.7218568,0.15483518,0.05006663,0.03937668,0.033864714
686-629072018801999872	obama,obamacare,health,arrived,uninsured	0.79053575,0.1641787,0.017708285,0.015126107,0.012451176
686-621208233634570240	arrived,uninsured,obamacare,obama,health	0.6770451,0.15274905,0.06593993,0.065300755,0.038965132
686-646167941797515264	uninsured,arrived,obamacare,obama,health	0.3831962,0.28721878,0.12371295,0.1057191,0.100152984
686-645517744452972544	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-638010017300541440	obama,obamacare,health,arrived,uninsured	0.95030516,0.014381347,0.013459731,0.011762289,0.010091456
686-635232816419110913	obamacare,arrived,obama,health,uninsured	0.4526407,0.23476987,0.22866137,0.058630235,0.025297804
686-617536847586025472	obamacare,arrived,obama,health,uninsured	0.7564206,0.18390533,0.031616207,0.016367825,0.011690042
686-627374564767436800	obamacare,health,obama,uninsured,arrived	0.54515,0.2863489,0.059411746,0.057039667,0.0520497
686-626622610600693762	obamacare,health,arrived,obama,uninsured	0.3372485,0.29271194,0.28607005,0.048550934,0.035418533
686-625855423824953344	obama,obamacare,health,arrived,uninsured	0.7497659,0.19077395,0.022878582,0.019886032,0.01669557
686-648417079293415424	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-618215692223954944	health,arrived,obama,obamacare,uninsured	0.63678336,0.23171614,0.068611674,0.035647087,0.027241752
686-615286808234979329	uninsured,obamacare,arrived,health,obama	0.49541712,0.18586965,0.157751,0.09081097,0.070151284
686-628266644985384960	uninsured,health,arrived,obamacare,obama	0.3395218,0.2494483,0.17956401,0.13006823,0.10139764
686-648269561427443712	obamacare,obama,health,arrived,uninsured	0.82361716,0.06560541,0.039944462,0.037158716,0.033674236
686-642793385221332992	arrived,obamacare,health,obama,uninsured	0.64569706,0.16727474,0.12807795,0.038113274,0.020836977
686-615199734542700544	arrived,health,obamacare,uninsured,obama	0.7481706,0.13747546,0.03961393,0.039313477,0.035426494
686-627585106438283264	arrived,uninsured,health,obama,obamacare	0.42394927,0.34928912,0.14679827,0.040669944,0.0392934
686-638439932047007744	obamacare,obama,health,arrived,uninsured	0.5751264,0.14993331,0.0966622,0.09020994,0.08806815
686-615129104451407872	uninsured,obama,obamacare,health,arrived	0.79829067,0.14926852,0.019219218,0.017713603,0.015507993
686-630848912346234884	arrived,health,obama,obamacare,uninsured	0.6910145,0.24843661,0.031985372,0.016426047,0.012137469
686-626941786364231681	obamacare,arrived,obama,health,uninsured	0.7771451,0.1684505,0.028854474,0.014918797,0.01063115
686-642820794209308672	arrived,health,uninsured,obamacare,obama	0.36136606,0.27205592,0.1934116,0.12989473,0.043271698
686-617869831736528897	arrived,obamacare,health,uninsured,obama	0.42503956,0.21233232,0.17930087,0.119181074,0.064146176
686-620266812123541504	obamacare,health,uninsured,arrived,obama	0.5749043,0.2515999,0.077304475,0.05780204,0.038389254
686-636371633113026560	uninsured,arrived,health,obama,obamacare	0.5653802,0.2539712,0.10077899,0.049161576,0.030708062
686-626225707882942465	uninsured,obamacare,obama,arrived,health	0.7349884,0.10799764,0.058642212,0.051315904,0.047055848
686-646840818280431616	uninsured,arrived,health,obamacare,obama	0.30608788,0.2578754,0.1905945,0.16500367,0.08043855
686-643920497596624897	uninsured,arrived,obamacare,health,obama	0.27279904,0.2650303,0.23719943,0.15070418,0.07426705
686-616456307055460356	health,obamacare,obama,arrived,uninsured	0.6941383,0.19492795,0.05568077,0.034695715,0.020557255
686-646604666537570304	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-630967013649682432	health,obama,obamacare,arrived,uninsured	0.9229577,0.032726187,0.017069558,0.014623207,0.012623324
686-646809857169977344	uninsured,health,obama,obamacare,arrived	0.6057032,0.3005469,0.04763251,0.024271466,0.021845914
686-646450416213884928	arrived,uninsured,health,obama,obamacare	0.43308142,0.31784093,0.09729531,0.08137793,0.07040441
686-638190048622587904	obama,obamacare,health,arrived,uninsured	0.95030516,0.014381347,0.013459731,0.011762289,0.010091456
686-648534346270273536	obamacare,obama,health,arrived,uninsured	0.82361716,0.06560541,0.039944462,0.037158716,0.033674236
686-639474036150394881	uninsured,obamacare,arrived,health,obama	0.92099434,0.050067216,0.018208127,0.008972415,0.0017578915
686-639536317412548608	health,obama,obamacare,arrived,uninsured	0.80011946,0.086137526,0.044574805,0.037718553,0.031449668
686-624597226602409984	uninsured,arrived,obamacare,health,obama	0.40460736,0.21435672,0.18600981,0.12662508,0.06840104
686-647148640763543552	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-629373008596045824	uninsured,health,arrived,obamacare,obama	0.28374645,0.24414672,0.24022153,0.13981466,0.09207063
686-621788247438585857	uninsured,health,obama,arrived,obamacare	0.5697435,0.26582718,0.078446135,0.047024857,0.038958292
686-622764607866806272	uninsured,arrived,obama,health,obamacare	0.7822772,0.1386698,0.03664644,0.02306869,0.019337846
686-631127196938149888	health,obamacare,obama,uninsured,arrived	0.44754776,0.27302703,0.11808839,0.0811008,0.08023602
686-628339320470966272	uninsured,obamacare,health,arrived,obama	0.4905694,0.16375838,0.15441726,0.14791729,0.043337658
686-629726487101358080	obamacare,obama,health,arrived,uninsured	0.48689374,0.19229463,0.1676854,0.13548276,0.017643454
686-629834319297708032	arrived,health,uninsured,obamacare,obama	0.5333304,0.35806477,0.074480504,0.020456338,0.013668002
686-616467376188469248	health,arrived,obamacare,obama,uninsured	0.8056833,0.066156894,0.057248,0.04919758,0.02171418
686-647576326333943809	arrived,health,uninsured,obamacare,obama	0.7624573,0.21481787,0.015626337,0.0059011537,0.0011973251
686-627134849183121408	obamacare,arrived,obama,health,uninsured	0.3538928,0.22327678,0.1905048,0.16768448,0.06464112
686-625012901175099392	obamacare,uninsured,health,arrived,obama	0.26952884,0.2613184,0.25100097,0.14929014,0.06886168
686-633436865861955584	uninsured,health,obama,obamacare,arrived	0.76249176,0.15411855,0.04217573,0.02186416,0.019349817
686-629721716554616832	arrived,obama,obamacare,health,uninsured	0.7998133,0.0710497,0.062654875,0.03795649,0.028525634
686-646008164484186113	arrived,obama,obamacare,health,uninsured	0.9279614,0.019125788,0.017879572,0.0176593,0.01737392
686-631652378438078464	obamacare,obama,arrived,health,uninsured	0.89075047,0.03556523,0.035176165,0.023768928,0.01473922
686-629684353858080768	obamacare,arrived,obama,health,uninsured	0.46831354,0.42639285,0.05645108,0.027887557,0.020954985
686-638532306593009664	arrived,uninsured,obama,health,obamacare	0.48274058,0.30982688,0.073823825,0.07137854,0.062230192
686-636340386030481409	obama,health,uninsured,arrived,obamacare	0.66815805,0.18758775,0.1103157,0.01959187,0.014346639
686-646424194075504641	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-642445861134299136	health,arrived,obamacare,obama,uninsured	0.6327167,0.14597686,0.10763913,0.072949365,0.040717922
686-630920438806245376	uninsured,health,obama,obamacare,arrived	0.7205953,0.21726078,0.032160193,0.016221268,0.013762492
686-634041015586922496	arrived,health,obamacare,obama,uninsured	0.4305154,0.3458139,0.11528534,0.070011854,0.038373515
686-644326005511864320	obamacare,uninsured,health,arrived,obama	0.5447088,0.19231918,0.09367503,0.08835762,0.08093939
686-623933619547942912	obama,obamacare,health,arrived,uninsured	0.5852327,0.29552993,0.048205968,0.03848404,0.032547373
686-615145665329537024	health,arrived,uninsured,obama,obamacare	0.629571,0.21292274,0.07883087,0.047765844,0.030909553
686-634196779064430593	obamacare,health,arrived,uninsured,obama	0.3500445,0.22546126,0.18881267,0.17001878,0.065662794
686-630359127714172928	health,obamacare,obama,uninsured,arrived	0.31970844,0.29439712,0.19070247,0.11055711,0.084634885
686-646605509349494784	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-632597582485700609	obama,arrived,health,obamacare,uninsured	0.24773349,0.19688372,0.19235028,0.18902832,0.17400418
686-625804067508494336	uninsured,arrived,health,obamacare,obama	0.8862781,0.096483,0.012535027,0.003528084,0.0011758297
686-628306456270532608	arrived,obamacare,obama,health,uninsured	0.79191864,0.11515449,0.047999687,0.02533367,0.019593526
686-648903209411448832	health,arrived,obama,uninsured,obamacare	0.5388985,0.15297307,0.12794772,0.09395188,0.08622879
686-641661813143146496	arrived,uninsured,obama,obamacare,health	0.6346681,0.1970945,0.07346638,0.04942256,0.045348465
686-616405708754386944	uninsured,arrived,health,obama,obamacare	0.46084493,0.28711414,0.19300616,0.03366405,0.025370691
686-634836649013309440	uninsured,obamacare,health,arrived,obama	0.53945136,0.2508766,0.11462766,0.05578706,0.039257314
686-626126743057920002	health,uninsured,obama,arrived,obamacare	0.8535941,0.08713433,0.025459506,0.020392846,0.013419171
686-631665555175514112	health,arrived,obama,uninsured,obamacare	0.39564726,0.24405241,0.21359311,0.0750353,0.07167191
686-619699917364133888	arrived,health,obama,obamacare,uninsured	0.7499512,0.14578988,0.048271924,0.037162993,0.01882399
686-628583356817649664	arrived,uninsured,obama,health,obamacare	0.46720636,0.37715122,0.068013825,0.045338947,0.042289656
686-648061064991608832	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-619172455584763904	obamacare,uninsured,health,arrived,obama	0.42675167,0.29337057,0.16415235,0.07374928,0.041976113
686-647873570673029120	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-621120793859260416	health,arrived,obama,obamacare,uninsured	0.58154744,0.31184056,0.04730714,0.02990427,0.029400587
686-643520415453847552	arrived,obamacare,uninsured,health,obama	0.32632494,0.291701,0.22220443,0.09531505,0.064454585
686-634095097739546624	health,obamacare,obama,arrived,uninsured	0.74045444,0.20639153,0.028683422,0.013224086,0.011246547
686-633974070489407488	obamacare,arrived,uninsured,obama,health	0.6190861,0.15717703,0.14484917,0.049788903,0.029098807
686-647873457208827905	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-619180075766935552	uninsured,obamacare,arrived,health,obama	0.4369384,0.33745626,0.19251972,0.01884499,0.014240629
686-625341921104281600	uninsured,health,arrived,obama,obamacare	0.3586041,0.27026772,0.14515266,0.1296239,0.0963516
686-639643249590714368	health,obamacare,uninsured,obama,arrived	0.6336676,0.18630058,0.09090431,0.062223047,0.02690447
686-642746021420793856	obama,arrived,health,uninsured,obamacare	0.2841992,0.2703695,0.22836435,0.15519844,0.061868493
686-620752833625858048	obamacare,obama,health,arrived,uninsured	0.87011737,0.056638166,0.027270172,0.025752166,0.020222113
686-637420757518303233	uninsured,arrived,obama,obamacare,health	0.47588915,0.38207442,0.057899352,0.05277452,0.03136255
686-620654856018071552	uninsured,health,obamacare,obama,arrived	0.45101002,0.30101183,0.18472104,0.04254777,0.020709341
686-639412042718445568	uninsured,health,obamacare,obama,arrived	0.34419283,0.29107347,0.19913444,0.12360159,0.04199765
686-647148597096480768	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-625816032758886400	uninsured,arrived,health,obamacare,obama	0.8862781,0.096483,0.012535027,0.003528084,0.0011758297
686-619630038955089920	obama,obamacare,health,arrived,uninsured	0.3606954,0.18113519,0.1754122,0.15290786,0.12984937
686-648055134107234304	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-620347391883919360	uninsured,arrived,health,obamacare,obama	0.58585995,0.1895484,0.14067324,0.0646016,0.019316815
686-633842940251508736	health,arrived,obama,obamacare,uninsured	0.8970114,0.048097357,0.028631462,0.015438322,0.010821432
686-620712066337259520	obamacare,uninsured,obama,arrived,health	0.6005482,0.29596037,0.03688191,0.035521634,0.031087905
686-620604799722102784	uninsured,arrived,health,obama,obamacare	0.4104856,0.22552371,0.20092314,0.082694754,0.080372795
686-647511102700412928	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648417332407103488	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-628576365160321024	obama,obamacare,health,arrived,uninsured	0.933393,0.018786235,0.018196184,0.01597685,0.013647758
686-618159993045565443	obama,obamacare,health,arrived,uninsured	0.3606954,0.18113519,0.1754122,0.15290786,0.12984937
686-619162085415464960	health,obamacare,obama,arrived,uninsured	0.7348549,0.2053987,0.031232342,0.014278251,0.014235834
686-634181654890741760	uninsured,obamacare,obama,arrived,health	0.3280887,0.25093666,0.16695963,0.13203707,0.121977955
686-647873736910217216	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-644698717346398208	obamacare,arrived,health,uninsured,obama	0.6231939,0.17951666,0.09780636,0.07203922,0.02744383
686-627326482814255105	health,obamacare,uninsured,arrived,obama	0.39830595,0.25705785,0.18585639,0.089282565,0.06949726
686-616450583973769216	arrived,obamacare,uninsured,obama,health	0.2842561,0.2690775,0.17979518,0.14946459,0.117406614
686-617045077706174464	uninsured,health,obama,arrived,obamacare	0.48984507,0.30673742,0.11680856,0.048035905,0.038573027
686-644322988863586304	health,obamacare,arrived,uninsured,obama	0.34879524,0.25466976,0.24516183,0.12012557,0.031247599
686-615168597506326528	health,uninsured,arrived,obama,obamacare	0.644775,0.1350875,0.13449442,0.07285586,0.012787262
686-632347939835379713	arrived,health,obama,obamacare,uninsured	0.7341568,0.2015182,0.028535698,0.025336603,0.010452716
686-633990605513748482	obamacare,obama,health,arrived,uninsured	0.8414789,0.06763859,0.033805776,0.03138475,0.025691971
686-645710584600629248	health,uninsured,obamacare,obama,arrived	0.59469306,0.28318685,0.04597118,0.04084149,0.035307396
686-648248530566541312	arrived,health,uninsured,obama,obamacare	0.42616683,0.26875344,0.20725332,0.058255423,0.039570995
686-628989211065098240	obamacare,arrived,uninsured,health,obama	0.50572836,0.21660194,0.16132301,0.07311033,0.04323639
686-641577090844786693	uninsured,arrived,health,obama,obamacare	0.60780895,0.20564257,0.08610706,0.05797429,0.042467117
686-624216265918447616	arrived,obamacare,uninsured,health,obama	0.29843745,0.29548392,0.185553,0.13162847,0.088897154
686-618277310614110208	obamacare,obama,health,arrived,uninsured	0.87011737,0.056638166,0.027270172,0.025752166,0.020222113
686-628384055143194624	arrived,obamacare,uninsured,health,obama	0.4480682,0.31587324,0.15102673,0.043635335,0.041396488
686-624636338554339328	health,obama,obamacare,arrived,uninsured	0.3494569,0.19509485,0.16681895,0.15455778,0.13407153
686-626949776265777153	arrived,uninsured,obamacare,obama,health	0.9863971,0.009261614,0.0018258913,0.0014418921,0.0010734963
686-634744451727028224	health,obama,arrived,obamacare,uninsured	0.68801147,0.082077965,0.07759865,0.07717101,0.0751409
686-615197210247041025	obamacare,arrived,health,uninsured,obama	0.672052,0.22451705,0.09846205,0.0033018768,0.0016669894
686-646605046692511745	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-616797156754612224	uninsured,obamacare,arrived,obama,health	0.58325416,0.21569416,0.11360775,0.045577537,0.041866407
686-645517717831749633	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-646242637498875904	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-625377900565544960	arrived,uninsured,obama,obamacare,health	0.34685478,0.28743058,0.16533926,0.15418488,0.046190526
686-623636423447478272	arrived,obama,health,obamacare,uninsured	0.66485596,0.22803344,0.04904152,0.03350139,0.024567675
686-628744486143795205	obamacare,uninsured,arrived,health,obama	0.4751332,0.37555385,0.055577457,0.054666203,0.03906926
686-635579514144223232	health,arrived,uninsured,obamacare,obama	0.53151447,0.22633518,0.16679615,0.04313784,0.032216378
686-636878274237452288	uninsured,obamacare,arrived,health,obama	0.4766467,0.33717415,0.17468032,0.007295187,0.0042036357
686-639114685636173824	health,obamacare,uninsured,arrived,obama	0.44096476,0.20145653,0.17833859,0.12266843,0.056571703
686-616796072938217472	arrived,obama,obamacare,health,uninsured	0.83745384,0.054443862,0.05273863,0.030876735,0.024486922
686-644329751570726912	health,obama,uninsured,obamacare,arrived	0.33396468,0.2569116,0.25014147,0.08990477,0.069077484
686-636613653244973056	health,uninsured,obama,arrived,obamacare	0.41080794,0.36927858,0.15828961,0.03369666,0.027927205
686-616451882458832900	health,arrived,uninsured,obamacare,obama	0.43348587,0.20343709,0.20010212,0.08264374,0.080331184
686-625806204703412224	health,obama,arrived,obamacare,uninsured	0.77763397,0.11712339,0.064953364,0.026698168,0.013591115
686-646005723306987520	uninsured,obama,obamacare,health,arrived	0.9112438,0.036561474,0.018522466,0.01796801,0.015704246
686-618227516562608128	arrived,obama,obamacare,uninsured,health	0.8327551,0.054150958,0.042133395,0.03555541,0.03540515
686-624258182769065984	arrived,uninsured,health,obama,obamacare	0.55993545,0.2728303,0.11116479,0.032269247,0.023800183
686-641082995479199745	health,uninsured,obamacare,arrived,obama	0.48764893,0.23212041,0.15521608,0.07509161,0.049922954
686-649082242786979840	obamacare,obama,health,arrived,uninsured	0.85363024,0.05491414,0.033070706,0.0306645,0.027720386
686-633238887708561408	arrived,obamacare,health,obama,uninsured	0.4911947,0.2625769,0.1304683,0.07288139,0.04287869
686-627007441138364417	obamacare,obama,health,arrived,uninsured	0.8719227,0.055863563,0.02755154,0.024101565,0.02056065
686-641268672573542400	obamacare,arrived,health,obama,uninsured	0.2840705,0.22125751,0.21483324,0.18224081,0.097597934
686-649007250078605312	health,uninsured,obama,obamacare,arrived	0.83901316,0.070863575,0.044170942,0.024046939,0.021905392
686-615002969541636096	obamacare,obama,health,arrived,uninsured	0.77440727,0.12283841,0.043135446,0.030995525,0.028623363
686-622534807508029440	arrived,health,uninsured,obamacare,obama	0.4438483,0.29454842,0.18492839,0.07509626,0.0015786192
686-624184022885892096	obama,arrived,obamacare,health,uninsured	0.33354238,0.31882527,0.16414016,0.09402509,0.08946707
686-643975859993485312	obamacare,health,uninsured,arrived,obama	0.40911356,0.2946446,0.1577355,0.09885096,0.039655376
686-646061539913433088	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-630190942180409344	obama,arrived,obamacare,health,uninsured	0.5484522,0.39343122,0.02374881,0.019930506,0.0144372815
686-645359344243113984	arrived,uninsured,health,obamacare,obama	0.9539554,0.024731686,0.012501043,0.0051171933,0.003694661
686-633448034706153472	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-636667190368825344	health,uninsured,obamacare,obama,arrived	0.34811956,0.3255549,0.15163614,0.12935646,0.045332957
686-645880040081592320	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-621683788871962624	health,obamacare,arrived,obama,uninsured	0.40695524,0.2956195,0.18720223,0.06608534,0.04413771
686-617880691263418368	obamacare,arrived,obama,health,uninsured	0.69130343,0.24170755,0.035413843,0.017391374,0.0141838025
686-647511426781704192	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-624329776400957441	obamacare,health,arrived,uninsured,obama	0.60206586,0.2018244,0.08935624,0.054426618,0.052326858
686-629017934946508800	health,obama,obamacare,arrived,uninsured	0.88752085,0.047900215,0.02474382,0.021109397,0.018725695
686-636999436619673600	arrived,uninsured,obamacare,obama,health	0.45273632,0.28011873,0.12905052,0.08305901,0.05503542
686-641520489731629057	obamacare,arrived,obama,health,uninsured	0.7845627,0.13716072,0.04023433,0.022758385,0.015283849
686-645951336866050048	uninsured,health,obama,obamacare,arrived	0.4289107,0.3522747,0.16293103,0.02887968,0.027003922
686-630010371861053440	arrived,health,obama,obamacare,uninsured	0.5215707,0.36862472,0.055853784,0.033481468,0.020469341
686-626190307714072576	health,uninsured,obama,arrived,obamacare	0.8535941,0.08713433,0.025459506,0.020392846,0.013419171
686-645699314510004227	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-629030533289377796	health,uninsured,obamacare,obama,arrived	0.38613194,0.21843095,0.17601132,0.17276888,0.04665689
686-648417746535841792	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-615966790238081024	obamacare,uninsured,health,arrived,obama	0.26041242,0.2146126,0.18363515,0.17991945,0.16142039
686-615019662342918144	obamacare,health,obama,arrived,uninsured	0.41256794,0.2066264,0.19460073,0.12731606,0.058888875
686-630872911310553088	health,obamacare,obama,arrived,uninsured	0.6267823,0.2261179,0.07213626,0.04134174,0.033621833
686-628240523334062080	arrived,health,uninsured,obamacare,obama	0.49676692,0.3011838,0.08816422,0.07168658,0.042198505
686-639612090953527296	health,arrived,uninsured,obama,obamacare	0.43944886,0.24747391,0.23259056,0.051029686,0.02945697
686-649077748200181761	obamacare,obama,health,arrived,uninsured	0.8746332,0.0551316,0.026876997,0.023441536,0.01991668
686-639640820711333888	arrived,health,obamacare,obama,uninsured	0.35136604,0.30052364,0.22198838,0.08741159,0.038710352
686-618909667456987136	uninsured,health,arrived,obama,obamacare	0.5107906,0.3805265,0.049455974,0.03688288,0.022344023
686-629488588477083648	arrived,obama,obamacare,health,uninsured	0.5822918,0.17770134,0.08940638,0.08652949,0.064071015
686-645518113962786816	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-624637079121694720	obamacare,obama,health,arrived,uninsured	0.8540697,0.05643083,0.040151846,0.027358059,0.021989543
686-634089174069608448	obamacare,obama,uninsured,health,arrived	0.8525077,0.055297542,0.04125013,0.02719317,0.023751454
686-634369394051674112	uninsured,obamacare,arrived,obama,health	0.44127035,0.22403891,0.21026984,0.07610443,0.04831646
686-639093341758619648	obamacare,health,arrived,obama,uninsured	0.40586486,0.23570143,0.19976275,0.080284745,0.0783862
686-639218058742136832	obamacare,arrived,obama,health,uninsured	0.69690466,0.23446332,0.03528309,0.019876743,0.013472189
686-644292985484668928	obamacare,uninsured,obama,arrived,health	0.7485281,0.15196165,0.047459316,0.027796283,0.02425462
686-627595828220284928	obama,health,arrived,uninsured,obamacare	0.5653667,0.23554255,0.124710284,0.055661432,0.018719068
686-645978215006273536	health,obamacare,obama,arrived,uninsured	0.39936116,0.39782277,0.1511547,0.035999715,0.015661635
686-648503544115367936	obamacare,obama,health,arrived,uninsured	0.85262173,0.05781208,0.032835923,0.030011714,0.026718576
686-618586642333462529	obamacare,health,uninsured,arrived,obama	0.34318107,0.26915646,0.26713,0.076716885,0.04381559
686-643237251686760448	health,arrived,uninsured,obamacare,obama	0.36274323,0.30927816,0.14397223,0.092828475,0.0911779
686-639795311305707521	obamacare,uninsured,health,arrived,obama	0.56247294,0.19476718,0.12087344,0.08995672,0.031929728
686-644101234094268418	uninsured,obamacare,arrived,health,obama	0.27550986,0.25148803,0.19682318,0.18795872,0.0882202
686-615187646302687233	obamacare,arrived,uninsured,health,obama	0.47014052,0.28768018,0.12738274,0.06818464,0.046611924
686-633452988036681728	uninsured,arrived,obama,health,obamacare	0.63950944,0.27062836,0.041796286,0.026418313,0.021647613
686-615174331434295296	health,obamacare,obama,arrived,uninsured	0.744117,0.12057965,0.06729726,0.03912239,0.028883658
686-637768191305867264	health,obamacare,obama,arrived,uninsured	0.3877911,0.34027106,0.123818405,0.078328185,0.06979126
686-630470220897882113	obama,arrived,obamacare,health,uninsured	0.611502,0.14373721,0.09174316,0.08657106,0.066446595
686-646967378052427776	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-631639412661596160	obamacare,obama,arrived,health,uninsured	0.89075047,0.03556523,0.035176165,0.023768928,0.01473922
686-625747951147593728	obamacare,health,obama,arrived,uninsured	0.79092,0.12897108,0.0419362,0.021853006,0.016319674
686-621130254581657600	obamacare,obama,health,arrived,uninsured	0.88870585,0.048027918,0.023264015,0.022381056,0.017621147
686-620423625607254016	obamacare,arrived,obama,health,uninsured	0.77802193,0.14575325,0.040379632,0.019813983,0.016031183
686-620778262671851520	obamacare,uninsured,obama,arrived,health	0.7804438,0.09452946,0.055980954,0.034909762,0.03413605
686-645517768830251012	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-626810953531682816	arrived,uninsured,obama,obamacare,health	0.62387663,0.24646857,0.0486407,0.04200736,0.039006725
686-646061374808965121	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-629646136316440576	arrived,uninsured,obamacare,health,obama	0.2791015,0.24821785,0.21548852,0.17355455,0.083637595
686-644876882639388673	obamacare,obama,health,arrived,uninsured	0.42034355,0.20253122,0.12981862,0.12818742,0.119119205
686-636394004255387648	obamacare,obama,health,arrived,uninsured	0.87011737,0.056638166,0.027270172,0.025752166,0.020222113
686-640624933224091648	uninsured,obama,obamacare,health,arrived	0.9118167,0.036407992,0.018384583,0.01784506,0.015545624
686-645972572690100224	obamacare,obama,uninsured,health,arrived	0.87144357,0.04740444,0.033584204,0.02522085,0.022346953
686-633467967817297921	arrived,uninsured,health,obama,obamacare	0.44522554,0.23738217,0.23553401,0.04879426,0.033064008
686-635847259574300672	obamacare,health,uninsured,arrived,obama	0.35859928,0.26080522,0.17763256,0.1266387,0.07632425
686-623348718931087360	arrived,obamacare,obama,health,uninsured	0.8529448,0.088710174,0.029286064,0.01640756,0.012651441
686-623928833452838912	uninsured,health,obama,obamacare,arrived	0.74083006,0.15117092,0.048170608,0.03133118,0.02849723
686-626660072622587904	arrived,obama,health,obamacare,uninsured	0.56549156,0.17774712,0.103198424,0.0894134,0.06414949
686-636697174684790784	uninsured,obama,health,obamacare,arrived	0.6443403,0.1518269,0.11767636,0.045049958,0.041106496
686-616837345229213696	arrived,health,obama,obamacare,uninsured	0.7341568,0.2015182,0.028535698,0.025336603,0.010452716
686-626531522456109056	obamacare,arrived,uninsured,health,obama	0.41620904,0.2580183,0.20465177,0.07181012,0.04931076
686-632206041304854528	health,uninsured,obama,obamacare,arrived	0.6976191,0.23202421,0.03228898,0.02205023,0.016017478
686-619163327437111296	health,obamacare,obama,arrived,uninsured	0.7348549,0.2053987,0.031232342,0.014278251,0.014235834
686-623295299558076416	obamacare,arrived,obama,health,uninsured	0.7397696,0.16108684,0.050299805,0.028092135,0.020751625
686-644351594159599617	obamacare,uninsured,health,obama,arrived	0.3927005,0.2978615,0.22655179,0.045289736,0.037596498
686-648866767029166085	uninsured,health,obamacare,arrived,obama	0.38188517,0.24266334,0.2137052,0.12465418,0.037092112
686-615166651630141445	health,obama,arrived,obamacare,uninsured	0.41177967,0.18232314,0.15595797,0.13807133,0.1118679
686-646061399186104320	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-646001515493261316	health,arrived,obama,obamacare,uninsured	0.39204,0.342509,0.17003231,0.064720765,0.030697893
686-629523079862067200	obamacare,uninsured,obama,health,arrived	0.75318253,0.10587353,0.064108685,0.03978289,0.037052393
686-632503540087263232	obamacare,obama,health,arrived,uninsured	0.8723436,0.05575576,0.027431333,0.024007069,0.020462247
686-617782168589332480	obama,obamacare,health,arrived,uninsured	0.5608512,0.16893347,0.16330823,0.06215291,0.044754162
686-644318233475051520	uninsured,arrived,health,obamacare,obama	0.4644265,0.32414505,0.102501296,0.074935615,0.03399156
686-641542362645196800	obamacare,arrived,obama,health,uninsured	0.69690466,0.23446332,0.03528309,0.019876743,0.013472189
686-618479838874079232	uninsured,arrived,obamacare,health,obama	0.37707984,0.23268564,0.21383284,0.11381801,0.062583655
686-637631415195045888	uninsured,obamacare,arrived,obama,health	0.57616085,0.2109031,0.1297114,0.046315115,0.03690956
686-632903135300710400	health,obamacare,uninsured,obama,arrived	0.53152186,0.16561903,0.15075807,0.09170436,0.060396675
686-624619290814099464	health,arrived,obama,uninsured,obamacare	0.47579035,0.26132175,0.1580514,0.07918032,0.025656162
686-639917319704178688	uninsured,obama,obamacare,health,arrived	0.9118167,0.036407992,0.018384583,0.01784506,0.015545624
686-625339708072071168	uninsured,arrived,obama,obamacare,health	0.5793585,0.29511908,0.057307832,0.03578436,0.032430194
686-638504368430518272	uninsured,health,arrived,obamacare,obama	0.5670826,0.17511585,0.14705852,0.057777673,0.052965358
686-641024863319134208	uninsured,obama,obamacare,health,arrived	0.9215532,0.03239147,0.016356833,0.01586731,0.0138311675
686-615061275475709952	uninsured,arrived,health,obama,obamacare	0.7265457,0.11719529,0.10631353,0.032755833,0.01718968
686-621729114475614208	arrived,uninsured,obamacare,obama,health	0.44741485,0.17169414,0.13629813,0.12527166,0.11932121
686-644531860408766464	uninsured,arrived,health,obamacare,obama	0.32990772,0.3270309,0.18671754,0.12173145,0.0346124
686-642024411483103232	health,obamacare,obama,arrived,uninsured	0.5814289,0.22810014,0.099126846,0.054123823,0.037220318
686-631985173282881537	health,arrived,obamacare,obama,uninsured	0.503029,0.17442816,0.12815906,0.10936517,0.085018575
686-622395515351666688	arrived,uninsured,obama,obamacare,health	0.5677385,0.35800508,0.036719006,0.019098539,0.018438913
686-626123140691701760	health,uninsured,obama,arrived,obamacare	0.8535941,0.08713433,0.025459506,0.020392846,0.013419171
686-648062276893732864	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-641002120628449280	obamacare,arrived,obama,health,uninsured	0.7559899,0.18405749,0.031716153,0.016458599,0.011777846
686-636226293923753984	obama,obamacare,arrived,uninsured,health	0.5514006,0.14847948,0.14066857,0.13844848,0.021002835
686-634401473753776128	health,arrived,obama,obamacare,uninsured	0.32282177,0.3194586,0.15158704,0.108848296,0.09728431
686-629047719621820416	uninsured,health,arrived,obamacare,obama	0.38701195,0.34177268,0.16986921,0.051659413,0.049686767
686-649006759475027968	arrived,obamacare,uninsured,health,obama	0.37489966,0.21987818,0.21343651,0.1540968,0.03768885
686-616425926562201600	health,obamacare,obama,arrived,uninsured	0.76989424,0.14645424,0.04170923,0.025924392,0.016017918
686-637293461486616576	obama,arrived,obamacare,uninsured,health	0.9974927,6.3041196E-4,6.2956125E-4,6.247694E-4,6.2258815E-4
686-621519187127701504	uninsured,arrived,obama,obamacare,health	0.81520206,0.118521504,0.03268354,0.016967125,0.016625801
686-648055118034702336	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-631113196460449792	uninsured,arrived,health,obamacare,obama	0.66421455,0.23843196,0.052720368,0.04243173,0.002201365
686-633995911106985984	obamacare,obama,health,arrived,uninsured	0.8414789,0.06763859,0.033805776,0.03138475,0.025691971
686-640643345753198592	uninsured,arrived,obamacare,obama,health	0.44512025,0.28881574,0.11268776,0.084335245,0.069041
686-635531380366053376	uninsured,arrived,health,obamacare,obama	0.321547,0.30615753,0.15765518,0.15423962,0.060400665
686-631821034891513856	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-640936986442919936	uninsured,arrived,obamacare,obama,health	0.3885852,0.2564519,0.22140297,0.07369879,0.059861127
686-630823707947200512	health,obamacare,arrived,obama,uninsured	0.37853894,0.24493024,0.237049,0.06996406,0.06951776
686-641987152474206208	obamacare,uninsured,health,arrived,obama	0.37210938,0.3522522,0.12559205,0.10365036,0.046396032
686-621778077291515904	uninsured,obamacare,arrived,obama,health	0.64935535,0.19863282,0.058519594,0.058096524,0.03539569
686-645964658663387136	obamacare,arrived,health,obama,uninsured	0.6583976,0.16059744,0.12531407,0.037131034,0.01855983
686-616135634328121344	arrived,health,uninsured,obamacare,obama	0.37263322,0.19682053,0.19453195,0.14961113,0.08640317
686-644336339949907973	arrived,uninsured,obama,obamacare,health	0.59506726,0.20330104,0.08831338,0.05768234,0.055635985
686-615173630574600192	arrived,obama,health,uninsured,obamacare	0.4323585,0.20119825,0.16950695,0.15963402,0.037302263
686-639573750522904577	health,arrived,obamacare,uninsured,obama	0.97181535,0.026137685,0.0013236101,4.0595914E-4,3.173791E-4
686-639953520637034496	uninsured,arrived,health,obama,obamacare	0.68145543,0.16174959,0.06395942,0.061081417,0.03175413
686-621722608321499137	uninsured,arrived,obama,obamacare,health	0.6476945,0.2121857,0.06668653,0.037115406,0.036317855
686-624935708675850240	health,arrived,uninsured,obama,obamacare	0.2528371,0.22819225,0.18702102,0.18640727,0.14554237
686-638591739901702144	health,obamacare,uninsured,obama,arrived	0.28860456,0.2861478,0.19648063,0.17575566,0.05301135
686-626447830903721984	uninsured,arrived,health,obamacare,obama	0.37199286,0.2363345,0.18052444,0.13793676,0.07321143
686-634708469233258496	obamacare,arrived,obama,health,uninsured	0.69690466,0.23446332,0.03528309,0.019876743,0.013472189
686-645880349201797121	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-634018992429117441	arrived,health,obama,obamacare,uninsured	0.33875588,0.22239433,0.15178801,0.14394684,0.14311497
686-635700819187208192	health,arrived,obama,uninsured,obamacare	0.7238731,0.17916925,0.041664407,0.028605307,0.02668798
686-646242887739445248	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-646061533554872321	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-643475229013090304	obamacare,health,uninsured,obama,arrived	0.47385487,0.27502292,0.13686633,0.0634512,0.050804645
686-640206048419291136	obamacare,arrived,obama,health,uninsured	0.74035144,0.16690858,0.04887858,0.02480285,0.019058578
686-630546878770319360	arrived,obamacare,uninsured,health,obama	0.3216405,0.27835357,0.16889428,0.15969731,0.07141435
686-636357715548356608	arrived,obama,obamacare,health,uninsured	0.70931363,0.16669177,0.05297077,0.041214824,0.029808976
686-634165311210700800	arrived,uninsured,health,obama,obamacare	0.57093537,0.20288664,0.12619387,0.061277542,0.038706597
686-641880246682173440	obamacare,arrived,uninsured,obama,health	0.6170041,0.1806608,0.07035662,0.06803827,0.063940175
686-618922409693978629	arrived,uninsured,health,obama,obamacare	0.6546289,0.1682373,0.11292312,0.042165507,0.022045199
686-645517808332374016	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-646431729645785088	health,arrived,obama,obamacare,uninsured	0.76185274,0.18385592,0.02837746,0.014481619,0.011432254
686-630948541570007040	arrived,uninsured,health,obamacare,obama	0.48399708,0.17082714,0.15618402,0.14990312,0.03908864
686-647240358716293120	arrived,obamacare,obama,health,uninsured	0.764635,0.09068501,0.07384583,0.038526185,0.032307923
686-646822544331395072	health,arrived,uninsured,obamacare,obama	0.4442826,0.34154144,0.19933198,0.009031857,0.00581213
686-648613088816693248	health,obamacare,obama,arrived,uninsured	0.65393806,0.1959831,0.07045941,0.041908603,0.037710853
686-634529513716744193	obamacare,health,uninsured,obama,arrived	0.7629628,0.10693821,0.08780023,0.028588766,0.013710001
686-646061501715890176	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-634429693836464128	obama,obamacare,health,arrived,uninsured	0.52106905,0.35081178,0.045395575,0.04443215,0.03829143
686-647191031369216000	arrived,uninsured,health,obamacare,obama	0.31752792,0.29784977,0.18429546,0.10902567,0.09130117
686-618023435856248833	health,uninsured,arrived,obamacare,obama	0.33697772,0.2924676,0.2083827,0.1287129,0.03345907
686-627583579145396224	obamacare,arrived,obama,health,uninsured	0.69690466,0.23446332,0.03528309,0.019876743,0.013472189
686-630105024882966530	health,obama,obamacare,arrived,uninsured	0.88752085,0.047900215,0.02474382,0.021109397,0.018725695
686-622182566401937408	arrived,obama,health,obamacare,uninsured	0.66485596,0.22803344,0.04904152,0.03350139,0.024567675
686-645336313143554048	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-623914218337665024	uninsured,obama,arrived,obamacare,health	0.8773891,0.113085985,0.0033184215,0.0032635925,0.0029429095
686-628352755674021889	obamacare,health,obama,arrived,uninsured	0.35667792,0.3439967,0.13870226,0.08222271,0.07840042
686-647148659180613633	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-649028320462434304	uninsured,health,arrived,obama,obamacare	0.6761812,0.13595976,0.1311441,0.037120506,0.019594435
686-627133635380953088	arrived,health,uninsured,obamacare,obama	0.41841722,0.23338869,0.14894013,0.14576359,0.053490374
686-630531127820873728	obamacare,obama,health,arrived,uninsured	0.3495222,0.19956228,0.15356477,0.15257035,0.14478041
686-641689077402611712	obama,health,obamacare,arrived,uninsured	0.61886287,0.2217905,0.10434684,0.02872463,0.026275165
686-630885368888340481	health,obama,arrived,obamacare,uninsured	0.48836955,0.19048393,0.118255205,0.11387888,0.08901243
686-645699147153043457	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-646294841962426368	arrived,uninsured,obamacare,health,obama	0.30879754,0.28460848,0.16930155,0.1480574,0.089235
686-631969246629597184	obama,health,arrived,uninsured,obamacare	0.31970304,0.25184476,0.19684295,0.17401052,0.057598725
686-645778767735091200	health,obama,obamacare,arrived,uninsured	0.8710114,0.05592468,0.028467719,0.0240794,0.020516798
686-617843634591952896	health,obama,obamacare,arrived,uninsured	0.8046825,0.07892128,0.04432953,0.03753006,0.03453666
686-637254784802656256	arrived,obamacare,health,obama,uninsured	0.41265675,0.3384208,0.12155386,0.090746514,0.036622036
686-647329754304016384	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-618290938876686336	uninsured,health,obama,arrived,obamacare	0.70027775,0.12812532,0.068306945,0.061076988,0.04221302
686-623626573518913536	obamacare,obama,health,arrived,uninsured	0.9149492,0.03506592,0.022276891,0.014965453,0.012742557
686-640492517348257792	arrived,obama,obamacare,health,uninsured	0.86304486,0.055914458,0.031048046,0.029104242,0.020888418
686-624206221562802176	health,arrived,uninsured,obama,obamacare	0.44925645,0.25189668,0.15571576,0.07503791,0.06809321
686-631607318527016960	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-619607226358079488	obamacare,uninsured,arrived,obama,health	0.43560526,0.3076616,0.17063528,0.052479245,0.03361864
686-616746867997585408	obamacare,arrived,obama,uninsured,health	0.6183359,0.19026707,0.075228706,0.064710334,0.05145797
686-641334206300299264	arrived,obama,uninsured,health,obamacare	0.47457847,0.19530796,0.15478195,0.12369948,0.05163212
686-646444236758364160	obamacare,obama,health,uninsured,arrived	0.32482877,0.17469372,0.1742944,0.16384569,0.16233744
686-648417109504987136	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-617089549064343552	obamacare,arrived,obama,health,uninsured	0.7542365,0.18515457,0.03222336,0.016619563,0.01176595
686-637276457706881028	uninsured,arrived,obamacare,health,obama	0.4001184,0.27442035,0.21406595,0.068443805,0.042951476
686-640409579562504192	arrived,obama,obamacare,health,uninsured	0.7866322,0.08929817,0.0462619,0.04423332,0.033574436
686-621441937330016256	obamacare,health,obama,arrived,uninsured	0.5025123,0.33687493,0.06845309,0.050375357,0.04178434
686-645699347808567296	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-618595564398247940	uninsured,obamacare,health,obama,arrived	0.3329602,0.2997853,0.27160093,0.053788573,0.04186501
686-633923122991792129	uninsured,health,arrived,obamacare,obama	0.26232907,0.24700873,0.2404963,0.17673774,0.073428184
686-643779728298475522	arrived,obamacare,obama,health,uninsured	0.6871682,0.12967364,0.07909397,0.05608661,0.047977567
686-645699498874826752	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-634163252214255616	obamacare,obama,uninsured,health,arrived	0.8525077,0.055297542,0.04125013,0.02719317,0.023751454
686-632008547644100608	obamacare,health,arrived,obama,uninsured	0.37739995,0.25207314,0.19600296,0.08800284,0.086521104
686-630798553015840768	health,uninsured,obama,obamacare,arrived	0.6085917,0.1985664,0.07597376,0.064318135,0.05255
686-620393074670313472	health,obamacare,arrived,obama,uninsured	0.31489924,0.30418074,0.13925898,0.13639967,0.105261385
686-619921277432672256	obamacare,health,obama,arrived,uninsured	0.27797505,0.26596183,0.2135567,0.19235192,0.050154485
686-624197916895285248	arrived,obama,obamacare,health,uninsured	0.86475194,0.056658287,0.02907643,0.027990723,0.021522619
686-626755977782644740	health,obamacare,uninsured,arrived,obama	0.39030328,0.32019067,0.14408354,0.111585215,0.033837292
686-632371689473581056	obamacare,obama,health,arrived,uninsured	0.92690516,0.031284127,0.015607268,0.01435786,0.011845618
686-639080251100803072	uninsured,arrived,obama,obamacare,health	0.4859516,0.23944548,0.119984396,0.08214316,0.07247537
686-647148776759644160	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-618207618058833920	health,obama,obamacare,arrived,uninsured	0.80011946,0.086137526,0.044574805,0.037718553,0.031449668
686-640954047860723712	health,uninsured,arrived,obama,obamacare	0.4511987,0.18482056,0.13046385,0.122146115,0.11137076
686-636988073520328704	health,uninsured,obama,arrived,obamacare	0.3799121,0.30386305,0.19604777,0.0665085,0.053668577
686-648054687736852480	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-629876688776744960	arrived,uninsured,obamacare,obama,health	0.5398313,0.28185955,0.12399862,0.035158474,0.01915206
686-646065306025246722	arrived,obamacare,uninsured,health,obama	0.594772,0.23942511,0.08345683,0.04490391,0.037442148
686-643472157985497088	uninsured,arrived,health,obama,obamacare	0.4120785,0.1881098,0.16317767,0.136139,0.10049502
686-645518034887688192	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-640426845419249664	health,obama,obamacare,arrived,uninsured	0.80011946,0.086137526,0.044574805,0.037718553,0.031449668
686-648847007319064576	obamacare,obama,health,arrived,uninsured	0.85363024,0.05491414,0.033070706,0.0306645,0.027720386
686-646812307197177856	uninsured,health,obama,obamacare,arrived	0.6057032,0.3005469,0.04763251,0.024271466,0.021845914
686-641280837778980864	arrived,obamacare,uninsured,health,obama	0.4755286,0.24930733,0.18036027,0.054500066,0.040303733
686-638146595113074688	obama,obamacare,health,arrived,uninsured	0.95030516,0.014381347,0.013459731,0.011762289,0.010091456
686-620635723725701120	arrived,obamacare,obama,uninsured,health	0.6572214,0.1307532,0.083293475,0.06821524,0.060516685
686-616029834658119680	arrived,obamacare,obama,health,uninsured	0.8373485,0.105232045,0.028690634,0.015177023,0.013551776
686-628723897920155649	health,uninsured,arrived,obamacare,obama	0.3462393,0.26684618,0.15101404,0.14316376,0.09273673
686-626701981327867904	obamacare,obama,health,uninsured,arrived	0.7836578,0.08630863,0.045067832,0.043348737,0.041617032
686-637758920212221952	uninsured,health,obama,obamacare,arrived	0.76673716,0.14735863,0.04135926,0.022422547,0.022122378
686-646500778828546048	health,uninsured,arrived,obamacare,obama	0.46587637,0.29446775,0.102461234,0.0922436,0.044951074
686-646912810878787584	uninsured,arrived,obamacare,obama,health	0.66161036,0.1494768,0.12319115,0.043076802,0.0226449
686-626228088142036993	arrived,uninsured,health,obama,obamacare	0.38458025,0.36162564,0.20790161,0.029220352,0.016672133
686-631617109781446656	health,obama,obamacare,arrived,uninsured	0.9275117,0.031429034,0.015977394,0.013546899,0.01153499
686-638055231285276672	obama,obamacare,health,arrived,uninsured	0.95030516,0.014381347,0.013459731,0.011762289,0.010091456
686-633772230720270337	uninsured,health,obama,obamacare,arrived	0.76673716,0.14735863,0.04135926,0.022422547,0.022122378
686-617022871404171264	obamacare,obama,health,arrived,uninsured	0.8329296,0.06046844,0.037943743,0.03581407,0.032844115
686-632010081933094912	obamacare,arrived,uninsured,obama,health	0.53109485,0.33851227,0.051895544,0.041637268,0.03686009
686-626337100539912192	uninsured,arrived,health,obama,obamacare	0.7265457,0.11719529,0.10631353,0.032755833,0.01718968
686-638880413184839680	health,obamacare,arrived,obama,uninsured	0.52071905,0.20403276,0.09721893,0.09449921,0.083530016
686-625034488511397888	uninsured,health,arrived,obamacare,obama	0.39112797,0.33020094,0.22003144,0.033734426,0.024905246
686-615295714244075520	uninsured,arrived,obama,obamacare,health	0.6560467,0.16767259,0.12698779,0.02487921,0.024413735
686-628408820490878976	obamacare,arrived,obama,health,uninsured	0.785531,0.07426825,0.06920912,0.042836018,0.028155647
686-637369205688397824	health,uninsured,obamacare,obama,arrived	0.4825248,0.3127613,0.123379506,0.047825277,0.033509105
686-633255250523066368	health,arrived,obama,obamacare,uninsured	0.8019095,0.11047307,0.046854768,0.02366075,0.017101912
686-619167017967439872	health,obamacare,obama,arrived,uninsured	0.7348549,0.2053987,0.031232342,0.014278251,0.014235834
686-619736147535622144	arrived,obamacare,obama,uninsured,health	0.44086745,0.16331355,0.14922445,0.13611136,0.110483184
686-638690190450495489	uninsured,arrived,health,obama,obamacare	0.60839885,0.17993005,0.14822075,0.041809525,0.021640854
686-632573676664291328	uninsured,health,obama,arrived,obamacare	0.38321662,0.30789346,0.14132047,0.120635845,0.046933595
686-616430189740982272	obamacare,arrived,health,obama,uninsured	0.38348356,0.35701495,0.15948236,0.058119148,0.041899998
686-634356362655465472	obama,arrived,obamacare,health,uninsured	0.31224704,0.28623438,0.25721592,0.07532526,0.06897743
686-640273465048702976	uninsured,obama,health,obamacare,arrived	0.2798519,0.2534573,0.24962567,0.11495261,0.102112494
686-634747016158019585	obamacare,health,obama,arrived,uninsured	0.40986246,0.3528935,0.12118046,0.06728812,0.048775464
686-632617592964825088	uninsured,arrived,obama,health,obamacare	0.9081763,0.031053852,0.026603237,0.018703368,0.015463238
686-627933862748889088	uninsured,arrived,obamacare,obama,health	0.5513244,0.2723899,0.121563055,0.03514382,0.019578775
686-634726373135814656	obama,obamacare,health,arrived,uninsured	0.620205,0.17807782,0.1513064,0.025765529,0.024645269
686-628578442351616000	uninsured,obamacare,arrived,health,obama	0.69984365,0.22271296,0.04706965,0.018141864,0.012231878
686-638444895179546624	health,uninsured,arrived,obamacare,obama	0.5860394,0.19756003,0.13945365,0.04281171,0.034135163
686-643419387760742400	obamacare,uninsured,health,obama,arrived	0.34838313,0.27302325,0.26146552,0.07587612,0.041251972
686-645336427211849728	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647047704267223040	obamacare,arrived,obama,health,uninsured	0.7559899,0.18405749,0.031716153,0.016458599,0.011777846
686-627836339535392768	uninsured,health,arrived,obama,obamacare	0.65767854,0.11778746,0.09033416,0.07366274,0.06053709
686-647559031985414144	health,obama,obamacare,arrived,uninsured	0.5355091,0.18117559,0.15002717,0.071321644,0.061966497
686-617893884459286528	obamacare,arrived,obama,health,uninsured	0.69130343,0.24170755,0.035413843,0.017391374,0.0141838025
686-646061721136721920	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-624776830843662336	uninsured,arrived,obama,health,obamacare	0.7811731,0.082837634,0.048794217,0.04559174,0.041603293
686-618523050812682240	obamacare,uninsured,arrived,health,obama	0.2916638,0.22841555,0.21638973,0.20040289,0.063128054
686-621425363671842816	arrived,health,uninsured,obama,obamacare	0.53027785,0.29542342,0.08043123,0.05679543,0.0370721
686-648417354779504640	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-619964045840379904	uninsured,arrived,obama,health,obamacare	0.72310084,0.15179552,0.10709462,0.012938608,0.005070421
686-647148613869641728	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647588945052569600	health,arrived,uninsured,obama,obamacare	0.49915007,0.2778648,0.1277687,0.05516368,0.040052753
686-630841595038986240	arrived,uninsured,health,obama,obamacare	0.36212876,0.22146502,0.16090593,0.13004266,0.12545761
686-640523206575718400	uninsured,obama,arrived,obamacare,health	0.47516033,0.1954234,0.12262431,0.10390549,0.102886476
686-640936394848923649	health,uninsured,obama,obamacare,arrived	0.39592364,0.37817076,0.11698264,0.05898616,0.0499368
686-646604722376323072	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-638495058988265477	health,obamacare,arrived,uninsured,obama	0.57316875,0.16643001,0.11323452,0.11259188,0.034574844
686-638436819835711490	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-644949029751619584	uninsured,obamacare,obama,health,arrived	0.64546233,0.2722445,0.041572586,0.020939993,0.019780554
686-617377461420994560	uninsured,health,obama,arrived,obamacare	0.38547218,0.36591354,0.18276615,0.03396656,0.031881556
686-621763814791467010	obamacare,arrived,health,obama,uninsured	0.43311077,0.23988892,0.21241328,0.07016065,0.04442638
686-631427189666394112	obamacare,uninsured,health,obama,arrived	0.45042256,0.32172453,0.08920129,0.081679545,0.05697209
686-617393109811494912	uninsured,arrived,obama,health,obamacare	0.8045527,0.0893164,0.050220635,0.029050242,0.026860034
686-644361067208900609	uninsured,health,obama,arrived,obamacare	0.6201349,0.21195297,0.07514924,0.04723043,0.045532484
686-619967049259950080	health,uninsured,obama,arrived,obamacare	0.52957225,0.16427507,0.15641879,0.10329442,0.046439495
686-623930776799854592	arrived,health,obama,obamacare,uninsured	0.72589236,0.16172168,0.05328881,0.032122552,0.026974577
686-633357141810786304	obamacare,uninsured,arrived,health,obama	0.4802616,0.2048903,0.19896033,0.07307038,0.042817395
686-630253365990064129	obamacare,health,obama,uninsured,arrived	0.6957316,0.16845603,0.05574086,0.040116597,0.039954916
686-616853262235516928	health,arrived,uninsured,obamacare,obama	0.31934384,0.24161248,0.19912183,0.17547768,0.06444416
686-634999124274884609	obamacare,health,obama,arrived,uninsured	0.61871165,0.26365373,0.056971006,0.03340988,0.027253732
686-625368883659042816	obamacare,health,obama,uninsured,arrived	0.7934343,0.06742677,0.06226901,0.03849942,0.038370475
686-648901311304441856	health,obama,arrived,obamacare,uninsured	0.32097512,0.21968676,0.21801162,0.14662783,0.094698645
686-618322824210554880	health,arrived,obama,obamacare,uninsured	0.7475513,0.13676722,0.050419003,0.041201245,0.024061184
686-626183357936873472	obamacare,uninsured,obama,health,arrived	0.64939564,0.26807278,0.041486923,0.021162558,0.019882092
686-641618251127095296	uninsured,health,arrived,obama,obamacare	0.3964648,0.21993364,0.1909376,0.117105305,0.07555865
686-633379940155559936	uninsured,health,obama,arrived,obamacare	0.54979616,0.3114523,0.05815105,0.046558116,0.0340424
686-620659966915928064	obama,arrived,health,obamacare,uninsured	0.3934487,0.24442573,0.12893316,0.116632916,0.11655947
686-644480682874523648	health,obama,obamacare,arrived,uninsured	0.80011946,0.086137526,0.044574805,0.037718553,0.031449668
686-615185570810232832	obamacare,uninsured,health,obama,arrived	0.32400203,0.24500974,0.20942579,0.121560484,0.10000195
686-631432306666946560	uninsured,health,obamacare,arrived,obama	0.53902644,0.20474644,0.114902675,0.09901682,0.042307626
686-618538701203730432	uninsured,obamacare,health,arrived,obama	0.57503635,0.14434755,0.13802084,0.10525796,0.0373373
686-619258726399275008	health,arrived,obamacare,obama,uninsured	0.56110406,0.24031591,0.14064677,0.04031436,0.017618872
686-647148819352686592	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-649077749332574208	obamacare,obama,health,arrived,uninsured	0.85363024,0.05491414,0.033070706,0.0306645,0.027720386
686-648297158534234113	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-625744868288110592	uninsured,arrived,health,obamacare,obama	0.43675965,0.219842,0.14835145,0.14099406,0.054052833
686-617833619990646785	uninsured,obama,obamacare,arrived,health	0.90628505,0.036495358,0.01966029,0.01915231,0.018407008
686-648062003592957952	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647873533092102144	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-646916568706908160	health,arrived,uninsured,obamacare,obama	0.5321079,0.16616206,0.14671816,0.08163109,0.073380806
686-623647519235526656	health,uninsured,arrived,obama,obamacare	0.5397735,0.31499586,0.06365044,0.049142268,0.032437917
686-648660116833701889	obamacare,obama,health,arrived,uninsured	0.8698019,0.053199776,0.02862425,0.025776846,0.022597227
686-632288617461710848	arrived,obamacare,health,obama,uninsured	0.56079566,0.25327554,0.124512106,0.0417712,0.019645482
686-638507681498689536	uninsured,health,obamacare,obama,arrived	0.3675638,0.29759634,0.25854388,0.045811996,0.030483965
686-646446702069686272	health,arrived,obama,obamacare,uninsured	0.50485563,0.27173993,0.104116015,0.07031202,0.048976406
686-645336250430328832	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-649026558590611457	arrived,uninsured,obamacare,obama,health	0.5961725,0.24938953,0.067309685,0.043927573,0.043200716
686-625686310607417344	arrived,obamacare,health,uninsured,obama	0.43307564,0.19144915,0.16319917,0.10724698,0.10502905
686-618889347417407488	uninsured,arrived,obamacare,obama,health	0.5538614,0.17736796,0.1640836,0.05753485,0.04715222
686-632663433293467648	uninsured,obamacare,health,arrived,obama	0.3297037,0.2267998,0.21087584,0.17963582,0.052984834
686-623250688160739328	obamacare,arrived,obama,health,uninsured	0.7519099,0.1559607,0.048457384,0.023760844,0.019911148
686-633454714340806656	health,obamacare,arrived,obama,uninsured	0.39252988,0.31683418,0.17234203,0.08473066,0.03356326
686-629497217364045824	obama,obamacare,health,arrived,uninsured	0.30271038,0.18714407,0.18205222,0.17279384,0.15529948
686-648054710063243264	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-641240952812752896	obamacare,health,uninsured,arrived,obama	0.5710102,0.16264012,0.11868787,0.109364145,0.03829768
686-648251459776065536	obamacare,arrived,obama,health,uninsured	0.7564206,0.18390533,0.031616207,0.016367825,0.011690042
686-616021124841930752	health,obamacare,uninsured,arrived,obama	0.512684,0.1925363,0.1487544,0.084352955,0.061672367
686-615235730915209216	obamacare,obama,health,arrived,uninsured	0.58608884,0.13687116,0.119945444,0.08142897,0.0756656
686-636338836495142913	obama,obamacare,health,arrived,uninsured	0.5291366,0.3009778,0.16441183,0.0028339217,0.0026398853
686-625752019119271936	obamacare,health,obama,arrived,uninsured	0.79092,0.12897108,0.0419362,0.021853006,0.016319674
686-639742264982417409	obama,arrived,obamacare,health,uninsured	0.6496305,0.12869242,0.07972566,0.07502628,0.06692515
686-629736754719903744	health,obamacare,obama,arrived,uninsured	0.7342168,0.17124638,0.048076637,0.024416901,0.022043254
686-645336232596078592	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647148604570759168	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-641043451253919745	obamacare,arrived,obama,health,uninsured	0.65176076,0.26871508,0.041365363,0.01994015,0.018218625
686-619807290082897920	uninsured,health,arrived,obamacare,obama	0.42418572,0.38469183,0.120994024,0.06352548,0.006602954
686-627950258446729220	arrived,health,uninsured,obama,obamacare	0.7255293,0.14864916,0.061393622,0.041344773,0.023083167
686-648417101095415808	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-619095045917024256	obama,health,uninsured,obamacare,arrived	0.75561213,0.15818943,0.04321334,0.023093782,0.019891286
686-634733250351464448	uninsured,arrived,obama,health,obamacare	0.39587846,0.2638704,0.13578379,0.10983631,0.09463103
686-626678570677571584	obama,obamacare,health,arrived,uninsured	0.80845547,0.14327067,0.018212743,0.01646754,0.0135935685
686-632745535305158656	uninsured,arrived,obamacare,obama,health	0.5522126,0.26513407,0.08516645,0.056864563,0.040622324
686-641635132756115457	health,obama,obamacare,arrived,uninsured	0.8653088,0.053968623,0.030781552,0.026747432,0.023193588
686-628935971594219520	uninsured,health,arrived,obama,obamacare	0.49405274,0.2274943,0.22540548,0.03379134,0.019256119
686-624794751292821505	uninsured,obama,obamacare,health,arrived	0.8358951,0.06404076,0.03524113,0.03403918,0.030783815
686-624036889369178112	obamacare,arrived,obama,health,uninsured	0.7845627,0.13716072,0.04023433,0.022758385,0.015283849
686-627217714940129280	obamacare,arrived,uninsured,obama,health	0.69523126,0.16462654,0.09637463,0.027656006,0.01611159
686-620268802341752832	health,uninsured,obama,obamacare,arrived	0.740079,0.13980678,0.052643783,0.037637398,0.029833047
686-618926079915487232	uninsured,obama,health,obamacare,arrived	0.41034603,0.22102647,0.17147979,0.13054347,0.06660426
686-628319868404822016	uninsured,health,obama,arrived,obamacare	0.6277601,0.20541963,0.06313321,0.058124263,0.04556277
686-626781362754834432	obamacare,uninsured,obama,health,arrived	0.42160967,0.23975272,0.1476304,0.10354019,0.08746702
686-645880206209585153	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-633810697399341056	health,uninsured,obamacare,arrived,obama	0.53014815,0.16296215,0.14597368,0.12140957,0.03950645
686-628023415962628097	obamacare,uninsured,obama,health,arrived	0.331643,0.2815853,0.20918666,0.16346747,0.014117586
686-634195225250959360	uninsured,arrived,health,obama,obamacare	0.59693444,0.21152228,0.09058141,0.060399476,0.040562417
686-648715538084958208	arrived,obama,health,obamacare,uninsured	0.70956993,0.102906026,0.06666402,0.066057935,0.054802082
686-635160762420334592	uninsured,obamacare,obama,health,arrived	0.64592046,0.27203602,0.04147504,0.020844137,0.019724336
686-637325343326621697	arrived,obama,obamacare,health,uninsured	0.8339731,0.06967041,0.035805285,0.034628328,0.025922863
686-631892478996676608	arrived,health,obama,uninsured,obamacare	0.6710542,0.16982774,0.06385976,0.05955853,0.03569977
686-637584908672593920	uninsured,arrived,health,obama,obamacare	0.60839885,0.17993005,0.14822075,0.041809525,0.021640854
686-637868077489647616	health,obamacare,uninsured,arrived,obama	0.35608837,0.25129345,0.1770807,0.1501863,0.065351166
686-636681325337051136	health,obamacare,obama,arrived,uninsured	0.73933756,0.16671911,0.04724593,0.029121066,0.017576344
686-622315140839444480	arrived,uninsured,health,obamacare,obama	0.5285497,0.20152475,0.15202378,0.06701875,0.050883077
686-628012655496687616	arrived,obamacare,health,uninsured,obama	0.90635157,0.086075604,0.0055342754,0.0012218852,8.166487E-4
686-626840974514331648	arrived,obama,obamacare,health,uninsured	0.9296841,0.028702317,0.015847411,0.014898866,0.01086728
686-639110236167536640	obamacare,arrived,obama,health,uninsured	0.80255604,0.12895589,0.03567236,0.019111384,0.013704343
686-648532369947930624	health,obamacare,arrived,obama,uninsured	0.5712929,0.19154191,0.16840339,0.049352918,0.019408917
686-629473696361644032	uninsured,health,obamacare,obama,arrived	0.54443973,0.278981,0.12395642,0.0341057,0.018517137
686-649026247511556096	obamacare,obama,health,arrived,uninsured	0.85363024,0.05491414,0.033070706,0.0306645,0.027720386
686-646061484577980416	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-628821642068803584	uninsured,health,obama,arrived,obamacare	0.6673342,0.2214486,0.052836727,0.030092176,0.028288322
686-646069601068019712	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-623884541795528705	arrived,obamacare,uninsured,obama,health	0.6891707,0.124509685,0.12206135,0.038783967,0.025474282
686-618963585541091328	arrived,uninsured,obamacare,health,obama	0.48159188,0.23300499,0.117323816,0.086971045,0.08110827
686-630339245983539200	arrived,obama,obamacare,health,uninsured	0.67599803,0.1368328,0.13292095,0.03343475,0.02081348
686-635795285168537600	obamacare,arrived,health,obama,uninsured	0.9989817,2.825973E-4,2.503935E-4,2.5008537E-4,2.3523046E-4
686-639530537942667264	obamacare,health,uninsured,obama,arrived	0.48295933,0.2525002,0.13323832,0.0676848,0.06361732
686-618273228444733440	obamacare,arrived,obama,health,uninsured	0.65176076,0.26871508,0.041365363,0.01994015,0.018218625
686-620786632774537216	obamacare,obama,health,arrived,uninsured	0.8839145,0.04898719,0.024134493,0.023808993,0.019154856
686-645969229079015424	arrived,obamacare,health,uninsured,obama	0.40699106,0.23122531,0.19110817,0.12669024,0.043985207
686-622500269679636480	arrived,health,obama,obamacare,uninsured	0.47555462,0.27629438,0.1532866,0.048448384,0.046416014
686-631456525899464706	arrived,uninsured,obamacare,health,obama	0.35428485,0.24295045,0.2348106,0.09570251,0.072251596
686-639546535735357440	health,arrived,uninsured,obamacare,obama	0.3845162,0.22369058,0.17314035,0.110640936,0.1080119
686-618203478507196416	health,obamacare,obama,arrived,uninsured	0.77707595,0.14831865,0.04112281,0.01802464,0.015457961
686-648417904376053760	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-629334984277499904	obamacare,arrived,uninsured,obama,health	0.67915386,0.11043313,0.105660744,0.05683744,0.047914837
686-615226686410326016	health,obamacare,uninsured,obama,arrived	0.36558434,0.19131501,0.1903649,0.13728213,0.1154536
686-631843885862547456	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-626124403928092672	health,uninsured,obama,arrived,obamacare	0.8535941,0.08713433,0.025459506,0.020392846,0.013419171
686-648417801456103424	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-644610526761340929	uninsured,obamacare,health,obama,arrived	0.4999868,0.24388143,0.18607841,0.044919644,0.025133708
686-621492570590310400	uninsured,health,arrived,obama,obamacare	0.4421584,0.43768534,0.048330992,0.04272357,0.029101692
686-615180093124554752	health,arrived,obamacare,obama,uninsured	0.51907915,0.20034961,0.17121671,0.05768414,0.05167039
686-630433984439152640	arrived,obama,obamacare,health,uninsured	0.92405427,0.032053743,0.016301978,0.015804315,0.011785715
686-631923892630589440	uninsured,health,obama,obamacare,arrived	0.7205953,0.21726078,0.032160193,0.016221268,0.013762492
686-632316575522033666	obamacare,health,arrived,obama,uninsured	0.51110303,0.27572072,0.09033949,0.07502305,0.047813736
686-638727158966304768	arrived,obama,obamacare,health,uninsured	0.708497,0.09370116,0.06950276,0.068044804,0.060254287
686-641376747389362177	uninsured,arrived,health,obama,obamacare	0.3679026,0.29776704,0.15772583,0.11727613,0.0593284
686-633366126446051329	obamacare,health,obama,arrived,uninsured	0.8039891,0.13081656,0.035360508,0.016357973,0.013475851
686-629760980340224004	obamacare,health,arrived,obama,uninsured	0.7995862,0.09947318,0.041879598,0.03949597,0.019565051
686-637024986105016321	uninsured,arrived,obama,obamacare,health	0.52525395,0.27744287,0.08843032,0.059426505,0.04944633
686-633231224060833792	arrived,health,obama,obamacare,uninsured	0.7499512,0.14578988,0.048271924,0.037162993,0.01882399
686-625497586414174208	obamacare,health,arrived,uninsured,obama	0.65911645,0.19238304,0.066318184,0.05292181,0.029260563
686-647873498094768128	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-638840726567055364	obamacare,uninsured,health,arrived,obama	0.584757,0.14538942,0.120268226,0.114791356,0.034794
686-629858159331528704	uninsured,health,obamacare,arrived,obama	0.37634057,0.2681802,0.2563021,0.052341614,0.046835516
686-646869413543579648	uninsured,arrived,obama,obamacare,health	0.5941386,0.14915985,0.13521668,0.09979674,0.021688111
686-619188474961268736	uninsured,obamacare,health,obama,arrived	0.69867367,0.15331998,0.07698535,0.04584027,0.02518073
686-649024020269035520	obamacare,obama,health,arrived,uninsured	0.8942051,0.04649778,0.02268496,0.019796174,0.016815994
686-634041036545884165	obamacare,obama,health,uninsured,arrived	0.7859425,0.14971195,0.024369784,0.022088489,0.017887311
686-616086428708118528	obamacare,arrived,obama,health,uninsured	0.5013225,0.22413352,0.14034605,0.07908433,0.055113573
686-615340536757514240	obamacare,arrived,obama,health,uninsured	0.6564154,0.26394626,0.040888105,0.020380592,0.018369624
686-624561899254870017	uninsured,health,obama,obamacare,arrived	0.51747537,0.3977364,0.041912284,0.023908302,0.018967658
686-633506723551014912	uninsured,arrived,obamacare,health,obama	0.34946582,0.19705512,0.16841674,0.14705905,0.13800327
686-640264966789033984	obamacare,obama,health,arrived,uninsured	0.9213049,0.03107524,0.022878366,0.013438124,0.011303392
686-629673455848456192	health,obama,obamacare,arrived,uninsured	0.9157882,0.03595147,0.018660242,0.015777847,0.013822298
686-646967623280820224	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-634078383450800128	obamacare,obama,health,arrived,uninsured	0.9333437,0.028110007,0.015897142,0.012202508,0.010446609
686-632282841410236416	uninsured,obamacare,health,obama,arrived	0.46800357,0.28906804,0.16082399,0.049191073,0.03291332
686-644295541128622080	uninsured,obamacare,arrived,health,obama	0.4953822,0.3007011,0.11328539,0.062023398,0.028607916
686-648417123467788288	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-618824408166211584	uninsured,obamacare,arrived,health,obama	0.40586045,0.30012527,0.18513486,0.067079306,0.04180011
686-642345225554382848	obamacare,arrived,obama,health,uninsured	0.5935079,0.25560206,0.07791902,0.040158663,0.03281237
686-648177764022009856	arrived,obamacare,obama,health,uninsured	0.5804198,0.26661074,0.07489141,0.044220377,0.033857692
686-644669590635593728	uninsured,obama,obamacare,arrived,health	0.5354817,0.18521284,0.16175863,0.07827324,0.039273586
686-632376633643560961	obamacare,health,uninsured,arrived,obama	0.37786156,0.3173069,0.21697626,0.04823575,0.03961951
686-645600072202362881	obamacare,arrived,obama,health,uninsured	0.47333828,0.22668661,0.15083146,0.13250911,0.016634528
686-624354738717499392	uninsured,arrived,health,obamacare,obama	0.53852427,0.24829002,0.110961884,0.06733289,0.034890927
686-638082792371453952	obama,uninsured,health,arrived,obamacare	0.7301506,0.11912219,0.11333579,0.021566128,0.015825305
686-648898564077301760	obamacare,obama,health,arrived,uninsured	0.8746332,0.0551316,0.026876997,0.023441536,0.01991668
686-641981499651325952	uninsured,obama,health,arrived,obamacare	0.76663774,0.08770726,0.052632812,0.048074152,0.044948056
686-618904107739262976	health,uninsured,arrived,obama,obamacare	0.43074572,0.30791453,0.1677934,0.05022802,0.043318346
686-624962867935203330	uninsured,obama,obamacare,health,arrived	0.8126189,0.07674399,0.03922244,0.037933614,0.03348102
686-619227670509916160	uninsured,obamacare,arrived,health,obama	0.31296474,0.22042973,0.19962905,0.18500178,0.08197471
686-633469533466947584	health,obama,uninsured,arrived,obamacare	0.41427743,0.2362727,0.18174447,0.11378777,0.05391763
686-637251411496038402	arrived,obamacare,health,uninsured,obama	0.32322717,0.26237652,0.19614291,0.14739002,0.07086339
686-643833305373241344	obamacare,health,arrived,obama,uninsured	0.48982385,0.24549566,0.16698435,0.062211797,0.03548433
686-631183438326796288	obamacare,health,arrived,obama,uninsured	0.514674,0.22660641,0.17368211,0.07228444,0.0127530405
686-621381903363477504	obamacare,arrived,uninsured,obama,health	0.46183172,0.2074477,0.19369337,0.0785926,0.058434606
686-636961293195415552	arrived,obama,uninsured,health,obamacare	0.34961343,0.20413856,0.16965082,0.14380705,0.13279012
686-628406054922141696	obamacare,obama,health,arrived,uninsured	0.87011737,0.056638166,0.027270172,0.025752166,0.020222113
686-636914197859860480	obamacare,health,arrived,obama,uninsured	0.5652605,0.23560569,0.13379681,0.047649566,0.017687403
686-625167591548538880	arrived,obama,obamacare,health,uninsured	0.8844209,0.04726197,0.026137747,0.024537792,0.01764165
686-622581973186383872	health,arrived,obamacare,obama,uninsured	0.517374,0.28608555,0.11835234,0.043887146,0.034300983
686-615165563698962432	obamacare,arrived,health,obama,uninsured	0.75570977,0.11670154,0.064201325,0.04292252,0.020464836
686-616416939825459200	arrived,obamacare,health,obama,uninsured	0.5345157,0.28221694,0.124358006,0.03716429,0.02174509
686-615130112233615360	uninsured,arrived,obamacare,obama,health	0.5839635,0.24391636,0.09306344,0.043898586,0.035158094
686-649084121285693440	obamacare,arrived,obama,health,uninsured	0.39650065,0.37272835,0.119516864,0.06513413,0.04612002
686-631642337014362112	obamacare,obama,arrived,health,uninsured	0.89075047,0.03556523,0.035176165,0.023768928,0.01473922
686-619907524259631104	health,arrived,obamacare,uninsured,obama	0.42225078,0.29189777,0.18715599,0.065889955,0.0328055
686-636943628816941060	uninsured,obamacare,obama,arrived,health	0.3642725,0.32347918,0.13462454,0.09126501,0.086358756
686-634709220273860608	obamacare,obama,health,arrived,uninsured	0.9333437,0.028110007,0.015897142,0.012202508,0.010446609
686-648236261572870144	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-625425978207141888	obamacare,obama,arrived,health,uninsured	0.58151853,0.16947906,0.14659758,0.08608703,0.01631782
686-645604794237886464	obamacare,arrived,health,obama,uninsured	0.6583976,0.16059744,0.12531407,0.037131034,0.01855983
686-640289752378417153	health,uninsured,obamacare,obama,arrived	0.628939,0.21706581,0.10638534,0.031622972,0.01598687
686-619575315560443904	health,obama,obamacare,arrived,uninsured	0.8619496,0.05560805,0.03612826,0.023834148,0.022479938
686-626025253974577152	uninsured,obama,arrived,obamacare,health	0.34040746,0.24254325,0.21142079,0.11867344,0.086955056
686-648417622791462912	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-649003849882058753	obamacare,uninsured,arrived,health,obama	0.7178091,0.13132118,0.07792916,0.0380937,0.034846876
686-634166673969401856	obamacare,obama,health,arrived,uninsured	0.9213049,0.03107524,0.022878366,0.013438124,0.011303392
686-642368533716844548	health,uninsured,obamacare,arrived,obama	0.41042253,0.2492977,0.16693208,0.14599575,0.027351966
686-628817429561348096	uninsured,health,obama,arrived,obamacare	0.81072855,0.1162641,0.03261629,0.020427288,0.019963752
686-632549774915276801	health,obamacare,obama,arrived,uninsured	0.5147887,0.27916226,0.09522234,0.05733838,0.053488314
686-646423908107862016	uninsured,arrived,obama,health,obamacare	0.69833434,0.13393892,0.07196175,0.051048927,0.04471607
686-644096958563422208	obama,arrived,obamacare,health,uninsured	0.5484522,0.39343122,0.02374881,0.019930506,0.0144372815
686-646424156100280321	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-619210848033198080	uninsured,obamacare,obama,arrived,health	0.56974226,0.24774653,0.073717326,0.062188443,0.046605453
686-648704092068425728	obamacare,obama,health,arrived,uninsured	0.8942051,0.04649778,0.02268496,0.019796174,0.016815994
686-631141311102320640	health,uninsured,arrived,obama,obamacare	0.5149527,0.19615579,0.1872277,0.057832435,0.043831367
686-633828493709680641	uninsured,health,arrived,obama,obamacare	0.41510597,0.3470732,0.10436035,0.073569894,0.059890583
686-615017000436260865	uninsured,obama,obamacare,health,arrived	0.56749225,0.17866747,0.09003729,0.08759972,0.076203294
686-631515813514645504	uninsured,health,obama,arrived,obamacare	0.5739182,0.15572159,0.14779286,0.09521509,0.027352214
686-615062856694910976	uninsured,arrived,obamacare,health,obama	0.48372677,0.18468325,0.17099547,0.09173638,0.06885814
686-639213710523895808	obamacare,uninsured,obama,arrived,health	0.4134395,0.3914143,0.066608146,0.06471332,0.06382471
686-633421008267931648	arrived,health,obama,uninsured,obamacare	0.33061525,0.20593871,0.18070233,0.14209698,0.14064674
686-623291664090554372	arrived,obama,health,obamacare,uninsured	0.921101,0.03179031,0.017516635,0.016274456,0.013317641
686-624033800906010624	obamacare,arrived,health,uninsured,obama	0.7485034,0.24406551,0.0034826307,0.0029324521,0.0010160409
686-620775013319217152	obamacare,obama,health,arrived,uninsured	0.8379823,0.06874299,0.03448907,0.032359026,0.026426617
686-621096915980189696	obamacare,obama,health,arrived,uninsured	0.88663644,0.048022125,0.023266176,0.02293403,0.019141251
686-636287356828450816	uninsured,obamacare,health,obama,arrived	0.37882417,0.32218787,0.16858003,0.08115463,0.049253266
686-644860034002890752	uninsured,arrived,obamacare,obama,health	0.47130182,0.3220627,0.10501431,0.050976988,0.050644174
686-648295909260967936	arrived,obama,obamacare,uninsured,health	0.7425368,0.17304972,0.033313207,0.027258957,0.023841362
686-633992807447949312	obamacare,arrived,obama,health,uninsured	0.67083573,0.25912312,0.036251206,0.019264847,0.014525102
686-630785448336429056	arrived,uninsured,health,obamacare,obama	0.4207781,0.23386763,0.22725038,0.06686309,0.051240798
686-629483772833079296	uninsured,arrived,obama,obamacare,health	0.41229695,0.22964936,0.14887366,0.10901402,0.100166
686-617766152073117696	health,uninsured,arrived,obamacare,obama	0.67140895,0.13106994,0.12407165,0.07136289,0.0020865747
686-618561104633970688	obama,obamacare,health,arrived,uninsured	0.8643108,0.045039598,0.037850346,0.027724389,0.025074854
686-615139561732206592	health,obamacare,arrived,obama,uninsured	0.56509477,0.2096542,0.14756644,0.051188875,0.026495727
686-617510061431099392	health,arrived,uninsured,obamacare,obama	0.58971065,0.17025647,0.1568844,0.04249276,0.040655695
686-645880168830124032	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-646845318517116929	arrived,obama,obamacare,health,uninsured	0.91221374,0.03402966,0.019477336,0.018990455,0.015288799
686-648647052780417024	obamacare,obama,arrived,health,uninsured	0.87241477,0.047736138,0.032455493,0.026227562,0.021166043
686-617118761791795200	obamacare,health,arrived,obama,uninsured	0.45646977,0.27025485,0.17590146,0.059312493,0.03806142
686-647597843713101824	arrived,health,uninsured,obamacare,obama	0.7624573,0.21481787,0.015626337,0.0059011537,0.0011973251
686-626466887250022401	health,uninsured,obama,arrived,obamacare	0.6160008,0.28272563,0.04207052,0.036802325,0.022400722
686-645699146737782784	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-643430417895297028	uninsured,health,obama,arrived,obamacare	0.44266114,0.20898166,0.16949986,0.15765654,0.021200798
686-630755714646999040	arrived,uninsured,obamacare,obama,health	0.40514138,0.28285372,0.19310282,0.06756431,0.051337775
686-630865167299932160	health,arrived,obama,obamacare,uninsured	0.61318964,0.2327024,0.07015155,0.048905414,0.035050977
686-634897105685868544	obamacare,health,obama,arrived,uninsured	0.61871165,0.26365373,0.056971006,0.03340988,0.027253732
686-628664894850793472	arrived,uninsured,obama,health,obamacare	0.3648418,0.24059351,0.1497641,0.13543007,0.109370515
686-646061377925349376	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647177906834264065	health,obama,obamacare,arrived,uninsured	0.8691357,0.057490192,0.0286525,0.024188356,0.020533284
686-637436630400274432	health,uninsured,obamacare,obama,arrived	0.4825248,0.3127613,0.123379506,0.047825277,0.033509105
686-625731886812258304	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-617526603657011200	obamacare,health,obama,arrived,uninsured	0.76355267,0.13908255,0.05074844,0.024380513,0.022235855
686-622465603459153924	uninsured,arrived,health,obama,obamacare	0.56515086,0.22024962,0.14814876,0.042127732,0.024323046
686-648659776998625280	obamacare,uninsured,health,obama,arrived	0.76576346,0.08744898,0.075631104,0.048567962,0.022588488
686-618265166640054272	arrived,obamacare,obama,health,uninsured	0.54250765,0.31974897,0.0667325,0.03896511,0.032045767
686-620722619248177152	obamacare,health,arrived,uninsured,obama	0.5623264,0.1631896,0.16309376,0.06743545,0.043954816
686-618715949068341248	arrived,uninsured,obama,obamacare,health	0.82624924,0.06260957,0.051497497,0.030208515,0.02943519
686-626193912772718593	health,uninsured,arrived,obamacare,obama	0.29589748,0.23753332,0.2300927,0.20233138,0.0341451
686-629474704936583168	arrived,obamacare,uninsured,obama,health	0.64730996,0.22350013,0.074595906,0.03281595,0.02177803
686-620391756346064896	health,uninsured,obamacare,obama,arrived	0.5126043,0.20380579,0.20372225,0.051936354,0.027931299
686-625768239553884160	arrived,health,uninsured,obamacare,obama	0.35715702,0.32467085,0.13736501,0.13650025,0.04430686
686-631938294230700036	health,obama,arrived,uninsured,obamacare	0.70481896,0.15009068,0.10380819,0.023167472,0.018114716
686-620012571114901505	arrived,obamacare,health,obama,uninsured	0.63194185,0.19775839,0.09240483,0.056465965,0.021428967
686-625997317875834881	obama,arrived,obamacare,uninsured,health	0.48244643,0.16620475,0.15944795,0.15289028,0.0390106
686-646605032347992064	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-634130374029803520	health,arrived,obama,obamacare,uninsured	0.77002126,0.14677928,0.04160397,0.023323817,0.018271696
686-633405192101212161	uninsured,health,arrived,obama,obamacare	0.4571969,0.33700296,0.13524206,0.041314535,0.029243555
686-634544244716343296	uninsured,obamacare,arrived,obama,health	0.426421,0.32232317,0.09939311,0.0846648,0.067197904
686-649002055126810624	obamacare,uninsured,obama,arrived,health	0.72317356,0.19122519,0.030817397,0.030430185,0.024353653
686-642518529397297152	uninsured,obama,obamacare,health,arrived	0.9215532,0.03239147,0.016356833,0.01586731,0.0138311675
686-646822812351463424	uninsured,health,obama,obamacare,arrived	0.6057032,0.3005469,0.04763251,0.024271466,0.021845914
686-646604729171079168	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-625827024452517889	uninsured,arrived,health,obamacare,obama	0.7377536,0.24235144,0.007876957,0.007575942,0.004442003
686-627491147590578176	arrived,obamacare,health,uninsured,obama	0.3767355,0.3239443,0.19813117,0.051217377,0.04997164
686-638037642483998720	obama,obamacare,health,arrived,uninsured	0.95030516,0.014381347,0.013459731,0.011762289,0.010091456
686-615295168393035776	obamacare,arrived,health,obama,uninsured	0.75570977,0.11670154,0.064201325,0.04292252,0.020464836
686-618617043324153856	arrived,uninsured,health,obama,obamacare	0.5922648,0.18473767,0.11592224,0.06704329,0.04003206
686-617024112687321088	uninsured,obamacare,health,obama,arrived	0.3730426,0.28147915,0.27852058,0.03790164,0.029056035
686-646862564782174208	obamacare,health,obama,uninsured,arrived	0.4776895,0.26398215,0.10217586,0.07847504,0.07767746
686-617828143487959042	uninsured,health,obama,obamacare,arrived	0.39305046,0.276594,0.13784496,0.10618214,0.086328395
686-633989108025528320	obamacare,arrived,health,obama,uninsured	0.85259324,0.13486709,0.0042259195,0.0042099864,0.004103747
686-647031513968717824	uninsured,health,obama,obamacare,arrived	0.6057032,0.3005469,0.04763251,0.024271466,0.021845914
686-645699533138079744	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-639979061066993664	health,arrived,uninsured,obama,obamacare	0.5700636,0.3007683,0.06742286,0.03663418,0.02511109
686-635629232954175488	obamacare,arrived,obama,health,uninsured	0.4526407,0.23476987,0.22866137,0.058630235,0.025297804
686-633853330301673474	obamacare,obama,health,arrived,uninsured	0.9333437,0.028110007,0.015897142,0.012202508,0.010446609
686-647511319977943040	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-622495907301445632	arrived,health,uninsured,obamacare,obama	0.58633906,0.21708767,0.1390514,0.056044873,0.0014770095
686-641488304588754944	arrived,health,obamacare,uninsured,obama	0.5310636,0.22862564,0.16194919,0.040215466,0.038146075
686-628278221218287616	uninsured,health,obamacare,arrived,obama	0.3841424,0.31032056,0.18921196,0.06763075,0.04869434
686-623842745271091200	obamacare,arrived,uninsured,obama,health	0.67915386,0.11043313,0.105660744,0.05683744,0.047914837
686-626943601373790208	arrived,uninsured,obamacare,health,obama	0.39309165,0.23179044,0.13704483,0.13046506,0.10760803
686-626870909220073473	arrived,uninsured,obamacare,health,obama	0.38281256,0.23761341,0.22750829,0.107986815,0.04407892
686-617332348003221504	uninsured,obama,arrived,health,obamacare	0.3612086,0.20432042,0.16169874,0.15122661,0.12154563
686-625382638094827520	obamacare,uninsured,arrived,health,obama	0.34257004,0.21258645,0.19101419,0.18479776,0.06903156
686-633476758415785984	obamacare,health,uninsured,arrived,obama	0.3804756,0.27262783,0.1572547,0.1556033,0.034038547
686-646967599067062272	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-634896838974279680	obamacare,health,obama,arrived,uninsured	0.61871165,0.26365373,0.056971006,0.03340988,0.027253732
686-648858708081025024	arrived,obamacare,uninsured,obama,health	0.4742014,0.23305605,0.15596095,0.08004995,0.056731645
686-619167961174007809	obamacare,uninsured,health,arrived,obama	0.42675167,0.29337057,0.16415235,0.07374928,0.041976113
686-627480626040430592	health,uninsured,obama,arrived,obamacare	0.4185683,0.24607415,0.15208893,0.09246202,0.090806596
686-627445930938249216	arrived,obama,obamacare,health,uninsured	0.91205627,0.03590353,0.019894348,0.018621197,0.013524636
686-647034102391005184	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-636010824436420608	obamacare,uninsured,obama,health,arrived	0.430385,0.18278337,0.13831377,0.12950836,0.11900952
686-624645747728748544	uninsured,health,obama,arrived,obamacare	0.28966093,0.27233434,0.15419911,0.1523777,0.13142793
686-618640263221608448	uninsured,obamacare,arrived,obama,health	0.49599707,0.25221282,0.1097227,0.080534145,0.061533246
686-620348125455056897	arrived,uninsured,obama,obamacare,health	0.83472383,0.06057453,0.04955282,0.029832745,0.025316076
686-629538793951879168	uninsured,health,arrived,obamacare,obama	0.32399508,0.25796565,0.2052077,0.16962092,0.043210633
686-643226777909919745	obamacare,arrived,health,obama,uninsured	0.4842761,0.28899562,0.15660875,0.042607944,0.027511597
686-615021645632135168	obama,uninsured,arrived,health,obamacare	0.26258507,0.2511338,0.24664927,0.19094735,0.04868453
686-625750175928197120	obamacare,obama,arrived,health,uninsured	0.87483764,0.04132379,0.036543634,0.026330508,0.020964444
686-630892253314174976	health,uninsured,obamacare,obama,arrived	0.52630764,0.1869287,0.1596983,0.066343546,0.060721837
686-641718630456107009	health,uninsured,obamacare,obama,arrived	0.4162814,0.35084686,0.08194567,0.08030825,0.0706178
686-641304053687844864	health,obamacare,obama,uninsured,arrived	0.33892542,0.27103025,0.22037798,0.09410934,0.07555701
686-629478934497882113	obamacare,uninsured,obama,arrived,health	0.50625527,0.2877851,0.087890595,0.06986457,0.048204444
686-642498049030402048	obamacare,uninsured,arrived,health,obama	0.44309893,0.24784683,0.15887205,0.09402329,0.056158904
686-632227331738734593	uninsured,obamacare,obama,arrived,health	0.709739,0.105264165,0.06858618,0.06337044,0.053040214
686-624820559143174144	uninsured,health,arrived,obamacare,obama	0.47539082,0.22636525,0.15856956,0.08632249,0.053351887
686-638460422828331008	obamacare,arrived,obama,health,uninsured	0.60429716,0.25842863,0.069899745,0.03827168,0.029102769
686-625657157384556544	obamacare,arrived,uninsured,obama,health	0.67915386,0.11043313,0.105660744,0.05683744,0.047914837
686-620726769096617984	obamacare,obama,health,arrived,uninsured	0.87011737,0.056638166,0.027270172,0.025752166,0.020222113
686-641138865349263360	arrived,uninsured,obama,health,obamacare	0.8493733,0.09098552,0.028790107,0.015965298,0.014885784
686-615303294123032576	uninsured,health,arrived,obamacare,obama	0.4564157,0.20023917,0.15447597,0.14851946,0.040349703
686-622578376482553856	arrived,health,obama,obamacare,uninsured	0.87426883,0.04681001,0.032748364,0.024171017,0.022001786
686-634000145366024193	uninsured,obamacare,health,arrived,obama	0.48724478,0.20559676,0.19614181,0.07465514,0.03636151
686-637339756163137536	uninsured,arrived,obama,health,obamacare	0.2725102,0.22733776,0.20172273,0.16249995,0.13592935
686-644599872813953026	health,uninsured,obama,obamacare,arrived	0.53904,0.3469834,0.057349026,0.030001175,0.026626378
686-619991384670519296	health,obamacare,uninsured,arrived,obama	0.4271151,0.2092793,0.17828219,0.13157523,0.05374819
686-647524208302395392	arrived,uninsured,health,obama,obamacare	0.47842428,0.35180882,0.061101515,0.057778314,0.050887067
686-638838057811116032	arrived,obamacare,obama,health,uninsured	0.6118334,0.26762363,0.04233082,0.03989281,0.038319357
686-616402862541639680	obamacare,obama,health,arrived,uninsured	0.8920269,0.0470931,0.023225792,0.020321244,0.017332938
686-631483596210077697	uninsured,obama,health,arrived,obamacare	0.40149596,0.3184126,0.11091481,0.09156015,0.077616476
686-634172864002813952	health,arrived,obama,obamacare,uninsured	0.8176017,0.06426688,0.04144904,0.04071914,0.03596326
686-627961843890323456	obamacare,arrived,obama,health,uninsured	0.7771451,0.1684505,0.028854474,0.014918797,0.01063115
686-633845461665861633	obamacare,obama,health,arrived,uninsured	0.8415285,0.0677021,0.033670075,0.03143973,0.025659634
686-639184622505578496	uninsured,obama,obamacare,health,arrived	0.9112844,0.03656067,0.018527273,0.01794408,0.015683576
686-647329814391554048	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-619137762076196866	obamacare,arrived,obama,health,uninsured	0.74220055,0.16925648,0.047086444,0.024016637,0.017439866
686-632608396731117569	obamacare,health,uninsured,obama,arrived	0.46111432,0.24895447,0.19302826,0.05897401,0.037928928
686-641771964856713216	obamacare,arrived,obama,health,uninsured	0.53460616,0.21086068,0.11085533,0.077278174,0.06639966
686-635532063441993728	obamacare,obama,health,arrived,uninsured	0.596568,0.17742488,0.08646444,0.07541404,0.064128675
686-615271635273314305	obamacare,obama,arrived,health,uninsured	0.40196157,0.28255427,0.15597722,0.102275774,0.057231173
686-647511114129903616	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648509272049979392	obamacare,obama,health,arrived,uninsured	0.86091655,0.055341452,0.030353557,0.028073845,0.025314607
686-648417375423868929	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-625746036691087360	uninsured,arrived,obama,health,obamacare	0.63950944,0.27062836,0.041796286,0.026418313,0.021647613
686-642048356152397824	health,uninsured,arrived,obama,obamacare	0.43089265,0.34045023,0.110004,0.07440127,0.044251878
686-641035925103865856	arrived,health,obama,obamacare,uninsured	0.80367047,0.11973462,0.0408432,0.020790963,0.014960719
686-637173327279312896	uninsured,obama,obamacare,health,arrived	0.90845704,0.03731399,0.019234367,0.018613609,0.016380986
686-646825817746620416	health,arrived,uninsured,obamacare,obama	0.51164407,0.20628366,0.11315798,0.105743565,0.063170716
686-634396523464400898	uninsured,obamacare,arrived,obama,health	0.65405375,0.15299273,0.07722616,0.06763414,0.048093196
686-647873645805748224	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-628376426933297152	arrived,uninsured,health,obamacare,obama	0.3203433,0.30253556,0.19289467,0.13372357,0.050502885
686-645017632463286276	arrived,obama,obamacare,health,uninsured	0.462377,0.20486687,0.19950865,0.105881654,0.027365822
686-630071714181980161	uninsured,health,obamacare,arrived,obama	0.39706078,0.2815471,0.13433127,0.123605825,0.063455045
686-646084569284763648	uninsured,obama,obamacare,health,arrived	0.9112438,0.036561474,0.018522466,0.01796801,0.015704246
686-619585714615918592	health,obama,obamacare,arrived,uninsured	0.8619496,0.05560805,0.03612826,0.023834148,0.022479938
686-625737301675667456	obamacare,arrived,uninsured,health,obama	0.63427716,0.0989905,0.098590754,0.09119138,0.07695021
686-633092515336441857	arrived,obama,obamacare,health,uninsured	0.4806565,0.31747967,0.12664582,0.049579166,0.02563883
686-629795100760141824	arrived,obamacare,health,obama,uninsured	0.7465977,0.13135542,0.072967514,0.03579448,0.013284884
686-632762787991678976	health,uninsured,arrived,obamacare,obama	0.56072897,0.22625092,0.16862048,0.033446115,0.010953538
686-635203763301584896	obama,obamacare,health,arrived,uninsured	0.3606954,0.18113519,0.1754122,0.15290786,0.12984937
686-630928592919068672	uninsured,health,arrived,obamacare,obama	0.5087829,0.2821705,0.118564524,0.0526822,0.03779986
686-647185061201190912	health,uninsured,obama,obamacare,arrived	0.6845456,0.2524349,0.03069264,0.017773842,0.014553013
686-623885222858375169	uninsured,health,obama,obamacare,arrived	0.91928667,0.07547227,0.0030180602,0.0011227779,0.0011002085
686-631213176013500416	arrived,uninsured,obama,obamacare,health	0.6766339,0.13073608,0.074567206,0.06272676,0.05533607
686-615142972724678657	uninsured,obama,obamacare,health,arrived	0.79829067,0.14926852,0.019219218,0.017713603,0.015507993
686-645961776098480129	health,obama,obamacare,arrived,uninsured	0.90521187,0.040812563,0.021011319,0.017849065,0.015115165
686-646078607736094720	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-647329701703249920	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-625767119733420032	obamacare,arrived,obama,uninsured,health	0.35705802,0.34233323,0.14905201,0.12644775,0.025108978
686-619978849787465728	arrived,obama,uninsured,obamacare,health	0.7334565,0.1491843,0.07659173,0.02276292,0.018004585
686-633872300467621889	uninsured,obama,obamacare,arrived,health	0.47770038,0.24559475,0.22955653,0.02397299,0.023175327
686-620031122941046785	uninsured,health,arrived,obamacare,obama	0.42418572,0.38469183,0.120994024,0.06352548,0.006602954
686-630505542449000448	obamacare,arrived,uninsured,health,obama	0.32724404,0.30566105,0.20808887,0.092985965,0.06602006
686-648062275757084672	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-621784904762667009	uninsured,health,arrived,obamacare,obama	0.72373533,0.08772209,0.06830687,0.06463822,0.05559746
686-643069201582845952	obamacare,uninsured,health,arrived,obama	0.44000202,0.31184697,0.10700667,0.082775146,0.058369186
686-624512890389835776	uninsured,obamacare,health,obama,arrived	0.61802924,0.16286154,0.1542944,0.043504715,0.021310093
686-646856786419560449	health,uninsured,arrived,obama,obamacare	0.70402116,0.110727675,0.089830264,0.057762127,0.037658792
686-618218776362749952	uninsured,obama,obamacare,arrived,health	0.9060876,0.036540642,0.019702021,0.019207222,0.018462548
686-640876391366459393	arrived,uninsured,obamacare,health,obama	0.71058756,0.13266166,0.10322473,0.03137188,0.022154158
686-638815202407018502	arrived,obamacare,health,obama,uninsured	0.47202235,0.17288743,0.16346887,0.12376707,0.06785428
686-634476274166075392	arrived,health,obama,obamacare,uninsured	0.5215707,0.36862472,0.055853784,0.033481468,0.020469341
686-648709163715948544	obamacare,obama,health,arrived,uninsured	0.87407064,0.04949969,0.028038554,0.025612393,0.022778716
686-618492252172754945	health,obama,obamacare,arrived,uninsured	0.80011946,0.086137526,0.044574805,0.037718553,0.031449668
686-629195546901614592	obamacare,uninsured,health,arrived,obama	0.40679893,0.29954872,0.18659267,0.059391074,0.047668602
686-633774615253286912	obamacare,obama,health,arrived,uninsured	0.8415285,0.0677021,0.033670075,0.03143973,0.025659634
686-626174161841426432	uninsured,arrived,obamacare,obama,health	0.43671837,0.30727637,0.106273934,0.07611193,0.07361941
686-646863298395181059	obamacare,uninsured,arrived,health,obama	0.36847022,0.24653333,0.22275041,0.112751,0.049495023
686-642516548335173632	uninsured,health,arrived,obama,obamacare	0.50644356,0.23947062,0.18037476,0.04896138,0.024749689
686-646424069479526401	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-641631642117894144	obama,uninsured,obamacare,arrived,health	0.37775818,0.28540227,0.2080519,0.08280068,0.045986965
686-638925042869342211	health,arrived,obamacare,obama,uninsured	0.5424779,0.21023794,0.110399164,0.09920758,0.03767744
686-623912906174783489	uninsured,obamacare,arrived,health,obama	0.99233335,0.0020455439,0.0019107525,0.0018869722,0.0018234043
686-645764426898010116	health,obama,obamacare,arrived,uninsured	0.8433281,0.068040065,0.034561764,0.029204942,0.024865124
686-631378406198890496	health,uninsured,arrived,obama,obamacare	0.53688484,0.18015088,0.17029208,0.061573777,0.051098432
686-647329960227540992	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-615205956155125760	uninsured,arrived,obamacare,health,obama	0.4639177,0.24561875,0.14115012,0.10688905,0.042424392
686-626024739891490816	health,uninsured,arrived,obamacare,obama	0.46379378,0.26121792,0.22668904,0.043712907,0.0045863492
686-632779813540003840	obamacare,arrived,obama,health,uninsured	0.81113094,0.12183931,0.035649277,0.017865572,0.013514884
686-618911499784953856	health,arrived,uninsured,obama,obamacare	0.5488561,0.18658222,0.12798277,0.074468866,0.06211009
686-623632314342338560	arrived,uninsured,health,obamacare,obama	0.29117057,0.2679744,0.26719025,0.09259031,0.081074476
686-618914977211002884	uninsured,obamacare,health,arrived,obama	0.5999017,0.22423898,0.09428103,0.07134647,0.010231861
686-628965737999175681	obamacare,health,uninsured,arrived,obama	0.4848692,0.20372947,0.16233152,0.08228929,0.0667805
686-631203440413143040	uninsured,obamacare,health,obama,arrived	0.75143665,0.10720841,0.09390832,0.0325182,0.014928451
686-619237582799507456	health,uninsured,obamacare,obama,arrived	0.4961232,0.2917896,0.10278861,0.06284685,0.046451755
686-621435088664788992	uninsured,obama,arrived,health,obamacare	0.44662136,0.3205162,0.16484724,0.045422498,0.022592707
686-642699532610867200	arrived,obama,obamacare,health,uninsured	0.8818235,0.047795273,0.02898255,0.02367252,0.01772616
686-648235811331178496	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-615069670949920768	arrived,obamacare,uninsured,obama,health	0.32386196,0.27292758,0.2111194,0.16116673,0.030924315
686-644969573419192324	arrived,uninsured,health,obamacare,obama	0.2779305,0.26251012,0.21653908,0.18225537,0.06076493
686-618250525453209600	obama,uninsured,health,obamacare,arrived	0.7355964,0.19968385,0.026004503,0.021328302,0.017386952
686-640735731283922944	obamacare,arrived,uninsured,obama,health	0.506325,0.20187432,0.19687602,0.06200182,0.032922857
686-617041730479587328	obamacare,health,arrived,uninsured,obama	0.5705539,0.30193257,0.10915339,0.015503597,0.0028565007
686-622163927376367616	arrived,obamacare,uninsured,obama,health	0.43139634,0.22488347,0.17482756,0.0852162,0.083676435
686-616691310221766656	obamacare,health,obama,arrived,uninsured	0.5026588,0.36338827,0.06036275,0.041241407,0.032348756
686-625196990121558016	health,arrived,obama,obamacare,uninsured	0.35611987,0.22033167,0.1977797,0.12346212,0.10230663
686-638052794486779904	obamacare,arrived,health,obama,uninsured	0.59559375,0.12863891,0.11159833,0.09221097,0.071958065
686-640948637137248256	arrived,health,obamacare,uninsured,obama	0.5189142,0.15531634,0.15405874,0.12705417,0.04465653
686-645517994932629504	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-625921241434726400	arrived,health,obama,obamacare,uninsured	0.59503627,0.1918496,0.10233379,0.071287625,0.039492708
686-648646163906830341	arrived,health,uninsured,obama,obamacare	0.428215,0.30971795,0.16458067,0.058294866,0.03919153
686-632618390662705152	obamacare,arrived,obama,health,uninsured	0.7559899,0.18405749,0.031716153,0.016458599,0.011777846
686-616397758799310849	health,arrived,obama,uninsured,obamacare	0.8071445,0.08541195,0.04791059,0.031151999,0.028380921
686-622533738346360833	arrived,obamacare,health,obama,uninsured	0.37548387,0.22910951,0.21936765,0.113018766,0.063020185
686-617870850780336128	uninsured,arrived,health,obamacare,obama	0.57943505,0.15990295,0.15780254,0.06374762,0.039111868
686-637252447145095168	health,uninsured,arrived,obama,obamacare	0.4057554,0.38130182,0.10760805,0.062489927,0.04284482
686-627932024893014016	uninsured,arrived,obamacare,obama,health	0.5513244,0.2723899,0.121563055,0.03514382,0.019578775
686-630880927183298560	arrived,obamacare,health,obama,uninsured	0.7465977,0.13135542,0.072967514,0.03579448,0.013284884
686-623298195158892544	arrived,health,uninsured,obamacare,obama	0.41527995,0.17707703,0.17178625,0.16213544,0.073721334
686-647229328762122240	uninsured,arrived,obamacare,health,obama	0.34818593,0.22539183,0.21496122,0.14643128,0.06502974
686-646786422687461376	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-624609214862733313	obamacare,health,arrived,uninsured,obama	0.514709,0.23809955,0.13995764,0.07178456,0.035449266
686-629360490158944256	obamacare,arrived,obama,health,uninsured	0.69690466,0.23446332,0.03528309,0.019876743,0.013472189
686-644298432845377536	obama,obamacare,health,arrived,uninsured	0.28349927,0.28256178,0.27839413,0.081861734,0.07368308
686-623458123819433984	arrived,obama,obamacare,health,uninsured	0.88435715,0.04806492,0.024721041,0.024167368,0.01868954
686-619270386929111040	uninsured,obama,obamacare,health,arrived	0.9215663,0.03238807,0.016353706,0.015864035,0.013827901
686-629210415453450240	obamacare,arrived,obama,health,uninsured	0.5270663,0.36789855,0.055922464,0.028472295,0.020640392
686-634898108615254016	obamacare,arrived,health,obama,uninsured	0.49952677,0.21099871,0.202435,0.062314115,0.024725392
686-641273664869040128	obamacare,obama,arrived,health,uninsured	0.69314814,0.09786447,0.08627062,0.070197515,0.052519266
686-631599617017290752	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-633998296369905664	obamacare,obama,health,arrived,uninsured	0.87011737,0.056638166,0.027270172,0.025752166,0.020222113
686-645003918674628609	health,uninsured,obama,obamacare,arrived	0.81776345,0.06049783,0.059860095,0.03283721,0.02904144
686-621263777288331264	arrived,uninsured,obamacare,obama,health	0.6770451,0.15274905,0.06593993,0.065300755,0.038965132
686-647330003370180608	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-629474470055514112	uninsured,obamacare,health,obama,arrived	0.38068083,0.30224702,0.21228233,0.06317032,0.041619513
686-622308554595143680	arrived,health,uninsured,obama,obamacare	0.61186635,0.22738793,0.07109455,0.049324676,0.040326484
686-627372288388632576	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-615986478351413249	arrived,obamacare,obama,health,uninsured	0.65838283,0.20989075,0.060325097,0.04520248,0.026198853
686-625311041631703040	obamacare,obama,arrived,health,uninsured	0.5771413,0.17132927,0.14806134,0.08668846,0.016779637
686-646967396457017344	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-626442439650361344	uninsured,health,obama,arrived,obamacare	0.5872165,0.34051552,0.029889548,0.023014577,0.019363865
686-625734764813615105	obama,uninsured,obamacare,arrived,health	0.46414623,0.27046758,0.11862363,0.076764695,0.06999789
686-619140901613338625	obama,obamacare,arrived,uninsured,health	0.55874103,0.26327032,0.13025439,0.033530295,0.014203992
686-642287347963424768	obamacare,health,arrived,obama,uninsured	0.42223394,0.3352932,0.16182615,0.044084106,0.036562607
686-643586770001522688	obamacare,health,arrived,obama,uninsured	0.41161555,0.31100023,0.17940511,0.059668515,0.03831062
686-633797215614574592	arrived,obama,health,uninsured,obamacare	0.86071986,0.04984854,0.04183901,0.025256261,0.022336341
686-645765891418910720	health,obama,obamacare,arrived,uninsured	0.8710114,0.05592468,0.028467719,0.0240794,0.020516798
686-645880104921403393	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-620397653159849984	obamacare,health,uninsured,arrived,obama	0.3314918,0.22143048,0.21924913,0.12101872,0.106809884
686-631509525355298817	health,uninsured,obamacare,obama,arrived	0.49044842,0.25095958,0.11851817,0.07897228,0.061101552
686-623886832091029505	uninsured,arrived,obamacare,obama,health	0.98690957,0.0036888965,0.0034708222,0.0030556528,0.0028750494
686-620584335003877376	obama,uninsured,obamacare,arrived,health	0.26208603,0.2108561,0.18074533,0.17381886,0.17249368
686-646062200751190016	obamacare,uninsured,health,obama,arrived	0.5246615,0.22315262,0.1585037,0.056416955,0.03726522
686-626135267640868864	uninsured,obamacare,arrived,health,obama	0.4685879,0.25766253,0.19748938,0.03967384,0.036586322
686-633347311951675392	uninsured,health,arrived,obama,obamacare	0.5264694,0.30954418,0.11519001,0.032238,0.016558409
686-628367124730216448	obamacare,arrived,obama,health,uninsured	0.65176076,0.26871508,0.041365363,0.01994015,0.018218625
686-629476106249224192	uninsured,obama,obamacare,health,arrived	0.82450396,0.061536063,0.041640285,0.037343893,0.034975823
686-631245970169327620	health,obamacare,arrived,uninsured,obama	0.4889697,0.21868318,0.1629731,0.08780607,0.041567925
686-628540176747376640	arrived,health,obamacare,obama,uninsured	0.428336,0.24346535,0.14517036,0.09598292,0.08704537
686-627505603762524160	arrived,uninsured,health,obama,obamacare	0.5043182,0.3087444,0.123705626,0.036207564,0.027024217
686-628537046869524481	uninsured,arrived,health,obama,obamacare	0.49240434,0.2794693,0.16167259,0.042490803,0.023962969
686-634911155966754824	obamacare,health,obama,arrived,uninsured	0.61871165,0.26365373,0.056971006,0.03340988,0.027253732
686-647329913297485824	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-621097103260012544	health,obama,obamacare,arrived,uninsured	0.5908871,0.17731762,0.091233775,0.0754994,0.065062106
686-627993378618257408	health,obamacare,arrived,uninsured,obama	0.4557222,0.28855392,0.103534475,0.10055204,0.05163736
686-627279774969237504	arrived,health,obama,obamacare,uninsured	0.7341568,0.2015182,0.028535698,0.025336603,0.010452716
686-627676573525671937	uninsured,health,obamacare,obama,arrived	0.34855872,0.268408,0.16242257,0.13965052,0.08096021
686-645699439466692608	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647329742765461504	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-635154953376415744	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-617844160645713920	health,obama,obamacare,arrived,uninsured	0.50434357,0.19992758,0.10382143,0.10053417,0.09137326
686-640928675244863488	arrived,obama,health,obamacare,uninsured	0.921101,0.03179031,0.017516635,0.016274456,0.013317641
686-619101416137826304	arrived,obama,health,obamacare,uninsured	0.63700587,0.10194925,0.09943456,0.09927421,0.06233613
686-629545070421643264	uninsured,obamacare,health,arrived,obama	0.5947882,0.22364676,0.10537734,0.04142928,0.034758408
686-627833459256504320	obamacare,arrived,obama,health,uninsured	0.5969833,0.3144905,0.04715033,0.02396536,0.017410496
686-641272914155667456	arrived,health,obama,obamacare,uninsured	0.80367047,0.11973462,0.0408432,0.020790963,0.014960719
686-633054473699610624	health,arrived,uninsured,obamacare,obama	0.46126816,0.21344711,0.13238731,0.11931475,0.073582664
686-635277529280962560	health,arrived,obama,uninsured,obamacare	0.7238731,0.17916925,0.041664407,0.028605307,0.02668798
686-626382962066632704	obamacare,arrived,uninsured,obama,health	0.67915386,0.11043313,0.105660744,0.05683744,0.047914837
686-648576969366343680	obamacare,obama,health,arrived,uninsured	0.85035634,0.058473583,0.033375375,0.030559607,0.027235067
686-647329673060450304	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-621712502460678148	uninsured,health,obama,obamacare,arrived	0.55244744,0.19384727,0.12411513,0.0686106,0.060979567
686-633792741655359490	uninsured,obamacare,health,obama,arrived	0.3405819,0.28228796,0.23051359,0.07362928,0.0729873
686-620298632151957504	arrived,obamacare,obama,health,uninsured	0.35780787,0.23863302,0.15588887,0.13993706,0.10773317
686-644586647615508480	uninsured,obamacare,obama,health,arrived	0.64546233,0.2722445,0.041572586,0.020939993,0.019780554
686-618841115043606529	obamacare,obama,health,arrived,uninsured	0.3629223,0.19601847,0.15397817,0.14915295,0.13792808
686-646427260413739008	health,obamacare,obama,arrived,uninsured	0.33304918,0.32029298,0.16863698,0.13505992,0.042960934
686-630920268312002561	arrived,obama,obamacare,health,uninsured	0.80371386,0.069361165,0.04886918,0.044391785,0.03366399
686-615299391818199044	health,arrived,uninsured,obama,obamacare	0.5958822,0.21829426,0.08040733,0.052958675,0.052457534
686-646145614183460864	health,arrived,uninsured,obamacare,obama	0.6566851,0.18838806,0.12662455,0.018961495,0.0093407985
686-638501032528609280	obamacare,obama,health,arrived,uninsured	0.9213049,0.03107524,0.022878366,0.013438124,0.011303392
686-625821246878523393	arrived,uninsured,obamacare,health,obama	0.4849607,0.17470063,0.16927262,0.10970308,0.061362963
686-626875616537804800	uninsured,arrived,health,obama,obamacare	0.32825068,0.31096032,0.28219816,0.045440514,0.033150345
686-649022479680303105	uninsured,obamacare,health,obama,arrived	0.40188915,0.25359815,0.16967872,0.10477031,0.070063666
686-616416872200716288	health,arrived,obamacare,obama,uninsured	0.6454988,0.15250377,0.14580789,0.040835198,0.015354313
686-636780872474058752	obama,obamacare,health,arrived,uninsured	0.8082397,0.1433358,0.018263243,0.016518502,0.013642753
686-634370384255692800	health,arrived,obamacare,obama,uninsured	0.5135953,0.24055621,0.10810928,0.08369279,0.054046452
686-623302527891542016	health,obamacare,uninsured,arrived,obama	0.40285212,0.24409851,0.20781147,0.10196392,0.043273985
686-628672010374111233	uninsured,obamacare,arrived,health,obama	0.3905904,0.33035848,0.15519786,0.07843088,0.045422386
686-631105663247081477	arrived,health,obamacare,uninsured,obama	0.35657004,0.23438211,0.21944536,0.10400234,0.08560017
686-645566774176563200	obamacare,arrived,health,obama,uninsured	0.40611964,0.32065684,0.1870408,0.057522707,0.028659992
686-643098142318166016	obamacare,obama,health,arrived,uninsured	0.78476965,0.13746628,0.030079355,0.026330149,0.02135458
686-643454244301991936	obamacare,uninsured,obama,arrived,health	0.43445233,0.37036034,0.07343912,0.06351813,0.05823009
686-635596504036720644	arrived,health,obamacare,obama,uninsured	0.6955998,0.13344036,0.11200421,0.039363988,0.019591639
686-648542461451743232	obamacare,obama,health,arrived,uninsured	0.8640909,0.057952315,0.02956766,0.02597764,0.022411445
686-621558342939484160	arrived,health,uninsured,obama,obamacare	0.7255293,0.14864916,0.061393622,0.041344773,0.023083167
686-623898048406515712	uninsured,arrived,health,obamacare,obama	0.49447045,0.23281887,0.18720657,0.05047777,0.035026345
686-618793832285650944	obamacare,arrived,uninsured,health,obama	0.44677463,0.22620898,0.14474162,0.13642973,0.04584504
686-634780511400001536	health,arrived,obama,obamacare,uninsured	0.82899487,0.109239995,0.031424943,0.01823725,0.01210291
686-623334944476008448	uninsured,arrived,obama,health,obamacare	0.63950944,0.27062836,0.041796286,0.026418313,0.021647613
686-630899176080019456	arrived,uninsured,obama,health,obamacare	0.5064744,0.15192032,0.13438304,0.10620428,0.101018
686-636154714384502784	arrived,obamacare,uninsured,health,obama	0.95952624,0.015952498,0.013973707,0.007885287,0.0026622682
686-627697173849747457	obamacare,arrived,obama,health,uninsured	0.75183016,0.1897809,0.031355824,0.015470932,0.011562187
686-628285539838332929	obamacare,obama,health,arrived,uninsured	0.4276206,0.36345625,0.09458913,0.058723032,0.055610973
686-617472856004407296	uninsured,health,obama,obamacare,arrived	0.5013949,0.4157942,0.04170557,0.021601027,0.019504247
686-617091266338246656	arrived,obamacare,health,uninsured,obama	0.44870275,0.21514075,0.15626825,0.11784941,0.062038854
686-645517913416298496	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-626458844768681984	obamacare,health,arrived,obama,uninsured	0.45311055,0.27115732,0.10354234,0.10227956,0.069910236
686-623322529680203776	obamacare,arrived,obama,health,uninsured	0.32808226,0.25632328,0.18882452,0.12327019,0.103499725
686-633747578752925698	uninsured,obama,obamacare,health,arrived	0.9112844,0.03656067,0.018527273,0.01794408,0.015683576
686-642027763608588289	uninsured,health,obama,obamacare,arrived	0.39789248,0.323624,0.11839409,0.093897246,0.06619216
686-644345959082684416	obamacare,uninsured,obama,health,arrived	0.438633,0.42393833,0.06987129,0.035350956,0.032206435
686-647873475844046848	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-623291090599219200	uninsured,arrived,obamacare,obama,health	0.61467266,0.24336502,0.08008715,0.037781466,0.024093691
686-647873474627633152	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-619622010583449600	arrived,obamacare,uninsured,obama,health	0.5217088,0.17742144,0.15941623,0.078201644,0.0632519
686-641725967933796352	uninsured,health,obama,arrived,obamacare	0.4554875,0.34540787,0.09811911,0.051453564,0.049531966
686-631936267089895424	arrived,health,obama,obamacare,uninsured	0.6910145,0.24843661,0.031985372,0.016426047,0.012137469
686-636965244703801346	health,obama,obamacare,arrived,uninsured	0.76966906,0.08918043,0.052347,0.04700773,0.04179576
686-625419380852150272	obama,obamacare,health,arrived,uninsured	0.3606954,0.18113519,0.1754122,0.15290786,0.12984937
686-626214922830094336	obamacare,arrived,uninsured,health,obama	0.535743,0.19640385,0.13871,0.09867001,0.030473158
686-648534079818698752	health,obamacare,arrived,obama,uninsured	0.5712929,0.19154191,0.16840339,0.049352918,0.019408917
686-648663857209151488	uninsured,obamacare,arrived,health,obama	0.41183585,0.25908938,0.17391579,0.07964568,0.075513296
686-620735382670442500	obamacare,obama,health,arrived,uninsured	0.8379823,0.06874299,0.03448907,0.032359026,0.026426617
686-630858484456779776	health,uninsured,obamacare,arrived,obama	0.5222767,0.26823914,0.1866209,0.019689815,0.00317345
686-619639762748637184	arrived,health,obama,uninsured,obamacare	0.6710542,0.16982774,0.06385976,0.05955853,0.03569977
686-621087041623851008	uninsured,arrived,obamacare,obama,health	0.57156426,0.24195887,0.12605192,0.036923546,0.023501443
686-628578859743473664	arrived,obamacare,health,uninsured,obama	0.90635157,0.086075604,0.0055342754,0.0012218852,8.166487E-4
686-633706151700467712	obamacare,uninsured,arrived,obama,health	0.41857123,0.40956703,0.11903755,0.032691374,0.020132812
686-648055142013468673	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-639989691815755776	arrived,uninsured,obama,health,obamacare	0.4690799,0.37253675,0.122399285,0.01903873,0.016945342
686-623479777505210368	arrived,uninsured,health,obama,obamacare	0.39255515,0.32268324,0.18286958,0.06134628,0.04054574
686-628310872293777408	health,obamacare,arrived,uninsured,obama	0.3286839,0.30549031,0.21064997,0.09706082,0.05811498
686-646606319382843392	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-646423837551263744	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648610985754816512	obamacare,obama,health,arrived,uninsured	0.8942051,0.04649778,0.02268496,0.019796174,0.016815994
686-622128063510265856	health,arrived,obamacare,obama,uninsured	0.29949668,0.29898614,0.2760494,0.089951046,0.03551672
686-623357501916852224	arrived,health,obama,obamacare,uninsured	0.4376861,0.2309237,0.17781058,0.08943409,0.06414554
686-615134696834486273	obamacare,obama,health,arrived,uninsured	0.4694578,0.1893485,0.14626518,0.12311998,0.07180852
686-626913866082086913	arrived,obamacare,obama,health,uninsured	0.72692895,0.14975612,0.06275834,0.03367758,0.026878983
686-645517723791831040	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-638912234752643072	obamacare,uninsured,health,arrived,obama	0.6513033,0.10548691,0.09234162,0.078928135,0.07194006
686-624103222630723584	health,uninsured,arrived,obama,obamacare	0.34817934,0.32187325,0.18711637,0.105198964,0.03763207
686-642940221382918144	health,obamacare,obama,uninsured,arrived	0.5813568,0.23242158,0.0884911,0.04981805,0.04791244
686-632252281853865984	obamacare,uninsured,health,arrived,obama	0.57061785,0.22446227,0.13729456,0.03432503,0.033300303
686-619237560699613185	uninsured,arrived,obama,health,obamacare	0.9081763,0.031053852,0.026603237,0.018703368,0.015463238
686-638106841260494849	uninsured,health,arrived,obama,obamacare	0.5030323,0.29272878,0.090385124,0.07102612,0.04282765
686-616471509075300352	health,obama,obamacare,arrived,uninsured	0.7891372,0.08897034,0.047636397,0.040077515,0.034178555
686-616032205995814912	obamacare,arrived,health,obama,uninsured	0.5541781,0.19393298,0.1657266,0.057795323,0.028366998
686-639513121242136576	health,arrived,obamacare,uninsured,obama	0.97181535,0.026137685,0.0013236101,4.0595914E-4,3.173791E-4
686-631259300250406912	arrived,obama,health,uninsured,obamacare	0.841808,0.057378262,0.046476193,0.029051477,0.025286058
686-646061454945161216	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-633561912614064128	uninsured,arrived,health,obama,obamacare	0.7265457,0.11719529,0.10631353,0.032755833,0.01718968
686-648613084320411648	health,obamacare,obama,arrived,uninsured	0.65393806,0.1959831,0.07045941,0.041908603,0.037710853
686-628393292288274432	arrived,health,obama,obamacare,uninsured	0.5796899,0.13670386,0.12390053,0.091698594,0.0680071
686-626388797136113664	obamacare,uninsured,health,obama,arrived	0.3427702,0.33946714,0.114298016,0.102437414,0.101027265
686-616004622830956544	obama,obamacare,uninsured,health,arrived	0.43734577,0.28900182,0.11925743,0.08756036,0.066834606
686-647148701400461312	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648290440379269124	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-638750774651166720	health,arrived,uninsured,obama,obamacare	0.52150196,0.32554904,0.07920522,0.04595315,0.027790638
686-628611142366175232	arrived,obamacare,uninsured,health,obama	0.8825143,0.08813746,0.011389035,0.00916383,0.008795364
686-634925247758733312	uninsured,health,arrived,obama,obamacare	0.46005455,0.165652,0.14553592,0.11742007,0.111337475
686-648054711787110401	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-635208183280201729	obamacare,obama,arrived,health,uninsured	0.41699862,0.19468747,0.17872116,0.16006081,0.04953194
686-625828205761425408	uninsured,arrived,obamacare,obama,health	0.5167872,0.22114633,0.20751661,0.033161763,0.021388136
686-619147822345031680	obamacare,health,obama,arrived,uninsured	0.50068015,0.3209267,0.0940599,0.046096966,0.038236298
686-632942115358699520	obama,arrived,health,uninsured,obamacare	0.6076281,0.25299513,0.05838692,0.0520949,0.028894944
686-630776875288170496	health,uninsured,obamacare,arrived,obama	0.40637282,0.316633,0.14731899,0.08256026,0.04711493
686-632713360589635584	health,arrived,uninsured,obama,obamacare	0.6249902,0.22236556,0.07192707,0.043471187,0.03724596
686-641615831495929856	uninsured,arrived,health,obama,obamacare	0.7415538,0.13429303,0.05184962,0.043126807,0.029176785
686-638517041960513536	uninsured,health,arrived,obama,obamacare	0.46812758,0.22354066,0.21370518,0.05223156,0.042395014
686-628318788480598016	uninsured,arrived,obama,obamacare,health	0.41349602,0.3036823,0.10778564,0.096343905,0.07869212
686-625390050075803648	obamacare,health,obama,uninsured,arrived	0.5455229,0.16045956,0.14873016,0.12602137,0.019265966
686-629361897456967680	uninsured,arrived,obama,obamacare,health	0.7160053,0.19516823,0.035895225,0.030912472,0.022018742
686-631646971766292481	obamacare,obama,arrived,health,uninsured	0.88432413,0.037187144,0.03660904,0.025800493,0.016079215
686-638384698998280193	health,uninsured,arrived,obama,obamacare	0.3514619,0.2953229,0.22289677,0.071540736,0.058777705
686-617704884574527488	uninsured,health,obamacare,arrived,obama	0.5252885,0.17373893,0.16598853,0.08854465,0.04643937
686-623477407844925440	obamacare,obama,arrived,health,uninsured	0.8777001,0.048708715,0.031832885,0.023847058,0.01791126
686-632268109924200448	obamacare,uninsured,arrived,obama,health	0.45219263,0.24075893,0.20034797,0.056745484,0.049954977
686-626613430120771584	health,obamacare,uninsured,arrived,obama	0.62904173,0.18634577,0.17584427,0.0069945995,0.0017736603
686-645880124756262912	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-617893210044637184	health,arrived,obama,obamacare,uninsured	0.8115408,0.121889055,0.035510503,0.01803741,0.013022273
686-637418351212498944	arrived,uninsured,obamacare,health,obama	0.5376242,0.2077482,0.09273371,0.09133827,0.07055562
686-648313477975543808	obamacare,obama,health,arrived,uninsured	0.82361716,0.06560541,0.039944462,0.037158716,0.033674236
686-615286154938613760	uninsured,obama,arrived,obamacare,health	0.37641075,0.23665167,0.206743,0.10266569,0.07752889
686-616090927208136704	obama,obamacare,health,arrived,uninsured	0.25931117,0.19273636,0.18910682,0.18543085,0.1734148
686-639983646334562304	health,arrived,obamacare,uninsured,obama	0.97181535,0.026137685,0.0013236101,4.0595914E-4,3.173791E-4
686-631838197081731072	health,obamacare,uninsured,obama,arrived	0.5336392,0.2575271,0.14557081,0.043228254,0.02003463
686-624861894436880384	obamacare,health,obama,arrived,uninsured	0.8310936,0.062323812,0.048281882,0.037631918,0.020668771
686-647148648967442437	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-618159462654709760	uninsured,arrived,obama,health,obamacare	0.6708949,0.20619802,0.049614955,0.039867915,0.033424187
686-617080545965658112	health,uninsured,arrived,obamacare,obama	0.32060513,0.29823866,0.23251954,0.08919026,0.059446402
686-618994363356450816	obama,obamacare,health,arrived,uninsured	0.80845547,0.14327067,0.018212743,0.01646754,0.0135935685
686-643585865046822912	obamacare,arrived,health,obama,uninsured	0.4906567,0.20006461,0.19738612,0.07221277,0.039679803
686-642309304058552321	obamacare,arrived,health,uninsured,obama	0.3676522,0.32710692,0.15074664,0.08802966,0.066464536
686-646061748923969536	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-640292967044005888	obamacare,arrived,health,uninsured,obama	0.4573754,0.3371354,0.09696751,0.07056615,0.03795555
686-629281959462612992	uninsured,health,obama,arrived,obamacare	0.43309417,0.27606684,0.1558603,0.09104998,0.04392869
686-624198329996603392	obamacare,health,arrived,obama,uninsured	0.4893338,0.24059916,0.21870002,0.036791198,0.014575818
686-631226365518327808	obamacare,health,obama,arrived,uninsured	0.44282058,0.38004547,0.07193266,0.069318846,0.035882417
686-636622344136601601	uninsured,obamacare,health,arrived,obama	0.27878767,0.27385226,0.2696823,0.10869931,0.06897848
686-621481932040351744	obama,uninsured,health,obamacare,arrived	0.5272473,0.27530515,0.14049974,0.028533265,0.02841451
686-626415465754050560	uninsured,arrived,health,obama,obamacare	0.40873086,0.25798914,0.1429447,0.14041664,0.04991868
686-648844133969190912	uninsured,arrived,health,obama,obamacare	0.75045687,0.09359586,0.07175631,0.054318298,0.029872656
686-636349466904170496	obamacare,obama,uninsured,health,arrived	0.60966367,0.19392237,0.071370095,0.064283624,0.060760226
686-646606305017352192	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-638767419939491841	arrived,obamacare,uninsured,health,obama	0.38580742,0.2574151,0.20521316,0.13850732,0.013057026
686-621081789373612032	health,arrived,obama,obamacare,uninsured	0.76172733,0.18390928,0.02839179,0.014496137,0.01147549
686-625418123336896512	obamacare,arrived,obama,health,uninsured	0.5969833,0.3144905,0.04715033,0.02396536,0.017410496
686-631654307855773696	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-628690303273279488	obama,health,arrived,obamacare,uninsured	0.46136916,0.26384723,0.105946004,0.09864374,0.07019389
686-618564840580231168	obamacare,obama,health,arrived,uninsured	0.89236516,0.04700651,0.023129193,0.020245297,0.017253848
686-622527420776648708	obamacare,uninsured,arrived,obama,health	0.5324286,0.25007558,0.14999293,0.041617624,0.025885265
686-624659072395161600	uninsured,obamacare,obama,health,arrived	0.8206698,0.11013691,0.03436998,0.018666113,0.016157242
686-639783734565339136	arrived,health,uninsured,obamacare,obama	0.37964538,0.3038677,0.1817305,0.079831764,0.05492466
686-646814717185404929	health,uninsured,obama,obamacare,arrived	0.6845456,0.2524349,0.03069264,0.017773842,0.014553013
686-642443946245922817	obama,health,obamacare,arrived,uninsured	0.96966666,0.016447766,0.010532919,0.0022601446,0.0010925188
686-639656185210105856	obamacare,obama,uninsured,arrived,health	0.266202,0.26318014,0.1605001,0.1570091,0.15310867
686-619646313215488001	uninsured,health,arrived,obama,obamacare	0.4055218,0.30376393,0.18966201,0.061336465,0.039715808
686-641722637958443008	arrived,obamacare,uninsured,obama,health	0.5368158,0.20336492,0.16534157,0.06020989,0.0342678
686-633012109761191937	obamacare,uninsured,obama,health,arrived	0.63547075,0.18278532,0.08237397,0.054756835,0.04461316
686-629810272857927680	arrived,obamacare,health,obama,uninsured	0.7465977,0.13135542,0.072967514,0.03579448,0.013284884
686-645947125918998528	obama,health,obamacare,arrived,uninsured	0.71467966,0.23991014,0.016434144,0.015265099,0.0137109645
686-615025748097642497	obama,obamacare,health,arrived,uninsured	0.29148725,0.18915255,0.1849808,0.17484799,0.1595314
686-638114721388847104	obama,obamacare,health,arrived,uninsured	0.95030516,0.014381347,0.013459731,0.011762289,0.010091456
686-646061375614242816	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-645880231773929472	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-623288031450107905	obamacare,arrived,obama,health,uninsured	0.65176076,0.26871508,0.041365363,0.01994015,0.018218625
686-646061650139705344	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-631210273987260416	obama,health,arrived,uninsured,obamacare	0.351442,0.25860104,0.20660289,0.096340925,0.087013155
686-616708171755683840	health,obama,obamacare,arrived,uninsured	0.8598387,0.05808978,0.030885497,0.026150469,0.025035542
686-626129551660199936	arrived,obamacare,uninsured,obama,health	0.6367472,0.19039546,0.11171403,0.034590553,0.026552787
686-631967506656202753	uninsured,health,obamacare,obama,arrived	0.41732046,0.27451083,0.13686642,0.10473854,0.06656374
686-646242507471331328	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-627220238950604800	arrived,obamacare,obama,health,uninsured	0.41186237,0.39240843,0.07424647,0.061456688,0.06002604
686-639848364864053249	health,uninsured,arrived,obama,obamacare	0.43565023,0.31732532,0.10436031,0.08933597,0.053328145
686-631850833366360064	uninsured,health,arrived,obamacare,obama	0.36060828,0.24752317,0.23376694,0.090176396,0.06792522
686-642367161881636866	health,obamacare,arrived,uninsured,obama	0.48184827,0.18275265,0.15458496,0.1199499,0.060864225
686-637361544314023937	health,arrived,obama,obamacare,uninsured	0.43645227,0.42371285,0.071726695,0.03656243,0.03154576
686-646061527988965376	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-639476775177728000	uninsured,health,arrived,obamacare,obama	0.34012413,0.32446134,0.1542539,0.13865381,0.04250683
686-633976731695755264	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-624318946993266688	uninsured,arrived,health,obama,obamacare	0.500941,0.1873161,0.17633006,0.074891925,0.06052091
686-629473116138287105	uninsured,health,arrived,obama,obamacare	0.7463448,0.13410413,0.060684003,0.038464423,0.020402607
686-645699417027162112	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-627443109945831424	obamacare,arrived,uninsured,health,obama	0.3681693,0.35120377,0.12777165,0.09473864,0.05811663
686-627159637519826944	arrived,uninsured,obamacare,obama,health	0.9863971,0.009261614,0.0018258913,0.0014418921,0.0010734963
686-638831924195164160	obama,obamacare,health,arrived,uninsured	0.30271038,0.18714407,0.18205222,0.17279384,0.15529948
686-648236002532704260	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-629317153452244992	arrived,obamacare,uninsured,health,obama	0.35232875,0.24511969,0.20503922,0.12744266,0.0700697
686-617888988037132288	obamacare,arrived,obama,health,uninsured	0.65176076,0.26871508,0.041365363,0.01994015,0.018218625
686-623421912639754240	uninsured,obama,arrived,health,obamacare	0.7026798,0.096304774,0.07270917,0.06588551,0.06242071
686-636333397024092161	health,obama,obamacare,arrived,uninsured	0.33229208,0.29725507,0.16289692,0.13277245,0.07478346
686-647873895085699072	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648236358570381312	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-625661670354890752	uninsured,arrived,health,obamacare,obama	0.58999366,0.21252994,0.13618463,0.044489097,0.016802657
686-629289609382379520	health,arrived,obama,obamacare,uninsured	0.3410872,0.20876509,0.19785224,0.13127573,0.12101975
686-645448596758794240	obamacare,arrived,uninsured,obama,health	0.5967535,0.17871119,0.15193073,0.04770001,0.02490458
686-628305816370716674	arrived,obamacare,obama,health,uninsured	0.79191864,0.11515449,0.047999687,0.02533367,0.019593526
686-629516327384948737	obamacare,health,arrived,obama,uninsured	0.84452814,0.06879864,0.04797368,0.028155455,0.010544109
686-638449129128128512	obama,arrived,obamacare,uninsured,health	0.36835882,0.26936278,0.22702503,0.088424735,0.046828646
686-627831003545907200	obamacare,uninsured,obama,health,arrived	0.331643,0.2815853,0.20918666,0.16346747,0.014117586
686-616420928487075840	health,uninsured,obamacare,arrived,obama	0.37074292,0.28639296,0.1640491,0.14346571,0.035349306
686-625397258394054656	arrived,obamacare,obama,health,uninsured	0.44162396,0.32705405,0.10153322,0.06864775,0.061141018
686-648417242170822656	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648417232125599745	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-636791715005792256	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-628290538291249153	obama,arrived,obamacare,health,uninsured	0.32534504,0.2698351,0.262638,0.09512419,0.047057644
686-645517807707287552	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-635109768575733760	uninsured,health,obamacare,arrived,obama	0.5392791,0.2447332,0.10966107,0.06497842,0.041348174
686-616076282468499456	arrived,obamacare,health,obama,uninsured	0.26755223,0.24874894,0.24628812,0.120429546,0.11698116
686-625960912936116224	uninsured,arrived,obama,obamacare,health	0.65738964,0.21871786,0.051145755,0.050955795,0.02179096
686-642529922951573504	obama,health,obamacare,arrived,uninsured	0.96966666,0.016447766,0.010532919,0.0022601446,0.0010925188
686-618762294781153281	obamacare,uninsured,arrived,health,obama	0.61141413,0.14720182,0.14719431,0.057368837,0.036820862
686-621681298894155777	arrived,uninsured,obamacare,obama,health	0.41229773,0.2866329,0.17529851,0.07016383,0.055607047
686-632917169219592192	health,obamacare,obama,arrived,uninsured	0.63719344,0.27616817,0.04209764,0.027630534,0.01691022
686-632519931263909888	uninsured,health,obama,obamacare,arrived	0.5785177,0.30801332,0.053282533,0.037250225,0.022936236
686-622549382466920448	arrived,health,obama,obamacare,uninsured	0.7341568,0.2015182,0.028535698,0.025336603,0.010452716
686-647045405729886208	uninsured,health,arrived,obamacare,obama	0.37489754,0.20998698,0.19465983,0.15922678,0.061228864
686-634808409968148480	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-636412464880488448	obama,obamacare,arrived,uninsured,health	0.5514006,0.14847948,0.14066857,0.13844848,0.021002835
686-636970980137664512	obamacare,health,uninsured,obama,arrived	0.54141825,0.33502287,0.08888575,0.023738679,0.0109344525
686-646605059497656320	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-636612829429153792	uninsured,obamacare,obama,health,arrived	0.58146286,0.32314807,0.041311517,0.03332137,0.020756163
686-628938207732744193	arrived,obama,obamacare,health,uninsured	0.92405427,0.032053743,0.016301978,0.015804315,0.011785715
686-628954568085278720	arrived,uninsured,health,obama,obamacare	0.721024,0.14833601,0.05632427,0.047728647,0.026587103
686-626728824554717185	uninsured,obamacare,health,obama,arrived	0.41383177,0.23379725,0.17718713,0.090101615,0.085082226
686-624852804876812289	obama,obamacare,health,arrived,uninsured	0.2694279,0.19165179,0.18789658,0.18200368,0.16902007
686-621828058668908545	obamacare,obama,arrived,health,uninsured	0.67336845,0.116701424,0.106390715,0.059829168,0.04371024
686-631643112574742529	obamacare,obama,arrived,health,uninsured	0.89075047,0.03556523,0.035176165,0.023768928,0.01473922
686-628342632662568960	health,uninsured,arrived,obamacare,obama	0.44397274,0.19773634,0.16117485,0.12800215,0.06911391
686-624331682796183552	uninsured,obamacare,health,obama,arrived	0.2956533,0.29512635,0.28019425,0.070372686,0.058653403
686-636614063213146112	health,obamacare,obama,arrived,uninsured	0.6941383,0.19492795,0.05568077,0.034695715,0.020557255
686-646606317814026240	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-633771241044885504	health,uninsured,obamacare,obama,arrived	0.3006978,0.2675667,0.17441332,0.15455396,0.10276819
686-647513044042412032	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-628397080306958336	arrived,obamacare,obama,health,uninsured	0.58649516,0.22752869,0.13325998,0.031255987,0.021460196
686-648866632899559424	obamacare,obama,health,arrived,uninsured	0.82361716,0.06560541,0.039944462,0.037158716,0.033674236
686-619573283302805504	health,obama,obamacare,arrived,uninsured	0.8619496,0.05560805,0.03612826,0.023834148,0.022479938
686-631008274171731969	health,obamacare,arrived,uninsured,obama	0.3240647,0.2196093,0.19816795,0.18491402,0.073244005
686-624426786999263232	uninsured,arrived,health,obama,obamacare	0.49573573,0.20585807,0.16469869,0.08414858,0.04955894
686-636539591206436865	uninsured,health,arrived,obama,obamacare	0.4243784,0.42089045,0.08376563,0.04338623,0.02757928
686-639221704678621184	uninsured,health,arrived,obama,obamacare	0.68898404,0.17096321,0.061250154,0.043641336,0.035161275
686-627656804550451200	uninsured,obamacare,obama,health,arrived	0.48380157,0.21218336,0.15812434,0.09956084,0.046329893
686-625986632852836352	uninsured,health,obamacare,arrived,obama	0.30293298,0.29727045,0.21518555,0.12179194,0.0628191
686-635852942864584704	health,uninsured,obamacare,arrived,obama	0.3662026,0.3182864,0.13166842,0.12984002,0.054002583
686-633147354712002560	health,uninsured,arrived,obamacare,obama	0.5370131,0.16115564,0.15240382,0.10112684,0.0483006
686-647329922596208640	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-647035700236406784	obamacare,uninsured,obama,arrived,health	0.26574713,0.25112,0.24596262,0.16888563,0.06828462
686-620299327391580162	uninsured,arrived,obamacare,health,obama	0.56828964,0.15485013,0.14264928,0.08520677,0.049004205
686-646788474067025920	uninsured,arrived,obamacare,health,obama	0.6991355,0.13223201,0.12928997,0.037114214,0.0022283457
686-646604715174707201	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-615274305283227648	obamacare,uninsured,health,obama,arrived	0.551336,0.28092986,0.098968185,0.043275047,0.025490897
686-629474099362840576	uninsured,obamacare,arrived,obama,health	0.5477204,0.3102762,0.0790942,0.036594965,0.026314221
686-646474914237652993	uninsured,health,obamacare,obama,arrived	0.54068047,0.25168923,0.1541795,0.027418738,0.026032072
686-639931020549222401	uninsured,obama,obamacare,health,arrived	0.9118167,0.036407992,0.018384583,0.01784506,0.015545624
686-631094827959107584	obamacare,arrived,obama,health,uninsured	0.69690466,0.23446332,0.03528309,0.019876743,0.013472189
686-621517743070806017	arrived,obama,uninsured,obamacare,health	0.7334565,0.1491843,0.07659173,0.02276292,0.018004585
686-620723713357430784	health,obamacare,obama,arrived,uninsured	0.44805574,0.35287952,0.09603848,0.059941202,0.043085054
686-646424123019816960	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-630818093384790016	obamacare,arrived,uninsured,obama,health	0.39423588,0.28956866,0.17652337,0.07191432,0.06775776
686-633282609548627968	health,uninsured,obamacare,obama,arrived	0.42754573,0.32563314,0.16688664,0.046952326,0.032982167
686-629414013680648192	arrived,obamacare,health,obama,uninsured	0.6017885,0.23564142,0.06420162,0.062799886,0.035568535
686-629799036799684608	arrived,obamacare,health,obama,uninsured	0.7465977,0.13135542,0.072967514,0.03579448,0.013284884
686-648417146796511233	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-627681179240546304	arrived,uninsured,obama,health,obamacare	0.6815539,0.2271054,0.03136577,0.030805336,0.029169576
686-645880366734045184	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-624604312379850756	uninsured,health,obama,obamacare,arrived	0.5128938,0.19899555,0.15440325,0.07705063,0.05665678
686-648236546831876098	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-646786582083600384	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648975073265627136	health,obamacare,obama,arrived,uninsured	0.8614288,0.062485814,0.041932356,0.017800918,0.016352138
686-638346619746975744	arrived,health,obama,obamacare,uninsured	0.4961824,0.21617182,0.11930518,0.09044051,0.07790009
686-622568770767323136	obama,obamacare,health,arrived,uninsured	0.32682645,0.3066432,0.23576918,0.08107333,0.049687844
686-646790005780668417	arrived,obamacare,health,obama,uninsured	0.42285684,0.3002012,0.12212937,0.081426166,0.07338642
686-644293045463023616	obama,arrived,obamacare,health,uninsured	0.76020235,0.13738748,0.06807936,0.019344147,0.014986652
686-632509137939644417	obamacare,obama,health,arrived,uninsured	0.89236516,0.04700651,0.023129193,0.020245297,0.017253848
686-648274436483715072	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-635114146544111616	uninsured,obamacare,health,arrived,obama	0.6001526,0.27049524,0.057090618,0.03677684,0.03548474
686-637121554120359936	uninsured,obamacare,health,arrived,obama	0.53015316,0.17997369,0.13617484,0.08418667,0.06951164
686-634913016287358976	obamacare,arrived,obama,health,uninsured	0.7559899,0.18405749,0.031716153,0.016458599,0.011777846
686-634487826877386752	obamacare,obama,arrived,health,uninsured	0.99702656,0.0010496987,6.6536607E-4,6.308324E-4,6.275207E-4
686-631639719256788992	obamacare,obama,arrived,health,uninsured	0.89075047,0.03556523,0.035176165,0.023768928,0.01473922
686-626004421340753920	arrived,uninsured,obamacare,obama,health	0.47893146,0.29849568,0.1326155,0.04677855,0.043178815
686-629647534881832960	arrived,health,uninsured,obama,obamacare	0.49547765,0.3325023,0.088148355,0.048484754,0.03538693
686-646786675411038208	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-618835462384394240	arrived,obamacare,obama,health,uninsured	0.33888605,0.33222947,0.13832672,0.10892269,0.08163506
686-633502730200481793	obama,obamacare,arrived,uninsured,health	0.5514006,0.14847948,0.14066857,0.13844848,0.021002835
686-648054725426946048	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-616691759892967424	health,uninsured,obamacare,arrived,obama	0.49790952,0.2538118,0.1265119,0.08458721,0.037179556
686-625766628307832832	obamacare,arrived,health,uninsured,obama	0.3527601,0.29684106,0.14599593,0.14147234,0.06293059
686-643796404448575488	uninsured,arrived,obama,obamacare,health	0.38355473,0.31655756,0.11675687,0.094049215,0.08908165
686-636688577393332224	arrived,health,obamacare,obama,uninsured	0.4305154,0.3458139,0.11528534,0.070011854,0.038373515
686-648453538314518528	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-624373772829728768	uninsured,arrived,obama,health,obamacare	0.704463,0.1508471,0.0742307,0.04021714,0.03024206
686-647501059842150400	uninsured,obamacare,obama,health,arrived	0.4085595,0.24337855,0.1720904,0.1382115,0.037760034
686-644639946389757952	health,uninsured,obama,obamacare,arrived	0.53904,0.3469834,0.057349026,0.030001175,0.026626378
686-639433382200373249	health,obamacare,arrived,uninsured,obama	0.4168237,0.33820868,0.12401061,0.066420294,0.05453673
686-624031822838661120	arrived,health,obama,obamacare,uninsured	0.7258923,0.16172172,0.053288825,0.032122564,0.02697459
686-640271176678309888	health,uninsured,obamacare,obama,arrived	0.6975998,0.13257585,0.1182894,0.035465732,0.016069164
686-628386478867918852	obamacare,arrived,obama,health,uninsured	0.29244655,0.20753784,0.19307528,0.16906916,0.13787118
686-634896700683874308	obamacare,health,obama,arrived,uninsured	0.61871165,0.26365373,0.056971006,0.03340988,0.027253732
686-632359071991992320	obamacare,arrived,uninsured,health,obama	0.39096737,0.20409012,0.18177076,0.15992,0.06325176
686-636953557271511040	obamacare,uninsured,obama,health,arrived	0.68997455,0.13754582,0.07408788,0.05495976,0.043432
686-643802900397883392	health,uninsured,obamacare,obama,arrived	0.337928,0.19582178,0.172027,0.14843261,0.14579062
686-620612196796600320	uninsured,health,arrived,obama,obamacare	0.5688193,0.31240657,0.04782708,0.042574313,0.028372781
686-629825669200003072	arrived,obamacare,health,obama,uninsured	0.7465977,0.13135542,0.072967514,0.03579448,0.013284884
686-632257267904049152	uninsured,health,arrived,obamacare,obama	0.38110325,0.33682495,0.19305031,0.047466863,0.041554615
686-621173836172627969	uninsured,obamacare,health,obama,arrived	0.28839874,0.2662177,0.17977346,0.15594499,0.109665096
686-638491483637739520	uninsured,arrived,obama,health,obamacare	0.63950944,0.27062836,0.041796286,0.026418313,0.021647613
686-625782309107695616	arrived,uninsured,health,obamacare,obama	0.34793842,0.26927343,0.21507439,0.135201,0.03251275
686-618219450785902592	arrived,obamacare,health,obama,uninsured	0.7759917,0.13026865,0.041769966,0.03591167,0.016058007
686-630507348444852224	health,uninsured,arrived,obamacare,obama	0.5746816,0.17264204,0.16741535,0.043571122,0.041689903
686-632248256760647681	health,arrived,obama,obamacare,uninsured	0.8019095,0.11047307,0.046854768,0.02366075,0.017101912
686-620663612844015616	uninsured,obamacare,health,obama,arrived	0.5830925,0.16468789,0.16202699,0.054243226,0.03594942
686-646504325657792513	uninsured,health,obamacare,arrived,obama	0.34942678,0.23971322,0.2118021,0.11289719,0.08616072
686-629662911191994368	health,obamacare,uninsured,arrived,obama	0.95786726,0.014640611,0.012934486,0.009374284,0.0051833736
686-632512364076621824	arrived,uninsured,obama,obamacare,health	0.5256174,0.23373258,0.12545137,0.062144157,0.05305446
686-615165480521723904	arrived,health,obamacare,uninsured,obama	0.42951822,0.2641638,0.20960046,0.054053895,0.042663604
686-629000012391952384	obamacare,arrived,health,obama,uninsured	0.70007384,0.09880173,0.085335344,0.058165945,0.057623148
686-648236154496544768	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-645445573441531904	uninsured,health,arrived,obamacare,obama	0.27818692,0.27112874,0.18547998,0.1505797,0.11462463
686-648417151292993536	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-626125478135402496	arrived,obama,health,obamacare,uninsured	0.6499304,0.1392207,0.073764905,0.07114014,0.0659438
686-631506217400074240	arrived,health,uninsured,obama,obamacare	0.6243459,0.18752448,0.09606562,0.058151588,0.033912428
686-648980951167401984	obamacare,obama,health,arrived,uninsured	0.8942051,0.04649778,0.02268496,0.019796174,0.016815994
686-644221912592199680	uninsured,health,obama,arrived,obamacare	0.62972057,0.18163908,0.08070655,0.05423199,0.05370184
686-633796835136684032	uninsured,arrived,obama,obamacare,health	0.47588915,0.38207442,0.057899352,0.05277452,0.03136255
686-622111856405147648	arrived,uninsured,obama,obamacare,health	0.5677385,0.35800508,0.036719006,0.019098539,0.018438913
686-647873856963801088	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-625722265997422592	arrived,uninsured,obamacare,health,obama	0.4582322,0.22031161,0.18336906,0.088432096,0.04965504
686-619194910298742785	health,obamacare,obama,arrived,uninsured	0.7348549,0.2053987,0.031232342,0.014278251,0.014235834
686-631783040486772738	health,uninsured,arrived,obama,obamacare	0.419942,0.28275678,0.19156875,0.056673124,0.049059354
686-616393708317978624	health,arrived,obamacare,obama,uninsured	0.6454988,0.15250377,0.14580789,0.040835198,0.015354313
686-615043256997552128	obamacare,obama,health,arrived,uninsured	0.36861452,0.22705343,0.16765277,0.12609428,0.11058501
686-624572828482801664	arrived,obama,obamacare,health,uninsured	0.587207,0.12045019,0.11205222,0.09953097,0.08075962
686-636714226153730048	obamacare,health,arrived,obama,uninsured	0.5652605,0.23560569,0.13379681,0.047649566,0.017687403
686-618765886212673536	obamacare,obama,uninsured,arrived,health	0.66968817,0.15701851,0.06419263,0.056215953,0.05288477
686-641926969878257664	uninsured,obamacare,health,obama,arrived	0.6998293,0.14945346,0.06843275,0.046808306,0.0354762
686-635256523510403073	obamacare,health,obama,arrived,uninsured	0.61871165,0.26365373,0.056971006,0.03340988,0.027253732
686-640634192221597696	health,obamacare,obama,arrived,uninsured	0.39537162,0.39006734,0.11844502,0.051846914,0.044269126
686-647148634086096896	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-619217076234899456	uninsured,arrived,obama,obamacare,health	0.43222734,0.4180897,0.069415994,0.044150487,0.03611649
686-639927577755435008	uninsured,obama,obamacare,health,arrived	0.9118167,0.036407992,0.018384583,0.01784506,0.015545624
686-619169870740070400	health,obamacare,obama,arrived,uninsured	0.7348549,0.2053987,0.031232342,0.014278251,0.014235834
686-626879157931278336	obamacare,health,uninsured,obama,arrived	0.28137028,0.2560076,0.17928442,0.15432167,0.12901603
686-644541438647267328	arrived,uninsured,obama,obamacare,health	0.72736347,0.16042009,0.05062273,0.033926602,0.0276671
686-620659639865200640	obama,arrived,obamacare,health,uninsured	0.54877114,0.26587293,0.15104103,0.019979231,0.014335632
686-635047331658862592	health,obamacare,uninsured,obama,arrived	0.7435108,0.11033836,0.10257917,0.029408082,0.014163593
686-624553535074648065	health,uninsured,obama,obamacare,arrived	0.40712184,0.36346766,0.1012171,0.06656735,0.06162606
686-648417334302896129	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-624945330069442560	arrived,obamacare,obama,health,uninsured	0.534789,0.27567023,0.09198379,0.055457212,0.042099744
686-648054855672528896	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-642004184636780544	health,arrived,obamacare,obama,uninsured	0.40843117,0.30475223,0.22078472,0.041513305,0.024518568
686-631838301197082624	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-644945879917592576	obama,health,obamacare,arrived,uninsured	0.71467966,0.23991014,0.016434144,0.015265099,0.0137109645
686-645699396630282241	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-639175475273699328	obama,obamacare,health,arrived,uninsured	0.8082397,0.1433358,0.018263243,0.016518502,0.013642753
686-649010218052026368	arrived,obamacare,uninsured,health,obama	0.3708895,0.36934534,0.18764141,0.03947606,0.032647688
686-623647313463001088	arrived,uninsured,obama,obamacare,health	0.5677385,0.35800508,0.036719006,0.019098539,0.018438913
686-645774356526723073	obamacare,health,arrived,obama,uninsured	0.4890395,0.22899196,0.13420753,0.08167118,0.06608983
686-621740474181652480	health,obama,obamacare,arrived,uninsured	0.80011946,0.086137526,0.044574805,0.037718553,0.031449668
686-627687477915074560	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-629039021293830145	uninsured,obamacare,arrived,obama,health	0.6119442,0.17613469,0.124910116,0.056170207,0.030840816
686-621435331104112640	uninsured,obama,obamacare,health,arrived	0.8924784,0.03986911,0.023603741,0.023115005,0.020933751
686-623609910501052416	arrived,obamacare,obama,health,uninsured	0.71720564,0.16001305,0.09898772,0.012636036,0.011157539
686-638794344389083136	arrived,health,obamacare,uninsured,obama	0.3732951,0.28254294,0.15737203,0.14710087,0.039689064
686-631330991991341056	health,uninsured,obama,obamacare,arrived	0.6645202,0.16154416,0.084020264,0.050226487,0.039688878
686-640482566282326016	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-631177114822295552	health,uninsured,obama,obamacare,arrived	0.739911,0.15444429,0.048372053,0.030280191,0.026992416
686-636229657411497984	uninsured,obamacare,arrived,obama,health	0.3797643,0.3464597,0.19560057,0.04032999,0.037845463
686-636695656510435328	health,uninsured,arrived,obamacare,obama	0.3739127,0.30256897,0.21369943,0.06003847,0.049780443
686-648387850120118272	obamacare,obama,health,arrived,uninsured	0.89027107,0.045109708,0.024081271,0.021622362,0.018915597
686-648901455684968448	obama,obamacare,health,arrived,uninsured	0.3606954,0.18113519,0.1754122,0.15290786,0.12984937
686-622320169931644928	arrived,obama,health,obamacare,uninsured	0.87057596,0.047715858,0.032522712,0.027764602,0.021420864
686-641701305665216512	uninsured,arrived,health,obama,obamacare	0.45585006,0.33230963,0.14087678,0.04254369,0.028419835
686-648478684072947712	health,obamacare,obama,arrived,uninsured	0.7301373,0.17824835,0.04903123,0.023172729,0.01941039
686-620616384070963201	uninsured,health,obamacare,arrived,obama	0.44495353,0.22218147,0.17589824,0.120268606,0.036698155
686-642206846678208512	arrived,health,obama,obamacare,uninsured	0.4767421,0.27081996,0.11096283,0.07668878,0.06478633
686-648055023847387136	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-649050765798043649	obamacare,health,obama,uninsured,arrived	0.68534696,0.23432145,0.035763707,0.023672365,0.02089552
686-623263936884817920	obamacare,obama,health,arrived,uninsured	0.87011737,0.056638166,0.027270172,0.025752166,0.020222113
686-640978218997055488	health,obamacare,arrived,uninsured,obama	0.35196364,0.26412445,0.23637626,0.10222743,0.045308203
686-644643782403559424	health,uninsured,obama,arrived,obamacare	0.7144438,0.21270429,0.032458723,0.021051254,0.019341918
686-630928302589382656	arrived,obama,obamacare,health,uninsured	0.9226565,0.028530214,0.024365684,0.014001151,0.010446482
686-644219166241615872	health,uninsured,obamacare,obama,arrived	0.6975998,0.13257585,0.1182894,0.035465732,0.016069164
686-634378606852988928	uninsured,obamacare,obama,health,arrived	0.6184132,0.29942673,0.04149556,0.020896217,0.019768283
686-639455620878483456	arrived,obama,obamacare,health,uninsured	0.75163865,0.08822773,0.05705414,0.055378173,0.047701333
686-623546105494667264	uninsured,arrived,health,obamacare,obama	0.44015837,0.20401132,0.17090708,0.14419225,0.040730983
686-640282366745907200	obamacare,obama,arrived,health,uninsured	0.99702656,0.0010496987,6.6536607E-4,6.308324E-4,6.275207E-4
686-646242335865573376	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-642748909543145472	obamacare,obama,health,arrived,uninsured	0.89236516,0.04700651,0.023129193,0.020245297,0.017253848
686-639123946114297856	obamacare,arrived,obama,health,uninsured	0.80255604,0.12895589,0.03567236,0.019111384,0.013704343
686-639431802206052352	obamacare,health,uninsured,arrived,obama	0.33774838,0.2543625,0.19619246,0.17101657,0.040680103
686-646939513382526976	uninsured,obamacare,obama,health,arrived	0.79250216,0.06425771,0.059902024,0.04662768,0.03671045
686-625626310681886721	arrived,obamacare,health,uninsured,obama	0.56721467,0.24858296,0.07142411,0.060739897,0.052038383
686-630162802099884033	arrived,health,obama,obamacare,uninsured	0.7341568,0.2015182,0.028535698,0.025336603,0.010452716
686-625310537232977922	arrived,obamacare,obama,health,uninsured	0.53997517,0.27143893,0.0705848,0.0669882,0.05101291
686-625767044089290752	arrived,uninsured,obamacare,health,obama	0.5789218,0.17414765,0.15695171,0.048266463,0.041712377
686-641960885351772160	obamacare,obama,arrived,uninsured,health	0.43011972,0.2074,0.17259416,0.1326462,0.05723992
686-632972414993850368	arrived,obama,obamacare,health,uninsured	0.9226565,0.028530214,0.024365684,0.014001151,0.010446482
686-644341785163075584	obamacare,uninsured,obama,health,arrived	0.38350567,0.27946746,0.123734355,0.10770345,0.105589055
686-646061746503970816	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-628373248929959936	obamacare,arrived,obama,health,uninsured	0.65176076,0.26871508,0.041365363,0.01994015,0.018218625
686-631516594397536256	obamacare,obama,arrived,health,uninsured	0.99702656,0.0010496987,6.6536607E-4,6.308324E-4,6.275207E-4
686-646604686552776704	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-617832419744423936	arrived,obamacare,obama,health,uninsured	0.3908683,0.33862472,0.11480858,0.10033385,0.055364534
686-646864345201287172	health,arrived,uninsured,obama,obamacare	0.5700636,0.3007683,0.06742286,0.03663418,0.02511109
686-620188922904051712	arrived,obama,health,obamacare,uninsured	0.8488858,0.13911791,0.010986765,5.3718255E-4,4.7236437E-4
686-645093666265165824	health,uninsured,obama,arrived,obamacare	0.60522705,0.3221456,0.032695748,0.020895608,0.019035958
686-633460345420431360	uninsured,health,obama,arrived,obamacare	0.5883929,0.25963137,0.06912878,0.04607793,0.036769025
686-633497262979719168	arrived,uninsured,obamacare,obama,health	0.42586914,0.38676393,0.09170548,0.05905226,0.036609218
686-618784859540975616	arrived,uninsured,health,obama,obamacare	0.6546289,0.1682373,0.11292312,0.042165507,0.022045199
686-619281576199766018	uninsured,arrived,obama,obamacare,health	0.6148549,0.23994797,0.07154222,0.037266146,0.036388814
686-647873599722774529	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-645708391562653696	obama,health,uninsured,arrived,obamacare	0.66815805,0.18758775,0.1103157,0.01959187,0.014346639
686-646605849352245249	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-639422883492704256	arrived,uninsured,health,obamacare,obama	0.47499725,0.229746,0.14705294,0.10544247,0.042761326
686-637965286906310656	uninsured,arrived,obamacare,health,obama	0.50859314,0.24810918,0.13411877,0.07807061,0.031108318
686-645699486757445635	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-631600311560458240	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-631642116695957504	obamacare,arrived,obama,health,uninsured	0.874168,0.040903304,0.04062632,0.02742553,0.016876835
686-629412748619706369	uninsured,obamacare,health,arrived,obama	0.4595875,0.32259843,0.13965541,0.03921217,0.038946472
686-617636551997009920	obama,obamacare,health,arrived,uninsured	0.2694279,0.19165179,0.18789658,0.18200368,0.16902007
686-624309409213091840	arrived,health,uninsured,obama,obamacare	0.61186635,0.22738793,0.07109455,0.049324676,0.040326484
686-629473451414306816	uninsured,obamacare,arrived,obama,health	0.5477204,0.3102762,0.0790942,0.036594965,0.026314221
686-628480130302611457	uninsured,arrived,health,obamacare,obama	0.3861706,0.3304917,0.21729258,0.03335606,0.03268909
686-635785982013480960	uninsured,obama,obamacare,health,arrived	0.9112844,0.03656067,0.018527273,0.01794408,0.015683576
686-645951962417111040	health,arrived,obama,uninsured,obamacare	0.5075942,0.31000623,0.06977876,0.06907499,0.04354581
686-647550624771481600	obamacare,health,obama,arrived,uninsured	0.6944245,0.099138595,0.07756619,0.067409314,0.061461356
686-619125775648845824	obamacare,health,uninsured,obama,arrived	0.38729933,0.3409348,0.18822153,0.05702981,0.026514515
686-624307346445996032	arrived,uninsured,obamacare,obama,health	0.737597,0.15092205,0.04833888,0.041963167,0.021178938
686-648054756892475393	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-627279584350703616	uninsured,arrived,obama,health,obamacare	0.63950944,0.27062836,0.041796286,0.026418313,0.021647613
686-643062015565520896	uninsured,health,arrived,obamacare,obama	0.29871053,0.28734025,0.281596,0.09015755,0.042195655
686-637339822554660864	health,uninsured,obamacare,obama,arrived	0.6975998,0.13257585,0.1182894,0.035465732,0.016069164
686-638424775744950272	arrived,health,obamacare,uninsured,obama	0.40493077,0.26511678,0.20478877,0.08524914,0.03991453
686-641472846443577345	health,obama,obamacare,arrived,uninsured	0.43606895,0.3346483,0.08059614,0.07848707,0.07019954
686-617915085298601984	arrived,health,obamacare,obama,uninsured	0.4750683,0.18089606,0.18086067,0.094035015,0.06913997
686-645761415920271360	obamacare,obama,health,arrived,uninsured	0.9213049,0.03107524,0.022878366,0.013438124,0.011303392
686-636721584082817024	obama,obamacare,health,arrived,uninsured	0.5291366,0.3009778,0.16441183,0.0028339217,0.0026398853
686-647329868284231680	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-623878866378092544	obamacare,arrived,health,obama,uninsured	0.46079835,0.26679155,0.13036758,0.093429215,0.048613317
686-641039871818137600	uninsured,health,obama,obamacare,arrived	0.5845438,0.3166053,0.048874073,0.02715379,0.022823002
686-624942576710189056	uninsured,obamacare,health,obama,arrived	0.43987274,0.23410387,0.22117299,0.068538435,0.036311958
686-620728841254768640	health,obamacare,obama,arrived,uninsured	0.44805574,0.35287952,0.09603848,0.059941202,0.043085054
686-638878055616741376	health,arrived,obamacare,uninsured,obama	0.53357846,0.18130922,0.12727171,0.11922081,0.0386198
686-648054705843662848	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648722641755332608	arrived,obamacare,health,obama,uninsured	0.47379822,0.338447,0.13214348,0.03757626,0.018035052
686-638854247166160896	uninsured,arrived,obama,obamacare,health	0.47547084,0.2878186,0.09031239,0.08068949,0.06570868
686-616722506062258176	health,uninsured,arrived,obamacare,obama	0.5760082,0.20026897,0.16275364,0.041897323,0.019071883
686-628376860615794688	arrived,obama,health,obamacare,uninsured	0.92789054,0.02888371,0.015996309,0.014979414,0.012250027
686-648509398248099840	arrived,obamacare,obama,health,uninsured	0.59271586,0.14625661,0.12401083,0.079994254,0.057022456
686-648235810563731456	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-646424156989456384	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-641148457533575168	obamacare,arrived,obama,health,uninsured	0.78339845,0.1402075,0.040667925,0.020346457,0.0153796645
686-627317333736955905	arrived,obama,obamacare,uninsured,health	0.37387156,0.31085408,0.17970484,0.098037414,0.037532087
686-644145930384592897	uninsured,arrived,obama,health,obamacare	0.44219398,0.40460953,0.05982778,0.050873328,0.042495385
686-620017065898815488	arrived,obamacare,uninsured,health,obama	0.808733,0.072297834,0.049920764,0.03854751,0.030500924
686-634547324073570304	health,arrived,obama,obamacare,uninsured	0.8970114,0.048097357,0.028631462,0.015438322,0.010821432
686-619568876083351553	health,obama,obamacare,arrived,uninsured	0.8619496,0.05560805,0.03612826,0.023834148,0.022479938
686-625337580905598976	obamacare,obama,arrived,uninsured,health	0.556402,0.18168981,0.10973949,0.096955135,0.055213545
686-627627202964656128	obamacare,uninsured,obama,health,arrived	0.64939564,0.26807278,0.041486923,0.021162558,0.019882092
686-626479614781689856	uninsured,health,arrived,obama,obamacare	0.453688,0.26528004,0.19343969,0.05775541,0.029836847
686-629506152745857025	obamacare,arrived,uninsured,obama,health	0.4660521,0.30098212,0.1562354,0.047389157,0.029341247
686-645880092044849152	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-627508698412384256	uninsured,arrived,health,obama,obamacare	0.4515106,0.3443284,0.13866434,0.042059302,0.023437379
686-645336409696440320	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648062061826588672	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-629220994708668416	arrived,obama,obamacare,health,uninsured	0.9226565,0.028530214,0.024365684,0.014001151,0.010446482
686-627988698089418752	uninsured,arrived,obama,health,obamacare	0.9081763,0.031053852,0.026603237,0.018703368,0.015463238
686-631897954815766529	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-633247476913446913	uninsured,arrived,obama,health,obamacare	0.63950944,0.27062836,0.041796286,0.026418313,0.021647613
686-623329048807260160	arrived,obamacare,health,obama,uninsured	0.44485316,0.30551636,0.18096386,0.048059776,0.020606838
686-638325526218805248	arrived,obamacare,obama,health,uninsured	0.28017712,0.26637304,0.21145721,0.17561638,0.06637626
686-648725693505757184	obamacare,obama,health,arrived,uninsured	0.82361716,0.06560541,0.039944462,0.037158716,0.033674236
686-643644394688540672	health,obamacare,obama,uninsured,arrived	0.4106006,0.28294146,0.12106676,0.102077305,0.083313875
686-642939065180884992	arrived,health,obama,uninsured,obamacare	0.630588,0.15743424,0.08519359,0.06442403,0.06236017
686-631678359756410882	health,obama,obamacare,arrived,uninsured	0.891265,0.04668247,0.023493225,0.019848175,0.018711176
686-627514070501961728	health,uninsured,obama,arrived,obamacare	0.64778244,0.24703826,0.04330566,0.036499128,0.025374485
686-627951817654013953	arrived,health,uninsured,obama,obamacare	0.7255293,0.14864916,0.061393622,0.041344773,0.023083167
686-625861839591616512	uninsured,arrived,obamacare,obama,health	0.6153799,0.21900007,0.11126388,0.03325101,0.021105139
686-638789495446466560	arrived,obamacare,uninsured,obama,health	0.82718015,0.092686564,0.03825358,0.02390616,0.017973535
686-649000506665271297	obamacare,obama,health,arrived,uninsured	0.85363024,0.05491414,0.033070706,0.0306645,0.027720386
686-640174235466371073	obamacare,arrived,health,obama,uninsured	0.40997493,0.28998002,0.16754873,0.0907892,0.041707125
686-647511643186835456	uninsured,arrived,obama,obamacare,health	0.5941386,0.14915985,0.13521668,0.09979674,0.021688111
686-636687784401436672	health,arrived,uninsured,obama,obamacare	0.49786988,0.3670246,0.06242893,0.043177962,0.02949863
686-620428684176945152	obamacare,uninsured,obama,arrived,health	0.7485281,0.15196165,0.047459316,0.027796283,0.02425462
686-615295800265035776	uninsured,arrived,obama,obamacare,health	0.6560467,0.16767259,0.12698779,0.02487921,0.024413735
686-625696309471633408	uninsured,obamacare,obama,arrived,health	0.4140525,0.18950857,0.17966081,0.1791546,0.03762352
686-632671908690022400	obamacare,arrived,obama,health,uninsured	0.83750093,0.096888244,0.035301737,0.017404925,0.012904184
686-648856135265456129	obamacare,obama,health,arrived,uninsured	0.86558086,0.054291528,0.029671442,0.026825465,0.023630703
686-626155814944837632	health,obamacare,arrived,obama,uninsured	0.31424412,0.20082507,0.19096604,0.15061584,0.14334892
686-636217700574867456	uninsured,health,arrived,obama,obamacare	0.6084599,0.1276989,0.12451556,0.11803697,0.021288672
686-645577138519715840	uninsured,obamacare,obama,arrived,health	0.3207335,0.30177155,0.16565433,0.1507517,0.06108893
686-630151279118020608	arrived,obamacare,health,obama,uninsured	0.7465977,0.13135542,0.072967514,0.03579448,0.013284884
686-618921498443706368	uninsured,arrived,health,obamacare,obama	0.42363232,0.15373167,0.14718302,0.14130522,0.13414778
686-626779917091385344	uninsured,health,obama,arrived,obamacare	0.7926479,0.061811518,0.058161695,0.05003894,0.03733996
686-620004446085365760	uninsured,arrived,obama,health,obamacare	0.6093123,0.27750072,0.046905443,0.037121564,0.029160006
686-624331499589005312	uninsured,arrived,obamacare,obama,health	0.5402402,0.22433187,0.105772346,0.07152515,0.058130406
686-624400558426845184	uninsured,obamacare,health,obama,arrived	0.59700626,0.18410574,0.11910851,0.05271945,0.04706001
686-639269852100849664	arrived,uninsured,obama,health,obamacare	0.6428198,0.2212222,0.0575397,0.040710345,0.037707895
686-633728384229441536	obamacare,obama,health,arrived,uninsured	0.9213049,0.03107524,0.022878366,0.013438124,0.011303392
686-646061729865031680	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-626389371839590401	health,obama,obamacare,arrived,uninsured	0.3549599,0.25488132,0.14970037,0.122225344,0.11823306
686-630823637097037826	uninsured,health,obama,obamacare,arrived	0.7205953,0.21726078,0.032160193,0.016221268,0.013762492
686-624251377162674176	uninsured,obama,obamacare,health,arrived	0.5115301,0.19022639,0.1495296,0.09799779,0.0507161
686-617739259001352192	uninsured,health,obamacare,arrived,obama	0.27468365,0.22942868,0.22910996,0.18821266,0.07856506
686-638462214979067904	obama,uninsured,health,arrived,obamacare	0.5327424,0.15749663,0.15318948,0.120586015,0.035985477
686-640256798075674624	arrived,uninsured,obama,health,obamacare	0.43600962,0.2811288,0.13699621,0.11801799,0.027847396
686-628960043568791552	arrived,health,obamacare,obama,uninsured	0.46651357,0.35663357,0.10867084,0.048313785,0.019868238
686-631186988117438464	obamacare,obama,arrived,health,uninsured	0.49493068,0.1978669,0.19629623,0.07470914,0.036197055
686-637251985952100352	health,obama,uninsured,obamacare,arrived	0.75949824,0.12858799,0.04874933,0.035560828,0.027603589
686-646061432950398980	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-629484598112743424	uninsured,health,obama,obamacare,arrived	0.7875299,0.12001624,0.04429887,0.026798598,0.021356411
686-619580984690761728	health,obama,obamacare,arrived,uninsured	0.8619496,0.05560805,0.03612826,0.023834148,0.022479938
686-648266723762786304	obamacare,obama,health,arrived,uninsured	0.8481778,0.05906808,0.03391013,0.031095922,0.027748067
686-625394056768589824	obamacare,obama,arrived,health,uninsured	0.58151853,0.16947906,0.14659758,0.08608703,0.01631782
686-644207842887602176	arrived,obamacare,uninsured,obama,health	0.7050625,0.15235531,0.069766976,0.04128589,0.03152934
686-629477926853935104	arrived,obamacare,uninsured,health,obama	0.40903372,0.22600065,0.18789315,0.12684251,0.050229967
686-625443587380019200	obamacare,health,uninsured,arrived,obama	0.5598625,0.18908255,0.1175325,0.07651854,0.057003904
686-648287242146947072	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-624348701717348352	uninsured,arrived,obama,obamacare,health	0.6830981,0.18934709,0.05956954,0.03510173,0.03288357
686-625432053048217600	uninsured,obama,health,obamacare,arrived	0.27766567,0.23531316,0.21738872,0.15005721,0.119575225
686-639601880293879809	health,arrived,obamacare,uninsured,obama	0.97181535,0.026137685,0.0013236101,4.0595914E-4,3.173791E-4
686-623832193744252929	health,uninsured,arrived,obama,obamacare	0.43172994,0.23846337,0.21521793,0.068749316,0.04583943
686-643100037296222212	health,arrived,uninsured,obama,obamacare	0.5172001,0.2202469,0.20504278,0.035416454,0.022093736
686-621482764378902528	arrived,uninsured,obamacare,obama,health	0.5532616,0.1959143,0.13545081,0.060259502,0.055113807
686-631289331445927936	obamacare,obama,arrived,uninsured,health	0.2872963,0.28197438,0.18034834,0.17623548,0.07414551
686-645069809114292224	arrived,obamacare,uninsured,obama,health	0.7050625,0.15235531,0.069766976,0.04128589,0.03152934
686-616735228640522240	obamacare,health,uninsured,obama,arrived	0.5153368,0.2375921,0.19440788,0.036347713,0.016315501
686-634044317678575616	arrived,obamacare,uninsured,health,obama	0.27136374,0.24440727,0.20213751,0.18646589,0.09562559
686-645453694348095488	health,uninsured,obama,obamacare,arrived	0.7216381,0.13024665,0.053653147,0.05180556,0.04265654
686-617044578370088960	obamacare,health,arrived,uninsured,obama	0.5705539,0.30193257,0.10915339,0.015503597,0.0028565007
686-628352535917654016	obamacare,arrived,obama,uninsured,health	0.6472156,0.20370263,0.05975166,0.054800544,0.03452955
686-635851206053597184	uninsured,obama,health,obamacare,arrived	0.31349164,0.22095141,0.16076082,0.15703177,0.14776435
686-641371308647968769	uninsured,obama,obamacare,health,arrived	0.9215532,0.03239147,0.016356833,0.01586731,0.0138311675
686-616691672735354880	uninsured,health,arrived,obama,obamacare	0.5227911,0.23767892,0.08860326,0.07986482,0.071061924
686-626388450191798272	arrived,uninsured,obamacare,health,obama	0.4849607,0.17470063,0.16927262,0.10970308,0.061362963
686-647511303125229568	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-616767492388716544	health,arrived,obama,uninsured,obamacare	0.4462023,0.18826762,0.1716233,0.11670378,0.077203006
686-638883583357227008	health,uninsured,arrived,obama,obamacare	0.45990166,0.24279715,0.20057485,0.061516672,0.035209686
686-643230188445167616	arrived,uninsured,obamacare,obama,health	0.32960224,0.2381756,0.16492064,0.14138402,0.12591748
686-620549266251972608	uninsured,obamacare,arrived,health,obama	0.37362313,0.28936484,0.2333033,0.060742274,0.042966466
686-637731701230178304	obama,arrived,health,uninsured,obamacare	0.8323537,0.08736094,0.05606291,0.018543262,0.005679196
686-649040252405837824	obamacare,obama,health,arrived,uninsured	0.85363024,0.05491414,0.033070706,0.0306645,0.027720386
686-631166017985753088	health,uninsured,arrived,obama,obamacare	0.5778503,0.289127,0.06823763,0.036672596,0.028112518
686-624959175718772737	arrived,health,obama,uninsured,obamacare	0.5976199,0.1322004,0.106137134,0.08660075,0.077441834
686-644923771074293760	arrived,uninsured,obama,obamacare,health	0.57660764,0.17037924,0.16252832,0.04916927,0.041315507
686-629674015016243200	health,obama,obamacare,arrived,uninsured	0.9157882,0.03595147,0.018660242,0.015777847,0.013822298
686-617500182951768065	obamacare,obama,health,arrived,uninsured	0.8920269,0.0470931,0.023225792,0.020321244,0.017332938
686-633805573360783360	obamacare,obama,health,arrived,uninsured	0.9333437,0.028110007,0.015897142,0.012202508,0.010446609
686-630940923585765376	obamacare,arrived,obama,health,uninsured	0.83121455,0.07623445,0.048763886,0.023843788,0.019943338
686-645064666750652416	uninsured,health,obamacare,arrived,obama	0.29556996,0.2516685,0.1878106,0.18492973,0.08002119
686-624622839673548800	arrived,uninsured,health,obama,obamacare	0.55526024,0.18042913,0.11819022,0.08633317,0.05978722
686-629341023697793024	obamacare,uninsured,arrived,health,obama	0.47350356,0.31045148,0.1707634,0.02827085,0.017010694
686-645718702701211648	uninsured,obama,obamacare,health,arrived	0.9215532,0.03239147,0.016356833,0.01586731,0.0138311675
686-618915749923586048	obamacare,arrived,obama,health,uninsured	0.45962584,0.35281482,0.080454886,0.056863472,0.05024099
686-623283146251988993	obamacare,health,arrived,uninsured,obama	0.3296323,0.28376117,0.24623184,0.10367961,0.036695067
686-626796750255198208	obama,health,uninsured,obamacare,arrived	0.5459183,0.3129498,0.07806391,0.034560163,0.028507808
686-624263363602722816	arrived,uninsured,health,obamacare,obama	0.6011128,0.26686868,0.119305454,0.010971651,0.0017414399
686-646604755226095616	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-622128450980184065	arrived,obamacare,health,uninsured,obama	0.39627126,0.1842376,0.18259056,0.17793839,0.05896221
686-630508022519861248	obamacare,uninsured,arrived,health,obama	0.8659305,0.13060988,0.0014747083,0.0012210977,7.638369E-4
686-615214410160705536	obamacare,health,uninsured,arrived,obama	0.292009,0.22834472,0.19356908,0.19013654,0.095940664
686-629547936435716096	obamacare,arrived,uninsured,health,obama	0.46466517,0.31851876,0.113074325,0.09278523,0.010956519
686-640859540158836736	obama,arrived,obamacare,health,uninsured	0.54877114,0.26587293,0.15104103,0.019979231,0.014335632
686-636893039047364608	arrived,uninsured,health,obama,obamacare	0.32046655,0.26355934,0.22229497,0.10670169,0.08697745
686-629494128837988352	uninsured,obamacare,health,obama,arrived	0.71565205,0.12095759,0.11165102,0.033101548,0.018637793
686-616386057026736128	arrived,obamacare,obama,health,uninsured	0.50238043,0.29512656,0.091566086,0.06434591,0.046581034
686-646061528333053953	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-626146503141134336	health,arrived,obamacare,uninsured,obama	0.505642,0.17062487,0.1615085,0.11941384,0.042810813
686-618732834828734464	arrived,uninsured,obamacare,health,obama	0.38835263,0.2905681,0.13690268,0.09372257,0.09045399
686-648696366474985472	obamacare,arrived,uninsured,obama,health	0.42478162,0.21186541,0.17589514,0.14139248,0.046065334
686-617870383090376704	arrived,obamacare,obama,health,uninsured	0.74465364,0.18395227,0.036658164,0.019707637,0.015028296
686-628325838883287040	arrived,uninsured,health,obamacare,obama	0.3203433,0.30253556,0.19289467,0.13372357,0.050502885
686-619901309328601088	arrived,obama,obamacare,health,uninsured	0.9002108,0.040776074,0.022603333,0.021124253,0.015285539
686-623301113740177408	obamacare,arrived,obama,health,uninsured	0.5547986,0.28048548,0.08634512,0.044045005,0.0343258
686-629656872065175552	obamacare,arrived,uninsured,obama,health	0.455556,0.3363248,0.11473151,0.052342243,0.04104545
686-619192130070781952	health,obama,obamacare,arrived,uninsured	0.8631703,0.05602732,0.03325936,0.02434382,0.023199165
686-639494948501463040	uninsured,obamacare,health,arrived,obama	0.3737668,0.23640558,0.18508725,0.18187797,0.022862406
686-634089960480579584	obamacare,obama,uninsured,health,arrived	0.8525077,0.055297542,0.04125013,0.02719317,0.023751454
686-649051851170562048	obamacare,health,obama,uninsured,arrived	0.68534696,0.23432145,0.035763707,0.023672365,0.02089552
686-629288567336886276	health,uninsured,obamacare,obama,arrived	0.55344313,0.24941988,0.13087434,0.04182668,0.024435965
686-615251322565193729	uninsured,health,arrived,obamacare,obama	0.6115907,0.29864097,0.041300472,0.03760273,0.010865144
686-626406078868246528	obamacare,arrived,obama,health,uninsured	0.6167761,0.21553269,0.06387129,0.05351477,0.05030517
686-647580332875649024	arrived,health,uninsured,obamacare,obama	0.7624573,0.21481787,0.015626337,0.0059011537,0.0011973251
686-620561332442673152	uninsured,health,arrived,obama,obamacare	0.568106,0.31266227,0.04798345,0.042734295,0.028513988
686-648054728195108864	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-626160236068478978	obamacare,arrived,obama,health,uninsured	0.7771451,0.1684505,0.028854474,0.014918797,0.01063115
686-633425887669563392	health,obamacare,arrived,obama,uninsured	0.39252988,0.31683418,0.17234203,0.08473066,0.03356326
686-628293745885249536	health,uninsured,obamacare,obama,arrived	0.36415213,0.30540958,0.24953096,0.047093023,0.033814304
686-643251613700788228	uninsured,health,arrived,obama,obamacare	0.50644356,0.23947062,0.18037476,0.04896138,0.024749689
686-648472639850348544	obamacare,health,obama,arrived,uninsured	0.41671243,0.24805057,0.17983119,0.081878446,0.07352737
686-631527703670165504	obamacare,uninsured,arrived,obama,health	0.400717,0.24881499,0.20113418,0.08858047,0.060753398
686-634115736210903044	health,uninsured,obamacare,arrived,obama	0.4603405,0.23044328,0.13612875,0.13516255,0.037924904
686-620435151982563328	uninsured,health,obama,obamacare,arrived	0.7308311,0.10390744,0.070552714,0.0511422,0.04356654
686-638551724266012672	uninsured,obamacare,health,arrived,obama	0.40983662,0.32383433,0.17543931,0.06376229,0.027127426
686-647329864672870400	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-622506984357629952	obamacare,arrived,obama,health,uninsured	0.69690466,0.23446332,0.03528309,0.019876743,0.013472189
686-643264290619654144	uninsured,arrived,obamacare,health,obama	0.58775795,0.154005,0.11174033,0.10849325,0.03800347
686-639163972491591680	obamacare,arrived,obama,health,uninsured	0.80255604,0.12895589,0.03567236,0.019111384,0.013704343
686-621468851847434240	health,uninsured,obamacare,arrived,obama	0.4680139,0.26061398,0.11741352,0.09165888,0.062299702
686-632912703250522112	arrived,uninsured,health,obama,obamacare	0.3302289,0.22921604,0.22891612,0.12162078,0.09001817
686-615303422653247489	arrived,obamacare,obama,health,uninsured	0.44651848,0.1795124,0.14949977,0.12449278,0.09997658
686-619247033925304320	health,obamacare,uninsured,obama,arrived	0.7198195,0.11969468,0.11187592,0.03335381,0.015256084
686-632248846920224769	obama,obamacare,health,arrived,uninsured	0.3606954,0.18113519,0.1754122,0.15290786,0.12984937
686-627935899582656512	health,uninsured,obamacare,obama,arrived	0.5171889,0.27896726,0.13517651,0.036518447,0.032148894
686-625651601806639105	obamacare,health,arrived,obama,uninsured	0.5366295,0.21794492,0.19732557,0.033718172,0.014381854
686-622160297478897665	uninsured,health,obamacare,obama,arrived	0.54345936,0.20099255,0.18720399,0.042604875,0.025739253
686-643568762688524288	uninsured,health,arrived,obama,obamacare	0.44368628,0.3846826,0.07925946,0.056900546,0.035471108
686-649090570674024448	obamacare,obama,health,arrived,uninsured	0.82361716,0.06560541,0.039944462,0.037158716,0.033674236
686-629009861729222656	health,obama,obamacare,arrived,uninsured	0.80011946,0.086137526,0.044574805,0.037718553,0.031449668
686-631305188867833857	uninsured,health,arrived,obamacare,obama	0.35647944,0.22812201,0.1812981,0.14926547,0.08483499
686-620615473810419712	obamacare,uninsured,arrived,health,obama	0.36972246,0.326234,0.13826142,0.12533945,0.040442668
686-631459973403385860	obama,uninsured,health,arrived,obamacare	0.3289313,0.23796734,0.15140083,0.14859962,0.13310088
686-626126937925251072	health,uninsured,obama,arrived,obamacare	0.8535941,0.08713433,0.025459506,0.020392846,0.013419171
686-626812081384259584	uninsured,arrived,obamacare,health,obama	0.39103034,0.3526011,0.13776438,0.08026677,0.038337406
686-632247283128528898	uninsured,arrived,health,obama,obamacare	0.45585006,0.33230963,0.14087678,0.04254369,0.028419835
686-626145724518936576	uninsured,obamacare,health,arrived,obama	0.4100834,0.21397178,0.20296456,0.13473345,0.038246803
686-642922063125090306	health,obama,uninsured,arrived,obamacare	0.46154836,0.16945791,0.14321077,0.13882205,0.0869609
686-629663733669728256	health,uninsured,arrived,obamacare,obama	0.4023849,0.23634407,0.1884981,0.13160782,0.0411651
686-625832250911903744	uninsured,arrived,obama,health,obamacare	0.67338204,0.24288383,0.03850475,0.024602877,0.02062653
686-635603176603779072	health,obamacare,obama,arrived,uninsured	0.5834025,0.2065863,0.103129245,0.06091727,0.045964688
686-615988207335948288	health,arrived,obamacare,uninsured,obama	0.38930807,0.23380147,0.16086695,0.11067102,0.1053525
686-620480338549190656	arrived,uninsured,health,obamacare,obama	0.5285497,0.20152475,0.15202378,0.06701875,0.050883077
686-631532255844806656	health,uninsured,arrived,obama,obamacare	0.47528633,0.23829088,0.18853335,0.054619268,0.043270156
686-627084843772452864	health,obama,uninsured,obamacare,arrived	0.44107267,0.3448339,0.11770593,0.053393394,0.042994093
686-629044309187145728	obamacare,health,arrived,obama,uninsured	0.60981464,0.1791405,0.08504472,0.07262421,0.053375926
686-644295011757109248	uninsured,obamacare,arrived,health,obama	0.4953822,0.3007011,0.11328539,0.062023398,0.028607916
686-635981853506146304	arrived,health,obama,obamacare,uninsured	0.5215707,0.36862472,0.055853784,0.033481468,0.020469341
686-624409580383043584	arrived,health,obama,obamacare,uninsured	0.80367047,0.11973462,0.0408432,0.020790963,0.014960719
686-621680772500557824	health,obamacare,uninsured,arrived,obama	0.42721266,0.2506974,0.14074785,0.11550541,0.06583668
686-627615136325443584	obamacare,obama,health,arrived,uninsured	0.9149492,0.03506592,0.022276891,0.014965453,0.012742557
686-630518449849020416	arrived,obamacare,uninsured,health,obama	0.594772,0.23942511,0.08345683,0.04490391,0.037442148
686-623338513283465216	uninsured,arrived,obama,health,obamacare	0.63950944,0.27062836,0.041796286,0.026418313,0.021647613
686-637289515208589312	uninsured,health,obama,obamacare,arrived	0.69929785,0.20068166,0.044449642,0.03456524,0.021005625
686-615344452417232897	obamacare,arrived,health,uninsured,obama	0.3760674,0.26405403,0.18263313,0.1321128,0.045132607
686-633004714771156992	arrived,health,obama,obamacare,uninsured	0.3590554,0.32902977,0.14165582,0.092636086,0.0776229
686-632887064627798016	obamacare,obama,health,arrived,uninsured	0.9269864,0.03126364,0.015587471,0.014339812,0.011822657
686-617660738493095936	obama,arrived,obamacare,health,uninsured	0.5967937,0.23705141,0.1347961,0.018141113,0.013217703
686-629906226223038464	arrived,obamacare,health,obama,uninsured	0.7465977,0.13135542,0.072967514,0.03579448,0.013284884
686-646061500646318080	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-641993268344004608	uninsured,health,arrived,obama,obamacare	0.4525182,0.2170964,0.19742753,0.08086823,0.05208964
686-647101640751747072	uninsured,health,arrived,obamacare,obama	0.5124731,0.19014417,0.14862704,0.14740857,0.0013471164
686-616535269395857408	obama,health,obamacare,arrived,uninsured	0.8372087,0.11978886,0.01632418,0.014341861,0.012336402
686-645964670034124800	uninsured,health,obamacare,obama,arrived	0.54068047,0.25168923,0.1541795,0.027418738,0.026032072
686-624567456321900544	obamacare,arrived,uninsured,obama,health	0.67915386,0.11043313,0.105660744,0.05683744,0.047914837
686-640961330900414464	arrived,health,obamacare,uninsured,obama	0.63773084,0.17746937,0.17124861,0.007075862,0.006475314
686-617775811005820929	arrived,uninsured,obama,obamacare,health	0.829552,0.0952623,0.030235045,0.025959572,0.018991068
686-644310128615890944	uninsured,obamacare,arrived,obama,health	0.43780065,0.3757094,0.11186837,0.038117953,0.036503624
686-630822869044473861	uninsured,health,obama,obamacare,arrived	0.7205953,0.21726078,0.032160193,0.016221268,0.013762492
686-629491111245975552	uninsured,obama,arrived,health,obamacare	0.35162857,0.2476562,0.15441124,0.14957346,0.09673054
686-618212586887225345	arrived,obamacare,health,obama,uninsured	0.7771918,0.12961149,0.041612513,0.035768297,0.015815903
686-636157302794530816	obamacare,obama,health,arrived,uninsured	0.8920269,0.0470931,0.023225792,0.020321244,0.017332938
686-646786604888010752	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-629849125731725312	obamacare,arrived,obama,health,uninsured	0.6487654,0.28889087,0.031063607,0.017789392,0.013490778
686-625877340288098305	uninsured,arrived,health,obama,obamacare	0.30542335,0.24434876,0.2201765,0.18320444,0.046846926
686-632252074747658240	health,arrived,obama,obamacare,uninsured	0.8019095,0.11047307,0.046854768,0.02366075,0.017101912
686-645336339248906240	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-620004669033697280	obama,obamacare,health,arrived,uninsured	0.3651099,0.18020745,0.1744215,0.15170774,0.12855342
686-647353965944832000	arrived,health,obama,obamacare,uninsured	0.47354546,0.28590626,0.11082306,0.067957304,0.06176791
686-633760348680548352	obamacare,health,arrived,obama,uninsured	0.6057146,0.16962108,0.119248964,0.07288222,0.032533105
686-630853325030735873	health,arrived,obama,obamacare,uninsured	0.762257,0.18410562,0.028473668,0.014566766,0.010596973
686-639986914389438464	uninsured,arrived,obamacare,health,obama	0.5606332,0.1886324,0.12105799,0.09448822,0.035188217
686-648979208396402688	obamacare,obama,health,arrived,uninsured	0.85363024,0.05491414,0.033070706,0.0306645,0.027720386
686-642140925175590912	health,obama,arrived,obamacare,uninsured	0.52909523,0.21568233,0.08955081,0.085509606,0.08016203
686-632583912942768128	uninsured,arrived,obama,health,obamacare	0.9081763,0.031053852,0.026603237,0.018703368,0.015463238
686-643207405858193408	uninsured,obamacare,health,arrived,obama	0.43355617,0.24543579,0.15241341,0.08826634,0.0803283
686-645880271502376960	obama,obamacare,health,arrived,uninsured	0.944734,0.015651638,0.015159042,0.013221512,0.011233804
686-648543868636557313	health,uninsured,obama,obamacare,arrived	0.33700243,0.2925908,0.16315919,0.1497643,0.0574833
686-634801335196454912	obamacare,health,uninsured,obama,arrived	0.40126553,0.22754014,0.22477287,0.081435494,0.06498598
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
