Amazing Ribs Curing Calculator – Calculate Perfect Cured Ribs


Amazing Ribs Curing Calculator

Calculate precise curing times and salt concentrations for your ribs.



Enter the total weight of your ribs in grams.



Select whether you are dry curing or wet brining.


Recommended 2-3% for dry curing.



Number of days for curing. Minimum 1 day.



Curing Summary

Dry Cure: Salt (g) = Rib Weight (g) * (Salt % / 100). Curing Time = Days.
Wet Cure: Salt per Liter = g/L. Total Water = L. Salt Needed (g) = Salt per Liter * Total Water. Curing Time = Days.

Curing Schedule Details


Day Salt Needed (g) Brine Salt (g/L) Notes

Salt Concentration (g/L)
Nitrite (ppm, if used)

What is Amazing Ribs Curing?

{primary_keyword} is the process of preserving and flavoring meat, specifically ribs in this context, through the application of salt and other curing agents. This technique is fundamental to creating charcuterie and enhancing the texture, flavor, and shelf-life of meat products. It’s a time-honored method that relies on specific chemical reactions to transform raw meat into a delicious, safe, and stable food item. Whether you’re a home cook experimenting with bacon or a pitmaster aiming for the ultimate cured rib, understanding the principles of {primary_keyword} is key.

Who should use it? Anyone looking to elevate their rib game beyond simple seasoning. This includes BBQ enthusiasts, home charcuterie makers, chefs, and even adventurous home cooks who want to explore traditional preservation methods. It’s particularly useful for preparing ribs for long smoking processes where traditional curing can add depth of flavor and improve texture.

