VPN ਪਿੱਛੇ QGIS ਨੂੰ PostGIS ਨਾਲ ਜੋੜੋ: ਕਦਮ-ਦਰ-ਕਦਮ
VPN ਪਿੱਛੇ PostGIS ਜਾਂ WMS ਵੱਲ QGIS ਨੂੰ ਇਸ਼ਾਰਾ ਕਰੋ: ਟਨਲ ਨੂੰ ਸੇਵਾ ਐਂਡਪੌਇੰਟ ਤੋਂ ਵੱਖ ਰੱਖੋ, verify-full TLS ਬਣਾਈ ਰੱਖੋ ਅਤੇ ਹਰ ਸੀਮਾ ਨੂੰ ਕ੍ਰਮ ਵਿੱਚ ਜਾਂਚੋ।
QGIS ਉਹ ਹਰ ਮਾਰਗ ਪੜ੍ਹਦਾ ਹੈ ਜਿਸ ਤੱਕ ਉਸ ਦੇ ਡੇਟਾ ਪ੍ਰਦਾਤਾ ਪਹੁੰਚ ਸਕਦੇ ਹਨ, ਇਸ ਲਈ ਚਾਲੂ VPN ਸੈੱਟਅੱਪ ਦਾ ਸਿਰਫ਼ ਅੱਧਾ ਹਿੱਸਾ ਹੈ। ਟਨਲ ਡੈਸਕਟਾਪ ਨੂੰ ਇੱਕ ਰੂਟ ਅਤੇ ਨਾਮ-ਹੱਲ ਨੀਤੀ ਦਿੰਦਾ ਹੈ; ਪਰੋਜੈਕਟ ਨੂੰ ਅਜੇ ਵੀ ਸੇਵਾ ਐਂਡਪੌਇੰਟ, ਪ੍ਰਦਾਤਾ ਦਾ ਪ੍ਰੋਟੋਕਾਲ ਅਤੇ ਉਹ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਚਾਹੀਦੇ ਹਨ ਜੋ ਸੇਵਾ ਸਵੀਕਾਰ ਕਰੇਗੀ। ਇਹ ਤਿੰਨ ਵੱਖਰੀਆਂ ਐਂਟਰੀਆਂ ਹਨ, ਅਤੇ VPN ਦੇ ਜਨਤਕ ਸਰੋਤੇ ਨੂੰ ਡੇਟਾਬੇਸ ਖੇਤਰ ਵਿੱਚ ਟਾਈਪ ਕਰਨਾ ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਨਹੀਂ ਹੈ। ਇਹ ਗਾਈਡ QGIS ਫਾਰਮ ਤੋਂ ਵਾਪਸ ਮਿਲੀ ਕਤਾਰ ਤੱਕ ਇੱਕ PostGIS ਪਰਤ ਦਾ ਪਿੱਛਾ ਕਰਦੀ ਹੈ ਅਤੇ ਉਸ ਸੀਮਾ ਦਾ ਨਾਮ ਦਿੰਦੀ ਹੈ ਜੋ ਹਰ ਕਦਮ ਸਾਬਤ ਕਰਦਾ ਹੈ।
VPN ਤੋਂ ਨਹੀਂ, ਪਰਤ ਤੋਂ ਸ਼ੁਰੂ ਕਰੋ
ਹਰ ਪਰਤ ਕਿਸਮ ਵੱਖਰੀ ਕਿਸਮ ਦੇ ਐਂਡਪੌਇੰਟ ਤੱਕ ਪਹੁੰਚਦੀ ਹੈ। PostGIS ਪਰਤ ਹੋਸਟ, ਪੋਰਟ, ਡੇਟਾਬੇਸ ਅਤੇ ਭੂਮਿਕਾ ਨਾਲ PostgreSQL ਕਨੈਕਸ਼ਨ ਖੋਲ੍ਹਦੀ ਹੈ। WMS ਜਾਂ WFS ਪਰਤ ਸੇਵਾ URL ਲਿਆਉਂਦੀ ਹੈ ਅਤੇ ਫਿਰ ਸਮਰੱਥਾ ਦਸਤਾਵੇਜ਼ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਦੀ ਹੈ। ਨੈੱਟਵਰਕ ਸ਼ੇਅਰ ਉੱਤੇ shapefile ਨੂੰ ਸਿਰਫ਼ ਉਹ ਫਾਈਲ ਮਾਰਗ ਚਾਹੀਦਾ ਹੈ ਜੋ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਖੋਲ੍ਹ ਸਕੇ। ਇਹ ਤਿੰਨ ਵੱਖਰੀਆਂ ਕਾਰਜਵਿਧੀਆਂ ਹਨ, ਇਸ ਲਈ ਖਾਲੀ ਪਰੋਜੈਕਟ ਤੁਹਾਨੂੰ ਕੁਝ ਨਹੀਂ ਦੱਸਦਾ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਨਹੀਂ ਜਾਣਦੇ ਕਿ ਕਿਸ ਨੂੰ ਡੀਬੱਗ ਕਰ ਰਹੇ ਹੋ।
GIS ਆਪਰੇਟਰ ਨੂੰ ਐਂਡਪੌਇੰਟ, ਪੋਰਟ, ਲੋੜੀਂਦੀ ਪਛਾਣ ਅਤੇ ਤੁਹਾਡੇ ਖਾਤੇ ਉੱਤੇ ਲਾਗੂ ਪਹੁੰਚ ਨੀਤੀ ਬਾਰੇ ਪੁੱਛੋ। ਜਦੋਂ ਤੈਨਾਤੀ ਨਿੱਜੀ DNS ਜਾਂ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਵਿੱਚ ਨਾਮ-ਜਾਂਚ ਉੱਤੇ ਨਿਰਭਰ ਹੋਵੇ ਤਾਂ ਸੇਵਾ ਹੋਸਟਨਾਮ ਨੂੰ ਜਾਰੀ ਹੋਇਆ ਹੀ ਰੱਖੋ। ਕਿਸੇ ਹੋਰ ਵਰਤੋਂਕਾਰ ਦੇ ਸੰਭਾਲੇ ਕਨੈਕਸ਼ਨ ਤੋਂ ਨਕਲ ਕੀਤਾ ਹੋਸਟ ਪਤਾ ਦੁਬਾਰਾ ਵਰਤਣਾ ਉਸ ਮਸ਼ੀਨ ਤੱਕ ਪਹੁੰਚਣ ਦਾ ਸਭ ਤੋਂ ਤੇਜ਼ ਰਾਹ ਹੈ ਜੋ ਜਵਾਬ ਦਿੰਦੀ ਹੈ ਪਰ ਪੁਰਾਣਾ ਡੇਟਾਬੇਸ ਰੱਖਦੀ ਹੈ।
ਰੂਟ, ਮਨਜ਼ੂਰ ਸਰੋਤ ਅਤੇ ਨਾਮ-ਹੱਲ VPN ਚਲਾਉਣ ਵਾਲੇ ਦੇ ਹਨ। ਡੇਟਾ-ਸਰੋਤ ਫਾਰਮ ਉਹ ਰੂਟ ਨਹੀਂ ਲਗਾ ਸਕਦਾ ਜੋ ਟਨਲ ਪਰੋਫਾਈਲ ਨੇ ਕਦੇ ਨਹੀਂ ਭੇਜਿਆ, ਅਤੇ ਇਹ ਗੇਟਵੇ ਨੀਤੀ ਨੂੰ ਚੌੜਾ ਨਹੀਂ ਕਰ ਸਕਦਾ। ਜਦੋਂ ਹੋਸਟ ਹੱਲ ਹੋ ਜਾਵੇ ਅਤੇ ਪੋਰਟ ਜਵਾਬ ਦੇਵੇ, ਸਮੱਸਿਆ ਦਾ ਨੈੱਟਵਰਕ ਪਾਸਾ ਖ਼ਤਮ ਹੈ।
ਆਪਰੇਟਰ ਵੱਲੋਂ ਜਾਰੀ ਨਿੱਜੀ ਐਂਡਪੌਇੰਟ ਦਰਜ ਕਰੋ
QGIS ਵਿੱਚ PostgreSQL ਫਾਰਮ libpq ਦੁਆਰਾ ਉਮੀਦ ਕੀਤੇ ਖੇਤਰ ਦਿਖਾਉਂਦਾ ਹੈ, ਇਸ ਲਈ ਇਸ ਨੂੰ ਉਸੇ ਕ੍ਰਮ ਵਿੱਚ ਭਰੋ ਜਿਸ ਕ੍ਰਮ ਵਿੱਚ ਕਮਾਂਡ-ਲਾਈਨ ਕਨੈਕਸ਼ਨ ਭਰਦਾ। ਸੇਵਾ ਅਤੇ ਹੋਸਟ ਡੇਟਾਬੇਸ ਮਸ਼ੀਨ ਲੈਂਦੇ ਹਨ, ਪੋਰਟ ਉਹ ਸਰੋਤਾ ਲੈਂਦਾ ਹੈ ਜੋ ਸਰਵਰ ਅਸਲ ਵਿੱਚ ਖੋਲ੍ਹਦਾ ਹੈ, ਅਤੇ ਡੇਟਾਬੇਸ ਸਰਵਰ ਦੇ ਡਿਫ਼ਾਲਟ ਦੀ ਥਾਂ ਖਾਸ ਕੈਟਾਲਾਗ ਲੈਂਦਾ ਹੈ। ਪਾਸਵਰਡ ਪਰੋਜੈਕਟ ਫਾਈਲ ਵਿੱਚ ਨਹੀਂ, ਪ੍ਰਮਾਣੀਕਰਨ ਸੰਰਚਨਾ ਵਿੱਚ ਰੱਖੋ, ਤਾਂ ਜੋ ਸਾਂਝਾ ਪਰੋਜੈਕਟ ਪ੍ਰਮਾਣ ਨਾ ਚੁੱਕੇ।
ਕੁਝ ਵੀ ਟਾਈਪ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਦੋਵੇਂ ਨਾਮ ਵੱਖ ਕਰੋ। ਗੇਟਵੇ ਦਾ ਨਾਮ VPN ਕਲਾਇੰਟ ਵਿੱਚ ਅਤੇ ਡੇਟਾਬੇਸ ਦਾ ਨਾਮ QGIS ਵਿੱਚ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਇਹ ਘੱਟ ਹੀ ਇੱਕੋ ਹੋਸਟ ਹੁੰਦੇ ਹਨ।
VPN gateway: vpn.gis.lab.example (profile only, not a data source)
Database host: db.gis.lab.example:5432 (PostGIS service)
Database name: gis_prod
TLS mode: verify-full
ਜੇ ਡੇਟਾਬੇਸ ਗੇਟਵੇ ਪਿੱਛੇ ਕਿਸੇ ਹੋਰ ਮਸ਼ੀਨ ਉੱਤੇ ਹੈ, ਤਾਂ ਫਾਰਮ ਵਿੱਚ ਨਾਮ ਉਹੀ ਮਸ਼ੀਨ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਟਨਲ ਰਾਹੀਂ ਨਿੱਜੀ DNS ਹੀ ਨਾਮ ਨੂੰ ਕੰਮ ਕਰਾਉਂਦਾ ਹੈ, ਅਤੇ ਜੋ ਪਰੋਜੈਕਟ ਸਿਰਫ਼ ਜੁੜੇ ਹੋਣ ਵੇਲੇ ਹੱਲ ਹੁੰਦਾ ਹੈ ਉਹ ਮਾੜਾ ਕੈਸ਼ ਕਰਨ ਦੀ ਥਾਂ ਸਹੀ ਵਿਵਹਾਰ ਕਰ ਰਿਹਾ ਹੈ।
ਡੇਟਾਬੇਸ ਦਾ TLS ਮੋਡ ਟਨਲ ਤੋਂ ਵੱਖ ਰੱਖੋ
VPN ਉਤਪਾਦ ਦੇ ਨਾਮ ਵਿੱਚ SSL ਟਨਲ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ, ਡੇਟਾਬੇਸ ਸੈਸ਼ਨ ਦਾ ਨਹੀਂ। QGIS PostgreSQL SSL ਮੋਡ libpq ਨੂੰ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਉਹ ਮੋਡ ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਕਲਾਇੰਟ ਸਰਵਰ ਦਾ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਤਸਦੀਕ ਕਰਦਾ ਹੈ ਜਾਂ ਨਹੀਂ ਅਤੇ ਉਸ ਵਿੱਚਲਾ ਹੋਸਟਨਾਮ ਜਾਂਚਦਾ ਹੈ ਜਾਂ ਨਹੀਂ। verify-fullਦੋਵੇਂ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਜਦੋਂ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਵਿੱਚ ਸੇਵਾ ਦਾ ਨਾਮ ਹੋਵੇ ਤਾਂ ਇਹੀ ਮੋਡ ਰੱਖਣ ਯੋਗ ਹੈ।
ਮੋਡ ਨੂੰ disable ਤੱਕ ਘਟਾਉਣਾ, ਕਿਉਂਕਿ ਟਨਲ ਪਹਿਲਾਂ ਹੀ ਐਨਕ੍ਰਿਪਟ ਹੈ, ਇਹ ਜਾਂਚ ਹਟਾ ਦਿੰਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਜਿਸ ਸਰਵਰ ਤੱਕ ਪਹੁੰਚੇ ਉਹੀ ਸਰਵਰ ਹੈ ਜਿਸ ਦੀ ਤੁਸੀਂ ਮੰਗ ਕੀਤੀ। ਜਦੋਂ ਤਸਦੀਕ ਫੇਲ੍ਹ ਹੋਵੇ, ਆਮ ਕਾਰਨ ਨਾਮ ਦਾ ਮੇਲ ਨਾ ਖਾਣਾ ਜਾਂ ਮੂਲ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਦੀ ਗੈਰਹਾਜ਼ਰੀ ਹੈ, ਅਤੇ ਦੋਵੇਂ ਕਨੈਕਸ਼ਨ ਕਮਜ਼ੋਰ ਕੀਤੇ ਬਿਨਾਂ ਠੀਕ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ। sslrootcert ਨੂੰ ਆਪਰੇਟਰ ਵੱਲੋਂ ਪ੍ਰਕਾਸ਼ਿਤ CA ਵੱਲ ਇਸ਼ਾਰਾ ਕਰੋ ਅਤੇ ਫਾਰਮ ਵਿੱਚ ਹੋਸਟਨਾਮ ਨੂੰ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਦੇ ਨਾਮ ਨਾਲ ਇੱਕੋ ਜਿਹਾ ਰੱਖੋ.
ਨਿੱਜੀ ਰੂਟ ਵਾਲਾ ਟਨਲ ਅਤੇ ਵੈਧ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਵਾਲਾ ਡੇਟਾਬੇਸ ਫਿਰ ਵੀ ਭੂਮਿਕਾ ਉੱਤੇ ਫੇਲ੍ਹ ਹੋ ਸਕਦੇ ਹਨ। ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਪ੍ਰਮਾਣ VPN ਦੇ ਵੱਖਰੇ ਹਨ, ਅਤੇ ਗੇਟਵੇ ਉੱਤੇ ਪ੍ਰਮਾਣਿਤ ਹੋਣ ਵਾਲੇ ਖਾਤੇ ਨੂੰ PostgreSQL ਵਿੱਚ ਕੋਈ ਅਪ੍ਰਤੱਖ ਅਧਿਕਾਰ ਨਹੀਂ ਹੁੰਦਾ।
ਹਰ ਸੀਮਾ ਨੂੰ ਕ੍ਰਮ ਵਿੱਚ ਜਾਂਚੋ ਅਤੇ ਪਹਿਲੀ ਅਸਫ਼ਲਤਾ ਪੜ੍ਹੋ
ਕਲਾਇੰਟ ਤੋਂ ਬਾਹਰ ਵੱਲ ਇੱਕ ਨਿਸ਼ਚਿਤ ਕ੍ਰਮ ਵਿੱਚ ਕੰਮ ਕਰੋ: ਨਾਮ-ਹੱਲ, TCP ਪਹੁੰਚ, TLS, ਪ੍ਰਮਾਣੀਕਰਨ ਅਤੇ ਫਿਰ ਸਵਾਲ ਆਪ। ਪਹਿਲਾ ਅਸਫ਼ਲ ਕਦਮ ਹੀ ਰਿਪੋਰਟ ਕਰਨ ਯੋਗ ਹੈ, ਅਤੇ ਅੱਗੇ ਛਾਲ ਮਾਰਨ ਨਾਲ ਉਸ ਸੀਮਾ ਦੇ ਗਲਤੀ ਸੁਨੇਹੇ ਆਉਂਦੇ ਹਨ ਜਿੱਥੇ ਤੁਸੀਂ ਅਜੇ ਨਹੀਂ ਪਹੁੰਚੇ। ਚਾਰ ਹੁਕਮ ਪਹਿਲੇ ਚਾਰ ਕਦਮ ਕਵਰ ਕਰਦੇ ਹਨ।
getent hosts db.gis.lab.example
nc -vz db.gis.lab.example 5432
psql "host=db.gis.lab.example port=5432 dbname=gis_prod sslmode=verify-full" -c 'select 1'
curl -sS 'https://wms.gis.lab.example/ows?service=WMS&request=GetCapabilities' | head -c 200
getent ਤੋਂ ਖਾਲੀ ਜਵਾਬ ਨਾਮ-ਹੱਲ ਸਮੱਸਿਆ ਹੈ, ਡੇਟਾਬੇਸ ਸਮੱਸਿਆ ਨਹੀਂ। ਰੱਦ ਕੀਤਾ ਜਾਂ ਸਮਾਂ ਖ਼ਤਮ ਹੋਇਆ nc ਭਾਵ ਰੂਟ ਜਾਂ firewall ਨਿਯਮ ਗਾਇਬ ਹੈ, ਜੋ ਗੇਟਵੇ ਪਾਸੇ ਦਾ ਸੁਧਾਰ ਹੈ। psql ਤੋਂ TLS ਗਲਤੀ ਭਾਵ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਜਾਂ ਨਾਮ ਗਲਤ ਹੈ, ਜਦੋਂ ਕਿ password authentication failed ਭਾਵ ਤੁਸੀਂ PostgreSQL ਤੱਕ ਪਹੁੰਚੇ ਅਤੇ ਸਮੱਸਿਆ ਪ੍ਰਮਾਣ ਵਿੱਚ ਹੈ। WMS ਪਰਤ ਲਈ, curl ਕਾਲ ਉਹ ਸਮਰੱਥਾ XML ਵਾਪਸ ਦਿੰਦੀ ਹੈ ਜੋ QGIS ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਦਾ, ਇਸ ਲਈ ਉਸ ਆਉਟਪੁੱਟ ਵਿੱਚ HTML ਲੌਗਇਨ ਪੰਨਾ ਖਾਲੀ ਪਰਤ ਦੀ ਤੁਰੰਤ ਵਿਆਖਿਆ ਕਰਦਾ ਹੈ।
ਸਮਾਂ ਖ਼ਤਮ ਹੋਣ ਦੇ ਮੁਕਾਬਲੇ PostgreSQL ਗਲਤੀ ਚੰਗੀ ਖ਼ਬਰ ਹੈ। ਇਹ ਸਾਬਤ ਕਰਦੀ ਹੈ ਕਿ ਟਿਕਾਣੇ ਨੇ ਜਵਾਬ ਦਿੱਤਾ, ਜੋ ਟਿਕਟ ਨੂੰ ਨੈੱਟਵਰਕ ਟੀਮ ਤੋਂ ਡੇਟਾਬੇਸ ਜਾਂ GIS ਪ੍ਰਬੰਧਕ ਕੋਲ ਭੇਜਦਾ ਹੈ। ਰਿਪੋਰਟ ਵਿੱਚ ਇਹ ਫ਼ਰਕ ਬਣਾਈ ਰੱਖਣਾ ਇੱਕ ਚੱਕਰ ਬਚਾਉਂਦਾ ਹੈ।
ਜਦੋਂ ਪਰੋਜੈਕਟ ਖਾਲੀ ਪਰਤਾਂ ਨਾਲ ਖੁੱਲ੍ਹਦਾ ਹੈ
QGIS ਦੇ ਅੰਦਰ, ਕੁਝ ਵੀ ਦੁਬਾਰਾ ਦਰਜ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਪਰਤ ਦਾ ਸੰਭਾਲਿਆ ਸਰੋਤ ਜਾਂਚੋ। ਪਰਤ ਦੇ ਗੁਣ ਪਰੋਜੈਕਟ ਵੱਲੋਂ ਸੰਭਾਲੀ ਗਈ ਸਹੀ ਕਨੈਕਸ਼ਨ ਸਤਰ ਦਿਖਾਉਂਦੇ ਹਨ, ਅਤੇ ਪੁਰਾਣੇ ਹੋਸਟ ਵਾਲੀ ਦੁਹਰਾਈ ਕਨੈਕਸ਼ਨ ਐਂਟਰੀ ਪਿਛਲੇ ਦਫ਼ਤਰ ਨੈੱਟਵਰਕ ਦੀ ਆਮ ਬਚੀ ਚੀਜ਼ ਹੈ। ਕਨੈਕਸ਼ਨ ਠੀਕ ਕਰਨ ਮਗਰੋਂ ਪਰੋਜੈਕਟ ਮੁੜ ਲੋਡ ਕਰਨਾ ਹਮੇਸ਼ਾ ਪ੍ਰਦਾਤਾ ਨੂੰ ਮੁੜ ਨਹੀਂ ਪੜ੍ਹਦਾ, ਇਸ ਲਈ ਪਰਤ ਹਟਾਓ ਅਤੇ ਸੁਧਰੇ ਕਨੈਕਸ਼ਨ ਤੋਂ ਮੁੜ ਜੋੜੋ।
ਫਿਰ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਪ੍ਰਮਾਣੀਕਰਨ ਸੰਰਚਨਾ ਪਰਤ ਨਾਲ ਜੁੜੀ ਹੈ, ਸਿਰਫ਼ ਸੂਚੀ ਵਿੱਚ ਮੌਜੂਦ ਨਹੀਂ। ਵੱਖਰੀ ਪ੍ਰਮਾਣੀਕਰਨ ਸੰਰਚਨਾ ਨਾਲ ਸੰਭਾਲੀ ਪਰਤ ਬ੍ਰਾਊਜ਼ਰ ਪੈਨਲ ਵਿੱਚ ਚੁੱਪਚਾਪ ਫੇਲ੍ਹ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ ਕਿ ਸੁਤੰਤਰ psql ਜਾਂਚ ਪਾਸ ਹੁੰਦੀ ਹੈ।
ਜਦੋਂ ਪਰਤ ਲੋਡ ਹੋਵੇ, ਪਰੋਜੈਕਟ ਨੂੰ ਸਿਰਫ਼ ਫਾਈਲਾਂ ਲਈ ਸਾਪੇਖ ਮਾਰਗਾਂ ਨਾਲ ਸੰਭਾਲੋ ਅਤੇ ਸੇਵਾ ਕਨੈਕਸ਼ਨਾਂ ਨੂੰ ਉਹਨਾਂ ਦੇ ਐਂਡਪੌਇੰਟ ਦੇ ਨਾਮ ਨਾਲ ਰੱਖੋ। ਪਰੋਜੈਕਟ ਵਿਰਾਸਤ ਵਿੱਚ ਪਾਉਣ ਵਾਲਾ ਅਗਲਾ ਵਿਅਕਤੀ ਟਿਕਟ ਖੋਲ੍ਹੇ ਬਿਨਾਂ ਦੱਸ ਸਕੇਗਾ ਕਿ ਟੁੱਟੀ ਪਰਤ ਕਿਹੜੇ ਹੋਸਟ ਦੀ ਉਮੀਦ ਕਰ ਰਹੀ ਸੀ।