# Property24 Scraper \[Only $0.04💰] | SA House Prices | Rentals (`ahmed_jasarevic/property24-scraper`) Actor

Extract Property24.com (South Africa) property data — for-sale, to-rent and bank repossessed listings with price ZAR, beds/baths, floor & erf size, suburb/city/province, GPS, levies & rates, photos, agent contacts and agency details. Export as JSON, CSV or Excel via API.

- **URL**: https://apify.com/ahmed\_jasarevic/property24-scraper.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.45 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Property24 Scraper — South Africa Property Data, Prices & Rentals

Extract **Property24.com (South Africa) property data** — for-sale, to-rent and bank repossessed listings — with price in ZAR, property type, beds/baths/garages, floor & erf size, suburb/city/province + GPS coordinates, levies & rates, full description, features, photos, and the listing agent + agency details. Every record includes **agent contact data (phone, email, WhatsApp)** and full-resolution photos by default, so the output is ready for market research, price monitoring, lead generation and AI/proptech datasets.

### Main Use Cases

- **South Africa property market research** — build suburb-level datasets of asking prices, property types and listing volumes for reports and competitor analysis
- **Property price monitoring** — track asking prices per suburb or city over time for valuation work and buyer intelligence
- **Bank repossessed property scouting** — find repossessed, bank-assisted and sale-in-execution stock in a single run for investors and fix-and-flip buyers
- **Estate agent lead generation** — collect agent names, agencies, phone numbers, emails and WhatsApp links from active listings
- **Rental price and buy-to-let yield analysis** — pair to-rent listings with for-sale prices to estimate gross rental yields per suburb
- **Building structured property datasets for proptech & AI** — clean JSON output with 48 fields per listing, ready for ML models, dashboards and LLM pipelines

### How It Works

Property24 serves all search and listing data in **server-rendered HTML** (no JavaScript rendering needed), including an embedded JSON-LD `RealEstateListing` schema on every detail page. This actor runs a **CheerioCrawler** (plain HTTP, no browser): it starts from one or more Property24 search URLs, follows pagination automatically within the same search scope, and extracts each listing's full detail from the page HTML + embedded JSON payload. Results land in your Apify dataset as JSON, CSV or Excel.

The actor bypasses Property24's **ThreatMetrix anti-bot protection** using the Apify residential proxy (configured by default) — no browser, no CAPTCHAs, keeping runs cheap and reliable.

### Extract South Africa Property Data for Market Research

One property24 search URL (e.g. `https://www.property24.com/for-sale/cape-town/western-cape/1`) turns an entire suburb or city into a structured dataset. Add multiple start URLs — one per suburb, city or province — to cover whole regions: houses, apartments, townhouses, vacant land, farms and commercial properties, with asking price, room counts, floor & erf size, levies, rates and sales-type flags per listing.

### Monitor Property Prices by Suburb or City

Schedule the actor daily or weekly (Apify Schedules, or via API) and diff the datasets between runs to detect **new listings, price drops and delistings** per suburb. South Africa's residential property prices grew ~7.9–8.6% YoY through 2026 (Stats SA RPPI; Western Cape +12.6%, Gauteng +4.8%) — price monitoring on live asking prices is a direct, up-to-date complement to index data.

### Find Bank Repossessed Properties for Investment

Use `https://www.property24.com/repossessions` as a start URL (or append `?sp=r=True` to any for-sale URL) to pull **repossessed, bank-assisted and sale-in-execution listings** — the same distressed stock banks list via FNB, Absa, Standard Bank and Nedbank. Records include the `repossessed` flag, POA/auction price display handling, and the agent/agency that holds the mandate, so investors can shortlist and contact the owner-agent immediately.

### Build Estate Agent Lead Lists from Listing Data

Every record carries the **listing agent** (`agentName`, `agentProfileUrl`, `agentPhotoUrl`), **agency** (`agencyName`, `agencyUrl`, `agencyLogo`) and — with enrichment on (default) — **agent phones, email and WhatsApp link**. Filter by suburb, price band or property type to build focused prospect lists for CRM, canvassing or agency outreach, all from publicly published listing pages.

### Analyze Rental Prices and Buy-to-Let Yields

