• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Root The gps fix for the triumph

:D

think you can post insturctions how YOU did it on the TRIUMPH?:confused:

Followed instructions in the XDA thread. I downloaded, installed and ran the apk in the second post. I then found my location zip in the first post, downloaded, and installed zip in CWM. That's it!
 
which .zip file from post one did you use because i only see a North America.zip and no Southeast.v1.zip anywhere. im in florida and i do see the Florida ONLY.zip in post two, but i want all of North America not just one state or a limited amount of states, so i guess until this is tested further on the triumph i'm not even going to bother for now....
 
which .zip file from post one did you use because i only see a North America.zip and no Southeast.v1.zip anywhere. im in florida and i do see the Florida ONLY.zip in post two, but i want all of North America not just one state or a limited amount of states, so i guess until this is tested further on the triumph i'm not even going to bother for now....

I got it from XDA MEMBERS CLICK HERE
Florida only would be great for you, it's the local time/satellite servers.
 
Here's my Gps.conf after this fix.


NTP_SERVER=ntp.myfloridacity.us
NTP_SERVER=ntp-s1.cise.ufl.edu
NTP_SERVER=nist1.columbiacountyga.gov
NTP_SERVER=navobs1.gatech.edu
NTP_SERVER=ntp2.stsn.net
NTP_SERVER=0.us.pool.ntp.org
NTP_SERVER=1.us.pool.ntp.org
NTP_SERVER=2.us.pool.ntp.org
NTP_SERVER=3.us.pool.ntp.org
NTP_SERVER=0.north-america.pool.ntp.org
NTP_SERVER=1.north-america.pool.ntp.org
NTP_SERVER=2.north-america.pool.ntp.org
NTP_SERVER=3.north-america.pool.ntp.org
XTRA_SERVER_1=/data/xtra.bin
AGPS=/data/xtra.bin
AGPS=http://xtra1.gpsonextra.net/xtra.bin
XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin
XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin
XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin
DEFAULT_AGPS_ENABLE=TRUE
DEFAULT_USER_PLANE=TRUE
REPORT_POSITION_USE_SUPL_REFLOC=1
QOS_ACCURACY=50
QOS_TIME_OUT_STANDALONE=60
QOS_TIME_OUT_agps=89
QosHorizontalThreshold=1000
QosVerticalThreshold=500
AssistMethodType=1
AgpsUse=1
AgpsMtConf=0
AgpsMtResponseType=1
AgpsServerType=1
AgpsServerIp=3232235555
INTERMEDIATE_POS=1
C2K_HOST=c2k.pde.com
C2K_PORT=1234
SUPL_HOST=FQDN
SUPL_HOST=lbs.geo.t-mobile.com
SUPL_HOST=supl.google.com
SUPL_PORT=7276
SUPL_SECURE_PORT=7275
SUPL_NO_SECURE_PORT=3425
SUPL_TLS_HOST=FQDN
SUPL_TLS_CERT=/etc/SuplRootCert
ACCURACY_THRES=5000
CURRENT_CARRIER=common
 
well the funny part is that i was going through your config that you posted here and the one marked NESE.zip on xda and the only differences are just more NTP servers added to the list. everything else is identical so im gonna try and create a config file with all of the North American NTP servers and see what i can do from there..... ill post my results up later.

edit: so i just tried it and i must say.... damn nice job. i took all the North American config files and put in the missing NTP server addresses starting with NESE.zip then the mid state zips then the west zips..... everything took fine and the lock couldn't be more accurate.
 
well the funny part is that i was going through your config that you posted here and the one marked NESE.zip on xda and the only differences are just more NTP servers added to the list. everything else is identical so im gonna try and create a config file with all of the North American NTP servers and see what i can do from there..... ill post my results up later.

edit: so i just tried it and i must say.... damn nice job. i took all the North American config files and put in the missing NTP server addresses starting with NESE.zip then the mid state zips then the west zips..... everything took fine and the lock couldn't be more accurate.

Amazing isn't!
Would you mind posting your modified Gps.conf?
 
ya here ya go man

gps.conf - Just North America

i used root explorer and backed up my original and then overwrote the original with this one and like i said it just includes all the North American NTP servers from all the different configs. don't forget to reboot after and everything should be good.

