Loading...
Relation: Svc 147 (Hougang Central Interchange => Clementi Interchange) (1153800)
Version #327
added parking lanes
Tags
direction | 1 |
---|---|
from | Hougang Central Interchange |
name | Svc 147 (Hougang Central Interchange => Clementi Interchange) |
network | SBS |
public_transport:version | 2 |
ref | 147 |
route | bus |
to | Clementi Interchange |
type | route |
Members
542 members
- Node Hougang Central Interchange (410464928) as stop
- Node The Midtown (410482638) as stop
- Node Blk 465A (410482635) as stop
- Node Opposite Punggol Park (410464902) as stop
- Node Blk 434 (410464901) as stop
- Node Blk 532 (410464916) as stop
- Node Montfort School (410464905) as stop
- Node Blk 502 (410464911) as stop
- Node Blk 608 (410464918) as stop
- Node Opposite Xinmin Primary School (410464909) as stop
- Node Blk 632 (410464906) as stop
- Node Opposite Blk 634 (410464856) as stop
- Node Before Yio Chu Kang Chapel (4430976208) as stop
- Node Toho Green (410486969) as stop
- Node After Phillips Avenue (1855320978) as stop
- Node After Serangoon Garden Way (410486966) as stop
- Node Before Tai Seng Christian Church (410486516) as stop
- Node Serangoon Sports Complex (410486293) as stop
- Node Blk 206 (410475114) as stop
- Node Serangoon Station Exit A/Blk 413 (1849631324) as stop
- Node Blk 403 (410483064) as stop
- Node After Sunshine Lodge (410483026) as stop
- Node After Bartley Road (410482574) as stop
- Node Woodleigh Station Exit A (1847714000) as stop
- Node Opposite Woodleigh Park (410482725) as stop
- Node Opposite Blk 101 (410482678) as stop
- Node Potong Pasir Station Exit B (1847713994) as stop
- Node Sant Ritz (410482578) as stop
- Node MOM Services Centre (410461691) as stop
- Node Blk 54 (410461692) as stop
- Node Blk 44 (410461690) as stop
- Node Opposite Boon Keng Station (410461688) as stop
- Node Before Lavender Street (410461689) as stop
- Node Hoa Nam Building (4369020578) as stop
- Node After Allenby Road (410465077) as stop
- Node Opposite Veerasamy Road (410465073) as stop
- Node Jalan Besar Station Exit A (410465078) as stop
- Node After CHIJMES (410483651) as stop
- Node Grand Park City Hall (410464753) as stop
- Node High Street Centre (410464756) as stop
- Node Opposite Clarke Quay Station (410467865) as stop
- Node Hong Lim Park (4627674061) as stop
- Node Chinatown Station Exit E (410467863) as stop
- Node New Bridge Centre (410467861) as stop
- Node After Duxton Plain Park (1842187975) as stop
- Node Outram Park Station Exit 4 (3865151076) as stop
- Node Before Neil Road (410467860) as stop
- Node Before Kampong Bahru Terminal (410466845) as stop
- Node Blk 149 (410465270) as stop
- Node Blk 140 (410465153) as stop
- Node Blk 111 (410465353) as stop
- Node Blk 104 (410465098) as stop
- Node Opposite Blk 120 (410465215) as stop
- Node Bukit Merah Town Centre (410465448) as stop
- Node Opposite Bukit Merah Secondary School (410465583) as stop
- Node Opposite Blk 28 (410465242) as stop
- Node Opposite Blk 2 (410465135) as stop
- Node After Queenstown NPC Headquarters (410472637) as stop
- Node Opposite Queen's Close (1792733139) as stop
- Node After Commonwealth Drive (410472620) as stop
- Node Opposite Queenstown Polyclinic (410472619) as stop
- Node Commonwealth Station Exit A/D (410463754) as stop
- Node Opposite Blk 7B (410463759) as stop
- Node Opposite Blk 43 (410463752) as stop
- Node The Star Vista (410463765) as stop
- Node Blk 19A Carpark (410463764) as stop
- Node Sp Sma (410463763) as stop
- Node Dover Station Exit A (410463775) as stop
- Node Opposite School Of Science & Tech (410463780) as stop
- Node Blk 410 (410463761) as stop
- Node Blk 455 (410463781) as stop
- Node Clementi Station Exit A (410463767) as stop
- Node Clementi Interchange (1682683677) as stop
- Node Opposite Bencoolen Station Exit B (4586375564) as stop
- Node Opposite Nafa Campus 3 (410461683) as stop
Way 538824268- Way Hougang Central Bus Interchange (74549004)
Way 201275788Way 613182693- Way Hougang Central Bus Interchange (201275786)
- Way Hougang Central Interchange (349537828)
- Way Hougang Central (512918260)
- Way Hougang Central (630493600)
- Way Hougang Central (632790690)
- Way Hougang Central (74549008)
- Way Hougang Central (475924616)
- Way 464230151
- Way Upper Serangoon Road (629327884)
- Way Upper Serangoon Road (630494750)
- Way Upper Serangoon Road (630494748)
- Way Upper Serangoon Road (630824917)
- Way Upper Serangoon Road (630824916)
- Way Upper Serangoon Road (174765846)
- Way Upper Serangoon Road (628184056)
- Way Upper Serangoon Road (628177813)
- Way 464230148
- Way Hougang Avenue 8 (652555611)
- Way Hougang Avenue 8 (652555610)
- Way Hougang Avenue 8 (32793236)
- Way Hougang Avenue 8 (655062702)
- Way Hougang Avenue 8 (476407135)
- Way Hougang Avenue 8 (476407136)
- Way Hougang Avenue 8 (476407137)
- Way Hougang Avenue 8 (74974613)
- Way Hougang Avenue 8 (75110248)
- Way Hougang Avenue 8 (476407138)
- Way Hougang Avenue 8 (627656964)
- Way Hougang Avenue 8 (476407140)
- Way Hougang Avenue 8 (476407139)
- Way Hougang Avenue 8 (476407143)
- Way Hougang Avenue 8 (74769643)
- Way Hougang Avenue 8 (629378397)
- Way Hougang Avenue 8 (175840045)
- Way Hougang Avenue 8 (629378398)
- Way Hougang Avenue 8 (476407144)
- Way Hougang Avenue 8 (476701055)
- Way Hougang Avenue 8 (75070572)
- Way Hougang Avenue 8 (476407146)
- Way Hougang Avenue 8 (476407147)
- Way Hougang Avenue 8 (634575354)
- Way Hougang Avenue 8 (476407911)
- Way Hougang Avenue 8 (536420710)
- Way Hougang Avenue 8 (476407912)
- Way Hougang Avenue 8 (633604452)
- Way Hougang Avenue 8 (476407917)
- Way Hougang Avenue 8 (476407916)
- Way Hougang Avenue 8 (476407918)
- Way Hougang Avenue 8 (445282923)
- Way Hougang Avenue 8 (175010895)
- Way Hougang Avenue 8 (445282924)
- Way Hougang Avenue 8 (632064410)
- Way Hougang Avenue 8 (74974600)
- Way Hougang Avenue 8 (655230047)
- Way Hougang Avenue 8 (655230044)
- Way Hougang Avenue 8 (655535978)
- Way Hougang Avenue 8 (646966103)
- Way Hougang Avenue 8 (655535976)
- Way Hougang Avenue 8 (646225485)
- Way Hougang Avenue 8 (632414258)
- Way Hougang Avenue 8 (464307229)
- Way Hougang Avenue 8 (175020556)
- Way Hougang Avenue 2 (74873590)
- Way Hougang Avenue 2 (175020552)
- Way Hougang Avenue 2 (475330613)
- Way Hougang Avenue 2 (632760577)
- Way Hougang Avenue 2 (20147435)
- Way 20147438
- Way Yio Chu Kang Road (175540499)
- Way Yio Chu Kang Road (475158000)
- Way Yio Chu Kang Road (537579060)
- Way Yio Chu Kang Road (638256779)
- Way Yio Chu Kang Road (475158907)
- Way Yio Chu Kang Road (633197069)
- Way Yio Chu Kang Road (475158910)
- Way Yio Chu Kang Road (652145239)
- Way Yio Chu Kang Road (633197070)
- Way Yio Chu Kang Road (475159368)
- Way Yio Chu Kang Road (475159371)
- Way Yio Chu Kang Road (475159374)
- Way Yio Chu Kang Road (539671030)
- Way Yio Chu Kang Road (175959568)
- Way Yio Chu Kang Road (649101693)
- Way Yio Chu Kang Road (475160445)
- Way Yio Chu Kang Road (478878325)
- Way Yio Chu Kang Road (630829769)
- Way Yio Chu Kang Road (632123139)
- Way Yio Chu Kang Road (632123135)
- Way Yio Chu Kang Road (74873567)
- Way Yio Chu Kang Road (633569463)
- Way Yio Chu Kang Road (632124902)
- Way Yio Chu Kang Road (475162280)
- Way Yio Chu Kang Road (475162281)
- Way Yio Chu Kang Road (464288933)
- Way Yio Chu Kang Link (466739184)
- Way Yio Chu Kang Link (630446800)
- Way Yio Chu Kang Link (22325258)
- Way Yio Chu Kang Link (479083906)
- Way Yio Chu Kang Link (475163615)
- Way Yio Chu Kang Link (475163616)
- Way Yio Chu Kang Link (475163617)
- Way Yio Chu Kang Link (325024345)
- Way Serangoon Central (22325259)
- Way Serangoon Central (383365020)
- Way Serangoon Central (537989237)
- Way Serangoon Central (632203646)
- Way Serangoon Central (655063144)
- Way Serangoon Central (634184990)
- Way Serangoon Central (634184989)
- Way Serangoon Central (634794777)
- Way Serangoon Central (74676545)
- Way Serangoon Central (639347365)
- Way Serangoon Central (479079792)
- Way Serangoon Central (479079789)
- Way Serangoon Central (655137145)
- Way Serangoon Central (617971362)
- Way Serangoon Central (175540487)
- Way Upper Serangoon Road (478881770)
- Way Upper Serangoon Road (22694479)
- Way Upper Serangoon Road (633395118)
- Way Upper Serangoon Road (475116740)
- Way Upper Serangoon Road (617971440)
- Way Upper Serangoon Road (174281659)
- Way Upper Serangoon Road (475116741)
- Way Upper Serangoon Road (647662251)
- Way Upper Serangoon Road (475116742)
- Way Upper Serangoon Road (475120452)
- Way Upper Serangoon Road (475120453)
- Way Upper Serangoon Road (74500547)
- Way Upper Serangoon Road (175540493)
- Way Upper Serangoon Road (634170841)
- Way Upper Serangoon Road (633808883)
- Way Upper Serangoon Road (633808882)
- Way Upper Serangoon Road (462850801)
- Way Upper Serangoon Road (475120456)
- Way Upper Serangoon Road (630436496)
- Way Upper Serangoon Road (537082891)
- Way Upper Serangoon Road (582289232)
- Way Upper Serangoon Road (477811640)
- Way Upper Serangoon Road (537082893)
- Way Upper Serangoon Road (635671719)
- Way Upper Serangoon Road (477811642)
- Way Upper Serangoon Road (475120461)
- Way Upper Serangoon Road (475120462)
- Way Upper Serangoon Road (477637994)
- Way Upper Serangoon Road (633849943)
- Way Upper Serangoon Road (633849944)
- Way Upper Serangoon Road (475120467)
- Way Upper Serangoon Road (475120466)
- Way Upper Serangoon Road (475123613)
- Way Upper Serangoon Road (475123612)
- Way Upper Serangoon Road (583447169)
- Way Upper Serangoon Road (439183904)
- Way Upper Serangoon Road (439183918)
- Way Upper Serangoon Road (655136432)
- Way Upper Serangoon Road (655136433)
- Way Upper Serangoon Road (200295683)
- Way Upper Serangoon Road (477961055)
- Way 439183898
- Way 655147899
- Way Bendemeer Road (635757318)
- Way Bendemeer Road (173954645)
- Way Bendemeer Road (627302472)
- Way Bendemeer Road (74628587)
- Way Bendemeer Road (633837397)
- Way Bendemeer Road (176204378)
- Way Bendemeer Road (173779709)
- Way Bendemeer Road (173779712)
- Way Bendemeer Road (159684310)
- Way Bendemeer Road (546380408)
- Way Bendemeer Road (546381456)
- Way Bendemeer Road (650020088)
- Way Bendemeer Road (159684311)
- Way Bendemeer Road (650020084)
- Way Bendemeer Road (478326397)
- Way Bendemeer Road (173779706)
- Way Bendemeer Road (304918532)
- Way Bendemeer Road (170969781)
- Way Bendemeer Road (74665941)
- Way Bendemeer Road (650042070)
- Way Bendemeer Road (481099781)
- Way Bendemeer Road (650043221)
- Way Bendemeer Road (639288941)
- Way Bendemeer Road (481099782)
- Way Bendemeer Road (481116722)
- Way Bendemeer Road (585630283)
- Way Bendemeer Road (74587409)
- Way Bendemeer Road (633811402)
- Way Bendemeer Road (481100997)
- Way Bendemeer Road (173791983)
- Way Jalan Besar (21932007)
- Way Jalan Besar (651958652)
- Way Jalan Besar (666807163)
- Way Jalan Besar (74628594)
- Way Jalan Besar (633145190)
- Way Jalan Besar (633147807)
- Way Jalan Besar (666807162)
- Way Jalan Besar (633589852)
- Way Jalan Besar (633143449)
- Way Jalan Besar (633589851)
- Way Jalan Besar (481102409)
- Way Jalan Besar (21815901)
- Way Jalan Besar (481102412)
- Way Jalan Besar (539844638)
- Way Jalan Besar (654984132)
- Way Jalan Besar (481102416)
- Way Jalan Besar (654984131)
- Way Jalan Besar (539844639)
- Way Jalan Besar (654984926)
- Way Jalan Besar (654982349)
- Way Jalan Besar (654982348)
- Way Jalan Besar (480881489)
- Way Jalan Besar (480698846)
- Way Jalan Besar (539844637)
- Way Jalan Besar (481649582)
- Way Jalan Besar (539844636)
Way 481649580- Way Bencoolen Street (75120038)
- Way Bencoolen Street (585630258)
- Way Bencoolen Street (654880176)
- Way Bencoolen Street (174041988)
- Way Bencoolen Street (481649583)
- Way Bencoolen Street (481649584)
- Way Bencoolen Street (624378224)
- Way Bencoolen Street (624378225)
- Way Bencoolen Street (481650999)
- Way Bencoolen Street (465269954)
- Way Bencoolen Street (654995230)
- Way Bencoolen Street (661944137)
- Way Bencoolen Street (654995229)
- Way Bencoolen Street (661944135)
- Way Bencoolen Street (661946313)
- Way Bencoolen Street (661946312)
- Way Bencoolen Street (174407831)
- Way Bencoolen Street (654995228)
- Way Bencoolen Street (632225561)
- Way 475075257
- Way Bras Basah Road (661370852)
- Way Bras Basah Road (475075260)
- Way Bras Basah Road (479734995)
- Way Bras Basah Road (74731116)
- Way Victoria Street (647615471)
- Way Victoria Street (173792007)
- Way Victoria Street (647614988)
- Way Hill Street (21567384)
- Way Hill Street (480890499)
- Way Hill Street (480890501)
- Way Hill Street (633858561)
- Way Hill Street (633306762)
- Way Hill Street (538223060)
- Way Hill Street (465063291)
- Way New Bridge Road (22022182)
- Way New Bridge Road (35037532)
- Way New Bridge Road (535030467)
- Way New Bridge Road (35037531)
- Way New Bridge Road (480923439)
- Way New Bridge Road (480923440)
- Way New Bridge Road (480890502)
- Way New Bridge Road (174552503)
- Way New Bridge Road (174552504)
- Way New Bridge Road (535030470)
- Way New Bridge Road (479187685)
- Way New Bridge Road (479187684)
- Way New Bridge Road (480928875)
- Way New Bridge Road (535030441)
Way 75589913Way 480904769- Way New Bridge Road (480904768)
- Way New Bridge Road (633149629)
- Way New Bridge Road (536908873)
- Way New Bridge Road (173713417)
- Way New Bridge Road (661662014)
- Way New Bridge Road (661661915)
- Way New Bridge Road (480904772)
- Way New Bridge Road (480904773)
- Way New Bridge Road (481040696)
- Way New Bridge Road (481040695)
- Way New Bridge Road (633150695)
- Way New Bridge Road (536908872)
- Way New Bridge Road (536908869)
- Way New Bridge Road (536908867)
- Way New Bridge Road (652539254)
- Way New Bridge Road (652539253)
- Way New Bridge Road (75589916)
- Way New Bridge Road (632522919)
- Way New Bridge Road (173166879)
- Way New Bridge Road (587056880)
- Way New Bridge Road (74619447)
- Way New Bridge Road (635485028)
- Way New Bridge Road (635485027)
- Way New Bridge Road (156152574)
Way 638682242- Way New Bridge Road (582289729)
- Way Kampong Bahru Road (480684173)
- Way Kampong Bahru Road (173166868)
- Way Kampong Bahru Road (636919412)
- Way Kampong Bahru Road (636919413)
- Way Kampong Bahru Road (480684175)
- Way Kampong Bahru Road (480684178)
- Way Kampong Bahru Road (173166870)
- Way Kampong Bahru Road (536908860)
- Way Jalan Bukit Merah (22674911)
- Way Jalan Bukit Merah (634658663)
- Way Jalan Bukit Merah (633295504)
- Way Jalan Bukit Merah (481623200)
- Way Jalan Bukit Merah (481623199)
- Way Jalan Bukit Merah (536908856)
- Way Jalan Bukit Merah (481623205)
- Way Jalan Bukit Merah (481623201)
- Way Jalan Bukit Merah (477900834)
- Way Jalan Bukit Merah (75392757)
- Way Jalan Bukit Merah (539466151)
- Way Jalan Bukit Merah (633275026)
- Way Jalan Bukit Merah (481623209)
- Way Jalan Bukit Merah (481623214)
- Way Jalan Bukit Merah (265150806)
- Way Jalan Bukit Merah (634521910)
- Way Jalan Bukit Merah (481623223)
- Way Jalan Bukit Merah (481623221)
- Way Jalan Bukit Merah (635173284)
- Way Jalan Bukit Merah (481623239)
- Way Jalan Bukit Merah (265150805)
- Way Jalan Bukit Merah (535333383)
- Way Jalan Bukit Merah (74619412)
- Way Jalan Bukit Merah (22675498)
- Way Jalan Bukit Merah (535333386)
- Way Jalan Bukit Merah (630397080)
- Way Jalan Bukit Merah (75488163)
- Way Jalan Bukit Merah (637050768)
- Way Jalan Bukit Merah (632849778)
- Way Jalan Bukit Merah (535363229)
- Way Jalan Bukit Merah (537070030)
- Way Jalan Bukit Merah (535363230)
- Way Jalan Bukit Merah (632504701)
- Way Jalan Bukit Merah (632504699)
- Way Jalan Bukit Merah (74619417)
- Way Jalan Bukit Merah (661312629)
- Way Jalan Bukit Merah (633568327)
- Way Jalan Bukit Merah (632833666)
- Way Jalan Bukit Merah (661086950)
- Way Jalan Bukit Merah (632230308)
- Way Jalan Bukit Merah (632230309)
- Way Jalan Bukit Merah (75394081)
- Way Jalan Bukit Merah (661086734)
- Way Jalan Bukit Merah (661086735)
- Way Jalan Bukit Merah (656727991)
- Way Jalan Bukit Merah (637712224)
- Way Jalan Bukit Merah (661312197)
- Way Jalan Bukit Merah (633328211)
- Way Jalan Bukit Merah (633328210)
Way 632826876- Way Jalan Bukit Merah (536908922)
- Way Jalan Bukit Merah (632826872)
- Way Jalan Bukit Merah (537069591)
- Way Jalan Bukit Merah (537069588)
- Way Jalan Bukit Merah (632506923)
- Way Jalan Bukit Merah (636809109)
- Way Jalan Bukit Merah (650027165)
- Way Jalan Bukit Merah (536908929)
- Way Jalan Bukit Merah (654722539)
- Way Jalan Bukit Merah (632509707)
- Way Jalan Bukit Merah (634090117)
- Way Jalan Bukit Merah (75394083)
- Way Jalan Bukit Merah (651101525)
- Way Jalan Bukit Merah (538861067)
- Way Jalan Bukit Merah (634090114)
- Way Jalan Bukit Merah (649423490)
- Way Jalan Bukit Merah (649423491)
- Way Jalan Bukit Merah (173166863)
- Way Jalan Bukit Merah (75007299)
- Way Queensway (22964470)
- Way Queensway (634102483)
- Way Queensway (654850832)
- Way Queensway (654850831)
- Way Queensway (173779742)
- Way Queensway (654850830)
- Way Queensway (536908950)
- Way Queensway (536908953)
- Way Queensway (654736627)
- Way Queensway (536908960)
- Way Queensway (660404568)
- Way Queensway (634216323)
- Way Queensway (464822173)
- Way Queensway (634213987)
- Way Queensway (539454812)
- Way Queensway (22964202)
- Way Queensway (479608887)
- Way Queensway (74863995)
- Way Queensway (478127211)
- Way Queensway (478127210)
- Way Queensway (22964473)
- Way Queensway (478126985)
- Way Queensway (478126984)
- Way Queensway (480882778)
- Way 22964466
- Way Commonwealth Avenue (75068662)
- Way Commonwealth Avenue (660359331)
- Way Commonwealth Avenue (536908838)
- Way Commonwealth Avenue (652536694)
- Way Commonwealth Avenue (652536693)
- Way Commonwealth Avenue (173779731)
- Way Commonwealth Avenue (630389669)
- Way Commonwealth Avenue (75004336)
- Way Commonwealth Avenue (660362915)
Way 173767661- Way Commonwealth Avenue (479616086)
- Way Commonwealth Avenue (479616087)
- Way Commonwealth Avenue (652291042)
- Way Commonwealth Avenue (173166855)
- Way Commonwealth Avenue West (538766137)
- Way Commonwealth Avenue West (22061429)
- Way Commonwealth Avenue West (173896171)
- Way Commonwealth Avenue West (655620659)
- Way Commonwealth Avenue West (655620660)
- Way Commonwealth Avenue West (640192073)
- Way Commonwealth Avenue West (655619091)
- Way Commonwealth Avenue West (173767663)
- Way Commonwealth Avenue West (581579790)
- Way Commonwealth Avenue West (481671872)
- Way Commonwealth Avenue West (481671869)
- Way Commonwealth Avenue West (539676361)
- Way Commonwealth Avenue West (480233402)
- Way Commonwealth Avenue West (582540344)
- Way Commonwealth Avenue West (652536000)
- Way Commonwealth Avenue West (652535999)
- Way Commonwealth Avenue West (536908836)
- Way Commonwealth Avenue West (652535998)
- Way Commonwealth Avenue West (536908834)
- Way Commonwealth Avenue West (638466078)
- Way Commonwealth Avenue West (630091334)
- Way Commonwealth Avenue West (639056019)
- Way Commonwealth Avenue West (75007271)
- Way Commonwealth Avenue West (641556744)
- Way Commonwealth Avenue West (660099367)
- Way Commonwealth Avenue West (634707158)
- Way Commonwealth Avenue West (634707164)
- Way Commonwealth Avenue West (634707161)
- Way Commonwealth Avenue West (660099365)
- Way Commonwealth Avenue West (660099366)
- Way Commonwealth Avenue West (634707177)
- Way Commonwealth Avenue West (75007266)
- Way Commonwealth Avenue West (536908833)
- Way Commonwealth Avenue West (594262560)
- Way Commonwealth Avenue West (649150489)
- Way Commonwealth Avenue West (74887696)
- Way Commonwealth Avenue West (632227700)
- Way Commonwealth Avenue West (325024322)
- Way Commonwealth Avenue West (655621810)
- Way Commonwealth Avenue West (632228201)
- Way Commonwealth Avenue West (445282911)
- Way Commonwealth Avenue West (594262549)
- Way Commonwealth Avenue West (635649512)
- Way Commonwealth Avenue West (75009416)
- Way Commonwealth Avenue West (635649511)
- Way Commonwealth Avenue West (539446919)
- Way Commonwealth Avenue West (632501544)
- Way Commonwealth Avenue West (481847670)
- Way Commonwealth Avenue West (481847669)
- Way Commonwealth Avenue West (481626963)
- Way Commonwealth Avenue West (480687897)
- Way Clementi Avenue 3 (594262591)
- Way Clementi Bus Interchange (173767949)
- Way Clementi Bus Interchange (465236871)
Welcome to OpenStreetMap!
OpenStreetMap is a map of the world, created by people like you and free to use under an open license.
Hosting is supported by Fastly, OSMF corporate members, and other partners.
https://openstreetmap.org/copyright | https://openstreetmap.org |
Copyright OpenStreetMap and contributors, under an open license |