Combine `to-rent` searches (e.g. `https://www.property24.com/to-rent/cape-town/western-cape/1`) with `for-sale` searches for the same suburbs to compute **gross rental yields** from live asking prices and asking rents — no spreadsheet scraping required. Rental-specific fields (`deposit`, `petsAllowed`, `furnished`, `occupationDate`) keep the rental dataset analysis-ready.

### Input — Configure Your Property24 Search

| Field | Type | Required | Default | Notes |
|-------|------|----------|---------|-------|
| `startUrls` | array | ✅ | Pretoria for-sale, Cape Town to-rent, repossessions | Property24 search page URLs; any for-sale, to-rent or repossessions URL. Pagination is followed automatically within the same search scope (out-of-scope pager links are skipped). |
| `maxItems` | integer | — | 50 | Max listing detail pages to scrape (min 1, max 100,000). **Free accounts are hard-capped at 10.** |
| `enrichDetails` | boolean | — | `true` | Enrich each listing with full-res photos, thumbnails, floor plans, video tour, and agent contacts (phones, WhatsApp, email). Adds one "enrichment" charge event per listing. Set `false` for a leaner, cheaper scrape (gallery thumbnails only, no contacts). |
| `proxy` | object | — | Apify residential, `useApifyProxy: true` | **Residential proxy is required** — Property24's ThreatMetrix blocks datacenter IPs. Supply your own residential proxy via `useApifyProxy: false` + options if preferred. |

### Output — Structured Fields for Every Listing

| Field | Description |
|-------|-------------|
| `listingNumber` / `listingUrl` | Property24 reference + canonical listing URL |
| `searchType` | `for-sale`, `to-rent` or `repossessions` |
| `title` / `description` | Listing headline + full description |
| `priceZar` / `priceDisplay` / `priceCurrency` | Price as number (ZAR), as displayed, currency (ZAR) |
| `propertyType` | House, Apartment/Flat, Townhouse, Vacant Land, Farm, Commercial… |
| `bedrooms` / `bathrooms` / `garages` / `parking` | Room counts (numbers where the site publishes them) |
| `floorSize` / `erfSize` | Floor area and erf/plot size (m²) |
| `streetAddress` / `suburb` / `city` / `province` / `country` | Location breakdown, incl. South Africa |
| `latitude` / `longitude` | Map coordinates |
| `levies` / `ratesAndTaxes` / `deposit` | Monthly carrying costs (where shown) |
| `petsAllowed` / `furnished` / `listingDate` / `occupationDate` | Rental-flag fields and dates |
| `features` / `floorPlans` / `videoTourId` | Feature chips, floor-plan images, YouTube tour ID (enrichment) |
| `repossessed` | `true` for bank-assisted / sale-in-execution stock (when published) |
| `photos` / `photosCount` / `photoThumbnails` / `mainImageUrl` | Full-res + thumbnail photo sets (enrichment) |
| `agentName` / `agentProfileUrl` / `agentPhotoUrl` | Listing agent |
| `agentPhones` / `agentEmail` / `agentWhatsapp` | Agent contacts (enrichment, only data the page publishes) |
| `agencyName` / `agencyUrl` / `agencyLogo` | Estate agency |
| `eaabReg` | EAAB registration number (only when the page shows it) |

### Example Input

```json
{
  "startUrls": [
    { "url": "https://www.property24.com/for-sale/pretoria/gauteng/1" },
    { "url": "https://www.property24.com/to-rent/cape-town/western-cape/1" },
    { "url": "https://www.property24.com/repossessions" }
  ],
  "maxItems": 500,
  "enrichDetails": true,
  "proxy": { "useApifyProxy": true, "groups": ["RESIDENTIAL"] }
}
```

### Example Output