on another note im adding some more NTP server lines to the config file. i just added canada to it and im gonna try to add mexico and south america and see if it'll work.

edit: ok so i got North America's NTP servers, Canada's NTP servers, and Mexico's NTP servers all coded into the config now and it seems to be working great still.
just added the UK. I'm seriously gonna try and get all the different countries that he has posted added to the config and then just post one big config file on here....
 
Im sorry guys, but im very confused ... witch thread do i look at or read ? what APK file ahhh!!! i really want this fix :confused:

are these the steps?

1) Download the ZIP file for your region or close to your region.
2) DO NOT UNZIP the file.
3) Place the file on your SDCARD.
4) DO NOT USE MAGDLR, or CWR to copy the file to your SDCard. Use either your computer, or put Android into Disk Drive mode to avoid corruption.
5) Reboot your phone into CWR.
6) Choose Install ZIP from Sdcard
7) Choose install Zip file
8) Let it run
9) Reboot
10) If you prefer install the GPS Status App attached to post #2
a) If you do, hit the home key then go to settings then Display &Tools.
b) Choose the last one "Show time to GPS fix".

If you have Wifi turned on it will download the AGPS file which will help with the locks but is not needed.

GPS locks will vary, There is no guarantee and I can not give you one, but based on testing, your locks should occur in the following:

First Lock: 30 seconds to possibly 3 mins (3mins if the weather is bad, or there is something going on with the GPS sats, most occur under 80 seconds)
 
Im sorry guys, but im very confused ... witch thread do i look at or read ? what APK file ahhh!!! i really want this fix :confused:

are these the steps?

1) Download the ZIP file for your region or close to your region.
2) DO NOT UNZIP the file.
3) Place the file on your SDCARD.
4) DO NOT USE MAGDLR, or CWR to copy the file to your SDCard. Use either your computer, or put Android into Disk Drive mode to avoid corruption.
5) Reboot your phone into CWR.
6) Choose Install ZIP from Sdcard
7) Choose install Zip file
8) Let it run
9) Reboot
10) If you prefer install the GPS Status App attached to post #2
a) If you do, hit the home key then go to settings then Display &Tools.
b) Choose the last one "Show time to GPS fix".

If you have Wifi turned on it will download the AGPS file which will help with the locks but is not needed.

GPS locks will vary, There is no guarantee and I can not give you one, but based on testing, your locks should occur in the following:

First Lock: 30 seconds to possibly 3 mins (3mins if the weather is bad, or there is something going on with the GPS sats, most occur under 80 seconds)
in the second post of that thread in like the second or third line there is a link to something called GPSFix.......here is that link xda-developers - View Single Post - [25.MAR.2011][All Kernel Devs] AGPS Script Development download that and install on your phone, and then run. once you run it nothing will happen until you see a little dialog pop up that says GPS Fixed. once that has happened take this file gps.conf and copy that into your /etc folder in the root of your phone using root explorer, and make sure you have superuser access. once all that is done then reboot and load up google maps without your wifi on outside.

if you want to be specific to just your region then here are the seperate US region config files ftp://cgserver.sytes.net/usgps/USGPS%201.2/ the gps.conf i posted above has all of the US NTP server lines from all of the files listed on that page. i just edited them in. my file that im running on my phone has all of the US, Canada, Mexico, and the UK NTP server lines.

mine looks like this:

NTP_SERVER=ntp.myfloridacity.us
NTP_SERVER=ntp-s1.cise.ufl.edu
NTP_SERVER=nist1.columbiacountyga.gov
NTP_SERVER=navobs1.gatech.edu
NTP_SERVER=ntp2.stsn.net
NTP_SERVER=ntp.uiuc.edu
NTP_SERVER=fuzz.psc.edu
NTP_SERVER=timelord.w1nr.net
NTP_SERVER=ntp.pbx.org
NTP_SERVER=nist1-ny.ustiming.org
NTP_SERVER=nist1-nj.ustiming.org
NTP_SERVER=nist1-pa.ustiming.org
NTP_SERVER=ntp.your.org
NTP_SERVER=ntp1.indylib.org
NTP_SERVER=nist.netservicesgroup.com
NTP_SERVER=nisttime.carsoncity.k12.mi.us
NTP_SERVER=tick.cerias.purdue.edu
NTP_SERVER=tock.cerias.purdue.edu
NTP_SERVER=time.keneli.org
NTP_SERVER=ntp.colby.edu
NTP_SERVER=ntp0.jrc.us
NTP_SERVER=nist1-ny.WiTime.net
NTP_SERVER=clock.nyc.he.net
NTP_SERVER=tock.haqr.net
NTP_SERVER=stratum2.ord2.publicntp.net
NTP_SERVER=horologe.cerias.purdue.edu
NTP_SERVER=time.slackadelic.com
NTP_SERVER=ntp.uhfradio.com
NTP_SERVER=ntp.undeadarmy.com
NTP_SERVER=ntp.melancthon.net
NTP_SERVER=tick.jrc.us
NTP_SERVER=tock.jrc.us
NTP_SERVER=ntp0.cornell.edu
NTP_SERVER=alice.ziaspace.com
NTP_SERVER=OptimusPrime.64bitVPS.com
NTP_SERVER=Optimussupreme.64bitVPS.com
NTP_SERVER=tick.haqr.net
NTP_SERVER=ntp.glorb.com
NTP_SERVER=clock-1.cs.cmu.edu
NTP_SERVER=clock-2.cs.cmu.edu
NTP_SERVER=ntp-1.vt.edu
NTP_SERVER=ntp-2.vt.edu
NTP_SERVER=ntp-3.vt.edu
NTP_SERVER=ntp-4.vt.edu
NTP_SERVER=time-a.timefreq.bldrdoc.gov
NTP_SERVER=time-b.timefreq.bldrdoc.gov
NTP_SERVER=time-c.timefreq.bldrdoc.gov
NTP_SERVER=ntp2.netwrx1.com
NTP_SERVER=nss.nts.umn.edu
NTP_SERVER=ntp.skoglundtech.com
NTP_SERVER=ns.nts.umn.edu
NTP_SERVER=ntp1.netwrx1.com
NTP_SERVER=ntp3.sf-bay.org
NTP_SERVER=utcnist.colorado.edu
NTP_SERVER=utcnist.colorado.edu
NTP_SERVER=time.nist.gov
NTP_SERVER=now.okstate.edu
NTP_SERVER=ntp1.kansas.net
NTP_SERVER=ntp2.kansas.net
NTP_SERVER=ntp1.jtsage.com
NTP_SERVER=ntp.jentfoo.com
NTP_SERVER=ntp2.jtsage.com
NTP_SERVER=ntp.squirrels.us
NTP_SERVER=clock.danplanet.com
NTP_SERVER=ntp.lucier.us
NTP_SERVER=bigben.cac.washington.edu
NTP_SERVER=chronos1.umt.edu
NTP_SERVER=chronos2.umt.edu
NTP_SERVER=chronos3.umt.edu
NTP_SERVER=tick.mtnlion.com
NTP_SERVER=iori.fkraiem.org
NTP_SERVER=ntp.knowledge.or.id
NTP_SERVER=time-nist1-lv.ustiming.org
NTP_SERVER=nist1.symmetricom.com
NTP_SERVER=nist1-sj.ustiming.org
NTP_SERVER=tick.ucla.edu
NTP_SERVER=timekeeper.isi.edu
NTP_SERVER=clock.sjc.he.net
NTP_SERVER=t2.timegps.net
NTP_SERVER=clock.via.net
NTP_SERVER=time.xmission.com
NTP_SERVER=ntp1.sf-bay.org
NTP_SERVER=time.envirahost.com
NTP_SERVER=abyss.simplysam.us
NTP_SERVER=clock.uregina.ca
NTP_SERVER=tick.utoronto.ca
NTP_SERVER=time.nrc.ca
NTP_SERVER=tock.utoronto.ca
NTP_SERVER=time.chu.nrc.ca
NTP_SERVER=nist.netservicesgroup.com
NTP_SERVER=nisttime.carsoncity.k12.mi.us
NTP_SERVER=ns.nts.umn.edu
NTP_SERVER=sesku.planeacion.net
NTP_SERVER=tiempo.promomedios.com
NTP_SERVER=nist1-la.ustiming.org
NTP_SERVER=tick.greyware.com
NTP_SERVER=ntp0.jonatkins.com
NTP_SERVER=ntp.shr.ug
NTP_SERVER=ntp2.ja.net
NTP_SERVER=ntp3.nonanet.net.uk
NTP_SERVER=ntp2d.mcc.ac.uk
NTP_SERVER=ntp.markyate.net
NTP_SERVER=ntp2.nonanet.net.uk
NTP_SERVER=ntp2c.mcc.ac.uk
NTP_SERVER=ntp0.borg-collective.org.uk
NTP_SERVER=ntp2b.mcc.ac.uk
NTP_SERVER=ntp2.uk.uu.net
NTP_SERVER=extntp0.inf.ed.ac.uk
NTP_SERVER=ntp1.nonanet.net.uk
NTP_SERVER=extntp1.inf.ed.ac.uk
NTP_SERVER=ntp1.uk.uu.net
NTP_SERVER=ntp2a.mcc.ac.uk
NTP_SERVER=ntp2d.mcc.ac.uk
NTP_SERVER=0.us.pool.ntp.org
NTP_SERVER=1.us.pool.ntp.org
NTP_SERVER=2.us.pool.ntp.org
NTP_SERVER=3.us.pool.ntp.org
NTP_SERVER=ca.pool.ntp.org
NTP_SERVER=0.ca.pool.ntp.org
NTP_SERVER=1.ca.pool.ntp.org
NTP_SERVER=2.ca.pool.ntp.org
NTP_SERVER=3.ca.pool.ntp.org
NTP_SERVER=mx.pool.ntp.org
NTP_SERVER=0.mx.pool.ntp.org
NTP_SERVER=1.mx.pool.ntp.org
NTP_SERVER=2.mx.pool.ntp.org
NTP_SERVER=3.mx.pool.ntp.org
NTP_SERVER=uk.pool.ntp.org
NTP_SERVER=0.uk.pool.ntp.org
NTP_SERVER=1.uk.pool.ntp.org
NTP_SERVER=2.uk.pool.ntp.org
NTP_SERVER=3.uk.pool.ntp.org
NTP_SERVER=0.north-america.pool.ntp.org
NTP_SERVER=1.north-america.pool.ntp.org
NTP_SERVER=2.north-america.pool.ntp.org
NTP_SERVER=3.north-america.pool.ntp.org
NTP_SERVER=europe.pool.ntp.org
NTP_SERVER=0.europe.pool.ntp.org
NTP_SERVER=1.europe.pool.ntp.org
NTP_SERVER=2.europe.pool.ntp.org
NTP_SERVER=3.europe.pool.ntp.org
XTRA_SERVER_1=/data/xtra.bin
AGPS=/data/xtra.bin
AGPS=http://xtra1.gpsonextra.net/xtra.bin
XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin
XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin
XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin
DEFAULT_AGPS_ENABLE=TRUE
DEFAULT_USER_PLANE=TRUE
REPORT_POSITION_USE_SUPL_REFLOC=1
QOS_ACCURACY=50
QOS_TIME_OUT_STANDALONE=60
QOS_TIME_OUT_agps=89
QosHorizontalThreshold=1000
QosVerticalThreshold=500
AssistMethodType=1
AgpsUse=1
AgpsMtConf=0
AgpsMtResponseType=1
AgpsServerType=1
AgpsServerIp=3232235555
INTERMEDIATE_POS=1
C2K_HOST=c2k.pde.com
C2K_PORT=1234
SUPL_HOST=FQDN
SUPL_HOST=lbs.geo.t-mobile.com
SUPL_HOST=supl.google.com
SUPL_PORT=7276
SUPL_SECURE_PORT=7275
SUPL_NO_SECURE_PORT=3425
SUPL_TLS_HOST=FQDN
SUPL_TLS_CERT=/etc/SuplRootCert
ACCURACY_THRES=5000
CURRENT_CARRIER=common
 