Common misconceptions about {primary_keyword} often revolve around safety and complexity. Some believe it’s inherently dangerous due to the use of nitrates/nitrites, or that it’s too difficult for a home cook. However, when performed with accurate measurements and adherence to established guidelines, curing is a safe and rewarding process. The use of specialized curing salts (like Prague Powder #1 or #2) ensures safety and prevents the growth of harmful bacteria like *Clostridium botulinum*, the bacteria responsible for botulism. Many recipes also focus solely on salt, sugar, and spices for a simpler, yet still effective, cure.

{primary_keyword} Formula and Mathematical Explanation

The core of {primary_keyword} involves calculating the correct amount of curing agents, primarily salt, relative to the weight of the meat. This ensures proper preservation without making the final product excessively salty.

Dry Curing Formula:

The primary calculation for dry curing is determining the total amount of salt needed. This is based on a percentage of the meat’s weight.

Salt Needed (grams) = Rib Weight (grams) × (Salt Percentage / 100)

Wet Curing (Brining) Formula:

For wet brining, the calculation involves the concentration of salt in water and the total volume of the brine.

Total Salt for Brine (grams) = Brine Concentration (g/L) × Volume of Water (L)

The brine concentration itself is often expressed as grams of salt per liter of water.

Variables Table:

Variable Meaning Unit Typical Range
Rib Weight The total mass of the ribs to be cured. grams (g) 100 – 5000 g
Salt Percentage The proportion of salt relative to the meat’s weight, used in dry curing. % 2.0 – 3.5 %
Curing Duration The total number of days the ribs will be exposed to the curing agents. days 1 – 7 days
Brine Concentration The amount of salt dissolved in a specific volume of water for wet brining. grams per liter (g/L) 50 – 70 g/L
Volume of Water The total amount of water used to create the brine solution. liters (L) 1 – 5 L
Salt Needed (Dry) Total salt required for dry curing. grams (g) Calculated
Total Salt for Brine (Wet) Total salt required to achieve the desired brine concentration. grams (g) Calculated

Practical Examples (Real-World Use Cases)

Let’s illustrate with a couple of scenarios using the {primary_keyword} calculator.

Example 1: Dry Curing a Rack of Spareribs

Scenario: You have a rack of spareribs weighing 1200 grams. You want to dry cure them using a 2.5% salt concentration for 3 days.

Inputs:

  • Rib Weight: 1200 g
  • Curing Method: Dry Cure
  • Salt Percentage: 2.5%
  • Curing Duration: 3 days

Calculations:

  • Salt Needed (Dry) = 1200 g × (2.5 / 100) = 30 g
  • Curing Time = 3 days

Results: The calculator would show approximately 30g of salt is needed. The primary result highlights the 3-day curing duration. Intermediate values would confirm the salt amount.

Interpretation: This amount of salt will help draw out moisture, season the meat deeply, and begin the preservation process over the three-day period. This is a good starting point for many dry-cured ribs recipes, contributing to a firmer texture and concentrated flavor.

Example 2: Wet Brining Baby Back Ribs

Scenario: You have 2 kg (2000 grams) of baby back ribs and want to wet brine them for 4 hours (which we’ll represent as a fraction of a day for simplicity, though the calculator defaults to whole days and needs manual adjustment for hours). You plan to use a standard brine concentration of 60g of salt per liter of water, and you’ll use 3 liters of water.

Inputs:

  • Rib Weight: 2000 g (used indirectly for context but not direct calculation in wet brine)
  • Curing Method: Wet Cure (Brine)
  • Brine Concentration: 60 g/L
  • Volume of Water: 3 L
  • Curing Duration: 4 hours (let’s approximate as 0.17 days for calculator input, or adjust calculator logic) – For the calculator, let’s use 1 day for simplicity if hours aren’t supported. Let’s assume 1 day for the calculation here to match the basic calculator input.

Calculations:

  • Total Salt for Brine = 60 g/L × 3 L = 180 g
  • Curing Time = 1 day (or 4 hours, needs adjustment)

Results: The calculator would show that 180g of salt is needed to create the brine. The primary result would emphasize the 1-day (or 4-hour) brine time.

Interpretation: This brine solution will help the ribs retain moisture during cooking, leading to a more tender and juicy final product. The salt penetrates the meat, seasoning it evenly and contributing to a slightly cured flavor profile. A 4-hour brine is common for ribs to achieve these benefits without making them too salty or altering the texture too drastically.

How to Use This {primary_keyword} Calculator

Using the Amazing Ribs Curing Calculator is straightforward. Follow these steps to get accurate curing recommendations:

  1. Enter Rib Weight: Input the precise weight of your ribs in grams. This is crucial for accurate salt calculations, especially for dry curing.
  2. Select Curing Method: Choose between “Dry Cure” or “Wet Cure (Brine)” based on your preferred method. The calculator will adjust the relevant input fields.
  3. Input Curing Specifics:
    • For Dry Cure: Enter the desired salt percentage (e.g., 2.5%).
    • For Wet Cure: Enter the brine concentration (grams of salt per liter of water, e.g., 60g/L) and the total volume of water you’ll use in liters.
  4. Set Curing Duration: Specify the number of days you intend to cure the ribs.
  5. Click Calculate: Press the “Calculate Curing” button.

Reading the Results:

  • Primary Result: This is your main output, often highlighting the recommended curing duration or the total salt needed.
  • Intermediate Values: These provide breakdowns, such as the exact grams of salt required or the salt concentration of your brine.
  • Formula Explanation: A brief description of the calculation used is provided for transparency.
  • Curing Table: Offers a day-by-day breakdown, useful for longer cures or tracking progress.
  • Chart: Visualizes key curing parameters over time.

Decision-Making Guidance:

The calculator provides the necessary measurements and timeframes. Always remember that these are guidelines. Factors like the thickness of the ribs, ambient temperature, and humidity can influence curing. Taste and texture are the ultimate judges. Use the calculated values as a safe and effective starting point for your {primary_keyword} adventures.

Key Factors That Affect {primary_keyword} Results

Several factors significantly influence the outcome of your ribs curing process. Understanding these can help you fine-tune your approach and achieve perfect results every time.

  1. Meat Thickness and Cut: Thicker cuts of ribs will require longer curing times to allow salt and curing agents to penetrate fully to the center. Baby back ribs, being leaner and thinner, cure faster than thick-cut spareribs or St. Louis style ribs.
  2. Salt Concentration: This is perhaps the most critical factor. Too little salt and the cure is ineffective, posing a safety risk. Too much salt results in an unpleasantly salty product. Precise measurement using scales is essential. The calculator helps determine the correct range, typically between 2-3.5% for dry cures and 50-70g/L for wet brines.
  3. Curing Time: This dictates how deeply the curing agents penetrate and how much moisture is drawn out. Dry cures often range from 1-7 days, while wet brines can be as short as a few hours for ribs. Extending the time significantly can lead to over-salting or excessively dry meat.
  4. Temperature Control: Curing should ideally occur at refrigerated temperatures (around 3-5°C or 37-41°F). This slows down enzymatic and bacterial activity, allowing the curing process to work safely and effectively without spoiling the meat. Warmer temperatures can accelerate spoilage.
  5. Humidity (for Dry Curing): In dry curing, ambient humidity plays a role. High humidity can prevent moisture loss, slowing the cure, while very low humidity can lead to casing or surface drying. A controlled environment helps ensure consistent results.
  6. Type of Curing Salts (Nitrates/Nitrites): If using curing salts like Prague Powder #1 (for non-smoked, short cures) or Prague Powder #2 (for long cures and smoking), their concentration is vital. These salts not only cure but also inhibit botulism and contribute to the characteristic pink/red color and cured flavor. They are used in very small, precise amounts (typically 0.25-0.5% of the salt weight or a set ppm). Our calculator focuses primarily on salt and time, but for advanced cures involving nitrites, extremely accurate measurement is paramount. Proper application ensures safety and inhibits the growth of harmful bacteria.
  7. Sugar and Spices: While salt is the primary curing agent, sugar is often added to balance the saltiness and aid browning. Spices add flavor complexity. These don’t typically alter the core safety or preservation calculations but contribute significantly to the final taste profile.

Frequently Asked Questions (FAQ)

  • Q: Can I use regular table salt for curing ribs?

    A: While table salt can be used, kosher salt or sea salt (without anti-caking agents) are preferred. They dissolve more easily and lack iodine, which can sometimes impart a metallic taste. The key is accurate measurement by weight.

  • Q: How long should I cure ribs if I’m not using nitrates/nitrites?

    A: If relying solely on salt (a “true” cure without curing salts), shorter curing times (e.g., 1-3 days for dry cure, a few hours for brine) are generally safer for home cooks to avoid potential bacterial growth. Curing salts significantly enhance safety.

  • Q: My ribs seem too salty after curing. What went wrong?

    A: This is usually due to using too much salt (incorrect percentage/concentration) or curing for too long. Ensure you weigh your salt and meat accurately. For wet brines, rinsing the ribs thoroughly after brining can help reduce surface saltiness.

  • Q: How do I know when the ribs are sufficiently cured?

    A: For dry cures, the ribs should feel firm and leathery, and have lost some moisture. For wet brines, the time is the main indicator, followed by rinsing and cooking. They won’t taste “cured” in the same way as bacon, but the texture and moisture retention improve.

  • Q: Can I use this calculator for other meats?

    A: The principles apply broadly, but specific percentages and times vary greatly by meat type, thickness, and desired outcome. Always consult recipes specific to the cut you are curing (e.g., pork belly for bacon, whole chickens).

  • Q: What is the role of sugar in a rib cure?

    A: Sugar helps to balance the harshness of the salt, making the cure more palatable. It also contributes to browning and adds a subtle sweetness, which complements the savory cured flavor. It doesn’t act as a primary preservative.

  • Q: Is it safe to eat ribs that have been cured without refrigeration?

    A: Traditional long-term curing methods rely on specific salt concentrations and/or curing salts (nitrates/nitrites) to create an environment where spoilage bacteria cannot thrive. For home cooks using basic salt cures, refrigeration during the curing process is strongly recommended for safety.

  • Q: How long can cured ribs be stored?

    A: Properly dry-cured ribs, especially if further processed (like smoking), can last for extended periods if stored correctly in a cool, dry place. Wet-brined ribs are typically cooked shortly after brining and don’t have the same long shelf-life as fully cured and dried products.

Related Tools and Internal Resources

© 2023 Amazing Ribs Tools. All rights reserved.

would be in the

// Dummy Chart object and context if Chart.js isn’t loaded, to prevent errors
if (typeof Chart === ‘undefined’) {
console.warn(“Chart.js not loaded. Chart functionality will be disabled.”);
var Chart = function() {
this.update = function() { console.warn(“Chart.js not loaded.”); };
};
var chartContext = {
canvas: { style: {} },
getContext: function() { return this; }
};
var curingChart = { update: function() {} };
chartData = { labels: [], datasets: [] };
}

function validateInput(id, minValue, maxValue, allowDecimal = true) {
var input = document.getElementById(id);
var errorDiv = document.getElementById(id + ‘Error’);
var value = input.value.trim();
var numValue = parseFloat(value);
var isValid = true;

errorDiv.textContent = ”;
errorDiv.style.display = ‘none’;
input.style.borderColor = ‘#ddd’; // Reset border

if (value === ”) {
errorDiv.textContent = ‘This field cannot be empty.’;
isValid = false;
} else if (isNaN(numValue)) {
errorDiv.textContent = ‘Please enter a valid number.’;
isValid = false;
} else {
if (minValue !== null && numValue < minValue) { errorDiv.textContent = 'Value cannot be less than ' + minValue + '.'; isValid = false; } if (maxValue !== null && numValue > maxValue) {
errorDiv.textContent = ‘Value cannot be greater than ‘ + maxValue + ‘.’;
isValid = false;
}
if (!allowDecimal && !Number.isInteger(numValue)) {
errorDiv.textContent = ‘Please enter a whole number.’;
isValid = false;
}
}

if (!isValid) {
input.style.borderColor = ‘#dc3545’;
}
return isValid;
}

function calculateCuring() {
var ribWeight = parseFloat(document.getElementById(‘ribWeight’).value);
var curingMethod = document.getElementById(‘curingMethod’).value;
var saltPercentage = parseFloat(document.getElementById(‘saltPercentage’).value);
var brineConcentration = parseFloat(document.getElementById(‘brineConcentration’).value);
var waterVolume = parseFloat(document.getElementById(‘waterVolume’).value);
var curingDays = parseInt(document.getElementById(‘curingDays’).value);

var primaryResultDiv = document.getElementById(‘primary-result’);
var saltNeededDiv = document.getElementById(‘saltNeeded’);
var brineSaltWeightDiv = document.getElementById(‘brineSaltWeight’);
var curingTimeInfoDiv = document.getElementById(‘curingTimeInfo’);
var tableBody = document.querySelector(‘#curingTable tbody’);

// Clear previous table rows and chart data
tableBody.innerHTML = ”;
chartData.labels = [];
chartData.datasets[0].data = [];
chartData.datasets[1].data = [];

// — Input Validation —
var isValid = true;
isValid = validateInput(‘ribWeight’, 0) && isValid;
isValid = validateInput(‘curingDays’, 1, null, false) && isValid; // Curing days must be whole number

if (curingMethod === ‘dry’) {
isValid = validateInput(‘saltPercentage’, 0, 10) && isValid; // Max 10% is arbitrary safe limit
document.getElementById(‘dryCureInputs’).style.display = ‘block’;
document.getElementById(‘wetCureInputs’).style.display = ‘none’;
document.getElementById(‘wetCureInputsVolume’).style.display = ‘none’;
} else { // wet cure
isValid = validateInput(‘brineConcentration’, 0, 100) && isValid; // Max 100g/L arbitrary safe limit
isValid = validateInput(‘waterVolume’, 0) && isValid;
document.getElementById(‘dryCureInputs’).style.display = ‘none’;
document.getElementById(‘wetCureInputs’).style.display = ‘block’;
document.getElementById(‘wetCureInputsVolume’).style.display = ‘block’;
}

if (!isValid) {
primaryResultDiv.innerHTML = ‘Please fix errors.’;
saltNeededDiv.innerHTML = ”;
brineSaltWeightDiv.innerHTML = ”;
curingTimeInfoDiv.innerHTML = ”;
return;
}

// — Calculations —
var saltNeededDry = 0;
var totalSaltWet = 0;
var calculatedSaltPerLiter = 0;
var nitritePpm = 0; // Placeholder for nitrite calculation if added

if (curingMethod === ‘dry’) {
saltNeededDry = ribWeight * (saltPercentage / 100);
primaryResultDiv.innerHTML = ‘Approx. ‘ + saltNeededDry.toFixed(1) + ‘ g Salt Needed’;
saltNeededDiv.innerHTML = ‘Dry Cure Salt: ‘ + saltNeededDry.toFixed(1) + ‘ g’;
brineSaltWeightDiv.innerHTML = ”; // Not applicable for dry cure
curingTimeInfoDiv.innerHTML = ‘Curing Duration: ‘ + curingDays + ‘ days’;

// Populate Table for Dry Cure
for (var i = 1; i <= curingDays; i++) { var row = tableBody.insertRow(); var cellDay = row.insertCell(0); var cellSaltNeeded = row.insertCell(1); var cellBrineConc = row.insertCell(2); var cellNotes = row.insertCell(3); cellDay.textContent = i; cellSaltNeeded.textContent = saltNeededDry.toFixed(1) + ' g'; cellBrineConc.textContent = '-'; // Not applicable cellNotes.textContent = 'Apply salt evenly. Flip/rotate daily.'; // Charting data (simplified for dry cure - might need different chart logic) chartData.labels.push(i.toString()); // For dry cure, we don't have g/L. We could show salt % or total salt. // Let's adapt chart to show salt weight for dry, or use a placeholder. // For now, let's populate with a placeholder or adjust chart logic. // If we MUST show g/L, it implies a wet brine context. // Let's assume the chart is more illustrative for wet brine. // For dry cure, we might show % over time, or just omit the g/L line. // Let's push 0 for brine concentration for dry cure for now. chartData.datasets[0].data.push(0); // Placeholder for salt g/L in dry cure chartData.datasets[1].data.push(nitritePpm); } // Update primary result to be more prominent primaryResultDiv.innerHTML = 'Cure for ' + curingDays + ' days'; } else { // wet cure totalSaltWet = brineConcentration * waterVolume; calculatedSaltPerLiter = brineConcentration; // This is the value we are using primaryResultDiv.innerHTML = 'Approx. ' + totalSaltWet.toFixed(0) + ' g Salt for Brine'; saltNeededDiv.innerHTML = 'Total Brine Salt: ‘ + totalSaltWet.toFixed(0) + ‘ g’;
brineSaltWeightDiv.innerHTML = ‘Brine Concentration: ‘ + calculatedSaltPerLiter.toFixed(0) + ‘ g/L in ‘ + waterVolume.toFixed(1) + ‘ L water’;
curingTimeInfoDiv.innerHTML = ‘Curing Duration: ‘ + curingDays + ‘ day(s)’;

// Populate Table for Wet Cure
for (var i = 1; i <= curingDays; i++) { var row = tableBody.insertRow(); var cellDay = row.insertCell(0); var cellSaltNeeded = row.insertCell(1); var cellBrineConc = row.insertCell(2); var cellNotes = row.insertCell(3); cellDay.textContent = i; cellSaltNeeded.textContent = totalSaltWet.toFixed(0) + ' g'; cellBrineConc.textContent = calculatedSaltPerLiter.toFixed(0) + ' g/L'; cellNotes.textContent = 'Submerge ribs fully. Ensure consistent temperature.'; chartData.labels.push(i.toString()); chartData.datasets[0].data.push(calculatedSaltPerLiter); chartData.datasets[1].data.push(nitritePpm); // Add nitrite data if available } // Update primary result to be more prominent primaryResultDiv.innerHTML = 'Brine for ' + curingDays + ' day(s)'; } // Update chart if (curingChart && chartData.labels.length > 0) {
updateChart(curingDays, calculatedSaltPerLiter, nitritePpm);
} else if (chartContext) {
initChart(); // Initialize if not already done
updateChart(curingDays, calculatedSaltPerLiter, nitritePpm);
}

// Update formula explanation based on method
var formulaText = ”;
if (curingMethod === ‘dry’) {
formulaText = ‘Dry Cure: Salt (g) = Rib Weight (g) * (Salt % / 100). Curing Time = Days.’;
} else {
formulaText = ‘Wet Cure: Total Salt (g) = Brine Conc. (g/L) * Water Volume (L). Curing Time = Days.’;
}
document.querySelector(‘.formula-explanation’).textContent = formulaText;

// Show results section
document.getElementById(‘results’).style.display = ‘block’;
}

function resetCalculator() {
document.getElementById(‘ribWeight’).value = ‘1500’;
document.getElementById(‘curingMethod’).value = ‘dry’;
document.getElementById(‘saltPercentage’).value = ‘2.5’;
document.getElementById(‘brineConcentration’).value = ’60’;
document.getElementById(‘waterVolume’).value = ‘2’;
document.getElementById(‘curingDays’).value = ‘3’;

// Reset error messages
document.getElementById(‘ribWeightError’).textContent = ”;
document.getElementById(‘saltPercentageError’).textContent = ”;
document.getElementById(‘brineConcentrationError’).textContent = ”;
document.getElementById(‘waterVolumeError’).textContent = ”;
document.getElementById(‘curingDaysError’).textContent = ”;

// Reset input styles
document.getElementById(‘ribWeight’).style.borderColor = ‘#ddd’;
document.getElementById(‘saltPercentage’).style.borderColor = ‘#ddd’;
document.getElementById(‘brineConcentration’).style.borderColor = ‘#ddd’;
document.getElementById(‘waterVolume’).style.borderColor = ‘#ddd’;
document.getElementById(‘curingDays’).style.borderColor = ‘#ddd’;

// Trigger update to reflect reset values and show correct inputs
updateInputVisibility();
calculateCuring();
}

function copyResults() {
var primaryResult = document.getElementById(‘primary-result’).innerText;
var saltNeeded = document.getElementById(‘saltNeeded’).innerText;
var brineSaltWeight = document.getElementById(‘brineSaltWeight’).innerText;
var curingTimeInfo = document.getElementById(‘curingTimeInfo’).innerText;
var formulaExplanation = document.querySelector(‘.formula-explanation’).innerText;
var method = document.getElementById(‘curingMethod’).value;

var contentToCopy = “— Curing Summary —\n\n”;
contentToCopy += primaryResult + “\n”;
contentToCopy += saltNeeded + “\n”;
if (brineSaltWeight) { // Only add if it exists (wet cure)
contentToCopy += brineSaltWeight + “\n”;
}
contentToCopy += curingTimeInfo + “\n\n”;
contentToCopy += “Method: ” + method.charAt(0).toUpperCase() + method.slice(1) + “\n”;
contentToCopy += “Formula: ” + formulaExplanation + “\n\n”;
contentToCopy += “— Curing Table Details —\n”;

var table = document.getElementById(‘curingTable’);
var rows = table.querySelectorAll(‘tbody tr’);
var headers = table.querySelectorAll(‘thead th’);

// Add table headers
var headerText = “”;
headers.forEach(function(header) {
headerText += header.innerText + “\t\t”;
});
contentToCopy += headerText.trim() + “\n”;

// Add table rows
rows.forEach(function(row) {
var rowText = “”;
row.querySelectorAll(‘td’).forEach(function(cell) {
rowText += cell.innerText + “\t\t”;
});
contentToCopy += rowText.trim() + “\n”;
});

// Use a temporary textarea to copy
var textArea = document.createElement(“textarea”);
textArea.value = contentToCopy;
document.body.appendChild(textArea);
textArea.select();
try {
var successful = document.execCommand(‘copy’);
var msg = successful ? ‘Results copied!’ : ‘Failed to copy results.’;
// Optionally display a temporary message to the user
console.log(msg);
} catch (err) {
console.error(‘Unable to copy results’, err);
}
document.body.removeChild(textArea);
}

function updateInputVisibility() {
var curingMethod = document.getElementById(‘curingMethod’).value;
if (curingMethod === ‘dry’) {
document.getElementById(‘dryCureInputs’).style.display = ‘block’;
document.getElementById(‘wetCureInputs’).style.display = ‘none’;
document.getElementById(‘wetCureInputsVolume’).style.display = ‘none’;
} else { // wet cure
document.getElementById(‘dryCureInputs’).style.display = ‘none’;
document.getElementById(‘wetCureInputs’).style.display = ‘block’;
document.getElementById(‘wetCureInputsVolume’).style.display = ‘block’;
}
}

// Initialize chart and visibility on load
document.addEventListener(‘DOMContentLoaded’, function() {
initChart();
updateInputVisibility();
calculateCuring(); // Calculate initial values on load

// Add event listeners for dynamic updates
document.getElementById(‘ribWeight’).addEventListener(‘input’, calculateCuring);
document.getElementById(‘curingMethod’).addEventListener(‘change’, function() {
updateInputVisibility();
calculateCuring();
});
document.getElementById(‘saltPercentage’).addEventListener(‘input’, calculateCuring);
document.getElementById(‘brineConcentration’).addEventListener(‘input’, calculateCuring);
document.getElementById(‘waterVolume’).addEventListener(‘input’, calculateCuring);
document.getElementById(‘curingDays’).addEventListener(‘input’, calculateCuring);
});


Leave a Reply

Your email address will not be published. Required fields are marked *