```json
{
  "listingNumber": "117249141",
  "listingUrl": "https://www.property24.com/for-sale/florauna/pretoria/gauteng/4052/117249141",
  "searchType": "for-sale",
  "title": "4 Bedroom House for sale in Florauna",
  "priceZar": 2190000,
  "priceDisplay": "R 2 190 000",
  "priceCurrency": "ZAR",
  "propertyType": "House",
  "bedrooms": "4",
  "bathrooms": "4",
  "garages": "1",
  "parking": "4",
  "floorSize": null,
  "erfSize": "1 674 m²",
  "streetAddress": "10 Nagapie Avenue, Florauna",
  "suburb": "Florauna",
  "city": "Pretoria",
  "province": "Gauteng",
  "country": "South Africa",
  "latitude": -25.685605,
  "longitude": 28.157527,
  "levies": null,
  "ratesAndTaxes": "R 1 800",
  "description": "Escape to a welcoming family home in Florauna…",
  "features": ["Bedrooms: 4", "Bathrooms: 4", "Garages: 1", "Parking: 4", "Study", "Borehole", "Gas Geyser"],
  "floorPlans": [],
  "videoTourId": null,
  "repossessed": false,
  "photos": ["https://images.prop24.com/379978369/original", "…"],
  "photosCount": 12,
  "mainImageUrl": "https://images.prop24.com/379978369/original",
  "agentName": "Itumeleng Mothamane",
  "agentProfileUrl": "/estate-agents/chilet-tt-properties/itumeleng-mothamane/565045",
  "agentPhotoUrl": null,
  "agentPhones": [{ "numberType": "Mobile", "number": "082 123 4567", "internationalNumber": "+27821234567" }],
  "agentEmail": null,
  "agentWhatsapp": "https://wa.me/27821234567",
  "agencyName": "Chilet TT Properties",
  "agencyUrl": "/for-sale/agency/chilet-tt-properties/40467",
  "agencyLogo": "https://images.prop24.com/381989003/Fit450x225",
  "eaabReg": null
}
```

### Integrations & Automation

- **Apify API** — run the actor programmatically (`POST /v2/acts/{actorId}/runs`) and stream results from the default dataset via the REST API
- **Apify Schedules** — run daily/weekly for price monitoring; recurring usage also improves Store recommendation signals
- **Webhooks** — trigger downstream pipelines (Slack alerts, Google Sheets, DB updates) on run completion
- **n8n, Make, Zapier** — connect to the actor through the Apify connectors/API
- **Data export** — download the dataset as JSON, CSV, Excel, XML or HTML

Recommended schedule: daily for active price monitoring or repo scouting; weekly for market research snapshots (a daily 50-listing run costs roughly $0.04 at FREE-tier event prices — see below).

### Related Actors

Working with South Africa property data? These actors complete the picture:

- [**Crexi Property Scraper**](https://apify.com/ahmed_jasarevic/crexi-property-broker-data-scraper-pro) — commercial real estate listings and broker data from Crexi for CRE investment and lead generation (same author)
- [**Property24 $1💰 Buy, Rent, Sell, Commercial Scraper**](https://apify.com/abotapi/property24-scraper) — location-name search mode and 50+ fields from Property24
- [**Property24 Africa Scraper**](https://apify.com/ashersam01/property24-africa-scraper) — Property24 listings across 7 African countries
- [**Property24 Scraper**](https://apify.com/crawlerbros/property24-scraper) — Property24 for-sale/to-rent with a bank-repossessions-only filter
- [**Property24 Price-Drop & New Listing Monitor**](https://apify.com/hipersoft/property24-monitor) — scheduled change detection: new listings, price drops and increases

### FAQ

#### Why use this actor instead of the official Property24 API?

Property24's official API (`api.property24.com`) is a **partner-only "Listing Service"** that requires Basic-auth partner credentials and is designed for agencies to *publish* listings — not for anyone to *extract* listing data. Its consumer "Property Data" product is a paid monthly subscription (from R375/month) with report-view limits that is not a general-purpose API. If you just need structured listings (prices, specs, agents, geodata), this actor gets you the same public data as JSON/CSV/Excel at a few cents per run.

#### What are alternatives to Property24 as a South Africa property data source?

Private Property is the #2 SA portal; MyRoof, AuctionWatch and RepoLens aggregate bank repossessions; Stats SA publishes the Residential Property Price Index (RPPI) for macro trends. This actor covers the Property24 channel — the largest portal with 200,000+ listings and 5.1m monthly visitors — in full listing-level detail.

#### How much does it cost to scrape Property24?

Pay-per-event, with no browser overhead: one **result** event per listing ($0.0005 at FREE tier, down to $0.00045 on higher tiers) plus one **enrichment** event per listing when `enrichDetails` is on (default, $0.00025 → $0.0002), plus a one-time **actor start** fee ($0.00005). A default 50-listing run with enrichment costs about **$0.04** in actor events; residential proxy traffic (typically well under 100 MB per run) is billed separately per GB. Free accounts can preview up to 10 listings.

#### Is scraping Property24 legal?

Scraping publicly available property listings for market analysis is generally acceptable, but you are responsible for complying with Property24's Terms of Service and applicable South African law. This actor only reads pages that are publicly accessible. See the disclaimer below.

#### How do I monitor South Africa house prices for one suburb?

Paste that suburb's for-sale URL as a start URL, set `maxItems` to your limit and schedule the actor (daily/weekly). Diff consecutive datasets to see new listings, price changes and removals for that suburb only.

#### Where can I find bank repossessed houses in South Africa?

Add `https://www.property24.com/repossessions` as a start URL (or append `?sp=r=True` to a for-sale URL). Every record includes the `repossessed` flag and the agent/agency holding the mandate, plus POA/auction price handling.

#### Can I export Property24 listings to CSV or Excel?

Yes — every run writes to an Apify dataset, downloadable as JSON, CSV, Excel, XML or HTML, and addressable via the Apify API for programmatic export.

#### How does the actor handle Property24's anti-bot protection?

Property24 uses **ThreatMetrix** device/IP fingerprinting and blocks datacenter IPs (HTTP 503). The actor is pre-configured with the **Apify residential proxy** (`useApifyProxy: true` + `RESIDENTIAL` group) — no browser or CAPTCHA solving needed.

### SEO Keywords

property24 scraper, south africa property data, south africa property scraper, property24 api, property24 alternative, south africa house prices, sa property market data, property price monitoring, rental price monitoring, repossessed property south africa, bank repossessed homes, estate agent lead generation, property investment south africa, rental yield south africa, buy-to-let south africa, property market research, cape town property prices, johannesburg property listings, pretoria houses for sale, durban properties to rent, property listings dataset, first-time buyer suburbs south africa, property24 sold prices, real estate data south africa

### For AI Agents & LLM Apps

**Purpose:** Returns Property24 (South Africa) property listings — for-sale, to-rent and repossessed — as structured records with price (ZAR), room counts, floor/erf size, full address + GPS, levies/rates, description, features, photo URLs, and agent/agency details including published contact data.

**Minimal working input** (real field names):

```json
{
  "startUrls": [{ "url": "https://www.property24.com/for-sale/pretoria/gauteng/1" }]
}
```

**Variant — repossessions only:**

```json
{
  "startUrls": [{ "url": "https://www.property24.com/repossessions" }],
  "maxItems": 100
}
```

**Variant — lean/cheap run (no enrichment contacts or full-res photos):**

```json
{
  "startUrls": [{ "url": "https://www.property24.com/to-rent/cape-town/western-cape/1" }],
  "maxItems": 50,
  "enrichDetails": false
}
```

**Output fields (dataset):** `listingNumber`, `listingUrl`, `searchType`, `title`, `priceZar`, `priceDisplay`, `priceCurrency`, `propertyType`, `bedrooms`, `bathrooms`, `garages`, `parking`, `floorSize`, `erfSize`, `streetAddress`, `suburb`, `city`, `province`, `country`, `latitude`, `longitude`, `levies`, `ratesAndTaxes`, `deposit`, `petsAllowed`, `furnished`, `listingDate`, `occupationDate`, `description`, `features`, `floorPlans`, `videoTourId`, `repossessed`, `photos`, `photosCount`, `photoThumbnails`, `mainImageUrl`, `agentName`, `agentProfileUrl`, `agentPhotoUrl`, `agentPhones`, `agentEmail`, `agentWhatsapp`, `agencyName`, `agencyUrl`, `agencyLogo`, `eaabReg`.

**Behaviors an agent should know:**

- `enrichDetails` defaults to `true` → each listing bills an extra **enrichment** event on top of the base **result** event; set it to `false` to halve per-listing cost but lose full-res photos, floor plans, and agent phones/email/WhatsApp.
- Free (non-paying) Apify accounts are hard-capped at **10 listings** regardless of `maxItems`.
- **Residential proxy is required** — Property24's ThreatMetrix WAF blocks datacenter IPs. Do not set `useApifyProxy: false` without supplying a working residential proxy.
- `startUrls` is required and defines scope; pagination is followed automatically but never leaves the initial search scope (out-of-scope pager links are skipped).
- POA / auction / repossessed listings often return `priceZar: null` with `priceDisplay` like "POA Request Price".
- Removed or expired listings are skipped automatically, so a run may return fewer records than `maxItems`.
- `startUrls` entries can mix for-sale, to-rent and repossessions URLs in one run; each record's `searchType` reflects its source.

**Billing:** pay-per-event. At FREE tier: `result-item` $0.0005/listing + `enrichment` $0.00025/listing (default on) + one-time `actor-start` $0.00005. A default 50-listing run ≈ $0.04 in actor events + a small residential-proxy fee (typically < 100 MB/run). Rates drop to $0.00045/$0.0002 on higher plan tiers.

### Legal & Compliance Disclaimer

This actor is **independent** and is **not affiliated with, endorsed by, or sponsored by Property24.com (Pty) Ltd** (part of the OLX Group / Prosus). It only accesses **publicly available pages** on Property24 — no login bypass, no CAPTCHA solving, no private data.

You are responsible for complying with **Property24's Terms of Service** and applicable South African law, including the Protection of Personal Information Act (POPIA) when handling the agent contact data (names, phone numbers, emails, WhatsApp links) this actor can extract. That contact data is published by the site as listing-agent information and should not be used for unsolicited commercial outreach that would violate POPIA, CAN-SPAM, or other applicable law. This section is information, not legal advice.

# Actor input Schema

## `startUrls` (type: `array`):

Property24 search page URLs to start from. Use any Property24 search URL, e.g. https://www.property24.com/for-sale/pretoria/gauteng/1 (for-sale), https://www.property24.com/to-rent/cape-town/western-cape/1 (to-rent) or https://www.property24.com/repossessions (repossessed). The actor follows pagination automatically.

## `maxItems` (type: `integer`):

Maximum number of property listings to scrape (detail pages). Free users are capped at 10.

## `enrichDetails` (type: `boolean`):

Extract the rich data Property24 embeds server-side in each page (the site's internal JSON payload): full-resolution photos, thumbnails, floor plans, video tour, and agent contacts (phone numbers where published, WhatsApp link, email). All still comes from a single request. Billing: this adds an 'enrichment' charge event on top of the 'result-item' event charged for every listing. Disable for a leaner, cheaper scrape.

## `proxy` (type: `object`):

Select proxies to be used by your crawler. Property24 blocks datacenter IPs, so a residential proxy group is required for reliable runs.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.property24.com/for-sale/pretoria/gauteng/1"
    },
    {
      "url": "https://www.property24.com/to-rent/cape-town/western-cape/1"
    },
    {
      "url": "https://www.property24.com/repossessions"
    }
  ],
  "maxItems": 50,
  "enrichDetails": true,
  "proxy": {
    "useApifyProxy": true,
    "groups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.property24.com/for-sale/pretoria/gauteng/1"
        },
        {
            "url": "https://www.property24.com/to-rent/cape-town/western-cape/1"
        },
        {
            "url": "https://www.property24.com/repossessions"
        }
    ],
    "proxy": {
        "useApifyProxy": true,
        "groups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/property24-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [
        { "url": "https://www.property24.com/for-sale/pretoria/gauteng/1" },
        { "url": "https://www.property24.com/to-rent/cape-town/western-cape/1" },
        { "url": "https://www.property24.com/repossessions" },
    ],
    "proxy": {
        "useApifyProxy": True,
        "groups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/property24-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.property24.com/for-sale/pretoria/gauteng/1"
    },
    {
      "url": "https://www.property24.com/to-rent/cape-town/western-cape/1"
    },
    {
      "url": "https://www.property24.com/repossessions"
    }
  ],
  "proxy": {
    "useApifyProxy": true,
    "groups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call ahmed_jasarevic/property24-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ahmed_jasarevic/property24-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/thHt5PVAL8E5e6l5y/builds/hRy1XdaBdejFRLtoU/openapi.json