OK, now we're getting somewhere.

Why do I say this? Because I grabbed the "fix" program - just the mode-setting program - and this is what the logcat tells me after I told it to use "MS Based" (and yes, I did verify it "stuck")

D/libloc ( 179): loc_eng_set_position mode, client = 0, interval = 1 sec, mode = 0 (SA=0/MSB=1/MSA=2)
D/libloc ( 179): loc_eng_ioctl called: client = 0, ioctl_type = RPC_LOC_IOCTL_SET_FIX_CRITERIA
I/LocationManager( 1919): requestLocationUpdates -
V/LocationManagerService( 179): _requestLocationUpdates: listener = Receiver{32cc0290 Listener android.os.BinderProxy@32cc0258}
D/libloc ( 179):
D/libloc ( 179): Event RPC_LOC_EVENT_IOCTL_REPORT (client 0)
D/libloc ( 179): loc_eng_ioctl result: client = 0, ioctl_type = RPC_LOC_IOCTL_SET_FIX_CRITERIA, RPC_LOC_API_SUCCESS

Note that mode - zero. In other words, standalone.

Now I'm going to grab that config file. I'm from Missuori on this, becase I've looked at the source, but the facts are this - the application does exactly nothing. I mean really nothing too - not only is the mode not changed neither is the init sequence, there is no attempt to grab the XTRA data and stuff it nor is the NTP server ever queried.

More in a bit - with TRACES (the only way you actually know folks)

This, incidentally, may be the key to the CM7 GPS problem, which is why I'm so "on" about tracing this. If it turns out that Moto intentionally disabled all attempts to load assist data via the XTRA interface in the code on purpose, even when explicitly requested, well, that suddenly becomes VERY important information.
 
OK, more info.

First, changing the config file did nothing. Second, libgps.so (which one of those files replaces) does nothing either. You can actually adb into the phone, remount /system writable and REMOVE it. Libgps.so, if it's linked in (I've tried) tries to open a non-existent device node in /dev/oncrpc and blows up. This is one of the (many) dead ends I've run into trying to get the GPS working on CM7.

Once you have a lock the GPS has a good almanac and ephermis for several hours, and partial validity for several weeks. So as long as you don't kill it once it has it, lock performance should be pretty darn good.

The test for these alleged "fixes" is that on an absolutely cold start where it hasn't been used for a couple of weeks (or moved several hundred miles) can you get an instant lock - especially indoors - or can you find a XTRA and NTP download and stuff in the logcat? I can't find evidence of either.

I think you're chasing shadows.
 
OK, more info.

First, changing the config file did nothing. Second, libgps.so (which one of those files replaces) does nothing either. You can actually adb into the phone, remount /system writable and REMOVE it. Libgps.so, if it's linked in (I've tried) tries to open a non-existent device node in /dev/oncrpc and blows up. This is one of the (many) dead ends I've run into trying to get the GPS working on CM7.

Once you have a lock the GPS has a good almanac and ephermis for several hours, and partial validity for several weeks. So as long as you don't kill it once it has it, lock performance should be pretty darn good.

The test for these alleged "fixes" is that on an absolutely cold start where it hasn't been used for a couple of weeks (or moved several hundred miles) can you get an instant lock - especially indoors - or can you find a XTRA and NTP download and stuff in the logcat? I can't find evidence of either.

I think you're chasing shadows.

So are you say that this fix did nothing in general or this fix dint do anything for the cm7 build... ?
 
The fix did nothing.

Look, I'd like for it to work, ok? I've got my nose so far up the arse of the GPS code at this point, including the gpio stuff in the kernel, that I pretty well got figured out what it can and can't do, and this implementation simply REJECTS any attempt to load XTRA (Gps assist) data.

There are two components to XTRA data - the time with an estimated error (from an NTP server) and the XTRA.BIN file from Qualcomm's web servers. The latter is basically the almanac and ephermis. The file comes down fine - I've checked it, and the download succeeds. But injecting that data or the NTP time fails, and not just in my builds - in grafted builds (Froyo doesn't even attempt to load the file into the chip - no matter whether you tell it to in GPS Status or not.)

It is not being rejected in the kernel or the software, it's the chip that's rejecting it, and further, if you look at the logcat after you allegedly enable "MS Based you'll see that it STILL is sending down "Standalone" to the actual driver when it turns the GPS on.

In other words it's doing nothing.

Note that there is more than one file available from that server. It's possible (but not terribly likely) that this chip is too new and thus wants one of the other formats. I don't think so, but it's possible. Some day if I can actually talk to someone who will spill the beans at Qualcomm on this I can find out.
 
The fix did nothing.

Look, I'd like for it to work, ok? I've got my nose so far up the arse of the GPS code at this point, including the gpio stuff in the kernel, that I pretty well got figured out what it can and can't do, and this implementation simply REJECTS any attempt to load XTRA (Gps assist) data.

There are two components to XTRA data - the time with an estimated error (from an NTP server) and the XTRA.BIN file from Qualcomm's web servers. The latter is basically the almanac and ephermis. The file comes down fine - I've checked it, and the download succeeds. But injecting that data or the NTP time fails, and not just in my builds - in grafted builds (Froyo doesn't even attempt to load the file into the chip - no matter whether you tell it to in GPS Status or not.)

It is not being rejected in the kernel or the software, it's the chip that's rejecting it, and further, if you look at the logcat after you allegedly enable "MS Based you'll see that it STILL is sending down "Standalone" to the actual driver when it turns the GPS on.

In other words it's doing nothing.

Note that there is more than one file available from that server. It's possible (but not terribly likely) that this chip is too new and thus wants one of the other formats. I don't think so, but it's possible. Some day if I can actually talk to someone who will spill the beans at Qualcomm on this I can find out.

So... Why do you believe that all these Triumph user are claiming to have "fixed", this GPS problem ... Because there are a bunch of "fixes" to the GPS problem, sorry for all the questions its just that i dont want to get my hopes up every time i see "GPS fix!", on the forums if there is no real GPS fix.... Unless you believe there is one.
 
There is no fix.

The reason there appears to be is that once you go outside and get a good lock, the ephermis and almanac is in the chip. Until it expires you'll get fast locks (few seconds.)

If AGPS was working your FIRST lock would be instantaneous even if indoors. It's not.

The problem appears to be in the silicon itself and as such unless there's a workaround for the functionality it is never going to actually be fixed. If you want to know how fast a working AGPS implementation should lock play with the Optimus. It's essentially instantaneous all the time as long as it has some view of the sky.
 
There is no fix.

The reason there appears to be is that once you go outside and get a good lock, the ephermis and almanac is in the chip. Until it expires you'll get fast locks (few seconds.)

If AGPS was working your FIRST lock would be instantaneous even if indoors. It's not.

The problem appears to be in the silicon itself and as such unless there's a workaround for the functionality it is never going to actually be fixed. If you want to know how fast a working AGPS implementation should lock play with the Optimus. It's essentially instantaneous all the time as long as it has some view of the sky.

Well thanks for the information... But it really makes me sad there is no fix for this issue i was really looking forward to fixing this... Ive had a alot of costumer complains on it (I'm a VM dealer) i dont even know what to tell them anymore :/ Well Thanks aging for all the information :)
 
There may be a workaround of some sort (there are actually a couple of other files on the Qualcomm XTRA server, and it's possible that this chip wants one of the other ones) but I wouldn't hold my breath.
 
There is no fix.

The reason there appears to be is that once you go outside and get a good lock, the ephermis and almanac is in the chip. Until it expires you'll get fast locks (few seconds.)

If AGPS was working your FIRST lock would be instantaneous even if indoors. It's not.

The problem appears to be in the silicon itself and as such unless there's a workaround for the functionality it is never going to actually be fixed. If you want to know how fast a working AGPS implementation should lock play with the Optimus. It's essentially instantaneous all the time as long as it has some view of the sky.

Nice writeup Tickerguy. Thanks for the clarification!
 
THANKYOU SOOO MUCH!!! thank you guys for putting up this information. I just fixed my gps in like 5 minutes thanks to this post. My GPS wasn't locking in AT ALL!!! and now it takes like a minute. It still isn't spot on in google maps but the navigation seems spot on (which is the only thing i use it for). I haven't seen how quickly it reroutes yet, which is also kind of a big deal for me, but I will definitely post back to see if its fixed. I never have rooted my phone or messed with "flashing roms" or whatever so the step by steps were really nice. again, thankyou so much!
 
This actually made mine way worse. I got the stock GPS conf and it works better than anything else. Used lbstestmode to set it to Ms based.
 
Back
Top Bottom